From 57179abeebaf40c2fc2a839fe6dcfab8c16cffe0 Mon Sep 17 00:00:00 2001 From: Aaron LI Date: Sat, 9 Jun 2018 20:06:05 +0800 Subject: [PATCH] initrd: Tell make to use makefiles from the source tree Otherwise, make uses makefiles from the system installed ones at /usr/share/mk, therefore, the updated bsd.prog.mk has no effect until being installed to the system. Note that the variables assigned by make (i.e., make ... var=value) will override the shell enviroment variables (e.g., var=value shell command). So make sure the make variable assignments (e.g., DESTDIR) are put after the make. Also fix mkinitrd.sh to remove the used temporary initrd image file. --- initrd/Makefile | 19 +++++++++++-------- initrd/mkinitrd.sh | 1 + 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/initrd/Makefile b/initrd/Makefile index b87ad908d8..87039a4dc6 100644 --- a/initrd/Makefile +++ b/initrd/Makefile @@ -1,3 +1,5 @@ +INITRD_MAKE= make -m ${.CURDIR}/../share/mk + # Target directory to install the rescue tools RESCUE_DIR?= /rescue @@ -6,35 +8,36 @@ RESCUE_DIR?= /rescue INITRD_STAGEDIR!= mktemp -d -t initrd-stage .END: - rm -rf ${INITRD_STAGEDIR} + @rm -rf ${INITRD_STAGEDIR} rescue: @${ECHO} ">>> Building and installing rescue tools ..." .for _dir in bin oinit sbin sbin.libcrypto sbin.lvm (cd ${.CURDIR}/${_dir}; \ ${ECHO} "=> ${_dir}"; \ - make BINDIR=${RESCUE_DIR} clean cleandepend ; \ - make BINDIR=${RESCUE_DIR} obj ; \ - make BINDIR=${RESCUE_DIR} depend all install clean cleandepend) + ${INITRD_MAKE} BINDIR=${RESCUE_DIR} clean cleandepend; \ + ${INITRD_MAKE} BINDIR=${RESCUE_DIR} obj; \ + ${INITRD_MAKE} BINDIR=${RESCUE_DIR} \ + depend all install clean cleandepend) .endfor initrd: rescue @${ECHO} ">>> Preparing initrd contents ..." (cd ${.CURDIR}/etc; \ mkdir ${INITRD_STAGEDIR}/etc; \ - make DESTDIR="" BINDIR=${INITRD_STAGEDIR}/etc \ - depend all install) + ${INITRD_MAKE} BINDIR=${INITRD_STAGEDIR}/etc depend all; \ + ${INITRD_MAKE} BINDIR=${INITRD_STAGEDIR}/etc DESTDIR="" install) @${ECHO} ">>> Creating initrd.img.gz ..." sh ${.CURDIR}/mkinitrd.sh \ -b ${DESTDIR}/boot \ -r ${DESTDIR}${RESCUE_DIR} \ -c ${INITRD_STAGEDIR} - (cd ${.CURDIR}/etc; make clean cleandepend) + (cd ${.CURDIR}/etc; ${INITRD_MAKE} clean cleandepend) clean: @${ECHO} ">>> Cleaning ..." .for _dir in bin oinit sbin sbin.libcrypto sbin.lvm (cd ${.CURDIR}/${_dir}; \ ${ECHO} "=> ${_dir}"; \ - make BINDIR=${RESCUE_DIR} clean cleandepend) + ${INITRD_MAKE} BINDIR=${RESCUE_DIR} clean cleandepend) .endfor diff --git a/initrd/mkinitrd.sh b/initrd/mkinitrd.sh index 3fa7790427..b2e683da28 100755 --- a/initrd/mkinitrd.sh +++ b/initrd/mkinitrd.sh @@ -293,3 +293,4 @@ fi echo -n "Copying ${INITRD_FILE}.gz to ${INITRD_DEST} ..." mv ${INITRD_FILE}.gz ${INITRD_DEST} echo " OK" +rm -f ${INITRD_FILE}.gz -- 2.41.0