| 1 | cmake_minimum_required(VERSION 2.6) |
|---|
| 2 | |
|---|
| 3 | set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH}) |
|---|
| 4 | include(YmlToC) |
|---|
| 5 | |
|---|
| 6 | # Project and version |
|---|
| 7 | project(boc-wimax) |
|---|
| 8 | set(BOC_WIMAX_VERSION_MAJOR 0) |
|---|
| 9 | set(BOC_WIMAX_VERSION_MINOR 3) |
|---|
| 10 | set(BOC_WIMAX_VERSION_PATCH 7) |
|---|
| 11 | set(BOC_WIMAX_VERSION ${BOC_WIMAX_VERSION_MAJOR}.${BOC_WIMAX_VERSION_MINOR}.${BOC_WIMAX_VERSION_PATCH}) |
|---|
| 12 | |
|---|
| 13 | # Options |
|---|
| 14 | option(USE_SYSLOG "Whether to send messages to the syslog") |
|---|
| 15 | option(USE_TRACE "Whether to print incoming/outgoing packets") |
|---|
| 16 | option(USE_OPENSSL "Whether to use OpenSSL instead of GnuTLS for EAP") |
|---|
| 17 | option(USE_DHCLIENT "Whether to use dhclient for DHCP") |
|---|
| 18 | option(USE_PUMP "Whether to use pump for DHCP") |
|---|
| 19 | |
|---|
| 20 | # Check headers |
|---|
| 21 | if(APPLE) |
|---|
| 22 | set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} /opt/local/include) |
|---|
| 23 | endif(APPLE) |
|---|
| 24 | include(CheckIncludeFiles) |
|---|
| 25 | check_include_files(libnet.h HAVE_LIBNET_H) |
|---|
| 26 | if(NOT HAVE_LIBNET_H) |
|---|
| 27 | message(FATAL_ERROR "Could not find libnet.h") |
|---|
| 28 | endif(NOT HAVE_LIBNET_H) |
|---|
| 29 | check_include_files(pcap.h HAVE_PCAP_H) |
|---|
| 30 | if(NOT HAVE_PCAP_H) |
|---|
| 31 | message(FATAL_ERROR "Could not find pcap.h") |
|---|
| 32 | endif(NOT HAVE_PCAP_H) |
|---|
| 33 | |
|---|
| 34 | check_include_files(netinet/ether.h HAVE_NETINET_ETHER_H) |
|---|
| 35 | if(HAVE_NETINET_ETHER_H) |
|---|
| 36 | add_definitions(-DHAVE_NETINET_ETHER_H) |
|---|
| 37 | endif(HAVE_NETINET_ETHER_H) |
|---|
| 38 | check_include_files(linux/if_tun.h HAVE_LINUX_IF_TUN_H) |
|---|
| 39 | if(HAVE_LINUX_IF_TUN_H) |
|---|
| 40 | add_definitions(-DHAVE_LINUX_IF_TUN_H) |
|---|
| 41 | endif(HAVE_LINUX_IF_TUN_H) |
|---|
| 42 | |
|---|
| 43 | # Check libraries |
|---|
| 44 | find_package(PkgConfig) |
|---|
| 45 | pkg_check_modules(DBUS REQUIRED "dbus-1") |
|---|
| 46 | if(USE_OPENSSL) |
|---|
| 47 | find_package(OpenSSL REQUIRED) |
|---|
| 48 | else(USE_OPENSSL) |
|---|
| 49 | pkg_check_modules(GNUTLS REQUIRED "gnutls") |
|---|
| 50 | endif(USE_OPENSSL) |
|---|
| 51 | include_directories(${GNUTLS_INCLUDE_DIRS}) |
|---|
| 52 | include_directories(${DBUS_INCLUDE_DIRS}) |
|---|
| 53 | find_library(LIBNET_LIBRARY net REQUIRED) |
|---|
| 54 | find_library(LIBPCAP_LIBRARY pcap REQUIRED) |
|---|
| 55 | find_package(LibGcrypt REQUIRED) |
|---|
| 56 | |
|---|
| 57 | include_directories( |
|---|
| 58 | ${CMAKE_CURRENT_SOURCE_DIR}/eap |
|---|
| 59 | ${CMAKE_CURRENT_SOURCE_DIR}/eap/crypto |
|---|
| 60 | ${CMAKE_CURRENT_SOURCE_DIR}/eap/utils |
|---|
| 61 | ${CMAKE_CURRENT_SOURCE_DIR}/eap/common) |
|---|
| 62 | |
|---|
| 63 | # EAP defines |
|---|
| 64 | add_definitions( |
|---|
| 65 | -DCONFIG_DEBUG_FILE |
|---|
| 66 | -DCONFIG_DEBUG_SYSLOG |
|---|
| 67 | -DEAP_TLS |
|---|
| 68 | -DEAP_PEAP |
|---|
| 69 | -DEAP_TTLS |
|---|
| 70 | -DEAP_MD5 |
|---|
| 71 | -DEAP_MSCHAPv2 |
|---|
| 72 | -DEAP_GTC |
|---|
| 73 | -DEAP_OTP |
|---|
| 74 | -DEAP_LEAP |
|---|
| 75 | -DEAP_PSK |
|---|
| 76 | -DEAP_PAX |
|---|
| 77 | -DEAP_SAKE |
|---|
| 78 | -DEAP_GPSK -DEAP_GPSK_SHA256 |
|---|
| 79 | -DEAP_TLS_FUNCS |
|---|
| 80 | -DIEEE8021X_EAPOL) |
|---|
| 81 | |
|---|
| 82 | if(USE_OPENSSL) |
|---|
| 83 | add_definitions(-DEAP_TLS_OPENSSL -DINTERNAL_SHA256) |
|---|
| 84 | set(EAP_SSL_SOURCES crypto/tls_openssl.c crypto/crypto_openssl.c) |
|---|
| 85 | set(EAP_SSL_LIBRARIES ${OPENSSL_LIBRARIES}) |
|---|
| 86 | else(USE_OPENSSL) |
|---|
| 87 | add_definitions(-DEAP_TLS_GNUTLS -DINTERNAL_SHA256) |
|---|
| 88 | set(EAP_SSL_SOURCES crypto/tls_gnutls.c crypto/crypto_gnutls.c) |
|---|
| 89 | set(EAP_SSL_LIBRARIES ${GNUTLS_LIBRARIES}) |
|---|
| 90 | endif(USE_OPENSSL) |
|---|
| 91 | |
|---|
| 92 | # DBus configuration |
|---|
| 93 | set(DBUS_CONF_DIR "/etc/dbus-1") |
|---|
| 94 | install(FILES boc-ms.conf DESTINATION ${DBUS_CONF_DIR}/system.d) |
|---|
| 95 | |
|---|
| 96 | # Packaging |
|---|
| 97 | set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "BoC WiMAX utilities") |
|---|
| 98 | set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/COPYING) |
|---|
| 99 | set(CPACK_PACKAGE_VERSION_MAJOR ${BOC_WIMAX_VERSION_MAJOR}) |
|---|
| 100 | set(CPACK_PACKAGE_VERSION_MINOR ${BOC_WIMAX_VERSION_MINOR}) |
|---|
| 101 | set(CPACK_PACKAGE_VERSION_PATCH ${BOC_WIMAX_VERSION_PATCH}) |
|---|
| 102 | include(CPack) |
|---|
| 103 | |
|---|
| 104 | add_subdirectory(eap) |
|---|
| 105 | add_subdirectory(src) |
|---|