
CC = cc
CFLAGS = -Wall -g -DPITREX -DPIZERO -DRPI0

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

PITREX_DIR := ../pitrex/pitrex/
VECTREX_DIR := ../pitrex/vectrex/
CFLAGS := -g -I ../pitrex/ -I libmsvg/src -DPIZERO -DRPI0
# CFLAGS := -Ofast -I../pitrex/ -DPIZERO -DRPI0
CC := gcc -DPITREX

.PHONY: pitrexLib
.PHONY: dirCheck


all:	dirCheck pitrexLib render
	# echo sudo LD_LIBRARY_PATH=/usr/local/lib/arm-linux-gnueabihf ./testnew
	sudo ./render
	echo All up to date

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

pitrexLib:
	$(MAKE) -C $(PITREX_DIR) -f Makefile.raspbian all
	$(MAKE) -C $(VECTREX_DIR) -f Makefile.raspbian all

$(BUILD_DIR)render.o: main.c 3D.h Makefile
	$(CC) $(CFLAGS) -c main.c -o $(BUILD_DIR)render.o

$(BUILD_DIR)model.o: model.c Makefile
	$(CC) $(CFLAGS) -c model.c -o $(BUILD_DIR)model.o

$(BUILD_DIR)wireframe.o: wireframe.c Makefile
	$(CC) $(CFLAGS) -c wireframe.c -o $(BUILD_DIR)wireframe.o

$(BUILD_DIR)window.o: window.c Makefile
	$(CC) $(CFLAGS) -c window.c -o $(BUILD_DIR)window.o

$(BUILD_DIR)3D.o: 3D.c Makefile
	$(CC) $(CFLAGS) -c 3D.c -o $(BUILD_DIR)3D.o

render: $(BUILD_DIR)render.o $(BUILD_DIR)3D.o $(BUILD_DIR)wireframe.o $(BUILD_DIR)model.o $(BUILD_DIR)window.o Makefile pitrexLib
	$(RM) render
	$(CC) $(CFLAGS) -o render \
	  $(PITREX_DIR)$(BUILD_DIR)bcm2835.o \
	  $(PITREX_DIR)$(BUILD_DIR)pitrexio-gpio.o \
	  $(VECTREX_DIR)$(BUILD_DIR)vectrexInterface.o \
	  $(VECTREX_DIR)$(BUILD_DIR)osWrapper.o \
	  $(VECTREX_DIR)$(BUILD_DIR)baremetalUtil.o \
	  $(BUILD_DIR)render.o $(BUILD_DIR)3D.o $(BUILD_DIR)wireframe.o $(BUILD_DIR)model.o $(BUILD_DIR)window.o \
	  -lm

clean:
	$(RM) *~ \#*\# $(BUILD_DIR)render.o $(BUILD_DIR)3D.o $(BUILD_DIR)wireframe.o $(BUILD_DIR)model.o $(BUILD_DIR)window.o render

# This one is just for me ...
upload:
	scp -r Makefile *.[hc] objs gtoal@gtoal.com:gtoal.com/src/teapot/
