# You can put your build options here
-include config.mk
CFLAGS=-Wall -g -DJSMN_PARENT_LINKS

all: sb sb2c tgvectrex tg main.bin

tg: tg.c
	cc -DOPENGL -O3 -o tg tg.c -lGL -lglut
	~/bin/ctohtml tg.c > tg.c.html

tgvectrex: tgvectrex.c
	$(CC) -std=c99 -pedantic -Wall -Wextra -Wshadow -c -O1 -Wno-unused-variable -Wno-unused-function -Wno-unknown-pragmas -Wno-unused-parameter -DOPENGL tgvectrex.c
	cmoc -O0 --vectrex -Wsign-compare -DVECTREX_CMOC --verbose tgvectrex.c
	mv tgvectrex.asm tgvectrex.asm-raw
	cmoc --vectrex -Wsign-compare -DVECTREX_CMOC --verbose tgvectrex.c
	ls -la tgvectrex.o tgvectrex.bin
	cc -g -c tgvectrex.c
	objdump -S tgvectrex.o > tgvectrex.x86
	rm tgvectrex.o
	$(CC) $(CFLAGS) -Wno-unused-variable -Wno-unused-function -Wno-unknown-pragmas -DOPENGL -o tgvectrex tgvectrex.c  -lGL -lglut
	~/bin/ctohtml tgvectrex.c > tgvectrex.c.html

main.bin: main.c
	$(CC) -std=c99 -pedantic -Wall -Wextra -Wshadow -Igcc -c -O1 -Wno-unused-variable -Wno-unused-function -Wno-unknown-pragmas -Wno-unused-parameter -DOPENGL main.c
	cmoc -O0 --vectrex -Wsign-compare -DVECTREX_CMOC --verbose main.c
	mv main.asm main.asm-raw
	cmoc --vectrex -Wsign-compare -DVECTREX_CMOC --verbose main.c
	ls -la main.o main.bin
	cc -g -Igcc -c main.c
	objdump -S main.o > main.x86
	rm main.o
	$(CC) $(CFLAGS) -Wno-unused-variable -Wno-unused-function -Wno-unknown-pragmas -DOPENGL -Igcc -o main main.c  -lGL -lglut
	~/bin/ctohtml main.c > main.c.html

sb: sb.c jsmn/libjsmn.a
	$(CC) $(CFLAGS) -Ljsmn/ -ljsmn $< -o $@

sb2c: sb2c.c jsmn/libjsmn.a
	$(CC) $(CFLAGS) -Ljsmn/ -ljsmn $< -o $@

jsmn/libjsmn.a:
	cd jsmn
	make

#%.o: %.c jsmn/jsmn.h
#	$(CC) -c $(CFLAGS) $< -o $@

clean:
	rm -f sb sb.o

.PHONY: all clean
