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) -deprecation
  59 
  60 # The default make rule for Java files
  61 COMPILE.java=$(JAVAC) $(JFLAGS)
  62 
  63 $(CLASSES)/$(PKGPATH)/%.class:  $(SLPJAVASRC)/$(PKGPATH)/%.java
  64                                 $(COMPILE.java) $<
  65 
  66 # Where to put the message files
  67 MSGDIR =        $(ROOT)/usr/share/lib/locale/$(PKGPATH)
  68 MSGDIRS =       $(ROOT)/usr/share/lib/locale \
  69                 $(ROOT)/usr/share/lib/locale/com \
  70                 $(ROOT)/usr/share/lib/locale/com/sun \
  71                 $(MSGDIR)
  72 CLIENT_MSGS=ClientLib_en.properties
  73 SERVER_MSGS=Server_en.properties
  74 MSGFILES=$(MSGDIR)/$(CLIENT_MSGS) $(MSGDIR)/$(SERVER_MSGS)
  75 
  76 $(JARDESTDIR)/$(SLPDJAR) := FILEMODE = 600
  77 
  78 
  79 # All SLP classes, not including internal classes (since these are
  80 # generated and packaged automatically buy this Makefile). Since
  81 # we take advantage of -Xdepend, the strategy is to place trigger
  82 # classes at the beginning of the list; these will trigger javac to
  83 # compile all other classes.
  84 SLP_CLASSES=\
  85 UARequester.class       SARequester.class       slpd.class \
  86 SunServerDATable.class  AttributeVerifier.class \
  87 SunDATable.class        SLPHeaderV2.class       SLPServerHeaderV2.class \
  88 SLPHeaderV1.class       SLPV1Manager.class      Syslog.class \
  89 StderrLog.class                         SLPDgui.class \
  90 ServiceLocationException.class          ServiceLocationEnumeration.class \
  91 ServiceLocationEnumerator.class         Assert.class \
  92 ServiceType.class                       ServiceURL.class \
  93 ServiceLocationAttribute.class          ServerAttribute.class \
  94 AttributeString.class                   AttributePattern.class \
  95 Opaque.class                            AuthBlock.class \
  96 Defaults.class                          SLPConfig.class \
  97 SrvLocMsg.class                         SrvLocHeader.class\
  98 SrvLocMsgImpl.class                     CAttrMsg.class \
  99 SAttrMsg.class                          CDAAdvert.class \
 100 SDAAdvert.class                         CSAAdvert.class \
 101 SSAAdvert.class                         CSrvMsg.class \
 102 SSrvMsg.class                           CSrvTypeMsg.class  \
 103 SSrvTypeMsg.class                       CSrvReg.class \
 104 SSrvReg.class                           CSrvDereg.class \
 105 SSrvDereg.class                         DATable.class \
 106 ServiceStore.class                      ServiceStoreFactory.class \
 107 ServiceTable.class                      ServiceStoreInMemory.class \
 108 Advertiser.class                        Locator.class \
 109 ServiceLocationManager.class            PermSARegTable.class \
 110 DAAdvertiser.class                      ServerDATable.class \
 111 Listener.class                          StreamListener.class \
 112 RequestHandler.class                    Transact.class \
 113 SLPV1SAttrMsg.class                     SLPV1SDAAdvert.class \
 114 SLPV1SSrvDereg.class                    SLPV1SSrvMsg.class \
 115 SLPV1SSrvReg.class                      SLPV1SSrvTypeMsg.class \
 116 ServiceLocationAttributeV1.class        ServiceURLV1.class \
 117 SLPTemplateRegistry.class               ActiveDiscoverer.class \
 118 AttributeDescriptor.class               ClientMsgManager.class \
 119 IANACharCode.class                      Parser.class \
 120 ServiceLocationAttributeVerifier.class  SLPV1CDAAdvert.class \
 121 URLAttributeVerifier.class              TemplateRegistry.class \
 122 ServiceLocationAttributeDescriptor.class \
 123 SLPTokenizer.class
 124 
 125 # This is a hand-crafted subset of classes that are needed for slp.jar.
 126 # We take the extra effort here so that customers don't need to pull
 127 # in slpd.jar, which is more than double the size of slp.jar, when
 128 # they will only need these classes.
 129 UA_SA_SUBSET_CLASSES_ORIG=\
 130 Advertiser.class        Assert.class            AttributeString.class \
 131 AuthBlock.class         CAttrMsg.class          CDAAdvert.class \
 132 CSAAdvert.class         CSrvDereg.class         CSrvMsg.class \
 133 CSrvReg.class           CSrvTypeMsg.class       DATable\$$DARecord.class \
 134 SLPHeaderV2.class       SrvLocHeader.class      SrvLocMsgImpl.class \
 135 DATable.class           Defaults.class \
 136 Locator.class           Opaque.class            PermSARegTable.class \
 137 SARequester.class       SLPConfig.class         Syslog.class \
 138 ServiceURL.class        SrvLocMsg.class         Transact.class \
 139 ServerAttribute.class                   ServiceLocationAttribute.class \
 140 ServiceLocationEnumeration.class        ServiceLocationEnumerator.class \
 141 ServiceLocationException.class          ServiceType.class \
 142 UARequester.class                       ServiceLocationManager.class \
 143 SunDATable.class        TemplateRegistry.class  SLPTemplateRegistry.class \
 144 ServiceLocationAttributeVerifier.class          AttributeVerifier.class \
 145 ServiceLocationAttributeDescriptor.class        AttributeDescriptor.class \
 146 URLAttributeVerifier.class                      StderrLog.class \
 147 StderrLog.class         SLPConfig\$$SLPProperties.class \
 148 SLPHeaderV2\$$OptionParser.class        SLPHeaderV2\$$SLPOption.class \
 149 SLPTokenizer.class
 150 
 151 ALL_SLP_CLASSES=${SLP_CLASSES:%=$(CLASSES)/$(PKGPATH)/%}
 152 UA_SA_SUBSET_CLASSES=${UA_SA_SUBSET_CLASSES_ORIG:%=$(PKGPATH)/%}