Marcel Telka
2024-04-01 8b81466c5260d9945b49594e5cc088e75ee18d44
make-rules/ips.mk
@@ -154,17 +154,17 @@
SAMPLE_MANIFEST_DIR =    $(COMPONENT_DIR)/manifests
SAMPLE_MANIFEST_FILE =   $(SAMPLE_MANIFEST_DIR)/sample-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
@@ -275,7 +275,7 @@
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)
@@ -324,12 +324,13 @@
   $(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
# copy the canonical manifest(s) to the build tree
@@ -441,8 +442,7 @@
       -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
@@ -451,9 +451,8 @@
$(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.
@@ -483,6 +482,9 @@
   $(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 $< >$@
@@ -511,9 +513,12 @@
$(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
@@ -604,7 +609,7 @@
      $(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 | \