1fb3fb4f3Stomee# 2fb3fb4f3Stomee# CDDL HEADER START 3fb3fb4f3Stomee# 4fb3fb4f3Stomee# The contents of this file are subject to the terms of the 5fb3fb4f3Stomee# Common Development and Distribution License (the "License"). 6fb3fb4f3Stomee# You may not use this file except in compliance with the License. 7fb3fb4f3Stomee# 8fb3fb4f3Stomee# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9fb3fb4f3Stomee# or http://www.opensolaris.org/os/licensing. 10fb3fb4f3Stomee# See the License for the specific language governing permissions 11fb3fb4f3Stomee# and limitations under the License. 12fb3fb4f3Stomee# 13fb3fb4f3Stomee# When distributing Covered Code, include this CDDL HEADER in each 14fb3fb4f3Stomee# file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15fb3fb4f3Stomee# If applicable, add the following below this CDDL HEADER, with the 16fb3fb4f3Stomee# fields enclosed by brackets "[]" replaced with your own identifying 17fb3fb4f3Stomee# information: Portions Copyright [yyyy] [name of copyright owner] 18fb3fb4f3Stomee# 19fb3fb4f3Stomee# CDDL HEADER END 20fb3fb4f3Stomee# 21fb3fb4f3Stomee 22fb3fb4f3Stomee# 23e77b06d2Stomee# Copyright 2008 Sun Microsystems, Inc. All rights reserved. 24fb3fb4f3Stomee# Use is subject to license terms. 25fb3fb4f3Stomee# 26fb3fb4f3Stomee 27fb3fb4f3Stomeeinclude $(SRC)/Makefile.master 28fb3fb4f3Stomee 29fb3fb4f3Stomee# The Java DTrace API package 30fb3fb4f3Stomee 31fb3fb4f3StomeePKGPATH=org/opensolaris/os/dtrace 32fb3fb4f3StomeePKGNAME=org.opensolaris.os.dtrace 33fb3fb4f3Stomee 34fb3fb4f3Stomee# The Java DTrace API directories 35fb3fb4f3Stomee 36fb3fb4f3StomeeAPIDIR=$(SRC)/lib/libdtrace_jni/java 37fb3fb4f3StomeeCLASSES=$(APIDIR)/classes 38fb3fb4f3StomeeJNI=$(APIDIR)/native 39fb3fb4f3StomeeJARS=$(APIDIR)/lib 40fb3fb4f3StomeeDOCS=$(APIDIR)/docs 41fb3fb4f3StomeeDOCAPI=$(DOCS)/api 42fb3fb4f3StomeeDOCEXAMPLES=$(DOCS)/examples 43fb3fb4f3StomeeDOCHTML=$(DOCS)/html 44fb3fb4f3StomeeDOCIMAGES=$(DOCS)/images 45fb3fb4f3StomeeMANIFEST=$(APIDIR)/manifest 46fb3fb4f3StomeeAPIJAVASRC=$(APIDIR)/src 47fb3fb4f3Stomee 48fb3fb4f3Stomee# Java DTrace API jar file, its ultimate destination, and packaging details 49fb3fb4f3StomeeAPIJAR=dtrace.jar 50fb3fb4f3StomeeJARDESTDIR=$(ROOT)/usr/share/lib/java 51fb3fb4f3StomeeINSJARS=$(JARDESTDIR)/$(APIJAR) 52fb3fb4f3Stomee# javadoc 53fb3fb4f3StomeeDOCDESTDIR=$(ROOT)/usr/share/lib/java/javadoc/dtrace 54fb3fb4f3StomeeDOCAPIDESTDIR=$(DOCDESTDIR)/api 55fb3fb4f3StomeeDOCEXAMPLESDESTDIR=$(DOCDESTDIR)/examples 56fb3fb4f3StomeeDOCHTMLDESTDIR=$(DOCDESTDIR)/html 57fb3fb4f3StomeeDOCIMAGESDESTDIR=$(DOCDESTDIR)/images 58*f936286cSAlexander Pyhalov$(BLD_JAVA_8)XDOCLINT_OPTION=-Xdoclint:none 59fb3fb4f3Stomee 60fb3fb4f3Stomee$(JARDESTDIR)/%: $(JARS)/% 61fb3fb4f3Stomee $(INS.file) 62fb3fb4f3Stomee 63fb3fb4f3Stomee$(DOCEXAMPLESDESTDIR)/%: $(DOCEXAMPLES)/% 64fb3fb4f3Stomee $(INS.file) 65fb3fb4f3Stomee 66fb3fb4f3Stomee$(DOCHTMLDESTDIR)/%: $(DOCHTML)/% 67fb3fb4f3Stomee $(INS.file) 68fb3fb4f3Stomee 69fb3fb4f3Stomee$(DOCIMAGESDESTDIR)/%: $(DOCIMAGES)/% 70fb3fb4f3Stomee $(INS.file) 71fb3fb4f3Stomee 72fb3fb4f3Stomee# Manifest files 73fb3fb4f3StomeeAPIMANI= $(MANIFEST)/dtrace.mf 74fb3fb4f3StomeeMANIFESTS= $(APIMANI) 75fb3fb4f3Stomee 76fb3fb4f3Stomee# Controlled CLASSPATH for making 77fb3fb4f3StomeeAPICLASSPATH=$(CLASSES):$(APIJAVASRC) 78fb3fb4f3Stomee 79fb3fb4f3Stomee# javac flags 804d0eb50eSRichard PALOJFLAGS= -g -d $(CLASSES) -sourcepath $(APICLASSPATH) 814d0eb50eSRichard PALOJFLAGS += -source 1.5 -target 1.6 824d0eb50eSRichard PALOJFLAGS += -Xlint:all,-rawtypes,-options 83fb3fb4f3Stomee 84fb3fb4f3Stomee# The default make rule for Java files 85fb3fb4f3StomeeCOMPILE.java=$(JAVAC) $(JFLAGS) 86fb3fb4f3Stomee 87fb3fb4f3Stomee$(CLASSES)/$(PKGPATH)/%.class: $(APIJAVASRC)/$(PKGPATH)/%.java 88fb3fb4f3Stomee $(COMPILE.java) $< 89fb3fb4f3Stomee 90fb3fb4f3Stomee# javah generated headers 91fb3fb4f3StomeeAPIHDR= LocalConsumer.h 924d0eb50eSRichard PALOJNIHDRS=$(JNI)/$(APIHDR) 93fb3fb4f3Stomee 94fb3fb4f3Stomee# API classes with native methods 95fb3fb4f3StomeeJNI_CLASSNAMES=\ 96fb3fb4f3Stomee LocalConsumer 97fb3fb4f3Stomee 98fb3fb4f3StomeeJNI_CLASSES=${JNI_CLASSNAMES:%=%.class} 99fb3fb4f3StomeeDTRACE_JNI_CLASSES=${JNI_CLASSES:%=$(CLASSES)/$(PKGPATH)/%} 100fb3fb4f3StomeeJNI_FULL_CLASSNAMES=${JNI_CLASSNAMES:%=$(PKGNAME).%} 101fb3fb4f3Stomee 102fb3fb4f3Stomee# All API classes 103fb3fb4f3StomeeAPI_CLASSNAMES=\ 104fb3fb4f3Stomee AbstractAggregationValue \ 105fb3fb4f3Stomee Aggregate \ 106fb3fb4f3Stomee AggregateSpec \ 107fb3fb4f3Stomee Aggregation \ 108fb3fb4f3Stomee AggregationRecord \ 109fb3fb4f3Stomee AggregationValue \ 110fb3fb4f3Stomee AvgValue \ 111fb3fb4f3Stomee Consumer \ 112fb3fb4f3Stomee ConsumerAdapter \ 113fb3fb4f3Stomee ConsumerEvent \ 114fb3fb4f3Stomee ConsumerException \ 115fb3fb4f3Stomee ConsumerListener \ 116fb3fb4f3Stomee CountValue \ 117fb3fb4f3Stomee DTraceException \ 118fb3fb4f3Stomee DataEvent \ 119fb3fb4f3Stomee Distribution \ 120fb3fb4f3Stomee Drop \ 121fb3fb4f3Stomee DropEvent \ 122fb3fb4f3Stomee Error \ 123fb3fb4f3Stomee ErrorEvent \ 124fb3fb4f3Stomee ExceptionHandler \ 125fb3fb4f3Stomee ExitRecord \ 126fb3fb4f3Stomee Flow \ 127fb3fb4f3Stomee InterfaceAttributes \ 128fb3fb4f3Stomee KernelStackRecord \ 129127bbe13Stomee KernelSymbolRecord \ 130fb3fb4f3Stomee LinearDistribution \ 131fb3fb4f3Stomee LocalConsumer \ 132fb3fb4f3Stomee LogDistribution \ 133ae94d716SRichard Lowe LogLinearDistribution \ 134fb3fb4f3Stomee MaxValue \ 135fb3fb4f3Stomee MinValue \ 136fb3fb4f3Stomee NativeException \ 137fb3fb4f3Stomee Option \ 138fb3fb4f3Stomee PrintaRecord \ 139fb3fb4f3Stomee PrintfRecord \ 140fb3fb4f3Stomee Probe \ 141fb3fb4f3Stomee ProbeData \ 142fb3fb4f3Stomee ProbeDescription \ 143fb3fb4f3Stomee ProbeInfo \ 144fb3fb4f3Stomee ProcessEvent \ 145fb3fb4f3Stomee ProcessState \ 146fb3fb4f3Stomee Program \ 147fb3fb4f3Stomee ProgramInfo \ 148fb3fb4f3Stomee Record \ 149fb3fb4f3Stomee ResourceLimitException \ 150fb3fb4f3Stomee ScalarRecord \ 151fb3fb4f3Stomee StackFrame \ 152fb3fb4f3Stomee StackValueRecord \ 153e77b06d2Stomee StddevValue \ 154fb3fb4f3Stomee SumValue \ 155127bbe13Stomee SymbolValueRecord \ 156fb3fb4f3Stomee Tuple \ 157fb3fb4f3Stomee UserStackRecord \ 158127bbe13Stomee UserSymbolRecord \ 159fb3fb4f3Stomee Utility \ 160fb3fb4f3Stomee ValueRecord 161fb3fb4f3Stomee 162fb3fb4f3StomeeAPI_CLASSES=${API_CLASSNAMES:%=%.class} 163fb3fb4f3StomeeDTRACE_API_CLASSES=${API_CLASSES:%=$(CLASSES)/$(PKGPATH)/%} 164fb3fb4f3Stomee 165fb3fb4f3Stomee 166fb3fb4f3Stomeeall: $(CLASSES) $(DTRACE_API_CLASSES) $(JNI)/$(APIHDR) 167fb3fb4f3Stomee 168fb3fb4f3Stomeeclean: 169fb3fb4f3Stomee -$(RM) $(CLASSES)/$(PKGPATH)/*.class 170fb3fb4f3Stomee -$(RM) $(JNI)/*.h 171fb3fb4f3Stomee -$(RM) -r $(DOCAPI) 172fb3fb4f3Stomee 173fb3fb4f3Stomeeclobber: clean 174fb3fb4f3Stomee -$(RM) $(JARS)/*.jar 175fb3fb4f3Stomee 176fb3fb4f3Stomee# Make the class dir, if it doesn't exist 177fb3fb4f3Stomee$(CLASSES): 178fb3fb4f3Stomee -@mkdir -p $@ 179fb3fb4f3Stomee 180fb3fb4f3Stomee# Make the directory for javah-generated headers, if it doesn't exist 181fb3fb4f3Stomee$(JNI): 182fb3fb4f3Stomee -@mkdir -p $@ 183fb3fb4f3Stomee 184fb3fb4f3Stomee$(JNI)/$(APIHDR): $(JNI) $(DTRACE_JNI_CLASSES) 185fb3fb4f3Stomee $(JAVAH) -o $@ -classpath $(CLASSES) $(JNI_FULL_CLASSNAMES) 186fb3fb4f3Stomee -@touch $@ 187fb3fb4f3Stomee 188fb3fb4f3Stomee# Rule for installing API javadoc. 189fb3fb4f3Stomee$(DOCAPIDESTDIR)/index.html: $(DTRACE_API_CLASSES) 190fb3fb4f3Stomee -@mkdir -p $(DOCAPIDESTDIR) 191fb3fb4f3Stomee -$(RM) -r $(DOCAPIDESTDIR)/* 192cc01aecaStomee cd $(APIJAVASRC); umask 022; \ 193*f936286cSAlexander Pyhalov $(JAVADOC) -protected -use -notimestamp $(XDOCLINT_OPTION) \ 194fb3fb4f3Stomee -classpath $(APICLASSPATH) -d $(DOCAPIDESTDIR) \ 195fb3fb4f3Stomee $(PKGNAME) 196fb3fb4f3Stomee 197fb3fb4f3Stomee$(CLASSES)/$(PKGPATH): 198fb3fb4f3Stomee $(INS.dir) 199fb3fb4f3Stomee 200fb3fb4f3Stomee$(JARS)/$(APIJAR): $(DTRACE_API_CLASSES) $(APIMANI) 201fb3fb4f3Stomee -@mkdir -p $(JARS) 202fb3fb4f3Stomee $(JAR) cfm $@ $(APIMANI) -C $(CLASSES) . 203fb3fb4f3Stomee 204fb3fb4f3Stomee$(JARDESTDIR): 205fb3fb4f3Stomee $(INS.dir) 206fb3fb4f3Stomee 207fb3fb4f3Stomee$(DOCDESTDIR): 208fb3fb4f3Stomee $(INS.dir) 209fb3fb4f3Stomee 210fb3fb4f3Stomee$(DOCAPIDESTDIR): 211fb3fb4f3Stomee $(INS.dir) 212fb3fb4f3Stomee 213fb3fb4f3Stomee$(DOCEXAMPLESDESTDIR): 214fb3fb4f3Stomee $(INS.dir) 215fb3fb4f3Stomee 216fb3fb4f3Stomee$(DOCHTMLDESTDIR): 217fb3fb4f3Stomee $(INS.dir) 218fb3fb4f3Stomee 219fb3fb4f3Stomee$(DOCIMAGESDESTDIR): 220fb3fb4f3Stomee $(INS.dir) 221fb3fb4f3Stomee 222fb3fb4f3Stomeeinstall: all $(JARDESTDIR) $(INSJARS) $(DOCDESTDIR) \ 223fb3fb4f3Stomee $(DOCAPIDESTDIR) \ 224fb3fb4f3Stomee $(DOCAPIDESTDIR)/index.html \ 225fb3fb4f3Stomee $(DOCEXAMPLESDESTDIR) \ 226fb3fb4f3Stomee $(DOCEXAMPLESDESTDIR)/TestAPI.java \ 227fb3fb4f3Stomee $(DOCEXAMPLESDESTDIR)/TestAPI2.java \ 228fb3fb4f3Stomee $(DOCEXAMPLESDESTDIR)/TestTarget.java \ 229fb3fb4f3Stomee $(DOCEXAMPLESDESTDIR)/hello.d \ 230fb3fb4f3Stomee $(DOCEXAMPLESDESTDIR)/intrstat.d \ 231fb3fb4f3Stomee $(DOCEXAMPLESDESTDIR)/syscall.d \ 232fb3fb4f3Stomee $(DOCEXAMPLESDESTDIR)/target.d \ 233fb3fb4f3Stomee $(DOCHTMLDESTDIR) \ 234fb3fb4f3Stomee $(DOCHTMLDESTDIR)/JavaDTraceAPI.html \ 235fb3fb4f3Stomee $(DOCHTMLDESTDIR)/fast.html \ 236fb3fb4f3Stomee $(DOCIMAGESDESTDIR) \ 237fb3fb4f3Stomee $(DOCIMAGESDESTDIR)/JavaDTraceAPI.gif 238fb3fb4f3Stomee 239fb3fb4f3Stomee# empty targets for top-level building compatability 240fb3fb4f3Stomee 241fb3fb4f3Stomeeinstall_h lint: 242fb3fb4f3Stomee 243fb3fb4f3Stomee# create API javadoc 244fb3fb4f3Stomee 245fb3fb4f3Stomeedoc: 246fb3fb4f3Stomee -@mkdir -p $(DOCAPI) 247cc01aecaStomee cd $(APIJAVASRC); umask 022; \ 248cc01aecaStomee $(JAVADOC) -protected -use -notimestamp \ 249fb3fb4f3Stomee -classpath $(APICLASSPATH) -d $(DOCAPI) \ 250fb3fb4f3Stomee $(PKGNAME) 251