vkernel - Fix installkernel target
authorMatthias Schmidt <matthias@dragonflybsd.org>
Wed, 6 Oct 2010 18:35:50 +0000 (20:35 +0200)
committerMatthias Schmidt <matthias@dragonflybsd.org>
Wed, 6 Oct 2010 18:35:50 +0000 (20:35 +0200)
The recommended command to install a vkernel is ATM:

make -DNO_MODULES installkernel KERNCONF=VKERNEL DESTDIR=/var/vkernel

This installed the plain kernel into /var/vkernel.  Due to the
introduction of the new loader (dloader), the installkernel target
refused to work, because it could not find a boot/ directory.

Skip the error message about missing boot/ and skip the creation of the
kernel.old/ backup directory when installing a vkernel kernel.

sys/conf/kern.paths.mk
sys/conf/kern.post.mk

index c78a560..ad7c5a6 100644 (file)
@@ -19,4 +19,6 @@ OLDMODULESDIR?=               /boot/modules
 # not to shoot the real kernel installation.
 .if ${MACHINE_PLATFORM} == vkernel || ${MACHINE_PLATFORM} == vkernel64
 DESTDIR?=              /var/vkernel
+# Unset DESTKERNDIR as we install the kernel directly into $DESTDIR
+DESTKERNDIR=
 .endif
index 80cf7ca..256c7e9 100644 (file)
@@ -123,7 +123,10 @@ kernel-install: kernel-installable
        @if [ -f ${DESTDIR}${DESTKERNDIR}.old ]; then           \
                rm -f ${DESTDIR}${DESTKERNDIR}.old;             \
        fi
+# Skip this step for vkernels
+.if ${MACHINE_PLATFORM} != vkernel && ${MACHINE_PLATFORM} != vkernel64
        mkdir -p ${DESTDIR}${DESTKERNDIR}.old
+.endif
 .  if exists(${DESTDIR}${DESTKERNDIR}/${DESTKERNNAME})
 .ifndef NOFSCHG
        -chflags noschg ${DESTDIR}${DESTKERNDIR}/${DESTKERNNAME}
@@ -164,6 +167,8 @@ kernel-installable:
                echo "kernel and modules have moved to /boot"; \
                exit 1; \
        fi
+# Skip this step for vkernels
+.if ${MACHINE_PLATFORM} != vkernel && ${MACHINE_PLATFORM} != vkernel64
        @if [ ! -f ${DESTDIR}/boot/dloader.rc ]; then \
                echo "You need to install a new ${DESTDIR}/boot before you"; \
                echo "can install a new kernel, kernels are now installed"; \
@@ -172,6 +177,7 @@ kernel-installable:
                echo "sequence."; \
                exit 1; \
        fi
+.endif
        @exit 0
 
 .if !defined(MODULES_WITH_WORLD) && !defined(NO_MODULES)