blob: 2d7cc38902ce03f0ed102cf15d9515c115b97317 (
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
|
CC = gcc
LD = gcc
AR = ar
CFLAGS += -Wall -Wextra -g -O0
LDFLAGS +=
CPPFLAGS += -Isrc
LDLIBS += -luv
SH_LDFLAGS = $(LDFLAGS) -shared
SH_CFLAGS = $(CFLAGS) -DBUILDING_UVH_SHARED
PLATFORM = $(shell uname -s | tr [A-Z] [a-z])
ifeq ($(findstring mingw32,$(PLATFORM)),mingw32)
LDLIBS += -lws2_32 -lpsapi -liphlpapi
SHAREDNAME = libuvh.dll
else
SHAREDNAME = libuvh.so
SH_CFLAGS += -fPIC
endif
SOURCES = uvh.c http_parser.c sds.c
STATIC_OBJS = $(addprefix src/static_,$(SOURCES:.c=.o))
SHARED_OBJS = $(addprefix src/shared_,$(SOURCES:.c=.o))
.PHONY: all
all: static shared examples
.PHONY: static
static: libuvh.a
.PHONY: shared
shared: $(SHAREDNAME)
.PHONY: examples
examples: hello chunked fileserver
src/static_%.o: src/%.c
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
src/shared_%.o: src/%.c
$(CC) $(SH_CFLAGS) $(CPPFLAGS) -c -o $@ $<
libuvh.a: $(STATIC_OBJS)
$(AR) rcs $@ $^
$(SHAREDNAME): $(SHARED_OBJS)
$(LD) $(SH_LDFLAGS) -o $@ $^ $(LDLIBS)
hello: examples/hello.o libuvh.a
$(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)
chunked: examples/chunked.o libuvh.a
$(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)
fileserver: examples/fileserver.o libuvh.a
$(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)
.PHONY: clean
clean:
rm -f src/*.o
rm -f examples/*.o
rm -f libuvh.a
rm -f hello
rm -f chunked
rm -f fileserver
rm -f $(SHAREDNAME)
|