DragonFly bugs List (threaded) for 2008-09
DragonFly BSD
DragonFly bugs List (threaded) for 2008-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: [issue1140] installkernel POSTFIX directive


From: Stefan Johannesdal <stefan.johannesdal@xxxxxxxxx>
Date: Tue, 23 Sep 2008 14:11:37 +0200

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 <dillon@backplane.com>
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


[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]