# step 4: build the distribution image # package lists are needed for installer and live-install images METADIR := files/Metadata # preparation targets of ../../build-distro/lib/build-distro.mk WHATEVER += metadata # handle these too DOT_BASE += $(BASE_PACKAGES_REGEXP) # args: name, suffix, command define dump-THEM if [ -n "$($(1)_$(2))" ]; then echo -e "\n## $(1)_$(2)"; $(3) $($(1)_$(2)); fi; endef dump-PACKAGES = $(call dump-THEM,$(1),PACKAGES,echo) dump-LISTS = $(call dump-THEM,$(1),LISTS,cat) # BASE_PACKAGES, BASE_LISTS and whatever else goes into base install; # thus construct requisite .base packagelist for alterator-pkg metadata-.base: @cd $(call list,/); \ { \ echo "## generated by features.in/metadata/lib/50-metadata.mk"; \ $(foreach p,SYSTEM COMMON THE BASE,$(call dump-PACKAGES,$(p))) \ $(foreach l,THE BASE,$(call dump-LISTS,$(l))) \ if [ -n "$(DOT_BASE)" ]; then \ echo -e "\n## DOT_BASE\n$(DOT_BASE)"; \ fi; \ } | sed -re '/^[^[:space:]#]/ s/[[:space:]]+/\n/g' > .base # see also alterator-pkg (backend3/pkg-install); # we only tar up what's up to it metadata: metadata-.base @mkdir -p $(METADIR); \ tar -C $(PKGDIR) -cvf - \ $(call rlist,$(THE_GROUPS) $(MAIN_GROUPS) .base) \ $(call rgroup,$(THE_GROUPS) $(MAIN_GROUPS)) \ > $(METADIR)/pkg-groups.tar