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