diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2021-08-20 20:57:59 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2021-08-20 21:04:24 +0300 |
| commit | 31c3c8dcb5ea281201b9c01140bceeadc80f7686 (patch) | |
| tree | 5424805f919938e58e0a2c88c0e3d8f583fbcfd7 /Makefile | |
| parent | 1175179058fa809c57d724cd2043c67edc511695 (diff) | |
| download | kmi-31c3c8dcb5ea281201b9c01140bceeadc80f7686.tar.gz kmi-31c3c8dcb5ea281201b9c01140bceeadc80f7686.zip | |
New build system
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 51 |
1 files changed, 25 insertions, 26 deletions
@@ -1,40 +1,39 @@ -DO != echo > deps.mk -CFLAGS := -fno-pie -ggdb3 -ffreestanding -nostdlib -INCLUDE_DIRS := include +DO != echo > deps.mk + +CFLAGS = -fno-pie -ggdb3 -ffreestanding -nostdlib +DEPFLAGS = -MT $@ -MMD -MP -MF $@.d all: apos.bin -ARCH ?= riscv -CROSS_COMPILE ?= riscv64-unknown-elf- +ARCH ?= riscv +CROSS_COMPILE ?= riscv64-unknown-elf- # Common programs -CC := gcc -AR := ar -CPP := cpp -OBJCOPY ?= objcopy -OBJCOPY_FLAGS ?= -Obinary +CC := gcc +AR := ar +CPP := cpp +OBJCOPY ?= objcopy +OBJCOPY_FLAGS ?= -Obinary KERNEL_SOURCES := -KERNEL_LINK := INIT_SOURCES := -INIT_LINK := -INCLUDE_DIRS := include +CLEANUP := build deps.mk kernel.* init.* apos.bin include arch/$(ARCH)/source.mk -INCLUDE_FLAGS != ./scripts/prepend -I $(INCLUDE_DIRS) - -KERNEL_OBJECTS != ./scripts/mkobjs $(CROSS_COMPILE)$(CC) $(CFLAGS)\ - $(INCLUDE_FLAGS) --kern-files $(KERNEL_SOURCES) +INCLUDE_FLAGS := -Iinclude -Iarch/$(ARCH)/include -KERNEL_LD != ./scripts/mkobjs $(CROSS_COMPILE)$(CPP)\ - $(INCLUDE_FLAGS) --kern-lds $(KERNEL_LINK) +COMPILE = $(CROSS_COMPILE)$(CC) $(CFLAGS) $(DEPFLAGS) $(INCLUDE_FLAGS) +GENLINK = $(CROSS_COMPILE)$(CPP) $(DEPFLAGS) $(INCLUDE_FLAGS) +STRIPLINK = sed -n '/^[^\#]/p' -INIT_OBJECTS != ./scripts/mkobjs $(CROSS_COMPILE)$(CC) $(CFLAGS)\ - $(INCLUDE_FLAGS) --init-files $(INIT_SOURCES) +KERNEL_LINK := arch/$(ARCH)/conf/kernel-link +INIT_LINK := arch/$(ARCH)/conf/init-link -INIT_LD != ./scripts/mkobjs $(CROSS_COMPILE)$(CPP)\ - $(INCLUDE_FLAGS) --init-lds $(INIT_LINK) +KERNEL_OBJECTS != ./scripts/gen-deps --kern "$(KERNEL_SOURCES)" +INIT_OBJECTS != ./scripts/gen-deps --init "$(INIT_SOURCES)" +KERNEL_LD != ./scripts/gen-deps --link "$(KERNEL_LINK).S" +INIT_LD != ./scripts/gen-deps --link "$(INIT_LINK).S" include deps.mk @@ -44,10 +43,10 @@ apos.bin: kernel.elf init.elf cat init.bin kernel.bin > $@ kernel.elf: $(KERNEL_OBJECTS) $(KERNEL_LD) - $(CROSS_COMPILE)$(CC) -T$(KERNEL_LD) $(CFLAGS) $(INCLUDE_FLAGS) $(KERNEL_OBJECTS) -o $@ + $(COMPILE) -T$(KERNEL_LD) $(KERNEL_OBJECTS) -o $@ init.elf: $(INIT_OBJECTS) $(INIT_LD) - $(CROSS_COMPILE)$(CC) -T$(INIT_LD) $(CFLAGS) $(INCLUDE_FLAGS) $(INIT_OBJECTS) -o $@ + $(COMPILE) -T$(INIT_LD) $(INIT_OBJECTS) -o $@ clean: - rm $(KERNEL_OBJECTS) $(INIT_OBJECTS) $(INIT_LD) $(KERNEL_LD) kernel.bin kernel.elf init.bin init.elf apos.bin + $(RM) -r $(CLEANUP) |
