CC=cl
LINK=link

DLLNAME=entropy
SRC=.
CFLAGS=/nologo /MT /W3 /O2 /I$(SRC) /D "WIN32" /D "NDEBUG" /D "_WINDOWS"  /c 
LF=/nologo /subsystem:windows /dll /machine:I386 /def:$(SRC)\$(DLLNAME).def 

OBJDIR=$(SRC)\obj
BINDIR=$(SRC)\bin
OBJS=$(OBJDIR)\md5_internal.obj $(OBJDIR)\dll_loader.obj $(OBJDIR)\tool_help_loader.obj $(OBJDIR)\netapi_loader.obj $(OBJDIR)\mem_writer.obj $(OBJDIR)\util.obj $(OBJDIR)\w32_fast.obj $(OBJDIR)\wnt_slow.obj $(OBJDIR)\w32_seeder.obj $(OBJDIR)\w95_slow.obj $(OBJDIR)\win32_entropy.obj
LIBS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib

LFLAGS=$(LF) /out:$(BINDIR)\$(DLLNAME).dll /implib:$(BINDIR)\$(DLLNAME).lib 
IMPLIB=$(BINDIR)\$(DLLNAME).lib
DLL=$(BINDIR)\$(DLLNAME).dll

all: dll tester

dll: $(DLL)

tester: $(BINDIR)\tester.exe

$(DLL): $(OBJS)
	$(LINK) $(LFLAGS) $(LIBS) $(OBJS)	

clean:
	del $(BINDIR)\*.exe
	del $(BINDIR)\*.dll
	del $(BINDIR)\*.lib
	del $(BINDIR)\*.exp
	del $(OBJDIR)\*.obj

$(BINDIR)\tester.exe: $(IMPLIB) $(SRC)\tester.c
	$(CC) /W3 $(SRC)\tester.c /c /I$(SRC) /Fo$(OBJDIR)\tester.obj
	$(LINK) $(OBJDIR)\tester.obj $(IMPLIB) /OUT:$(BINDIR)\tester.exe kernel32.lib

$(OBJDIR)\md5_internal.obj: $(SRC)\md5_internal.cpp $(SRC)\md5_internal.h
	$(CC) $(CFLAGS) /Fo$(OBJDIR)\md5_internal.obj $(SRC)\md5_internal.cpp 	

$(OBJDIR)\mem_writer.obj: $(SRC)\mem_writer.h $(SRC)\mem_writer.cpp
	$(CC) $(CFLAGS) /Fo$(OBJDIR)\mem_writer.obj $(SRC)\mem_writer.cpp 

$(OBJDIR)\util.obj: $(SRC)\util.h $(SRC)\util.cpp
	$(CC) $(CFLAGS) /Fo$(OBJDIR)\util.obj $(SRC)\util.cpp 

$(OBJDIR)\w32_fast.obj: $(SRC)\w32_fast.h $(SRC)\w32_fast.cpp
	$(CC) $(CFLAGS) /Fo$(OBJDIR)\w32_fast.obj $(SRC)\w32_fast.cpp 

$(OBJDIR)\w32_seeder.obj: $(SRC)\w32_seeder.h $(SRC)\w32_seeder.cpp
	$(CC) $(CFLAGS) /Fo$(OBJDIR)\w32_seeder.obj $(SRC)\w32_seeder.cpp 

$(OBJDIR)\win32_entropy.obj: $(SRC)\win32_entropy.h $(SRC)\win32_entropy.cpp
	$(CC) $(CFLAGS) /Fo$(OBJDIR)\win32_entropy.obj $(SRC)\win32_entropy.cpp 

$(OBJDIR)\w95_slow.obj: $(SRC)\w95_slow.h $(SRC)\w95_slow.cpp
	$(CC) $(CFLAGS) /Fo$(OBJDIR)\w95_slow.obj $(SRC)\w95_slow.cpp

$(OBJDIR)\wnt_slow.obj: $(SRC)\wnt_slow.h $(SRC)\wnt_slow.cpp
	$(CC) $(CFLAGS) /Fo$(OBJDIR)\wnt_slow.obj $(SRC)\wnt_slow.cpp
	
$(OBJDIR)\tool_help_loader.obj: $(SRC)\tool_help_loader.h  $(SRC)\tool_help_loader.cpp
	$(CC) $(CFLAGS) /Fo$(OBJDIR)\tool_help_loader.obj $(SRC)\tool_help_loader.cpp

$(OBJDIR)\dll_loader.obj: $(SRC)\dll_loader.h  $(SRC)\dll_loader.cpp
	$(CC) $(CFLAGS) /Fo$(OBJDIR)\dll_loader.obj $(SRC)\dll_loader.cpp

$(OBJDIR)\netapi_loader.obj: $(SRC)\netapi_loader.h  $(SRC)\netapi_loader.cpp
	$(CC) $(CFLAGS) /Fo$(OBJDIR)\netapi_loader.obj $(SRC)\netapi_loader.cpp


	

	
