cmake_minimum_required(VERSION 2.6)
PROJECT(uhttpd C)
INCLUDE (CheckFunctionExists)
IF(NOT TLS_SUPPORT)
SET(TLS_SUPPORT "openssl")
ENDIF()
OPTION(CGI_SUPPORT "CGI support" ON)
OPTION(LUA_SUPPORT "Lua support" ON)
OPTION(UBUS_SUPPORT "ubus support" ON)
ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -Wmissing-declarations)
IF(DEBUG)
ADD_DEFINITIONS(-DDEBUG -g3)
IF(NO_OPTIMIZE)
ADD_DEFINITIONS(-O0)
ENDIF()
ENDIF()
IF(APPLE)
INCLUDE_DIRECTORIES(/opt/local/include)
LINK_DIRECTORIES(/opt/local/lib)
SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -undefined dynamic_lookup")
ENDIF()
CHECK_FUNCTION_EXISTS(getspnam HAVE_SHADOW)
IF(HAVE_SHADOW)
ADD_DEFINITIONS(-DHAVE_SHADOW)
ENDIF()
SET(SOURCES uhttpd.c uhttpd-file.c uhttpd-utils.c)
FIND_LIBRARY(LIBS crypt)
IF(LIBS STREQUAL "LIBS-NOTFOUND")
SET(LIBS "")
ENDIF()
SET(TLS_CFLAGS)
IF(CGI_SUPPORT)
SET(SOURCES ${SOURCES} uhttpd-cgi.c)
ADD_DEFINITIONS(-DHAVE_CGI)
ENDIF()
IF(NOT TLS_SUPPORT STREQUAL "none")
ADD_DEFINITIONS(-DHAVE_TLS ${TLS_CFLAGS})
ADD_LIBRARY(uhttpd_tls MODULE uhttpd-tls.c)
SET(PLUGINS ${PLUGINS} uhttpd_tls)
ENDIF()
IF(TLS_SUPPORT STREQUAL "none")
ELSEIF(TLS_SUPPORT STREQUAL "openssl")
ADD_DEFINITIONS(-DTLS_IS_OPENSSL)
TARGET_LINK_LIBRARIES(uhttpd_tls ${TLS_LDFLAGS} ssl)
ELSEIF(TLS_SUPPORT STREQUAL "cyassl")
ADD_DEFINITIONS(-DTLS_IS_CYASSL)
TARGET_LINK_LIBRARIES(uhttpd_tls ${TLS_LDFLAGS} cyassl)
ELSE()
MESSAGE(FATAL_ERROR "Invalid TLS provider option, use none|openssl|cyassl")
ENDIF()
IF(UBUS_SUPPORT)
ADD_DEFINITIONS(-DHAVE_UBUS)
ADD_LIBRARY(uhttpd_ubus MODULE uhttpd-ubus.c)
TARGET_LINK_LIBRARIES(uhttpd_ubus ubox ubus json blobmsg_json)
SET(PLUGINS ${PLUGINS} uhttpd_ubus)
ENDIF()
IF(LUA_SUPPORT)
FIND_PROGRAM(PKG_CONFIG pkg-config)
IF(NOT LUA_CFLAGS AND PKG_CONFIG)
EXECUTE_PROCESS(
COMMAND pkg-config --silence-errors --cflags lua5.1
OUTPUT_VARIABLE LUA_CFLAGS
OUTPUT_STRIP_TRAILING_WHITESPACE
)
ENDIF()
IF(NOT LUA_LIBS AND PKG_CONFIG)
EXECUTE_PROCESS(
COMMAND pkg-config --silence-errors --libs lua5.1
OUTPUT_VARIABLE LUA_LIBS
OUTPUT_STRIP_TRAILING_WHITESPACE
)
ENDIF()
IF(NOT LUA_LIBS)
SET(LUA_LIBS "lua")
ENDIF()
ADD_DEFINITIONS(-DHAVE_LUA ${LUA_CFLAGS})
ADD_LIBRARY(uhttpd_lua MODULE uhttpd-lua.c)
TARGET_LINK_LIBRARIES(uhttpd_lua ${LUA_LIBS} m dl)
SET(PLUGINS ${PLUGINS} uhttpd_lua)
ENDIF()
ADD_EXECUTABLE(uhttpd ${SOURCES})
TARGET_LINK_LIBRARIES(uhttpd ubox dl ${LIBS})
IF(PLUGINS)
SET_TARGET_PROPERTIES(${PLUGINS} PROPERTIES
PREFIX ""
)
ENDIF()
INSTALL(TARGETS uhttpd ${PLUGINS}
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
)
没有合适的资源?快使用搜索试试~ 我知道了~
uhttpd-2012-10-30
5星 · 超过95%的资源 需积分: 10 13 下载量 82 浏览量
2015-12-04
18:05:28
上传
评论
收藏 31KB GZ 举报
温馨提示
共17个文件
h:8个
c:7个
txt:1个
uhttpd-2012-10-30-e57bf6d8bfa465a50eea2c30269acdfe751a46fd.tar.gz qca9531
资源推荐
资源详情
资源评论
收起资源包目录
uhttpd-2012-10-30-e57bf6d8bfa465a50eea2c30269acdfe751a46fd.tar.gz (17个子文件)
uhttpd-2012-10-30
CMakeLists.txt 3KB
.gitignore 83B
uhttpd-utils.c 22KB
uhttpd-utils.h 4KB
uhttpd-cgi.c 13KB
uhttpd-tls.c 3KB
uhttpd-mimetypes.h 3KB
uhttpd-tls.h 1KB
uhttpd-file.c 9KB
uhttpd-cgi.h 1KB
uhttpd-ubus.h 2KB
uhttpd-lua.c 12KB
uhttpd.c 29KB
uhttpd-file.h 975B
uhttpd.h 4KB
uhttpd-ubus.c 21KB
uhttpd-lua.h 1KB
共 17 条
- 1
资源评论
- Softwareshrimp2016-11-21解决了问题,非常感谢!!!
南棱笑笑生
- 粉丝: 1689
- 资源: 462
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功