[csw-devel] SF.net SVN: gar:[6860] csw/mgar/gar/v2/gar.pkg.mk
bdwalton at users.sourceforge.net
bdwalton at users.sourceforge.net
Wed Oct 14 16:26:39 CEST 2009
Revision: 6860
http://gar.svn.sourceforge.net/gar/?rev=6860&view=rev
Author: bdwalton
Date: 2009-10-14 14:26:39 +0000 (Wed, 14 Oct 2009)
Log Message:
-----------
gar: add support for ETCSERVICES (cswetcservices) and INETDCONF (cswinetd) class action scripts; arrange ordering of SPKG_CLASSES to ensure initsmf/inetd are added last; factor the conditional adding of classes into a function
Modified Paths:
--------------
csw/mgar/gar/v2/gar.pkg.mk
Modified: csw/mgar/gar/v2/gar.pkg.mk
===================================================================
--- csw/mgar/gar/v2/gar.pkg.mk 2009-10-14 14:04:00 UTC (rev 6859)
+++ csw/mgar/gar/v2/gar.pkg.mk 2009-10-14 14:26:39 UTC (rev 6860)
@@ -160,17 +160,30 @@
SPKG_PKGFILE ?= %{bitname}-%{SPKG_VERSION},%{SPKG_REVSTAMP}-%{SPKG_OSNAME}-%{arch}-$(or $(filter $(call _REVISION),UNCOMMITTED NOTVERSIONED NOSVN),CSW).pkg
# Handle cswclassutils
-# - prepend cswpreserveconf if it is not already in SPKG_CLASSES
-SPKG_CLASSES := $(SPKG_CLASSES) $(if $(SAMPLECONF),$(if $(filter cswcpsampleconf,$(SPKG_CLASSES)),,cswcpsampleconf))
-SPKG_CLASSES := $(SPKG_CLASSES) $(if $(PRESERVECONF),$(if $(filter cswpreserveconf,$(SPKG_CLASSES)),,cswpreserveconf))
-SPKG_CLASSES := $(SPKG_CLASSES) $(if $(INITSMF),$(if $(filter cswinitsmf,$(SPKG_CLASSES)),,cswinitsmf))
-SPKG_CLASSES := $(SPKG_CLASSES) $(if $(USERGROUP),$(if $(filter cswusergroup,$(SPKG_CLASSES)),,cswusergroup))
-SPKG_CLASSES := $(SPKG_CLASSES) $(if $(PYCOMPILE),$(if $(filter cswpycompile,$(SPKG_CLASSES)),,cswpycompile))
+# append $2 to SPKG_CLASSES if $1 is non-null
+define _spkg_cond_add
+$(SPKG_CLASSES) $(if $($(1)),$(if $(filter $(2),$(SPKG_CLASSES)),,$(2)))
+endef
+
+# NOTE: Order _can_ be important here. cswinitsmf and cswinetd should
+# always be the last two added. The reason for this is that
+# you need to ensure any binaries and config files are already on disk
+# and able to be consumed by a service that might be started.
+SPKG_CLASSES := $(call _spkg_cond_add,SAMPLECONF,cswcpsampleconf)
+SPKG_CLASSES := $(call _spkg_cond_add,PRESERVECONF,cswpreserveconf)
+SPKG_CLASSES := $(call _spkg_cond_add,ETCSERVICES,cswetcservices)
+SPKG_CLASSES := $(call _spkg_cond_add,USERGROUP,cswusergroup)
+SPKG_CLASSES := $(call _spkg_cond_add,PYCOMPILE,cswpycompile)
+SPKG_CLASSES := $(call _spkg_cond_add,INETDCONF,cswinetd)
+SPKG_CLASSES := $(call _spkg_cond_add,INITSMF,cswinitsmf)
+
# - set class for all config files
-ifneq ($(SAMPLECONF)$(PRESERVECONF)$(INITSMF)$(USERGROUP)$(PYCOMPILE),)
+ifneq ($(SAMPLECONF)$(PRESERVECONF)$(ETCSERVICES)$(INETDCONF)$(INITSMF)$(USERGROUP)$(PYCOMPILE),)
_CSWCLASS_FILTER = | perl -ane '\
$(foreach FILE,$(SAMPLECONF:%\.CSW=%),$$F[1] = "cswcpsampleconf" if ( $$F[2] =~ m(^$(FILE)\.CSW$$) );)\
$(foreach FILE,$(PRESERVECONF:%\.CSW=%),$$F[1] = "cswpreserveconf" if( $$F[2] =~ m(^$(FILE)\.CSW$$) );)\
+ $(foreach FILE,$(ETCSERVICES),$$F[1] = "cswetcservices" if( $$F[2] =~ m(^$(FILE)$$) );)\
+ $(foreach FILE,$(INETDCONF),$$F[1] = "cswinetd" if( $$F[2] =~ m(^$(FILE)$$) );)\
$(foreach FILE,$(INITSMF),$$F[1] = "cswinitsmf" if( $$F[2] =~ m(^$(FILE)$$) );)\
$(foreach FILE,$(USERGROUP),$$F[1] = "cswusergroup" if( $$F[2] =~ m(^$(FILE)$$) );)\
$(if $(PYCOMPILE),$(foreach FILE,$(_PYCOMPILE_FILES),$$F[1] = "cswpycompile" if( $$F[2] =~ m(^$(FILE)$$) );))\
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the devel
mailing list