-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbuild.sh
127 lines (127 loc) · 4.15 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
115
116
117
118
119
120
121
122
123
124
125
126
127
# ARCH is architecture,CROSSARCH(optional) is cross-compile architecture,CUSTOMBIN(optional) is your custom binutils path.
ARCH=$(uname -m)
CROSSARCH=$1
CUSTOMBIN=$2
if [ "$ARCH" = "x86_64" ]; then
CARCH="x64"
CARCHNAME="x86_64"
CARCHNAMEL="X86_64"
BITS="64"
CISONAME="x64"
elif [ "$ARCH" = "aarch64" ]; then
CARCH="a64"
CARCHNAME="aarch64"
CARCHNAMEL="AARCH64"
BITS="64"
CISONAME="aa64"
elif [ "$ARCH" = "riscv64" ]; then
CARCH="rv64"
CARCHNAME="riscv64"
CARCHNAMEL="RISCV64"
BITS="64"
CISONAME="riscv64"
elif [ "$ARCH" = "loongarch64" ]; then
CARCH="loongarch64"
CARCHNAME="loongarch64"
CARCHNAMEL="LOONGARCH"
BITS="64"
CISONAME="loongarch64"
elif [ "$ARCH" = "i386" ]; then
CARCH="386"
CARCHNAME="i386"
CARCHNAMEL="I386"
BITS="32"
CISONAME="ia32"
elif [ "$ARCH" = "arm" ]; then
CARCH="arm"
CARCHNAME="arm"
CARCHNAMEL="ARM"
BITS="32"
CISONAME="arm"
else
echo "Unsupported architecture "$ARCH
exit
fi
if [ "$CROSSARCH" = "x86_64" ]; then
CCARCH="x64"
CCARCHNAME="x86_64"
CCARCHNAMEL="X86_64"
BUNAME="-XPx86_64-linux-gnu-"
OCNAME="x86_64-linux-gnu-"
BITS="64"
CCISONAME="x64"
elif [ "$CROSSARCH" = "aarch64" ]; then
CCARCH="a64"
CCARCHNAME="aarch64"
CCARCHNAMEL="AARCH64"
BUNAME="-XPaarch64-linux-gnu-"
OCNAME="aarch64-linux-gnu-"
BITS="64"
CCISONAME="aa64"
elif [ "$CROSSARCH" = "riscv64" ]; then
CCARCH="rv64"
CCARCHNAME="riscv64"
CCARCHNAMEL="RISCV64"
BUNAME="-XPriscv64-linux-gnu-"
OCNAME="riscv64-linux-gnu-"
BITS="64"
CCISONAME="riscv64"
elif [ "$CROSSARCH" = "loongarch64" ]; then
CCARCH="loongarch64"
CCARCHNAME="loongarch64"
CCARCHNAMEL="LOONGARCH"
BUNAME="-XPloongarch64-linux-gnu-"
OCNAME="loongarch64-linux-gnu-"
BITS="64"
CCISONAME="loongarch64"
elif [ "$CROSSARCH" = "i386" ]; then
CCARCH="386"
CCARCHNAME="i386"
CCARCHNAMEL="I386"
BUNAME="-XPi386-linux-gnu-"
OCNAME="i386-linux-gnu-"
BITS="32"
CCISONAME="ia32"
elif [ "$CROSSARCH" = "arm" ]; then
CCARCH="arm"
CCARCHNAME="arm"
CCARCHNAMEL="ARM"
BUNAME="-XParm-linux-gnu-"
OCNAME="arm-linux-gnu-"
BITS="32"
CCISONAME="arm"
else
CCARCH=$CARCH
CCARCHNAME=$CARCHNAME
CCARCHNAMEL=$CARCHNAMEL
BUNAME=""
OCNAME=""
CCISONAME=$CISONAME
fi
if [ "$CUSTOMBIN" != "" ]; then
BUNAME="-XP"$CUSTOMBIN
fi
mkdir Binaries
mkdir Binaries/Kernel
/home/tydq/source/compiler/ppc$CCARCH -n -O4 -Si $BUNAME -Sc -Sg -Xd -Ur -Us -CX -XXs -Cg BaseUnits/system.pas
/home/tydq/source/compiler/ppc$CCARCH -n -O4 -Si $BUNAME -Sc -Sg -Xd -Ur -CX -XXs -Cg BaseUnits/fpintres.pas
/home/tydq/source/compiler/ppc$CCARCH -n -O4 -Si $BUNAME -Sc -Sg -Xd -Ur -CX -XXs -Cg BaseUnits/sysinit.pas
/home/tydq/source/compiler/ppc$CCARCH -n -O4 -Si $BUNAME -Sc -Sg -Xd -Ur -CX -XXs -Cg BaseUnits/si_prc.pas
if [ "$CCARCHNAME" = "arm" ]||[ "$CCARCHNAME" = "aarch64" ]; then
/home/tydq/source/compiler/ppc$CCARCH -n -O4 -Si $BUNAME -Sc -Sg -Xd -Ur -CX -XXs -Cg -FUBinaries/Kernel BaseUnits/prt0.pas
fi
/home/tydq/source/compiler/ppc$CCARCH -n -O4 -Si $BUNAME -Sc -al -Sg -Xd -Ur -CX -XX -Xi -Cg -k-nostdlib -k-znoexecstack -k-znodefaultlib -k-pie -k--no-dynamic-linker -k-znow -dCPU$CCARCHNAMEL -dcpu$CCARCHNAME -dCPU$BITS -FuBaseUnits -FEBinaries/Kernel Kernel/kernel.pas -oBinaries/Kernel/kernel.elf
rm -rf Utility/elf2efi
/home/tydq/source/compiler/ppc$CARCH -n -O4 -Si -Sc -Sg -Xd -Ur -CX -XXs -Xi -Fu/home/tydq/source/compiler/x86_64/units/$CARCHNAME-linux -Fu/home/tydq/source/rtl/units/$CARCHNAME-linux -dcpu$BITS -Cg Utility/elf2efi.pas
rm -rf Utility/*.o Utility/*.ppu
Utility/elf2efi "Binaries/Kernel/kernel.elf" "Binaries/Kernel/boot"$CCISONAME".efi"
rm -rf BaseUnits/*.ppu BaseUnits/*.o BaseUnits/*.res BaseUnits/*.sh BootLoader/*.ppu BootLoader/*.o BootLoader/*.res BootLoader/*.sh
dd if=/dev/zero of=Binaries/fat.img bs=512 count=131072
/usr/sbin/mkfs.vfat -F 32 Binaries/fat.img
mmd -i Binaries/fat.img ::/EFI
mmd -i Binaries/fat.img ::/EFI/BOOT
mcopy -i Binaries/fat.img Binaries/Kernel/*.efi ::/EFI/BOOT/
mkdir Binaries/iso
cp Binaries/fat.img Binaries/iso
xorriso -as mkisofs -R -f -e fat.img -no-emul-boot -o Binaries/cdimage$CCISONAME.iso Binaries/iso
rm -rf Binaries/System Binaries/fat.img Binaries/iso