From 0ec0ca40a4fedfe97c49903a329b2a9ad2e22d03 Mon Sep 17 00:00:00 2001 From: Alexis211 Date: Tue, 10 Aug 2010 17:14:38 +0200 Subject: Using a cross-compiler. Better makefile system. --- src/common.make | 39 ++++++++++++++++++++++++++++++++++++ src/kernel/Makefile | 46 +++++++++++-------------------------------- src/kernel/core/sys.c | 2 +- src/library/Makefile | 42 +++++++++------------------------------ src/library/gm/call.c | 2 +- src/library/gm/call/manager.c | 2 +- src/modules/manager/Makefile | 34 +++++--------------------------- src/modules/test/Makefile | 35 +++++--------------------------- 8 files changed, 72 insertions(+), 130 deletions(-) create mode 100644 src/common.make (limited to 'src') diff --git a/src/common.make b/src/common.make new file mode 100644 index 0000000..6aa6e4b --- /dev/null +++ b/src/common.make @@ -0,0 +1,39 @@ +# ============== ENVIRONMENT VARIABLES + +CC = i586-elf-gcc +CFLAGS = -nostdlib -nostartfiles -nodefaultlibs -fno-builtin -fno-stack-protector -Wall -Wextra + +LD = i586-elf-ld +.PHONY: clean, mrproper + +LDFLAGS = + +ASM = nasm +AFLAGS = -f elf + +# ============== GENERAL BUILD PROCEDURES + +all: $(Out) + +$(Out): $(Obj) + echo ""; echo "- Linking $@..." + $(LD) $(LDFLAGS) $^ -o $@ + +# ============== GENERAL CLEAINING PROCEDURES + +clean: + rm $(Obj) || exit 0 + rm *.o */*.o || exit 0 + +mrproper: clean + rm $(Out) || exit 0 + +# ============== SOURCE FILE BUILD PROCEDURES + +%.o: %.asm + echo ""; echo "- $<" + $(ASM) $(AFLAGS) -o $@ $< + +%.o: %.c + echo ""; echo "- $<" + $(CC) -c $< -o $@ $(CFLAGS) diff --git a/src/kernel/Makefile b/src/kernel/Makefile index d7a6a57..eb69cfc 100644 --- a/src/kernel/Makefile +++ b/src/kernel/Makefile @@ -1,39 +1,15 @@ -.PHONY: clean, mrproper +Out = kernel.elf +Obj = core/loader_.o core/kmain.o core/sys.o \ + core/monitor.o task/timer.o \ + task/idt.o task/idt_.o task/task.o task/task_.o task/syscall.o \ + lib/stdlib.o lib/bitset.o lib/mutex.o \ + mem/mem.o mem/paging.o mem/gdt.o mem/heap.o mem/seg.o \ + ipc/shm.o ipc/object.o ipc/request.o \ + linker/elf.o -CC = gcc -CFLAGS = -nostdlib -nostartfiles -nodefaultlibs -fno-builtin -fno-stack-protector -Wall -Wextra -I . -I ./lib -g +include ../common.make -LD = ld -LDFLAGS = -T link.ld +CFLAGS += -I . -I ./lib -g -ASM = nasm -AFLAGS = -f elf +LDFLAGS += -T link.ld -Map kernel.map -OBJECTS = core/loader_.o core/kmain.o core/sys.o \ - core/monitor.o task/timer.o \ - task/idt.o task/idt_.o task/task.o task/task_.o task/syscall.o \ - lib/stdlib.o lib/bitset.o lib/mutex.o \ - mem/mem.o mem/paging.o mem/gdt.o mem/heap.o mem/seg.o \ - ipc/shm.o ipc/object.o ipc/request.o \ - linker/elf.o -OUT = kernel.elf - -all: $(OBJECTS) - echo "* Linking $(OUT)..." - $(LD) $(LDFLAGS) $(OBJECTS) -o $(OUT) -Map kernel.map - -clean: - rm $(OBJECTS) || exit 0 - rm *.o */*.o || exit 0 - rm *.map || exit 0 - -mrproper: clean - rm $(OUT) || exit 0 - -%.o: %.asm - echo "* Compiling $<..." - $(ASM) $(AFLAGS) -o $@ $< - -%.o: %.c - echo "* Compiling $<..." - $(CC) -c $< -o $@ $(CFLAGS) diff --git a/src/kernel/core/sys.c b/src/kernel/core/sys.c index 1045cff..1e07f7c 100644 --- a/src/kernel/core/sys.c +++ b/src/kernel/core/sys.c @@ -25,7 +25,7 @@ void panic(char* message, char* file, int line) { monitor_write("\n>> PANIC: >>"); monitor_write(message); monitor_write("<< at "); monitor_write(file); monitor_write(":"); monitor_writeDec(line); - monitor_write("\nSystem halted T_T"); + monitor_write("\nSystem halted -_-'"); asm volatile("cli; hlt"); } diff --git a/src/library/Makefile b/src/library/Makefile index 3d55354..ac585f5 100644 --- a/src/library/Makefile +++ b/src/library/Makefile @@ -1,37 +1,13 @@ -.PHONY: clean, mrproper +Out = grapes.o +Obj = gc/syscall.o gc/server.o \ + gm/call.o gm/call/manager.o \ + gc/mem.o gc/shm.o \ + std/mutex.o std/string.o std/stdio.o \ + start.o -CC = gcc -CFLAGS = -nostdlib -nostartfiles -nodefaultlibs -fno-builtin -fno-stack-protector -Wall -Wextra -I../include +include ../common.make -LD = ld -LDFLAGS = -r +CFLAGS = -I../include -Library = grapes.o -Objects = gc/syscall.o gc/server.o \ - gm/call.o gm/call/manager.o \ - gc/mem.o gc/shm.o \ - std/mutex.o std/string.o std/stdio.o \ - start.o +LDFLAGS += -r -all: $(Library) - echo "* Done with library $(Library)" - -rebuild: mrproper all - -$(Library): $(Objects) - echo "* Linking library $(Library)..." - $(LD) $(LDFLAGS) $^ -o $@ - -%.uo: %.c - echo "* Compiling $<..." - $(CC) $(CFLAGS) -c $< -o $@ - -clean: - echo "* Removing object files..." - rm *.o || exit 0 - rm -rf $(Objects) || exit 0 - -mrproper: clean - echo "* Removing library..." - rm *.o || exit 0 - rm -rf $(Library) || exit 0 diff --git a/src/library/gm/call.c b/src/library/gm/call.c index 553fbaf..c897415 100644 --- a/src/library/gm/call.c +++ b/src/library/gm/call.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include diff --git a/src/library/gm/call/manager.c b/src/library/gm/call/manager.c index 4b296f7..f4cef90 100644 --- a/src/library/gm/call/manager.c +++ b/src/library/gm/call/manager.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include diff --git a/src/modules/manager/Makefile b/src/modules/manager/Makefile index 87a9590..abce5cb 100644 --- a/src/modules/manager/Makefile +++ b/src/modules/manager/Makefile @@ -1,33 +1,9 @@ -.PHONY: clean, mrproper +Obj = main.o +Out = manager.elf -CC = gcc -CFLAGS = -nostdlib -nostartfiles -nodefaultlibs -fno-builtin -fno-stack-protector -Wall -Wextra -I ../../include +include ../../common.make -LD = ld -LDFLAGS = -T ../../library/link.ld -L ../../library -Map manager.map +CFLAGS += -I ../../include -Objects = main.o -Outfile = manager.elf - -all: $(Outfile) - echo "* Done with $(Outfile)" - -rebuild: mrproper all - -$(Outfile): $(Objects) - echo "* Linking $@..." - $(LD) $(LDFLAGS) -o $@ $^ - -%.o: %.c - $(CC) $(CFLAGS) -c $< -o $@ - -clean: - echo "* Removing objects..." - rm *.o || exit 0 - rm *.map || exit 0 - rm $(Objects) || exit 0 - -mrproper: clean - rm *.elf || exit 0 - rm $(Outfile) || exit 0 +LDFLAGS += -T ../../library/link.ld -L ../../library -Map manager.map diff --git a/src/modules/test/Makefile b/src/modules/test/Makefile index 6dd9f80..3b9ac14 100644 --- a/src/modules/test/Makefile +++ b/src/modules/test/Makefile @@ -1,33 +1,8 @@ -.PHONY: clean, mrproper +Obj = main.o +Out = test.elf -CC = gcc -CFLAGS = -nostdlib -nostartfiles -nodefaultlibs -fno-builtin -fno-stack-protector -Wall -Wextra -I ../../include +include ../../common.make -LD = ld -LDFLAGS = -T ../../library/link.ld -L ../../library -Map test.map - -Objects = main.o -Outfile = test.elf - -all: $(Outfile) - echo "* Done with $(Outfile)" - -rebuild: mrproper all - -$(Outfile): $(Objects) - echo "* Linking $@..." - $(LD) $(LDFLAGS) -o $@ $^ - -%.o: %.c - $(CC) $(CFLAGS) -c $< -o $@ - -clean: - echo "* Removing objects..." - rm *.o || exit 0 - rm *.map || exit 0 - rm $(Objects) || exit 0 - -mrproper: clean - rm *.elf || exit 0 - rm $(Outfile) || exit 0 +CFLAGS += -I ../../include +LDFLAGS += -T ../../library/link.ld -L ../../library -Map test.map -- cgit v1.2.3