Use the new mkinstaller script.

This commit is contained in:
Jeffrey Townsend
2016-07-11 21:54:31 +00:00
parent 898b1a1531
commit 9a98e40c09
2 changed files with 5 additions and 182 deletions

View File

@@ -2,92 +2,12 @@ ifndef ARCH
$(error $$ARCH not set)
endif
ONLPLATFORM = python $(ONL)/tools/onlplatform.py
PLATFORMS := $(shell $(ONLPM) --platform-manifest onl-loader-initrd:$(ARCH))
MKSHAR = $(ONL)/tools/mkshar
MKSHAR_OPTS = --lazy --unzip-pad --fixup-perms autoperms.sh
MKSHAR_PERMS = autoperms.sh
# Hardcoded to match ONL File naming conventions.
include $(ONL)/make/versions/version-onl.mk
INSTALLER_NAME=$(FNAME_PRODUCT_VERSION)_ONL-OS_$(FNAME_BUILD_ID)_$(UARCH)_INSTALLER
ifeq ($(ARCH), amd64)
INSTALLER_ARCH = x86_64
else
INSTALLER_ARCH = $(ARCH)
endif
__installer: __installer_platform_files __installer_swi_files
$(ONL_V_at)rm -rf *INSTALLER* *.md5sum
$(ONL_V_at)cp /dev/null installer.sh
$(ONL_V_at): ;\
set -e ;\
if $(ONL_V_P); then set -x; fi ;\
set dummy *.cpio.gz; initrd="$$2" ;\
sed \
-e 's^@ONLVERSION@^$(VERSION_STRING)^g' \
-e "s^@INITRD_ARCHIVE@^$$initrd^g" \
-e 's^@INITRD_OFFSET@^^g' \
-e 's^@INITRD_SIZE@^^g' \
-e 's^@ARCH@^$(INSTALLER_ARCH)^g' \
$(ONL)/builds/any/installer/installer.sh.in \
>> installer.sh
$(ONL_V_at)echo "PAYLOAD_FOLLOWS" >> installer.sh
$(ONL_V_at)cp /dev/null $(MKSHAR_PERMS)
$(ONL_V_at)cp $(ONL)/make/versions/version-onl.sh .
$(ONL_V_at)echo "#!/bin/sh" >> $(MKSHAR_PERMS)
$(ONL_V_at)echo "set -e" >> $(MKSHAR_PERMS)
$(ONL_V_at)echo "set -x" >> $(MKSHAR_PERMS)
$(MKSHAR) $(MKSHAR_OPTS) "$(INSTALLER_NAME)" $(ONL)/tools/scripts/sfx.sh.in installer.sh kernel-* onl-loader-initrd-* *.swi version-onl.sh boot-config
$(ONL_V_at)rm -rf installer.sh kernel-* onl-loader-initrd-* $(ZTN_MANIFEST) *.swi version-onl.sh autoperms.sh
__installer:
$(ONL)/tools/mkinstaller.py --arch $(ARCH) --boot-config boot-config --initrd onl-loader-initrd:$(ARCH) onl-loader-initrd-$(ARCH).cpio.gz --out $(INSTALLER_NAME)
md5sum "$(INSTALLER_NAME)" | awk '{ print $$1 }' > "$(INSTALLER_NAME).md5sum"
__installer_platform_files:
$(ONL_V_GEN): ;\
set -e ;\
if $(ONL_V_P); then set -x; fi ;\
l="$(PLATFORMS)"; for p in $$l; do \
src=$$($(ONLPLATFORM) $$p $(ARCH) kernel 2>/dev/null) || : ;\
if test "$$src"; then \
dst=$${src##*/} ;\
if test "$dst" -ot Makefile; then \
: ;\
else \
echo "Staging $$dst for $$p" ;\
cp "$$src" "$$dst" ;\
fi ;\
fi ;\
src=$$($(ONLPLATFORM) $$p $(ARCH) initrd 2>/dev/null) || : ;\
if test "$$src"; then \
dst=$${src##*/} ;\
if test "$dst" -ot Makefile; then \
: ;\
else \
echo "Staging $$dst for $$p" ;\
cp "$$src" "$$dst" ;\
fi ;\
fi ;\
done ;\
:
ifndef NO_SWI
__installer_swi_files:
$(ONL_V_GEN): ;\
set -e ;\
if $(ONL_V_P); then set -x; fi ;\
swidir=$$(mktemp -d $(PWD)/swi-d-XXXXXX) ;\
$(ONLPM) --extract-dir onl-swi:$(ARCH) $$swidir ;\
mv $$swidir/usr/share/onl/packages/$(ARCH)/onl-swi/*.swi . ;\
rm -fr $$swidir ;\
:
else
__installer_swi_files:
$(ONL_V_GEN):
endif
shar installer: installer
clean:
rm -f *.swi *.installer $(notdir $(KERNELS)) *initrd*.cpio.gz

View File

@@ -2,109 +2,12 @@ ifndef ARCH
$(error $$ARCH not set)
endif
ONLPLATFORM = python $(ONL)/tools/onlplatform.py
PLATFORMS := $(shell $(ONLPM) --platform-manifest onl-loader-initrd:$(ARCH))
MKSHAR = $(ONL)/tools/mkshar
MKSHAR_OPTS = --lazy --unzip-pad --fixup-perms autoperms.sh
MKSHAR_PERMS = autoperms.sh
VONLDIR = $(ONL)/packages/base/all/vendor-config-onl
PYFIT = $(VONLDIR)/src/bin/pyfit
PYFIT_ENVIRONMENT = PYTHONPATH=$(VONLDIR)/src/python
# Hardcoded to match ONL File naming conventions.
include $(ONL)/make/versions/version-onl.mk
INSTALLER_NAME=$(FNAME_PRODUCT_VERSION)_ONL-OS_$(FNAME_BUILD_ID)_$(UARCH)_INSTALLER
# default fit image can be used as the canonical location for the initrd
FIT_IMAGE_ALL := $(shell $(ONLPM) --find-file onl-loader-fit:$(ARCH) onl-loader-fit.itb)
INITRD := $(shell $(ONLPM) --find-file onl-loader-initrd:$(ARCH) onl-loader-initrd-$(ARCH).cpio.gz)
INITRD_BOUNDS := $(shell $(PYFIT_ENVIRONMENT) $(PYFIT) -v offset $(FIT_IMAGE_ALL) --initrd)
__installer:
$(ONL)/tools/mkinstaller.py --arch $(ARCH) --boot-config boot-config --fit onl-loader-fit:$(ARCH) onl-loader-fit.itb --out $(INSTALLER_NAME)
md5sum "$(INSTALLER_NAME)" | awk '{ print $$1 }' > "$(INSTALLER_NAME).md5sum"
__installer: installer.sh __installer_fit_files __installer_platform_files __installer_swi_files
$(ONL_V_at)rm -rf *INSTALLER* *.md5sum
$(ONL_V_at)cp /dev/null $(MKSHAR_PERMS)
$(ONL_V_at)cp $(ONL)/make/versions/version-onl.sh .
$(ONL_V_at)echo "#!/bin/sh" >> $(MKSHAR_PERMS)
$(ONL_V_at)echo "set -e" >> $(MKSHAR_PERMS)
$(ONL_V_at)echo "set -x" >> $(MKSHAR_PERMS)
$(MKSHAR) $(MKSHAR_OPTS) "$(INSTALLER_NAME)" $(ONL)/tools/scripts/sfx.sh.in installer.sh *.swi *.itb version-onl.sh boot-config
$(ONL_V_at)rm -rf installer.sh *.itb *.swi version-onl.sh autoperms.sh
$(ONL_V_at)md5sum "$(INSTALLER_NAME)" | awk '{ print $$1 }' > "$(INSTALLER_NAME).md5sum"
installer.sh: Makefile $(ONL)/builds/any/installer/installer.sh.in
$(ONL_V_GEN)cp /dev/null $@
$(ONL_V_at): ;\
set -e ;\
if $(ONL_V_P); then set -x; fi ;\
if test "$(INITRD_BOUNDS)"; then \
a="$(FIT_IMAGE_ALL)"; a=$${a##*/} ;\
else \
a="$(INITRD)"; i=$${a##*/} ;\
fi ;\
set dummy $(INITRD_BOUNDS); start=$$2; end=$$3; sz=$$(($$end - $$start + 1)) ;\
sed \
-e 's^@ONLVERSION@^$(VERSION_STRING)^g' \
-e "s^@INITRD_ARCHIVE@^$${a}^g" \
-e "s^@INITRD_OFFSET@^$$start^g" \
-e "s^@INITRD_SIZE@^$$sz^g" \
-e 's^@ARCH@^$(ARCH)^g' \
$(ONL)/builds/any/installer/installer.sh.in \
>> $@
$(ONL_V_at)echo "PAYLOAD_FOLLOWS" >> $@
__installer_fit_files:
$(ONL_V_GEN): ;\
set -e ;\
if $(ONL_V_P); then set -x; fi ;\
src=$(FIT_IMAGE_ALL) ;\
dst=$${src##*/} ;\
if test "$$dst" -nt Makefile; then \
: ;\
else \
echo "Staging $$dst" ;\
cp $$src $$dst ;\
fi ;\
:
##############################
#
# optionally include custom itb files for each platform
#
##############################
__installer_platform_files:
$(ONL_V_GEN): ;\
set -e ;\
if $(ONL_V_P); then set -x; fi ;\
l="$(PLATFORMS)"; for p in $$l; do \
echo "Looking for an ITB specific to $$p, ignore errors..." ;\
src=$$($(ONLPLATFORM) $$p $(ARCH) itb) 2>/dev/null || : ;\
if test "$$src"; then :; else continue; fi ;\
dst=$${src##*/} ;\
echo "Found $$dst" ;\
if test "$$dst" -nt Makefile; then continue; fi ;\
echo "Staging $$dst for $$p" ;\
cp "$$src" "$$dst" ;\
done ;\
:
__installer_swi_files:
ifndef NO_SWI
$(ONL_V_GEN): ;\
set -e ;\
if $(ONL_V_P); then set -x; fi ;\
swidir=$$(mktemp -d $(PWD)/swi-d-XXXXXX) ;\
$(ONLPM) --extract-dir onl-swi:$(ARCH) $$swidir ;\
mv $$swidir/usr/share/onl/packages/$(ARCH)/onl-swi/*.swi . ;\
rm -fr $$swidir ;\
:
else
$(ONL_V_GEN):
endif
shar installer: installer
clean:
rm -f *.swi *.installer *.cpio.gz