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

include ../../rules.mak

INCLUDES += -I/usr/include/SDL
OBJS     := cartridge.o compress.o device.o fileio.o ti-disk.o ti994a.o tms5220.o tms9900.o tms9918a.o tms9919.o opcodes.o
TARGETS  := ti-core.a

ifdef DEBUG
CFLAGS   += -fexceptions
OBJS     += logger.o string.o linux-logger.o
endif

all: $(TARGETS)

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

ti-core.a: $(OBJS)
	$(AR) rcs $@ $?

cartridge.o: \
	cartridge.cpp			\
	../../include/common.hpp	\
	../../include/logger.hpp	\
	../../include/compress.hpp	\
	../../include/cartridge.hpp

compress.o: \
	compress.cpp			\
	../../include/common.hpp	\
	../../include/logger.hpp

device.o: \
	device.cpp			\
	../../include/common.hpp	\
	../../include/logger.hpp	\
	../../include/cartridge.hpp	\
	../../include/device.hpp

fileio.o: \
	fileio.cpp			\
	../../include/common.hpp	\
	../../include/logger.hpp	\
	../../include/fileio.hpp

opcodes.o: \
	opcodes.cpp			\
	../../include/common.hpp	\
	../../include/tms9900.hpp	\
	../../include/opcodes.hpp
	$(CC) -c $(CFLAGS) $(WARNINGS) $(INCLUDES) -fomit-frame-pointer -fschedule-insns -o $@ $<

ti-disk.o: \
	ti-disk.cpp			\
	../../include/common.hpp	\
	../../include/logger.hpp	\
	../../include/cartridge.hpp	\
	../../include/tms9900.hpp	\
	../../include/device.hpp	\
	../../include/ti-disk.hpp

ti994a.o: \
	ti994a.cpp			\
	../../include/common.hpp	\
	../../include/logger.hpp	\
	../../include/compress.hpp	\
	../../include/tms9900.hpp	\
	../../include/tms9918a.hpp	\
	../../include/tms9919.hpp	\
	../../include/tms5220.hpp	\
	../../include/cartridge.hpp	\
	../../include/device.hpp	\
	../../include/ti994a.hpp

tms5220.o: \
	tms5220.cpp			\
	../../include/common.hpp	\
	../../include/logger.hpp	\
	../../include/tms5220.hpp	\
	../../include/tms9919.hpp	\
	../../include/tms9900.hpp	\
	../../include/ti994a.hpp	\
	../../include/fileio.hpp

tms9900.o: \
	tms9900.cpp			\
	../../include/common.hpp	\
	../../include/logger.hpp	\
	../../include/opcodes.hpp	\
	../../include/tms9900.hpp

tms9918a.o: \
	tms9918a.cpp			\
	../../include/common.hpp	\
	../../include/logger.hpp	\
	../../include/compress.hpp	\
	../../include/tms9900.hpp	\
	../../include/tms9918a.hpp	\
	../../include/ti994a.hpp

tms9919.o: \
	tms9919.cpp			\
	../../include/common.hpp	\
	../../include/logger.hpp	\
	../../include/tms9919.hpp

xgpl.o: \
	xgpl.cpp			\
	../../include/common.hpp	\
	../../include/logger.hpp	\
	../../include/tms9900.hpp	\
	../../include/tms9918a.hpp	\
	../../include/ti994a.hpp

