initrd: Handle ${DESTDIR} when building rescue tools
[dragonfly.git] / initrd / Makefile
1 INITRD_MAKE=    LC_ALL=C \
2                 make -m ${.CURDIR}/../share/mk
3
4 # Target directory to install the rescue tools
5 RESCUE_DIR?=            /rescue
6
7 # Temporary directory to stage the initrd files (e.g., /etc)
8 # NOTE: Ignore ${DESTDIR} when staging files into this directory
9 INITRD_STAGEDIR!=       mktemp -d -t initrd-stage
10
11 .END:
12         @rm -rf ${INITRD_STAGEDIR}
13
14 rescue: .PHONY
15         @${ECHO} ">>> Building and installing rescue tools ..."
16 .for _dir in oinit rescue rescue.libcrypto
17 .if !defined(NO_CLEAN)
18         (cd ${.CURDIR}/${_dir} && \
19             ${INITRD_MAKE} BINDIR=${RESCUE_DIR} clean cleandepend)
20 .endif
21         (cd ${.CURDIR}/${_dir} && \
22             ${INITRD_MAKE} BINDIR=${RESCUE_DIR} obj && \
23             ${INITRD_MAKE} BINDIR=${RESCUE_DIR} depend all install)
24 .endfor
25
26 initrd: rescue
27         @${ECHO} ">>> Preparing initrd contents ..."
28         (cd ${.CURDIR}/etc && \
29             mkdir ${INITRD_STAGEDIR}/etc && \
30             ${INITRD_MAKE} BINDIR=${INITRD_STAGEDIR}/etc depend all && \
31             ${INITRD_MAKE} BINDIR=${INITRD_STAGEDIR}/etc DESTDIR="" install)
32         @${ECHO} ">>> Creating initrd.img.gz ..."
33         sh ${.CURDIR}/mkinitrd.sh \
34             -b ${DESTDIR}/boot \
35             -r ${DESTDIR}${RESCUE_DIR} \
36             -c ${INITRD_STAGEDIR}
37
38 clean:
39         @${ECHO} ">>> Cleaning ..."
40 .for _dir in etc oinit rescue rescue.libcrypto
41         (cd ${.CURDIR}/${_dir} && \
42             ${INITRD_MAKE} BINDIR=${RESCUE_DIR} clean cleandepend)
43 .endfor