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