#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# Copyright 2014 PALO, Richard. All rights reserved.
#
# Makefile configuration for SLP.

# The SLP Java package

PKGPATH=com/sun/slp
PKGNAME=com.sun.slp

# The SLP directories.

SLPDIR=$(SRC)/lib/libslp
DOC=$(SLPDIR)/javadoc
CLASSES=$(SLPDIR)/classes
SLPJAVASRC=$(SLPDIR)/javalib

# SLP jar file, its ultimate destination, and packaging details
SLPJAR=slp.jar
SLPDJAR=slpd.jar
JARDESTDIR=$(ROOT)/usr/share/lib/slp
INSJARS=$(JARDESTDIR)/$(SLPJAR) $(JARDESTDIR)/$(SLPDJAR)

$(JARDESTDIR)/%: $(CLASSES)/%
	$(INS.file)

# Manifest files
SLPMANI= $(CLASSES)/manifest.slp
SLPDMANI= $(CLASSES)/manifest.slpd

MANIFESTS= $(SLPMANI) $(SLPDMANI)

# Controlled CLASSPATH for making
SLPCLASSPATH=$(CLASSES):$(SLPJAVASRC)

# javac flags
JFLAGS= -O -d $(CLASSES) -sourcepath $(SLPCLASSPATH)
JFLAGS += -source 1.6 -target 1.6 -Xlint:deprecation,-options

# The default make rule for Java files
COMPILE.java=$(JAVAC) $(JFLAGS)

$(CLASSES)/$(PKGPATH)/%.class:	$(SLPJAVASRC)/$(PKGPATH)/%.java
				$(COMPILE.java) $<

# Where to put the message files
MSGDIR =        $(ROOT)/usr/share/lib/locale/$(PKGPATH)
MSGDIRS =       $(ROOT)/usr/share/lib/locale \
                $(ROOT)/usr/share/lib/locale/com \
                $(ROOT)/usr/share/lib/locale/com/sun \
		$(MSGDIR)
CLIENT_MSGS=ClientLib_en.properties
SERVER_MSGS=Server_en.properties
MSGFILES=$(MSGDIR)/$(CLIENT_MSGS) $(MSGDIR)/$(SERVER_MSGS)

$(JARDESTDIR)/$(SLPDJAR) := FILEMODE = 600


# All SLP classes, not including internal classes (since these are
# generated and packaged automatically buy this Makefile). Since
# we take advantage of -Xdepend, the strategy is to place trigger
# classes at the beginning of the list; these will trigger javac to
# compile all other classes.
SLP_CLASSES=\
UARequester.class	SARequester.class	slpd.class \
SunServerDATable.class	AttributeVerifier.class	\
SunDATable.class	SLPHeaderV2.class	SLPServerHeaderV2.class \
SLPHeaderV1.class 	SLPV1Manager.class	Syslog.class \
StderrLog.class				SLPDgui.class \
ServiceLocationException.class		ServiceLocationEnumeration.class \
ServiceLocationEnumerator.class		Assert.class \
ServiceType.class			ServiceURL.class \
ServiceLocationAttribute.class		ServerAttribute.class \
AttributeString.class			AttributePattern.class \
Opaque.class				AuthBlock.class \
Defaults.class				SLPConfig.class \
SrvLocMsg.class				SrvLocHeader.class\
SrvLocMsgImpl.class			CAttrMsg.class \
SAttrMsg.class				CDAAdvert.class \
SDAAdvert.class				CSAAdvert.class \
SSAAdvert.class				CSrvMsg.class \
SSrvMsg.class				CSrvTypeMsg.class  \
SSrvTypeMsg.class			CSrvReg.class \
SSrvReg.class				CSrvDereg.class \
SSrvDereg.class				DATable.class \
ServiceStore.class			ServiceStoreFactory.class \
ServiceTable.class			ServiceStoreInMemory.class \
Advertiser.class			Locator.class \
ServiceLocationManager.class		PermSARegTable.class \
DAAdvertiser.class			ServerDATable.class \
Listener.class				StreamListener.class \
RequestHandler.class			Transact.class \
SLPV1SAttrMsg.class			SLPV1SDAAdvert.class \
SLPV1SSrvDereg.class			SLPV1SSrvMsg.class \
SLPV1SSrvReg.class			SLPV1SSrvTypeMsg.class \
ServiceLocationAttributeV1.class	ServiceURLV1.class \
SLPTemplateRegistry.class		ActiveDiscoverer.class \
AttributeDescriptor.class		ClientMsgManager.class \
IANACharCode.class			Parser.class \
ServiceLocationAttributeVerifier.class	SLPV1CDAAdvert.class \
URLAttributeVerifier.class		TemplateRegistry.class \
ServiceLocationAttributeDescriptor.class \
SLPTokenizer.class

# This is a hand-crafted subset of classes that are needed for slp.jar.
# We take the extra effort here so that customers don't need to pull
# in slpd.jar, which is more than double the size of slp.jar, when
# they will only need these classes.
UA_SA_SUBSET_CLASSES_ORIG=\
Advertiser.class	Assert.class		AttributeString.class \
AuthBlock.class		CAttrMsg.class		CDAAdvert.class \
CSAAdvert.class		CSrvDereg.class		CSrvMsg.class \
CSrvReg.class		CSrvTypeMsg.class	DATable\$$DARecord.class \
SLPHeaderV2.class	SrvLocHeader.class	SrvLocMsgImpl.class \
DATable.class		Defaults.class \
Locator.class		Opaque.class		PermSARegTable.class \
SARequester.class	SLPConfig.class		Syslog.class \
ServiceURL.class	SrvLocMsg.class		Transact.class \
ServerAttribute.class			ServiceLocationAttribute.class \
ServiceLocationEnumeration.class	ServiceLocationEnumerator.class \
ServiceLocationException.class		ServiceType.class \
UARequester.class			ServiceLocationManager.class \
SunDATable.class	TemplateRegistry.class 	SLPTemplateRegistry.class \
ServiceLocationAttributeVerifier.class		AttributeVerifier.class \
ServiceLocationAttributeDescriptor.class	AttributeDescriptor.class \
URLAttributeVerifier.class			StderrLog.class \
StderrLog.class		SLPConfig\$$SLPProperties.class \
SLPHeaderV2\$$OptionParser.class	SLPHeaderV2\$$SLPOption.class \
SLPTokenizer.class

ALL_SLP_CLASSES=${SLP_CLASSES:%=$(CLASSES)/$(PKGPATH)/%}
UA_SA_SUBSET_CLASSES=${UA_SA_SUBSET_CLASSES_ORIG:%=$(PKGPATH)/%}
