1 |
#!/usr/bin/env bash |
2 |
# Soekris Boot Build |
3 |
# |
4 |
# Douglas Thrift |
5 |
# |
6 |
# $Id$ |
7 |
|
8 |
set -e |
9 |
shopt -s extglob |
10 |
|
11 |
version=$(eval `grep -E '^(REVISION|BRANCH)=.*$' /usr/src/sys/conf/newvers.sh`; echo "${REVISION}-${BRANCH}") |
12 |
architecture=(`uname -m`) |
13 |
makefile=/usr/src/sys/boot/i386/libi386/Makefile |
14 |
|
15 |
case $architecture in |
16 |
(!(amd64|i386)) |
17 |
echo "`basename $0`: wrong architecture: $architecture" |
18 |
exit 1 |
19 |
;; |
20 |
esac |
21 |
|
22 |
sudo sed -e 's/^CFLAGS+= -DTERM_EMU$/#&/' -i .orig $makefile |
23 |
sudo make -C /usr/src CPUTYPE= BOOT_COMCONSOLE_SPEED=19200 SUBDIR_OVERRIDE=sys/boot WITHOUT_ZFS=yes clean all |
24 |
sudo mv $makefile.orig $makefile |
25 |
mkdir -p boot/kernel |
26 |
cp /usr/src/sys/boot/i386/{loader/loader,pxeldr/pxeboot} boot |
27 |
sudo make -C /usr/src/sys/boot clean |
28 |
|
29 |
export MAKEOBJDIRPREFIX=`realpath .` TARGET=i386 |
30 |
|
31 |
if [[ $architecture = i386 ]]; then |
32 |
prefix=. |
33 |
else |
34 |
prefix=i386 |
35 |
|
36 |
make -C /usr/src -j 8 kernel-toolchain |
37 |
fi |
38 |
|
39 |
make -C /usr/src -j 8 CPUTYPE= KERNCONF=SOEKRIS buildkernel |
40 |
cp $prefix/usr/src/sys/SOEKRIS/kernel boot/kernel |
41 |
rm -rf ${prefix/./usr} |
42 |
|
43 |
fakeroot bsdtar cjvf soekrisboot-$version.tar.bz2 boot |
44 |
rm -rf boot |