# This makefile builds all executables required for the eCall testlab.
# If you use Microsoft NMAKE, ensure your environment is properly configured
# (via vcvars32.bat or similar).

dir_bin = ..\bin

CFLAGS   = /nologo /W3 /GS- /D_CRT_SECURE_NO_DEPRECATE
LFLAGS   = /nologo /OUT:"$(dir_bin)\$@"
LIBFLAGS = /nologo /OUT:"$(dir_bin)\$@"

targets = \
	testsim_demo.exe \
	testsim_fileio.exe \
	testlab.exe \
	modem_demo.exe \
	modem_fileio.exe \
	modem_sim.lib \
	modem_sock.lib

win32_lib = WS2_32.LIB

objs_sim    = error.obj option.obj ipc_sim.obj
objs_sock   = error.obj option.obj ipc_sock.obj
objs_modem  = ivs.obj psap.obj modem.obj
objs_lab    = audio.obj channel.obj control.obj g711.obj process.obj
objs_demo   = $(objs_lab) ivs.obj psap.obj modem_demo.obj
objs_fileio = $(objs_lab) ivs.obj psap.obj modem_fileio.obj

.SILENT:
default: $(targets)

clean:
	del *.obj 2>NUL
	cd "$(dir_bin)" && del $(targets) 2>NUL

testsim_demo.exe: $(objs_sim) $(objs_demo) testlab_sim.obj
	echo $@
	link $(LFLAGS) $** $(win32_lib)

testsim_fileio.exe: $(objs_sim) $(objs_fileio) testlab_sim.obj
	echo $@
	link $(LFLAGS) $** $(win32_lib)

testlab.exe: $(objs_sock) $(objs_lab) testlab_sock.obj
	echo $@
	link $(LFLAGS) $** $(win32_lib)

modem_demo.exe: $(objs_sock) $(objs_modem) modem_demo.obj
	echo $@
	link $(LFLAGS) $** $(win32_lib)

modem_fileio.exe: $(objs_sock) $(objs_modem) modem_fileio.obj
	echo $@
	link $(LFLAGS) $** $(win32_lib)

modem_sim.lib: $(objs_sim) $(objs_modem)
	echo $@
	lib $(LIBFLAGS) $**

modem_sock.lib: $(objs_sock) $(objs_modem)
	echo $@
	lib $(LIBFLAGS) $**

.c.obj:
	$(CC) $(CFLAGS) /c $< /Fo$@
