odhcpd: fix compilation with GCC10
[oweals/odhcpd.git] / CMakeLists.txt
index 8c338f38c5d2844b49f5c7ae80af0aab34b714ea..3c3e0aef9cec199338b3f1674de6d208ee732a51 100644 (file)
@@ -5,12 +5,15 @@ 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} -g -std=gnu99")
 
 FIND_PATH(ubox_include_dir libubox/uloop.h)
-INCLUDE_DIRECTORIES(${ubox_include_dir})
+FIND_PATH(libnl-tiny_include_dir netlink-generic.h PATH_SUFFIXES libnl-tiny)
+INCLUDE_DIRECTORIES(${ubox_include_dir} ${libnl-tiny_include_dir})
 
-add_definitions(-D_GNU_SOURCE -Wall -Werror -Wextra)
+FIND_LIBRARY(libnl NAMES nl-tiny)
+
+add_definitions(-D_GNU_SOURCE --std=gnu99 -Wall -Werror -Wextra -Wmissing-declarations -Wno-unused-parameter)
 
 if (${EXT_CER_ID})
        add_definitions(-DEXT_CER_ID=${EXT_CER_ID})
@@ -22,8 +25,13 @@ 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})
-target_link_libraries(odhcpd resolv ubox uci ${EXT_LINK})
+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
 install(TARGETS odhcpd DESTINATION sbin/)