68 lines
1.6 KiB
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
|