fixed some Windows makefile build issues; added code signing to Windows makefiles
authorVictor Kirhenshtein <victor@netxms.org>
Sat, 30 Sep 2017 21:50:17 +0000 (00:50 +0300)
committerVictor Kirhenshtein <victor@netxms.org>
Sat, 30 Sep 2017 21:50:17 +0000 (00:50 +0300)
Makefile.inc.w32
include/nxcrypto.h
src/agent/core/Makefile.w32
src/agent/core/nxagentd.cpp
src/libstrophe/tls_openssl.c

index 5c93e70..70c5366 100644 (file)
@@ -6,6 +6,7 @@
 CC = cl
 CXX = cl
 LD = link
+SIGNTOOL = signtool
 PERL = perl
 LEX = flex
 YACC = bison
@@ -87,15 +88,22 @@ CPPFLAGS = $(CPPFLAGS) /MD /O2 /Gd /EHs- /GR- \
        /I "$(CURL_BASE)\$(ARCH)\include" \
        /I "$(OPENSSL_BASE)\$(ARCH)\include" \
        /I "$(LIBMOSQUITTO_BASE)\include" \
-       /D_MT /DUNICODE
+       /D_MT /DUNICODE /D_USING_V110_SDK71_
 
 # Common linker flags
 MANIFEST = $(TARGET).intermediate.manifest
-LDFLAGS = $(LDFLAGS) /SUBSYSTEM:CONSOLE /MACHINE:$(ARCH) /MANIFESTFILE:$(MANIFEST) \
+LDFLAGS = $(LDFLAGS) /MACHINE:$(ARCH) /MANIFESTFILE:$(MANIFEST) \
        /LIBPATH:"$(NETXMS_LIBDIR)" \
        /LIBPATH:"$(CURL_BASE)\$(ARCH)\lib" \
        /LIBPATH:"$(OPENSSL_BASE)\$(ARCH)\lib" \
        /LIBPATH:"$(LIBMOSQUITTO_BASE)\$(ARCH)\lib"
+
+# Target system for linker
+!if "$(ARCH)" == "x64"
+LDFLAGS = $(LDFLAGS) /SUBSYSTEM:CONSOLE,5.02
+!else
+LDFLAGS = $(LDFLAGS) /SUBSYSTEM:CONSOLE,5.01
+!endif
        
 # Common headers
 HEADERS = $(HEADERS) \
@@ -159,9 +167,11 @@ $(BINFILE): pom.xml
 
 $(BINFILE): objdir $(OBJ) $(RESOBJ)
    @if not exist $(BINDIR) mkdir $(BINDIR)
-   @echo "    LD " $(TARGET)
+   @echo "    LD  " $(TARGET)
    @$(LD) /NOLOGO $(LDFLAGS) /out:$(BINFILE) $(OBJ) $(RESOBJ) $(LIBS)
-       @rm -f $(MANIFEST)
+   @rm -f $(MANIFEST)
+   @echo "    SIGN" $(TARGET)
+   @$(SIGNTOOL) sign /n "Raden Solutions" /t http://timestamp.digicert.com $(BINFILE)
 
 $(OBJ): $(NETXMS_BASE)\build\netxms-build-tag.h $(HEADERS)
 
@@ -172,25 +182,25 @@ objdir:
    @cd $(OBJDIR)
 
 {$(SRCDIR)}.c.obj:
-   @echo "    CC " $(<F)
+   @echo "    CC  " $(<F)
    @$(CC) /nologo $(CPPFLAGS) $(CFLAGS) /c $< /Fo$@ | tail -n +2
 
 {$(SRCDIR)}.cpp.obj:
-   @echo "    CXX" $(<F)
+   @echo "    CXX " $(<F)
    @$(CXX) /nologo $(CPPFLAGS) $(CXXFLAGS) /c $< /Fo$@ | tail -n +2
 
 {$(SRCDIR)}.rc.res:
-   @echo "    RC " $(<F)
+   @echo "    RC  " $(<F)
    @$(RC) /nologo /r $<
        @mv $(SRCDIR)\$@ .
 
 MSG00001.bin: messages.mc
-   @echo "    MC  messages.mc"
+   @echo "    MC   messages.mc"
    @$(MC) messages.mc
    @rm -f messages.rc
 
 messages.h: messages.mc
-   @echo "    MC  messages.mc"
+   @echo "    MC   messages.mc"
    @$(MC) messages.mc
    @rm -f messages.rc
 
index 8591c69..8d9a9a6 100644 (file)
@@ -10,6 +10,7 @@
 #include <openssl/pem.h>
 #include <openssl/evp.h>
 #include <openssl/rand.h>
+#include <openssl/bn.h>
 #include <openssl/opensslv.h>
 #include <openssl/err.h>
 
index 676c202..9c18df8 100644 (file)
@@ -11,7 +11,7 @@ SOURCES = \
 RESOURCES = nxagentd.rc
 GENERATED = messages.h MSG00001.bin
 
-LIBS = libnxagent.lib appagent.lib libnxsnmp.lib libnxdb.lib libnetxms.lib ws2_32.lib
+LIBS = libnxagent.lib appagent.lib libnxsnmp.lib libnxdb.lib libnetxms.lib libcrypto.lib ws2_32.lib
          
 include ..\..\..\Makefile.inc.w32
 
index f82dd1c..d71c862 100644 (file)
@@ -847,9 +847,13 @@ BOOL Initialize()
    // but may be needed by some subagents. Allowing first load of libssl by
    // subagent via dlopen() may lead to undesired side effects
 #ifdef _WITH_ENCRYPTION
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+   OPENSSL_init_ssl(0, NULL);
+#else
    SSL_library_init();
    SSL_load_error_strings();
 #endif
+#endif
 
        DBInit(MSG_DB_LIBRARY, MSG_SQL_ERROR);
 
index a458812..959177c 100644 (file)
@@ -42,8 +42,12 @@ static void _tls_log_error(xmpp_ctx_t *ctx);
 
 void tls_initialize(void)
 {
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+    OPENSSL_init_ssl(0, NULL);
+#else
     SSL_library_init();
     SSL_load_error_strings();
+#endif
 }
 
 void tls_shutdown(void)