diff --git a/NMakefile b/NMakefile index 30b20de7..73fce5ef 100644 --- a/NMakefile +++ b/NMakefile @@ -1,4 +1,56 @@ -!include "win32/config.mk" +# Tweak these for your system +!if "$(OPENSSLINC)" == "" +OPENSSLINC=..\openssl\include +!endif + +!if "$(OPENSSLLIB)" == "" +OPENSSLLIB=..\openssl\lib +!endif + +!if "$(ZLIBINC)" == "" +ZLIBINC=..\zlib +!endif + +!if "$(ZLIBLIB)" == "" +ZLIBLIB=..\zlib +!endif + +!if "$(TARGET)" == "" +TARGET=Release +!endif + +!if "$(TARGET)" == "Debug" +SUFFIX=_debug +CPPFLAGS=/Od /MDd +DLLFLAGS=/DEBUG /LDd +!else +CPPFLAGS=/Oi /O2 /Oy /GF /Y- /MD /DNDEBUG +DLLFLAGS=/DEBUG /LD +!endif + +CPPFLAGS=/nologo /GL /Zi /EHsc $(CPPFLAGS) /Iwin32 /Iinclude + +!if "$(WITH_WINCNG)" == "1" +CPPFLAGS=$(CPPFLAGS) /DLIBSSH2_WINCNG +LIBS=ws2_32.lib crypt32.lib bcrypt.lib +!else +CPPFLAGS=$(CPPFLAGS) /DLIBSSH2_OPENSSL /I$(OPENSSLINC) +LIBS=$(LIBS) $(OPENSSLLIB)\lib\crypto.lib $(OPENSSLLIB)\lib\ssl.lib +!endif + +!if "$(WITH_ZLIB)" == "1" +CPPFLAGS=$(CPPFLAGS) /DLIBSSH2_HAVE_ZLIB /I$(ZLIBINC) +LIBS=$(LIBS) $(ZLIBLIB)\zlib.lib +!endif + +CFLAGS=$(CPPFLAGS) +RCFLAGS=/Iinclude +DLLFLAGS=$(CFLAGS) $(DLLFLAGS) +LIBS=$(LIBS) ws2_32.lib user32.lib advapi32.lib gdi32.lib + +INTDIR=$(TARGET) + +SUBDIR=src !if "$(WITH_WINCNG)" == "1" !include "Makefile.WinCNG.inc" @@ -9,15 +61,53 @@ OBJECTS=$(CSOURCES:.c=.obj) -# SUBDIRS=src example -SUBDIRS=src +!if "$(TARGET)" == "Debug" +OBJECTS=Debug/$(OBJECTS: = Debug/) +OBJECTS=$(OBJECTS: Debug/ = ) +!else +TARGET=Release +OBJECTS=Release/$(OBJECTS: = Release/) +OBJECTS=$(OBJECTS: Release/ = ) +!endif -all-sub: win32\objects.mk - -for %D in ($(SUBDIRS)) do $(MAKE) /nologo /f %D/NMakefile BUILD=$(BUILD) SUBDIR=%D all-sub +CFLAGS=$(CFLAGS) + +!if "$(AR)" == "" +AR=lib +ARFLAGS=-nologo /LTCG +!endif + +RESOURCE=$(INTDIR)\libssh2.res +DLL=libssh2$(SUFFIX).dll +STATICLIB=$(INTDIR)\libssh2.lib + +!if "$(BUILD_STATIC_LIB)" == "" +all: $(INTDIR) $(DLL) +!else +all: $(INTDIR) $(STATICLIB) +!endif + +$(INTDIR): + @if not exist $(INTDIR) mkdir $(INTDIR) + +$(DLL): $(OBJECTS) $(RESOURCE) + $(CC) -o $(DLL) $(DLLFLAGS) $(OBJECTS) $(RESOURCE) $(LIBS) + +$(STATICLIB): $(OBJECTS) + $(AR) $(ARFLAGS) -out:$@ $(OBJECTS) + +$(RESOURCE): win32\libssh2.rc + $(RC) $(RCFLAGS) /Fo"$@" $? + +all-sub: $(INTDIR) all + +clean-sub: clean + +{$(SUBDIR)}.c{$(INTDIR)}.obj:: + $(CC) -c $(CFLAGS) /Fo"$(INTDIR)\\" $< clean: -rmdir 2>NUL /s/q $(TARGET) - -del 2>NUL win32\objects.mk real-clean vclean: clean -del 2>NUL libssh2.dll @@ -25,8 +115,3 @@ real-clean vclean: clean -del 2>NUL libssh2.ilk -del 2>NUL libssh2.lib -del 2>NUL *.pdb - -win32\objects.mk: Makefile.inc - @echo OBJECTS = \>$@ - @for %O in ($(OBJECTS)) do @echo $$(INTDIR)\%O \>>$@ - @echo $$(EOL)>>$@ diff --git a/src/NMakefile b/src/NMakefile deleted file mode 100644 index 46430bbd..00000000 --- a/src/NMakefile +++ /dev/null @@ -1,29 +0,0 @@ -!include "win32/config.mk" - -!include "win32/objects.mk" - -CFLAGS=$(CFLAGS) - -AR = lib -ARFLAGS = -nologo /LTCG - -RESOURCE=$(INTDIR)\libssh2.res -DLL=libssh2$(SUFFIX).dll -STATICLIB=$(INTDIR)\libssh2.lib - -!if "$(BUILD_STATIC_LIB)" == "" -all: $(DLL) -!else -all: $(STATICLIB) -!endif - -$(DLL): $(OBJECTS) $(RESOURCE) - $(CC) -o $(DLL) $(DLLFLAGS) $(OBJECTS) $(RESOURCE) $(LIBS) - -$(STATICLIB): $(OBJECTS) - $(AR) $(ARFLAGS) -out:$@ $(OBJECTS) - -$(RESOURCE): win32\libssh2.rc - $(RC) $(RCFLAGS) /Fo"$@" $? - -!include "win32/rules.mk" diff --git a/win32/.gitignore b/win32/.gitignore index cfad4cf9..b8117e4a 100644 --- a/win32/.gitignore +++ b/win32/.gitignore @@ -1,13 +1,4 @@ -*.lib -*.pdb *.dll *.exe -*.obj -.*.swp Debug Release -*.exp -*.ncb -*.opt -*.plg -objects.mk diff --git a/win32/config.mk b/win32/config.mk deleted file mode 100644 index 8f65cabf..00000000 --- a/win32/config.mk +++ /dev/null @@ -1,51 +0,0 @@ -# Tweak these for your system -!if "$(OPENSSLINC)" == "" -OPENSSLINC=..\openssl\include -!endif - -!if "$(OPENSSLLIB)" == "" -OPENSSLLIB=..\openssl\lib -!endif - -!if "$(ZLIBINC)" == "" -ZLIBINC=..\zlib -!endif - -!if "$(ZLIBLIB)" == "" -ZLIBLIB=..\zlib -!endif - -!if "$(TARGET)" == "" -TARGET=Release -!endif - -!if "$(TARGET)" == "Debug" -SUFFIX=_debug -CPPFLAGS=/Od /MDd -DLLFLAGS=/DEBUG /LDd -!else -CPPFLAGS=/Oi /O2 /Oy /GF /Y- /MD /DNDEBUG -DLLFLAGS=/DEBUG /LD -!endif - -CPPFLAGS=/nologo /GL /Zi /EHsc $(CPPFLAGS) /Iwin32 /Iinclude - -!if "$(WITH_WINCNG)" == "1" -CPPFLAGS=$(CPPFLAGS) /DLIBSSH2_WINCNG -# LIBS=bcrypt.lib crypt32.lib -!else -CPPFLAGS=$(CPPFLAGS) /DLIBSSH2_OPENSSL /I$(OPENSSLINC) -LIBS=$(LIBS) $(OPENSSLLIB)\lib\crypto.lib $(OPENSSLLIB)\lib\ssl.lib -!endif - -!if "$(WITH_ZLIB)" == "1" -CPPFLAGS=$(CPPFLAGS) /DLIBSSH2_HAVE_ZLIB /I$(ZLIBINC) -LIBS=$(LIBS) $(ZLIBLIB)\zlib.lib -!endif - -CFLAGS=$(CPPFLAGS) -RCFLAGS=/Iinclude -DLLFLAGS=$(CFLAGS) $(DLLFLAGS) -LIBS=$(LIBS) ws2_32.lib user32.lib advapi32.lib gdi32.lib - -INTDIR=$(TARGET)\$(SUBDIR) diff --git a/win32/rules.mk b/win32/rules.mk deleted file mode 100644 index e5bd1a94..00000000 --- a/win32/rules.mk +++ /dev/null @@ -1,12 +0,0 @@ -all-sub: $(INTDIR) all - -clean-sub: clean - -$(INTDIR): -!if "$(SRCDIR)" == "" - @if not exist $(TARGET) mkdir $(TARGET) -!endif - @if not exist $(INTDIR) mkdir $(INTDIR) - -{$(SUBDIR)}.c{$(INTDIR)}.obj:: - $(CC) -c $(CFLAGS) /Fo"$(INTDIR)\\" $<