CC = gcc
LD = gcc
CFLAGS = -g -O3 -c -DHAVE_SIGACTION -DDEBUG
#CFLAGS = -g -O3 -c
#CFLAGS = -g -pg -O3 -c
P10FLAGS = -DOPT_XADR #-DIDLE
LDFLAGS = -g
INCLUDES = -I.
LIBS = 

TS10_OBJS = \
	emu/commands.o \
	emu/debug.o \
	emu/help.o \
	emu/main.o \
	emu/misc.o \
	emu/panel.o \
	emu/socket.o \
	emu/system.o \
	emu/timer.o \
	emu/vdisk.o \
	emu/vtape.o

IO_OBJS = \
	dev/dp/dp_main.o \
	dev/bdv.o \
	dev/dhu.o \
	dev/dl.o \
	dev/dz.o \
	dev/kwl.o \
	dev/lp.o \
	dev/lp20.o \
	dev/mrv.o \
	dev/qna.o \
	dev/rh.o \
	dev/rl.o \
	dev/rq.o \
	dev/tcu.o \
	dev/ts.o \
	dev/uba.o \
	dev/mba/mba.o \
	dev/mba/rp.o \
	dev/mba/tu.o

PDP10_OBJS = \
	pdp10/dev/dte20.o \
	pdp10/dev/kxio.o \
	pdp10/dev/rh20.o \
	pdp10/asm.o \
	pdp10/commands.o \
	pdp10/cpu_extend.o \
	pdp10/cpu_float.o \
	pdp10/cpu_integer.o \
	pdp10/cpu_main.o \
	pdp10/disasm.o \
	pdp10/instruction.o \
	pdp10/kl10_apr.o \
	pdp10/kl10_cca.o \
	pdp10/kl10_main.o \
	pdp10/kl10_mtr.o \
	pdp10/kl10_pi.o \
	pdp10/kl10_pag.o \
	pdp10/kl10_sys.o \
	pdp10/ks10_apr.o \
	pdp10/ks10_fe.o \
	pdp10/ks10_io.o \
	pdp10/ks10_pag.o \
	pdp10/ks10_pi.o \
	pdp10/ks10_sys.o \
	pdp10/ks10_tim.o \
	pdp10/ks10_uba.o \
	pdp10/memory.o \
	pdp10/symbols.o \
	pdp10/system.o

PDP11_OBJS = \
	pdp11/commands.o \
	pdp11/cpu_eis.o \
	pdp11/cpu_main.o \
	pdp11/cpu2.o \
	pdp11/disasm.o \
	pdp11/inst.o \
	pdp11/kdf11_sys.o \
	pdp11/kdj11_sys.o \
	pdp11/memory.o \
	pdp11/system.o \
	pdp11/uqba.o

TI99_OBJS = \
	ti99/commands.o \
	ti99/cpu_main.o \
	ti99/cpu_inst.o \
	ti99/disasm.o \
	ti99/inst.o \
	ti99/system.o \
	ti99/ti994.o \
	ti99/ti994_cmds.o \
	ti99/tms9918.o

VAX_OBJS = \
	vax/commands.o \
	vax/cpu_branch.o \
	vax/cpu_compare.o \
	vax/cpu_convert.o \
	vax/cpu_field.o \
	vax/cpu_fpa.o \
	vax/cpu_integer.o \
	vax/cpu_intexc.o \
	vax/cpu_main.o \
	vax/cpu_misc.o \
	vax/cpu_mmu.o \
	vax/cpu_move.o \
	vax/cpu_queue.o \
	vax/cpu_rcnt.o \
	vax/cpu_stack.o \
	vax/cpu_string.o \
	vax/dev_cty.o \
	vax/disasm.o \
	vax/ka630_qba.o \
	vax/ka630_sys.o \
	vax/ka650_qba.o \
	vax/ka650_sys.o \
	vax/ka780_sys.o \
	vax/instruction.o \
	vax/memory.o \
	vax/system.o

ts10:
	cd emu; make CC="${CC}" LD="${LD}" CFLAGS="${CFLAGS}" all
	cd dev; make CC="${CC}" LD="${LD}" CFLAGS="${CFLAGS}" all
	cd pdp10; make CC="${CC}" LD="${LD}" CFLAGS="${CFLAGS} ${P10FLAGS}" all
	cd pdp11; make CC="${CC}" LD="${LD}" CFLAGS="${CFLAGS}" all
	cd ti99; make CC="${CC}" LD="${LD}" CFLAGS="${CFLAGS}" all
	cd vax; make CC="${CC}" LD="${LD}" CFLAGS="${CFLAGS}" all
	${CC} ${LDFLAGS} -o $@ ${TS10_OBJS} ${PDP10_OBJS} ${PDP11_OBJS} ${TI99_OBJS} ${VAX_OBJS} ${IO_OBJS} ${LIBS}

clean:
	cd emu; make clean
	cd dev; make clean
	cd pdp10; make clean
	cd pdp11; make clean
	cd ti99; make clean
	cd vax; make clean
	@rm -f ts10
