CeDOS - Commit d17bb52d

Common app functions now compiled into a static library
Celina Sophie Kalus
Fri, 07 Apr 2023 11:16:00 +0200
2 files changed, 20 insertions(+), 10 deletions(-)
M makefilemakefile

@@ -13,6 +13,7 @@

export CC := $(CROSS_COMP)gcc export LD := $(CROSS_COMP)ld export AS := $(CROSS_COMP)as +export AR := $(CROSS_COMP)ar export OBJCOPY := $(CROSS_COMP)objcopy export OBJDUMP := $(CROSS_COMP)objdump
M src/apps/makefilesrc/apps/makefile

@@ -9,29 +9,38 @@ 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)) -OBJECTS = $(S_OBJECTS) $(C_OBJECTS) +LIB_OBJECTS = $(S_OBJECTS) $(C_OBJECTS) + +LIBCEDOS := $(LOCAL_BUILD)/lib/libcedos.a + +LDFLAGS += -L$(LOCAL_BUILD)/lib +LDFLAGS += -lcedos + +LDFLAGS += -T link.txt +LDFLAGS += -Map=$(LOG_DIR)/$(notdir $@)_mapfile.txt +LDFLAGS += -N APP_SOURCES := $(wildcard *.c) APP_OBJECTS := $(patsubst %.c,$(GLOBAL_BUILD)/%.o,$(APP_SOURCES)) -DIRS := $(sort $(dir $(OBJECTS) $(APP_OBJECTS))) +DIRS := $(sort $(dir $(LIB_OBJECTS) $(APP_OBJECTS) $(LIBCEDOS))) -$(OBJECTS): | $(DIRS) +$(APP_OBJECTS) $(LIB_OBJECTS) $(LIBCEDOS): | $(DIRS) $(DIRS): > $(MKDIR) $(DIRS) .PHONY: build -build: $(APP_OBJECTS) -$(GLOBAL_BUILD)/%.o: $(LOCAL_BUILD)/%.o $(OBJECTS) -> $(LD) -T link.txt -Map=$(LOG_DIR)/$(notdir $@)_mapfile.txt -N $^ -o $@ +build: $(APP_OBJECTS) $(LIBCEDOS) +$(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 > $(AS) -o $@ $< -$(LOCAL_BUILD)/%.o: %.c $(wildcard *.h) -> $(CC) -c -I$(INCLUDE_DIR) -I./common $(CCFLAGS) -o $@ $< - $(LOCAL_BUILD)/%.c.o: %.c $(wildcard *.h) -> $(CC) -c -I$(INCLUDE_DIR) -I./common $(CCFLAGS) -o $@ $< +> $(CC) -c -fPIC -I$(INCLUDE_DIR) -I./common $(CCFLAGS) -o $@ $<