# system wide location for machines configuration files
CONF=/usr/local/share/imsaisim/conf

# system wide location for disk images
DISKS=/usr/local/share/imsaisim/disks

# default boot ROM
ROM=/usr/local/share/imsaisim/bootrom.hex

CC = gcc

CFLAGS = -O3 -m32 -c -Wall -DCONFDIR=\"${CONF}\" -DDISKSDIR=\"${DISKS}\" -DBOOTROM=\"${ROM}\"

LFLAGS = -m32 -L../../frontpanel -L/usr/local/lib -lfrontpanel -ljpeg \
	-lGLU -lXext -lXmu -lXt -lX11 -lm -lpthread -lrt

OBJ =   sim0.o \
	sim1.o \
	sim1a.o \
	sim2.o \
	sim3.o \
	sim4.o \
	sim5.o \
	sim6.o \
	sim7.o \
	simctl.o \
	simint.o \
	memory.o \
	iosim.o \
	simfun.o \
	simglb.o \
	unix_terminal.o \
	config.o \
	imsai-sio2.o \
	imsai-fif.o  \
	cromemco-dazzler.o \
	imsai-vio.o

FP =	../../frontpanel/libfrontpanel.so

all:  ../imsaisim
	@echo
	@echo "Done."
	@echo

../imsaisim : $(OBJ) $(FP)
	$(CC) $(OBJ) $(LFLAGS) -o ../imsaisim

sim0.c:
	./lnsrc

sim0.o : sim0.c sim.h simglb.h config.h memory.h
	$(CC) $(CFLAGS) sim0.c

sim1.o : sim1.c sim.h simglb.h config.h memory.h
	$(CC) $(CFLAGS) sim1.c

sim1a.o : sim1a.c sim.h simglb.h config.h memory.h
	$(CC) $(CFLAGS) sim1a.c

sim2.o : sim2.c sim.h simglb.h config.h memory.h
	$(CC) $(CFLAGS) sim2.c

sim3.o : sim3.c sim.h simglb.h config.h memory.h
	$(CC) $(CFLAGS) sim3.c

sim4.o : sim4.c sim.h simglb.h config.h memory.h
	$(CC) $(CFLAGS) sim4.c

sim5.o : sim5.c sim.h simglb.h config.h memory.h
	$(CC) $(CFLAGS) sim5.c

sim6.o : sim6.c sim.h simglb.h config.h memory.h
	$(CC) $(CFLAGS) sim6.c

sim7.o : sim7.c sim.h simglb.h config.h memory.h
	$(CC) $(CFLAGS) sim7.c

simctl.o : simctl.c sim.h simglb.h config.h memory.h
	$(CC) $(CFLAGS) simctl.c

simint.o : simint.c sim.h simglb.h
	$(CC) $(CFLAGS) simint.c

memory.o : memory.c sim.h simglb.h config.h memory.h
	$(CC) $(CFLAGS) memory.c

iosim.o : iosim.c sim.h simglb.h
	$(CC) $(CFLAGS) iosim.c

simfun.o : simfun.c sim.h
	$(CC) $(CFLAGS) simfun.c

simglb.o : simglb.c sim.h
	$(CC) $(CFLAGS) simglb.c

unix_terminal.o : ../../iodevices/unix_terminal.c
	$(CC) $(CFLAGS) ../../iodevices/unix_terminal.c

config.o : config.c sim.h simglb.h
	$(CC) $(CFLAGS) config.c

imsai-sio2.o: ../../iodevices/imsai-sio2.c
	$(CC) $(CFLAGS) -I./ ../../iodevices/imsai-sio2.c

imsai-fif.o: ../../iodevices/imsai-fif.c
	$(CC) $(CFLAGS) -I./ ../../iodevices/imsai-fif.c

cromemco-dazzler.o: ../../iodevices/cromemco-dazzler.c
	$(CC) $(CFLAGS) -I./ ../../iodevices/cromemco-dazzler.c

imsai-vio.o : ../../iodevices/imsai-vio.c
	$(CC) $(CFLAGS) -I./ ../../iodevices/imsai-vio.c

clean:
	rm -f *.o
	./ulnsrc

allclean:
	gmake -f Makefile.solaris clean
	rm -f ../imsaisim
	rm -f ../disks/drive*.dsk
	rm -f ../printer.txt
