xref: /onnv-gate/usr/src/lib/libdtrace_jni/java/Makefile (revision 6136:b1f0a0698377)
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#
23*6136Stomee# Copyright 2008 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
823396StomeeJFLAGS += -target 1.5
83*6136StomeeJFLAGS += -Xlint
841449Stomee
851449Stomee# The default make rule for Java files
861449StomeeCOMPILE.java=$(JAVAC) $(JFLAGS)
871449Stomee
881449Stomee$(CLASSES)/$(PKGPATH)/%.class:	$(APIJAVASRC)/$(PKGPATH)/%.java
891449Stomee				$(COMPILE.java) $<
901449Stomee
911449Stomee# javah generated headers
921449StomeeAPIHDR= LocalConsumer.h
931449StomeeJNIHDRS=$(JNI)/$(APIHDRS)
941449Stomee
951449Stomee# API classes with native methods
961449StomeeJNI_CLASSNAMES=\
971449Stomee    LocalConsumer
981449Stomee
991449StomeeJNI_CLASSES=${JNI_CLASSNAMES:%=%.class}
1001449StomeeDTRACE_JNI_CLASSES=${JNI_CLASSES:%=$(CLASSES)/$(PKGPATH)/%}
1011449StomeeJNI_FULL_CLASSNAMES=${JNI_CLASSNAMES:%=$(PKGNAME).%}
1021449Stomee
1031449Stomee# All API classes
1041449StomeeAPI_CLASSNAMES=\
1051449Stomee	AbstractAggregationValue \
1061449Stomee	Aggregate \
1071449Stomee	AggregateSpec \
1081449Stomee	Aggregation \
1091449Stomee	AggregationRecord \
1101449Stomee	AggregationValue \
1111449Stomee	AvgValue \
1121449Stomee	Consumer \
1131449Stomee	ConsumerAdapter \
1141449Stomee	ConsumerEvent \
1151449Stomee	ConsumerException \
1161449Stomee	ConsumerListener \
1171449Stomee	CountValue \
1181449Stomee	DTraceException \
1191449Stomee	DataEvent \
1201449Stomee	Distribution \
1211449Stomee	Drop \
1221449Stomee	DropEvent \
1231449Stomee	Error \
1241449Stomee	ErrorEvent \
1251449Stomee	ExceptionHandler \
1261449Stomee	ExitRecord \
1271449Stomee	Flow \
1281449Stomee	InterfaceAttributes \
1291449Stomee	KernelStackRecord \
1302777Stomee	KernelSymbolRecord \
1311449Stomee	LinearDistribution \
1321449Stomee	LocalConsumer \
1331449Stomee	LogDistribution \
1341449Stomee	MaxValue \
1351449Stomee	MinValue \
1361449Stomee	NativeException \
1371449Stomee	Option \
1381449Stomee	PrintaRecord \
1391449Stomee	PrintfRecord \
1401449Stomee	Probe \
1411449Stomee	ProbeData \
1421449Stomee	ProbeDescription \
1431449Stomee	ProbeInfo \
1441449Stomee	ProcessEvent \
1451449Stomee	ProcessState \
1461449Stomee	Program \
1471449Stomee	ProgramInfo \
1481449Stomee	Record \
1491449Stomee	ResourceLimitException \
1501449Stomee	ScalarRecord \
1511449Stomee	StackFrame \
1521449Stomee	StackValueRecord \
153*6136Stomee	StddevValue \
1541449Stomee	SumValue \
1552777Stomee	SymbolValueRecord \
1561449Stomee	Tuple \
1571449Stomee	UserStackRecord \
1582777Stomee	UserSymbolRecord \
1591449Stomee	Utility \
1601449Stomee	ValueRecord
1611449Stomee
1621449StomeeAPI_CLASSES=${API_CLASSNAMES:%=%.class}
1631449StomeeDTRACE_API_CLASSES=${API_CLASSES:%=$(CLASSES)/$(PKGPATH)/%}
1641449Stomee
1651449Stomee
1661449Stomeeall:            $(CLASSES) $(DTRACE_API_CLASSES) $(JNI)/$(APIHDR)
1671449Stomee
1681449Stomeeclean:
1691449Stomee		-$(RM) $(CLASSES)/$(PKGPATH)/*.class
1701449Stomee		-$(RM) $(JNI)/*.h
1711449Stomee		-$(RM) -r $(DOCAPI)
1721449Stomee
1731449Stomeeclobber:	clean
1741449Stomee		-$(RM) $(JARS)/*.jar
1751449Stomee
1761449Stomee# Make the class dir, if it doesn't exist
1771449Stomee$(CLASSES):
1781449Stomee		-@mkdir -p $@
1791449Stomee
1801449Stomee# Make the directory for javah-generated headers, if it doesn't exist
1811449Stomee$(JNI):
1821449Stomee		-@mkdir -p $@
1831449Stomee
1841449Stomee$(JNI)/$(APIHDR): $(JNI) $(DTRACE_JNI_CLASSES)
1851449Stomee		$(JAVAH) -o $@ -classpath $(CLASSES) $(JNI_FULL_CLASSNAMES)
1861449Stomee		-@touch $@
1871449Stomee
1881449Stomee# Rule for installing API javadoc.
1891449Stomee$(DOCAPIDESTDIR)/index.html: $(DTRACE_API_CLASSES)
1901449Stomee		-@mkdir -p $(DOCAPIDESTDIR)
1911449Stomee		-$(RM) -r $(DOCAPIDESTDIR)/*
1921513Stomee		cd $(APIJAVASRC); umask 022; \
1931513Stomee		$(JAVADOC) -protected -use -notimestamp \
1941449Stomee		-classpath $(APICLASSPATH) -d $(DOCAPIDESTDIR) \
1951449Stomee		$(PKGNAME)
1961449Stomee
1971449Stomee$(CLASSES)/$(PKGPATH):
1981449Stomee		$(INS.dir)
1991449Stomee
2001449Stomee$(JARS)/$(APIJAR): $(DTRACE_API_CLASSES) $(APIMANI)
2011449Stomee		-@mkdir -p $(JARS)
2021449Stomee		$(JAR) cfm $@ $(APIMANI) -C $(CLASSES) .
2031449Stomee
2041449Stomee$(JARDESTDIR):
2051449Stomee		$(INS.dir)
2061449Stomee
2071449Stomee$(DOCDESTDIR):
2081449Stomee		$(INS.dir)
2091449Stomee
2101449Stomee$(DOCAPIDESTDIR):
2111449Stomee		$(INS.dir)
2121449Stomee
2131449Stomee$(DOCEXAMPLESDESTDIR):
2141449Stomee		$(INS.dir)
2151449Stomee
2161449Stomee$(DOCHTMLDESTDIR):
2171449Stomee		$(INS.dir)
2181449Stomee
2191449Stomee$(DOCIMAGESDESTDIR):
2201449Stomee		$(INS.dir)
2211449Stomee
2221449Stomeeinstall:	all $(JARDESTDIR) $(INSJARS) $(DOCDESTDIR) \
2231449Stomee	$(DOCAPIDESTDIR) \
2241449Stomee	$(DOCAPIDESTDIR)/index.html \
2251449Stomee	$(DOCEXAMPLESDESTDIR) \
2261449Stomee	$(DOCEXAMPLESDESTDIR)/TestAPI.java \
2271449Stomee	$(DOCEXAMPLESDESTDIR)/TestAPI2.java \
2281449Stomee	$(DOCEXAMPLESDESTDIR)/TestTarget.java \
2291449Stomee	$(DOCEXAMPLESDESTDIR)/hello.d \
2301449Stomee	$(DOCEXAMPLESDESTDIR)/intrstat.d \
2311449Stomee	$(DOCEXAMPLESDESTDIR)/syscall.d \
2321449Stomee	$(DOCEXAMPLESDESTDIR)/target.d \
2331449Stomee	$(DOCHTMLDESTDIR) \
2341449Stomee	$(DOCHTMLDESTDIR)/JavaDTraceAPI.html \
2351449Stomee	$(DOCHTMLDESTDIR)/fast.html \
2361449Stomee	$(DOCIMAGESDESTDIR) \
2371449Stomee	$(DOCIMAGESDESTDIR)/JavaDTraceAPI.gif
2381449Stomee
2391449Stomee# empty targets for top-level building compatability
2401449Stomee
2411449Stomeeinstall_h lint:
2421449Stomee
2431449Stomee# create API javadoc
2441449Stomee
2451449Stomeedoc:
2461449Stomee		-@mkdir -p $(DOCAPI)
2471513Stomee		cd $(APIJAVASRC); umask 022; \
2481513Stomee		$(JAVADOC) -protected -use -notimestamp \
2491449Stomee		-classpath $(APICLASSPATH) -d $(DOCAPI) \
2501449Stomee		$(PKGNAME)
251