Home | History | Annotate | Line # | Download | only in code
Makefile revision 1.1.1.1
      1 examples=\
      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 
     30 UV_PATH=$(shell pwd)/../..
     31 UV_LIB=$(UV_PATH)/.libs/libuv.a
     32 CFLAGS=-g -Wall -I$(UV_PATH)/include
     33 LIBS=
     34 
     35 uname_S=$(shell uname -s)
     36 
     37 ifeq (Darwin, $(uname_S))
     38 CFLAGS+=-framework CoreServices
     39 SHARED_LIB_FLAGS=-bundle -undefined dynamic_lookup -o plugin/libhello.dylib
     40 endif
     41 
     42 ifeq (Linux, $(uname_S))
     43 LIBS=-lrt -ldl -lm -pthread -lcurl
     44 SHARED_LIB_FLAGS=-shared -Wl,-soname,libhello.so -o plugin/libhello.so
     45 PLUGIN_EXE_FLAGS=-Wl,-export-dynamic
     46 endif
     47 
     48 
     49 all: $(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 
     54 plugin: plugin/plugin
     55 plugin/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 
     60 proc-streams/test: proc-streams/test.c
     61 	gcc -g -Wall -o proc-streams/test proc-streams/test.c
     62 
     63 cgi/tick: cgi/tick.c
     64 	gcc -g -Wall -o cgi/tick cgi/tick.c
     65 
     66 multi-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 
     69 uvwget: uvwget/uvwget
     70 uvwget/uvwget: uvwget/main.c
     71 	gcc $(CFLAGS) `curl-config --cflags --libs` -o uvwget/uvwget uvwget/main.c $(UV_LIB) $(LIBS)
     72 
     73 clean:
     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