aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkinichiro <kinichiro.inoguchi@gmail.com>2016-04-04 11:28:46 +0900
committerkinichiro <kinichiro.inoguchi@gmail.com>2016-04-04 14:27:43 +0900
commit3207606f117fe4844c5eb18019a4f0939349ece7 (patch)
tree9d245cfc79e840affb460a19f0d4aff943dd28e8
parent8131b377bffdacb8789c78ef31160b3bf4ee054b (diff)
downloadportable-3207606f117fe4844c5eb18019a4f0939349ece7.tar.gz
portable-3207606f117fe4844c5eb18019a4f0939349ece7.tar.bz2
portable-3207606f117fe4844c5eb18019a4f0939349ece7.zip
fix cmake on HP-UX
- CMakeLists.txt * add OS specific compiler flags and library * add checking size of time_t * add checking memmem() - tests/CMakeLists.txt * add if(HAVE_MEMMEM) for explicit_bzero * add checking SMALL_TIME_T for rfc5280time - crypto/CMakeLists.txt * add getentropy_hpux.c - tls/CMakeLists.txt * fix checking strsep
-rw-r--r--CMakeLists.txt27
-rw-r--r--crypto/CMakeLists.txt2
-rw-r--r--tests/CMakeLists.txt15
-rw-r--r--tls/CMakeLists.txt2
4 files changed, 40 insertions, 6 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 710d8a9..788a052 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,6 +2,7 @@ cmake_minimum_required (VERSION 2.8)
2include(CheckFunctionExists) 2include(CheckFunctionExists)
3include(CheckLibraryExists) 3include(CheckLibraryExists)
4include(CheckIncludeFiles) 4include(CheckIncludeFiles)
5include(CheckTypeSize)
5 6
6project (LibreSSL) 7project (LibreSSL)
7 8
@@ -33,6 +34,16 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
33 add_definitions(-D_GNU_SOURCE) 34 add_definitions(-D_GNU_SOURCE)
34endif() 35endif()
35 36
37if(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
38 if(CMAKE_C_COMPILER MATCHES "gcc")
39 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -std=gnu99 -fno-strict-aliasing")
40 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mlp64")
41 else()
42 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O2 +DD64 +Otype_safety=off")
43 endif()
44 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_XOPEN_SOURCE=600 -D__STRICT_ALIGNMENT")
45endif()
46
36add_definitions(-DLIBRESSL_INTERNAL) 47add_definitions(-DLIBRESSL_INTERNAL)
37add_definitions(-DOPENSSL_NO_HW_PADLOCK) 48add_definitions(-DOPENSSL_NO_HW_PADLOCK)
38add_definitions(-DOPENSSL_NO_ASM) 49add_definitions(-DOPENSSL_NO_ASM)
@@ -156,6 +167,11 @@ if(HAVE_MEMCMP)
156 add_definitions(-DHAVE_MEMCMP) 167 add_definitions(-DHAVE_MEMCMP)
157endif() 168endif()
158 169
170check_function_exists(memmem HAVE_MEMMEM)
171if(HAVE_MEMMEM)
172 add_definitions(-DHAVE_MEMMEM)
173endif()
174
159check_include_files(err.h HAVE_ERR_H) 175check_include_files(err.h HAVE_ERR_H)
160if(HAVE_ERR_H) 176if(HAVE_ERR_H)
161 add_definitions(-DHAVE_ERR_H) 177 add_definitions(-DHAVE_ERR_H)
@@ -171,11 +187,22 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
171 set(OPENSSL_LIBS ${OPENSSL_LIBS} rt) 187 set(OPENSSL_LIBS ${OPENSSL_LIBS} rt)
172 endif() 188 endif()
173endif() 189endif()
190if(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
191 set(OPENSSL_LIBS ${OPENSSL_LIBS} pthread)
192endif()
174 193
175if(NOT (CMAKE_SYSTEM_NAME MATCHES "Darwin" OR MSVC)) 194if(NOT (CMAKE_SYSTEM_NAME MATCHES "Darwin" OR MSVC))
176 set(BUILD_SHARED true) 195 set(BUILD_SHARED true)
177endif() 196endif()
178 197
198check_type_size(time_t SIZEOF_TIME_T)
199if(SIZEOF_TIME_T STREQUAL "4")
200 set(SMALL_TIME_T true)
201 message(WARNING " ** Warning, this system is unable to represent times past 2038")
202 message(WARNING " ** It will behave incorrectly when handling valid RFC5280 dates")
203endif()
204add_definitions(-DSIZEOF_TIME_T=${SIZEOF_TIME_T})
205
179add_subdirectory(crypto) 206add_subdirectory(crypto)
180add_subdirectory(ssl) 207add_subdirectory(ssl)
181add_subdirectory(apps) 208add_subdirectory(apps)
diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
index 0e44da7..904e69f 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
@@ -617,6 +617,8 @@ if(NOT HAVE_ARC4RANDOM_BUF)
617 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_aix.c) 617 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_aix.c)
618 elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") 618 elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
619 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_freebsd.c) 619 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_freebsd.c)
620 elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
621 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_hpux.c)
620 elseif(CMAKE_SYSTEM_NAME MATCHES "Linux") 622 elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
621 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_linux.c) 623 set(CRYPTO_SRC ${CRYPTO_SRC} compat/getentropy_linux.c)
622 elseif(CMAKE_SYSTEM_NAME MATCHES "NetBSD") 624 elseif(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 3ca41a2..f98a266 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -134,12 +134,13 @@ add_test(enginetest enginetest)
134# explicit_bzero 134# explicit_bzero
135# explicit_bzero relies on SA_ONSTACK, which is unavailable on Windows 135# explicit_bzero relies on SA_ONSTACK, which is unavailable on Windows
136if(NOT CMAKE_HOST_WIN32) 136if(NOT CMAKE_HOST_WIN32)
137add_executable(explicit_bzero explicit_bzero.c) 137if(HAVE_MEMMEM)
138 add_executable(explicit_bzero explicit_bzero.c)
139else()
140 add_executable(explicit_bzero explicit_bzero.c memmem.c)
141endif()
138target_link_libraries(explicit_bzero ${OPENSSL_LIBS}) 142target_link_libraries(explicit_bzero ${OPENSSL_LIBS})
139add_test(explicit_bzero explicit_bzero) 143add_test(explicit_bzero explicit_bzero)
140#if !HAVE_MEMMEM
141#explicit_bzero_SOURCES += memmem.c
142#endif
143endif() 144endif()
144 145
145# exptest 146# exptest
@@ -230,7 +231,11 @@ add_test(rc4test rc4test)
230# rfc5280time 231# rfc5280time
231add_executable(rfc5280time rfc5280time.c) 232add_executable(rfc5280time rfc5280time.c)
232target_link_libraries(rfc5280time ${OPENSSL_LIBS}) 233target_link_libraries(rfc5280time ${OPENSSL_LIBS})
233add_test(rfc5280time rfc5280time) 234if(SMALL_TIME_T)
235 add_test(rfc5280time ${CMAKE_CURRENT_SOURCE_DIR}/rfc5280time_small.test)
236else()
237 add_test(rfc5280time rfc5280time)
238endif()
234 239
235# rmdtest 240# rmdtest
236add_executable(rmdtest rmdtest.c) 241add_executable(rmdtest rmdtest.c)
diff --git a/tls/CMakeLists.txt b/tls/CMakeLists.txt
index ad6fe49..929d30c 100644
--- a/tls/CMakeLists.txt
+++ b/tls/CMakeLists.txt
@@ -17,7 +17,7 @@ set(
17) 17)
18 18
19 19
20if(NOT HAVE_STRCASECMP) 20if(NOT HAVE_STRSEP)
21 set(TLS_SRC ${TLS_SRC} strsep.c) 21 set(TLS_SRC ${TLS_SRC} strsep.c)
22endif() 22endif()
23 23