# TI-99/4A src/console makefile for Linux

CC := g++
CFLAGS := -g -O6 -fstrength-reduce -funroll-loops -malign-jumps=2 -march=pentiumpro -fno-exceptions -fno-rtti
WARNINGS := -Wall -Wno-format -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Winline
INCLUDES := -I../../include

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

.asm.o:
	$(ASM) $@ $<

.SUFFIXES: .cpp .asm .o

all: ti-console

depend: clean

clean:
	@rm -f *~ *.o
	@rm -f ti-console

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

ti-core.o:
	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
