12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- # 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 extra-install
- # if an extra directory exist in TOPDIR, copy all content over the
- # root directory, do the same if make extra=/dir/to/extra is used
- extra-install:
- @if [ -d $(TOPDIR)/extra ];then $(CP) $(TOPDIR)/extra/* ${TARGET_DIR};fi
- @if [ ! -z $(extra) ];then $(CP) $(extra)/* ${TARGET_DIR};fi
- 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= ${ADK_TARGET}-${ADK_LIBC}-${FS}
- ROOTFSSQUASHFS= ${ADK_TARGET}-${ADK_LIBC}-${FS}.img
- ROOTFSTARBALL= ${ADK_TARGET}-${ADK_LIBC}-${FS}.tar.gz
- INITRAMFS_PIGGYBACK= ${ADK_TARGET}-${ADK_LIBC}-${FS}.cpio
- ${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 -oC512 -Mdist -Hnewc | ${ADK_COMPRESSION_TOOL} >$@
- ${BUILD_DIR}/${INITRAMFS_PIGGYBACK}: ${TARGET_DIR}
- cd ${TARGET_DIR}; find . | sed -n '/^\.\//s///p' | sort | \
- cpio -R 0:0 -oC512 -Mdist -Hnewc >$@
- ${BIN_DIR}/${ROOTFSSQUASHFS}: ${TARGET_DIR}
- PATH='${TARGET_PATH}' \
- mksquashfs ${TARGET_DIR} ${BUILD_DIR}/root.squashfs \
- -nopad -noappend -root-owned $(MAKE_TRACE)
- cat ${BIN_DIR}/${ADK_TARGET}-${FS}-kernel \
- ${BUILD_DIR}/root.squashfs > \
- ${BUILD_DIR}/${ROOTFSSQUASHFS}
- imageclean:
- rm -f $(BIN_DIR)/$(ADK_TARGET)-* ${BUILD_DIR}/$(ADK_TARGET)-*
|