[issue1140] installkernel POSTFIX directive

Stefan Johannesdal stefan.johannesdal at gmail.com
Sun Sep 21 07:27:49 PDT 2008


Stefan Johannesdal wrote:
New try. How about DESTKERNDIR (to go with DESTKERNNAME) and KERNPOSTFIX?

DESTKERNNAME only affects the name of the kernel and if you have 
different module options between different kernel configs you want to 
have something in common between the kernel name and the modules 
directory name -> KERNPOSTFIX.

DESTKERNDIR is a added directive and does not interfer with DESTDIR.

Small change regarding how the kernel directory is passed to the modules 
make environment. DESTDIR is completely untouched now.

--

Mvh  - Stefan -

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




More information about the Bugs mailing list