summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2008-10-04 01:16:11 +0200
committerDavid Sommerseth <dazo@users.sourceforge.net>2008-10-04 01:16:11 +0200
commitc538055d4664a41acf296653bbd9d23b15b6c6f7 (patch)
tree68d3d182b9d369f9ef2c17ea2dc5726d694f520b /CMakeLists.txt
parent298838fa11b9c4e88e132c4551b93b9a1750fac5 (diff)
downloadeurephia-c538055d4664a41acf296653bbd9d23b15b6c6f7.tar.gz
eurephia-c538055d4664a41acf296653bbd9d23b15b6c6f7.tar.xz
eurephia-c538055d4664a41acf296653bbd9d23b15b6c6f7.zip
Removed dependency on sed and CmakeLists.in
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt100
1 files changed, 100 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..b679353
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,100 @@
+PROJECT(eurephia C)
+cmake_minimum_required(VERSION 2.6)
+SET(eurephia_auth_SRC
+ certinfo.c
+ eurephia-auth.c
+ eurephia.c
+ eurephiadb.c
+ eurephiadb_session.c
+ eurephiafw.c
+ eurephiafw_helpers.c
+ eurephia_getsym.c
+ eurephia_log.c
+ eurephia_values.c
+ passwd.c
+ sha512.c
+)
+OPTION(DEBUG "Add more verbose debug information" OFF)
+OPTION(SHOW_SECRETS "Show passwords as clear text in logs." OFF)
+OPTION(SQLITE3 "Build database driver for SQLite3" OFF)
+SET(OPNVPN_SRC "" CACHE STRING "Path to OpenVPN source code")
+
+
+IF(SQLITE3)
+ message(STATUS "Will build database interface for SQLite")
+ SET(subdirs ${subdirs} database/sqlite)
+ SET(DATABASE ON)
+ENDIF(SQLITE3)
+
+IF(FW_IPTABLES)
+ message(STATUS "Will build iptables firewall module")
+ SET(subdirs ${subdirs} firewall/iptables)
+ENDIF(FW_IPTABLES)
+
+IF(NOT DATABASE)
+ message(FATAL_ERROR "Cannot build eurephia without any database drivers.")
+ENDIF(NOT DATABASE)
+
+IF(DEBUG)
+ message(STATUS "DEBUG enabled - might be a security issue")
+ ADD_DEFINITIONS(-DENABLE_DEBUG)
+ IF(SHOW_SECRETS)
+ message(STATUS "SHOW_SECRETS ENABLED -- THIS WILL LOG PASSWORDS IN CLEAR TEXT")
+ ADD_DEFINITIONS(-DSHOW_SECRETS)
+ ENDIF(SHOW_SECRETS)
+ENDIF(DEBUG)
+
+IF(NOT OPENVPN_SRC)
+ message(FATAL_ERROR "Missing path to OpenVPN source - try running ./configure again")
+ENDIF(NOT OPENVPN_SRC)
+INCLUDE_DIRECTORIES(BEFORE ${OPENVPN_SRC} .)
+
+SET(CHECK_INCL_FILE "${OPENVPN_SRC}/openvpn-plugin.h")
+IF(NOT EXISTS ${CHECK_INCL_FILE})
+ message(FATAL_ERROR "Missing openvpn-plugin.h ... Is the OpenVPN source code really located here? ${OPENVPN_SRC}")
+ENDIF(NOT EXISTS ${CHECK_INCL_FILE})
+
+INCLUDE(CheckIncludeFile)
+CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H)
+INCLUDE(CheckLibraryExists)
+CHECK_LIBRARY_EXISTS(dl dlopen "" HAVE_DLOPEN)
+CHECK_LIBRARY_EXISTS(dl dlclose "" HAVE_DLCLOSE)
+IF(NOT HAVE_DLOPEN OR NOT HAVE_DLCLOSE)
+ message(FATAL_ERROR "Missing proper dl library")
+ENDIF(NOT HAVE_DLOPEN OR NOT HAVE_DLCLOSE)
+
+CHECK_INCLUDE_FILE(pthread.h HAVE_PTHREAD_H)
+CHECK_LIBRARY_EXISTS(pthread pthread_mutex_lock "" HAVE_PTHREAD_MUTEX_LOCK)
+CHECK_LIBRARY_EXISTS(pthread pthread_mutex_unlock "" HAVE_PTHREAD_MUTEX_UNLOCK)
+IF(NOT HAVE_PTHREAD_MUTEX_LOCK OR NOT HAVE_PTHREAD_MUTEX_UNLOCK)
+ message(FATAL_ERROR "Missing proper pthread_mutex support")
+ENDIF(NOT HAVE_PTHREAD_MUTEX_LOCK OR NOT HAVE_PTHREAD_MUTEX_UNLOCK)
+
+CHECK_LIBRARY_EXISTS(rt sem_wait "" HAVE_RT_SEM_WAIT)
+CHECK_LIBRARY_EXISTS(rt sem_post "" HAVE_RT_SEM_POST)
+CHECK_LIBRARY_EXISTS(rt mq_open "" HAVE_RT_MQ_OPEN)
+CHECK_LIBRARY_EXISTS(rt mq_close "" HAVE_RT_MQ_CLOSE)
+CHECK_LIBRARY_EXISTS(rt mq_unlink "" HAVE_RT_MQ_UNLINK)
+CHECK_LIBRARY_EXISTS(rt mq_send "" HAVE_RT_MQ_SEND)
+CHECK_LIBRARY_EXISTS(rt mq_receive "" HAVE_RT_MQ_RECEIVE)
+CHECK_LIBRARY_EXISTS(rt mq_getattr "" HAVE_RT_MQ_GETATTR)
+IF(NOT HAVE_RT_SEM_WAIT OR NOT HAVE_RT_SEM_POST)
+ message(FATAL_ERROR "Missing proper pthread semaphore support")
+ENDIF(NOT HAVE_RT_SEM_WAIT OR NOT HAVE_RT_SEM_POST)
+IF(NOT HAVE_RT_MQ_OPEN OR NOT HAVE_RT_MQ_CLOSE OR NOT HAVE_RT_MQ_UNLINK OR NOT HAVE_RT_MQ_SEND OR NOT HAVE_RT_MQ_RECEIVE OR NOT HAVE_RT_MQ_GETATTR)
+ message(FATAL_ERROR "Missing proper pthread message queue support")
+ENDIF(NOT HAVE_RT_MQ_OPEN OR NOT HAVE_RT_MQ_CLOSE OR NOT HAVE_RT_MQ_UNLINK OR NOT HAVE_RT_MQ_SEND OR NOT HAVE_RT_MQ_RECEIVE OR NOT HAVE_RT_MQ_GETATTR)
+
+CHECK_INCLUDE_FILE(openssl/rand.h HAVE_OPENSSL_RAND_H)
+CHECK_LIBRARY_EXISTS(crypto RAND_load_file "" HAVE_OPENSSL_RAND_LOAD_FILE)
+CHECK_LIBRARY_EXISTS(crypto RAND_pseudo_bytes "" HAVE_OPENSSL_RAND_PSEUDO_BYTES)
+IF(NOT HAVE_OPENSSL_RAND_H OR NOT HAVE_OPENSSL_RAND_LOAD_FILE OR NOT HAVE_OPENSSL_RAND_PSEUDO_BYTES)
+ message(FATAL_ERROR "Missing OpenSSL crypto support")
+ENDIF(NOT HAVE_OPENSSL_RAND_H OR NOT HAVE_OPENSSL_RAND_LOAD_FILE OR NOT HAVE_OPENSSL_RAND_PSEUDO_BYTES)
+
+ADD_DEFINITIONS(-g -Wall)
+ADD_LIBRARY(eurephia-auth MODULE ${eurephia_auth_SRC})
+TARGET_LINK_LIBRARIES(eurephia-auth dl pthread rt crypto)
+SET_TARGET_PROPERTIES(eurephia-auth PROPERTIES OUTPUT_NAME eurephia-auth PREFIX "")
+
+SUBDIRS(${subdirs})