xref: /netbsd-src/external/mit/libuv/dist/docs/code/Makefile (revision 5f2f42719cd62ff11fd913b40b7ce19f07c4fd25)
1examples=\
2	helloworld\
3	default-loop\
4	idle-basic\
5	uvcat\
6	uvtee\
7	onchange\
8	thread-create\
9	queue-work\
10	progress\
11	tcp-echo-server\
12	dns\
13	udp-dhcp\
14	idle-compute\
15	ref-timer\
16	spawn\
17	detach\
18	proc-streams\
19	cgi\
20	pipe-echo-server\
21	multi-echo-server\
22	tty\
23	tty-gravity\
24	interfaces\
25	locks \
26	signal \
27	uvstop \
28	queue-cancel
29
30UV_PATH=$(shell pwd)/../..
31UV_LIB=$(UV_PATH)/.libs/libuv.a
32CFLAGS=-g -Wall -I$(UV_PATH)/include
33LIBS=
34
35uname_S=$(shell uname -s)
36
37ifeq (Darwin, $(uname_S))
38CFLAGS+=-framework CoreServices
39SHARED_LIB_FLAGS=-bundle -undefined dynamic_lookup -o plugin/libhello.dylib
40endif
41
42ifeq (Linux, $(uname_S))
43LIBS=-lrt -ldl -lm -pthread -lcurl
44SHARED_LIB_FLAGS=-shared -Wl,-soname,libhello.so -o plugin/libhello.so
45PLUGIN_EXE_FLAGS=-Wl,-export-dynamic
46endif
47
48
49all: $(examples) plugin/plugin proc-streams/test cgi/tick multi-echo-server/worker uvwget/uvwget
50
51$(examples): % : %/main.c
52	gcc $(CFLAGS) -o $@/$@  $< $(UV_LIB) $(LIBS)
53
54plugin: plugin/plugin
55plugin/plugin: plugin/*.c
56	gcc $(CFLAGS) $(PLUGIN_EXE_FLAGS) -o plugin/plugin plugin/main.c $(UV_LIB) $(LIBS)
57	gcc -g -Wall -c -fPIC -o plugin/hello.o plugin/hello.c
58	gcc $(SHARED_LIB_FLAGS) plugin/hello.o
59
60proc-streams/test: proc-streams/test.c
61	gcc -g -Wall -o proc-streams/test proc-streams/test.c
62
63cgi/tick: cgi/tick.c
64	gcc -g -Wall -o cgi/tick cgi/tick.c
65
66multi-echo-server/worker: multi-echo-server/worker.c
67	gcc $(CFLAGS) -o multi-echo-server/worker multi-echo-server/worker.c $(UV_LIB) $(LIBS)
68
69uvwget: uvwget/uvwget
70uvwget/uvwget: uvwget/main.c
71	gcc $(CFLAGS) `curl-config --cflags --libs` -o uvwget/uvwget uvwget/main.c $(UV_LIB) $(LIBS)
72
73clean:
74	for dir in $(examples); do cd $$dir; rm -f $$dir; rm -rf $$dir.dSYM; cd ..; done
75	rm -rf plugin/*.o plugin/libhello.*
76	rm -rf plugin/plugin plugin/plugin.dSYM
77	rm -rf proc-streams/test proc-streams/test.dSYM
78	rm -rf cgi/tick cgi/tick.dSYM
79	rm -rf multi-echo-server/worker multi-echo-server/worker.dSYM
80	rm -rf uvwget/uvwget uvwget/uvwget.dSYM
81
82.PHONY: clean all $(examples) plugin uvwget
83