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 #
  23 # Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  24 # Use is subject to license terms.
  25 # Copyright 2019 Peter Tribble.
  26 #
  27 
  28 include ../../Makefile.cmd
  29 
  30 FILEMODE = 0444
  31 
  32 ROOTPROFILE = $(ROOT)/etc/svc/profile
  33 
  34 PROFILESRCS = \
  35         generic_open.xml \
  36         generic_limited_net.xml \
  37         inetd_generic.xml \
  38         inetd_upgrade.xml \
  39         ns_dns.xml \
  40         ns_files.xml \
  41         ns_ldap.xml \
  42         ns_nis.xml \
  43         ns_none.xml \
  44         platform_SUNW,SPARC-Enterprise.xml \
  45         platform_SUNW,Sun-Fire-880.xml \
  46         platform_SUNW,Sun-Fire.xml \
  47         platform_none.xml \
  48         platform_sun4v.xml
  49 
  50 PROFILES = $(PROFILESRCS:%=$(ROOTPROFILE)/%)
  51 
  52 PROFILES_open = generic_open.xml inetd_generic.xml
  53 PROFILES_limited = generic_limited_net.xml
  54 CHECK_OPEN = check_open
  55 CHECK_LMTD = check_limited
  56 
  57 COMM =  /usr/bin/comm
  58 TEE =   /usr/bin/tee
  59 TEST =  /usr/bin/test
  60 LISTSVCS = listsvcs.pl
  61 
  62 install: all $(PROFILES)
  63         $(RM) $(ROOTPROFILE)/platform.xml
  64         # SUNW,Sun-Fire-V890
  65         $(RM) $(ROOTPROFILE)/platform_SUNW,Sun-Fire-V890.xml
  66         $(LN) $(ROOTPROFILE)/platform_SUNW,Sun-Fire-880.xml \
  67             $(ROOTPROFILE)/platform_SUNW,Sun-Fire-V890.xml
  68 
  69 $(ROOTPROFILE)/%: %
  70         $(INS.file)
  71 
  72 all:    $(CHECK_OPEN) $(CHECK_LMTD)
  73 
  74 #
  75 #       Enforce consistency between open and limited profiles per README
  76 #
  77 $(CHECK_OPEN) :=        PROFILES_CHECKED = open
  78 $(CHECK_OPEN) :=        PROFILES_COVERING = limited
  79 $(CHECK_LMTD) :=        PROFILES_CHECKED = limited
  80 $(CHECK_LMTD) :=        PROFILES_COVERING = open
  81 $(CHECK_OPEN) $(CHECK_LMTD): \
  82         $(LISTSVCS) $(PROFILES_open) $(PROFILES_limited)
  83         @$(ECHO) Check for enabled $(PROFILES_CHECKED) services \
  84                 not covered by $(PROFILES_COVERING) profile
  85         @$(PERL) -w $(LISTSVCS) -e $(PROFILES_$(PROFILES_CHECKED)) > $@.enabled
  86         @$(PERL) -w $(LISTSVCS) $(PROFILES_$(PROFILES_COVERING)) > $@.all
  87         @$(COMM) -23 $@.enabled $@.all | $(TEE) $@.notcovered
  88         @$(TEST) ! -s $@.notcovered && $(TOUCH) $@
  89 
  90 lint _msg:
  91 
  92 clobber clean:
  93         $(RM) $(CHECK_OPEN)* $(CHECK_LMTD)*