Linux build fixed
authorVictor Kirhenshtein <victor@netxms.org>
Tue, 21 Dec 2010 07:56:26 +0000 (07:56 +0000)
committerVictor Kirhenshtein <victor@netxms.org>
Tue, 21 Dec 2010 07:56:26 +0000 (07:56 +0000)
15 files changed:
configure.ac
include/dbdrv.h
include/netxms-regex.h
include/nms_util.h
include/nxlpapi.h
include/unicode.h
src/agent/subagents/linux/net.cpp
src/agent/subagents/portCheck/http.cpp
src/db/dbdrv/pgsql/pgsql.cpp
src/db/dbdrv/sqlite/sqlite.cpp
src/libnxlp/rule.cpp
src/libnxsl/program.cpp
src/server/core/objtools.cpp
src/server/smsdrv/nxagent/main.cpp
src/server/tools/nxdbmgr/init.cpp

index 4b7c6ed..6790231 100644 (file)
@@ -62,6 +62,8 @@ PGSQL_LIBS=""
 MYSQL_LIBS=""
 ODBC_LIBS=""
 FORCE_INTERNAL_EXPAT="no"
+USE_INTERNAL_LIBTRE="no"
+FORCE_INTERNAL_LIBTRE="no"
 FORCE_32BIT_BUILD="no"
 
 
@@ -130,6 +132,12 @@ AC_ARG_WITH(internal-libexpat,
        FORCE_INTERNAL_EXPAT="yes"
 ])
 
+AC_ARG_WITH(internal-libtre,
+[AS_HELP_STRING(--with-internal-libtre,force use of bundled libtre)],
+[
+       FORCE_INTERNAL_LIBTRE="yes"
+])
+
 AC_ARG_WITH(sqlite,
 [AS_HELP_STRING(--with-sqlite,build SQLite database driver)],
 [ if test "x$withval" != "xno" ; then
@@ -289,7 +297,7 @@ AC_ARG_ENABLE(64bit,
 AC_ARG_WITH(dist,
 [AS_HELP_STRING(--with-dist,for maintainers only)],
        DB_DRIVERS=" mysql pgsql odbc mssql sqlite oracle db2"
-       MODULES="libexpat libnetxms install sqlite snmp libnxsl libnxlp db server agent libnxmap libnxcl client nxscript tools webui"
+       MODULES="libexpat libtre libnetxms install sqlite snmp libnxsl libnxlp db server agent libnxmap libnxcl client nxscript tools webui"
        SUBAGENT_DIRS="linux freebsd openbsd netbsd sunos aix ipso hpux"
        NXCONFIG="nxconfig"
        TOP_LEVEL_MODULES="sql images"
@@ -898,13 +906,19 @@ else
 fi
 if test "x$HAVE_LIBEXPAT" = "xno"; then
        MODULES="libexpat $MODULES"
-       CPPFLAGS="$CPPFLAGS "
 fi
 
-AC_CHECK_HEADER(tre/tre.h,,AC_MSG_ERROR([*** libtre-dev not installed - please install first ***]))
-AC_CHECK_LIB(tre, tre_compile, [], [
-      AC_MSG_ERROR(libtre is required)
-   ])
+if test "x$FORCE_INTERNAL_LIBTRE" = "xyes"; then
+       HAVE_LIBTRE=no
+else
+       HAVE_LIBTRE=yes
+       AC_CHECK_HEADER(tre/regex.h,,HAVE_LIBTRE=no)
+       AC_CHECK_LIB(tre, tre_compile, [], [ HAVE_LIBTRE=no ])
+fi
+if test "x$HAVE_LIBTRE" = "xno"; then
+       MODULES="libtre $MODULES"
+       AC_DEFINE(USE_BUNDLED_LIBTRE,1,Define to 1 if bundled libtre is used)
+fi
 
 #--------------------------------------------------------------------
 # Checks for data types
@@ -1652,6 +1666,7 @@ CPPFLAGS="$CPPFLAGS -DPREFIX=\\\"\${prefix}\\\" -DPREFIXW=L\\\"\${prefix}\\\" -D
 
 AM_CONDITIONAL([BUILD_UNICODE_LIBS], [test "x$BUILD_UNICODE" = "xyes"])
 AM_CONDITIONAL([USE_INTERNAL_EXPAT], [test "x$HAVE_LIBEXPAT" = "xno"])
+AM_CONDITIONAL([USE_INTERNAL_LIBTRE], [test "x$HAVE_LIBTRE" = "xno"])
 
 
 #--------------------------------------------------------------------
@@ -1705,7 +1720,7 @@ AC_SUBST(DB2_LIBS)
 #      only the first ever interface is implemented, so age can only be `0'. 
 #--------------------------------------------------------------------
 
-NETXMS_LIBRARY_VERSION=0:2:0
+NETXMS_LIBRARY_VERSION=1:0:0
 AC_SUBST(NETXMS_LIBRARY_VERSION)
 
 
@@ -1907,6 +1922,11 @@ if test "x${HAVE_LIBEXPAT}" = "xno"; then
 else
        echo "Use internal libexpat   : NO"
 fi
+if test "x${HAVE_LIBTRE}" = "xno"; then
+       echo "Use internal libtre     : YES"
+else
+       echo "Use internal libtre     : NO"
+fi
 if test "x${FORCE_32BIT_BUILD}" = "xyes"; then
        echo "Force 32bit build       : YES"
 else
index f1817c5..07c6143 100644 (file)
 #define DBDRV_API_VERSION           9
 
 
+//
+// Driver header
+//
+
+#ifdef _WIN32
+#define __EXPORT __declspec(dllexport)
+#else
+#define __EXPORT
+#endif
+
+#define DECLARE_DRIVER_HEADER(name) \
+extern "C" int EXPORT drvAPIVersion; \
+extern "C" const char EXPORT *drvName; \
+int EXPORT drvAPIVersion = DBDRV_API_VERSION; \
+const char EXPORT *drvName = name;
+
+#undef __EXPORT
+
+
 //
 // Constants
 //
index 117cb1d..ab56cdd 100644 (file)
@@ -25,9 +25,6 @@
 
 #ifdef USE_BUNDLED_LIBTRE
 #include "../src/libtre/tre.h"
-#else
-#include <tre/tre.h>
-#endif
 
 #ifdef UNICODE
 #define _tregcomp  tre_regwcomp
 
 #define regfree tre_regfree
 
+#else
+#include <tre/regex.h>
+
+#ifdef UNICODE
+#define _tregcomp  regwcomp
+#define _tregexec  regwexec
+#define _tregncomp regwncomp
+#define _tregnexec regwnexec
+#else
+#define _tregcomp  regcomp
+#define _tregexec  regexec
+#define _tregncomp regncomp
+#define _tregnexec regnexec
 #endif
+
+#endif /* USE_BUNDLED_LIBTRE */
+
+#endif /* _netxms_regex_h */
index 3e29dea..cbc01b5 100644 (file)
@@ -523,6 +523,8 @@ extern "C"
    TCHAR LIBNETXMS_EXPORTABLE *IpToStr(DWORD dwAddr, TCHAR *szBuffer);
 #ifdef UNICODE
    char LIBNETXMS_EXPORTABLE *IpToStrA(DWORD dwAddr, char *szBuffer);
+#else
+#define IpToStrA IpToStr
 #endif
    DWORD LIBNETXMS_EXPORTABLE ResolveHostName(const TCHAR *pszName);
 #ifdef UNICODE
index 43a3029..c228acc 100644 (file)
 #define LIBNXLP_EXPORTABLE\r
 #endif\r
 \r
-\r
-#ifdef _WIN32\r
 #include <netxms-regex.h>\r
-#else\r
-#include <regex.h>\r
-#endif\r
 \r
 \r
 //\r
index e7f93ff..28b2a89 100644 (file)
 #define _istupper iswupper
 #define _tgetenv  wgetenv
 #define _tmkdir   wmkdir
+#define _tchdir   wchdir
 #define _tcserror wcserror
 #define _tcserror_r wcserror_r
+#define _tsystem  wsystem
 
 #else
 
 #define _istupper isupper
 #define _tgetenv  getenv
 #define _tmkdir   mkdir
+#define _tchdir   chdir
 #define _tcserror strerror
 #define _tcserror_r strerror_r
+#define _tsystem  system
 
 #define _ERR_error_tstring             ERR_error_string
 
index 650f60f..155fe7d 100644 (file)
@@ -399,7 +399,8 @@ LONG H_NetIfInfoFromIOCTL(const char *pszParam, const char *pArg, char *pValue)
 static LONG ValueFromLine(char *pszLine, int nPos, char *pValue)
 {
        int i;
-       char *eptr, *pszWord, szBuffer[256];
+       char *eptr, szBuffer[256];
+       const char *pszWord;
        DWORD dwValue;
        LONG nRet = SYSINFO_RC_ERROR;
 
index e2848cb..3774976 100644 (file)
@@ -2,11 +2,7 @@
 
 #include <nms_common.h>
 #include <nms_agent.h>
-#ifdef _WIN32
 #include <netxms-regex.h>
-#else
-#include <regex.h>
-#endif
 
 #include "main.h"
 #include "net.h"
@@ -53,7 +49,7 @@ int CheckHTTP(char *szAddr, DWORD dwAddr, short nPort, char *szURI,
        SOCKET nSd;
        regex_t preg;
 
-       if (tre_regcomp(&preg, szMatch, REG_EXTENDED | REG_ICASE | REG_NOSUB) != 0)
+       if (_tregcomp(&preg, szMatch, REG_EXTENDED | REG_ICASE | REG_NOSUB) != 0)
        {
                return PC_ERR_BAD_PARAMS;
        }
@@ -111,7 +107,7 @@ int CheckHTTP(char *szAddr, DWORD dwAddr, short nPort, char *szURI,
                        if (buff != NULL && offset > 0) {
                                buff[offset] = 0;
 
-                               if (tre_regexec(&preg, buff, 0, NULL, 0) == 0)
+                               if (_tregexec(&preg, buff, 0, NULL, 0) == 0)
                                {
                                        nRet = PC_ERR_NONE;
                                }
index f7112d5..59e6f37 100644 (file)
 #pragma warning(disable : 4996)
 #endif
 
-
-//
-// API version
-//
-
-extern "C" int EXPORT drvAPIVersion = DBDRV_API_VERSION;
-extern "C" const char EXPORT *drvName = "PGSQL";
+DECLARE_DRIVER_HEADER("PGSQL")
 
 
 //
@@ -48,14 +42,14 @@ extern "C" WCHAR EXPORT *DrvPrepareStringW(const WCHAR *str)
 
        const WCHAR *src = str;
        int outPos;
-       for(outPos = 1; *src != NULL; src++)
+       for(outPos = 1; *src != 0; src++)
        {
                long chval = *src;
                if (chval < 32)
                {
                        WCHAR buffer[8];
 
-                       snwprintf(buffer, 8, L"\\%03o", chval);
+                       swprintf(buffer, 8, L"\\%03o", chval);
                        len += 4;
                        if (len >= bufferSize)
                        {
@@ -107,7 +101,7 @@ extern "C" char EXPORT *DrvPrepareStringA(const char *str)
 
        const char *src = str;
        int outPos;
-       for(outPos = 1; *src != NULL; src++)
+       for(outPos = 1; *src != 0; src++)
        {
                long chval = (long)(*((unsigned char *)src));
                if (chval < 32)
@@ -245,7 +239,7 @@ extern "C" void EXPORT DrvDisconnect(DBDRV_CONNECTION pConn)
 // Perform non-SELECT query
 //
 
-static BOOL UnsafeDrvQuery(PG_CONN *pConn, char *szQuery, WCHAR *errorText)
+static BOOL UnsafeDrvQuery(PG_CONN *pConn, const char *szQuery, WCHAR *errorText)
 {
        PGresult        *pResult;
 
@@ -305,7 +299,7 @@ extern "C" DWORD EXPORT DrvQuery(PG_CONN *pConn, WCHAR *pwszQuery, WCHAR *errorT
 // Perform SELECT query
 //
 
-static DBDRV_RESULT UnsafeDrvSelect(PG_CONN *pConn, char *szQuery, WCHAR *errorText)
+static DBDRV_RESULT UnsafeDrvSelect(PG_CONN *pConn, const char *szQuery, WCHAR *errorText)
 {
        PGresult        *pResult;
 
index f83be5c..17e05a9 100644 (file)
 
 #include "sqlitedrv.h"
 
-
-//
-// API version
-//
-
-extern "C" int EXPORT drvAPIVersion = DBDRV_API_VERSION;
-extern "C" const char EXPORT *drvName = "SQLITE";
+DECLARE_DRIVER_HEADER("SQLITE")
 
 
 //
index 1d3a0e0..2564f3f 100644 (file)
 // Constructor
 //
 
-LogParserRule::LogParserRule(LogParser *parser,
-                                                                         const char *regexp, DWORD event, int numParams,
-                                                                         const TCHAR *source, DWORD level, 
-                                                                         DWORD idStart, DWORD idEnd)
+LogParserRule::LogParserRule(LogParser *parser, const char *regexp, DWORD event, int numParams,
+                             const TCHAR *source, DWORD level, DWORD idStart, DWORD idEnd)
 {
        String expandedRegexp;
 
index 322fe3d..4942e9f 100644 (file)
 **/
 
 #include "libnxsl.h"
-#ifdef _WIN32
 #include <netxms-regex.h>
-#else
-#include <regex.h>
-#endif
 
 
 //
@@ -822,7 +818,7 @@ void NXSL_Program::execute()
                   if (nRet == 0)
                   {
                      for(i = 0; i < cp->m_nStackItems; i++)
-                        delete m_pDataStack->pop();
+                        delete (NXSL_Value *)m_pDataStack->pop();
                      m_pDataStack->push(pValue);
                   }
                   else if (nRet == NXSL_STOP_SCRIPT_EXECUTION)
index 4c8c28b..b1cdcd4 100644 (file)
 **/
 
 #include "nxcore.h"
-#ifdef _WIN32
 #include <netxms-regex.h>
-#else
-#include <regex.h>
-#endif
 
 
 //
index 646a10f..0973a7c 100644 (file)
@@ -93,10 +93,10 @@ extern "C" BOOL EXPORT SMSDriverSend(const TCHAR *pszPhoneNumber, const TCHAR *p
 
       if (conn.connect())
       {
-                       const TCHAR *argv[2];
+                       TCHAR *argv[2];
 
-                       argv[0] = pszPhoneNumber;
-                       argv[1] = pszText;
+                       argv[0] = (TCHAR *)pszPhoneNumber;
+                       argv[1] = (TCHAR *)pszText;
          if (conn.ExecAction(_T("SMS.Send"), 2, argv) == ERR_SUCCESS)
                                bSuccess = TRUE;
                        conn.disconnect();
index 9689891..432fbe0 100644 (file)
@@ -92,7 +92,7 @@ BOOL ExecSQLBatch(const char *pszFile)
             bResult = SQLQuery(wcQuery);
                                free(wcQuery);
 #else
-            bResult = SQLQuery(pQuery);
+            bResult = SQLQuery((char *)pQuery);
 #endif
             if (!bResult)
                pNext = pBatch + dwSize;