Makefile 4.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. include Makefile.vars
  2. MAKEF=$(MAKE) -f Makefile.in
  3. default: all
  4. all: libhv examples
  5. examples: test timer loop tcp udp nc nmap httpd curl consul_cli
  6. clean:
  7. $(MAKEF) clean SRCDIRS=". base utils event http http/client http/server protocol consul examples"
  8. prepare:
  9. $(MKDIR) bin
  10. libhv:
  11. $(MKDIR) lib
  12. $(MAKEF) TARGET=$@ TARGET_TYPE=SHARED SRCDIRS=". base utils event http http/client http/server protocol"
  13. $(MAKEF) TARGET=$@ TARGET_TYPE=STATIC SRCDIRS=". base utils event http http/client http/server protocol"
  14. $(MKDIR) include/hv
  15. $(CP) $(INSTALL_HEADERS) include/hv
  16. install:
  17. $(MKDIR) $(INSTALL_INCDIR)
  18. $(CP) include/hv/* $(INSTALL_INCDIR)
  19. $(CP) lib/libhv.a lib/libhv.so $(INSTALL_LIBDIR)
  20. test: prepare
  21. $(MAKEF) TARGET=$@ SRCDIRS=". base utils" SRCS="examples/hmain_test.cpp"
  22. timer: prepare
  23. $(MAKEF) TARGET=$@ SRCDIRS=". base event" SRCS="examples/htimer_test.c"
  24. loop: prepare
  25. $(MAKEF) TARGET=$@ SRCDIRS=". base event" SRCS="examples/hloop_test.c"
  26. tcp: prepare
  27. $(MAKEF) TARGET=$@ SRCDIRS=". base event" SRCS="examples/tcp.c"
  28. udp: prepare
  29. $(MAKEF) TARGET=$@ SRCDIRS=". base event" SRCS="examples/udp.c"
  30. nc: prepare
  31. $(MAKEF) TARGET=$@ SRCDIRS=". base event" SRCS="examples/nc.c"
  32. nmap: prepare
  33. ifeq ($(OS), Windows)
  34. # for nmap on Windows platform, recommand EVENT_POLL, not EVENT_IOCP
  35. $(MAKEF) TARGET=$@ SRCDIRS=". base event" SRCS="examples/nmap.cpp" DEFINES="$(DEFINES) PRINT_DEBUG EVENT_POLL"
  36. else
  37. $(MAKEF) TARGET=$@ SRCDIRS=". base event" SRCS="examples/nmap.cpp" DEFINES="$(DEFINES) PRINT_DEBUG"
  38. endif
  39. httpd: prepare
  40. $(RM) examples/httpd/*.o
  41. $(MAKEF) TARGET=$@ SRCDIRS=". base utils event http http/server examples/httpd"
  42. curl: prepare
  43. $(MAKEF) TARGET=$@ SRCDIRS="$(CURL_SRCDIRS)" SRCDIRS=". base utils http http/client" SRCS="examples/curl.cpp"
  44. #$(MAKEF) TARGET=$@ SRCDIRS="$(CURL_SRCDIRS)" SRCDIRS=". base utils http http/client" SRCS="examples/curl.cpp" DEFINES="$(DEFINES) WITH_CURL CURL_STATICLIB"
  45. consul_cli: prepare
  46. $(MAKEF) TARGET=$@ SRCDIRS=". base utils http http/client consul" SRCS="examples/consul_cli.cpp" DEFINES="$(DEFINES) PRINT_DEBUG"
  47. unittest: prepare
  48. $(CC) -g -Wall -std=c99 -I. -Ibase -o bin/hmutex_test unittest/hmutex_test.c -pthread
  49. $(CC) -g -Wall -std=c99 -I. -Ibase -o bin/connect_test unittest/connect_test.c base/hsocket.c
  50. $(CC) -g -Wall -std=c99 -I. -Ibase -o bin/socketpair_test unittest/socketpair_test.c base/hsocket.c
  51. $(CXX) -g -Wall -std=c++11 -I. -Ibase -o bin/defer_test unittest/defer_test.cpp
  52. $(CXX) -g -Wall -std=c++11 -I. -Ibase -o bin/hstring_test unittest/hstring_test.cpp base/hstring.cpp base/hbase.c
  53. $(CXX) -g -Wall -std=c++11 -I. -Ibase -o bin/threadpool_test unittest/threadpool_test.cpp -pthread
  54. $(CXX) -g -Wall -std=c++11 -I. -Ibase -o bin/objectpool_test unittest/objectpool_test.cpp -pthread
  55. $(CXX) -g -Wall -std=c++11 -I. -Ibase -o bin/ls unittest/listdir_test.cpp base/hdir.cpp base/hbase.c
  56. $(CXX) -g -Wall -std=c++11 -I. -Ibase -Iutils -o bin/ifconfig unittest/ifconfig_test.cpp utils/ifconfig.cpp
  57. $(CC) -g -Wall -std=c99 -I. -Ibase -Iprotocol -o bin/nslookup unittest/nslookup_test.c protocol/dns.c
  58. $(CC) -g -Wall -std=c99 -I. -Ibase -Iprotocol -o bin/ping unittest/ping_test.c protocol/icmp.c base/hsocket.c base/htime.c -DPRINT_DEBUG
  59. $(CC) -g -Wall -std=c99 -I. -Ibase -Iprotocol -o bin/ftp unittest/ftp_test.c protocol/ftp.c base/hsocket.c
  60. $(CC) -g -Wall -std=c99 -I. -Ibase -Iutils -Iprotocol -o bin/sendmail unittest/sendmail_test.c protocol/smtp.c base/hsocket.c utils/base64.c
  61. # UNIX only
  62. webbench: prepare
  63. $(CC) -o bin/webbench unittest/webbench.c
  64. echo-servers:
  65. $(CC) -g -Wall -std=c99 -o bin/libevent_echo echo-servers/libevent_echo.c -levent
  66. $(CC) -g -Wall -std=c99 -o bin/libev_echo echo-servers/libev_echo.c -lev
  67. $(CC) -g -Wall -std=c99 -o bin/libuv_echo echo-servers/libuv_echo.c -luv
  68. $(CC) -g -Wall -std=c99 -o bin/libhv_echo echo-servers/libhv_echo.c -Iinclude/hv -Llib -lhv
  69. $(CXX) -g -Wall -std=c++11 -o bin/asio_echo echo-servers/asio_echo.cpp -lboost_system
  70. $(CXX) -g -Wall -std=c++11 -o bin/poco_echo echo-servers/poco_echo.cpp -lPocoNet -lPocoUtil -lPocoFoundation
  71. $(CXX) -g -Wall -std=c++11 -o bin/muduo_echo echo-servers/muduo_echo.cpp -lmuduo_net -lmuduo_base -lpthread
  72. .PHONY: clean prepare libhv install examples test timer loop tcp udp nc nmap httpd curl consul_cli unittest webbench echo-servers