diff -r 06b8097543cd -r 446472de62e9 make-rules/ips.mk --- a/make-rules/ips.mk Mon May 19 10:28:03 2014 +0100 +++ b/make-rules/ips.mk Mon May 19 07:37:20 2014 -0700 @@ -72,6 +72,7 @@ PUBLISH_TRANSFORMS += $(WS_TOP)/transforms/docs PUBLISH_TRANSFORMS += $(WS_TOP)/transforms/locale PUBLISH_TRANSFORMS += $(WS_TOP)/transforms/standard-libraries-past-py2.6 +PUBLISH_TRANSFORMS += $(WS_TOP)/transforms/python-rename PUBLISH_TRANSFORMS += $(PKGMOGRIFY_TRANSFORMS) PUBLISH_TRANSFORMS += $(WS_TOP)/transforms/publish-cleanup @@ -96,6 +97,7 @@ PKG_MACROS += TPNO=$(TPNO) PKG_MACROS += PYTHON_2.6_ONLY=\# PKG_MACROS += PYTHON_2.7_ONLY=\# +PKG_MACROS += PYTHON_3.4_ONLY=\# PKG_OPTIONS += $(PKG_MACROS:%=-D %) @@ -109,7 +111,7 @@ # Look for manifests which need to be duplicated for each version of python. ifeq ($(findstring -PYVER,$(CANONICAL_MANIFESTS)),-PYVER) -UNVERSIONED_MANIFESTS = $(filter-out %-GENFRAG.p5m,$(filter-out %-PYVER.p5m,$(CANONICAL_MANIFESTS))) +UNVERSIONED_MANIFESTS = $(filter-out %GENFRAG.p5m,$(filter-out %-PYVER.p5m,$(CANONICAL_MANIFESTS))) PY_MANIFESTS = $(filter %-PYVER.p5m,$(CANONICAL_MANIFESTS)) PYV_MANIFESTS = $(foreach v,$(shell echo $(PYTHON_VERSIONS) | tr -d .),$(shell echo $(PY_MANIFESTS) | sed -e 's/-PYVER.p5m/-$(v).p5m/g')) PYNV_MANIFESTS = $(shell echo $(PY_MANIFESTS) | sed -e 's/-PYVER//') @@ -119,7 +121,7 @@ # Look for manifests which need to be duplicated for each version of perl. ifeq ($(findstring -PERLVER,$(UNVERSIONED_MANIFESTS)),-PERLVER) -NOPERL_MANIFESTS = $(filter-out %-GENFRAG.p5m,$(filter-out %-PERLVER.p5m,$(UNVERSIONED_MANIFESTS))) +NOPERL_MANIFESTS = $(filter-out %GENFRAG.p5m,$(filter-out %-PERLVER.p5m,$(UNVERSIONED_MANIFESTS))) PERL_MANIFESTS = $(filter %-PERLVER.p5m,$(UNVERSIONED_MANIFESTS)) PERLV_MANIFESTS = $(foreach v,$(shell echo $(PERL_VERSIONS) | tr -d .),$(shell echo $(PERL_MANIFESTS) | sed -e 's/-PERLVER.p5m/-$(v).p5m/g')) PERLNV_MANIFESTS = $(shell echo $(PERL_MANIFESTS) | sed -e 's/-PERLVER//') @@ -171,16 +173,19 @@ # runtime-version-specific version of the package we're operating on. $(1) is # the name of the runtime package, and $(2) is the version suffix. mkgeneric = \ - echo " emit depend nodrop=true type=conditional" \ "predicate=$(1)-$(2) fmri=%<1>-$(2)@%<2>>" >> $@; # Define and execute a macro that generates a rule to create a manifest for a # python module specific to a particular version of the python runtime. +# Creates build/manifest-*-modulename-##.p5m file where ## is replaced with +# the version number. define python-manifest-rule $(MANIFEST_BASE)-%-$(shell echo $(1) | tr -d .).mogrified: PKG_MACROS += PYTHON_$(1)_ONLY= $(MANIFEST_BASE)-%-$(shell echo $(1) | tr -d .).p5m: %-PYVER.p5m + if [ -f $$*-$(shell echo $(1) | tr -d .)GENFRAG.p5m ]; then cat $$*-$(shell echo $(1) | tr -d .)GENFRAG.p5m >> $$@; fi $(PKGMOGRIFY) -D PYVER=$(1) -D PYV=$(shell echo $(1) | tr -d .) $$< > $$@ endef $(foreach ver,$(PYTHON_VERSIONS),$(eval $(call python-manifest-rule,$(ver)))) @@ -195,8 +200,9 @@ $(call mkgeneric,runtime/python,$(ver))) # Build Python version-wrapping manifests from the generic version. +# Creates build/manifest-*-modulename.p5m file. $(MANIFEST_BASE)-%.p5m: %-PYVER.p5m $(BUILD_DIR)/mkgeneric-python - $(PKGMOGRIFY) -D PYV=### $(BUILD_DIR)/mkgeneric-python \ + $(PKGMOGRIFY) -D PYV=###PYV### $(BUILD_DIR)/mkgeneric-python \ $(WS_TOP)/transforms/mkgeneric $< > $@ if [ -f $*-GENFRAG.p5m ]; then cat $*-GENFRAG.p5m >> $@; fi @@ -247,7 +253,8 @@ # generate dependencies PKGDEPEND_GENERATE_OPTIONS = -m $(PKG_PROTO_DIRS:%=-d %) $(MANIFEST_BASE)-%.depend: $(MANIFEST_BASE)-%.mangled - $(PKGDEPEND) generate $(PKGDEPEND_GENERATE_OPTIONS) $< >$@ + $(ENV) $(COMPONENT_PUBLISH_ENV) $(PKGDEPEND) generate \ + $(PKGDEPEND_GENERATE_OPTIONS) $< >$@ # These files should contain a list of packages that the component is known to # depend on. Using resolve.deps is not required, but significantly speeds up