Changeset: 5dde72757b9c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5dde72757b9c
Modified Files:
        CMakeLists.txt
        clients/mapiclient/mnc.c
        clients/odbc/driver/CMakeLists.txt
        clients/odbc/samples/CMakeLists.txt
        clients/odbc/setup/CMakeLists.txt
        clients/odbc/setup/drvcfg.h
        monetdb5/modules/mal/mal_mapi.c
        monetdb_config.h.in
        tools/merovingian/daemon/merovingian.h
Branch: cmake-fun
Log Message:

Added odbc include directories and socklen_t is available on all platforms.


diffs (236 lines):

diff --git a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -257,9 +257,7 @@ if(NOT MSVC)
                        foo (\"%s\", \"\");
                        return 0;
                }" HAVE_NORETURN)
-       if(HAVE_NORETURN)
-               set(_Noreturn "_Noreturn")
-       else()
+       if(NOT HAVE_NORETURN)
                set(_Noreturn "__attribute__((__noreturn__))")
        endif()
 endif()
@@ -835,10 +833,13 @@ endif()
 
 set(ODBCINST_LIBRARIES "")
 set(ODBC_LIBRARIES "")
+set(ODBC_INCLUDE_DIR "")
 set(WITH_ODBC "AUTO" CACHE STRING "Compile the MonetDB ODBC driver 
(default=AUTO)") # Check with HAVE_ODBC
 if(NOT ${WITH_ODBC} STREQUAL "NO")
-       find_path(HAVE_ODBCINST_H odbcinst.h)
-       if(HAVE_ODBCINST_H)
+       find_path(ODBCINST_INCLUDE odbcinst.h)
+       if(ODBCINST_INCLUDE)
+               set(HAVE_ODBCINST_H ON)
+               set(ODBC_INCLUDE_DIR "${ODBCINST_INCLUDE}")
                if(MSVC)
                        set(HAVE_SQLGETPRIVATEPROFILESTRING ON)
                        if(CMAKE_SIZEOF_VOID_P EQUAL 8) # Windows 64 bit
@@ -1138,7 +1139,7 @@ check_include_file("winsock.h" HAVE_WINS
 
 cmake_push_check_state()
 if(MSVC)
-       set(CMAKE_EXTRA_INCLUDE_FILES 
"${CMAKE_EXTRA_INCLUDE_FILES};sys/types.h;WS2tcpip.h;winsock.h;crtdefs.h")
+       set(CMAKE_EXTRA_INCLUDE_FILES 
"${CMAKE_EXTRA_INCLUDE_FILES};sys/types.h;winsock.h;crtdefs.h")
 else()
        set(CMAKE_EXTRA_INCLUDE_FILES 
"${CMAKE_EXTRA_INCLUDE_FILES};sys/types.h;sys/socket.h")
 endif()
@@ -1146,10 +1147,6 @@ check_type_size(SOCKET _SOCKET LANGUAGE 
 if(NOT HAVE__SOCKET)
        set(SOCKET int)
 endif()
-check_type_size(socklen_t SOCKLEN_T LANGUAGE C)
-if(NOT HAVE_SOCKLEN_T)
-       set(socklen_t int)
-endif()
 check_type_size(size_t SIZEOF_SIZE_T LANGUAGE C) #On C99
 check_type_size(ssize_t SIZEOF_SSIZE_T LANGUAGE C)
 if(NOT HAVE_SIZEOF_SSIZE_T AND MSVC AND CMAKE_SIZEOF_VOID_P EQUAL 8) # Windows 
64 bit
diff --git a/clients/mapiclient/mnc.c b/clients/mapiclient/mnc.c
--- a/clients/mapiclient/mnc.c
+++ b/clients/mapiclient/mnc.c
@@ -44,13 +44,6 @@
 # endif
 #endif
 
-#define SOCKPTR struct sockaddr *
-#ifdef HAVE_SOCKLEN_T
-#define SOCKLEN socklen_t
-#else
-#define SOCKLEN int
-#endif
-
 #if !defined(HAVE_ACCEPT4) || !defined(SOCK_CLOEXEC)
 #define accept4(sockfd, addr, addlen, flags)   accept(sockfd, addr, addrlen)
 #endif
@@ -183,7 +176,7 @@ main(int argc, char **argv)
                }
        } else {
                struct sockaddr_in server;
-               SOCKLEN length = 0;
+               socklen_t length = 0;
                SOCKET sock = INVALID_SOCKET;
                int on = 1;
                int i = 0;
@@ -211,7 +204,7 @@ main(int argc, char **argv)
                server.sin_addr.s_addr = htonl(INADDR_ANY);
                for (i = 0; i < 8; i++)
                        server.sin_zero[i] = 0;
-               length = (SOCKLEN) sizeof(server);
+               length = (socklen_t) sizeof(server);
 
                server.sin_port = htons((unsigned short) ((port) & 0xFFFF));
                if (bind(sock, (SOCKPTR) &server, length) == SOCKET_ERROR) {
diff --git a/clients/odbc/driver/CMakeLists.txt 
b/clients/odbc/driver/CMakeLists.txt
--- a/clients/odbc/driver/CMakeLists.txt
+++ b/clients/odbc/driver/CMakeLists.txt
@@ -6,7 +6,7 @@
 # Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
 #]]
 
-include_directories(../../mapilib)
+include_directories(../../mapilib ${ODBC_INCLUDE_DIR})
 
 add_library(MonetODBC MODULE
                        ODBCConvert.c
diff --git a/clients/odbc/samples/CMakeLists.txt 
b/clients/odbc/samples/CMakeLists.txt
--- a/clients/odbc/samples/CMakeLists.txt
+++ b/clients/odbc/samples/CMakeLists.txt
@@ -6,6 +6,8 @@
 # Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
 #]]
 
+include_directories(${ODBC_INCLUDE_DIR})
+
 if(HAVE_TESTING)
        add_executable(odbcsample1 odbcsample1.c)
        target_link_libraries(odbcsample1 PRIVATE ${ODBC_LIBRARIES})
diff --git a/clients/odbc/setup/CMakeLists.txt 
b/clients/odbc/setup/CMakeLists.txt
--- a/clients/odbc/setup/CMakeLists.txt
+++ b/clients/odbc/setup/CMakeLists.txt
@@ -6,5 +6,7 @@
 # Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
 #]]
 
+include_directories(${ODBC_INCLUDE_DIR})
+
 add_library(MonetODBCs MODULE drvcfg.c drvcfg.h)
 install(TARGETS MonetODBCs DESTINATION ${LIBDIR})
diff --git a/clients/odbc/setup/drvcfg.h b/clients/odbc/setup/drvcfg.h
--- a/clients/odbc/setup/drvcfg.h
+++ b/clients/odbc/setup/drvcfg.h
@@ -21,9 +21,6 @@
 #define _ODBCINST_H
 
 #include <unistd.h>
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
 #include <sys/types.h>
 
 #define ODBCVER 0x0351
diff --git a/monetdb5/modules/mal/mal_mapi.c b/monetdb5/modules/mal/mal_mapi.c
--- a/monetdb5/modules/mal/mal_mapi.c
+++ b/monetdb5/modules/mal/mal_mapi.c
@@ -70,11 +70,6 @@
 #endif
 
 #define SOCKPTR struct sockaddr *
-#ifdef HAVE_SOCKLEN_T
-#define SOCKLEN socklen_t
-#else
-#define SOCKLEN int
-#endif
 
 #if !defined(HAVE_ACCEPT4) || !defined(SOCK_CLOEXEC)
 #define accept4(sockfd, addr, addrlen, flags)  accept(sockfd, addr, addrlen)
@@ -561,7 +556,7 @@ SERVERlisten(int *Port, const char *Usoc
        struct sockaddr_un userver;
        SOCKET usock = INVALID_SOCKET;
 #endif
-       SOCKLEN length = 0;
+       socklen_t length = 0;
        int on = 1;
        int i = 0;
        MT_Id pid;
@@ -660,7 +655,7 @@ SERVERlisten(int *Port, const char *Usoc
                        server.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
                for (i = 0; i < 8; i++)
                        server.sin_zero[i] = 0;
-               length = (SOCKLEN) sizeof(server);
+               length = (socklen_t) sizeof(server);
 
                for (;;) {
                        server.sin_port = htons((unsigned short) ((port) & 
0xFFFF));
@@ -775,7 +770,7 @@ SERVERlisten(int *Port, const char *Usoc
                strncpy(userver.sun_path, usockfile, sizeof(userver.sun_path));
                userver.sun_path[sizeof(userver.sun_path) - 1] = 0;
 
-               length = (SOCKLEN) sizeof(userver);
+               length = (socklen_t) sizeof(userver);
                if(remove(usockfile) == -1 && errno != ENOENT) {
                        char *e = createException(IO, "mal_mapi.listen", 
OPERATION_FAILED ": remove UNIX socket file");
                        if (sock != INVALID_SOCKET)
diff --git a/monetdb_config.h.in b/monetdb_config.h.in
--- a/monetdb_config.h.in
+++ b/monetdb_config.h.in
@@ -298,9 +298,6 @@
 /* Define to 1 if you have the pthread_sigmask function */
 #cmakedefine HAVE_PTHREAD_SIGMASK 1
 
-/* Define to 1 if you have the <pwd.h> header file. */
-#cmakedefine HAVE_PWD_H 1
-
 /* Define to 1 if you have the `RIPEMD160_Update' function. */
 #cmakedefine HAVE_RIPEMD160_UPDATE 1
 
@@ -343,9 +340,6 @@
 /* Define to 1 if you have the `sigaction' function. */
 #cmakedefine HAVE_SIGACTION 1
 
-/* Define to 1 if the system has the type `socklen_t'. */
-#cmakedefine HAVE_SOCKLEN_T 1
-
 /* Define to 1 if you have the SQLGetPrivateProfileString function */
 #cmakedefine HAVE_SQLGETPRIVATEPROFILESTRING 1
 
@@ -529,9 +523,6 @@
 /* The size of `__uint128_t', as computed by sizeof. */
 #cmakedefine SIZEOF___UINT128_T @SIZEOF___UINT128_T@
 
-/* type used for sockets */
-#cmakedefine SOCKET @SOCKET@
-
 /* Shared Object extension */
 #cmakedefine SO_EXT "@SO_EXT@"
 
@@ -597,9 +588,9 @@
 #cmakedefine restrict @restrict@
 #endif
 
-/* type used by connect */
-#ifndef socklen_t
-#cmakedefine socklen_t @socklen_t@
+/* type used for sockets */
+#ifndef SOCKET
+#cmakedefine SOCKET @SOCKET@
 #endif
 
 /* Define to `int' if <sys/types.h> does not define. */
diff --git a/tools/merovingian/daemon/merovingian.h 
b/tools/merovingian/daemon/merovingian.h
--- a/tools/merovingian/daemon/merovingian.h
+++ b/tools/merovingian/daemon/merovingian.h
@@ -19,11 +19,6 @@
 #define CONTROL_SOCK   ".s.merovingian."
 
 #define SOCKPTR struct sockaddr *
-#ifdef HAVE_SOCKLEN_T
-#define SOCKLEN socklen_t
-#else
-#define SOCKLEN int
-#endif
 
 typedef char* err;
 
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to