| | |
| | | $(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. |
| | |
| | | |
| | | 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)) |
| | | CANONICAL_MANIFESTS = $(filter-out dummy.p5m %.ARCH.p5m,$(wildcard *.p5m)) |
| | | ifneq ($(wildcard $(HISTORY)),) |
| | | HISTORICAL_MANIFESTS = $(shell $(NAWK) -v FUNCTION=name -f $(GENERATE_HISTORY) < $(HISTORY)) |
| | | endif |
| | | |
| | | # Support for arch specific manifests |
| | | ARCH_MANIFESTS = $(wildcard *.p5m.$(MACH)) |
| | | GENERATED_ARCH_MANIFESTS = $(ARCH_MANIFESTS:%.p5m.$(MACH)=%.p5m) |
| | | GENERATED_ARCH_MANIFESTS = $(ARCH_MANIFESTS:%.p5m.$(MACH)=%.ARCH.p5m) |
| | | CANONICAL_MANIFESTS += $(GENERATED_ARCH_MANIFESTS) |
| | | |
| | | %.p5m: %.p5m.$(MACH) |
| | | %.ARCH.p5m: %.p5m.$(MACH) |
| | | $(CP) $< $@ |
| | | |
| | | define ips-print-depend-require-rule |
| | |
| | | |
| | | 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) |
| | |
| | | RUBY_MANIFESTS = $(filter %-RUBYVER.p5m,$(NOPERL_MANIFESTS)) |
| | | RUBYV_VALUES = $(RUBY_VERSIONS) |
| | | RUBYV_FMRI_VERSION = RUBYV |
| | | RUBYV_MANIFESTS = $(foreach v,$(RUBY_VERSIONS),$(RUBY_MANIFESTS:-RUBYVER.p5m=-$(shell echo $(v) | cut -d. -f1,2 | tr -d .).p5m)) |
| | | RUBYV_MANIFESTS = $(foreach v,$(RUBY_VERSIONS),$(RUBY_MANIFESTS:-RUBYVER.p5m=-$(subst $(space),,$(wordlist 1,2,$(subst ., ,$(v)))).p5m)) |
| | | RUBYNV_MANIFESTS = $(RUBY_MANIFESTS:-RUBYVER.p5m=.p5m) |
| | | else |
| | | NORUBY_MANIFESTS = $(NOPERL_MANIFESTS) |
| | |
| | | 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' \ |
| | | -e '/\.la$$/d' | \ |
| | | $(GSED) -e '/^$$/d' -e '/^#.*$$/d' \ |
| | | -e '/\.la$$/d' \ |
| | | -e 's/$(subst .,\.,$(GCC_GNU_TRIPLET))/$$(GCC_GNU_TRIPLET)/g' | \ |
| | | $(PKGFMT) -u | \ |
| | | uniq | \ |
| | | $(PKGFMT) | \ |
| | | cat $(METADATA_TEMPLATE) - $(GENERATE_EXTRA_CMD) | \ |
| | | $(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 |
| | |
| | | -D RUBYV=$(subst .,,$(1)) $$< > $$@ |
| | | endef |
| | | $(foreach ver,$(RUBY_VERSIONS),\ |
| | | $(eval $(call ruby-manifest-rule,$(shell echo $(ver) | \ |
| | | cut -d. -f1,2),$(ver)))) |
| | | $(eval $(call ruby-manifest-rule,$(subst $(space),.,$(wordlist 1,2,$(subst ., ,$(ver)))),$(ver)))) |
| | | |
| | | # A rule to create a helper transform package for ruby, that will insert the |
| | | # appropriate conditional dependencies into a ruby library's |
| | |
| | | $(BUILD_DIR)/mkgeneric-ruby: $(WS_TOP)/make-rules/shared-macros.mk $(MAKEFILE_PREREQ) |
| | | $(RM) $@ |
| | | $(foreach ver,$(RUBY_VERSIONS),\ |
| | | $(call mkgeneric,runtime/ruby,$(shell echo $(ver) | \ |
| | | cut -d. -f1,2 | tr -d .))) |
| | | $(call mkgenericdep,runtime/ruby,$(shell echo $(RUBY_VERSIONS) | cut -d. -f1,2 | tr -d .)) |
| | | $(call mkgeneric,runtime/ruby,$(subst $(space),,$(wordlist 1,2,$(subst ., ,$(ver)))))) |
| | | $(call mkgenericdep,runtime/ruby,$(subst $(space),,$(wordlist 1,2,$(subst ., ,$(RUBY_VERSIONS))))) |
| | | |
| | | # Build Ruby version-wrapping manifests from the generic version. |
| | | # Creates build/manifest-*-modulename.p5m file. |
| | |
| | | $(PKGMOGRIFY) -D RUBYV=### $(BUILD_DIR)/mkgeneric-ruby \ |
| | | $(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 $< - >$@ |
| | | |
| | | # 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 |
| | | |
| | | 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)))") |
| | |
| | | $(PKGMOGRIFY) $(PKG_OPTIONS) $< \ |
| | | $(PUBLISH_TRANSFORMS) | \ |
| | | sed -e '/^$$/d' -e '/^#.*$$/d' | uniq >$@ |
| | | endif |
| | | |
| | | # mangle the file contents |
| | | $(BUILD_DIR) $(MANGLED_DIR): |
| | | $(MKDIR) $@ |
| | | |
| | | PKGMANGLE_OPTIONS = -D $(MANGLED_DIR) $(PKG_PROTO_DIRS:%=-d %) |
| | | ifeq ($(strip $(USE_CTF)),yes) |
| | | PKGMANGLE_OPTIONS += -c $(CTFCONVERT) |
| | | endif |
| | | $(MANIFEST_BASE)-%.mangled: $(MANIFEST_BASE)-%.mogrified $(MANGLED_DIR) |
| | | $(PKGMANGLE) $(PKGMANGLE_OPTIONS) -m $< >$@ |
| | | |
| | |
| | | $(BUILD_DIR)/runtime-perl.p5m: $(WS_TOOLS)/runtime-perl.p5m |
| | | $(CP) $< $@ |
| | | |
| | | $(BUILD_DIR)/runtime-ruby.p5m: $(WS_TOOLS)/runtime-ruby.p5m |
| | | $(CP) $< $@ |
| | | |
| | | # resolve the dependencies all at once |
| | | $(BUILD_DIR)/.resolved-$(MACH): $(DEPENDED) $(RESOLVE_DEPS) $(BUILD_DIR)/runtime-perl.p5m |
| | | $(PKGDEPEND) resolve $(RESOLVE_DEPS:%=-e %) -m $(DEPENDED) $(BUILD_DIR)/runtime-perl.p5m |
| | | $(BUILD_DIR)/.resolved-$(MACH): $(DEPENDED) $(RESOLVE_DEPS) $(BUILD_DIR)/runtime-perl.p5m $(BUILD_DIR)/runtime-ruby.p5m |
| | | $(PKGDEPEND) resolve $(RESOLVE_DEPS:%=-e %) -m $(DEPENDED) $(BUILD_DIR)/runtime-perl.p5m $(BUILD_DIR)/runtime-ruby.p5m |
| | | $(TOUCH) $@ |
| | | |
| | | # generate list of sed rules to filter out component's own packages from |
| | |
| | | $(call ips-print-names-rule,$(m))) \ |
| | | $(foreach t,$(VERSIONED_MANIFEST_TYPES),\ |
| | | $(call ips-print-names-type-rule,$(t))) \ |
| | | | tr ' ' '\n' |
| | | | tr ' ' '\n' | $(SORT) -u |
| | | |
| | | print-package-paths: canonical-manifests |
| | | @cat $(CANONICAL_MANIFESTS) $(WS_TOP)/transforms/print-paths | \ |