Root/package/network/services/uhttpd/src/Makefile

1CGI_SUPPORT ?= 1
2LUA_SUPPORT ?= 1
3TLS_SUPPORT ?= 1
4UHTTPD_TLS ?= cyassl
5
6CFLAGS ?= -I./lua-5.1.4/src $(TLS_CFLAGS) -O0 -ggdb3
7LDFLAGS ?= -L./lua-5.1.4/src
8
9CFLAGS += -Wall --std=gnu99
10
11ifeq ($(UHTTPD_TLS),openssl)
12  TLS_LDFLAGS ?= -L./openssl-0.9.8m -lssl
13  TLS_CFLAGS ?= -I./openssl-0.9.8m/include -DTLS_IS_OPENSSL
14else
15  TLS_LDFLAGS ?= -L./cyassl-1.4.0/src/.libs -lcyassl
16  TLS_CFLAGS ?= -I./cyassl-1.4.0/include -DTLS_IS_CYASSL
17endif
18
19OBJ := uhttpd.o uhttpd-file.o uhttpd-utils.o
20LIB := -Wl,--export-dynamic -lcrypt -ldl
21
22TLSLIB :=
23LUALIB :=
24
25HAVE_SHADOW=$(shell echo 'int main(void){ return !getspnam("root"); }' | \
26    $(CC) -include shadow.h -xc -o/dev/null - 2>/dev/null && echo yes)
27
28ifeq ($(HAVE_SHADOW),yes)
29  CFLAGS += -DHAVE_SHADOW
30endif
31
32ifeq ($(TLS_SUPPORT),1)
33  CFLAGS += -DHAVE_TLS
34endif
35
36ifeq ($(CGI_SUPPORT),1)
37  CFLAGS += -DHAVE_CGI
38endif
39
40ifeq ($(LUA_SUPPORT),1)
41  CFLAGS += -DHAVE_LUA
42endif
43
44ifeq ($(UBUS_SUPPORT),1)
45  CFLAGS += -DHAVE_UBUS
46endif
47
48
49world: compile
50
51ifeq ($(CGI_SUPPORT),1)
52  OBJ += uhttpd-cgi.o
53endif
54
55ifeq ($(LUA_SUPPORT),1)
56  LUALIB := uhttpd_lua.so
57
58  $(LUALIB): uhttpd-lua.c
59        $(CC) $(CFLAGS) $(LDFLAGS) $(FPIC) \
60            -shared -lm -llua -ldl \
61            -o $(LUALIB) uhttpd-lua.c
62endif
63
64ifeq ($(TLS_SUPPORT),1)
65  TLSLIB := uhttpd_tls.so
66
67  $(TLSLIB): uhttpd-tls.c
68        $(CC) $(CFLAGS) $(LDFLAGS) $(FPIC) \
69            -shared $(TLS_LDFLAGS) \
70            -o $(TLSLIB) uhttpd-tls.c
71endif
72
73ifeq ($(UBUS_SUPPORT),1)
74  UBUSLIB := uhttpd_ubus.so
75
76  $(UBUSLIB): uhttpd-ubus.c
77        $(CC) $(CFLAGS) $(LDFLAGS) $(FPIC) \
78            -shared -lubus -ljson -lblobmsg_json \
79            -o $(UBUSLIB) uhttpd-ubus.c
80endif
81
82%.o: %.c
83    $(CC) $(CFLAGS) -c -o $@ $<
84
85compile: $(OBJ) $(TLSLIB) $(LUALIB) $(UBUSLIB)
86    $(CC) -o uhttpd $(LDFLAGS) $(OBJ) $(LIB)
87
88clean:
89    rm -f *.o *.so uhttpd
90

Archive Download this file



interactive