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 
  29 PKGPATH=com/sun/slp
  30 PKGNAME=com.sun.slp
  31 
  32 # The SLP directories.
  33 
  34 SLPDIR=$(SRC)/lib/libslp
  35 DOC=$(SLPDIR)/javadoc
  36 CLASSES=$(SLPDIR)/classes
  37 SLPJAVASRC=$(SLPDIR)/javalib
  38 
  39 # SLP jar file, its ultimate destination, and packaging details
  40 SLPJAR=slp.jar
  41 SLPDJAR=slpd.jar
  42 JARDESTDIR=$(ROOT)/usr/share/lib/slp
  43 INSJARS=$(JARDESTDIR)/$(SLPJAR) $(JARDESTDIR)/$(SLPDJAR)
  44 
  45 $(JARDESTDIR)/%: $(CLASSES)/%
  46         $(INS.file)
  47 
  48 # Manifest files
  49 SLPMANI= $(CLASSES)/manifest.slp
  50 SLPDMANI= $(CLASSES)/manifest.slpd
  51 
  52 MANIFESTS= $(SLPMANI) $(SLPDMANI)
  53 
  54 # Controlled CLASSPATH for making
  55 SLPCLASSPATH=$(CLASSES):$(SLPJAVASRC)
  56 
  57 # javac flags
  58 JFLAGS= -O -d $(CLASSES) -sourcepath $(SLPCLASSPATH)
  59 JFLAGS += -source 1.6 -target 1.6 -Xlint:deprecation,-options
  60 
  61 # The default make rule for Java files
  62 COMPILE.java=$(JAVAC) $(JFLAGS)
  63 
  64 $(CLASSES)/$(PKGPATH)/%.class:  $(SLPJAVASRC)/$(PKGPATH)/%.java
  65                                 $(COMPILE.java) $<
  66 
  67 # Where to put the message files
  68 MSGDIR =        $(ROOT)/usr/share/lib/locale/$(PKGPATH)
  69 MSGDIRS =       $(ROOT)/usr/share/lib/locale \
  70                 $(ROOT)/usr/share/lib/locale/com \
  71                 $(ROOT)/usr/share/lib/locale/com/sun \
  72                 $(MSGDIR)
  73 CLIENT_MSGS=ClientLib_en.properties
  74 SERVER_MSGS=Server_en.properties
  75 MSGFILES=$(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.
  85 SLP_CLASSES=\
  86 UARequester.class       SARequester.class       slpd.class \
  87 SunServerDATable.class  AttributeVerifier.class \
  88 SunDATable.class        SLPHeaderV2.class       SLPServerHeaderV2.class \
  89 SLPHeaderV1.class       SLPV1Manager.class      Syslog.class \
  90 StderrLog.class                         SLPDgui.class \
  91 ServiceLocationException.class          ServiceLocationEnumeration.class \
  92 ServiceLocationEnumerator.class         Assert.class \
  93 ServiceType.class                       ServiceURL.class \
  94 ServiceLocationAttribute.class          ServerAttribute.class \
  95 AttributeString.class                   AttributePattern.class \
  96 Opaque.class                            AuthBlock.class \
  97 Defaults.class                          SLPConfig.class \
  98 SrvLocMsg.class                         SrvLocHeader.class\
  99 SrvLocMsgImpl.class                     CAttrMsg.class \
 100 SAttrMsg.class                          CDAAdvert.class \
 101 SDAAdvert.class                         CSAAdvert.class \
 102 SSAAdvert.class                         CSrvMsg.class \
 103 SSrvMsg.class                           CSrvTypeMsg.class  \
 104 SSrvTypeMsg.class                       CSrvReg.class \
 105 SSrvReg.class                           CSrvDereg.class \
 106 SSrvDereg.class                         DATable.class \
 107 ServiceStore.class                      ServiceStoreFactory.class \
 108 ServiceTable.class                      ServiceStoreInMemory.class \
 109 Advertiser.class                        Locator.class \
 110 ServiceLocationManager.class            PermSARegTable.class \
 111 DAAdvertiser.class                      ServerDATable.class \
 112 Listener.class                          StreamListener.class \
 113 RequestHandler.class                    Transact.class \
 114 SLPV1SAttrMsg.class                     SLPV1SDAAdvert.class \
 115 SLPV1SSrvDereg.class                    SLPV1SSrvMsg.class \
 116 SLPV1SSrvReg.class                      SLPV1SSrvTypeMsg.class \
 117 ServiceLocationAttributeV1.class        ServiceURLV1.class \
 118 SLPTemplateRegistry.class               ActiveDiscoverer.class \
 119 AttributeDescriptor.class               ClientMsgManager.class \
 120 IANACharCode.class                      Parser.class \
 121 ServiceLocationAttributeVerifier.class  SLPV1CDAAdvert.class \
 122 URLAttributeVerifier.class              TemplateRegistry.class \
 123 ServiceLocationAttributeDescriptor.class \
 124 SLPTokenizer.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.
 130 UA_SA_SUBSET_CLASSES_ORIG=\
 131 Advertiser.class        Assert.class            AttributeString.class \
 132 AuthBlock.class         CAttrMsg.class          CDAAdvert.class \
 133 CSAAdvert.class         CSrvDereg.class         CSrvMsg.class \
 134 CSrvReg.class           CSrvTypeMsg.class       DATable\$$DARecord.class \
 135 SLPHeaderV2.class       SrvLocHeader.class      SrvLocMsgImpl.class \
 136 DATable.class           Defaults.class \
 137 Locator.class           Opaque.class            PermSARegTable.class \
 138 SARequester.class       SLPConfig.class         Syslog.class \
 139 ServiceURL.class        SrvLocMsg.class         Transact.class \
 140 ServerAttribute.class                   ServiceLocationAttribute.class \
 141 ServiceLocationEnumeration.class        ServiceLocationEnumerator.class \
 142 ServiceLocationException.class          ServiceType.class \
 143 UARequester.class                       ServiceLocationManager.class \
 144 SunDATable.class        TemplateRegistry.class  SLPTemplateRegistry.class \
 145 ServiceLocationAttributeVerifier.class          AttributeVerifier.class \
 146 ServiceLocationAttributeDescriptor.class        AttributeDescriptor.class \
 147 URLAttributeVerifier.class                      StderrLog.class \
 148 StderrLog.class         SLPConfig\$$SLPProperties.class \
 149 SLPHeaderV2\$$OptionParser.class        SLPHeaderV2\$$SLPOption.class \
 150 SLPTokenizer.class
 151 
 152 ALL_SLP_CLASSES=${SLP_CLASSES:%=$(CLASSES)/$(PKGPATH)/%}
 153 UA_SA_SUBSET_CLASSES=${UA_SA_SUBSET_CLASSES_ORIG:%=$(PKGPATH)/%}