Add multi-application support
This commit is contained in:
16
Makefile
16
Makefile
@@ -1,21 +1,23 @@
|
||||
.DEFAULT_GOAL := all
|
||||
|
||||
PLATFORM ?= posix
|
||||
APPLICATION ?= button
|
||||
|
||||
TARGET_FILE ?= firmware.elf
|
||||
PLATFORM ?= posix
|
||||
TARGET_FILE ?= $(APPLICATION).elf
|
||||
|
||||
CC = $(CROSS_COMPILE)gcc
|
||||
CPP = $(CROSS_COMPILE)cpp
|
||||
OBJCOPY = $(CROSS_COMPILE)objcopy
|
||||
|
||||
SRC_DIR = src
|
||||
OBJ_DIR = obj
|
||||
BIN_DIR = bin
|
||||
OBJ_DIR = obj/$(PLATFORM)
|
||||
BIN_DIR = bin/$(PLATFORM)
|
||||
|
||||
CPP_FLAGS += $(addprefix -I, $(INCLUDES))
|
||||
|
||||
C_SRCS = $(wildcard $(SRC_DIR)/*.c)
|
||||
C_SRCS += $(wildcard $(SRC_DIR)/platform/$(PLATFORM)/*.c)
|
||||
C_SRCS += $(wildcard $(SRC_DIR)/application/$(APPLICATION)/*.c)
|
||||
C_OBJS = $(patsubst $(SRC_DIR)%,$(OBJ_DIR)%,$(patsubst %.c,%.o,$(C_SRCS)))
|
||||
OBJS = $(NRF_A_OBJS) $(NRF_C_OBJS) $(C_OBJS)
|
||||
|
||||
@@ -46,14 +48,16 @@ clean:
|
||||
rm -f $(OBJS) $(patsubst %.o,%.d,$(OBJS))
|
||||
|
||||
distclean:
|
||||
rm -rf $(OBJ_DIR) $(BIN_DIR)
|
||||
rm -rf bin obj
|
||||
|
||||
$(TARGET): $(OBJS) $(THIS_MAKEFILE)
|
||||
@mkdir -p $(dir $@)
|
||||
$(CC) $(CC_FLAGS) $(LD_FLAGS) $(OBJS) $(addprefix -l,$(LIBS)) -o $@
|
||||
ln -sf $(shell pwd)/$@ $(shell pwd)/bin/firmware.elf
|
||||
|
||||
$(TARGET_HEX): $(TARGET) $(THIS_MAKEFILE)
|
||||
$(OBJCOPY) -O ihex $(TARGET) $(TARGET_HEX)
|
||||
ln -sf $(shell pwd)/$@ $(shell pwd)/bin/firmware.hex
|
||||
|
||||
$(OBJ_DIR)/%.d: $(SRC_DIR)/%.c
|
||||
@mkdir -p $(dir $@)
|
||||
@@ -63,6 +67,6 @@ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
|
||||
@mkdir -p $(dir $@)
|
||||
$(CC) -c $(CPP_FLAGS) $(C_FLAGS) $< -o $@
|
||||
|
||||
ifneq ($(MAKECMDGOALS),clean)
|
||||
ifeq "$(findstring $(MAKECMDGOALS), clean distclean)" ""
|
||||
-include $(patsubst %.o,%.d,$(OBJS))
|
||||
endif
|
||||
|
Reference in New Issue
Block a user