Matthew Dillon wrote:
    Lets clean up the names a bit.  DESTKERNDIR is ok, but KERNPOSTFIX
    is a problem.  Lets rename KERNPOSTFIX to DESTVARIATION or DESTLABEL.
    I think DESTLABEL fits better.  KERNPOSTFIX is too confusing.

    I've thought about it a bit more and I am going to back away from
    wanting the postfix automatically based on the kernconf.  But we
    do want to get rid of the '.' in the postfix (as well as rename it).

    So how about this:

    make installkernel KERNCONF=GENERIC

        Installs as /boot/kernel, /boot/modules

    make installkernel KERNCONF=FUBAR DESTLABEL=smp

        Installs as /boot/kernel.smp, /boot/modules.smp

    make installkernel KERNCONF=FUBAR DESTLABEL=smp DESTDIR=/mnt

        Installs as /mnt/boot/kernel.smp, /mnt/boot/modules.smp

    make installkenrel KERNCONF=FUBAR DESTKERNDIR=/mnt/fubar

        Installs as /mnt/fubar/kernel and /mnt/fubar/kernel.smp

I think its important for DESTLABEL to not need the '.', though it
    does mean some additional complication in the Makefile's.  I recommend
    building an internal DESTKERNNAME and DESTMODULESNAME based on
    DESTLABEL.  If DESTLABEL does not exist DESTKERNNAME would be 'kernel'
    and DESTMODULESNAME would be 'modules'.  If DESTLABEL does exist then
    DESTKERNNAME would be 'kernel.${DESTLABEL}' and DESTMODULESNAME would
    be 'modules.${DESTLABEL}'.

    One could also override the whole name by specifying DESTKERNNAME and
    DESTMODULESNAME.

    How does that sound?

                                        -Matt
Matthew Dillon <[EMAIL PROTECTED]>
Sounds fine to me. Attaching the latest diffs.

--

Mvh  - Stefan -

--- bsd.own.mk.org      2008-09-02 13:50:45 +0200
+++ bsd.own.mk  2008-09-23 13:05:35 +0200
@@ -151,7 +151,7 @@
 BINMODE?=      555
 NOBINMODE?=    444
 
-KMODDIR?=      /boot/modules
+KMODDIR?=      ${DESTKERNDIR}/${DESTMODULESNAME}
 KMODOWN?=      ${BINOWN}
 KMODGRP?=      ${BINGRP}
 KMODMODE?=     ${BINMODE}
--- kern.post.mk.org    2008-09-15 23:13:07 +0200
+++ kern.post.mk        2008-09-23 13:37:47 +0200
@@ -111,31 +111,31 @@
                echo "You must build a kernel first." ; \
                exit 1 ; \
        fi
-.  if exists(${DESTDIR}/boot/${DESTKERNNAME})
+.  if exists(${DESTDIR}${DESTKERNDIR}/${DESTKERNNAME})
 .ifndef NOFSCHG
-       -chflags noschg ${DESTDIR}/boot/${DESTKERNNAME}
+       -chflags noschg ${DESTDIR}${DESTKERNDIR}/${DESTKERNNAME}
 .endif
 .    ifdef NO_KERNEL_OLD_STRIP
-       cp -p ${DESTDIR}/boot/${DESTKERNNAME} 
${DESTDIR}/boot/${DESTKERNNAME}.old
+       cp -p ${DESTDIR}${DESTKERNDIR}/${DESTKERNNAME} 
${DESTDIR}${DESTKERNDIR}/${DESTKERNNAME}.old
 .    else
-       ${OBJCOPY} --strip-debug ${DESTDIR}/boot/${DESTKERNNAME} 
${DESTDIR}/boot/${DESTKERNNAME}.old
+       ${OBJCOPY} --strip-debug ${DESTDIR}${DESTKERNDIR}/${DESTKERNNAME} 
${DESTDIR}${DESTKERNDIR}/${DESTKERNNAME}.old
 .    endif
 .  endif
 .ifdef NOFSCHG
        ${INSTALL} -m 555 -o root -g wheel \
-               ${SELECTEDKERNEL} ${DESTDIR}/boot/${DESTKERNNAME}
+               ${SELECTEDKERNEL} ${DESTDIR}${DESTKERNDIR}/${DESTKERNNAME}
 .else
        ${INSTALL} -m 555 -o root -g wheel -fschg \
-               ${SELECTEDKERNEL} ${DESTDIR}/boot/${DESTKERNNAME}
+               ${SELECTEDKERNEL} ${DESTDIR}${DESTKERNDIR}/${DESTKERNNAME}
 .endif
 
 kernel-reinstall: kernel-installable
 .ifdef NOFSCHG
        ${INSTALL} -m 555 -o root -g wheel \
-               ${SELECTEDKERNEL} ${DESTDIR}/boot/${DESTKERNNAME}
+               ${SELECTEDKERNEL} ${DESTDIR}${DESTKERNDIR}/${DESTKERNNAME}
 .else
        ${INSTALL} -m 555 -o root -g wheel -fschg \
-               ${SELECTEDKERNEL} ${DESTDIR}/boot/${DESTKERNNAME}
+               ${SELECTEDKERNEL} ${DESTDIR}${DESTKERNDIR}/${DESTKERNNAME}
 .endif
 
 # Require DESTDIR to be manually specified when installing a
@@ -143,8 +143,9 @@
 #
 kernel-installable:
 .if ${P} == vkernel
-.if !defined(DESTDIR)
-       @echo "When installing a virtual kernel, DESTDIR must be manually 
specified"
+.if ( !defined(DESTDIR) && ( !defined(DESTKERNDIR) || ${DESTKERNDIR} == /boot 
) )
+       @echo "When installing a virtual kernel,"
+       @echo "DESTKERNDIR or DESTDIR must be manually specified"
        @exit 1
 .endif
 .endif
@@ -199,24 +200,24 @@
 modules-install:
 .if !defined(NO_MODULES_OLD)
 .  ifdef NO_KERNEL_OLD_STRIP
-       set -- ${DESTDIR}/boot/modules/*; \
+       set -- ${DESTDIR}${DESTKERNDIR}/${DESTMODULESNAME}/*; \
        if [ -f "$$1" ]; then \
-               mkdir -p ${DESTDIR}/boot/modules.old; \
+               mkdir -p ${DESTDIR}${DESTKERNDIR}/${DESTMODULESNAME}.old; \
                for file; do \
-               cp -p $$file ${DESTDIR}/boot/modules.old; \
+               cp -p $$file ${DESTDIR}${DESTKERNDIR}/${DESTMODULESNAME}.old; \
                done; \
        fi
 .  else
-       set -- ${DESTDIR}/boot/modules/*; \
+       set -- ${DESTDIR}${DESTKERNDIR}/${DESTMODULESNAME}/*; \
        if [ -f "$$1" ]; then \
-               mkdir -p ${DESTDIR}/boot/modules.old; \
+               mkdir -p ${DESTDIR}${DESTKERNDIR}/${DESTMODULESNAME}.old; \
                for file; do \
-               ${OBJCOPY} --strip-debug $$file 
${DESTDIR}/boot/modules.old/$${file##*/}; \
+               ${OBJCOPY} --strip-debug $$file 
${DESTDIR}${DESTKERNDIR}/${DESTMODULESNAME}.old/$${file##*/}; \
                done; \
        fi
 .  endif
 .endif
-       mkdir -p ${DESTDIR}/boot/modules # Ensure that the modules directory 
exists!
+       mkdir -p ${DESTDIR}${DESTKERNDIR}/${DESTMODULESNAME} # Ensure that the 
modules directory exists!
        cd $S ; env ${MKMODULESENV} ${MAKE} -f Makefile.modules install
 
 modules-reinstall:
--- kern.pre.mk.org     2008-09-15 22:09:03 +0200
+++ kern.pre.mk 2008-09-23 13:35:42 +0200
@@ -103,10 +103,17 @@
 FULLKERNEL=    ${KERNEL}.nodebug
 SELECTEDKERNEL= ${KERNEL}.stripped
 .endif
-DESTKERNNAME?= ${KERNEL}
+.if defined(DESTLABEL)
+  DESTKERNNAME?=${KERNEL}.${DESTLABEL}
+  DESTMODULESNAME?=modules.${DESTLABEL}
+.else
+  DESTKERNNAME?=${KERNEL}
+  DESTMODULESNAME?=modules
+.endif
+DESTKERNDIR?=/boot
 
 
-MKMODULESENV=  MAKEOBJDIRPREFIX=${.OBJDIR} BUILDING_WITH_KERNEL=${.OBJDIR}
+MKMODULESENV=  DESTKERNDIR=${DESTKERNDIR} DESTMODULESNAME=${DESTMODULESNAME} 
MAKEOBJDIRPREFIX=${.OBJDIR} BUILDING_WITH_KERNEL=${.OBJDIR}
 .if defined(MODULES_OVERRIDE)
 MKMODULESENV+= MODULES_OVERRIDE="${MODULES_OVERRIDE}"
 .endif

Reply via email to