]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tools/boot/universe.sh
Make linux_ptrace() use linux_msg() instead of printf().
[FreeBSD/FreeBSD.git] / tools / boot / universe.sh
1 #!/bin/sh
2
3 # $FreeBSD$
4
5 #
6 # Full list of all arches, but we only build a subset. All different mips add any
7 # value, and there's a few others we just don't support.
8 #
9 #       mips/mipsel mips/mips mips/mips64el mips/mips64 mips/mipsn32 \
10 #       mips/mipselhf mips/mipshf mips/mips64elhf mips/mips64hf \
11 #       powerpc/powerpc powerpc/powerpc64 powerpc/powerpcspe \
12 #       riscv/riscv64 riscv/riscv64sf
13 #
14 # This script is expected to be run in stand (though you could run it anywhere
15 # in the tree). It does a full clean build. For stand you can do all the archs in
16 # about a minute or two on a fast machine. It's also possible that you need a full
17 # make universe for this to work completely.
18 #
19 # Output is put into _.boot.$TARGET_ARCH.log in sys.boot.
20 #
21
22 dobuild()
23 {
24     local ta=$1
25     local lf=$2
26     local opt=$3
27
28     echo -n "Building $ta ${opt} ... "
29     objdir=$(make buildenv TARGET_ARCH=$ta BUILDENV_SHELL="make -V .OBJDIR" | tail -1)
30     rm -rf ${objdir}
31     if ! make buildenv TARGET_ARCH=$ta BUILDENV_SHELL="make clean cleandepend cleandir obj depend"  \
32          > $lf 2>&1; then
33         echo "Fail (cleanup)"
34         continue
35     fi
36     if ! make buildenv TARGET_ARCH=$ta BUILDENV_SHELL="make ${opt} -j 20 all"  \
37          >> $lf 2>&1; then
38         echo "Fail (build)"
39         continue
40     fi
41     echo "Success"
42 }
43
44 top=$(make -V SRCTOP)
45 cd $top/stand
46
47 # Build without forth
48 for i in \
49         amd64/amd64 \
50         i386/i386 \
51         ; do
52     ta=${i##*/}
53     dobuild $ta _.boot.${ta}.no_forth.log "WITHOUT_FORTH=yes"
54 done
55
56 # Build without GELI
57 for i in \
58         amd64/amd64 \
59         i386/i386 \
60         ; do
61     ta=${i##*/}
62     dobuild $ta _.boot.${ta}.no_geli.log "WITHOUT_LOADER_GEIL=yes"
63 done
64
65 # Default build for a goodly selection of architectures
66 for i in \
67         amd64/amd64 \
68         arm/arm arm/armv7 \
69         arm64/aarch64 \
70         i386/i386 \
71         mips/mips mips/mips64 \
72         powerpc/powerpc powerpc/powerpc64 \
73         sparc64/sparc64 \
74         ; do
75     ta=${i##*/}
76     dobuild $ta _.boot.${ta}.log ""
77 done
78
79 # Default build for a goodly selection of architectures with Lua
80 for i in \
81         amd64/amd64 \
82         arm/arm arm/armv7 \
83         arm64/aarch64 \
84         i386/i386 \
85         mips/mips mips/mips64 \
86         powerpc/powerpc powerpc/powerpc64 \
87         sparc64/sparc64 \
88         ; do
89     ta=${i##*/}
90     dobuild $ta _.boot.${ta}.lua.log "MK_LOADEDER_LUA=yes MK_FORTH=no"
91 done
92
93 # Build w/o ZFS
94 for i in \
95         amd64/amd64 \
96         i386/i386 \
97         sparc64/sparc64 \
98         ; do
99     ta=${i##*/}
100     dobuild $ta _.boot.${ta}.no_zfs.log "MK_ZFS=no"
101 done
102
103 # Build with firewire
104 for i in \
105         amd64/amd64 \
106         i386/i386 \
107         ; do
108     ta=${i##*/}
109     dobuild $ta _.boot.${ta}.firewire.log "MK_LOADER_FIREWIRE=yes"
110 done
111
112 # Build with LOADER_DEBUG, only sparc64 does this.
113 for i in \
114         sparc64/sparc64 \
115         ; do
116     ta=${i##*/}
117     dobuild $ta _.boot.${ta}.debug.log "LOADER_DEBUG=yes"
118 done
119