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: Sun, 21 Sep 2008 05:47:55 +0200

YONETANI Tomokazu wrote:
YONETANI Tomokazu <qhwt+dfly@les.ath.cx> added the comment:

I tend to like the variable name to begin with K... or KERN..., if
they are related to kernel, to avoid name clash with some other
applications (note that environment variables can also affect make
variables).  You may(or may not) feel this way when you a description
in bsd.own.mk.

DESTDIR is `An existing directory to be the root of the hierarchy'
according to build(7), and the location of kernel/modules in the hierarchy
has been moved from / to /boot.  For instance, when you build an ISO image
from the source, DESTDIR is set to ISOROOT, but kernel and modules should be
installed under ISOROOT/boot, not right under ISOROOT.  So if you do want
to be able to install the kernel/modules to some other directory not
containing .../boot, I think you can introduce a variable, say KERNDIR,
which defaults to /boot.

make installkernel KERNCONF=MYSMPCONF POSTFIX=.smp KERNDIR=/

or, with traditional method:
  cd /sys/config
  config -d /path/to/builddir /path/to/MYSMPCONF
  make depend && make
  make POSTFIX=.smp KERNDIR=/ install

Cheers.

----------
status: unread -> chatting

_____________________________________________________
DragonFly issue tracker <bugs@lists.dragonflybsd.org>
<https://bugs.dragonflybsd.org/issue1140>
_____________________________________________________

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.

--

Mvh - Stefan -

--- 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:
--- 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?=	/modules${KERNPOSTFIX}
 KMODOWN?=	${BINOWN}
 KMODGRP?=	${BINGRP}
 KMODMODE?=	${BINMODE}
--- 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=	DESTDIR=${DESTDIR}${DESTKERNDIR} KERNPOSTFIX=${KERNPOSTFIX} 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]