blob: 8dca9fc8634b8d1a6f10fae7ecf729159848ec19 (
plain) (
blame)
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
|
#!/bin/bash
PLATFORM=elf
SRC_DIRECTORIES=(
"./arch/"
"./lex/"
"./parser/"
"./passes/"
"./lib/"
"./platform/${PLATFORM}/"
)
TARGET_NAME="metalc"
BUILD_DIR="./build/"
CFLAGS=(-I./include/ -g -O1) # -fsanitize=address)
LDFLAGS=()
function build {
mkdir -p "$BUILD_DIR"
set -e
local files=()
echo "[BUILD] Building metalc..."
for i in ${SRC_DIRECTORIES[@]}; do
local arr=$(find "$i" -name "*.c")
for j in ${arr[@]}; do
files+=("$j")
done
done
gcc "${files[@]}" "${CFLAGS[@]}" -o "$TARGET_NAME"
echo "Built ${TARGET_NAME}."
}
function clean {
if [[ -e "$TARGET_NAME" && -f "$TARGET_NAME" ]]; then
rm -rf "$TARGET_NAME"
echo "[CLEAN] deleted ${TARGET_NAME}"
fi
}
case "$1" in
"build") build ;;
"clean") clean ;;
*) "invalid command" ;;
esac
|