# Project Definition
project(odhcp6c C)
set(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -std=c99")
-add_definitions(-D_GNU_SOURCE -Wall -Werror -Wextra -pedantic)
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g3 -std=c99")
+add_definitions(-D_GNU_SOURCE -Os -Wall -Werror -pedantic)
+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_PREFIX_CLASS})
add_definitions(-DEXT_PREFIX_CLASS=${EXT_PREFIX_CLASS})
add_definitions(-DEXT_CER_ID=${EXT_CER_ID})
endif(${EXT_CER_ID})
-if(${EXT_BFD_PING})
- add_definitions(-DEXT_BFD_PING)
- set(BFD_SOURCE src/bfd.c)
-endif(${EXT_BFD_PING})
+set(SOURCES src/odhcp6c.c src/dhcpv6.c src/ra.c src/script.c)
-add_executable(odhcp6c src/odhcp6c.c src/dhcpv6.c src/ra.c src/script.c src/md5.c ${BFD_SOURCE})
-target_link_libraries(odhcp6c resolv)
+set(LIBRARIES resolv)
+
+if(USE_LIBUBOX)
+ add_definitions(-DUSE_LIBUBOX)
+ set(LIBRARIES ${LIBRARIES} ubox)
+ FIND_PATH(ubox_include_dir libubox/md5.h)
+ INCLUDE_DIRECTORIES(${ubox_include_dir})
+else()
+ set(SOURCES ${SOURCES} src/md5.c)
+endif()
+
+add_executable(odhcp6c ${SOURCES})
+
+target_link_libraries(odhcp6c ${LIBRARIES})
# Installation
install(TARGETS odhcp6c DESTINATION sbin/)