-
Notifications
You must be signed in to change notification settings - Fork 0
/
configure
executable file
·93 lines (84 loc) · 2.06 KB
/
configure
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
#!/bin/sh
# configure
# Northern Lights config script
# Author: George Witt
# Date: 2024-03-02
#
# Copyright (c) 2024 George Witt
# SPDX-License-Identifier: BSD-2-Clause
TOOL=llvm
unset CC
unset CXX
unset GNAT
unset GNATBIND
unset LD
unset AR
unset OBJCOPY
unset OBJDUMP
unset RANLIB
unset SIZE
unset STRIP
unset CFLAGS
unset CXXFLAGS
unset ADAFLAGS
unset LDFLAGS
unset TARGET_ARCH
if [ -z ${SKU} ] || [ -z ${ARCH} ]; then
echo "Please specify SKU and ARCH."
exit 1
fi
if [ ${SKU} = "prod" ]; then
TARGET_SKU="prod"
CFLAGS+=" -O2 -DNDEBUG"
LDFLAGS+=" -s"
elif [ ${SKU} = "debug" ]; then
TARGET_SKU="debug"
CFLAGS+=" -O0 -g -DDEBUG"
else
echo "Invalid TARGET_SKU"
exit 1
fi
if [ ${ARCH} = "riscv" ]; then
TARGET_ARCH="riscv"
TOOLCHAIN="/opt/riscv"
CFLAGS+=" -march=rv64imafdc -mabi=lp64d"
ADAFLAGS+=" -march=rv64imafdc -mabi=lp64d"
else
echo "Unsupported TARGET_ARCH"
exit 1
fi
if [ ${TOOL} = "llvm" ]; then
CC="clang -target riscv64-unknown-elf"
CXX="clang++ -target riscv64-unknown-elf"
GNAT="riscv64-unknown-elf-gcc -x ada"
GNATBIND="riscv64-unknown-elf-gnatbind"
LD="ld.lld"
AR="llvm-ar"
OBJCOPY="llvm-objcopy"
OBJDUMP="llvm-objdump"
RANLIB="llvm-ranlib"
SIZE="llvm-size"
STRIP="llvm-strip"
else
echo "Unsupported compiler toolchain"
exit 1
fi
echo "TOOLCHAIN=\"${TOOLCHAIN}\"" > config.mk
echo "CROSSENV=\\" >> config.mk
echo "PROJECTDIR=\"$(pwd)\"\\" >> config.mk
echo "CC=\"${CC}\"\\" >> config.mk
echo "CXX=\"${CXX}\"\\" >> config.mk
echo "GNAT=\"${GNAT}\"\\" >> config.mk
echo "GNATBIND=\"${GNATBIND}\"\\" >> config.mk
echo "LD=\"${LD}\"\\" >> config.mk
echo "AR=\"${AR}\"\\" >> config.mk
echo "OBJCOPY=\"${OBJCOPY}\"\\" >> config.mk
echo "OBJDUMP=\"${OBJDUMP}\"\\" >> config.mk
echo "RANLIB=\"${RANLIB}\"\\" >> config.mk
echo "SIZE=\"${SIZE}\"\\" >> config.mk
echo "STRIP=\"${STRIP}\"\\" >> config.mk
echo "TARGET_ARCH=\"${TARGET_ARCH}\"\\" >> config.mk
echo "CFLAGS_GLOBAL=\"${CFLAGS}\"\\" >> config.mk
echo "CXXFLAGS_GLOBAL=\"${CXXFLAGS}\"\\" >> config.mk
echo "ADAFLAGS_GLOBAL=\"${ADAFLAGS}\"\\" >> config.mk
echo "LDFLAGS_GLOBAL=\"${LDFLAGS}\"" >> config.mk