Makefile revision 623f698997a2c06bc9f6ff9c7fee8eeae5e411bb
91934be261c16d036521379306a74b0991720e67joncruz#
91934be261c16d036521379306a74b0991720e67joncruz# CDDL HEADER START
91934be261c16d036521379306a74b0991720e67joncruz#
91934be261c16d036521379306a74b0991720e67joncruz# The contents of this file are subject to the terms of the
91934be261c16d036521379306a74b0991720e67joncruz# Common Development and Distribution License (the "License").
91934be261c16d036521379306a74b0991720e67joncruz# You may not use this file except in compliance with the License.
91934be261c16d036521379306a74b0991720e67joncruz#
9dc68827cbd515262ecb8d5ae8547d9e82c72e00Jon A. Cruz# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9dc68827cbd515262ecb8d5ae8547d9e82c72e00Jon A. Cruz# or http://www.opensolaris.org/os/licensing.
91934be261c16d036521379306a74b0991720e67joncruz# See the License for the specific language governing permissions
91934be261c16d036521379306a74b0991720e67joncruz# and limitations under the License.
91934be261c16d036521379306a74b0991720e67joncruz#
91934be261c16d036521379306a74b0991720e67joncruz# When distributing Covered Code, include this CDDL HEADER in each
91934be261c16d036521379306a74b0991720e67joncruz# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
91934be261c16d036521379306a74b0991720e67joncruz# If applicable, add the following below this CDDL HEADER, with the
91934be261c16d036521379306a74b0991720e67joncruz# fields enclosed by brackets "[]" replaced with your own identifying
91934be261c16d036521379306a74b0991720e67joncruz# information: Portions Copyright [yyyy] [name of copyright owner]
91934be261c16d036521379306a74b0991720e67joncruz#
91934be261c16d036521379306a74b0991720e67joncruz# CDDL HEADER END
91934be261c16d036521379306a74b0991720e67joncruz#
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruz#
91934be261c16d036521379306a74b0991720e67joncruz# Copyright 2007 Sun Microsystems, Inc. All rights reserved.
91934be261c16d036521379306a74b0991720e67joncruz# Use is subject to license terms.
91934be261c16d036521379306a74b0991720e67joncruz#
91934be261c16d036521379306a74b0991720e67joncruz# ident "%Z%%M% %I% %E% SMI"
91934be261c16d036521379306a74b0991720e67joncruz#
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruzinclude $(SRC)/Makefile.master
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruz# The Java DTrace API package
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruzPKGPATH=org/opensolaris/os/dtrace
91934be261c16d036521379306a74b0991720e67joncruzPKGNAME=org.opensolaris.os.dtrace
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruz# The Java DTrace API directories
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruzAPIDIR=$(SRC)/lib/libdtrace_jni/java
91934be261c16d036521379306a74b0991720e67joncruzCLASSES=$(APIDIR)/classes
91934be261c16d036521379306a74b0991720e67joncruzJNI=$(APIDIR)/native
91934be261c16d036521379306a74b0991720e67joncruzJARS=$(APIDIR)/lib
91934be261c16d036521379306a74b0991720e67joncruzDOCS=$(APIDIR)/docs
91934be261c16d036521379306a74b0991720e67joncruzDOCAPI=$(DOCS)/api
91934be261c16d036521379306a74b0991720e67joncruzDOCEXAMPLES=$(DOCS)/examples
91934be261c16d036521379306a74b0991720e67joncruzDOCHTML=$(DOCS)/html
91934be261c16d036521379306a74b0991720e67joncruzDOCIMAGES=$(DOCS)/images
91934be261c16d036521379306a74b0991720e67joncruzMANIFEST=$(APIDIR)/manifest
91934be261c16d036521379306a74b0991720e67joncruzAPIJAVASRC=$(APIDIR)/src
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruz# Java DTrace API jar file, its ultimate destination, and packaging details
91934be261c16d036521379306a74b0991720e67joncruzAPIJAR=dtrace.jar
91934be261c16d036521379306a74b0991720e67joncruzJARDESTDIR=$(ROOT)/usr/share/lib/java
09ba3247163582bf2e30e17c4c154aa259ce038acilixINSJARS=$(JARDESTDIR)/$(APIJAR)
91934be261c16d036521379306a74b0991720e67joncruz# javadoc
91934be261c16d036521379306a74b0991720e67joncruzDOCDESTDIR=$(ROOT)/usr/share/lib/java/javadoc/dtrace
91934be261c16d036521379306a74b0991720e67joncruzDOCAPIDESTDIR=$(DOCDESTDIR)/api
91934be261c16d036521379306a74b0991720e67joncruzDOCEXAMPLESDESTDIR=$(DOCDESTDIR)/examples
9dc68827cbd515262ecb8d5ae8547d9e82c72e00Jon A. CruzDOCHTMLDESTDIR=$(DOCDESTDIR)/html
91934be261c16d036521379306a74b0991720e67joncruzDOCIMAGESDESTDIR=$(DOCDESTDIR)/images
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruz$(JARDESTDIR)/%: $(JARS)/%
9dc68827cbd515262ecb8d5ae8547d9e82c72e00Jon A. Cruz $(INS.file)
91934be261c16d036521379306a74b0991720e67joncruz
d5ad05ac17abfd7d2eae333a8c1233971e1c1a8fAbhishek Sharma Public$(DOCEXAMPLESDESTDIR)/%: $(DOCEXAMPLES)/%
d5ad05ac17abfd7d2eae333a8c1233971e1c1a8fAbhishek Sharma Public $(INS.file)
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruz$(DOCHTMLDESTDIR)/%: $(DOCHTML)/%
91934be261c16d036521379306a74b0991720e67joncruz $(INS.file)
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruz$(DOCIMAGESDESTDIR)/%: $(DOCIMAGES)/%
91934be261c16d036521379306a74b0991720e67joncruz $(INS.file)
ddc1f1d1291eb21b244c7328d260c7d4a43be2fcbuliabyak
91934be261c16d036521379306a74b0991720e67joncruz# Manifest files
91934be261c16d036521379306a74b0991720e67joncruzAPIMANI= $(MANIFEST)/dtrace.mf
91934be261c16d036521379306a74b0991720e67joncruzMANIFESTS= $(APIMANI)
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruz# Controlled CLASSPATH for making
91934be261c16d036521379306a74b0991720e67joncruzAPICLASSPATH=$(CLASSES):$(APIJAVASRC)
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruz# javac flags
d5ad05ac17abfd7d2eae333a8c1233971e1c1a8fAbhishek Sharma PublicJFLAGS= -g -d $(CLASSES) -sourcepath $(APICLASSPATH) -deprecation
91934be261c16d036521379306a74b0991720e67joncruzJFLAGS += -target 1.5
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruz# The default make rule for Java files
91934be261c16d036521379306a74b0991720e67joncruzCOMPILE.java=$(JAVAC) $(JFLAGS)
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruz$(CLASSES)/$(PKGPATH)/%.class: $(APIJAVASRC)/$(PKGPATH)/%.java
91934be261c16d036521379306a74b0991720e67joncruz $(COMPILE.java) $<
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruz# javah generated headers
91934be261c16d036521379306a74b0991720e67joncruzAPIHDR= LocalConsumer.h
91934be261c16d036521379306a74b0991720e67joncruzJNIHDRS=$(JNI)/$(APIHDRS)
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruz# API classes with native methods
91934be261c16d036521379306a74b0991720e67joncruzJNI_CLASSNAMES=\
91934be261c16d036521379306a74b0991720e67joncruz LocalConsumer
09ba3247163582bf2e30e17c4c154aa259ce038acilix
91934be261c16d036521379306a74b0991720e67joncruzJNI_CLASSES=${JNI_CLASSNAMES:%=%.class}
884edd729abf49df5b3c9a4679a0d5b6c85d182cpjrmDTRACE_JNI_CLASSES=${JNI_CLASSES:%=$(CLASSES)/$(PKGPATH)/%}
91934be261c16d036521379306a74b0991720e67joncruzJNI_FULL_CLASSNAMES=${JNI_CLASSNAMES:%=$(PKGNAME).%}
91934be261c16d036521379306a74b0991720e67joncruz
91934be261c16d036521379306a74b0991720e67joncruz# All API classes
91934be261c16d036521379306a74b0991720e67joncruzAPI_CLASSNAMES=\
91934be261c16d036521379306a74b0991720e67joncruz AbstractAggregationValue \
91934be261c16d036521379306a74b0991720e67joncruz Aggregate \
91934be261c16d036521379306a74b0991720e67joncruz AggregateSpec \
91934be261c16d036521379306a74b0991720e67joncruz Aggregation \
91934be261c16d036521379306a74b0991720e67joncruz AggregationRecord \
91934be261c16d036521379306a74b0991720e67joncruz AggregationValue \
91934be261c16d036521379306a74b0991720e67joncruz AvgValue \
91934be261c16d036521379306a74b0991720e67joncruz Consumer \
91934be261c16d036521379306a74b0991720e67joncruz ConsumerAdapter \
91934be261c16d036521379306a74b0991720e67joncruz ConsumerEvent \
91934be261c16d036521379306a74b0991720e67joncruz ConsumerException \
91934be261c16d036521379306a74b0991720e67joncruz ConsumerListener \
e4a9f366dbcb54f76b8c42869fa6873808132357gouldtj CountValue \
91934be261c16d036521379306a74b0991720e67joncruz DTraceException \
91934be261c16d036521379306a74b0991720e67joncruz DataEvent \
91934be261c16d036521379306a74b0991720e67joncruz Distribution \
91934be261c16d036521379306a74b0991720e67joncruz Drop \
91934be261c16d036521379306a74b0991720e67joncruz DropEvent \
91934be261c16d036521379306a74b0991720e67joncruz Error \
91934be261c16d036521379306a74b0991720e67joncruz ErrorEvent \
91934be261c16d036521379306a74b0991720e67joncruz ExceptionHandler \
91934be261c16d036521379306a74b0991720e67joncruz ExitRecord \
91934be261c16d036521379306a74b0991720e67joncruz Flow \
91934be261c16d036521379306a74b0991720e67joncruz InterfaceAttributes \
91934be261c16d036521379306a74b0991720e67joncruz KernelStackRecord \
91934be261c16d036521379306a74b0991720e67joncruz KernelSymbolRecord \
91934be261c16d036521379306a74b0991720e67joncruz LinearDistribution \
91934be261c16d036521379306a74b0991720e67joncruz LocalConsumer \
91934be261c16d036521379306a74b0991720e67joncruz LogDistribution \
MaxValue \
MinValue \
NativeException \
Option \
PrintaRecord \
PrintfRecord \
Probe \
ProbeData \
ProbeDescription \
ProbeInfo \
ProcessEvent \
ProcessState \
Program \
ProgramInfo \
Record \
ResourceLimitException \
ScalarRecord \
StackFrame \
StackValueRecord \
SumValue \
SymbolValueRecord \
Tuple \
UserStackRecord \
UserSymbolRecord \
Utility \
ValueRecord
API_CLASSES=${API_CLASSNAMES:%=%.class}
DTRACE_API_CLASSES=${API_CLASSES:%=$(CLASSES)/$(PKGPATH)/%}
all: $(CLASSES) $(DTRACE_API_CLASSES) $(JNI)/$(APIHDR)
clean:
-$(RM) $(CLASSES)/$(PKGPATH)/*.class
-$(RM) $(JNI)/*.h
-$(RM) -r $(DOCAPI)
clobber: clean
-$(RM) $(JARS)/*.jar
# Make the class dir, if it doesn't exist
$(CLASSES):
-@mkdir -p $@
# Make the directory for javah-generated headers, if it doesn't exist
$(JNI):
-@mkdir -p $@
$(JNI)/$(APIHDR): $(JNI) $(DTRACE_JNI_CLASSES)
$(JAVAH) -o $@ -classpath $(CLASSES) $(JNI_FULL_CLASSNAMES)
-@touch $@
# Rule for installing API javadoc.
$(DOCAPIDESTDIR)/index.html: $(DTRACE_API_CLASSES)
-@mkdir -p $(DOCAPIDESTDIR)
-$(RM) -r $(DOCAPIDESTDIR)/*
cd $(APIJAVASRC); umask 022; \
$(JAVADOC) -protected -use -notimestamp \
-classpath $(APICLASSPATH) -d $(DOCAPIDESTDIR) \
$(PKGNAME)
$(CLASSES)/$(PKGPATH):
$(INS.dir)
$(JARS)/$(APIJAR): $(DTRACE_API_CLASSES) $(APIMANI)
-@mkdir -p $(JARS)
$(JAR) cfm $@ $(APIMANI) -C $(CLASSES) .
$(JARDESTDIR):
$(INS.dir)
$(DOCDESTDIR):
$(INS.dir)
$(DOCAPIDESTDIR):
$(INS.dir)
$(DOCEXAMPLESDESTDIR):
$(INS.dir)
$(DOCHTMLDESTDIR):
$(INS.dir)
$(DOCIMAGESDESTDIR):
$(INS.dir)
install: all $(JARDESTDIR) $(INSJARS) $(DOCDESTDIR) \
$(DOCAPIDESTDIR) \
$(DOCAPIDESTDIR)/index.html \
$(DOCEXAMPLESDESTDIR) \
$(DOCEXAMPLESDESTDIR)/TestAPI.java \
$(DOCEXAMPLESDESTDIR)/TestAPI2.java \
$(DOCEXAMPLESDESTDIR)/TestTarget.java \
$(DOCEXAMPLESDESTDIR)/hello.d \
$(DOCEXAMPLESDESTDIR)/intrstat.d \
$(DOCEXAMPLESDESTDIR)/syscall.d \
$(DOCEXAMPLESDESTDIR)/target.d \
$(DOCHTMLDESTDIR) \
$(DOCHTMLDESTDIR)/JavaDTraceAPI.html \
$(DOCHTMLDESTDIR)/fast.html \
$(DOCIMAGESDESTDIR) \
$(DOCIMAGESDESTDIR)/JavaDTraceAPI.gif
# empty targets for top-level building compatability
install_h lint:
# create API javadoc
doc:
-@mkdir -p $(DOCAPI)
cd $(APIJAVASRC); umask 022; \
$(JAVADOC) -protected -use -notimestamp \
-classpath $(APICLASSPATH) -d $(DOCAPI) \
$(PKGNAME)