Fri, 07 Apr 2023 11:41:11 +0200
16 files changed,
57 insertions(+),
35 deletions(-)
jump to
M
makefile
→
makefile
@@ -52,7 +52,7 @@
export CCFLAGS export GLOBAL_BUILD -MODULES := boot kernel apps +MODULES := boot kernel libcedos apps OBJECTS := $(patsubst %,$(LOCAL_BUILD)/%.o,$(MODULES)) $(LOCAL_BUILD)/apps_raw.o DIRS := $(LOCAL_BUILD)@@ -95,6 +95,10 @@
.PHONY: kernel kernel: > $(MAKE) GLOBAL_BUILD=$(LOCAL_BUILD) -C src/kernel $(LOCAL_BUILD)/kernel.bin + +.PHONY: libcedos +libcedos: +> $(MAKE) GLOBAL_BUILD=$(LOCAL_BUILD) -C src/libcedos build .PHONY: apps apps:
M
src/apps/cat.c
→
src/apps/cat.c
@@ -1,5 +1,5 @@
-#include "common/cedos.h" -#include "common/stdio.h" +#include "cedos.h" +#include "stdio.h" #include <stdint.h>
M
src/apps/echo.c
→
src/apps/echo.c
@@ -1,5 +1,5 @@
-#include "common/cedos.h" -#include "common/stdio.h" +#include "cedos.h" +#include "stdio.h" #include <stdint.h>
M
src/apps/fibonacci.c
→
src/apps/fibonacci.c
@@ -1,5 +1,5 @@
-#include "common/cedos.h" -#include "common/stdio.h" +#include "cedos.h" +#include "stdio.h" #include <stdint.h>
M
src/apps/gmode.c
→
src/apps/gmode.c
@@ -1,5 +1,5 @@
-#include "common/cedos.h" -#include "common/stdio.h" +#include "cedos.h" +#include "stdio.h" #include <stdint.h>
M
src/apps/hexdump.c
→
src/apps/hexdump.c
@@ -1,5 +1,5 @@
-#include "common/cedos.h" -#include "common/stdio.h" +#include "cedos.h" +#include "stdio.h" #include <stdint.h>
M
src/apps/imgview.c
→
src/apps/imgview.c
@@ -1,5 +1,5 @@
-#include "common/cedos.h" -#include "common/stdio.h" +#include "cedos.h" +#include "stdio.h" #include <stdint.h>
M
src/apps/makefile
→
src/apps/makefile
@@ -4,16 +4,8 @@ LOCAL_BUILD = $(GLOBAL_BUILD)/apps
SRC_DIR := $(shell pwd) -C_SOURCES := $(wildcard common/*.c) -S_SOURCES := $(wildcard common/*.s) - -C_OBJECTS := $(patsubst common/%.c,$(LOCAL_BUILD)/common/%.c.o,$(C_SOURCES)) -S_OBJECTS := $(patsubst common/%.s,$(LOCAL_BUILD)/common/%.s.o,$(S_SOURCES)) -LIB_OBJECTS = $(S_OBJECTS) $(C_OBJECTS) - -LIBCEDOS := $(LOCAL_BUILD)/lib/libcedos.a - -LDFLAGS += -L$(LOCAL_BUILD)/lib +CCFLAGS += -I../libcedos/include +LDFLAGS += -L$(GLOBAL_BUILD)/lib LDFLAGS += -lcedos LDFLAGS += -T link.txt@@ -21,25 +13,20 @@ LDFLAGS += -Map=$(LOG_DIR)/$(notdir $@)_mapfile.txt
LDFLAGS += -N APP_SOURCES := $(wildcard *.c) -APP_OBJECTS := $(patsubst %.c,$(GLOBAL_BUILD)/%.o,$(APP_SOURCES)) +APP_OBJECTS := $(patsubst %.c,$(GLOBAL_BUILD)/%.o,$(APP_SOURCES)) $(patsubst %.c,$(LOCAL_BUILD)/%.c.o,$(APP_SOURCES)) -DIRS := $(sort $(dir $(LIB_OBJECTS) $(APP_OBJECTS) $(LIBCEDOS))) +DIRS := $(sort $(dir $(APP_OBJECTS))) -$(APP_OBJECTS) $(LIB_OBJECTS) $(LIBCEDOS): | $(DIRS) +$(APP_OBJECTS): | $(DIRS) $(DIRS): > $(MKDIR) $(DIRS) .PHONY: build -build: $(APP_OBJECTS) $(LIBCEDOS) +build: $(APP_OBJECTS) $(GLOBAL_BUILD)/%.o: $(LOCAL_BUILD)/%.c.o | $(LIBCEDOS) > $(LD) $^ $(LDFLAGS) -o $@ -# > $(OBJCOPY) -I binary -O elf32-i386 $(GLOBAL_BUILD)/apps.o $(GLOBAL_BUILD)/apps_raw.o -# > $(LD) -T link.txt -r $^ -o $(GLOBAL_BUILD)/apps.o --oformat elf32-i386 -$(LIBCEDOS): $(LIB_OBJECTS) -> $(AR) rcs $@ $^ - -$(LOCAL_BUILD)/%.s.o: %.s +$(LOCAL_BUILD)/%.c.o: %.s > $(AS) -o $@ $< $(LOCAL_BUILD)/%.c.o: %.c $(wildcard *.h)
M
src/apps/shell.c
→
src/apps/shell.c
@@ -1,5 +1,5 @@
-#include "common/cedos.h" -#include "common/stdio.h" +#include "cedos.h" +#include "stdio.h" #include <stdint.h>
A
src/libcedos/makefile
@@ -0,0 +1,31 @@
+.RECIPEPREFIX = > + +LOCAL_BUILD = $(GLOBAL_BUILD)/libcedos + +SRC_DIR := $(shell pwd) + +C_SOURCES := $(wildcard *.c) +S_SOURCES := $(wildcard *.s) + +C_OBJECTS := $(patsubst %.c,$(LOCAL_BUILD)/%.c.o,$(C_SOURCES)) +S_OBJECTS := $(patsubst %.s,$(LOCAL_BUILD)/%.s.o,$(S_SOURCES)) +OBJECTS = $(S_OBJECTS) $(C_OBJECTS) + +LIBCEDOS := $(GLOBAL_BUILD)/lib/libcedos.a + +DIRS := $(sort $(dir $(OBJECTS) $(LIBCEDOS))) + +$(OBJECTS) $(LIBCEDOS): | $(DIRS) +$(DIRS): +> $(MKDIR) $(DIRS) + +.PHONY: build +build: $(LIBCEDOS) +$(LIBCEDOS): $(OBJECTS) +> $(AR) rcs $@ $^ + +$(LOCAL_BUILD)/%.s.o: %.s +> $(AS) -o $@ $< + +$(LOCAL_BUILD)/%.c.o: %.c $(wildcard *.h) +> $(CC) -c -fPIC -I$(INCLUDE_DIR) -I./include $(CCFLAGS) -o $@ $<