Unifying the Lunaix's Physical Memory Model (#28)
[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 \
13                 -Wno-unknown-pragmas \
14                 -Wno-unused-function \
15                 -Wno-unused-variable\
16                 -Wno-unused-but-set-variable \
17                 -Wno-unused-parameter \
18                 -Wno-discarded-qualifiers\
19                 -Werror=incompatible-pointer-types
20
21 OFLAGS := -fno-gcse\
22                   -fno-gcse-lm\
23                   -fno-cse-follow-jumps\
24                   -fno-cse-skip-blocks\
25                   -fno-optimize-strlen\
26                   -fno-inline-functions-called-once \
27                   -fno-inline-small-functions \
28                   -fno-indirect-inlining\
29                   -fno-omit-frame-pointer
30
31 CFLAGS := $(ARCH_OPT) -std=gnu99 $(OFLAGS) $(W)
32
33 ifeq ($(BUILD_MODE),debug)
34         O = -Og
35         CFLAGS += -g
36 endif
37
38 CFLAGS += $(O) $(STRIP_OSDEP_CC)
39
40 LDFLAGS := $(ARCH_OPT) $(O) $(STRIP_OSDEP_LD)
41
42 MKFLAGS := --no-print-directory