config: set RFC defaults for preferred lifetime
[project/odhcpd.git] / CMakeLists.txt
index 0855458489c5a687c716e220e3f428f3907ea268..828fa71d13e57504614305612531cae0e25abb7c 100644 (file)
@@ -5,7 +5,7 @@ cmake_policy(SET CMP0015 NEW)
 project(odhcpd C)
 
 set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -std=c99")
+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)
@@ -13,7 +13,13 @@ INCLUDE_DIRECTORIES(${ubox_include_dir} ${libnl-tiny_include_dir})
 
 FIND_LIBRARY(libnl NAMES nl-tiny)
 
-add_definitions(-D_GNU_SOURCE -Wall -Werror -Wextra)
+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})
@@ -25,7 +31,12 @@ if(${UBUS})
        set(EXT_LINK ${EXT_LINK} ubus)
 endif(${UBUS})
 
-add_executable(odhcpd src/odhcpd.c src/config.c src/router.c src/dhcpv6.c src/ndp.c src/dhcpv6-ia.c src/dhcpv4.c ${EXT_SRC})
+if(${DHCPV4_SUPPORT})
+       add_definitions(-DDHCPV4_SUPPORT)
+       set(EXT_SRC ${EXT_SRC} src/dhcpv4.c)
+endif(${DHCPV4_SUPPORT})
+
+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