aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2021-08-25 23:47:08 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2021-08-25 23:47:08 +0300
commit5dfac4879ce5f34503ae7537eefd3fc48d6fa750 (patch)
tree7ac25f1a14373ae08ea6aa2406d8f83026dba74a /Makefile
parentb235f49f31d11e68019c42f48b6641c37e4c986e (diff)
downloadkmi-5dfac4879ce5f34503ae7537eefd3fc48d6fa750.tar.gz
kmi-5dfac4879ce5f34503ae7537eefd3fc48d6fa750.zip
libfdt seems to work
At least as far as reading memory info, cool. One issue I have is that .(ro)data is apparently accessed by absolute addresses, so I need to know at which address the kernel is going to be loaded. I would prefer completely position independent code, but if that's not possible then eh.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile10
1 files changed, 6 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index d7f02c1..5097ff0 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
DO != echo > deps.mk
-CFLAGS = -fno-pie -ggdb3 -ffreestanding -nostdlib
+CFLAGS = -fno-pie -ggdb3 -ffreestanding -nostdlib -std=c11 -Wall -Wextra -mcmodel=medany
DEPFLAGS = -MT $@ -MMD -MP -MF $@.d
all: apos.bin
@@ -23,9 +23,11 @@ CLEANUP_CMD :=
include arch/$(ARCH)/source.mk
-INCLUDE_FLAGS := -Iinclude -Iarch/$(ARCH)/include $(USE_FDT:y=-Idtc/libfdt)
+INCLUDE_FLAGS := -I include -I arch/$(ARCH)/include\
+ -include config.h -include arch/$(ARCH)/config.h
COMPILE = $(CROSS_COMPILE)$(CC) $(CFLAGS) $(DEPFLAGS) $(INCLUDE_FLAGS)
+GENELF = $(CROSS_COMPILE)$(CC) $(CFLAGS) $(INCLUDE_FLAGS)
GENLINK = $(CROSS_COMPILE)$(CPP) $(DEPFLAGS) $(INCLUDE_FLAGS)
STRIPLINK = sed -n '/^[^\#]/p'
@@ -45,10 +47,10 @@ apos.bin: kernel.elf init.elf
cat init.bin kernel.bin > $@
kernel.elf: $(KERNEL_OBJECTS) $(KERNEL_LD)
- $(COMPILE) -T$(KERNEL_LD) $(KERNEL_OBJECTS) -o $@
+ $(GENELF) -T $(KERNEL_LD) $(KERNEL_OBJECTS) -o $@
init.elf: $(INIT_OBJECTS) $(INIT_LD)
- $(COMPILE) -T$(INIT_LD) $(INIT_OBJECTS) -o $@
+ $(GENELF) -T $(INIT_LD) $(INIT_OBJECTS) -o $@
clean:
$(CLEANUP_CMD)