diff options
author | David Sommerseth <dazo@users.sourceforge.net> | 2008-10-04 01:16:11 +0200 |
---|---|---|
committer | David Sommerseth <dazo@users.sourceforge.net> | 2008-10-04 01:16:11 +0200 |
commit | c538055d4664a41acf296653bbd9d23b15b6c6f7 (patch) | |
tree | 68d3d182b9d369f9ef2c17ea2dc5726d694f520b | |
parent | 298838fa11b9c4e88e132c4551b93b9a1750fac5 (diff) | |
download | eurephia-c538055d4664a41acf296653bbd9d23b15b6c6f7.tar.gz eurephia-c538055d4664a41acf296653bbd9d23b15b6c6f7.tar.xz eurephia-c538055d4664a41acf296653bbd9d23b15b6c6f7.zip |
Removed dependency on sed and CmakeLists.in
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | CMakeLists.txt | 100 | ||||
-rwxr-xr-x | configure | 4 |
3 files changed, 102 insertions, 3 deletions
@@ -12,4 +12,3 @@ CMakeFiles/* */*/CMakeFiles/* */*/cmake_install.cmake Makefile -CMakeLists.txt 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}) @@ -27,6 +27,7 @@ while [ ! -z "$1" ]; do ;; -s|--openvpn-src) OPENVPN_SRC_DIR="$2" + PARAMS="${PARAMS} -DOPENVPN_SRC:STRING=$2" shift ;; -D|--debug) @@ -68,8 +69,7 @@ if [ ${DB} = 0 ]; then exit 1; fi -rm -f CMakeCache.txt CMakeList.txt -cat CMakeLists.in | sed "s#\@\@OPENVPN_SRC\@\@#${OPENVPN_SRC_DIR}#" > CMakeLists.txt +rm -f CMakeCache.txt cmake . ${PARAMS} ec=$? if [ $ec = 0 ]; then |