# TI-99/sim src/console 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
TARGETS  := ti99sim-console

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

.SUFFIXES: .cpp .o

all: $(TARGETS)

depend: clean

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

ti99sim-console: \
	compiler.o		\
	disassemble.o		\
	gpl.o			\
	screenio.o		\
	ti-main.o		\
	ti994a-console.o	\
	tms9918a-console.o	\
	../core/ti-core.a
	$(CC) -o $@ $^

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

compiler.o: \
	compiler.cpp				\
	../../include/common.hpp

disassemble.o: \
	disassemble.cpp				\
	../../include/common.hpp		\
	../../include/tms9900.hpp

gpl.o: \
	gpl.cpp					\
	../../include/common.hpp

screenio.o: \
	screenio.cpp				\
	../../include/common.hpp		\
	../../include/screenio.hpp

ti-main.o: \
	ti-main.cpp				\
	../../include/common.hpp		\
	../../include/tms9900.hpp		\
	../../include/cartridge.hpp		\
	../../include/ti994a.hpp		\
	../../include/ti994a-console.hpp	\
	../../include/tms9918a.hpp		\
	../../include/tms9918a-console.hpp	\
	../../include/screenio.hpp

ti994a-console.o: \
	ti994a-console.cpp			\
	../../include/common.hpp		\
	../../include/compress.hpp		\
	../../include/tms9900.hpp		\
	../../include/tms9918a.hpp		\
	../../include/cartridge.hpp		\
	../../include/ti994a.hpp		\
	../../include/ti994a-console.hpp	\
	../../include/tms9918a-console.hpp	\
	../../include/screenio.hpp

tms9918a-console.o: \
	tms9918a-console.cpp			\
	../../include/common.hpp		\
	../../include/compress.hpp		\
	../../include/tms9900.hpp		\
	../../include/tms9918a.hpp		\
	../../include/tms9918a-console.hpp	\
	../../include/screenio.hpp
