startup code etc.
This commit is contained in:
31
Makefile
31
Makefile
@@ -8,36 +8,26 @@ MAINFILE = $(EXE_DIR)/$(APP)$(ELF_EXT)
|
||||
BINFILE = $(EXE_DIR)/$(APP)$(BIN_EXT)
|
||||
HEXFILE = $(EXE_DIR)/$(APP)$(HEX_EXT)
|
||||
SIZEFILE = $(SIZE_DIR)/$(APP)$(SIZE_EXT)
|
||||
|
||||
MAP_FILE = $(MAP_DIR)/$(APP)$(MAP_EXT)
|
||||
INCLUDES += $(SRC_DIR)
|
||||
|
||||
SUB_FOLDER :=
|
||||
CHECK_FOLDER :=
|
||||
SOURCES := $(wildcard $(SRC_DIR)/*.c)
|
||||
ASM_SOURCES := $(wildcard $(SRC_DIR)/*.s)
|
||||
|
||||
OBJECTS = $(SOURCES:$(ROOT_DIR)/%.c=$(OBJ_DIR)/%.o)
|
||||
ASM_OBJECTS = $(ASMSOURCES:$(ROOT_DIR)/%.s=$(OBJ_DIR)/%.o)
|
||||
DEPS = $(SOURCES:$(ROOT_DIR)/%.c=$(OBJ_DIR)/%.d)
|
||||
|
||||
#include subfolders
|
||||
include source/application/application.mk
|
||||
|
||||
SOURCES += $(foreach folder, $(SUB_FOLDER), $(wildcard $(ROOT_DIR)/$(folder)/*.c))
|
||||
CHECKSOURCES += $(foreach folder, $(CHECK_FOLDER), $(wildcard $(ROOT_DIR)/$(folder)/*.c))
|
||||
ASMSOURCES += $(foreach folder, $(SUB_FOLDER), $(wildcard $(ROOT_DIR)/$(folder)/*.s))
|
||||
|
||||
all: check $(MAINFILE)
|
||||
all: $(MAINFILE)
|
||||
|
||||
check:
|
||||
$(CPPCHECK) $(CPPCHECK_FLAGS) $(CHECKSOURCES)
|
||||
|
||||
|
||||
$(MAINFILE): $(OBJECTS) $(ASM_OBJECTS)
|
||||
$(MAINFILE): $(OBJECTS)
|
||||
@$(MKDIR) $(EXE_DIR)
|
||||
@$(MKDIR) $(MAP_DIR)
|
||||
@$(MKDIR) $(SIZE_DIR)
|
||||
$(CC) $(CFLAGS) -L$(LIB_DIR) $(LDFLAGS) -o $(MAINFILE) $(OBJECTS) $(ASM_OBJECTS) $(addprefix -l, $(LIBS))
|
||||
$(CXX) $(GEN_FLAGS) $(L_FLAGS) -L$(LIB_DIR) -Wl,-Map,"$(MAP_FILE)" -o "$(MAINFILE)" $(OBJECTS) $(addprefix -l, $(LIBS))
|
||||
$(OBJCOPY) $(MAINFILE) -O binary $(BINFILE)
|
||||
$(OBJCOPY) $(MAINFILE) -O ihex $(HEXFILE)
|
||||
$(NM) --size-sort --print-size $(MAINFILE) > $(SIZEFILE)
|
||||
@@ -48,13 +38,8 @@ $(MAINFILE): $(OBJECTS) $(ASM_OBJECTS)
|
||||
$(OBJ_DIR)/%.o: $(ROOT_DIR)/%.c
|
||||
@$(MKDIR) $(OBJ_DIR)
|
||||
@$(foreach folder, $(SUB_FOLDER), $(shell mkdir -p $(OBJ_DIR)/$(folder)))
|
||||
$(call makedep,$<,$@,$(subst .o,.d,$@))
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
|
||||
$(OBJ_DIR)/%.o: $(ROOT_DIR)/%.s
|
||||
@$(MKDIR) $(OBJ_DIR)
|
||||
@$(foreach folder, $(SUB_FOLDER), $(shell mkdir -p $(OBJ_DIR)/$(folder)))
|
||||
$(CC) $(CFLAGS) -c $< -o $@
|
||||
$(call makedep,$<,$@,$(subst .o,.d,$@),$(GEN_FLAGS) $(C_FLAGS))
|
||||
$(CC) $(GEN_FLAGS) $(C_FLAGS) -c -o "$@" "$<"
|
||||
|
||||
clean:
|
||||
$(foreach folder, $(SUB_FOLDER), $(shell rm -f $(OBJ_DIR)/$(folder)/*.o))
|
||||
@@ -73,10 +58,6 @@ install: all
|
||||
$(PRE_PROGRAM)
|
||||
$(PROGRAM)
|
||||
|
||||
doc:
|
||||
@$(MKDIR) $(DOC_DIR)
|
||||
(cat $(DOXYFILE) ; echo "INPUT=$(DOC_SRC)" ; echo "OUTPUT_DIRECTORY=$(DOC_DIR)") | doxygen -
|
||||
|
||||
ifneq "$(MAKECMDGOALS)" "clean"
|
||||
-include $(DEPS)
|
||||
else
|
||||
|
Reference in New Issue
Block a user