initrd: Fix parallel build
[dragonfly.git] / initrd / Makefile
1 INITRD_MAKE= make -m ${.CURDIR}/../share/mk
2
3 # Target directory to install the rescue tools
4 RESCUE_DIR?=            /rescue
5
6 # Temporary directory to stage the initrd files (e.g., /etc)
7 # NOTE: Ignore ${DESTDIR} when staging files into this directory
8 INITRD_STAGEDIR!=       mktemp -d -t initrd-stage
9
10 .END:
11         @rm -rf ${INITRD_STAGEDIR}
12
13 rescue:
14         @${ECHO} ">>> Building and installing rescue tools ..."
15 .for _dir in bin oinit sbin sbin.libcrypto
16 .if !defined(NO_CLEAN)
17         (cd ${.CURDIR}/${_dir}; \
18             ${INITRD_MAKE} BINDIR=${RESCUE_DIR} clean cleandepend)
19 .endif
20         (cd ${.CURDIR}/${_dir}; \
21             ${ECHO} "=> ${_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 bin oinit sbin sbin.libcrypto
41         (cd ${.CURDIR}/${_dir}; \
42             ${ECHO} "=> ${_dir}"; \
43             ${INITRD_MAKE} BINDIR=${RESCUE_DIR} clean cleandepend)
44 .endfor