-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sh
executable file
·115 lines (101 loc) · 3.41 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
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
112
113
114
#!/bin/bash
BUILD_START=$(date +"%s")
# Colours
blue='\033[0;34m'
cyan='\033[0;36m'
yellow='\033[0;33m'
red='\033[0;31m'
nocol='\033[0m'
# Kernel details
KERNEL_NAME="Stratosphere"
VERSION="ME"
DATE=$(date +"%d-%m-%Y-%I-%M")
DEVICE="NOKIA_SDM660"
FINAL_ZIP=$KERNEL_NAME-$VERSION-$DATE.zip
defconfig=stratosphere_defconfig
# Dirs
BASE_DIR=`pwd`/../
KERNEL_DIR=$BASE_DIR/android_kernel_nokia_sdm660
ANYKERNEL_DIR=$BASE_DIR/AnyKernel3
KERNEL_IMG=$BASE_DIR/output/arch/arm64/boot/Image.gz-dtb
UPLOAD_DIR=$BASE_DIR/Stratosphere-Kernel
# Export
export PATH="$BASE_DIR/proton-clang/bin:$PATH"
export ARCH=arm64
export CROSS_COMPILE=aarch64-linux-gnu-
export CROSS_COMPILE_ARM32=arm-linux-gnueabi-
export USE_CCACHE=1
export CCACHE_EXEC=$(command -v cccache)
## Functions ##
# Make kernel
function make_kernel() {
echo -e "$cyan***********************************************"
echo -e " Initializing defconfig "
echo -e "***********************************************$nocol"
make $defconfig CC=clang AR=llvm-ar NM=llvm-nm STRIP=llvm-strip OBJCOPY=llvm-objcopy OBJDUMP=llvm-objdump O=$BASE_DIR/output/
echo -e "$cyan***********************************************"
echo -e " Building kernel "
echo -e "***********************************************$nocol"
make -j$(nproc --all) CC=clang AR=llvm-ar nm=llvm-nm STRIP=llvm-strip O=$BASE_DIR/output/
if ! [ -a $KERNEL_IMG ];
then
echo -e "$red Kernel Compilation failed! Fix the errors! $nocol"
exit 1
fi
}
# Making zip
function make_zip() {
cp $KERNEL_IMG $ANYKERNEL_DIR
mkdir -p $UPLOAD_DIR
cd $ANYKERNEL_DIR
zip -r9 UPDATE-AnyKernel2.zip * -x README UPDATE-AnyKernel2.zip
mv $ANYKERNEL_DIR/UPDATE-AnyKernel2.zip $UPLOAD_DIR/$FINAL_ZIP
}
# Options
function options() {
echo -e "$cyan***********************************************"
echo " Compiling Stratosphere Kernel "
echo -e "***********************************************$nocol"
echo -e " "
echo -e " Select one of the following types of build : "
echo -e " 1.Dirty"
echo -e " 2.Clean"
echo -n " Your choice : ? "
read ch
echo -e " Select if you want zip or just kernel : "
echo -e " 1.Get flashable zip"
echo -e " 2.Get kernel only"
echo -n " Your choice : ? "
read ziporkernel
case $ch in
1) echo -e "$cyan***********************************************"
echo -e " Dirty "
echo -e "***********************************************$nocol"
make_kernel ;;
2) echo -e "$cyan***********************************************"
echo -e " Clean "
echo -e "***********************************************$nocol"
make clean CC=clang O=$BASE_DIR/output/
make mrproper CC=clang O=$BASE_DIR/output/
make_kernel ;;
esac
if [ "$ziporkernel" = "1" ]; then
echo -e "$cyan***********************************************"
echo -e " Making flashable zip "
echo -e "***********************************************$nocol"
make_zip
else
echo -e "$cyan***********************************************"
echo -e " Building Kernel only "
echo -e "***********************************************$nocol"
fi
}
# Clean Up
function cleanup(){
rm -rf $ANYKERNEL_DIR/Image.gz-dtb
}
options
cleanup
BUILD_END=$(date +"%s")
DIFF=$(($BUILD_END - $BUILD_START))
echo -e "$yellow Build completed in $(($DIFF / 60)) minute(s) and $(($DIFF % 60)) seconds.$nocol"