diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2021-09-19 17:46:26 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2021-09-19 19:07:13 +0300 |
| commit | 4dffc92abf8f6a6e9b503c9809caaa99795d7a00 (patch) | |
| tree | 65fdb7c09f0b9a0ce2551fe8b51e637309322ed5 /Makefile | |
| parent | 5979b0e7ba9064ae4033dbbe650bea86c2afb440 (diff) | |
| download | kmi-4dffc92abf8f6a6e9b503c9809caaa99795d7a00.tar.gz kmi-4dffc92abf8f6a6e9b503c9809caaa99795d7a00.zip | |
Added basic awareness of kernel size/bounds
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 21 |
1 files changed, 13 insertions, 8 deletions
@@ -15,7 +15,7 @@ CC := gcc AR := ar CPP := cpp OBJCOPY ?= objcopy -OBJCOPY_FLAGS ?= -Obinary +OBJCOPY_FLAGS ?= -Obinary --set-section-flags .bss=alloc,load,contents COMMON_SOURCES != echo common/*.c KERNEL_SOURCES != echo kernel/*.c $(COMMON_SOURCES) @@ -36,29 +36,34 @@ GENELF = $(CROSS_COMPILE)$(CC) $(DEBUGFLAGS)\ GENLINK = $(CROSS_COMPILE)$(CPP) $(DEPFLAGS) $(INCLUDE_FLAGS) STRIPLINK = sed -n '/^[^\#]/p' +KERN_SIZE = wc -c kernel.bin | cut -d ' ' -f 1 +KERN_INFO = sed "s/<KERNEL_SIZE>/$$($(KERN_SIZE))/" KERNEL_LINK := arch/$(ARCH)/conf/kernel-link INIT_LINK := arch/$(ARCH)/conf/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" +KERNEL_LD != ./scripts/gen-deps --kern-link "$(KERNEL_LINK).S" +INIT_LD != ./scripts/gen-deps --init-link "$(INIT_LINK).S" include deps.mk -apos.bin: kernel.elf init.elf - $(CROSS_COMPILE)$(OBJCOPY) $(OBJCOPY_FLAGS) kernel.elf kernel.bin - $(CROSS_COMPILE)$(OBJCOPY) $(OBJCOPY_FLAGS) init.elf init.bin - ./scripts/gen-padding 4096 init.bin +apos.bin: kernel.bin init.bin cat init.bin kernel.bin > $@ kernel.elf: $(KERNEL_OBJECTS) $(KERNEL_LD) $(GENELF) -T $(KERNEL_LD) $(KERNEL_OBJECTS) -o $@ -init.elf: $(INIT_OBJECTS) $(INIT_LD) +init.elf: kernel.bin $(INIT_OBJECTS) $(INIT_LD) $(GENELF) -T $(INIT_LD) $(INIT_OBJECTS) -o $@ +kernel.bin: kernel.elf + $(CROSS_COMPILE)$(OBJCOPY) $(OBJCOPY_FLAGS) $< $@ + +init.bin: init.elf + $(CROSS_COMPILE)$(OBJCOPY) $(OBJCOPY_FLAGS) $< $@ + clean: $(RM) -r $(CLEANUP) |
