From 219a6dab8995aad9ac4860cc1a84d6f3509a03a4 Mon Sep 17 00:00:00 2001 From: wbx Date: Sun, 17 May 2009 14:41:34 +0200 Subject: Initial import --- mk/image.mk | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 mk/image.mk (limited to 'mk/image.mk') diff --git a/mk/image.mk b/mk/image.mk new file mode 100644 index 000000000..4388dcaad --- /dev/null +++ b/mk/image.mk @@ -0,0 +1,69 @@ +# $Id$ +#- +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +imageprepare: kernel-install image-prepare-post + +image-prepare-post: + rng=/dev/arandom; test -e $$rng || rng=/dev/urandom; \ + dd if=$$rng bs=512 count=1 >>${TARGET_DIR}/etc/.rnd 2>/dev/null; \ + chmod 600 ${TARGET_DIR}/etc/.rnd + # Sanity checks + @cd ${TARGET_DIR}; ls=; ln=; li=; x=1; md5sum $$(find . -type f) | \ + sed -e "s/*//" | \ + while read sum name; do \ + inode=$$(ls -i "$$name"); \ + echo "$$sum $${inode%% *} $$name"; \ + done | sort | while read sum inode name; do \ + if [[ $$sum = $$ls ]]; then \ + [[ $$li = $$inode ]] && continue; \ + case $$x in \ + 1) echo 'WARNING: duplicate files found' \ + 'in filesystem! Please fix them.' >&2; \ + echo -n "> $$ln "; \ + ;; \ + 2) echo -n "> $$ln "; \ + ;; \ + 3) echo -n ' '; \ + ;; \ + esac; \ + echo -n "$$name"; \ + x=3; \ + else \ + case $$x in \ + 3) echo; \ + x=2; \ + ;; \ + esac; \ + fi; \ + ls=$$sum; \ + ln=$$name; \ + li=$$inode; \ + done + chmod 4511 ${TARGET_DIR}/bin/busybox + chmod 1777 ${TARGET_DIR}/tmp + +INITRAMFS= ${DEVICE}-${ARCH}-${FS} +ROOTFSSQUASHFS= ${DEVICE}-${ARCH}-${FS}.fimage +ROOTFSTARBALL= ${DEVICE}-${ARCH}-${FS}.tar.gz + +${BIN_DIR}/${ROOTFSTARBALL}: ${TARGET_DIR} + cd ${TARGET_DIR}; tar -cf - --owner=0 --group=0 . | gzip -n9 >$@ + +${BIN_DIR}/${INITRAMFS}: ${TARGET_DIR} + cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | sort | \ + cpio -R 0:0 --quiet -oC512 -Mdist -Hnewc | gzip -n9 >$@ + +${BIN_DIR}/${ROOTFSSQUASHFS}: ${TARGET_DIR} + PATH='${TARGET_PATH}' \ + mksquashfs ${TARGET_DIR} ${BUILD_DIR}/root.squashfs \ + -nopad -noappend -root-owned -le $(MAKE_TRACE) + # padding of images is required + cat ${BIN_DIR}/${DEVICE}-${ARCH}-kernel ${BUILD_DIR}/root.squashfs > \ + ${BUILD_DIR}/${ROOTFSSQUASHFS} + dd if=${BUILD_DIR}/${ROOTFSSQUASHFS} of=${BIN_DIR}/${ROOTFSSQUASHFS} \ + bs=4063232 conv=sync $(MAKE_TRACE) + +imageclean: + rm -f $(BIN_DIR)/$(DEVICE)-* -- cgit v1.2.3