debug and release modes in make-build.sh
This commit is contained in:
parent
42fe995724
commit
527498a491
1 changed files with 17 additions and 3 deletions
|
|
@ -1,11 +1,25 @@
|
|||
#!/bin/sh
|
||||
|
||||
COMMON_CC_EXTRA_FLAGS="-O3 -Wall -Wextra"
|
||||
COMMON_CC_EXTRA_FLAGS="-Wall -Wextra"
|
||||
COMMON_LD_EXTRA_FLAGS=""
|
||||
|
||||
if [ "$1" = debug ]; then
|
||||
COMMON_CC_EXTRA_FLAGS="-O0 -ggdb ${COMMON_CC_EXTRA_FLAGS}"
|
||||
elif [ "$1" = release ]; then
|
||||
COMMON_CC_EXTRA_FLAGS="-O3 ${COMMON_CC_EXTRA_FLAGS}"
|
||||
COMMON_LD_EXTRA_FLAGS="-s ${COMMON_LD_EXTRA_FLAGS}"
|
||||
else
|
||||
echo pass either "debug" or "release" as an argument.
|
||||
exit
|
||||
fi
|
||||
|
||||
COMMON_CC_FLAGS="-std=c23 -ffreestanding -I include ${COMMON_CC_EXTRA_FLAGS}"
|
||||
KERNEL_CC_FLAGS="-mno-sse -I dependencies/limine ${COMMON_CC_FLAGS}"
|
||||
#in the future user code will be allowed to use sse
|
||||
USER_CC_FLAGS="-mno-sse ${COMMON_CC_FLAGS}"
|
||||
|
||||
COMMON_LD_FLAGS="${COMMON_LD_EXTRA_FLAGS}"
|
||||
|
||||
if [ -e build.ninja ]; then
|
||||
echo build.ninja already exists.
|
||||
exit
|
||||
|
|
@ -25,14 +39,14 @@ echo " depfile = \$out.d" >> build.ninja
|
|||
echo " command = cc -c -MD -MF \$out.d ${USER_CC_FLAGS} \$in -o \$out" >> build.ninja
|
||||
|
||||
echo "rule kernel_ld" >> build.ninja
|
||||
echo " command = ld -T src/kernel/link.ld \$in -o \$out" >> build.ninja
|
||||
echo " command = ld ${COMMON_LD_FLAGS} -T src/kernel/link.ld \$in -o \$out" >> build.ninja
|
||||
|
||||
echo "rule user_lib_ld" >> build.ninja
|
||||
echo " command = ld -r \$in -o \$out" >> build.ninja
|
||||
|
||||
#eventually maybe a libc will be linked in
|
||||
echo "rule user_app_ld" >> build.ninja
|
||||
echo " command = ld \$in -o \$out" >> build.ninja
|
||||
echo " command = ld ${COMMON_LD_FLAGS} \$in -o \$out" >> build.ninja
|
||||
|
||||
#builds everything in a directory
|
||||
# $1 - source directory
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue