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

CC := g++
ASM := nasm
OBJS := cartridge.o compress.o device.o ti-disk.o ti994a.o tms9900.o tms9918a.o tms9919.o xgpl.o
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) -f elf -o $@ $<

.SUFFIXES: .cpp .asm .o

all: convert disk dumpcpu dumpgrom

clean:
	@rm -f *~ *.o
	@rm -f convert disk dumpcpu dumpgrom

convert: \
	../core/ti-core.o			\
	convert.o
	@$(CC) -o $@ $^

disk: \
	disk.o
	@$(CC) -o $@ $^

dumpcpu: \
	../core/ti-core.o			\
	../console/disassemble.o		\
	dumpcpu.o
	@$(CC) -o $@ $^

dumpgrom: \
	../core/ti-core.o			\
	../console/gpl.o			\
	dumpgrom.o
	@$(CC) -o $@ $^

convert.o: \
	convert.cpp				\
	../../include/common.hpp		\
	../../include/cartridge.hpp

disk.o: \
	../../include/common.hpp		\

dumpcpu.o: \
	dumpcpu.cpp				\
	../../include/common.hpp		\
	../../include/cartridge.hpp		\
	../../include/tms9900.hpp

dumpgrom.o: \
	dumpgrom.cpp				\
	../../include/common.hpp		\
	../../include/cartridge.hpp
