blob: d9bbffd6baa246245529af96808a503ce4535484 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
cmake_minimum_required(VERSION 2.8)
cmake_policy(SET CMP0015 NEW)
# Project Definition
project(odhcpd C)
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3 -std=gnu99")
FIND_PATH(ubox_include_dir libubox/uloop.h)
FIND_PATH(libnl-tiny_include_dir netlink-generic.h PATH_SUFFIXES libnl-tiny)
INCLUDE_DIRECTORIES(${ubox_include_dir} ${libnl-tiny_include_dir})
FIND_LIBRARY(libnl NAMES nl-tiny)
add_definitions(-D_GNU_SOURCE -Os -Wall -Werror --std=gnu99)
IF(CMAKE_C_COMPILER_VERSION VERSION_GREATER 6)
add_definitions(-Wextra -Werror=implicit-function-declaration)
add_definitions(-Wformat -Werror=format-security -Werror=format-nonliteral)
ENDIF()
add_definitions(-Wno-unused-parameter -Wmissing-declarations)
if (${EXT_CER_ID})
add_definitions(-DEXT_CER_ID=${EXT_CER_ID})
endif(${EXT_CER_ID})
if(${UBUS})
add_definitions(-DWITH_UBUS)
set(EXT_SRC ${EXT_SRC} src/ubus.c)
set(EXT_LINK ${EXT_LINK} ubus)
endif(${UBUS})
if(${DHCPV4_SUPPORT})
add_definitions(-DDHCPV4_SUPPORT)
set(EXT_SRC ${EXT_SRC} src/dhcpv4.c)
endif(${DHCPV4_SUPPORT})
if(${MBEDTLS})
add_definitions(-DWITH_MBEDTLS)
set(EXT_SRC ${EXT_SRC} src/prng_mbed.c)
set(EXT_LINK ${EXT_LINK} mbedcrypto)
else(${MBEDTLS})
set(EXT_SRC ${EXT_SRC} src/prng_md5.c)
endif(${MBEDCTLS})
add_executable(odhcpd src/odhcpd.c src/config.c src/router.c src/dhcpv6.c src/ndp.c src/dhcpv6-ia.c src/netlink.c ${EXT_SRC})
target_link_libraries(odhcpd resolv ubox uci ${libnl} ${EXT_LINK})
# Installation
install(TARGETS odhcpd DESTINATION sbin/)
# Packaging information
set(CPACK_PACKAGE_VERSION "1")
set(CPACK_PACKAGE_CONTACT "Steven Barth <steven@midlink.org>")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "odhcpd")
set(CPACK_GENERATOR "DEB;RPM;STGZ")
set(CPACK_STRIP_FILES true)
SET(CPACK_DEBIAN_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION})
set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}_${CPACK_DEBIAN_PACKAGE_VERSION}")
include(CPack)
|