!IF "$(CFG)" == ""
CFG=Release
!MESSAGE No configuration specified. Defaulting to $(CFG).
!ENDIF 

PLUGINS=saslANONYMOUS.dll \
	saslPLAIN.dll \
	saslCRAMMD5.dll \
	saslDIGESTMD5.dll \
	saslLOGIN.dll

compat_sources = getaddrinfo.c
compat_objs = getaddrinfo.obj

common_sources = plugin_common.c plugin_common.h
common_objs = plugin_common.obj $(compat_objs)

saslANONYMOUS_sources = anonymous.c anonymous_init.c $(common_sources)
saslANONYMOUS_objs = anonymous.obj anonymous_init.obj $(common_objs)
saslANONYMOUS_out = saslANONYMOUS.dll saslANONYMOUS.exp saslANONYMOUS.lib

saslPLAIN_sources = plain.c plain_init.c $(common_sources)
saslPLAIN_objs = plain.obj plain_init.obj $(common_objs)
saslPLAIN_out = saslPLAIN.dll saslPLAIN.exp saslPLAIN.lib

saslCRAMMD5_sources = cram.c crammd5_init.c $(common_sources)
saslCRAMMD5_objs = cram.obj crammd5_init.obj $(common_objs)
saslCRAMMD5_out = saslCRAMMD5.dll saslCRAMMD5.exp saslCRAMMD5.lib

saslDIGESTMD5_sources = digestmd5.c digestmd5_init.c $(common_sources)
saslDIGESTMD5_objs = digestmd5.obj digestmd5_init.obj $(common_objs)
saslDIGESTMD5_out = saslDIGESTMD5.dll saslDIGESTMD5.exp saslDIGESTMD5.lib

saslLOGIN_sources = login.c login_init.c $(common_sources)
saslLOGIN_objs = login.obj login_init.obj $(common_objs)
saslLOGIN_out = saslLOGIN.dll saslLOGIN.exp saslLOGIN.lib

CPPFLAGS = /I "..\win32\include" /I "." /I "..\include" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL"

all_objs = $(saslANONYMOUS_objs) $(saslPLAIN_objs) $(saslCRAMMD5_objs) $(saslDIGESTMD5_objs) $(saslLOGIN_objs)
all_out = $(saslANONYMOUS_out) $(saslPLAIN_out) $(saslCRAMMD5_out) $(saslDIGESTMD5_out) $(saslLOGIN_out)

!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE 
NULL=nul
!ENDIF 

!IF  "$(CFG)" == "Release"

CPP=cl.exe
CPP_PROJ=/nologo /MT /W3 /GX /O2  /D "NDEBUG" $(CPPFLAGS) /FD /c 

LINK32=link.exe
LINK32_FLAGS=ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:no /machine:I386

!ELSEIF  "$(CFG)" == "Debug"

CPP=cl.exe
CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "_DEBUG" $(CPPFLAGS) /FD /GZ /c 

LINK32=link.exe
LINK32_FLAGS=ws2_32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /incremental:yes /pdb:"$(OUTDIR)\saslANONYMOUS.pdb" /debug /machine:I386 /out:"$(OUTDIR)\saslANONYMOUS.dll" /implib:"$(OUTDIR)\saslANONYMOUS.lib" /pdbtype:sept 

!ENDIF

ALL : $(PLUGINS)

getaddrinfo.c: ..\lib\getaddrinfo.c
	copy ..\lib\getaddrinfo.c .

saslANONYMOUS.dll: $(saslANONYMOUS_objs)
	$(LINK32) @<< $(LINK32_FLAGS) /out:"saslANONYMOUS.dll" /implib:"saslANONYMOUS.lib" $(saslANONYMOUS_objs)
<<

saslPLAIN.dll: $(saslPLAIN_objs)
	$(LINK32) @<< $(LINK32_FLAGS) /out:"saslPLAIN.dll" /implib:"saslPLAIN.lib" $(saslPLAIN_objs)
<<

saslCRAMMD5.dll: $(saslCRAMMD5_objs)
	$(LINK32) @<< $(LINK32_FLAGS) /out:"saslCRAMMD5.dll" /implib:"saslCRAMMD5.lib" $(saslCRAMMD5_objs)
<<

saslDIGESTMD5.dll: $(saslDIGESTMD5_objs)
	$(LINK32) @<< $(LINK32_FLAGS) /out:"saslDIGESTMD5.dll" /implib:"saslDIGESTMD5.lib" $(saslDIGESTMD5_objs)
<<

saslLOGIN.dll: $(saslLOGIN_objs)
	$(LINK32) @<< $(LINK32_FLAGS) /out:"saslLOGIN.dll" /implib:"saslLOGIN.lib" $(saslLOGIN_objs)
<<

CLEAN :
	-@erase $(all_objs)
	-@erase "vc60.idb"
	-@erase "vc60.pdb"
	-@erase $(all_out)

.c.obj::
   $(CPP) @<<
   $(CPP_PROJ) $< 
<<

.cpp.obj::
   $(CPP) @<<
   $(CPP_PROJ) $< 
<<

.cxx.obj::
   $(CPP) @<<
   $(CPP_PROJ) $< 
<<
