#
# Memotech Emulator
#
# Visual Studio Build Tools 2022
# Windows Software Development Kit - Windows 10.0
#
# Can also use VS2013
#
# Executable can run on XP, on old CPUs
#

PORTAUDIO =	c:\portaudio-v19.7.0
PORTAUDIO_INC =	$(PORTAUDIO)\include
PORTAUDIO_OUT =	$(PORTAUDIO)\build\cmake-vs2022-32\Release
#PORTAUDIO_OUT =	$(PORTAUDIO)\build\cmake-vs2022-64\Release
PORTAUDIO_LIB =	portaudio_x86
#PORTAUDIO_LIB =	portaudio_x64

TH =		..\..\th
DIRT =		..\..\dirt

.SUFFIXES:	.obj .c

#COPT =		/MT /Oit /Gs
#LOPT =
COPT =		/MT /Zi
LOPT =		/DEBUG

CFLAGS =	/c /D_CRT_SECURE_NO_DEPRECATE /I$(PORTAUDIO_INC) /I$(TH) /I$(DIRT) /DWIN32 /DBEMEMU /DLSB_FIRST /DDEBUG /DNO_DART /W3 /WX /MT /arch:IA32 $(COPT) /nologo
LFLAGS =	/NOLOGO /STACK:0x30000 /INCREMENTAL:NO /SUBSYSTEM:CONSOLE,5.01 $(LOPT)

.c.obj:
		cl $(CFLAGS) $*.c

#

memu.exe:	Z80.obj diag.obj common.obj win.obj roms.obj mem.obj vid.obj kbd.obj joy.obj snd.obj ctc.obj monprom.obj mon.obj sdxfdc.obj sid.obj printer.obj spec.obj cpm.obj dis.obj ui.obj memu.obj $(PORTAUDIO_OUT)\$(PORTAUDIO_LIB).lib $(TH)\th.lib $(DIRT)\dirt.lib
		link $(LFLAGS) $** setargv.obj user32.lib gdi32.lib winmm.lib dinput8.lib /OUT:$@
		@copy $(PORTAUDIO_OUT)\$(PORTAUDIO_LIB).dll .

Z80.obj:	Z80.c Z80.h Tables.h CodesCB.h CodesXCB.h CodesED.h CodesXX.h Codes.h

diag.obj:	diag.c types.h diag.h

common.obj:	common.c types.h diag.h common.h mem.h vid.h kbd.h joy.h snd.h mon.h sdxfdc.h sid.h printer.h spec.h ui.h

win.obj:	win.c types.h common.h win.h

roms.obj:	roms.c types.h roms.h

mem.obj:	mem.c types.h common.h diag.h roms.h mem.h

vid.obj:	vid.c types.h common.h diag.h mem.h vid.h kbd.h mon.h

kbd.obj:	kbd.c types.h common.h diag.h win.h kbd.h

joy.obj:	joy.c types.h common.h diag.h kbd.h joy.h

snd.obj:	snd.c types.h common.h diag.h snd.h

ctc.obj:	ctc.c types.h common.h diag.h ctc.h

monprom.obj:	monprom.c types.h monprom.h

mon.obj:	mon.c types.h common.h diag.h win.h kbd.h monprom.h mon.h $(TH)/th.h

sdxfdc.obj:	sdxfdc.c types.h diag.h sdxfdc.h

sid.obj:	sid.c types.h diag.h sid.h

printer.obj:	printer.c types.h common.h diag.h printer.h

spec.obj:	spec.c types.h diag.h spec.h

cpm.obj:	cpm.c Z80.h types.h common.h diag.h mem.h mon.h printer.h $(DIRT)/dirt.h

dis.obj:	dis.c types.h mem.h dis.h

ui.obj:		ui.c types.h common.h win.h mem.h vid.h monprom.h dis.h ui.h

memu.obj:	memu.c Z80.h types.h common.h diag.h win.h roms.h mem.h mon.h kbd.h joy.h snd.h ctc.h sdxfdc.h sid.h printer.h spec.h cpm.h dis.h ui.h memu.h

#

clean:
		-del *.obj 2> nul
