split kernel lib sources into their own directory and handled the section

differences with a partial link and a special link script
This commit is contained in:
Eric J. Bowersox
2013-05-02 22:31:00 -06:00
parent 9c655d1fb0
commit 622b4cfe3c
18 changed files with 272 additions and 71 deletions

View File

@@ -33,14 +33,16 @@ CRBASEDIR := $(abspath ..)
include $(CRBASEDIR)/armcompile.mk
PRESTART_OBJS = prestart.o early_trace.o collect_startup.o early_mm.o
LIB_OBJS = divide.o qdivrem.o intlib.o objhelp.o rbtree.o str.o strcopymem.o strcomparemem.o strsetmem.o lib_guids.o
RES_OBJS = lowlevel.o trace.o memmgr.o vmmap.o pagealloc.o kernel_space.o
INIT_OBJS = start.o kistart.o init_heap.o
all: kernel.img
kernel.elf: $(PRESTART_OBJS) $(LIB_OBJS) $(RES_OBJS) $(INIT_OBJS) kernel.lds
$(LD) -T kernel.lds $(PRESTART_OBJS) $(LIB_OBJS) $(RES_OBJS) $(INIT_OBJS) -o kernel.elf
kernel.elf: $(PRESTART_OBJS) lib/kernel-lib.o $(RES_OBJS) $(INIT_OBJS) kernel.lds
$(LD) -T kernel.lds $(PRESTART_OBJS) lib/kernel-lib.o $(RES_OBJS) $(INIT_OBJS) -o kernel.elf
lib/kernel-lib.o:
make -C lib
kernel.img: kernel.elf
$(OBJDUMP) -D kernel.elf > kernel.list
@@ -50,3 +52,4 @@ kernel.img: kernel.elf
clean:
-rm *.o *.s *.lds kernel.img kernel.elf kernel.list kernel.syms*
make -C lib clean