On Thursday 16 November 2006 20:48, George Allan wrote:
> The section in the Handbook presents a solution for a scenario in which
> all machines in a build set are more less identical, or sufficiently
> generic enough that each machine's make.conf is the same, the exception
> being the build machine's own make.conf (which can specify that multiple
> kernels are built).
>
> Sounds reasonable, but I imagine a more likely (or at least common)
> scenario is one in which there's a variety of hardware and functions,
> and each system requires a customized make.conf, in addition to a custom
> kernel.
>
> With respect to the approach presented below, which of the following is
> most true:
>
>       (a)     It will work;
>       (b)     It won't work;
>       (c)     It might work, but I'd do it differently;
>       (d) A build machine is a dumb idea; or
>       (e) My name's not Dave you insensitive clod.
>
> -----------------------------------------------------------
> #!/bin/sh
> #
> # Rudimentary build script.
> # /etc/make.conf.[hostname] sets KERNCONF
>
> BUILD_SET="host1 host2 host3 host4 host5 host6 host7 host8 host9 host10"
>
> echo "This is really going to take some time, Dave."
> echo "Maybe you want to come back tomorrow?"
>
> for MACHINE in ${BUILD_SET} ; do
>       MAKECONF="/etc/make.conf.${MACHINE}"
>       BUILD_DIR="/usr/obj/${MACHINE}"
>       WORLD_LOG="/var/log/buildworld.${MACHINE}.log"
>       KERNEL_LOG="/var/log/buildkernel.${MACHINE}.log"
>
>       echo "Building world for ${MACHINE}."
>       env MAKEOBJDIRPREFIX=${BUILD_DIR} __MAKE_CONF=${MAKECONF} \
>       make buildworld -j 4 | tee ${WORLD_LOG}
>
>       echo "Building kernel for ${MACHINE}."
>       env MAKEOBJDIRPREFIX=${BUILD_DIR} __MAKE_CONF=${MAKECONF} \
>       make buildkernel -j 4 | tee ${KERNEL_LOG}
> done
> -----------------------------------------------------------
>
> Comments, questions and complaints all welcomed.
>
> Thanks.

so have you tried your theorized method, or are you just laying it out on 
paper for discussion?  i track for several machines, but my approach is the 
simpleton "i dont understand all the scripting" approach.

on my build machine, i have no special settings in make.conf.  i just cvsup 
the sources, and then build the world, and a kernel for each config file i 
have in sys/i386/conf.  then, on each machine that will get kernel, world, 
and ports from the build server, i specify this one setting in make.conf:

WRKDIRPREFIX=/tmp

(building ports in the actual NFS mounted ports directory works hardly ever).  
other than that, i just mount /usr/src /usr/obj and /usr/ports from the 
target to the build server, and install the world and its designated kernel 
as normal.

the night before, yours truly (aka, the non-sciptable simpleton) just strings 
a bunch of 'make buildkernel KERNCONF's together with ; between them.

cheers,
jonathan
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to