From a88c11a0c982b431cd9bcb466974b422206dc419 Mon Sep 17 00:00:00 2001 From: Thomas Quinot Date: Sun, 8 Aug 2004 13:05:03 +0000 Subject: [PATCH] Include the nanoBSD make.conf in the top-level nanoBSD Makefile, so all configuration knobs (both system settings and nanoBSD-specific ones) can be tuned by modifying a single file. Move KERNCONF default value to make.conf. Attempt to resolve CFGMASTER like CUSTOMIZE, first relative to ${.CURDIR}, then as an absolute path. Allow optional additional arguments to be passed to the CUSTOMIZE script. --- tools/tools/nanobsd/Makefile | 43 +++++++++++++++++++++-------------- tools/tools/nanobsd/make.conf | 2 ++ 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/tools/tools/nanobsd/Makefile b/tools/tools/nanobsd/Makefile index 735d8d249811..0506f1263cf8 100644 --- a/tools/tools/nanobsd/Makefile +++ b/tools/tools/nanobsd/Makefile @@ -1,12 +1,20 @@ # Copyright (c) 2003-2004 Poul-Henning Kamp. +# Copyright (c) 2004 Thomas Quinot. # # See /usr/share/examples/etc/bsd-style-copyright for license terms. # # $FreeBSD$ +.include "${.CURDIR}/make.conf" + # parallism flag for make. MAKEJ?="-j12" +# Some CF cards behave as slaves, (eg Lexar) and are assigned ad1. +DEVICE?= ad0 +ROOTSLICE= ${DEVICE}s1a +CONFSLICE= ${DEVICE}s3 + # Physical disk paramters. Use diskinfo(8) on the target platform # to find the correct numbers. We assume 512 bytes sectors. HD?=16 @@ -17,21 +25,29 @@ SECTS?=501760 # will be split evenly between the two image slices (ad0s1/ad0s2) DATASLICE?=10240 -# Name of kernel configuration file to use. -KERNCONF?= GENERIC - # You probably do not need to change these. WORLDDIR?= ${.CURDIR}/../../.. WD?= ${.OBJDIR}/_.w # Set this to the name of a script if you want to customize the # contents of the image filesystems. -#CUSTOMIZE?= ${.CURDIR}/somescript.sh +#CUSTOMIZE?= ${.CURDIR}/somescript.sh +#CUSTOMIZE_ARGS?= some_arguments # Set this to the name of a directory used to populate the # configuration slice. #CFGMASTER?= ${.CURDIR}/cfgmaster +.for cust in CUSTOMIZE CFGMASTER +.if !empty(${cust}) +.if exists(${.CURDIR}/${${cust}}) +${cust}_PATH= ${.CURDIR}/${${cust}} +.elif exists(${${cust}}) +${cust}_PATH= ${${cust}} +.endif +.endif +.endfor + # # The final resulting image is in ${.OBJDIR}/_.i and the single slice # image in ${.OBJDIR}/_.i.s1 @@ -46,19 +62,14 @@ all: buildworld installworld buildimage # Customize: _.cs _.cs: _.iw _.di _.ik _.di - echo "/dev/ad0s1a / ufs ro 1 1" > ${WD}/etc/fstab -.if empty(CUSTOMIZE) + echo "/dev/${ROOTSLICE} / ufs ro 1 1" > ${WD}/etc/fstab +.if empty(CUSTOMIZE_PATH) # useful stuff for diskless boot sed -i "" -e /beastie/d ${WD}/boot/loader.rc sed -i "" -e /ttyd0/s/off/on/ ${WD}/etc/ttys echo " -h" > ${WD}/boot.config -.elif exists(${.CURDIR}/${CUSTOMIZE}) - sh -e ${.CURDIR}/${CUSTOMIZE} ${WD} ${WORLDDIR} ${.CURDIR} -.elif exists(${CUSTOMIZE}) - sh -e ${CUSTOMIZE} ${WD} ${WORLDDIR} ${.CURDIR} .else - echo "CUSTOMIZE script not found" 1>&2 - false + sh -e ${CUSTOMIZE_PATH} ${WD} ${WORLDDIR} ${.CURDIR} ${CUSTOMIZE_ARGS} .endif touch _.cs @@ -102,10 +113,9 @@ _.di: _.iw mv _.di.tmp _.di # Build kernel -_.bk: ${WORLDDIR}/sys/i386/conf/${KERNCONF} +_.bk: (cd ${WORLDDIR} && \ make ${MAKEJ} -s buildkernel \ - KERNCONF=${KERNCONF} \ __MAKE_CONF=${.CURDIR}/make.conf \ ) > _.bk.tmp 2>&1 mv _.bk.tmp _.bk @@ -115,7 +125,6 @@ _.ik: _.bk _.di cp ${WORLDDIR}/sys/i386/conf/GENERIC.hints ${WD}/boot/device.hints (cd ${WORLDDIR} && \ make ${MAKEJ} installkernel \ - KERNCONF=${KERNCONF} \ DESTDIR=${WD} \ __MAKE_CONF=${.CURDIR}/make.conf \ ) > _.ik.tmp 2>&1 @@ -135,7 +144,7 @@ _.md: _.cs mkdir -p ${WD}/conf/base/etc ( cd ${WD}/etc && find . -print | cpio -dumpl ../conf/base/etc ) mkdir -p ${WD}/conf/default/etc - echo "mount -o ro /dev/ad0s3" > ${WD}/conf/default/etc/remount + echo "mount -o ro /dev/${CONFSLICE}" > ${WD}/conf/default/etc/remount ln -s var/tmp ${WD}/tmp mtree -deU -f ${WD}/etc/mtree/BSD.root.dist -p ${WD}/ mtree -deU -f ${WD}/etc/mtree/BSD.usr.dist -p ${WD}/usr @@ -150,7 +159,7 @@ _.md: _.cs ${SC} \ ${DATASLICE} \ ${WD} ${.OBJDIR}/_.i \ - ${CFGMASTER} \ + ${CFGMASTER_PATH} \ > _.md.tmp 2>&1 mv _.mtree.tmp _.mtree mv _.md.tmp _.md diff --git a/tools/tools/nanobsd/make.conf b/tools/tools/nanobsd/make.conf index c6c804a4b193..653a228a361a 100644 --- a/tools/tools/nanobsd/make.conf +++ b/tools/tools/nanobsd/make.conf @@ -1,10 +1,12 @@ # # Copyright (c) 2003-2004 Poul-Henning Kamp. +# Copyright (c) 2004 Thomas Quinot. # # See /usr/share/examples/etc/bsd-style-copyright for license terms. # # $FreeBSD$ # +KERNCONF?=GENERIC NO_SENDMAIL=yes NO_KERBEROS=yes NO_IPFILTER=yes