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