PocketEmpires/Makefile

68 lines
1.6 KiB
Makefile

include Makefile.cfg
PROJECT=POCKET
INCLUDE_FOLDERS= gamebuino arduino
LIBS=-L../lib -lgamebuino -larduino
INCLUDE= $(foreach dir,$(INCLUDE_FOLDERS),-I$/../include/$(dir))
EXE_DIR=Exe
CC_FLAGS += -Werror -Wfatal-errors
CXX_FLAGS = $(CC_FLAGS) -std=c++11
OBJ_DIR = Obj
SRC_DIR = .
OBJECTS=$(addprefix $(OBJ_DIR)/,main.o Game.o System.o HumanPlayer.o Sprite.o \
Player.o Camera.o BaseUnit.o Unit.o Menu.o \
Cursor.o HumanPlayerBtn.o Coordinates.o)
DEPS = $(OBJECTS:.o=.d)
build: libs $(EXE_DIR)/$(PROJECT).HEX
avr-size $(EXE_DIR)/$(PROJECT).ELF
rebuild:
make clean
make build
libs:
make -C Libs/libarduino/
make -C Libs/libgamebuino
make -C Libs/petit_fatfs
make -C Libs/tinyFAT
run: $(EXE_DIR)/$(PROJECT).ELF
$(GBSIM) $^
-include $(DEPS)
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp $(OBJ_DIR)/%.d
$(CXX) $< -o $@ $(INCLUDE) $(DEFINE) $(CXX_FLAGS) -MMD
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c $(OBJ_DIR)/%.d
$(CC) $< -o $@ $(INCLUDE) $(DEFINE) $(CC_FLAGS) -MMD
$(OBJ_DIR)/%.d: $(SRC_DIR)/%.c
$(CC) $< $(DEFINE) $(INCLUDE) -M -MF $@
$(OBJ_DIR)/%.d: $(SRC_DIR)/%.cpp
$(CXX) $< $(DEFINE) $(INCLUDE) -M -MF $@
clean:
rm *.elf -f
rm $(OBJ_DIR)/*.o $(OBJ_DIR)/*.d -f
make -C $$PWD/Libs/libarduino clean
make -C $$PWD/Libs/libgamebuino clean
make -C $$PWD/Libs/petit_fatfs clean
make -C $$PWD/Libs/tinyFAT clean
$(EXE_DIR)/$(PROJECT).ELF: $(OBJECTS)
mkdir -p $(EXE_DIR)
$(LINKER) $^ -o $@ -g $(DEFINE) $(LIBS) $(INCLUDE) -flto -Xlinker -Map=$(EXE_DIR)/POCKET.MAP -Wl,-emain -Wl,--gc-sections
$(EXE_DIR)/$(PROJECT).HEX: $(EXE_DIR)/$(PROJECT).ELF
avr-objcopy -j.text -j.data -j.bss -O ihex $^ $@
.PHONY: all libs clean run depend