# This makefile builds the user-mode component
# of OpenVPN for Windows in the Visual Studio 2008 environment.

# To build:
#    python msvc\config.py
#    nmake /f msvc\msvc.mak

# Each of the OPENSSL and LZO dirs should have 'lib' and 'include'
# directories under them.

OPENSSL = \src\openssl
OPENSSL_DYNAMIC = libeay32.lib ssleay32.lib

LZO = \src\lzo
LZO_DYNAMIC = lzo2.lib

INCLUDE_DIRS = -I$(OPENSSL)/include -I$(LZO)/include

LIBS = $(OPENSSL_DYNAMIC) $(LZO_DYNAMIC) ws2_32.lib crypt32.lib iphlpapi.lib winmm.lib user32.lib gdi32.lib advapi32.lib wininet.lib

LIB_DIRS = -LIBPATH:$(OPENSSL)\lib -LIBPATH:$(LZO)\lib

EXE = openvpn.exe

CPP=cl.exe
CPP_ARG_COMMON=/nologo /W3 /O2 -DWIN32 -DWIN32_LEAN_AND_MEAN -D_CONSOLE -D_MBCS -D_CRT_SECURE_NO_DEPRECATE $(INCLUDE_DIRS) /FD /c
# release:
CPP_PROJ=$(CPP_ARG_COMMON) /MD -DNDEBUG
# debug:
#CPP_PROJ=$(CPP_ARG_COMMON) /MDd /Zi /Od -D_DEBUG

LINK32=link.exe
# release:
LINK32_FLAGS=/nologo /subsystem:console /incremental:no /out:"$(EXE)"
# debug:
#LINK32_FLAGS=/nologo /subsystem:console /incremental:no /debug /out:"$(EXE)"

# HEADERS and OBJS definitions, automatically generated
!INCLUDE head_obj.mak

openvpn : $(OBJS)
	$(LINK32) @<<
	$(LINK32_FLAGS) $(LIB_DIRS) $(LIBS) $(OBJS)
<<

clean :
	del /Q $(OBJS) $(EXE) *.idb *.pdb

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