cmake_minimum_required(VERSION 2.6)
PROJECT(uhttpd C)
+
+INCLUDE (CheckFunctionExists)
+
SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
-ADD_DEFINITIONS(-O0 -Wall -Werror -Wmissing-declarations --std=gnu99 -g3)
+ADD_DEFINITIONS(-D_FILE_OFFSET_BITS=64 -Os -Wall -Werror -Wmissing-declarations --std=gnu99 -g3)
OPTION(TLS_SUPPORT "TLS support" ON)
OPTION(LUA_SUPPORT "Lua support" ON)
OPTION(UBUS_SUPPORT "ubus support" ON)
+OPTION(UCODE_SUPPORT "ucode support" ON)
IF(APPLE)
INCLUDE_DIRECTORIES(/opt/local/include)
SET(LIBS "")
ENDIF()
-SET(SOURCES main.c listen.c client.c utils.c file.c auth.c cgi.c relay.c proc.c plugin.c)
+FIND_PATH(ubox_include_dir libubox/usock.h)
+INCLUDE_DIRECTORIES(${ubox_include_dir})
+
+SET(SOURCES main.c listen.c client.c utils.c file.c auth.c cgi.c relay.c proc.c plugin.c handler.c)
IF(TLS_SUPPORT)
SET(SOURCES ${SOURCES} tls.c)
ADD_DEFINITIONS(-DHAVE_TLS)
ENDIF()
+CHECK_FUNCTION_EXISTS(getspnam HAVE_SHADOW)
+IF(HAVE_SHADOW)
+ ADD_DEFINITIONS(-DHAVE_SHADOW)
+ENDIF()
+
ADD_EXECUTABLE(uhttpd ${SOURCES})
-TARGET_LINK_LIBRARIES(uhttpd ubox dl ${LIBS})
+FIND_LIBRARY(libjson NAMES json-c json)
+TARGET_LINK_LIBRARIES(uhttpd ubox dl json_script blobmsg_json ${libjson} ${LIBS})
SET(PLUGINS "")
IF(LUA_SUPPORT)
TARGET_LINK_LIBRARIES(uhttpd_lua ${LUA_LIBS} m dl)
ENDIF()
+IF(UCODE_SUPPORT)
+ SET(PLUGINS ${PLUGINS} uhttpd_ucode)
+ ADD_DEFINITIONS(-DHAVE_UCODE)
+ ADD_LIBRARY(uhttpd_ucode MODULE ucode.c)
+ TARGET_LINK_LIBRARIES(uhttpd_ucode ucode ${libjson})
+ENDIF()
+
IF(UBUS_SUPPORT)
SET(PLUGINS ${PLUGINS} uhttpd_ubus)
ADD_DEFINITIONS(-DHAVE_UBUS)
- ADD_LIBRARY(uhttpd_ubus MODULE ubus.c ubus-session.c)
- TARGET_LINK_LIBRARIES(uhttpd_ubus ubus ubox blobmsg_json json)
+ ADD_LIBRARY(uhttpd_ubus MODULE ubus.c)
+ TARGET_LINK_LIBRARIES(uhttpd_ubus ubus ubox blobmsg_json ${libjson})
ENDIF()
IF(PLUGINS)