#!/bin/sh
#####################################################
## netbsd-build.sh
## v1.0rc2
## this script builds a complete current netbsd
## distribution and a ready to use install CD/DVD 
## image (iso image)
##
## features:
## - includes GENERIC netbsd kernel
## - includes a customized XEN DOMU kernel
## - optimized XEN DOMU for high load internet servers
## - includes or excludes X11
##
## (should be usable under each linux distribution
## and most unixes)
##
## by Niels Dettenbach <nd@syndicat.com>
## http://dettenbach.de
## licensed under the GPL

### usage:
## just copy this script to your home directory and
## execute i by:
## chmod +x ./netbsd-build.sh && ./netbsd-build.sh
##
## or just by:
## sh netbsd-build.sh

#####################################################
### CONFIGURATION
#
# The default configuration should work for most
# guys around. However - change configuration by 
# comment / uncomment lines.

## target path of the netbsd build ##################

#build within home directory (~/netbsd/)
BUILDPATH=~
# or another path
#BUILDPATH=/mnt/backup2/soft/netbsd2


### select a CVS host ###############################

# main netbsd server
CVSHOST=anoncvs.netbsd.org
# sweden
#CVSHOST=anoncvs.se.netbsd.org
# UK
#CVSHOST=cvsup.uk.NetBSD.org



### select a NetBSD release #########################
#
# change this to select a particular netbsd release 
# or branch

# builds a stable NetBSD 4.0 (latest stable)
#RELEASE=netbsd-4-0-RELEASE
RELEASE=netbsd-4-0-1-RELEASE
#RELEASE=netbsd-5
# NetBSD current (devel branch)
#RELEASE=.


### target machine ###################################
MARCH=i386



### select editor ##################################Ã#
# if you want to further edit kernel confiuration 
# files

$EDITOR=nano
#$EDITOR=vi 


#####################################################
cd $BUILDPATH
mkdir ./netbsd
cd ./netbsd
mkdir kernel obj release src tools xsrc

## get extra kernel config for XEN DOMU internet servers
cd $BUILDPATH/netbsd/kernel
wget http://www.syndicat.com/pub/netbsd/kernel/XEN3_DOMU_NIELS
wget http://www.syndicat.com/pub/netbsd/kernel/XEN2_DOMU_NIELS

## uncomment the following two lines in case you will make your own kernel config
#$EDITOR $BUILDPATH/netbsd/XEN3_DOMU_NIELS
#$EDITOR $BUILDPATH/netbsd/XEN2_DOMU_NIELS

## cvs checkpout the current cvs sources
cd $BUILDPATH/netbsd/
export CVSROOT=anoncvs@$CVSHOST:/cvsroot
export CVS_RSH=ssh
cvs co -r $RELEASE -P src
cvs co -r $RELEASE -P xsrc

## link in custom kernel config
ln -s $BUILDPATH/netbsd/kernel/XEN3_DOMU_NIELS $BUILDPATH/netbsd/src/sys/arch/$MARCH/conf/
ln -s $BUILDPATH/netbsd/kernel/XEN2_DOMU_NIELS $BUILDPATH/netbsd/src/sys/arch/$MARCH/conf/

## build run
## see $BUILDPATH/netbsd/src/BUILDING for details about all the nice build.sh options
cd $BUILDPATH/netbsd/src
sh build.sh -m $MARCH -O ../obj -T ../tools -X ../xsrc/ -R ../release -j2 -U -u -r tools kernel=XEN3_DOMU_NIELS release releasekernel=XEN3_DOMU_NIELS iso-image  

## show all generated kernels:
echo "Your generated kernels:"
ls -alh $BUILDPATH/netbsd/release/$MARCH/binary/kernel/

## go to and show the install CD image (iso)
echo "Here you get your NetBSD ISO image (install CD):"
cd $BUILDPATH/netbsd/release/iso/
pwd && ls -alh
echo "burn it on CD-ROM and boot it"
echo "have a lot of fun with NetBSD!"
### end ###############################################

