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