feat: a better boot command line parser
[lunaix-os.git] / lunaix-os / makeinc / toolchain.mkinc
1 CC := $(CX_PREFIX)gcc
2 CC := $(CX_PREFIX)gcc
3 AS := $(CX_PREFIX)as
4 AR := $(CX_PREFIX)ar
5 PY := python3
6
7 STRIP_OSDEP_CC := -ffreestanding -fno-pie
8 STRIP_OSDEP_LD := -nostdlib -nolibc -z noexecstack -no-pie -Wl,--build-id=none
9
10 ARCH_OPT := -m32 -D__ARCH_IA32
11 O := -O2
12 W := -Wall -Wextra -Werror -Wno-unknown-pragmas \
13                 -Wno-unused-function \
14                 -Wno-unused-variable\
15                 -Wno-unused-but-set-variable \
16                 -Wno-unused-parameter \
17                 -Wno-discarded-qualifiers\
18                 -Werror=incompatible-pointer-types
19
20 OFLAGS := -fno-gcse\
21                   -fno-gcse-lm\
22                   -fno-cse-follow-jumps\
23                   -fno-cse-skip-blocks\
24                   -fno-optimize-strlen\
25                   -fno-inline-functions-called-once \
26                   -fno-inline-small-functions \
27                   -fno-indirect-inlining
28
29 CFLAGS := $(ARCH_OPT) -std=gnu99 -MMD $(OFLAGS) $(W)
30
31 ifeq ($(BUILD_MODE),debug)
32         O = -Og
33         CFLAGS += -g
34 endif
35
36 CFLAGS += $(O) $(STRIP_OSDEP_CC)
37
38 LDFLAGS := $(ARCH_OPT) $(O) $(STRIP_OSDEP_LD)
39
40 MKFLAGS := --no-print-directory