| | |
| | | $(foreach var, $(filter PY3_%_NAMING,$(.VARIABLES)), \ |
| | | $(eval $(call add-limiting-variable,$(var)))) |
| | | |
| | | |
| | | ifeq ($(strip $(COMPONENT_AUTOGEN_MANIFEST)),yes) |
| | | AUTOGEN_MANIFEST_TRANSFORMS += $(WS_TOP)/transforms/generate-cleanup |
| | | else |
| | | AUTOGEN_MANIFEST_TRANSFORMS += $(WS_TOP)/transforms/drop-all |
| | | endif |
| | | |
| | | # For items defined as variables or that may contain whitespace, add |
| | | # them to a list to be expanded into PKG_OPTIONS later. |
| | | PKG_VARS += ARC_CASE TPNO |
| | | PKG_VARS += MACH MACH32 MACH64 |
| | | PKG_VARS += BUILD_VERSION OS_VERSION PKG_SOLARIS_VERSION |
| | | PKG_VARS += GNU_TRIPLET |
| | |
| | | |
| | | SAMPLE_MANIFEST_DIR = $(COMPONENT_DIR)/manifests |
| | | SAMPLE_MANIFEST_FILE = $(SAMPLE_MANIFEST_DIR)/sample-manifest.p5m |
| | | GENERIC_MANIFEST_FILE = $(SAMPLE_MANIFEST_DIR)/generic-manifest.p5m |
| | | |
| | | CANONICAL_MANIFESTS = $(filter-out dummy.p5m,$(wildcard *.p5m)) |
| | | ifneq ($(wildcard $(HISTORY)),) |
| | |
| | | |
| | | define ips-print-names-rule |
| | | $(shell cat $(1) $(WS_TOP)/transforms/print-pkgs |\ |
| | | $(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 |\ |
| | | $(PKGMOGRIFY) $(PKG_OPTIONS) $(call per-manifest-options,$(1:.p5m=)) /dev/fd/0 |\ |
| | | sed -e '/^$$/d' -e '/^#.*$$/d' | $(SORT) -u) |
| | | endef |
| | | |
| | |
| | | |
| | | VERSIONED_MANIFEST_TYPES = |
| | | UNVERSIONED_MANIFESTS = $(filter-out %-GENFRAG.p5m, $(CANONICAL_MANIFESTS)) |
| | | GENERATE_GENERIC_TRANSFORMS= |
| | | |
| | | # Look for manifests which need to be duplicated for each version of python. |
| | | ifeq ($(findstring -PYVER,$(CANONICAL_MANIFESTS)),-PYVER) |
| | |
| | | # - the $(PYV) string itself |
| | | PYTHON_PYV_VALUES = $(subst .,,$(PYTHON_VERSIONS) $(PYTHON_VERSIONS_OBSOLETING)) $$(PYV) |
| | | # Convert REQUIRED_PACKAGES to PYTHON_REQUIRED_PACKAGES for runtime/python |
| | | REQUIRED_PACKAGES_TRANSFORM += $(foreach v,$(PYTHON_PYV_VALUES), -e 's|^\(.*runtime/python\)-$(v)$$|PYTHON_\1|g') |
| | | REQUIRED_PACKAGES_TRANSFORM += $(foreach v,$(subst $,\$,$(PYTHON_PYV_VALUES)),-e 's|^\(.*runtime/python\)-$(v)$$|PYTHON_\1|g') |
| | | # Convert REQUIRED_PACKAGES to PYTHON_REQUIRED_PACKAGES for library/python/* |
| | | REQUIRED_PACKAGES_TRANSFORM += $(foreach v,$(PYTHON_PYV_VALUES), -e 's|^\(.*library/python/.*\)-$(v)$$|PYTHON_\1|g') |
| | | REQUIRED_PACKAGES_TRANSFORM += $(foreach v,$(subst $,\$,$(PYTHON_PYV_VALUES)),-e 's|^\(.*library/python/.*\)-$(v)$$|PYTHON_\1|g') |
| | | |
| | | # Look for manifests which need to be duplicated for each version of perl. |
| | | ifeq ($(findstring -PERLVER,$(UNVERSIONED_MANIFESTS)),-PERLVER) |
| | |
| | | # - the $(PLV) string itself |
| | | PERL_PLV_VALUES = $(subst .,,$(PERL_VERSIONS) $(PERL_VERSIONS_OBSOLETING)) $$(PLV) |
| | | # Convert REQUIRED_PACKAGES to PERL_REQUIRED_PACKAGES for runtime/perl |
| | | REQUIRED_PACKAGES_TRANSFORM += $(foreach v,$(PERL_PLV_VALUES), -e 's|^\(.*runtime/perl\)-$(v)$$|PERL_\1|g') |
| | | REQUIRED_PACKAGES_TRANSFORM += $(foreach v,$(subst $,\$,$(PERL_PLV_VALUES)),-e 's|^\(.*runtime/perl\)-$(v)$$|PERL_\1|g') |
| | | # Convert REQUIRED_PACKAGES to PERL_REQUIRED_PACKAGES for library/perl-5/* |
| | | REQUIRED_PACKAGES_TRANSFORM += $(foreach v,$(PERL_PLV_VALUES), -e 's|^\(.*library/perl-5/.*\)-$(v)$$|PERL_\1|g') |
| | | REQUIRED_PACKAGES_TRANSFORM += $(foreach v,$(subst $,\$,$(PERL_PLV_VALUES)),-e 's|^\(.*library/perl-5/.*\)-$(v)$$|PERL_\1|g') |
| | | |
| | | # Look for manifests which need to be duplicated for each version of ruby. |
| | | # NOPERL_MANIFESTS represents the manifests that are not Python or |
| | |
| | | PRE_PUBLISHED=$(RESOLVED:%.depend.res=%.pre-published) |
| | | PUBLISHED=$(RESOLVED:%.depend.res=%.published) |
| | | |
| | | HISTOGRIFIED = $(HISTORICAL_MANIFESTS:%.p5m=$(MANIFEST_BASE)-%.histogrified) |
| | | PUBLISHED += $(HISTORICAL_MANIFESTS:%.p5m=$(MANIFEST_BASE)-%.published) |
| | | |
| | | COPYRIGHT_FILE ?= $(COMPONENT_NAME)-$(COMPONENT_VERSION).copyright |
| | |
| | | sample-manifest: $(GENERATED).p5m |
| | | |
| | | $(GENERATED).p5m: install $(GENERATE_EXTRA_DEPS) |
| | | [ ! -d $(SAMPLE_MANIFEST_DIR) ] && $(MKDIR) $(SAMPLE_MANIFEST_DIR) || true |
| | | $(MKDIR) $(SAMPLE_MANIFEST_DIR) |
| | | $(PKGSEND) generate $(PKG_HARDLINKS:%=--target %) $(PROTO_DIR) | \ |
| | | $(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 $(GENERATE_TRANSFORMS) | \ |
| | | sed -e '/^$$/d' -e '/^#.*$$/d' \ |
| | |
| | | $(PKGFMT) | \ |
| | | cat $(METADATA_TEMPLATE) - $(GENERATE_EXTRA_CMD) | \ |
| | | $(TEE) $@ $(SAMPLE_MANIFEST_FILE) >/dev/null |
| | | if [ "$(GENERATE_GENERIC_TRANSFORMS)X" != "X" ]; \ |
| | | then sed $(GENERATE_GENERIC_TRANSFORMS) $(SAMPLE_MANIFEST_FILE) \ |
| | | | gawk '!seen[$$0]++' > $(GENERIC_MANIFEST_FILE); fi; |
| | | |
| | | # copy the canonical manifest(s) to the build tree |
| | | $(MANIFEST_BASE)-%.generate: %.p5m canonical-manifests |
| | |
| | | $(WS_TOP)/transforms/mkgeneric $< > $@ |
| | | if [ -f $*-GENFRAG.p5m ]; then cat $*-GENFRAG.p5m >> $@; fi |
| | | |
| | | ifeq ($(strip $(COMPONENT_AUTOGEN_MANIFEST)),yes) |
| | | # auto-generate file/directory list |
| | | $(MANIFEST_BASE)-%.generated: %.p5m $(BUILD_DIR) |
| | | (cat $(METADATA_TEMPLATE); \ |
| | | $(PKGSEND) generate $(PKG_HARDLINKS:%=--target %) $(PROTO_DIR)) | \ |
| | | $(PKGMOGRIFY) $(PKG_OPTIONS) /dev/fd/0 $(AUTOGEN_MANIFEST_TRANSFORMS) | \ |
| | | sed -e '/^$$/d' -e '/^#.*$$/d' | $(PKGFMT) | \ |
| | | cat $< - >$@ |
| | | per-manifest-options = $(foreach var,$(PKG_VARS),$(if $($(var).$(1)),-D $(var)="$(strip $($(var).$(1)))")) \ |
| | | $(if $(COMPONENT_CLASSIFICATION.$(1)),-D COMPONENT_CLASSIFICATION="org.opensolaris.category.2008:$(strip $(COMPONENT_CLASSIFICATION.$(1)))") |
| | | |
| | | # mogrify non-parameterized manifests |
| | | $(MANIFEST_BASE)-%.mogrified: %.generated $(MAKEFILE_PREREQ) |
| | | $(PKGMOGRIFY) $(PKG_OPTIONS) $< \ |
| | | $(PUBLISH_TRANSFORMS) | \ |
| | | sed -e '/^$$/d' -e '/^#.*$$/d' | uniq >$@ |
| | | |
| | | # mogrify parameterized manifests |
| | | $(MANIFEST_BASE)-%.mogrified: $(MANIFEST_BASE)-%.generated $(MAKEFILE_PREREQ) |
| | | $(PKGMOGRIFY) $(PKG_OPTIONS) $< \ |
| | | $(PUBLISH_TRANSFORMS) | \ |
| | | sed -e '/^$$/d' -e '/^#.*$$/d' | uniq >$@ |
| | | else |
| | | # mogrify non-parameterized manifests |
| | | $(MANIFEST_BASE)-%.mogrified: %.p5m $(BUILD_DIR) $(MAKEFILE_PREREQ) |
| | | $(PKGMOGRIFY) $(PKG_OPTIONS) $< \ |
| | | $(PKGMOGRIFY) $(PKG_OPTIONS) $(call per-manifest-options,$*) $< \ |
| | | $(PUBLISH_TRANSFORMS) | \ |
| | | sed -e '/^$$/d' -e '/^#.*$$/d' | uniq >$@ |
| | | |
| | |
| | | $(PKGMOGRIFY) $(PKG_OPTIONS) $< \ |
| | | $(PUBLISH_TRANSFORMS) | \ |
| | | sed -e '/^$$/d' -e '/^#.*$$/d' | uniq >$@ |
| | | endif |
| | | |
| | | # mangle the file contents |
| | | $(BUILD_DIR) $(MANGLED_DIR): |
| | |
| | | @echo "NEW PACKAGE CONTENTS ARE LOCALLY VALIDATED AND READY TO GO" |
| | | |
| | | $(MANIFEST_BASE)-%.histogrified: $(MANIFEST_BASE)-%.p5m |
| | | $(PKGMOGRIFY) $(PKG_OPTIONS) $< > $@ |
| | | $(PKGMOGRIFY) -D CONSOLIDATION="$(CONSOLIDATION)" $< > $@ |
| | | |
| | | # Push to the repo |
| | | $(MANIFEST_BASE)-%.published: $(MANIFEST_BASE)-%.pre-published |
| | |
| | | $(foreach t,$(VERSIONED_MANIFEST_TYPES),$(call ips-print-depend-require-type-rule,$(t))) | tr ' ' '\n' |
| | | |
| | | print-package-names: canonical-manifests $(MKGENERIC_SCRIPTS) |
| | | @echo $(call ips-print-names-rule,$(NONVER_MANIFESTS)) \ |
| | | @echo $(foreach m,$(NONVER_MANIFESTS),\ |
| | | $(call ips-print-names-rule,$(m))) \ |
| | | $(foreach t,$(VERSIONED_MANIFEST_TYPES),\ |
| | | $(call ips-print-names-type-rule,$(t))) \ |
| | | | tr ' ' '\n' |