hi,

I updated the patch to add support for curl.exe (src/). In the
process, the following changes have done too:

- move all common definitions/macros in a common VC file (included in
src/ and lib/)

- remove duplicate .c/.o definition (will remove the .o/.c too later,
so no risk to forget to update one or the other)

- build out of the source folders, now the builds happen in
topdir/builds/curl-configname or lib-configname
  that allows one to build many config in a row

- nmake clean work with cfg or without (for curl, lib is coming)

Next step is to finish the cleanup and add one makefile at the top
directory, it will be then be possible to get all builds in one go.

On Fri, Dec 17, 2010 at 7:33 PM, Pierre Joye <[email protected]> wrote:
> hi Yang,
>
> On Fri, Dec 17, 2010 at 5:32 PM, Yang Tse <[email protected]> wrote:
>
>> only modifying lib/Makefile.vc6 is not good enough
>> for general use. If you wish to improve current VC6 Makefiles with
>> this, please provide a separate patch for this feature.
>
> Ah right, thanks, I only use libcurl, will update it accordingly.

Cheers,
-- 
Pierre

@pierrejoye | http://blog.thepimp.net | http://www.libgd.org
diff --git a/Makefile.inc.vc b/Makefile.inc.vc
new file mode 100644
index 0000000..c963705
--- /dev/null
+++ b/Makefile.inc.vc
@@ -0,0 +1,72 @@
+
+#
+# Stem for static libs and DLLs
+#
+!IFNDEF LIB_NAME
+LIB_NAME       = libcurl
+!IFNDEF LIB_NAME_DEBUG
+LIB_NAME_DEBUG = $(LIB_NAME)d
+!ENDIF
+!ENDIF
+
+!IFNDEF LIB_STATIC_POSTFIX
+LIB_STATIC_POSTFIX=_a
+!ENDIF
+
+LIB_NAME_STATIC=$(LIB_NAME)$(LIB_STATIC_POSTFIX).lib
+
+#
+# Stem for DLL import libs
+#
+!IFNDEF LIB_NAME
+LIB_NAME_IMP       = $(LIB_NAME)_imp.lib
+!IFNDEF LIB_NAME_DEBUG
+LIB_NAME_IMP_DEBUG = $(LIB_NAME_DEBUG)_imp.lib
+!ENDIF
+!ENDIF
+
+!IFDEF WITH_DEVEL
+!IFNDEF OPENSSL_PATH
+OPENSSL_PATH   = ../../openssl-0.9.8o
+!ENDIF
+
+!IFNDEF ZLIB_PATH
+ZLIB_PATH  = ../../zlib-1.2.5
+!ENDIF
+!ENDIF
+
+!IFNDEF MACHINE
+MACHINE  = X86
+!ENDIF
+
+# USE_WINDOWS_SSPI uses windows libraries to allow NTLM authentication
+# without an openssl installation and offers the ability to authenticate
+# using the "current logged in user". Since at least with MSVC6 the sspi.h
+# header is broken it is either required to install the Windows SDK,
+# or to fix sspi.h with adding this define at the beginning of sspi.h:
+# #define FreeCredentialHandle FreeCredentialsHandle
+#
+# If, for some reason the Windows SDK is installed but not installed
+# in the default location, you can specify WINDOWS_SDK_PATH.
+# It can be downloaded from:
+# http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
+
+# WINDOWS_SSPI = 1
+
+!IFDEF WINDOWS_SSPI
+!IFNDEF WINDOWS_SDK_PATH
+WINDOWS_SDK_PATH = "C:\Program Files\Microsoft SDK"
+!ENDIF
+!ENDIF
+
+#############################################################
+## Nothing more to do below this line!
+
+# Runtime library configuration
+RTLIB   = /MD
+RTLIBD  = /MDd
+
+!IF "$(RTLIBCFG)" == "static"
+RTLIB  = /MT
+RTLIBD = /MTd
+!ENDIF
diff --git a/lib/Makefile.vc6 b/lib/Makefile.vc6
index 2e18e14..942f05f 100644
--- a/lib/Makefile.vc6
+++ b/lib/Makefile.vc6
@@ -41,67 +41,50 @@
 #
 ##############################################################
 
-#
-# Stem for static libs and DLLs
-#
-LIB_NAME       = libcurl
-LIB_NAME_DEBUG = libcurld
+!include "../Makefile.inc.vc"
 
-#
-# Stem for DLL import libs
-#
-IMPLIB_NAME       = libcurl_imp
-IMPLIB_NAME_DEBUG = libcurld_imp
+#############################################################
+## Nothing more to do below this line!
+CCNODBG    = cl.exe /O2 /DNDEBUG
+CCDEBUG    = cl.exe /Od /Gm /Zi /D_DEBUG /GZ
+LFLAGS     = /nologo /machine:$(MACHINE)
+LNKDLL     = link.exe /DLL
+LNKLIB     = link.exe /lib
 
-!IFNDEF OPENSSL_PATH
-OPENSSL_PATH   = ../../openssl-0.9.8o
-!ENDIF
+CFLAGSLIB  = /DCURL_STATICLIB
+CFLAGS     = /I. /I../include /nologo /W3 /GX /DWIN32 /YX /FD /c 
/DBUILDING_LIBCURL
 
-!IFNDEF ZLIB_PATH
-ZLIB_PATH  = ../../zlib-1.2.5
-!ENDIF
+ZLIB_CFLAGS = /DHAVE_ZLIB_H /DHAVE_ZLIB /DHAVE_LIBZ
 
-!IFNDEF MACHINE
-MACHINE  = X86
-!ENDIF
+SSH2_CFLAGS   = /DHAVE_LIBSSH2 /DHAVE_LIBSSH2_H /DLIBSSH2_WIN32 
/DLIBSSH2_LIBRARY /DUSE_LIBSSH2
+SSLLIBS    = libeay32.lib ssleay32.lib
 
-# USE_WINDOWS_SSPI uses windows libraries to allow NTLM authentication
-# without an openssl installation and offers the ability to authenticate
-# using the "current logged in user". Since at least with MSVC6 the sspi.h
-# header is broken it is either required to install the Windows SDK,
-# or to fix sspi.h with adding this define at the beginning of sspi.h:
-# #define FreeCredentialHandle FreeCredentialsHandle
-#
-# If, for some reason the Windows SDK is installed but not installed
-# in the default location, you can specify WINDOWS_SDK_PATH.
-# It can be downloaded from:
-# http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
+WINLIBS    = ws2_32.lib wldap32.lib
 
-# WINDOWS_SSPI = 1
+!IFDEF WITH_DEVEL
+# we only need one lib/include path, ingore the LFLAG<libname>
+LFLAGS=$(LFLAGS) "/LIBPATH:$(WITH_DEVEL)\lib"
+CFLAGS=$(CFLAGS) /I "$(WITH_DEVEL)\include"
 
-!IFDEF WINDOWS_SSPI
-!IFNDEF WINDOWS_SDK_PATH
-WINDOWS_SDK_PATH = "C:\Program Files\Microsoft SDK"
-!ENDIF
-!ENDIF
+# curl uses non standard include path, w/o openssl prefix
+SSL_CFLAGS  = /DUSE_SSLEAY /I "$(WITH_DEVEL)\include\openssl"
 
-#############################################################
-## Nothing more to do below this line!
+ZLIBLIBSDLL= zlib.lib
+ZLIBLIBS   = zlib_a.lib
 
-CCNODBG    = cl.exe /O2 /DNDEBUG
-CCDEBUG    = cl.exe /Od /Gm /Zi /D_DEBUG /GZ
-CFLAGSSSL  = /DUSE_SSLEAY /I "$(OPENSSL_PATH)/inc32" /I 
"$(OPENSSL_PATH)/inc32/openssl"
-CFLAGSZLIB = /DHAVE_ZLIB_H /DHAVE_ZLIB /DHAVE_LIBZ /I "$(ZLIB_PATH)"
-CFLAGS     = /I. /I../include /nologo /W3 /GX /DWIN32 /YX /FD /c 
/DBUILDING_LIBCURL
-CFLAGSLIB  = /DCURL_STATICLIB
-LNKDLL     = link.exe /DLL
-LNKLIB     = link.exe /lib
-LFLAGS     = /nologo /machine:$(MACHINE)
-SSLLIBS    = libeay32.lib ssleay32.lib
+SSH2LIBSDLL = libssh2.lib
+SSH2LIBS    = libssh2_a.lib
+
+SSH2_CFLAGS= $(SSH2_CFLAGS) /I$(WITH_DEVEL)/include/libssh2
+
+!ELSE
+SSL_LFLAGS = "/LIBPATH:$(OPENSSL_PATH)\lib"
+SSL_CFLAGS  = /DUSE_SSLEAY /I "$(OPENSSL_PATH)/inc32" /I 
"$(OPENSSL_PATH)/inc32/openssl"
+ZLIB_LFLAGS = "/LIBPATH:$(ZLIB_PATH)"
+ZLIB_CFLAGS = $(ZLIB_CFLAGS) /I "$(ZLIB_PATH)"
 ZLIBLIBSDLL= zdll.lib
 ZLIBLIBS   = zlib.lib
-WINLIBS    = ws2_32.lib wldap32.lib
-CFLAGS     = $(CFLAGS)
+!ENDIF
 
 CFGSET     = FALSE
 
@@ -124,13 +107,14 @@ RTLIB  = /MT
 RTLIBD = /MTd
 !ENDIF
 
+DIROBJ = ..\builds\lib-$(CFG)-obj
+DIRDIST = ..\builds\lib-$(CFG)\
 
 ######################
 # release
 
 !IF "$(CFG)" == "release"
-TARGET = $(LIB_NAME).lib
-DIROBJ = $(CFG)
+TARGET = $(LIB_NAME_STATIC)
 LNK    = $(LNKLIB) /out:$(DIROBJ)\$(TARGET)
 CC     = $(CCNODBG) $(RTLIB) $(CFLAGSLIB)
 CFGSET = TRUE
@@ -140,11 +124,9 @@ CFGSET = TRUE
 # release-zlib
 
 !IF "$(CFG)" == "release-zlib"
-TARGET   = $(LIB_NAME).lib
-DIROBJ   = $(CFG)
-LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
-LNK      = $(LNKLIB) $(ZLIBLIBS) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)
-CC       = $(CCNODBG) $(RTLIB) $(CFLAGSZLIB) $(CFLAGSLIB)
+TARGET   = $(LIB_NAME_STATIC)
+LNK      = $(LNKLIB) $(ZLIBLIBS) $(ZLIB_LFLAGS) /out:$(DIROBJ)\$(TARGET)
+CC       = $(CCNODBG) $(RTLIB) $(ZLIB_CFLAGS) $(CFLAGSLIB)
 CFGSET   = TRUE
 !ENDIF
 
@@ -153,8 +135,7 @@ CFGSET   = TRUE
 
 !IF "$(CFG)" == "release-dll"
 TARGET = $(LIB_NAME).dll
-DIROBJ = $(CFG)
-LNK    = $(LNKDLL) $(WINLIBS) /out:$(DIROBJ)\$(TARGET) 
/IMPLIB:$(DIROBJ)\$(IMPLIB_NAME).lib
+LNK    = $(LNKDLL) $(WINLIBS) /out:$(DIROBJ)\$(TARGET) 
/IMPLIB:$(DIROBJ)\$(LIB_NAME_IMP).lib
 CC     = $(CCNODBG) $(RTLIB)
 CFGSET = TRUE
 RESOURCE = $(DIROBJ)\libcurl.res
@@ -164,11 +145,10 @@ RESOURCE = $(DIROBJ)\libcurl.res
 # release-ssl
 
 !IF "$(CFG)" == "release-ssl"
-TARGET   = $(LIB_NAME).lib
-DIROBJ   = $(CFG)
-LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32"
-LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET)
-CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSLIB)
+TARGET   = $(LIB_NAME_STATIC)
+SSL_LFLAGS = "/LIBPATH:$(OPENSSL_PATH)\out32"
+LNK      = $(LNKLIB) $(SSL_LFLAGS) /out:$(DIROBJ)\$(TARGET)
+CC       = $(CCNODBG) $(RTLIB) $(SSL_CFLAGS) $(CFLAGSLIB)
 CFGSET   = TRUE
 !ENDIF
 
@@ -176,11 +156,10 @@ CFGSET   = TRUE
 # release-ssl-dll
 
 !IF "$(CFG)" == "release-ssl-dll"
-TARGET   = $(LIB_NAME).lib
-DIROBJ   = $(CFG)
-LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"
-LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) 
/out:$(DIROBJ)\$(TARGET)
-CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSLIB)
+TARGET   = $(LIB_NAME_STATIC)
+SSL_LFLAGS = "/LIBPATH:$(OPENSSL_PATH)\out32dll"
+LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(SSL_LFLAGS) 
/out:$(DIROBJ)\$(TARGET)
+CC       = $(CCNODBG) $(RTLIB) $(SSL_CFLAGS) $(CFLAGSLIB)
 CFGSET   = TRUE
 !ENDIF
 
@@ -188,12 +167,10 @@ CFGSET   = TRUE
 # release-ssl-zlib
 
 !IF "$(CFG)" == "release-ssl-zlib"
-TARGET   = $(LIB_NAME).lib
-DIROBJ   = $(CFG)
-LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32"
-LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
-LNK      = $(LNKLIB) $(LFLAGSSSL) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)
-CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)
+TARGET   = $(LIB_NAME_STATIC)
+SSL_LFLAGS = "/LIBPATH:$(OPENSSL_PATH)\out32"
+LNK      = $(LNKLIB) $(SSL_LFLAGS) $(ZLIB_LFLAGS) /out:$(DIROBJ)\$(TARGET)
+CC       = $(CCNODBG) $(RTLIB) $(SSL_CFLAGS) $(ZLIB_CFLAGS) $(CFLAGSLIB)
 CFGSET   = TRUE
 !ENDIF
 
@@ -202,10 +179,9 @@ CFGSET   = TRUE
 
 !IF "$(CFG)" == "release-dll-ssl-dll"
 TARGET   = $(LIB_NAME).dll
-DIROBJ   = $(CFG)
-LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"
-LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) 
/out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME).lib
-CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL)
+SSL_LFLAGS = "/LIBPATH:$(OPENSSL_PATH)\out32dll"
+LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(SSL_LFLAGS) 
/out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIB_NAME_IMP).lib
+CC       = $(CCNODBG) $(RTLIB) $(SSL_CFLAGS)
 CFGSET   = TRUE
 RESOURCE = $(DIROBJ)\libcurl.res
 !ENDIF
@@ -214,11 +190,9 @@ RESOURCE = $(DIROBJ)\libcurl.res
 # release-zlib-dll
 
 !IF "$(CFG)" == "release-zlib-dll"
-TARGET   = $(LIB_NAME).lib
-DIROBJ   = $(CFG)
-LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
-LNK      = $(LNKLIB) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) 
/out:$(DIROBJ)\$(TARGET)
-CC       = $(CCNODBG) $(RTLIB) $(CFLAGSZLIB) $(CFLAGSLIB)
+TARGET   = $(LIB_NAME_STATIC)
+LNK      = $(LNKLIB) $(WINLIBS) $(ZLIBLIBSDLL) $(ZLIB_LFLAGS) 
/out:$(DIROBJ)\$(TARGET)
+CC       = $(CCNODBG) $(RTLIB) $(ZLIB_CFLAGS) $(CFLAGSLIB)
 CFGSET   = TRUE
 !ENDIF
 
@@ -226,12 +200,10 @@ CFGSET   = TRUE
 # release-ssl-dll-zlib-dll
 
 !IF "$(CFG)" == "release-ssl-dll-zlib-dll"
-TARGET   = $(LIB_NAME).lib
-DIROBJ   = $(CFG)
-LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
-LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"
-LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) 
$(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)
-CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)
+TARGET   = $(LIB_NAME_STATIC)
+SSL_LFLAGS = "/LIBPATH:$(OPENSSL_PATH)\out32dll"
+LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(SSL_LFLAGS) 
$(ZLIB_LFLAGS) /out:$(DIROBJ)\$(TARGET)
+CC       = $(CCNODBG) $(RTLIB) $(SSL_CFLAGS) $(ZLIB_CFLAGS) $(CFLAGSLIB)
 CFGSET   = TRUE
 !ENDIF
 
@@ -240,10 +212,8 @@ CFGSET   = TRUE
 
 !IF "$(CFG)" == "release-dll-zlib-dll"
 TARGET   = $(LIB_NAME).dll
-DIROBJ   = $(CFG)
-LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
-LNK      = $(LNKDLL) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) 
/out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME).lib
-CC       = $(CCNODBG) $(RTLIB) $(CFLAGSZLIB)
+LNK      = $(LNKDLL) $(WINLIBS) $(ZLIBLIBSDLL) $(ZLIB_LFLAGS) 
/out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIB_NAME_IMP).lib
+CC       = $(CCNODBG) $(RTLIB) $(ZLIB_CFLAGS)
 CFGSET   = TRUE
 RESOURCE = $(DIROBJ)\libcurl.res
 !ENDIF
@@ -253,21 +223,29 @@ RESOURCE = $(DIROBJ)\libcurl.res
 
 !IF "$(CFG)" == "release-dll-ssl-dll-zlib-dll"
 TARGET   = $(LIB_NAME).dll
-DIROBJ   = $(CFG)
-LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
-LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"
-LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) 
$(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME).lib
-CC       = $(CCNODBG) $(RTLIB) $(CFLAGSSSL) $(CFLAGSZLIB)
+SSL_LFLAGS = "/LIBPATH:$(OPENSSL_PATH)\out32dll"
+LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(SSL_LFLAGS) 
$(ZLIB_LFLAGS) /out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIB_NAME_IMP).lib
+CC       = $(CCNODBG) $(RTLIB) $(SSL_CFLAGS) $(ZLIB_CFLAGS)
 CFGSET   = TRUE
 RESOURCE = $(DIROBJ)\libcurl.res
 !ENDIF
 
+
+######################
+# release-ssh2-ssl-dll-zlib
+
+!IF "$(CFG)" == "release-ssh2-ssl-dll-zlib"
+TARGET   = $(LIB_NAME_STATIC)
+LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBS)  $(SSH2LIBS) 
$(SSL_LFLAGS) $(ZLIB_LFLAGS) $(LFLAGSSSH) /out:$(DIROBJ)\$(TARGET)
+CC       = $(CCNODBG) $(RTLIB) $(SSL_CFLAGS) $(ZLIB_CFLAGS) $(CFLAGSLIB)  
$(SSH2_CFLAGS)
+CFGSET   = TRUE
+!ENDIF
+
 ######################
 # debug
 
 !IF "$(CFG)" == "debug"
 TARGET = $(LIB_NAME_DEBUG).lib
-DIROBJ = $(CFG)
 LNK    = $(LNKLIB) /out:$(DIROBJ)\$(TARGET)
 CC     = $(CCDEBUG) $(RTLIBD) $(CFLAGSLIB)
 CFGSET = TRUE
@@ -278,10 +256,9 @@ CFGSET = TRUE
 
 !IF "$(CFG)" == "debug-ssl"
 TARGET   = $(LIB_NAME_DEBUG).lib
-DIROBJ   = $(CFG)
-LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32"
-LNK      = $(LNKLIB) $(LFLAGSSSL) /out:$(DIROBJ)\$(TARGET)
-CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSLIB)
+SSL_LFLAGS = "/LIBPATH:$(OPENSSL_PATH)\out32"
+LNK      = $(LNKLIB) $(SSL_LFLAGS) /out:$(DIROBJ)\$(TARGET)
+CC       = $(CCDEBUG) $(RTLIBD) $(SSL_CFLAGS) $(CFLAGSLIB)
 CFGSET   = TRUE
 !ENDIF
 
@@ -290,10 +267,8 @@ CFGSET   = TRUE
 
 !IF "$(CFG)" == "debug-zlib"
 TARGET   = $(LIB_NAME_DEBUG).lib
-DIROBJ   = $(CFG)
-LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
-LNK      = $(LNKLIB) $(ZLIBLIBS) $(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)
-CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSZLIB) $(CFLAGSLIB)
+LNK      = $(LNKLIB) $(ZLIBLIBS) $(ZLIB_LFLAGS) /out:$(DIROBJ)\$(TARGET)
+CC       = $(CCDEBUG) $(RTLIBD) $(ZLIB_CFLAGS) $(CFLAGSLIB)
 CFGSET   = TRUE
 !ENDIF
 
@@ -302,10 +277,9 @@ CFGSET   = TRUE
 
 !IF "$(CFG)" == "debug-ssl-dll"
 TARGET   = $(LIB_NAME_DEBUG).lib
-DIROBJ   = $(CFG)
-LFLAGSSSL = /LIBPATH:$(OPENSSL_PATH)\out32dll
-LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) 
/out:$(DIROBJ)\$(TARGET)
-CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSLIB)
+SSL_LFLAGS = /LIBPATH:$(OPENSSL_PATH)\out32dll
+LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(SSL_LFLAGS) 
/out:$(DIROBJ)\$(TARGET)
+CC       = $(CCDEBUG) $(RTLIBD) $(SSL_CFLAGS) $(CFLAGSLIB)
 CFGSET   = TRUE
 !ENDIF
 
@@ -314,11 +288,9 @@ CFGSET   = TRUE
 
 !IF "$(CFG)" == "debug-ssl-zlib"
 TARGET   = $(LIB_NAME_DEBUG).lib
-DIROBJ   = $(CFG)
-LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
-LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32"
-LNK      = $(LNKLIB) $(ZLIBLIBS) $(LFLAGSSSL) $(LFLAGSZLIB) 
/out:$(DIROBJ)\$(TARGET)
-CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)
+SSL_LFLAGS = "/LIBPATH:$(OPENSSL_PATH)\out32"
+LNK      = $(LNKLIB) $(ZLIBLIBS) $(SSL_LFLAGS) $(ZLIB_LFLAGS) 
/out:$(DIROBJ)\$(TARGET)
+CC       = $(CCDEBUG) $(RTLIBD) $(SSL_CFLAGS) $(ZLIB_CFLAGS) $(CFLAGSLIB)
 CFGSET   = TRUE
 !ENDIF
 
@@ -327,10 +299,8 @@ CFGSET   = TRUE
 
 !IF "$(CFG)" == "debug-zlib-dll"
 TARGET   = $(LIB_NAME_DEBUG).lib
-DIROBJ   = $(CFG)
-LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
-LNK      = $(LNKLIB) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) 
/out:$(DIROBJ)\$(TARGET)
-CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSZLIB) $(CFLAGSLIB)
+LNK      = $(LNKLIB) $(WINLIBS) $(ZLIBLIBSDLL) $(ZLIB_LFLAGS) 
/out:$(DIROBJ)\$(TARGET)
+CC       = $(CCDEBUG) $(RTLIBD) $(ZLIB_CFLAGS) $(CFLAGSLIB)
 CFGSET   = TRUE
 !ENDIF
 
@@ -339,11 +309,9 @@ CFGSET   = TRUE
 
 !IF "$(CFG)" == "debug-ssl-dll-zlib-dll"
 TARGET   = $(LIB_NAME_DEBUG).lib
-DIROBJ   = $(CFG)
-LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
-LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"
-LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) 
$(LFLAGSZLIB) /out:$(DIROBJ)\$(TARGET)
-CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSZLIB) $(CFLAGSLIB)
+SSL_LFLAGS = "/LIBPATH:$(OPENSSL_PATH)\out32dll"
+LNK      = $(LNKLIB) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(SSL_LFLAGS) 
$(ZLIB_LFLAGS) /out:$(DIROBJ)\$(TARGET)
+CC       = $(CCDEBUG) $(RTLIBD) $(SSL_CFLAGS) $(ZLIB_CFLAGS) $(CFLAGSLIB)
 CFGSET   = TRUE
 !ENDIF
 
@@ -352,8 +320,7 @@ CFGSET   = TRUE
 
 !IF "$(CFG)" == "debug-dll"
 TARGET = $(LIB_NAME_DEBUG).dll
-DIROBJ = $(CFG)
-LNK    = $(LNKDLL) $(WINLIBS) /DEBUG /out:$(DIROBJ)\$(TARGET) 
/IMPLIB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).lib 
/PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb
+LNK    = $(LNKDLL) $(WINLIBS) /DEBUG /out:$(DIROBJ)\$(TARGET) 
/IMPLIB:$(DIROBJ)\$(LIB_NAME_IMP_DEBUG).lib 
/PDB:$(DIROBJ)\$(LIB_NAME_IMP_DEBUG).pdb
 CC     = $(CCDEBUG) $(RTLIBD) 
 CFGSET = TRUE
 RESOURCE = $(DIROBJ)\libcurl.res
@@ -364,10 +331,9 @@ RESOURCE = $(DIROBJ)\libcurl.res
 
 !IF "$(CFG)" == "debug-dll-ssl-dll"
 TARGET   = $(LIB_NAME_DEBUG).dll
-DIROBJ   = $(CFG)
-LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"
-LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(LFLAGSSSL) /DEBUG 
/out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).lib 
/PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb
-CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL)
+SSL_LFLAGS = "/LIBPATH:$(OPENSSL_PATH)\out32dll"
+LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(SSL_LFLAGS) /DEBUG 
/out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIB_NAME_IMP_DEBUG).lib 
/PDB:$(DIROBJ)\$(LIB_NAME_IMP_DEBUG).pdb
+CC       = $(CCDEBUG) $(RTLIBD) $(SSL_CFLAGS)
 CFGSET   = TRUE
 RESOURCE = $(DIROBJ)\libcurl.res
 !ENDIF
@@ -377,10 +343,8 @@ RESOURCE = $(DIROBJ)\libcurl.res
 
 !IF "$(CFG)" == "debug-dll-zlib-dll"
 TARGET   = $(LIB_NAME_DEBUG).dll
-DIROBJ   = $(CFG)
-LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
-LNK      = $(LNKDLL) $(WINLIBS) $(ZLIBLIBSDLL) $(LFLAGSZLIB) /DEBUG 
/out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).lib 
/PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb
-CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSZLIB)
+LNK      = $(LNKDLL) $(WINLIBS) $(ZLIBLIBSDLL) $(ZLIB_LFLAGS) /DEBUG 
/out:$(DIROBJ)\$(TARGET) /IMPLIB:$(DIROBJ)\$(LIB_NAME_IMP_DEBUG).lib 
/PDB:$(DIROBJ)\$(LIB_NAME_IMP_DEBUG).pdb
+CC       = $(CCDEBUG) $(RTLIBD) $(ZLIB_CFLAGS)
 CFGSET   = TRUE
 RESOURCE = $(DIROBJ)\libcurl.res
 !ENDIF
@@ -390,11 +354,9 @@ RESOURCE = $(DIROBJ)\libcurl.res
 
 !IF "$(CFG)" == "debug-dll-ssl-dll-zlib-dll"
 TARGET   = $(LIB_NAME_DEBUG).dll
-DIROBJ   = $(CFG)
-LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"
-LFLAGSSSL = "/LIBPATH:$(OPENSSL_PATH)\out32dll"
-LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(LFLAGSSSL) 
$(LFLAGSZLIB) /DEBUG /out:$(DIROBJ)\$(TARGET) 
/IMPLIB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).lib 
/PDB:$(DIROBJ)\$(IMPLIB_NAME_DEBUG).pdb
-CC       = $(CCDEBUG) $(RTLIBD) $(CFLAGSSSL) $(CFLAGSZLIB)
+SSL_LFLAGS = "/LIBPATH:$(OPENSSL_PATH)\out32dll"
+LNK      = $(LNKDLL) $(WINLIBS) $(SSLLIBS) $(ZLIBLIBSDLL) $(SSL_LFLAGS) 
$(ZLIB_LFLAGS) /DEBUG /out:$(DIROBJ)\$(TARGET) 
/IMPLIB:$(DIROBJ)\$(LIB_NAME_IMP_DEBUG).lib 
/PDB:$(DIROBJ)\$(LIB_NAME_IMP_DEBUG).pdb
+CC       = $(CCDEBUG) $(RTLIBD) $(SSL_CFLAGS) $(ZLIB_CFLAGS)
 CFGSET   = TRUE
 RESOURCE = $(DIROBJ)\libcurl.res
 !ENDIF
@@ -402,7 +364,7 @@ RESOURCE = $(DIROBJ)\libcurl.res
 #######################
 # Usage
 #
-!IF "$(CFGSET)" == "FALSE" && "$(CFG)" != ""
+!IF ("$(CFGSET)" == "FALSE" && "$(CFG)" != "") || "$(CFG)"== ""
 !MESSAGE Usage: nmake /f makefile.vc6 CFG=<config> <target>
 !MESSAGE where <config> is one of:
 !MESSAGE   release                      - release static library
@@ -416,6 +378,7 @@ RESOURCE = $(DIROBJ)\libcurl.res
 !MESSAGE   release-dll-ssl-dll          - release dynamic library with dynamic 
ssl
 !MESSAGE   release-dll-zlib-dll         - release dynamic library with dynamic 
zlib
 !MESSAGE   release-dll-ssl-dll-zlib-dll - release dynamic library with dynamic 
ssl and dynamic zlib
+!MESSAGE   release-ssh2-ssl-dll-zlib    - release static library with dynamic 
ssl, static zlib and static ssh2
 !MESSAGE   debug                        - debug static library
 !MESSAGE   debug-ssl                    - debug static library with ssl
 !MESSAGE   debug-zlib                   - debug static library with zlib
@@ -498,7 +461,7 @@ X_OBJS= \
        $(DIROBJ)\mprintf.obj \
        $(DIROBJ)\multi.obj \
        $(DIROBJ)\netrc.obj \
-        $(DIROBJ)\nonblock.obj \
+       $(DIROBJ)\nonblock.obj \
        $(DIROBJ)\openldap.obj \
        $(DIROBJ)\parsedate.obj \
        $(DIROBJ)\pingpong.obj \
@@ -538,20 +501,25 @@ all : $(TARGET)
 
 $(TARGET): $(X_OBJS)
        $(LNK) $(LFLAGS) $(X_OBJS)
-       -xcopy $(DIROBJ)\$(LIB_NAME).dll       . /y
-       -xcopy $(DIROBJ)\$(LIB_NAME).lib       . /y
-       -xcopy $(DIROBJ)\$(LIB_NAME_DEBUG).dll . /y
-       -xcopy $(DIROBJ)\$(LIB_NAME_DEBUG).lib . /y
-       -xcopy $(DIROBJ)\$(IMPLIB_NAME).lib    . /y
-       -xcopy $(DIROBJ)\$(IMPLIB_NAME_DEBUG).lib . /y
-       -xcopy $(DIROBJ)\*.exp                 . /y
-       -xcopy $(DIROBJ)\*.pdb                 . /y
+       @echo Copying libs...
+       @-copy $(DIROBJ)\$(LIB_NAME).dll       $(DIRDIST)\ /y >nul 2<&1
+       @-copy $(DIROBJ)\$(LIB_NAME_STATIC)    $(DIRDIST)\ /y >nul 2<&1
+       @-copy $(DIROBJ)\$(LIB_NAME_DEBUG).dll $(DIRDIST)\ /y >nul 2<&1
+       @-copy $(DIROBJ)\$(LIB_NAME_DEBUG).lib $(DIRDIST)\ /y >nul 2<&1
+       @-copy $(DIROBJ)\$(LIB_NAME_IMP).lib   $(DIRDIST)\ /y >nul 2<&1
+       @-copy $(DIROBJ)\$(LIB_NAME_IMP_DEBUG).lib $(DIRDIST)\ /y >nul 2<&1
+       @-copy $(DIROBJ)\*.exp                 $(DIRDIST)\ /y >nul 2<&1
+       @-copy $(DIROBJ)\*.pdb                 $(DIRDIST)\ /y >nul 2<&1
 
-$(X_OBJS): $(DIROBJ)
+$(X_OBJS): $(DIROBJ) $(DIRDIST)
+
+$(DIRDIST):
+       @if not exist "$(DIRDIST)" mkdir $(DIRDIST)
 
 $(DIROBJ):
        @if not exist "$(DIROBJ)" mkdir $(DIROBJ)
 
+
 .SUFFIXES: .c .obj .res
 
 {.\}.c{$(DIROBJ)\}.obj:
diff --git a/lib/ssh.c b/lib/ssh.c
index ffcb48b..0567256 100644
--- a/lib/ssh.c
+++ b/lib/ssh.c
@@ -25,6 +25,7 @@
 #include "setup.h"
 
 #ifdef USE_LIBSSH2
+
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
diff --git a/src/Makefile.vc6 b/src/Makefile.vc6
index da7a2a3..886241e 100644
--- a/src/Makefile.vc6
+++ b/src/Makefile.vc6
@@ -14,37 +14,10 @@
 
 PROGRAM_NAME = curl.exe
 
-!IFNDEF OPENSSL_PATH
-OPENSSL_PATH = ../../openssl-0.9.8o
-!ENDIF
-
-!IFNDEF ZLIB_PATH
-ZLIB_PATH = ../../zlib-1.2.5
-!ENDIF
-
-!IFNDEF MACHINE
-MACHINE  = X86
-!ENDIF
+!include "../Makefile.inc.vc"
 
-# USE_WINDOWS_SSPI uses windows libraries to allow NTLM authentication
-# without an openssl installation and offers the ability to authenticate
-# using the "current logged in user". Since at least with MSVC6 the sspi.h
-# header is broken it is either required to install the Windows SDK,
-# or to fix sspi.h with adding this define at the beginning of sspi.h:
-# #define FreeCredentialHandle FreeCredentialsHandle
-#
-# If, for some reason the Windows SDK is installed but not installed
-# in the default location, you can specify WINDOWS_SDK_PATH.
-# It can be downloaded from:
-# http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
-
-# WINDOWS_SSPI = 1
-
-!IFDEF WINDOWS_SSPI
-!IFNDEF WINDOWS_SDK_PATH
-WINDOWS_SDK_PATH = "C:\Program Files\Microsoft SDK"
-!ENDIF
-!ENDIF
+DIROBJ = ..\builds\curl-$(CFG)-obj
+DIRDIST = ..\builds\curl-$(CFG)\
 
 ########################################################
 ## Nothing more to do below this line!
@@ -58,81 +31,65 @@ SSL_LFLAGS     = /LIBPATH:"$(OPENSSL_PATH)/out32"
 SSL_IMP_LFLAGS = /LIBPATH:"$(OPENSSL_PATH)/out32dll"
 SSL_LIBS       = libeay32.lib ssleay32.lib gdi32.lib user32.lib advapi32.lib
 
-# Runtime library configuration
-RTLIB   = /MD
-RTLIBD  = /MDd
-
-!IF "$(RTLIBCFG)" == "static"
-RTLIB  = /MT
-RTLIBD = /MTd
-!ENDIF
+LIBCURL_PATH=..\builds\lib-$(CFG)
 
 ## Release
 CCR   = cl.exe $(RTLIB) /O2 /DNDEBUG
-LINKR = link.exe /incremental:no /libpath:"../lib"
+LINKR = link.exe /incremental:no /libpath:"$(LIBCURL_PATH)"
 RCR   = rc.exe /dDEBUGBUILD=0
 
 ## Debug
 CCD   = cl.exe $(RTLIBD) /Gm /ZI /Od /D_DEBUG /GZ
-LINKD = link.exe /incremental:yes /debug /libpath:"../lib"
+LINKD = link.exe /incremental:yes /debug /libpath:"$(LIBCURL_PATH)"
 RCD   = rc.exe /dDEBUGBUILD=1
 
 CFLAGS   = /I../lib /I../include /nologo /W3 /GX /DWIN32 /YX /FD /c
-LFLAGS   = /nologo /out:$(PROGRAM_NAME) /subsystem:console /machine:$(MACHINE)
+LFLAGS   = /nologo /out:$(DIRDIST)\$(PROGRAM_NAME) /subsystem:console 
/machine:$(MACHINE)
 RESFLAGS = /i../include
 
 # This manifest thing is for VC8, enabled by the maketgz script that
 # builds the VC8 version of this makefile. Left commented out in the VC6
 # version!
-#MANIFESTTOOL = mt -manifest $(PROGRAM_NAME).manifest 
-outputresource:$(PROGRAM_NAME);1
+!IFDEF EMBEND_MANIFEST
+MANIFESTTOOL = mt -manifest $(DIRDIST)\$(PROGRAM_NAME).manifest 
-outputresource:$(DIRDIST)\$(PROGRAM_NAME);1
+!ENDIF
 
 !IFDEF WINDOWS_SSPI
-CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI /I$(WINDOWS_SDK_PATH)\include
+CFLAGS = $(CFLAGS) /DUSE_WINDOWS_SSPI 
+!ENDIF
+
+!IFDEF WINDOWS_SDK_PATH
+CFLAGS = $(CFLAGS) /I$(WINDOWS_SDK_PATH)\include
 !ENDIF
 
-RELEASE_OBJS= \
-       curlutilr.obj \
-       getpassr.obj \
-       homedirr.obj \
-       hugehelpr.obj \
-       mainr.obj \
-       nonblockr.obj \
-       os-specificr.obj \
-       rawstrr.obj \
-       strtoofftr.obj \
-       urlglobr.obj \
-       writeoutr.obj \
-       xattrr.obj \
-       curlr.res
-
-DEBUG_OBJS= \
-       curlutild.obj \
-       getpassd.obj \
-       homedird.obj \
-       hugehelpd.obj \
-       maind.obj \
-       nonblockd.obj \
-       os-specificd.obj \
-       rawstrd.obj \
-       strtoofftd.obj \
-       urlglobd.obj \
-       writeoutd.obj \
-       xattrd.obj \
-       curld.res
+OBJS= \
+       $(DIROBJ)\curlutil.obj \
+       $(DIROBJ)\getpass.obj \
+       $(DIROBJ)\homedir.obj \
+       $(DIROBJ)\hugehelp.obj \
+       $(DIROBJ)\main.obj \
+       $(DIROBJ)\nonblock.obj \
+       $(DIROBJ)\os-specific.obj \
+       $(DIROBJ)\rawstr.obj \
+       $(DIROBJ)\strtoofft.obj \
+       $(DIROBJ)\urlglob.obj \
+       $(DIROBJ)\writeout.obj \
+       $(DIROBJ)\xattr.obj \
+       $(DIROBJ)\curl.res
 
 #################################################
 # If CFG not specified, use static libs
 
 CFLAGS         = $(CFLAGS) /DCURL_STATICLIB
-LINKLIBS       = libcurl.lib
-LINKLIBS_DEBUG = libcurld.lib
+LINKLIBS       = $(LIB_NAME_STATIC)
+LINKLIBS_DEBUG = $(LIB_NAME_STATIC_DEBUG)
 
 #################################################
 # release dynamic library
 
 !IF "$(CFG)" == "release-dll"
-LINKLIBS       = libcurl_imp.lib
-LINKLIBS_DEBUG = libcurld_imp.lib
+LINKLIBS       = $(LIB_NAME_IMP)
+LINKLIBS_DEBUG = $(LIB_NAME_IMP_DEBUG)
 !ENDIF
 
 #################################################
@@ -140,8 +97,8 @@ LINKLIBS_DEBUG = libcurld_imp.lib
 
 !IF "$(CFG)" == "release-zlib"
 CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
-LINKLIBS       = libcurl.lib  $(ZLIB_LIBS)
-LINKLIBS_DEBUG = libcurld.lib $(ZLIB_LIBS)
+LINKLIBS       = $(LIB_NAME_STATIC)  $(ZLIB_LIBS)
+LINKLIBS_DEBUG = $(LIB_NAME_STATIC_DEBUG) $(ZLIB_LIBS)
 LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)
 !ENDIF
 
@@ -150,8 +107,8 @@ LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)
 
 !IF "$(CFG)" == "release-ssl"
 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB
-LINKLIBS       = libcurl.lib  $(SSL_LIBS)
-LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS)
+LINKLIBS       = $(LIB_NAME_STATIC)  $(SSL_LIBS)
+LINKLIBS_DEBUG = $(LIB_NAME_STATIC_DEBUG) $(SSL_LIBS)
 LFLAGS         = $(LFLAGS) $(SSL_LFLAGS)
 !ENDIF
 
@@ -160,8 +117,8 @@ LFLAGS         = $(LFLAGS) $(SSL_LFLAGS)
 
 !IF "$(CFG)" == "release-dll-ssl-dll"
 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS)
-LINKLIBS       = libcurl_imp.lib  $(SSL_LIBS)
-LINKLIBS_DEBUG = libcurld_imp.lib $(SSL_LIBS)
+LINKLIBS       = $(LIB_NAME_IMP)  $(SSL_LIBS)
+LINKLIBS_DEBUG = $(LIB_NAME_IMP_DEBUG) $(SSL_LIBS)
 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS)
 !ENDIF
 
@@ -170,8 +127,8 @@ LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS)
 
 !IF "$(CFG)" == "release-ssl-zlib"
 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
-LINKLIBS       = libcurl.lib  $(SSL_LIBS) $(ZLIB_LIBS)
-LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS) $(ZLIB_LIBS)
+LINKLIBS       = $(LIB_NAME_STATIC)  $(SSL_LIBS) $(ZLIB_LIBS)
+LINKLIBS_DEBUG = $(LIB_NAME_STATIC_DEBUG) $(SSL_LIBS) $(ZLIB_LIBS)
 LFLAGS         = $(LFLAGS) $(SSL_LFLAGS) $(ZLIB_LFLAGS)
 !ENDIF
 
@@ -180,8 +137,8 @@ LFLAGS         = $(LFLAGS) $(SSL_LFLAGS) $(ZLIB_LFLAGS)
 
 !IF "$(CFG)" == "release-ssl-dll"
 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) /DCURL_STATICLIB
-LINKLIBS       = libcurl.lib  $(SSL_LIBS)
-LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS)
+LINKLIBS       = $(LIB_NAME_STATIC)  $(SSL_LIBS)
+LINKLIBS_DEBUG = $(LIB_NAME_STATIC_DEBUG) $(SSL_LIBS)
 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS)
 !ENDIF
 
@@ -190,8 +147,8 @@ LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS)
 
 !IF "$(CFG)" == "release-zlib-dll"
 CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
-LINKLIBS       = libcurl.lib  $(ZLIB_IMP_LIBS)
-LINKLIBS_DEBUG = libcurld.lib $(ZLIB_IMP_LIBS)
+LINKLIBS       = $(LIB_NAME_STATIC)  $(ZLIB_IMP_LIBS)
+LINKLIBS_DEBUG = $(LIB_NAME_STATIC_DEBUG) $(ZLIB_IMP_LIBS)
 LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)
 !ENDIF
 
@@ -200,8 +157,8 @@ LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)
 
 !IF "$(CFG)" == "release-dll-zlib-dll"
 CFLAGS         = $(CFLAGS) $(ZLIB_CFLAGS)
-LINKLIBS       = libcurl_imp.lib  $(ZLIB_IMP_LIBS)
-LINKLIBS_DEBUG = libcurld_imp.lib $(ZLIB_IMP_LIBS)
+LINKLIBS       = $(LIB_NAME_IMP)  $(ZLIB_IMP_LIBS)
+LINKLIBS_DEBUG = $(LIB_NAME_IMP_DEBUG) $(ZLIB_IMP_LIBS)
 LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)
 !ENDIF
 
@@ -210,8 +167,8 @@ LFLAGS         = $(LFLAGS) $(ZLIB_LFLAGS)
 
 !IF "$(CFG)" == "release-ssl-dll-zlib-dll"
 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS) /DCURL_STATICLIB
-LINKLIBS       = libcurl.lib  $(SSL_LIBS) $(ZLIB_IMP_LIBS)
-LINKLIBS_DEBUG = libcurld.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)
+LINKLIBS       = $(LIB_NAME_STATIC)  $(SSL_LIBS) $(ZLIB_IMP_LIBS)
+LINKLIBS_DEBUG = $(LIB_NAME_STATIC_DEBUG) $(SSL_LIBS) $(ZLIB_IMP_LIBS)
 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)
 !ENDIF
 
@@ -220,86 +177,65 @@ LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS) 
$(ZLIB_LFLAGS)
 
 !IF "$(CFG)" == "release-dll-ssl-dll-zlib-dll"
 CFLAGS         = $(CFLAGS) $(SSL_CFLAGS) $(ZLIB_CFLAGS)
-LINKLIBS       = libcurl_imp.lib  $(SSL_LIBS) $(ZLIB_IMP_LIBS)
-LINKLIBS_DEBUG = libcurld_imp.lib $(SSL_LIBS) $(ZLIB_IMP_LIBS)
+LINKLIBS       = $(LIB_NAME_IMP)  $(SSL_LIBS) $(ZLIB_IMP_LIBS)
+LINKLIBS_DEBUG = $(LIB_NAME_IMP_DEBUG) $(SSL_LIBS) $(ZLIB_IMP_LIBS)
 LFLAGS         = $(LFLAGS) $(SSL_IMP_LFLAGS) $(ZLIB_LFLAGS)
 !ENDIF
 
-
 LINKLIBS       = $(LINKLIBS) ws2_32.lib wldap32.lib
 LINKLIBS_DEBUG = $(LINKLIBS_DEBUG) ws2_32.lib wldap32.lib
 
 all : release
 
-release: $(RELEASE_OBJS)
-       $(LINKR) $(LFLAGS) $(LINKLIBS) $(RELEASE_OBJS)
+release: $(DIRDIST) $(DIROBJ)  $(OBJS)
+       $(LINKR) $(LFLAGS) $(LINKLIBS) $(OBJS)
         $(MANIFESTTOOL)
 
-debug: $(DEBUG_OBJS)
-       $(LINKD) $(LFLAGS) $(LINKLIBS_DEBUG) $(DEBUG_OBJS)
+debug: $(DIRDIST) $(DIROBJ) $(OBJS)
+       $(LINKD) $(LFLAGS) $(LINKLIBS_DEBUG) $(OBJS)
         $(MANIFESTTOOL)
 
-## Release
-hugehelpr.obj: hugehelp.c
+$(DIROBJ)\hugehelp.obj: hugehelp.c
        $(CCR) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c
-writeoutr.obj: writeout.c
+$(DIROBJ)\writeout.obj: writeout.c
        $(CCR) $(CFLAGS) /Fo"$@" writeout.c
-urlglobr.obj: urlglob.c
+$(DIROBJ)\urlglob.obj: urlglob.c
        $(CCR) $(CFLAGS) /Fo"$@" urlglob.c
-getpassr.obj: getpass.c
+$(DIROBJ)\getpass.obj: getpass.c
        $(CCR) $(CFLAGS) /Fo"$@" getpass.c
-homedirr.obj: homedir.c
+$(DIROBJ)\homedir.obj: homedir.c
        $(CCR) $(CFLAGS) /Fo"$@" homedir.c
-curlutilr.obj: curlutil.c
+$(DIROBJ)\curlutil.obj: curlutil.c
        $(CCR) $(CFLAGS) /Fo"$@" curlutil.c
-os-specificr.obj: os-specific.c
+$(DIROBJ)\os-specific.obj: os-specific.c
        $(CCR) $(CFLAGS) /Fo"$@" os-specific.c
-nonblockr.obj: ../lib/nonblock.c
+$(DIROBJ)\nonblock.obj: ../lib/nonblock.c
        $(CCR) $(CFLAGS) /Fo"$@" ../lib/nonblock.c
-rawstrr.obj: ../lib/rawstr.c
+$(DIROBJ)\rawstr.obj: ../lib/rawstr.c
        $(CCR) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
-strtoofftr.obj: ../lib/strtoofft.c
+$(DIROBJ)\strtoofft.obj: ../lib/strtoofft.c
        $(CCR) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
-xattrr.obj: xattr.c
+$(DIROBJ)\xattr.obj: xattr.c
        $(CCR) $(CFLAGS) /Fo"$@" xattr.c
-mainr.obj: main.c
+$(DIROBJ)\main.obj: main.c
        $(CCR) $(CFLAGS) /Fo"$@" main.c
-curlr.res : curl.rc
+$(DIROBJ)\curl.res : curl.rc
        $(RCR) $(RESFLAGS) /Fo"$@" curl.rc
 
-## Debug
-hugehelpd.obj: hugehelp.c
-       $(CCD) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c
-writeoutd.obj: writeout.c
-       $(CCD) $(CFLAGS) /Fo"$@" writeout.c
-urlglobd.obj: urlglob.c
-       $(CCD) $(CFLAGS) /Fo"$@" urlglob.c
-getpassd.obj: getpass.c
-       $(CCD) $(CFLAGS) /Fo"$@" getpass.c
-homedird.obj: homedir.c
-       $(CCD) $(CFLAGS) /Fo"$@" homedir.c
-curlutild.obj: curlutil.c
-       $(CCD) $(CFLAGS) /Fo"$@" curlutil.c
-os-specificd.obj: os-specific.c
-       $(CCD) $(CFLAGS) /Fo"$@" os-specific.c
-nonblockd.obj: ../lib/nonblock.c
-       $(CCD) $(CFLAGS) /Fo"$@" ../lib/nonblock.c
-rawstrd.obj: ../lib/rawstr.c
-       $(CCD) $(CFLAGS) /Fo"$@" ../lib/rawstr.c
-strtoofftd.obj: ../lib/strtoofft.c
-       $(CCD) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c
-xattrd.obj: xattr.c
-       $(CCD) $(CFLAGS) /Fo"$@" xattr.c
-maind.obj: main.c
-       $(CCD) $(CFLAGS) /Fo"$@" main.c
-curld.res : curl.rc
-       $(RCD) $(RESFLAGS) /Fo"$@" curl.rc
+$(DIRDIST):
+       @if not exist "$(DIRDIST)" mkdir $(DIRDIST)
+
+$(DIROBJ):
+       @if not exist "$(DIROBJ)" mkdir $(DIROBJ)
 
 clean:
-       @-erase $(PROGRAM_NAME) 2> NUL
-       @-erase $(RELEASE_OBJS) 2> NUL
-       @-erase $(DEBUG_OBJS) 2> NUL
-       @-erase *.idb 2> NUL
-       @-erase *.pdb 2> NUL
-       @-erase *.pch 2> NUL
-       @-erase *.ilk 2> NUL
+!IF "$(CFG)" != ""
+       @-erase /q $(DIROBJ)\* >nul 2<&1
+       @-erase /q $(DIRDIST)\* >nul 2<&1
+!ELSE
+       @for /d %a IN (..\builds\*) do @erase /S /Q %a
+!ENDIF
+       @-erase /q *.idb 2> NUL
+       @-erase /q *.pdb 2> NUL
+       @-erase /q *.pch 2> NUL
+       @-erase /q *.ilk 2> NUL
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to