BASE = ../

COMMON = $(BASE)pitrex/
PITREX = $(COMMON)pitrex/
VECTREX = $(COMMON)vectrex/

INI_DIR = /opt/pitrex/share/cinemu/ini

CFLAGS = -g -DPITREX=1  -DPIZERO -DRPI0 -I$(BASE) -I$(PITREX) -I$(VECTREX)  -I$(COMMON) -DINI_DIR="\"$(INI_DIR)\""
#CFLAGS = -Ofast -DPITREX=1  -DPIZERO -DRPI0 -I$(BASE) -I$(PITREX) -I$(VECTREX)  -I$(COMMON) -DINI_DIR="\"$(INI_DIR)\""

CC := gcc
BUILD_DIR_PURE := build.raspbian
BUILD_DIR := $(BUILD_DIR_PURE)/

.PHONY: pitrexLib
.PHONY: dirCheck

all:	dirCheck pitrexLib cinemu
	echo All up to date.

pitrexLib:
	$(MAKE) -C $(PITREX) -f Makefile.raspbian all
	$(MAKE) -C $(VECTREX) -f Makefile.raspbian all

dirCheck:
	if [ ! -d $(BUILD_DIR_PURE) ]; then mkdir $(BUILD_DIR_PURE); fi

$(BUILD_DIR)options.o: options.c inifile.h options.h cines.h
	$(CC) $(CFLAGS) -DO_BINARY=0 -c -o $(BUILD_DIR)options.o options.c

$(BUILD_DIR)inifile.o: inifile.c inifile.h
	$(CC) $(CFLAGS) -DO_BINARY=0 -c -o $(BUILD_DIR)inifile.o inifile.c

$(BUILD_DIR)cineops.o: cineops.c cinedbg.i  cineops.i  startframe.i  clip.i
	$(CC) $(CFLAGS) -c -o $(BUILD_DIR)cineops.o cineops.c

$(BUILD_DIR)popup-menu.o: popup-menu.c popup-menu.h
	$(CC) $(CFLAGS) -c -o $(BUILD_DIR)popup-menu.o popup-menu.c

$(BUILD_DIR)cinemu.o: cinemu.c cines.h inifile.h options.h $(VECTREX)vectrexInterface.h $(VECTREX)vectorFont.i
	$(CC) $(CFLAGS) -c -o $(BUILD_DIR)cinemu.o cinemu.c

cinemu: pitrexLib \
	$(BUILD_DIR)cinemu.o \
	$(BUILD_DIR)options.o \
	$(BUILD_DIR)inifile.o \
	$(BUILD_DIR)cineops.o \
	$(BUILD_DIR)popup-menu.o 
	$(RM) cinemu
	$(CC) $(CFLAGS) -o cinemu \
	$(PITREX)$(BUILD_DIR)bcm2835.o \
	$(PITREX)$(BUILD_DIR)pitrexio-gpio.o \
	$(VECTREX)$(BUILD_DIR)vectrexInterface.o \
	$(BUILD_DIR)options.o \
	$(BUILD_DIR)inifile.o \
	$(BUILD_DIR)cineops.o \
	$(BUILD_DIR)cinemu.o \
	$(BUILD_DIR)popup-menu.o

#	$(VECTREX)$(BUILD_DIR)osWrapper.o \
#	$(VECTREX)$(BUILD_DIR)baremetalUtil.o \

clean:
	$(RM) $(BUILD_DIR)*.*
	$(RM) cinemu

install: cinemu
	install -o root -g games -m 6555 cinemu /opt/pitrex/bin
	mkdir -p /opt/pitrex/share/cinemu/ini
	cp ini/* /opt/pitrex/share/cinemu/ini
	sed -i 's/roms\//\/opt\/pitrex\/roms\//g' /opt/pitrex/share/cinemu/ini/*.ini
