-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sh
executable file
·83 lines (73 loc) · 1.72 KB
/
build.sh
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
#SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
#
# Copyright (c) 2015-2022, Amlogic, Inc.
#!/bin/bash
LOCAL_PATH=`pwd`
BASE_PATH=$(cd "$(dirname $0)"; pwd)
export ARCH=arm
if [ ${ARCH} = arm ]
then
KERNEL_CONFIG=meson64_a32_defconfig
export KERNEL_A32_SUPPORT=true
export CROSS_COMPILE=arm-linux-gnueabihf-
else
KERNEL_CONFIG=meson64_a64_defconfig
export CROSS_COMPILE=aarch64-linux-gnu-
fi
if [ "${KERNEL_SRC_DIR}" = "" ]
then
KERNEL_SRC_DIR=${BASE_PATH}/../../../../../common/
fi
if [ "${KERNEL_OUT_DIR}" = "" ]
then
KERNEL_OUT_DIR=${BASE_PATH}/../../../../../common/
fi
show_help()
{
echo "*** Please export KERNEL_SRC_DIR and KERNEL_OUT_DIR before building."
echo "e.g."
echo " export KERNEL_SRC_DIR=/mnt/fileroot/peifu/kernel"
echo " export KERNEL_OUT_DIR=/mnt/fileroot/peifu/kernel/out"
echo " ./build_gx.sh"
}
show_path()
{
echo "*** KERNEL_SRC_DIR=$KERNEL_SRC_DIR"
echo "*** KERNEL_OUT_DIR=$KERNEL_OUT_DIR"
}
do_build()
{
if [ ! -d $KERNEL_SRC_DIR ]; then
echo "*** $KERNEL_SRC_DIR: No such directory!"
show_help;
exit;
fi
if [ ! -d $KERNEL_OUT_DIR ]; then
echo "*** $KERNEL_OUT_DIR not exist, create now\n"
mkdir -p $KERNEL_OUT_DIR
fi
if [ ! -e $KERNEL_OUT_DIR/include/generated/autoconf.h ]; then
make -C $KERNEL_SRC_DIR O=$KERNEL_OUT_DIR $KERNEL_CONFIG
make -C $KERNEL_SRC_DIR O=$KERNEL_OUT_DIR modules_prepare
fi
make -C $KERNEL_SRC_DIR O=$KERNEL_OUT_DIR M=$LOCAL_PATH modules
}
do_clean()
{
if [ ! -d $KERNEL_SRC_DIR ]; then
echo "*** $KERNEL_SRC_DIR: No such directory!\n"
show_help;
exit;
fi
make -C $KERNEL_SRC_DIR O=$KERNEL_OUT_DIR M=$LOCAL_PATH clean
}
if [ "$1" = "help" ]; then
show_help;
exit;
elif [ "$1" = "clean" ]; then
do_clean;
exit;
else
show_path;
do_build;
fi