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 # Copyright (c) 2018, Joyent, Inc.
  26 
  27 PROG =          poold
  28 OBJS =          poold.o
  29 SRCS =          $(OBJS:%.o=%.c)
  30 
  31 MANIFEST=       poold.xml
  32 SVCMETHOD=      svc-poold
  33 
  34 include $(SRC)/cmd/Makefile.cmd
  35 $(BLD_JAVA_8)include $(SRC)/cmd/Makefile.cmd.64
  36 
  37 JAVA_SUBDIRS =  com/sun/solaris/service/exception \
  38                 com/sun/solaris/service/kstat \
  39                 com/sun/solaris/service/locality \
  40                 com/sun/solaris/service/logging \
  41                 com/sun/solaris/service/pools \
  42                 com/sun/solaris/service/timer \
  43                 com/sun/solaris/domain/pools
  44 
  45 SUBDIRS =       libjkstat \
  46                 libjlgrp \
  47                 libjpool \
  48                 libjsyslog
  49 
  50 ROOTMANIFESTDIR=        $(ROOTSVCSYSTEM)
  51 
  52 all :=          TARGET = all
  53 install :=      TARGET = install
  54 clean :=        TARGET = clean
  55 clobber :=      TARGET = clobber
  56 lint :=         TARGET = lint
  57 msg :=          TARGET = msg
  58 
  59 $(ROOTMANIFEST):=       FILEMODE= 444
  60 JARFILE =       JPool.jar
  61 
  62 JAVA_LIB_PATH = $(JAVA_ROOT)/jre/lib/$(MACH)/client
  63 LIBPOOL_PATH = $(ROOTLIB)
  64 $(BLD_JAVA_8)JAVA_LIB_PATH =    $(JAVA_ROOT)/jre/lib/$(MACH64)/server
  65 $(BLD_JAVA_8)LIBPOOL_PATH = $(ROOTLIB64)
  66 
  67 # JAVA_SUBDIRS and PACKAGEDOCS must be synchronized to ensure 
  68 # javadoc documentation is generated for all packages.
  69 
  70 PACKAGEDOCS =   com.sun.solaris.service.exception \
  71                 com.sun.solaris.service.kstat \
  72                 com.sun.solaris.service.locality \
  73                 com.sun.solaris.service.logging \
  74                 com.sun.solaris.service.pools \
  75                 com.sun.solaris.service.timer \
  76                 com.sun.solaris.domain.pools
  77 DOCDIR =        doc
  78 ROOTUSRLIBDRP = $(ROOTLIB)/pool
  79 INCS =          -I../common \
  80                 -I$(JAVA_ROOT)/include \
  81                 -I$(JAVA_ROOT)/include/solaris
  82 LDLIBS +=       -lpool -L$(JAVA_LIB_PATH) -ljvm
  83 # runpath should point to runtime JAVA_HOME
  84 LDFLAGS +=      -R$(JAVA_LIB_PATH)
  85 
  86 LINTFLAGS +=    -erroff=E_NAME_USED_NOT_DEF2
  87 $(BLD_JAVA_8)LINTFLAGS64 += -erroff=E_NAME_USED_NOT_DEF2
  88 LINTLIBS +=     -L$(LIBPOOL_PATH) -lpool
  89 
  90 # not linted
  91 SMATCH=off
  92 
  93 CPPFLAGS +=     $(INCS)
  94 ROOTCMDDIR =    $(ROOT)/usr/lib/pool
  95 
  96 CLOBBERFILES += $(JARFILE)
  97 
  98 #
  99 # Definitions for message catalogue
 100 #
 101 POFILES =       $(OBJS:.o=.po)
 102 
 103 #
 104 # Definitions for Java installs
 105 #
 106 
 107 JFILES =        poold.properties $(JARFILE)
 108 ROOTJAVA =      $(JFILES:%=$(ROOTUSRLIBDRP)/%)
 109 
 110 $(ROOTJAVA) :=  FILEMODE = 444
 111 
 112 all:    $(PROG) $(JAVA_SUBDIRS) $(JARFILE) \
 113                     .WAIT $(SUBDIRS)
 114 
 115 clean : $(JAVA_SUBDIRS) $(SUBDIRS) clean_local
 116 clean_local:
 117         $(RM) $(OBJS)
 118 
 119 clobber : $(JAVA_SUBDIRS) $(SUBDIRS) clobber_local
 120 clobber_local: clean_local
 121         $(RM) $(CLOBBERFILES)
 122 
 123 lint: $(SUBDIRS)
 124 
 125 msg: $(POFILES)
 126 
 127 install: $(ROOTCMD) $(JAVA_SUBDIRS) $(JARFILE) \
 128                     .WAIT $(SUBDIRS) $(ROOTJAVA) $(ROOTMANIFEST) \
 129                     $(ROOTSVCMETHOD)
 130 
 131 check:  $(CHKMANIFEST)
 132 
 133 $(JAVA_SUBDIRS): FRC
 134         @cd $@; pwd; $(MAKE) $(TARGET)
 135         if [ "$(TARGET)" != "clean" ] && [ "$(TARGET)" != "clobber" ]; \
 136         then \
 137                 if [ ! -f $(JARFILE) ]; \
 138                 then \
 139                         $(JAR) -cf $(JARFILE) $@/*class; \
 140                 else \
 141                         $(JAR) -uf $(JARFILE) $@/*class; \
 142                 fi \
 143         fi
 144 
 145 $(SUBDIRS): FRC
 146         @cd $@; pwd; $(MAKE) $(TARGET)
 147 
 148 doc:    all
 149         $(JAVADOC) -private -classpath $(JARFILE): -sourcepath . \
 150             -source 1.4 -d $(DOCDIR) $(PACKAGEDOCS)
 151 
 152 $(PROG):        $(OBJS)
 153         $(LINK.c) -o $(PROG) $(OBJS) $(LDLIBS)
 154         $(POST_PROCESS)
 155 
 156 $(ROOTUSRLIBDRP)/%: %
 157         $(INS.file)
 158 
 159 FRC:
 160 
 161 lint:
 162         $(LINT.c) $(PROG).c $(LINTLIBS)
 163 
 164 include $(SRC)/cmd/Makefile.targ