TARGET = iem_spec2

all: ..\$(TARGET).dll

VIS_CPP_COMP = cl
VIS_CPP_LINK = link
VIS_CPP_PATH = "$(PROGRAMFILES)\Microsoft Visual Studio 11.0\VC"
VIS_SDK_PATH = "$(PROGRAMFILES)\Windows Kits\8.1"
PD_INST_PATH = "$(PROGRAMFILES)\pd-0.48-1"
PD_WIN_INCLUDE_PATH = /I. /I$(PD_INST_PATH)\src /I$(VIS_CPP_PATH)\include /I..\include
PD_WIN_C_FLAGS = /nologo /W3 /WX /DMSW /DNT /DPD /DWIN32 /DWINDOWS /Ox -D_CRT_SECURE_NO_WARNINGS
PD_WIN_L_FLAGS = /nologo

PD_WIN_LIB = /NODEFAULTLIB:libcmt /NODEFAULTLIB:oldnames /NODEFAULTLIB:kernel32 \
	$(VIS_CPP_PATH)\lib\libcmt.lib \
	$(VIS_CPP_PATH)\lib\oldnames.lib \
	$(VIS_SDK_PATH)\Lib\winv6.3\um\x86\kernel32.lib \
	$(PD_INST_PATH)\bin\pd.lib

SRC =	spec2_1p1z_freq~.c \
	spec2_1p1z_time~.c \
	spec2_abs~.c \
	spec2_add_scalar~.c \
	spec2_add~.c \
	spec2_block_delay~.c \
	spec2_clip_max~.c \
	spec2_clip_min~.c \
	spec2_dbtopow~.c \
	spec2_dbtorms~.c \
	spec2_matrix_bundle_stat~.c \
	spec2_mul_scalar~.c \
	spec2_mul~.c \
  	spec2_powtodb~.c \
	spec2_rmstodb~.c \
	spec2_shift~.c \
	spec2_sqrt~.c \
	spec2_stretch~.c \
	spec2_sub~.c \
	spec2_sum~.c \
	spec2_tab_conv~.c \
	spec2_tabreceive_enable~.c \
	spec2_tabreceive~.c \
	$(TARGET).c


OBJ = $(SRC:.c=.obj)

.c.obj:
	$(VIS_CPP_COMP) $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c

..\$(TARGET).dll: $(OBJ)
	$(VIS_CPP_LINK) $(PD_WIN_L_FLAGS) /dll /export:$(TARGET)_setup \
	/out:..\$(TARGET).dll $(OBJ) $(PD_WIN_LIB)

clean:
	del *.obj
