diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-10-04 15:13:59 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2012-10-04 15:13:59 +0200 |
commit | a2fdb9ce87eee1212dcb88a5c5399465e8c89cbc (patch) | |
tree | c1599b4f83c41e2bb48b1f598124e037e6ed1e62 | |
parent | 4e27cbe55a0ef7622c085e6172865773e1c2575e (diff) | |
download | uhttpd-a2fdb9ce87eee1212dcb88a5c5399465e8c89cbc.tar.gz |
replace the makefile with a cmake file
-rw-r--r-- | CMakeLists.txt | 110 | ||||
-rw-r--r-- | Makefile | 89 |
2 files changed, 110 insertions, 89 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..c3dccd1 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,110 @@ +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) +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 crypt) + +IF(PLUGINS) + SET_TARGET_PROPERTIES(${PLUGINS} PROPERTIES + PREFIX "" + ) +ENDIF() + +INSTALL(TARGETS uhttpd ${PLUGINS} + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib +) diff --git a/Makefile b/Makefile deleted file mode 100644 index 98226ed..0000000 --- a/Makefile +++ /dev/null @@ -1,89 +0,0 @@ -CGI_SUPPORT ?= 1 -LUA_SUPPORT ?= 1 -TLS_SUPPORT ?= 1 -UHTTPD_TLS ?= cyassl - -CFLAGS ?= -I./lua-5.1.4/src $(TLS_CFLAGS) -O0 -ggdb3 -LDFLAGS ?= -L./lua-5.1.4/src - -CFLAGS += -Wall --std=gnu99 - -ifeq ($(UHTTPD_TLS),openssl) - TLS_LDFLAGS ?= -L./openssl-0.9.8m -lssl - TLS_CFLAGS ?= -I./openssl-0.9.8m/include -DTLS_IS_OPENSSL -else - TLS_LDFLAGS ?= -L./cyassl-1.4.0/src/.libs -lcyassl - TLS_CFLAGS ?= -I./cyassl-1.4.0/include -DTLS_IS_CYASSL -endif - -OBJ := uhttpd.o uhttpd-file.o uhttpd-utils.o -LIB := -Wl,--export-dynamic -lcrypt -ldl - -TLSLIB := -LUALIB := - -HAVE_SHADOW=$(shell echo 'int main(void){ return !getspnam("root"); }' | \ - $(CC) -include shadow.h -xc -o/dev/null - 2>/dev/null && echo yes) - -ifeq ($(HAVE_SHADOW),yes) - CFLAGS += -DHAVE_SHADOW -endif - -ifeq ($(TLS_SUPPORT),1) - CFLAGS += -DHAVE_TLS -endif - -ifeq ($(CGI_SUPPORT),1) - CFLAGS += -DHAVE_CGI -endif - -ifeq ($(LUA_SUPPORT),1) - CFLAGS += -DHAVE_LUA -endif - -ifeq ($(UBUS_SUPPORT),1) - CFLAGS += -DHAVE_UBUS -endif - - -world: compile - -ifeq ($(CGI_SUPPORT),1) - OBJ += uhttpd-cgi.o -endif - -ifeq ($(LUA_SUPPORT),1) - LUALIB := uhttpd_lua.so - - $(LUALIB): uhttpd-lua.c - $(CC) $(CFLAGS) $(LDFLAGS) $(FPIC) \ - -shared -lm -llua -ldl \ - -o $(LUALIB) uhttpd-lua.c -endif - -ifeq ($(TLS_SUPPORT),1) - TLSLIB := uhttpd_tls.so - - $(TLSLIB): uhttpd-tls.c - $(CC) $(CFLAGS) $(LDFLAGS) $(FPIC) \ - -shared $(TLS_LDFLAGS) \ - -o $(TLSLIB) uhttpd-tls.c -endif - -ifeq ($(UBUS_SUPPORT),1) - UBUSLIB := uhttpd_ubus.so - - $(UBUSLIB): uhttpd-ubus.c - $(CC) $(CFLAGS) $(LDFLAGS) $(FPIC) \ - -shared -lubus -ljson -lblobmsg_json \ - -o $(UBUSLIB) uhttpd-ubus.c -endif - -%.o: %.c - $(CC) $(CFLAGS) -c -o $@ $< - -compile: $(OBJ) $(TLSLIB) $(LUALIB) $(UBUSLIB) - $(CC) -o uhttpd $(LDFLAGS) $(OBJ) $(LIB) - -clean: - rm -f *.o *.so uhttpd |