Compile stunnel 4.10 using VC7(aka Visual Studio 2003)

Stunnel 4.10 does not compile with Visual Studio 7. After spending the past few days to get it to compile, I thought someone might find this useful. There is a change to the common.h that you need to hack. Basically, you need to include <winsock2.h> and <ws2tcpip.h> before <windows.h> to make it compile without any warning. The content of the make file(stunnel.mak) is below: !IF "$(CFG)" == "" CFG=stunnel - Release !MESSAGE No configuration specified. Defaulting to "stunnel - Release" !ENDIF !IF "$(CFG)" != "stunnel - Release" !MESSAGE Invalid configuration "$(CFG)" specified. !MESSAGE You can specify a configuration when running NMAKE !MESSAGE by defining the macro CFG on the command line. For example: !MESSAGE !MESSAGE NMAKE /f "stunnel.mak" CFG="stunnel - Release" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "stunnel Release" (based on "Win32 (x86) Console Application") !MESSAGE !ERROR An invalid configuration is specified. !ENDIF !IF "$(OS)" == "Windows_NT" NULL= !ELSE NULL=nul !ENDIF CPP=cl.exe RSC=rc.exe !IF "$(CFG)" == "stunnel - Release" OPENSSL=c:\openssl-0.9.7g !MESSAGE === OpenSSL is configured to be at $(OPENSSL) === OUTDIR=.\Release INTDIR=.\Release # Begin Custom Macros OutDir=.\Release # End Custom Macros ALL : "$(OUTDIR)\stunnel.exe" CLEAN : -@erase "$(INTDIR)\client.obj" -@erase "$(INTDIR)\gui.obj" -@erase "$(INTDIR)\log.obj" -@erase "$(INTDIR)\network.obj" -@erase "$(INTDIR)\options.obj" -@erase "$(INTDIR)\protocol.obj" -@erase "$(INTDIR)\resources.res" -@erase "$(INTDIR)\resolver.obj" -@erase "$(INTDIR)\ssl.obj" -@erase "$(INTDIR)\sthreads.obj" -@erase "$(INTDIR)\stunnel.obj" -@erase "$(INTDIR)\vc60.idb" -@erase "$(OUTDIR)\stunnel.exe" "$(OUTDIR)" : if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" CPP_PROJ=/nologo /MT /W3 /G5 /O2 /I "$(OPENSSL)\inc32" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "USE_WIN32" /D "HAVE_OPENSSL" /D "HAVE_GETADDRINFO" /D "HAVE_GETNAMEINFO" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c RSC_PROJ=/l 0x409 /fo"$(INTDIR)\resources.res" /d "NDEBUG" .c{$(INTDIR)}.obj:: $(CPP) @<< $(CPP_PROJ) $< << .cpp{$(INTDIR)}.obj:: $(CPP) @<< $(CPP_PROJ) $< << .cxx{$(INTDIR)}.obj:: $(CPP) @<< $(CPP_PROJ) $< << .c{$(INTDIR)}.sbr:: $(CPP) @<< $(CPP_PROJ) $< << .cpp{$(INTDIR)}.sbr:: $(CPP) @<< $(CPP_PROJ) $< << .cxx{$(INTDIR)}.sbr:: $(CPP) @<< $(CPP_PROJ) $< << BSC32=bscmake.exe BSC32_FLAGS=/nologo /o"$(OUTDIR)\stunnel.bsc" BSC32_SBRS= \ LINK32=link.exe LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib $(OPENSSL)\out32dll\ssleay32.lib $(OPENSSL)\out32dll\libeay32.lib /nologo /subsystem:windows /incremental:no /pdb:"$(OUTDIR)\stunnel.pdb" /machine:I386 /out:"$(OUTDIR)\stunnel.exe" LINK32_OBJS= \ "$(INTDIR)\stunnel.obj" \ "$(INTDIR)\client.obj" \ "$(INTDIR)\gui.obj" \ "$(INTDIR)\log.obj" \ "$(INTDIR)\network.obj" \ "$(INTDIR)\options.obj" \ "$(INTDIR)\protocol.obj" \ "$(INTDIR)\resources.res" \ "$(INTDIR)\resolver.obj" \ "$(INTDIR)\ssl.obj" \ "$(INTDIR)\sthreads.obj" "$(OUTDIR)\stunnel.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) $(LINK32) @<< $(LINK32_FLAGS) $(LINK32_OBJS) << !ENDIF !IF "$(CFG)" == "stunnel - Release" || "$(CFG)" == "stunnel - Debug" SOURCE=.\client.c "$(INTDIR)\client.obj" : $(SOURCE) "$(INTDIR)" SOURCE=.\gui.c "$(INTDIR)\gui.obj" : $(SOURCE) "$(INTDIR)" SOURCE=.\log.c "$(INTDIR)\log.obj" : $(SOURCE) "$(INTDIR)" SOURCE=.\network.c "$(INTDIR)\network.obj" : $(SOURCE) "$(INTDIR)" SOURCE=.\options.c "$(INTDIR)\options.obj" : $(SOURCE) "$(INTDIR)" SOURCE=.\protocol.c "$(INTDIR)\protocol.obj" : $(SOURCE) "$(INTDIR)" SOURCE=.\resources.rc "$(INTDIR)\resources.res" : $(SOURCE) "$(INTDIR)" $(RSC) $(RSC_PROJ) $(SOURCE) SOURCE=.\resolver.c "$(INTDIR)\resolver.obj" : $(SOURCE) "$(INTDIR)" SOURCE=.\ssl.c "$(INTDIR)\ssl.obj" : $(SOURCE) "$(INTDIR)" SOURCE=.\sthreads.c "$(INTDIR)\sthreads.obj" : $(SOURCE) "$(INTDIR)" SOURCE=.\stunnel.c "$(INTDIR)\stunnel.obj" : $(SOURCE) "$(INTDIR)" !ENDIF
participants (1)
-
Han Jun Li