fix issue 31 (#32)
[lunaix-os.git] / lunaix-os / makeinc / toolchain.mkinc
index 42fae9fa3dfc36c517946950fd5b0cb259dcb9b4..c9d085f9eca72d7c37ed9f90dc5fe92f669b5774 100644 (file)
@@ -1,11 +1,15 @@
-CC := i686-elf-gcc
-AS := i686-elf-as
-AR := i686-elf-ar
+CC := $(CX_PREFIX)gcc
+CC := $(CX_PREFIX)gcc
+AS := $(CX_PREFIX)as
+AR := $(CX_PREFIX)ar
 
+STRIP_OSDEP_CC := -ffreestanding -fno-pie
+STRIP_OSDEP_LD := -nostdlib -nolibc -z noexecstack -no-pie -Wl,--build-id=none
 
-ARCH_OPT := -D__ARCH_IA32
+ARCH_OPT := -m32 -D__ARCH_IA32
 O := -O2
-W := -Wall -Wextra -Wno-unknown-pragmas \
+W := -Wall -Wextra -Werror \
+               -Wno-unknown-pragmas \
                -Wno-unused-function \
                -Wno-unused-variable\
                -Wno-unused-but-set-variable \
@@ -19,11 +23,19 @@ OFLAGS := -fno-gcse\
                  -fno-cse-skip-blocks\
                  -fno-optimize-strlen\
                  -fno-inline-functions-called-once \
-                 -fno-inline-functions \
                  -fno-inline-small-functions \
-                 -fno-indirect-inlining
+                 -fno-indirect-inlining\
+                 -fno-omit-frame-pointer
 
-CFLAGS := -std=gnu99 -ffreestanding $(O) $(OFLAGS) $(W) $(ARCH_OPT)
-LDFLAGS := -ffreestanding $(O) -nostdlib -lgcc
+CFLAGS := $(ARCH_OPT) -std=gnu99 $(OFLAGS) $(W)
+
+ifeq ($(BUILD_MODE),debug)
+       O = -Og
+       CFLAGS += -g
+endif
+
+CFLAGS += $(O) $(STRIP_OSDEP_CC)
+
+LDFLAGS := $(ARCH_OPT) $(O) $(STRIP_OSDEP_LD)
 
 MKFLAGS := --no-print-directory
\ No newline at end of file