# TI-99/sim src/sdl makefile for Linux

CC       := g++
CFLAGS   := -g -O3 -fstrength-reduce -funroll-loops -malign-jumps=2 -march=$(ARCH) -fno-exceptions -fno-rtti
WARNINGS := -Wall -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Winline
INCLUDES := -I../../include -I/usr/include/SDL
TARGETS  := ti99sim-sdl

.cpp.o:
	$(CC) -c $(CFLAGS) $(WARNINGS) $(INCLUDES) -o $@ $<

.SUFFIXES: .cpp .o

all: $(TARGETS)

clean:
	rm -f *~ *.o $(TARGETS)

keytest: \
	keytest.o
	$(CC) -o $@ $^ -L/usr/lib -lSDL -lpthread

ti99sim-sdl: \
	main.o				\
	bitmap.o			\
	tms9919-sdl.o			\
	tms9918a-sdl.o			\
	ti994a-sdl.o			\
	../core/ti-core.a
	$(CC) -o $@ $^ -L/usr/lib -lSDL -lpthread

../core/ti-core.a:
	make -C ../core

main.o: \
	main.cpp			\
	../../include/common.hpp	\
	../../include/logger.hpp	\
	../../include/cartridge.hpp	\
	../../include/tms9900.hpp	\
	../../include/ti994a.hpp	\
	../../include/ti994a-sdl.hpp	\
	../../include/tms9918a.hpp	\
	../../include/tms9918a-sdl.hpp	\
	../../include/tms9919.hpp	\
	../../include/tms9919-sdl.hpp

tms9919-sdl.o: \
	tms9919-sdl.cpp			\
	../../include/common.hpp	\
	../../include/logger.hpp	\
	../../include/tms9919.hpp	\
	../../include/tms9919-sdl.hpp
 
tms9918a-sdl.o: \
	tms9918a-sdl.cpp		\
	../../include/common.hpp	\
	../../include/logger.hpp	\
	../../include/bitmap.hpp	\
	../../include/tms9900.hpp	\
	../../include/tms9918a.hpp	\
	../../include/ti994a.hpp	\
	../../include/tms9918a-sdl.hpp
 
ti994a-sdl.o: \
	ti994a-sdl.cpp			\
	../../include/common.hpp	\
	../../include/logger.hpp	\
	../../include/bitmap.hpp	\
	../../include/compress.hpp	\
	../../include/cartridge.hpp	\
	../../include/tms9900.hpp	\
	../../include/tms9918a.hpp	\
	../../include/tms9919.hpp	\
	../../include/ti994a.hpp	\
	../../include/ti994a-sdl.hpp
