xref: /onnv-gate/usr/src/lib/libdtrace_jni/java/Makefile (revision 1513:5881cbfded11)
11449Stomee#
21449Stomee# CDDL HEADER START
31449Stomee#
41449Stomee# The contents of this file are subject to the terms of the
51449Stomee# Common Development and Distribution License (the "License").
61449Stomee# You may not use this file except in compliance with the License.
71449Stomee#
81449Stomee# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
91449Stomee# or http://www.opensolaris.org/os/licensing.
101449Stomee# See the License for the specific language governing permissions
111449Stomee# and limitations under the License.
121449Stomee#
131449Stomee# When distributing Covered Code, include this CDDL HEADER in each
141449Stomee# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
151449Stomee# If applicable, add the following below this CDDL HEADER, with the
161449Stomee# fields enclosed by brackets "[]" replaced with your own identifying
171449Stomee# information: Portions Copyright [yyyy] [name of copyright owner]
181449Stomee#
191449Stomee# CDDL HEADER END
201449Stomee#
211449Stomee
221449Stomee#
231449Stomee# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
241449Stomee# Use is subject to license terms.
251449Stomee#
261449Stomee# ident	"%Z%%M%	%I%	%E% SMI"
271449Stomee#
281449Stomee
291449Stomeeinclude $(SRC)/Makefile.master
301449Stomee
311449Stomee# The Java DTrace API package
321449Stomee
331449StomeePKGPATH=org/opensolaris/os/dtrace
341449StomeePKGNAME=org.opensolaris.os.dtrace
351449Stomee
361449Stomee# The Java DTrace API directories
371449Stomee
381449StomeeAPIDIR=$(SRC)/lib/libdtrace_jni/java
391449StomeeCLASSES=$(APIDIR)/classes
401449StomeeJNI=$(APIDIR)/native
411449StomeeJARS=$(APIDIR)/lib
421449StomeeDOCS=$(APIDIR)/docs
431449StomeeDOCAPI=$(DOCS)/api
441449StomeeDOCEXAMPLES=$(DOCS)/examples
451449StomeeDOCHTML=$(DOCS)/html
461449StomeeDOCIMAGES=$(DOCS)/images
471449StomeeMANIFEST=$(APIDIR)/manifest
481449StomeeAPIJAVASRC=$(APIDIR)/src
491449Stomee
501449Stomee# Java DTrace API jar file, its ultimate destination, and packaging details
511449StomeeAPIJAR=dtrace.jar
521449StomeeJARDESTDIR=$(ROOT)/usr/share/lib/java
531449StomeeINSJARS=$(JARDESTDIR)/$(APIJAR)
541449Stomee# javadoc
551449StomeeDOCDESTDIR=$(ROOT)/usr/share/lib/java/javadoc/dtrace
561449StomeeDOCAPIDESTDIR=$(DOCDESTDIR)/api
571449StomeeDOCEXAMPLESDESTDIR=$(DOCDESTDIR)/examples
581449StomeeDOCHTMLDESTDIR=$(DOCDESTDIR)/html
591449StomeeDOCIMAGESDESTDIR=$(DOCDESTDIR)/images
601449Stomee
611449Stomee$(JARDESTDIR)/%: $(JARS)/%
621449Stomee	$(INS.file)
631449Stomee
641449Stomee$(DOCEXAMPLESDESTDIR)/%: $(DOCEXAMPLES)/%
651449Stomee	$(INS.file)
661449Stomee
671449Stomee$(DOCHTMLDESTDIR)/%: $(DOCHTML)/%
681449Stomee	$(INS.file)
691449Stomee
701449Stomee$(DOCIMAGESDESTDIR)/%: $(DOCIMAGES)/%
711449Stomee	$(INS.file)
721449Stomee
731449Stomee# Manifest files
741449StomeeAPIMANI= $(MANIFEST)/dtrace.mf
751449StomeeMANIFESTS= $(APIMANI)
761449Stomee
771449Stomee# Controlled CLASSPATH for making
781449StomeeAPICLASSPATH=$(CLASSES):$(APIJAVASRC)
791449Stomee
801449Stomee# javac flags
811449StomeeJFLAGS= -g -d $(CLASSES) -sourcepath $(APICLASSPATH) -deprecation
821449Stomee
831449Stomee# The default make rule for Java files
841449StomeeCOMPILE.java=$(JAVAC) $(JFLAGS)
851449Stomee
861449Stomee$(CLASSES)/$(PKGPATH)/%.class:	$(APIJAVASRC)/$(PKGPATH)/%.java
871449Stomee				$(COMPILE.java) $<
881449Stomee
891449Stomee# javah generated headers
901449StomeeAPIHDR= LocalConsumer.h
911449StomeeJNIHDRS=$(JNI)/$(APIHDRS)
921449Stomee
931449Stomee# API classes with native methods
941449StomeeJNI_CLASSNAMES=\
951449Stomee    LocalConsumer
961449Stomee
971449StomeeJNI_CLASSES=${JNI_CLASSNAMES:%=%.class}
981449StomeeDTRACE_JNI_CLASSES=${JNI_CLASSES:%=$(CLASSES)/$(PKGPATH)/%}
991449StomeeJNI_FULL_CLASSNAMES=${JNI_CLASSNAMES:%=$(PKGNAME).%}
1001449Stomee
1011449Stomee# All API classes
1021449StomeeAPI_CLASSNAMES=\
1031449Stomee	AbstractAggregationValue \
1041449Stomee	Aggregate \
1051449Stomee	AggregateSpec \
1061449Stomee	Aggregation \
1071449Stomee	AggregationRecord \
1081449Stomee	AggregationValue \
1091449Stomee	AvgValue \
1101449Stomee	Consumer \
1111449Stomee	ConsumerAdapter \
1121449Stomee	ConsumerEvent \
1131449Stomee	ConsumerException \
1141449Stomee	ConsumerListener \
1151449Stomee	CountValue \
1161449Stomee	DTraceException \
1171449Stomee	DataEvent \
1181449Stomee	Distribution \
1191449Stomee	Drop \
1201449Stomee	DropEvent \
1211449Stomee	Error \
1221449Stomee	ErrorEvent \
1231449Stomee	ExceptionHandler \
1241449Stomee	ExitRecord \
1251449Stomee	Flow \
1261449Stomee	InterfaceAttributes \
1271449Stomee	KernelStackRecord \
1281449Stomee	LinearDistribution \
1291449Stomee	LocalConsumer \
1301449Stomee	LogDistribution \
1311449Stomee	MaxValue \
1321449Stomee	MinValue \
1331449Stomee	NativeException \
1341449Stomee	Option \
1351449Stomee	PrintaRecord \
1361449Stomee	PrintfRecord \
1371449Stomee	Probe \
1381449Stomee	ProbeData \
1391449Stomee	ProbeDescription \
1401449Stomee	ProbeInfo \
1411449Stomee	ProcessEvent \
1421449Stomee	ProcessState \
1431449Stomee	Program \
1441449Stomee	ProgramInfo \
1451449Stomee	Record \
1461449Stomee	ResourceLimitException \
1471449Stomee	ScalarRecord \
1481449Stomee	StackFrame \
1491449Stomee	StackValueRecord \
1501449Stomee	SumValue \
1511449Stomee	Tuple \
1521449Stomee	UserStackRecord \
1531449Stomee	Utility \
1541449Stomee	ValueRecord
1551449Stomee
1561449StomeeAPI_CLASSES=${API_CLASSNAMES:%=%.class}
1571449StomeeDTRACE_API_CLASSES=${API_CLASSES:%=$(CLASSES)/$(PKGPATH)/%}
1581449Stomee
1591449Stomee
1601449Stomeeall:            $(CLASSES) $(DTRACE_API_CLASSES) $(JNI)/$(APIHDR)
1611449Stomee
1621449Stomeeclean:
1631449Stomee		-$(RM) $(CLASSES)/$(PKGPATH)/*.class
1641449Stomee		-$(RM) $(JNI)/*.h
1651449Stomee		-$(RM) -r $(DOCAPI)
1661449Stomee
1671449Stomeeclobber:	clean
1681449Stomee		-$(RM) $(JARS)/*.jar
1691449Stomee
1701449Stomee# Make the class dir, if it doesn't exist
1711449Stomee$(CLASSES):
1721449Stomee		-@mkdir -p $@
1731449Stomee
1741449Stomee# Make the directory for javah-generated headers, if it doesn't exist
1751449Stomee$(JNI):
1761449Stomee		-@mkdir -p $@
1771449Stomee
1781449Stomee$(JNI)/$(APIHDR): $(JNI) $(DTRACE_JNI_CLASSES)
1791449Stomee		$(JAVAH) -o $@ -classpath $(CLASSES) $(JNI_FULL_CLASSNAMES)
1801449Stomee		-@touch $@
1811449Stomee
1821449Stomee# Rule for installing API javadoc.
1831449Stomee$(DOCAPIDESTDIR)/index.html: $(DTRACE_API_CLASSES)
1841449Stomee		-@mkdir -p $(DOCAPIDESTDIR)
1851449Stomee		-$(RM) -r $(DOCAPIDESTDIR)/*
186*1513Stomee		cd $(APIJAVASRC); umask 022; \
187*1513Stomee		$(JAVADOC) -protected -use -notimestamp \
1881449Stomee		-classpath $(APICLASSPATH) -d $(DOCAPIDESTDIR) \
1891449Stomee		$(PKGNAME)
1901449Stomee
1911449Stomee$(CLASSES)/$(PKGPATH):
1921449Stomee		$(INS.dir)
1931449Stomee
1941449Stomee$(JARS)/$(APIJAR): $(DTRACE_API_CLASSES) $(APIMANI)
1951449Stomee		-@mkdir -p $(JARS)
1961449Stomee		$(JAR) cfm $@ $(APIMANI) -C $(CLASSES) .
1971449Stomee
1981449Stomee$(JARDESTDIR):
1991449Stomee		$(INS.dir)
2001449Stomee
2011449Stomee$(DOCDESTDIR):
2021449Stomee		$(INS.dir)
2031449Stomee
2041449Stomee$(DOCAPIDESTDIR):
2051449Stomee		$(INS.dir)
2061449Stomee
2071449Stomee$(DOCEXAMPLESDESTDIR):
2081449Stomee		$(INS.dir)
2091449Stomee
2101449Stomee$(DOCHTMLDESTDIR):
2111449Stomee		$(INS.dir)
2121449Stomee
2131449Stomee$(DOCIMAGESDESTDIR):
2141449Stomee		$(INS.dir)
2151449Stomee
2161449Stomeeinstall:	all $(JARDESTDIR) $(INSJARS) $(DOCDESTDIR) \
2171449Stomee	$(DOCAPIDESTDIR) \
2181449Stomee	$(DOCAPIDESTDIR)/index.html \
2191449Stomee	$(DOCEXAMPLESDESTDIR) \
2201449Stomee	$(DOCEXAMPLESDESTDIR)/TestAPI.java \
2211449Stomee	$(DOCEXAMPLESDESTDIR)/TestAPI2.java \
2221449Stomee	$(DOCEXAMPLESDESTDIR)/TestTarget.java \
2231449Stomee	$(DOCEXAMPLESDESTDIR)/hello.d \
2241449Stomee	$(DOCEXAMPLESDESTDIR)/intrstat.d \
2251449Stomee	$(DOCEXAMPLESDESTDIR)/syscall.d \
2261449Stomee	$(DOCEXAMPLESDESTDIR)/target.d \
2271449Stomee	$(DOCHTMLDESTDIR) \
2281449Stomee	$(DOCHTMLDESTDIR)/JavaDTraceAPI.html \
2291449Stomee	$(DOCHTMLDESTDIR)/fast.html \
2301449Stomee	$(DOCIMAGESDESTDIR) \
2311449Stomee	$(DOCIMAGESDESTDIR)/JavaDTraceAPI.gif
2321449Stomee
2331449Stomee# empty targets for top-level building compatability
2341449Stomee
2351449Stomeeinstall_h lint:
2361449Stomee
2371449Stomee# create API javadoc
2381449Stomee
2391449Stomeedoc:
2401449Stomee		-@mkdir -p $(DOCAPI)
241*1513Stomee		cd $(APIJAVASRC); umask 022; \
242*1513Stomee		$(JAVADOC) -protected -use -notimestamp \
2431449Stomee		-classpath $(APICLASSPATH) -d $(DOCAPI) \
2441449Stomee		$(PKGNAME)
245