xref: /titanic_52/usr/src/lib/libdtrace_jni/java/Makefile (revision f936286c99fb83153e4bfd870eb2830a990a82c1)
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