From 48af7ec15b38bcbee61ace6fa588f5268b310d39 Mon Sep 17 00:00:00 2001 From: Jeffrey Townsend Date: Tue, 5 Feb 2019 22:46:18 +0000 Subject: [PATCH] Cleanup rootfs, swi, and installer builds so they can be built in parallel for multiple distributions. --- builds/amd64/rootfs/builds/Makefile | 11 ++-------- builds/any/installer/APKG.yml | 18 ++++------------ builds/any/installer/grub/builds/Makefile | 16 +++++++++----- builds/any/installer/uboot/builds/Makefile | 16 +++++++++----- builds/any/rootfs/APKG.yml | 10 +++------ builds/any/swi/APKG.yml | 20 +++++------------ builds/arm64/rootfs/builds/Makefile | 9 ++------ builds/armel/rootfs/builds/Makefile | 7 ------ builds/armhf/rootfs/builds/Makefile | 7 ------ builds/powerpc/rootfs/builds/Makefile | 9 ++------ make/rfs.mk | 25 ++++++++++++++++------ make/swi.mk | 24 ++++++++++++++------- 12 files changed, 74 insertions(+), 98 deletions(-) diff --git a/builds/amd64/rootfs/builds/Makefile b/builds/amd64/rootfs/builds/Makefile index ff82e96e..a67a3b6c 100644 --- a/builds/amd64/rootfs/builds/Makefile +++ b/builds/amd64/rootfs/builds/Makefile @@ -1,16 +1,9 @@ include $(ONL)/make/config.amd64.mk -# -# Default to include all available amd64 platforms. -# You override this with you own list or yaml file. -# +ifndef PLATFORM_LIST export PLATFORM_LIST=$(shell onlpm --list-platforms --arch amd64 --csv ) +endif RFS_CONFIG := $(ONL)/builds/any/rootfs/$(ONL_DEBIAN_SUITE)/standard/standard.yml -RFS_DIR := rootfs-amd64.d -RFS_CPIO := rootfs-amd64.cpio.gz -RFS_SQUASH := rootfs-amd64.sqsh include $(ONL)/make/rfs.mk - - diff --git a/builds/any/installer/APKG.yml b/builds/any/installer/APKG.yml index 1c9c8247..ed4f8232 100644 --- a/builds/any/installer/APKG.yml +++ b/builds/any/installer/APKG.yml @@ -17,22 +17,12 @@ packages: summary: Open Network Linux $ARCH Installer files: - builds/*INSTALLER : $$PKG_INSTALL/ - builds/*.md5sum : $$PKG_INSTALL/ + builds/$ONL_DEBIAN_SUITE/*INSTALLER : $$PKG_INSTALL/ + builds/$ONL_DEBIAN_SUITE/*.md5sum : $$PKG_INSTALL/ changelog: Change changes changes., release: - - builds/*INSTALLER : $ARCH/ - - builds/*.md5sum : $ARCH/ - - - - - - - - - - + - builds/$ONL_DEBIAN_SUITE/*INSTALLER : $ARCH/ + - builds/$ONL_DEBIAN_SUITE/*.md5sum : $ARCH/ diff --git a/builds/any/installer/grub/builds/Makefile b/builds/any/installer/grub/builds/Makefile index 6f2342e0..f714f8bd 100644 --- a/builds/any/installer/grub/builds/Makefile +++ b/builds/any/installer/grub/builds/Makefile @@ -17,8 +17,8 @@ INSTALLER_NAME=$(FNAME_PRODUCT_VERSION)_ONL-OS$(DEBIAN_VERSION_ID)_$(FNAME_BUILD MKINSTALLER_OPTS = \ --onl-version "$(VERSION_STRING)" \ --arch $(ARCH) \ - --boot-config boot-config \ - --add-dir config \ + --boot-config ../boot-config \ + --add-dir ../config \ --initrd onl-loader-initrd:$(ARCH) onl-loader-initrd-$(ARCH).cpio.gz \ --swi onl-swi:$(ARCH) \ --preinstall-script $(ONL)/builds/any/installer/sample-preinstall.sh \ @@ -27,6 +27,12 @@ MKINSTALLER_OPTS = \ --plugin $(ONL)/builds/any/installer/sample-postinstall.py \ # THIS LINE INTENTIONALLY LEFT BLANK -__installer: - $(ONL)/tools/mkinstaller.py $(MKINSTALLER_OPTS) --out $(INSTALLER_NAME) - md5sum "$(INSTALLER_NAME)" | awk '{ print $$1 }' > "$(INSTALLER_NAME).md5sum" +WORK_DIR := $(ONL_DEBIAN_SUITE) + +__installer: clean + mkdir $(WORK_DIR) + cd $(WORK_DIR) && $(ONL)/tools/mkinstaller.py $(MKINSTALLER_OPTS) --out $(INSTALLER_NAME) + cd $(WORK_DIR) && md5sum "$(INSTALLER_NAME)" | awk '{ print $$1 }' > "$(INSTALLER_NAME).md5sum" + +clean: + rm -rf $(WORK_DIR) diff --git a/builds/any/installer/uboot/builds/Makefile b/builds/any/installer/uboot/builds/Makefile index f6527e86..3dedaeb1 100644 --- a/builds/any/installer/uboot/builds/Makefile +++ b/builds/any/installer/uboot/builds/Makefile @@ -17,8 +17,8 @@ INSTALLER_NAME=$(FNAME_PRODUCT_VERSION)_ONL-OS$(DEBIAN_VERSION_ID)_$(FNAME_BUILD MKINSTALLER_OPTS = \ --onl-version "$(VERSION_STRING)" \ --arch $(ARCH) \ - --boot-config boot-config \ - --add-dir config \ + --boot-config ../boot-config \ + --add-dir ../config \ --fit onl-loader-fit:$(ARCH) onl-loader-fit.itb \ --swi onl-swi:$(ARCH) \ --preinstall-script $(ONL)/builds/any/installer/sample-preinstall.sh \ @@ -27,6 +27,12 @@ MKINSTALLER_OPTS = \ --plugin $(ONL)/builds/any/installer/sample-postinstall.py \ # THIS LINE INTENTIONALLY LEFT BLANK -__installer: - $(ONL)/tools/mkinstaller.py $(MKINSTALLER_OPTS) --out $(INSTALLER_NAME) - md5sum "$(INSTALLER_NAME)" | awk '{ print $$1 }' > "$(INSTALLER_NAME).md5sum" +WORK_DIR := $(ONL_DEBIAN_SUITE) + +__installer: clean + mkdir $(WORK_DIR) + cd $(WORK_DIR) && $(ONL)/tools/mkinstaller.py $(MKINSTALLER_OPTS) --out $(INSTALLER_NAME) + cd $(WORK_DIR) && md5sum "$(INSTALLER_NAME)" | awk '{ print $$1 }' > "$(INSTALLER_NAME).md5sum" + +clean: + rm -rf $(WORK_DIR) diff --git a/builds/any/rootfs/APKG.yml b/builds/any/rootfs/APKG.yml index e8143127..0e4500b5 100644 --- a/builds/any/rootfs/APKG.yml +++ b/builds/any/rootfs/APKG.yml @@ -16,12 +16,8 @@ packages: summary: Open Network Linux Root Filesystem files: - builds/rootfs-$ARCH.cpio.gz : $$PKG_INSTALL/ - builds/rootfs-$ARCH.sqsh : $$PKG_INSTALL/ - builds/manifest.json : $$PKG_INSTALL/ + builds/$ONL_DEBIAN_SUITE/rootfs-$ARCH.cpio.gz : $$PKG_INSTALL/ + builds/$ONL_DEBIAN_SUITE/rootfs-$ARCH.sqsh : $$PKG_INSTALL/ + builds/$ONL_DEBIAN_SUITE/manifest.json : $$PKG_INSTALL/ changelog: Change changes changes., - - - - diff --git a/builds/any/swi/APKG.yml b/builds/any/swi/APKG.yml index 48b81df0..b653ef87 100644 --- a/builds/any/swi/APKG.yml +++ b/builds/any/swi/APKG.yml @@ -17,23 +17,13 @@ packages: summary: Open Network Linux Switch Image (All $ARCH) Platforms) files: - builds/*.swi : $$PKG_INSTALL/ - builds/*.md5sum : $$PKG_INSTALL/ - builds/manifest.json : $$PKG_INSTALL/ + builds/$ONL_DEBIAN_SUITE/*.swi : $$PKG_INSTALL/ + builds/$ONL_DEBIAN_SUITE/*.md5sum : $$PKG_INSTALL/ + builds/$ONL_DEBIAN_SUITE/manifest.json : $$PKG_INSTALL/ changelog: Change changes changes., release: - - builds/*.swi : $ARCH/ - - builds/*.md5sum : $ARCH/ - - - - - - - - - - + - builds/$ONL_DEBIAN_SUITE/*.swi : $ARCH/ + - builds/$ONL_DEBIAN_SUITE/*.md5sum : $ARCH/ diff --git a/builds/arm64/rootfs/builds/Makefile b/builds/arm64/rootfs/builds/Makefile index d5cba040..4629228d 100644 --- a/builds/arm64/rootfs/builds/Makefile +++ b/builds/arm64/rootfs/builds/Makefile @@ -1,14 +1,9 @@ include $(ONL)/make/config.arm64.mk -# -# Default to include all available arm64 platforms. -# You override this with you own list or yaml file. -# +ifndef PLATFORM_LIST export PLATFORM_LIST=$(shell onlpm --list-platforms --arch arm64 --csv ) +endif RFS_CONFIG := $(ONL)/builds/any/rootfs/$(ONL_DEBIAN_SUITE)/standard/standard.yml -RFS_DIR := rootfs-arm64.d -RFS_CPIO := rootfs-arm64.cpio.gz -RFS_SQUASH := rootfs-arm64.sqsh include $(ONL)/make/rfs.mk diff --git a/builds/armel/rootfs/builds/Makefile b/builds/armel/rootfs/builds/Makefile index a83c7d3e..0f59b55a 100644 --- a/builds/armel/rootfs/builds/Makefile +++ b/builds/armel/rootfs/builds/Makefile @@ -1,16 +1,9 @@ include $(ONL)/make/config.armel.mk -# -# Default to include all available powerpc platforms. -# You override this with you own list or yaml file. -# ifndef PLATFORM_LIST export PLATFORM_LIST=$(shell onlpm --list-platforms --arch armel --csv ) endif RFS_CONFIG := $(ONL)/builds/any/rootfs/$(ONL_DEBIAN_SUITE)/standard/standard.yml -RFS_DIR := rootfs-armel.d -RFS_CPIO := rootfs-armel.cpio.gz -RFS_SQUASH := rootfs-armel.sqsh include $(ONL)/make/rfs.mk diff --git a/builds/armhf/rootfs/builds/Makefile b/builds/armhf/rootfs/builds/Makefile index 45c1ea88..17652554 100644 --- a/builds/armhf/rootfs/builds/Makefile +++ b/builds/armhf/rootfs/builds/Makefile @@ -1,16 +1,9 @@ include $(ONL)/make/config.armhf.mk -# -# Default to include all available powerpc platforms. -# You override this with you own list or yaml file. -# ifndef PLATFORM_LIST export PLATFORM_LIST=$(shell onlpm --list-platforms --arch armhf --csv ) endif RFS_CONFIG := $(ONL)/builds/any/rootfs/$(ONL_DEBIAN_SUITE)/standard/standard.yml -RFS_DIR := rootfs-armhf.d -RFS_CPIO := rootfs-armhf.cpio.gz -RFS_SQUASH := rootfs-armhf.sqsh include $(ONL)/make/rfs.mk diff --git a/builds/powerpc/rootfs/builds/Makefile b/builds/powerpc/rootfs/builds/Makefile index a04806e2..764f9cf6 100644 --- a/builds/powerpc/rootfs/builds/Makefile +++ b/builds/powerpc/rootfs/builds/Makefile @@ -1,14 +1,9 @@ include $(ONL)/make/config.powerpc.mk -# -# Default to include all available powerpc platforms. -# You override this with you own list or yaml file. -# +ifndef PLATFORM_LIST export PLATFORM_LIST=$(shell onlpm --list-platforms --arch powerpc --csv ) +endif RFS_CONFIG := $(ONL)/builds/any/rootfs/$(ONL_DEBIAN_SUITE)/standard/standard.yml -RFS_DIR := rootfs-powerpc.d -RFS_CPIO := rootfs-powerpc.cpio.gz -RFS_SQUASH := rootfs-powerpc.sqsh include $(ONL)/make/rfs.mk diff --git a/make/rfs.mk b/make/rfs.mk index 17002059..7ea601b7 100644 --- a/make/rfs.mk +++ b/make/rfs.mk @@ -14,8 +14,20 @@ ifndef RFS_CONFIG $(error $$RFS_CONFIG must be set to the RFS yaml configuration file) endif +ifndef RFS_WORKDIR +RFS_WORKDIR := $(ONL_DEBIAN_SUITE) +endif + ifndef RFS_DIR -$(error $$RFS_DIR must be set) +RFS_DIR := $(RFS_WORKDIR)/rootfs-$(ARCH).d +endif + +ifndef RFS_CPIO +RFS_CPIO := $(RFS_WORKDIR)/rootfs-$(ARCH).cpio.gz +endif + +ifndef RFS_SQUASH +RFS_SQUASH := $(RFS_WORKDIR)/rootfs-$(ARCH).sqsh endif RFS_COMMAND := $(ONL)/tools/onlrfs.py --arch $(ARCH) --config $(RFS_CONFIG) --dir $(RFS_DIR) @@ -32,15 +44,14 @@ ifndef RFS_MANIFEST RFS_MANIFEST := etc/onl/rootfs/manifest.json endif -RFS: - $(ONL_V_at) sudo rm -rf manifest.json +LOCAL_MANIFEST := $(RFS_WORKDIR)/manifest.json + +RFS: clean $(ONL_V_at) $(RFS_COMMAND) - $(ONL_V_at) [ -f $(RFS_DIR)/$(RFS_MANIFEST) ] && cp $(RFS_DIR)/$(RFS_MANIFEST) . + $(ONL_V_at) [ -f $(RFS_DIR)/$(RFS_MANIFEST) ] && sudo cp $(RFS_DIR)/$(RFS_MANIFEST) $(LOCAL_MANIFEST) clean: - $(ONL_V_at) sudo rm -rf $(RFS_DIR) - $(ONL_v_at) rm -rf $(RFS_CPIO) $(RFS_SQUASH) - + $(ONL_V_at) sudo rm -rf $(RFS_WORKDIR) show-packages: $(ONL_V_at) $(RFS_COMMAND) --show-packages diff --git a/make/swi.mk b/make/swi.mk index 2472ace3..dfd5742b 100644 --- a/make/swi.mk +++ b/make/swi.mk @@ -10,21 +10,29 @@ ifdef REBUILD_RFS FORCE_OPTION = --force endif +ifndef SWI_WORKDIR +SWI_WORKDIR := $(ONL_DEBIAN_SUITE) +endif + + LINK_OPTIONS := $(FORCE_OPTION) --link-file $(ROOTFS_PACKAGE):$(ARCH) rootfs-$(ARCH).sqsh . --link-file $(ROOTFS_PACKAGE):$(ARCH) manifest.json . ifndef FILENAMER FILENAMER := $(ONL)/tools/filenamer.py endif -swi: FORCE - $(ONL_V_at) rm -rf *.swi* manifest.json - $(ONL_V_at) $(ONLPM) $(LINK_OPTIONS) +swi: FORCE clean + mkdir $(SWI_WORKDIR) && cd $(SWI_WORKDIR) && $(ONLPM) $(LINK_OPTIONS) ifdef ONL_PRE_SWITOOL_CMDS $(ONL_V_at) $(ONL_PRE_SWITOOL_CMDS) endif - $(ONL_V_at) $(ONL)/tools/switool.py --create $(ONL_SWITOOL_EXTRA_ARGS) --rootfs rootfs-$(ARCH).sqsh --manifest manifest.json $@ - $(ONL_V_at) mv $@ `$(FILENAMER) --type swi --manifest manifest.json $@` - $(ONL_V_at) for f in `ls *.swi`; do md5sum $$f > $$f.md5sum; done - $(ONL_V_at) rm -rf rootfs-$(ARCH).sqsh - $(ONL_V_at) ls *.swi + $(ONL_V_at) cd $(SWI_WORKDIR) && $(ONL)/tools/switool.py --create $(ONL_SWITOOL_EXTRA_ARGS) --rootfs rootfs-$(ARCH).sqsh --manifest manifest.json $@ + $(ONL_V_at) cd $(SWI_WORKDIR) && mv $@ `$(FILENAMER) --type swi --manifest manifest.json $@` + $(ONL_V_at) cd $(SWI_WORKDIR) && for f in `ls *.swi`; do md5sum $$f > $$f.md5sum; done + $(ONL_V_at) rm -rf $(SWI_WORKDIR)/rootfs-$(ARCH).sqsh + $(ONL_V_at) ls $(SWI_WORKDIR)/*.swi FORCE: + +clean: + $(ONL_v_at) rm -rf $(SWI_WORKDIR)/*.swi* $(SWI_WORKDIR)/manifest.json + test -d $(SWI_WORKDIR) && rmdir $(SWI_WORKDIR) || true