summaryrefslogtreecommitdiff
path: root/package/uhttpd/src/Makefile
blob: e18833e8f3c2dcf416b4c5f54f89c879673bb06f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
CGI_SUPPORT ?= 1
LUA_SUPPORT ?= 1
TLS_SUPPORT ?= 1
UHTTPD_TLS ?= cyassl

CFLAGS ?= -I./lua-5.1.4/src -I$(TLS_INCLUDE_DIR) -O0 -ggdb3
LDFLAGS ?= -L./lua-5.1.4/src -L$(TLS_LIB_DIR)

CFLAGS += -Wall --std=gnu99

ifeq ($(UHTTPD_TLS),openssl)
  TLS_LDFLAGS := -lssl
  TLS_INCLUDE_DIR := ./openssl-0.9.8m/include
  TLS_LIB_DIR := ./openssl-0.9.8m
else
  TLS_LDFLAGS := -lcyassl
  TLS_INCLUDE_DIR := ./cyassl-1.4.0/include
  TLS_LIB_DIR := ./cyassl-1.4.0/src/.libs
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

world: compile

ifeq ($(CGI_SUPPORT),1)
  OBJ += uhttpd-cgi.o
  CFLAGS += -DHAVE_CGI
endif

ifeq ($(LUA_SUPPORT),1)
  CFLAGS += -DHAVE_LUA
  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)
  CFLAGS += -DHAVE_TLS
  TLSLIB := uhttpd_tls.so

  $(TLSLIB): uhttpd-tls.c
		$(CC) $(CFLAGS) $(LDFLAGS) $(FPIC) \
			-shared $(TLS_LDFLAGS) \
			-o $(TLSLIB) uhttpd-tls.c
endif

%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $<

compile: $(OBJ) $(TLSLIB) $(LUALIB)
	$(CC) -o uhttpd $(LDFLAGS) $(LIB) $(OBJ)

clean:
	rm -f *.o *.so uhttpd