xref: /OK3568_Linux_fs/device/rockchip/common/build-hooks/99-all.sh (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1#!/bin/bash -e
2
3BOARD=$(echo ${RK_KERNEL_DTS_NAME:-$(echo "$RK_DEFCONFIG" | \
4	sed -n "s/.*\($RK_CHIP.*\)_defconfig/\1/p")} | \
5	tr '[:lower:]' '[:upper:]')
6
7build_all()
8{
9	echo "=========================================="
10	echo "          Start building all images"
11	echo "=========================================="
12
13	rm -rf "$RK_FIRMWARE_DIR" "$RK_SECURITY_FIRMWARE_DIR"
14	mkdir -p "$RK_FIRMWARE_DIR" "$RK_SECURITY_FIRMWARE_DIR"
15
16	if [ "$RK_RTOS" ]; then
17		"$SCRIPTS_DIR/mk-loader.sh"
18		"$SCRIPTS_DIR/mk-rtos.sh"
19		"$SCRIPTS_DIR/mk-firmware.sh"
20		finish_build
21		return 0
22	fi
23
24	if [ "$RK_SECURITY" ]; then
25		"$SCRIPTS_DIR/mk-security.sh" security_check
26	fi
27
28	if [ "$RK_KERNEL_CFG" ]; then
29		"$SCRIPTS_DIR/mk-kernel.sh"
30		if [ "$RK_ROOTFS_SYSTEM" == "ubuntu" ]; then
31			"$SCRIPTS_DIR/mk-rootfs.sh" ubuntu
32		else
33			"$SCRIPTS_DIR/mk-rootfs.sh" linuxfs
34		fi
35		"$SCRIPTS_DIR/mk-linuxrecovery.sh"
36	fi
37
38	if [ "$RK_SECURITY" ]; then
39		"$SCRIPTS_DIR/mk-security.sh" security_ramboot
40	fi
41
42	# Will repack boot and recovery images when security enabled
43	"$SCRIPTS_DIR/mk-loader.sh"
44
45	"$SCRIPTS_DIR/mk-firmware.sh"
46	"$SCRIPTS_DIR/mk-updateimg.sh"
47
48	finish_build
49}
50
51build_save()
52{
53	echo "=========================================="
54	echo "          Start saving images and build info"
55	echo "=========================================="
56
57	shift
58	SAVE_BASE_DIR="$RK_OUTDIR/$BOARD${1:+/$1}"
59	case "$(grep "^ID=" "$RK_OUTDIR/os-release" 2>/dev/null)" in
60		ID=buildroot) SAVE_DIR="$SAVE_BASE_DIR/BUILDROOT" ;;
61		ID=debian) SAVE_DIR="$SAVE_BASE_DIR/DEBIAN" ;;
62		ID=poky) SAVE_DIR="$SAVE_BASE_DIR/YOCTO" ;;
63		*) SAVE_DIR="$SAVE_BASE_DIR" ;;
64	esac
65	[ "$1" ] || SAVE_DIR="$SAVE_DIR/$(date  +%Y%m%d_%H%M%S)"
66	mkdir -p "$SAVE_DIR"
67	rm -rf "$SAVE_BASE_DIR/latest"
68	ln -rsf "$SAVE_DIR" "$SAVE_BASE_DIR/latest"
69
70	echo "Saving into $SAVE_DIR..."
71
72	if [ "$RK_KERNEL_CFG" ]; then
73		mkdir -p "$SAVE_DIR/kernel"
74
75		echo "Saving linux-headers..."
76		"$SCRIPTS_DIR/mk-kernel.sh" linux-headers \
77			"$SAVE_DIR/kernel"
78
79		echo "Saving kernel files..."
80		cp kernel/.config kernel/System.map kernel/vmlinux \
81			$RK_KERNEL_DTB "$SAVE_DIR/kernel"
82	fi
83
84	echo "Saving images..."
85	mkdir -p "$SAVE_DIR/IMAGES"
86	cp "$RK_FIRMWARE_DIR"/* "$SAVE_DIR/IMAGES/"
87
88	echo "Saving build info..."
89#	if yes | ${PYTHON3:-python3} .repo/repo/repo manifest -r \
90#		-o "$SAVE_DIR/manifest.xml"; then
91		# Only do this when repositories are available
92#		echo "Saving patches..."
93#		PATCHES_DIR="$SAVE_DIR/PATCHES"
94#		mkdir -p "$PATCHES_DIR"
95#		.repo/repo/repo forall -j $(( $CPUS + 1 )) -c \
96#			"\"$SCRIPTS_DIR/save-patches.sh\" \
97#			\"$PATCHES_DIR/\$REPO_PATH\" \$REPO_PATH \$REPO_LREV"
98#		install -D -m 0755 "$RK_DATA_DIR/apply-all.sh" "$PATCHES_DIR"
99#	fi
100
101	cp "$RK_FINAL_ENV" "$RK_CONFIG" "$RK_DEFCONFIG_LINK" "$SAVE_DIR/"
102	cp "$RK_CONFIG" "$SAVE_DIR/build_info"
103
104	echo "Saving build logs..."
105	cp -rp "$RK_LOG_BASE_DIR" "$SAVE_DIR/"
106
107	finish_build
108}
109
110build_allsave()
111{
112	echo "=========================================="
113	echo "          Start building allsave"
114	echo "=========================================="
115
116	build_all
117	build_save $@
118
119	finish_build
120}
121
122# Hooks
123
124usage_hook()
125{
126	echo -e "all                               \tbuild all images"
127	echo -e "save                              \tsave images and build info"
128	echo -e "allsave                           \tbuild all images and save them"
129}
130
131clean_hook()
132{
133	rm -rf "$RK_OUTDIR"/$BOARD*
134}
135
136BUILD_CMDS="all allsave"
137build_hook()
138{
139	case "$1" in
140		all) build_all ;;
141		allsave) build_allsave $@ ;;
142	esac
143}
144
145POST_BUILD_CMDS="save"
146post_build_hook()
147{
148	build_save $@
149}
150
151source "${BUILD_HELPER:-$(dirname "$(realpath "$0")")/../build-hooks/build-helper}"
152
153case "${1:-allsave}" in
154	all) build_all ;;
155	allsave) build_allsave $@ ;;
156	save) build_save $@ ;;
157	*) usage ;;
158esac
159