1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21#
22# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23# Use is subject to license terms.
24#
25# Makefile configuration for SLP.
26
27# The SLP Java package
28
29PKGPATH=com/sun/slp
30PKGNAME=com.sun.slp
31
32# The SLP directories.
33
34SLPDIR=$(SRC)/lib/libslp
35DOC=$(SLPDIR)/javadoc
36CLASSES=$(SLPDIR)/classes
37SLPJAVASRC=$(SLPDIR)/javalib
38
39# SLP jar file, its ultimate destination, and packaging details
40SLPJAR=slp.jar
41SLPDJAR=slpd.jar
42JARDESTDIR=$(ROOT)/usr/share/lib/slp
43INSJARS=$(JARDESTDIR)/$(SLPJAR) $(JARDESTDIR)/$(SLPDJAR)
44
45$(JARDESTDIR)/%: $(CLASSES)/%
46	$(INS.file)
47
48# Manifest files
49SLPMANI= $(CLASSES)/manifest.slp
50SLPDMANI= $(CLASSES)/manifest.slpd
51
52MANIFESTS= $(SLPMANI) $(SLPDMANI)
53
54# Controlled CLASSPATH for making
55SLPCLASSPATH=$(CLASSES):$(SLPJAVASRC)
56
57# javac flags
58JFLAGS= -O -d $(CLASSES) -sourcepath $(SLPCLASSPATH)
59JFLAGS += -source 7 -target 7 -Xlint:-options
60
61# The default make rule for Java files
62COMPILE.java=$(JAVAC) $(JFLAGS)
63
64$(CLASSES)/$(PKGPATH)/%.class:	$(SLPJAVASRC)/$(PKGPATH)/%.java
65				$(COMPILE.java) $<
66
67# Where to put the message files
68MSGDIR =        $(ROOT)/usr/share/lib/locale/$(PKGPATH)
69MSGDIRS =       $(ROOT)/usr/share/lib/locale \
70                $(ROOT)/usr/share/lib/locale/com \
71                $(ROOT)/usr/share/lib/locale/com/sun \
72		$(MSGDIR)
73CLIENT_MSGS=ClientLib_en.properties
74SERVER_MSGS=Server_en.properties
75MSGFILES=$(MSGDIR)/$(CLIENT_MSGS) $(MSGDIR)/$(SERVER_MSGS)
76
77$(JARDESTDIR)/$(SLPDJAR) := FILEMODE = 600
78
79
80# All SLP classes, not including internal classes (since these are
81# generated and packaged automatically buy this Makefile). Since
82# we take advantage of -Xdepend, the strategy is to place trigger
83# classes at the beginning of the list; these will trigger javac to
84# compile all other classes.
85SLP_CLASSES=\
86UARequester.class	SARequester.class	slpd.class \
87SunServerDATable.class	AttributeVerifier.class	\
88SunDATable.class	SLPHeaderV2.class	SLPServerHeaderV2.class \
89SLPHeaderV1.class	SLPV1Manager.class	Syslog.class \
90StderrLog.class				SLPDgui.class \
91ServiceLocationException.class		ServiceLocationEnumeration.class \
92ServiceLocationEnumerator.class		Assert.class \
93ServiceType.class			ServiceURL.class \
94ServiceLocationAttribute.class		ServerAttribute.class \
95AttributeString.class			AttributePattern.class \
96Opaque.class				AuthBlock.class \
97Defaults.class				SLPConfig.class \
98SrvLocMsg.class				SrvLocHeader.class\
99SrvLocMsgImpl.class			CAttrMsg.class \
100SAttrMsg.class				CDAAdvert.class \
101SDAAdvert.class				CSAAdvert.class \
102SSAAdvert.class				CSrvMsg.class \
103SSrvMsg.class				CSrvTypeMsg.class  \
104SSrvTypeMsg.class			CSrvReg.class \
105SSrvReg.class				CSrvDereg.class \
106SSrvDereg.class				DATable.class \
107ServiceStore.class			ServiceStoreFactory.class \
108ServiceTable.class			ServiceStoreInMemory.class \
109Advertiser.class			Locator.class \
110ServiceLocationManager.class		PermSARegTable.class \
111DAAdvertiser.class			ServerDATable.class \
112Listener.class				StreamListener.class \
113RequestHandler.class			Transact.class \
114SLPV1SAttrMsg.class			SLPV1SDAAdvert.class \
115SLPV1SSrvDereg.class			SLPV1SSrvMsg.class \
116SLPV1SSrvReg.class			SLPV1SSrvTypeMsg.class \
117ServiceLocationAttributeV1.class	ServiceURLV1.class \
118SLPTemplateRegistry.class		ActiveDiscoverer.class \
119AttributeDescriptor.class		ClientMsgManager.class \
120IANACharCode.class			Parser.class \
121ServiceLocationAttributeVerifier.class	SLPV1CDAAdvert.class \
122URLAttributeVerifier.class		TemplateRegistry.class \
123ServiceLocationAttributeDescriptor.class \
124SLPTokenizer.class
125
126# This is a hand-crafted subset of classes that are needed for slp.jar.
127# We take the extra effort here so that customers don't need to pull
128# in slpd.jar, which is more than double the size of slp.jar, when
129# they will only need these classes.
130UA_SA_SUBSET_CLASSES_ORIG=\
131Advertiser.class	Assert.class		AttributeString.class \
132AuthBlock.class		CAttrMsg.class		CDAAdvert.class \
133CSAAdvert.class		CSrvDereg.class		CSrvMsg.class \
134CSrvReg.class		CSrvTypeMsg.class	DATable\$$DARecord.class \
135SLPHeaderV2.class	SrvLocHeader.class	SrvLocMsgImpl.class \
136DATable.class		Defaults.class \
137Locator.class		Opaque.class		PermSARegTable.class \
138SARequester.class	SLPConfig.class		Syslog.class \
139ServiceURL.class	SrvLocMsg.class		Transact.class \
140ServerAttribute.class			ServiceLocationAttribute.class \
141ServiceLocationEnumeration.class	ServiceLocationEnumerator.class \
142ServiceLocationException.class		ServiceType.class \
143UARequester.class			ServiceLocationManager.class \
144SunDATable.class	TemplateRegistry.class	SLPTemplateRegistry.class \
145ServiceLocationAttributeVerifier.class		AttributeVerifier.class \
146ServiceLocationAttributeDescriptor.class	AttributeDescriptor.class \
147URLAttributeVerifier.class			StderrLog.class \
148StderrLog.class		SLPConfig\$$SLPProperties.class \
149SLPHeaderV2\$$OptionParser.class	SLPHeaderV2\$$SLPOption.class \
150SLPTokenizer.class
151
152ALL_SLP_CLASSES=${SLP_CLASSES:%=$(CLASSES)/$(PKGPATH)/%}
153UA_SA_SUBSET_CLASSES=${UA_SA_SUBSET_CLASSES_ORIG:%=$(PKGPATH)/%}
154