83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
		
		
			
		
	
	
			83 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
|  | examples=\
 | ||
|  | 	helloworld\
 | ||
|  | 	default-loop\
 | ||
|  | 	idle-basic\
 | ||
|  | 	uvcat\
 | ||
|  | 	uvtee\
 | ||
|  | 	onchange\
 | ||
|  | 	thread-create\
 | ||
|  | 	queue-work\
 | ||
|  | 	progress\
 | ||
|  | 	tcp-echo-server\
 | ||
|  | 	dns\
 | ||
|  | 	udp-dhcp\
 | ||
|  | 	idle-compute\
 | ||
|  | 	ref-timer\
 | ||
|  | 	spawn\
 | ||
|  | 	detach\
 | ||
|  | 	proc-streams\
 | ||
|  | 	cgi\
 | ||
|  | 	pipe-echo-server\
 | ||
|  | 	multi-echo-server\
 | ||
|  | 	tty\
 | ||
|  | 	tty-gravity\
 | ||
|  | 	interfaces\
 | ||
|  | 	locks \
 | ||
|  | 	signal \
 | ||
|  | 	uvstop \
 | ||
|  | 	queue-cancel | ||
|  | 
 | ||
|  | UV_PATH=$(shell pwd)/../.. | ||
|  | UV_LIB=$(UV_PATH)/.libs/libuv.a | ||
|  | CFLAGS=-g -Wall -I$(UV_PATH)/include | ||
|  | LIBS= | ||
|  | 
 | ||
|  | uname_S=$(shell uname -s) | ||
|  | 
 | ||
|  | ifeq (Darwin, $(uname_S)) | ||
|  | CFLAGS+=-framework CoreServices | ||
|  | SHARED_LIB_FLAGS=-bundle -undefined dynamic_lookup -o plugin/libhello.dylib | ||
|  | endif | ||
|  | 
 | ||
|  | ifeq (Linux, $(uname_S)) | ||
|  | LIBS=-lrt -ldl -lm -pthread -lcurl | ||
|  | SHARED_LIB_FLAGS=-shared -Wl,-soname,libhello.so -o plugin/libhello.so | ||
|  | PLUGIN_EXE_FLAGS=-Wl,-export-dynamic | ||
|  | endif | ||
|  | 
 | ||
|  | 
 | ||
|  | all: $(examples) plugin/plugin proc-streams/test cgi/tick multi-echo-server/worker uvwget/uvwget | ||
|  | 
 | ||
|  | $(examples): % : %/main.c | ||
|  | 	gcc $(CFLAGS) -o $@/$@  $< $(UV_LIB) $(LIBS) | ||
|  | 
 | ||
|  | plugin: plugin/plugin | ||
|  | plugin/plugin: plugin/*.c | ||
|  | 	gcc $(CFLAGS) $(PLUGIN_EXE_FLAGS) -o plugin/plugin plugin/main.c $(UV_LIB) $(LIBS) | ||
|  | 	gcc -g -Wall -c -fPIC -o plugin/hello.o plugin/hello.c | ||
|  | 	gcc $(SHARED_LIB_FLAGS) plugin/hello.o | ||
|  | 
 | ||
|  | proc-streams/test: proc-streams/test.c | ||
|  | 	gcc -g -Wall -o proc-streams/test proc-streams/test.c | ||
|  | 
 | ||
|  | cgi/tick: cgi/tick.c | ||
|  | 	gcc -g -Wall -o cgi/tick cgi/tick.c | ||
|  | 
 | ||
|  | multi-echo-server/worker: multi-echo-server/worker.c | ||
|  | 	gcc $(CFLAGS) -o multi-echo-server/worker multi-echo-server/worker.c $(UV_LIB) $(LIBS) | ||
|  | 
 | ||
|  | uvwget: uvwget/uvwget | ||
|  | uvwget/uvwget: uvwget/main.c | ||
|  | 	gcc $(CFLAGS) `curl-config --cflags --libs` -o uvwget/uvwget uvwget/main.c $(UV_LIB) $(LIBS) | ||
|  | 
 | ||
|  | clean: | ||
|  | 	for dir in $(examples); do cd $$dir; rm -f $$dir; rm -rf $$dir.dSYM; cd ..; done | ||
|  | 	rm -rf plugin/*.o plugin/libhello.* | ||
|  | 	rm -rf plugin/plugin plugin/plugin.dSYM | ||
|  | 	rm -rf proc-streams/test proc-streams/test.dSYM | ||
|  | 	rm -rf cgi/tick cgi/tick.dSYM | ||
|  | 	rm -rf multi-echo-server/worker multi-echo-server/worker.dSYM | ||
|  | 	rm -rf uvwget/uvwget uvwget/uvwget.dSYM | ||
|  | 
 | ||
|  | .PHONY: clean all $(examples) plugin uvwget |