summaryrefslogtreecommitdiff
path: root/genbootstrap.sh
blob: be94eec20b49f4f2efa30d137a9509edf41a67ba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/sh
set -x

if test `uname` = Plan9; then
    export MYR_MUSE=`pwd`/muse/6.out
    export MYR_MC=`pwd`/6/6.out
    export MYR_RT=`pwd`/rt/_myrrt.6
else
    export MYR_MUSE=`pwd`/muse/muse
    export MYR_MC=`pwd`/6/6m
    export MYR_RT=`pwd`/rt/_myrrt.o
fi

# build without an obj/ dir, so we don't need to deal with
# creating the heirarchy for the compiler. mbld usually
# deals with that, but the bootstrap doesn't have it.
./mbldwrap.sh
cp obj/mbld/mbld xmbld
./xmbld -o '' clean

tags(){
	case `uname` in
	*Linux*)	echo -Tposixy -Tlinux;;
	*Darwin*)	echo -Tposixy -Tosx;;
	*FreeBSD*)	echo -Tposixy -Tfreebsd;;
	*NetBSD*)	echo -Tposixy -Tnetbsd;;
	*OpenBSD*)	echo -Tposixy -Topenbsd:6.3;;
	*Plan9*)	echo -Tplan9;;
	esac
	case `uname -m` in
	*amd64*)	echo -Tx64	;;
	*x86_64*)	echo -Tx64	;;
	esac
}


bootscript=mk/bootstrap/bootstrap+`uname -s`-`uname -m`.sh
echo '#!/bin/sh' > $bootscript
echo '# This script is generated by genbootstrap.sh' >> $bootscript
echo '# to regenerate, run "make bootstrap"' >> $bootscript
echo '#######################################'
echo 'pwd=`pwd`' >> $bootscript
echo 'set -x' >> $bootscript
# mbld needs to be run without an output dir so we dont
# run into mkdir issues.
./xmbld -o '' -j1 -Bnone mbld:mbld `tags` | \
    grep '^	' | \
    sed "s:`pwd`:\$pwd:g" | \
    tee -a $bootscript
echo 'true' >> $bootscript
chmod +x $bootscript
rm ./xmbld