summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorXaviDCR92 <xavi.dcr@gmail.com>2017-08-26 17:20:15 +0200
committerXaviDCR92 <xavi.dcr@gmail.com>2017-08-26 17:20:15 +0200
commit8151d005e3ec99f6da915f7cba71cb4af9517f63 (patch)
treec48d511c915b530e1fc8b5685c05d818968c28b7 /Makefile
parent32ce459181fc26851aef4ade093faa087b80b0de (diff)
downloadpocketempires-8151d005e3ec99f6da915f7cba71cb4af9517f63.tar.gz
*Makefile MMCU was not set for linking (text overflow occurred)
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile55
1 files changed, 32 insertions, 23 deletions
diff --git a/Makefile b/Makefile
index 14ec897..148c236 100644
--- a/Makefile
+++ b/Makefile
@@ -1,33 +1,40 @@
-PROJECT=POCKET
-
-CC=avr-gcc
-CXX=avr-g++
-LINKER=$(CXX)
+include Makefile.cfg
-MCU=atmega328p
-CPU_SPEED=-DF_CPU=16000000UL
-ARDUINO_VERSION=ARDUINO_150
+PROJECT=POCKET
INCLUDE_FOLDERS= gamebuino arduino
LIBS=-L../lib -lgamebuino -larduino
INCLUDE= $(foreach dir,$(INCLUDE_FOLDERS),-I$/../include/$(dir))
-CC_FLAGS=-mmcu=$(MCU) $(CPU_SPEED) -Wall -Werror -Os -c -ffunction-sections -fdata-sections -g
-DEFINE = -D$(ARDUINO_VERSION)
+EXE_DIR=Exe
+
+CC_FLAGS += -Werror -Wfatal-errors
OBJ_DIR = Obj
SRC_DIR = .
-default: build $(PROJECT).HEX size
+OBJECTS=$(addprefix $(OBJ_DIR)/,main.o Gameplay.o System.o Gfx.o Pad.o \
+ Player.o Camera.o Unit.o Menu.o Building.o)
+
+build: libs $(EXE_DIR)/$(PROJECT).HEX
+ avr-size $(EXE_DIR)/$(PROJECT).ELF
+
+rebuild:
+ make clean
+ make build
-size:
- avr-size Exe/$(PROJECT).ELF
+libs:
+ make -C Libs/libarduino/
+ make -C Libs/libgamebuino
+ make -C Libs/petit_fatfs
+ make -C Libs/tinyFAT
clean:
rm *.elf -f
- rm $(OBJ_DIR)/*.o -f -r
-
-build: $(addprefix $(OBJ_DIR)/,main.o Gameplay.o System.o Gfx.o Pad.o \
- Player.o Camera.o Unit.o Menu.o Building.o)
+ rm $(OBJ_DIR)/*.o -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
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
$(CXX) $< -o $@ $(INCLUDE) $(DEFINE) $(CC_FLAGS)
@@ -35,9 +42,11 @@ $(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
$(CC) $< -o $@ $(INCLUDE) $(DEFINE) $(CC_FLAGS)
-$(PROJECT).ELF:
- $(LINKER) $(OBJ_DIR)/*.o -o Exe/$(PROJECT).elf -mmcu=$(MCU) -g $(LIBS) $(INCLUDE) -flto -Xlinker -Map=Exe/POCKET.MAP -Wl,--gc-sections
-
-$(PROJECT).HEX: $(PROJECT).ELF
- avr-objcopy -j.text -j.data -j.bss -O ihex Exe/$^ $@
- mv $@ Exe/
+$(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