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