# Sim's Makefile by Olivier Armand <ola.e-ml@wanadoo.fr> - 02/11/2003
# Use 'make 89' to build for TI89, 'make 92p' to build for TI92p/V200.
# Once the target is chosen, just use 'make'.
# Use 'make pedrom' to build for PedroM. Use 'make ams' to build for
# AMS. 

CC = tigcc
CFLAGS = -Os -Wall -W -Wwrite-strings -fno-function-cse -mregparm=3 -fomit-frame-pointer -Wa,-l
ASMFLAGS = -WA,-g -WA,-t
include target
include OS
CALC_OS = $(CALC) $(OS)

sim: main.o misc.o common.o parser.o kbdemu.o kbdasm.o no_calc_detect.o constants.o
	$(CC) $(CALC_OS) main.o misc.o common.o parser.o kbdemu.o kbdasm.o no_calc_detect.o constants.o -o sim $(CFLAGS)
ifeq ($(OS),-DUSE_PEDROM)
ifeq ($(CALC), -DUSE_TI89)
	mv sim.89z sim_pedrom.89z
else
	mv sim.9xz sim_pedrom.9xz
endif
endif

main.o: main.c sim.h common.h misc.h kbdemu.h no_calc_detect.h
	$(CC) $(CALC_OS) -c main.c $(CFLAGS)

misc.o: misc.c sim.h common.h parser.h ttunpack.h misc.h
	$(CC) $(CALC_OS) -c misc.c $(CFLAGS)

common.o: common.c sim.h common.h
	$(CC) $(CALC_OS) -c common.c $(CFLAGS)
		
parser.o: parser.c sim.h common.h remapdata.h parser.h
	$(CC) $(CALC_OS) -c parser.c $(CFLAGS)
	
kbdemu.o: kbdemu.c sim.h common.h kbdemu.h
	$(CC) $(CALC_OS) -c kbdemu.c $(CFLAGS)
	
kbdasm.o: kbdasm.asm
	$(CC) -c $(ASMFLAGS) kbdasm.asm

no_calc_detect.o: no_calc_detect.asm
	$(CC) -c $(ASMFLAGS) no_calc_detect.asm


89: clean
	echo "# Do not edit this file by hand ! Use make <89/92p>" >target
	echo "CALC = -DUSE_TI89" >>target

92p: clean
	echo "# Do not edit this file by hand ! Use make <89/92p>" >target
	echo "CALC = -DUSE_TI92PLUS -DUSE_V200" >>target

pedrom: clean
	echo "# Do not edit this file by hand ! Use make <pedrom/ams>" > OS
	echo "OS = -DUSE_PEDROM" >> OS

ams: clean
	echo "# Do not edit this file by hand ! Use make <pedrom/ams>" > OS
	echo "OS = " >> OS

clean:
	rm -f *.o *.s
