# This makefile builds the user-mode component of OpenVPN for Windows in the # Visual Studio 2008 environment. Note that this file is basis for the real # makefile (..\msvc.mak) but unusable as is. The real makefile is automatically # generated during the build process by the Python build scripts. # # A few details are in order: # # - Everything between @<< and << is inserted into a s.c. "in-line file". This # file drives the linker (link.exe). # - HEADERS_OBJS is expanded to all all header and source files listed in # ..\Makefile.am # - OPENSSL_DIR and LZO_DIR are dynamically created from settings.in OPENSSL = @OPENSSL_DIR@ OPENSSL_DYNAMIC = libeay32.lib ssleay32.lib LZO = @LZO_DIR@ 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 -DWIN32 -DWIN32_LEAN_AND_MEAN -D_CONSOLE -D_MBCS -D_CRT_SECURE_NO_DEPRECATE $(INCLUDE_DIRS) /FD /c LINK32=link.exe !ifdef PRODUCT_OPENVPN_DEBUG # debug: CPP_PROJ=$(CPP_ARG_COMMON) /MD /Z7 LINK32_FLAGS=/nologo /subsystem:console /incremental:no /opt:ref /opt:icf /debug !else # release: CPP_PROJ=$(CPP_ARG_COMMON) /O2 /MD -DNDEBUG LINK32_FLAGS=/nologo /subsystem:console /incremental:no !endif # HEADERS and OBJS definitions, automatically generated from ../Makefile.am @HEADERS_OBJS@ openvpn : $(OBJS) $(LINK32) @<< $(LINK32_FLAGS) "/out:$(EXE)" $(LIB_DIRS) $(LIBS) $(OBJS) << clean : del /Q $(OBJS) $(EXE) *.idb *.pdb .c.obj:: $(CPP) @<< $(CPP_PROJ) $< <<