Makefile revision 4d0eb50e691de4c20b1dd9976ad6839fede8a42d
0N/A#
1472N/A# CDDL HEADER START
0N/A#
0N/A# The contents of this file are subject to the terms of the
0N/A# Common Development and Distribution License (the "License").
0N/A# You may not use this file except in compliance with the License.
0N/A#
0N/A# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
0N/A# or http://www.opensolaris.org/os/licensing.
0N/A# See the License for the specific language governing permissions
0N/A# and limitations under the License.
0N/A#
0N/A# When distributing Covered Code, include this CDDL HEADER in each
0N/A# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
0N/A# If applicable, add the following below this CDDL HEADER, with the
0N/A# fields enclosed by brackets "[]" replaced with your own identifying
0N/A# information: Portions Copyright [yyyy] [name of copyright owner]
0N/A#
1472N/A# CDDL HEADER END
1472N/A#
1472N/A
0N/A#
0N/A# Copyright 2008 Sun Microsystems, Inc. All rights reserved.
0N/A# Use is subject to license terms.
0N/A#
0N/A
0N/Ainclude $(SRC)/Makefile.master
0N/A
0N/A# The Java DTrace API package
0N/A
0N/APKGPATH=org/opensolaris/os/dtrace
0N/APKGNAME=org.opensolaris.os.dtrace
0N/A
0N/A# The Java DTrace API directories
0N/A
0N/AAPIDIR=$(SRC)/lib/libdtrace_jni/java
0N/ACLASSES=$(APIDIR)/classes
0N/AJNI=$(APIDIR)/native
0N/AJARS=$(APIDIR)/lib
0N/ADOCS=$(APIDIR)/docs
0N/ADOCAPI=$(DOCS)/api
0N/ADOCEXAMPLES=$(DOCS)/examples
0N/ADOCHTML=$(DOCS)/html
0N/ADOCIMAGES=$(DOCS)/images
0N/AMANIFEST=$(APIDIR)/manifest
0N/AAPIJAVASRC=$(APIDIR)/src
0N/A
0N/A# Java DTrace API jar file, its ultimate destination, and packaging details
0N/AAPIJAR=dtrace.jar
0N/AJARDESTDIR=$(ROOT)/usr/share/lib/java
0N/AINSJARS=$(JARDESTDIR)/$(APIJAR)
0N/A# javadoc
0N/ADOCDESTDIR=$(ROOT)/usr/share/lib/java/javadoc/dtrace
0N/ADOCAPIDESTDIR=$(DOCDESTDIR)/api
0N/ADOCEXAMPLESDESTDIR=$(DOCDESTDIR)/examples
0N/ADOCHTMLDESTDIR=$(DOCDESTDIR)/html
0N/ADOCIMAGESDESTDIR=$(DOCDESTDIR)/images
0N/A
0N/A$(JARDESTDIR)/%: $(JARS)/%
0N/A $(INS.file)
0N/A
0N/A$(DOCEXAMPLESDESTDIR)/%: $(DOCEXAMPLES)/%
0N/A $(INS.file)
0N/A
0N/A$(DOCHTMLDESTDIR)/%: $(DOCHTML)/%
0N/A $(INS.file)
0N/A
0N/A$(DOCIMAGESDESTDIR)/%: $(DOCIMAGES)/%
0N/A $(INS.file)
0N/A
0N/A# Manifest files
0N/AAPIMANI= $(MANIFEST)/dtrace.mf
0N/AMANIFESTS= $(APIMANI)
0N/A
0N/A# Controlled CLASSPATH for making
0N/AAPICLASSPATH=$(CLASSES):$(APIJAVASRC)
0N/A
0N/A# javac flags
0N/AJFLAGS= -g -d $(CLASSES) -sourcepath $(APICLASSPATH)
0N/AJFLAGS += -source 1.5 -target 1.6
0N/AJFLAGS += -Xlint:all,-rawtypes,-options
0N/A
0N/A# The default make rule for Java files
0N/ACOMPILE.java=$(JAVAC) $(JFLAGS)
0N/A
0N/A$(CLASSES)/$(PKGPATH)/%.class: $(APIJAVASRC)/$(PKGPATH)/%.java
0N/A $(COMPILE.java) $<
0N/A
0N/A# javah generated headers
0N/AAPIHDR= LocalConsumer.h
0N/AJNIHDRS=$(JNI)/$(APIHDR)
0N/A
0N/A# API classes with native methods
0N/AJNI_CLASSNAMES=\
0N/A LocalConsumer
0N/A
0N/AJNI_CLASSES=${JNI_CLASSNAMES:%=%.class}
0N/ADTRACE_JNI_CLASSES=${JNI_CLASSES:%=$(CLASSES)/$(PKGPATH)/%}
0N/AJNI_FULL_CLASSNAMES=${JNI_CLASSNAMES:%=$(PKGNAME).%}
0N/A
0N/A# All API classes
0N/AAPI_CLASSNAMES=\
0N/A AbstractAggregationValue \
0N/A Aggregate \
0N/A AggregateSpec \
0N/A Aggregation \
0N/A AggregationRecord \
0N/A AggregationValue \
0N/A AvgValue \
0N/A Consumer \
0N/A ConsumerAdapter \
0N/A ConsumerEvent \
0N/A ConsumerException \
0N/A ConsumerListener \
0N/A CountValue \
0N/A DTraceException \
0N/A DataEvent \
0N/A Distribution \
0N/A Drop \
0N/A DropEvent \
0N/A Error \
0N/A ErrorEvent \
0N/A ExceptionHandler \
0N/A ExitRecord \
0N/A Flow \
0N/A InterfaceAttributes \
0N/A KernelStackRecord \
0N/A KernelSymbolRecord \
0N/A LinearDistribution \
0N/A LocalConsumer \
0N/A LogDistribution \
0N/A LogLinearDistribution \
0N/A MaxValue \
0N/A MinValue \
0N/A NativeException \
0N/A Option \
0N/A PrintaRecord \
0N/A PrintfRecord \
0N/A Probe \
0N/A ProbeData \
0N/A ProbeDescription \
0N/A ProbeInfo \
0N/A ProcessEvent \
0N/A ProcessState \
0N/A Program \
0N/A ProgramInfo \
0N/A Record \
0N/A ResourceLimitException \
0N/A ScalarRecord \
0N/A StackFrame \
0N/A StackValueRecord \
0N/A StddevValue \
0N/A SumValue \
0N/A SymbolValueRecord \
0N/A Tuple \
0N/A UserStackRecord \
0N/A UserSymbolRecord \
0N/A Utility \
0N/A ValueRecord
0N/A
0N/AAPI_CLASSES=${API_CLASSNAMES:%=%.class}
0N/ADTRACE_API_CLASSES=${API_CLASSES:%=$(CLASSES)/$(PKGPATH)/%}
0N/A
0N/A
0N/Aall: $(CLASSES) $(DTRACE_API_CLASSES) $(JNI)/$(APIHDR)
0N/A
0N/Aclean:
0N/A -$(RM) $(CLASSES)/$(PKGPATH)/*.class
0N/A -$(RM) $(JNI)/*.h
0N/A -$(RM) -r $(DOCAPI)
0N/A
0N/Aclobber: clean
0N/A -$(RM) $(JARS)/*.jar
0N/A
0N/A# Make the class dir, if it doesn't exist
0N/A$(CLASSES):
0N/A -@mkdir -p $@
0N/A
0N/A# Make the directory for javah-generated headers, if it doesn't exist
0N/A$(JNI):
0N/A -@mkdir -p $@
0N/A
0N/A$(JNI)/$(APIHDR): $(JNI) $(DTRACE_JNI_CLASSES)
0N/A $(JAVAH) -o $@ -classpath $(CLASSES) $(JNI_FULL_CLASSNAMES)
0N/A -@touch $@
0N/A
0N/A# Rule for installing API javadoc.
0N/A$(DOCAPIDESTDIR)/index.html: $(DTRACE_API_CLASSES)
0N/A -@mkdir -p $(DOCAPIDESTDIR)
0N/A -$(RM) -r $(DOCAPIDESTDIR)/*
0N/A cd $(APIJAVASRC); umask 022; \
0N/A $(JAVADOC) -protected -use -notimestamp \
0N/A -classpath $(APICLASSPATH) -d $(DOCAPIDESTDIR) \
0N/A $(PKGNAME)
0N/A
0N/A$(CLASSES)/$(PKGPATH):
0N/A $(INS.dir)
0N/A
0N/A$(JARS)/$(APIJAR): $(DTRACE_API_CLASSES) $(APIMANI)
0N/A -@mkdir -p $(JARS)
0N/A $(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)