initrd: Tell make to use makefiles from the source tree
[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 sbin.lvm
16         (cd ${.CURDIR}/${_dir}; \
17             ${ECHO} "=> ${_dir}"; \
18             ${INITRD_MAKE} BINDIR=${RESCUE_DIR} clean cleandepend; \
19             ${INITRD_MAKE} BINDIR=${RESCUE_DIR} obj; \
20             ${INITRD_MAKE} BINDIR=${RESCUE_DIR} \
21                 depend all install clean cleandepend)
22 .endfor
23
24 initrd: rescue
25         @${ECHO} ">>> Preparing initrd contents ..."
26         (cd ${.CURDIR}/etc; \
27             mkdir ${INITRD_STAGEDIR}/etc; \
28             ${INITRD_MAKE} BINDIR=${INITRD_STAGEDIR}/etc depend all; \
29             ${INITRD_MAKE} BINDIR=${INITRD_STAGEDIR}/etc DESTDIR="" install)
30         @${ECHO} ">>> Creating initrd.img.gz ..."
31         sh ${.CURDIR}/mkinitrd.sh \
32             -b ${DESTDIR}/boot \
33             -r ${DESTDIR}${RESCUE_DIR} \
34             -c ${INITRD_STAGEDIR}
35         (cd ${.CURDIR}/etc; ${INITRD_MAKE} clean cleandepend)
36
37 clean:
38         @${ECHO} ">>> Cleaning ..."
39 .for _dir in bin oinit sbin sbin.libcrypto sbin.lvm
40         (cd ${.CURDIR}/${_dir}; \
41             ${ECHO} "=> ${_dir}"; \
42             ${INITRD_MAKE} BINDIR=${RESCUE_DIR} clean cleandepend)
43 .endfor