Makefile 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. NEED_GPERFTOOLS=1
  2. NEED_GTEST=1
  3. include ../config.mk
  4. CPPFLAGS+=-DBTHREAD_USE_FAST_PTHREAD_MUTEX -D__const__= -D_GNU_SOURCE -DUSE_SYMBOLIZE -DNO_TCMALLOC -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS
  5. CPPFLAGS+=-DUNIT_TEST -Dprivate=public -Dprotected=public -DBVAR_NOT_LINK_DEFAULT_VARIABLES --include sstream_workaround.h
  6. CXXFLAGS+=$(CPPFLAGS) -g -pipe -Wall -W -fPIC -fstrict-aliasing -Wno-invalid-offsetof -Wno-unused-parameter -fno-omit-frame-pointer -std=c++0x
  7. #required by butil/crc32.cc to boost performance for 10x
  8. ifeq ($(shell test $(GCC_VERSION) -ge 40400; echo $$?),0)
  9. CXXFLAGS+=-msse4 -msse4.2
  10. endif
  11. #not solved yet
  12. ifeq ($(shell test $(GCC_VERSION) -ge 70000; echo $$?),0)
  13. CXXFLAGS+=-Wno-aligned-new
  14. endif
  15. HDRPATHS=-I. -I../src $(addprefix -I, $(HDRS))
  16. LIBPATHS=-L.. $(addprefix -L, $(LIBS))
  17. TEST_BUTIL_SOURCES = \
  18. at_exit_unittest.cc \
  19. atomicops_unittest.cc \
  20. base64_unittest.cc \
  21. big_endian_unittest.cc \
  22. bits_unittest.cc \
  23. hash_tables_unittest.cc \
  24. linked_list_unittest.cc \
  25. mru_cache_unittest.cc \
  26. small_map_unittest.cc \
  27. stack_container_unittest.cc \
  28. cpu_unittest.cc \
  29. crash_logging_unittest.cc \
  30. leak_tracker_unittest.cc \
  31. proc_maps_linux_unittest.cc \
  32. stack_trace_unittest.cc \
  33. environment_unittest.cc \
  34. file_util_unittest.cc \
  35. dir_reader_posix_unittest.cc \
  36. file_path_unittest.cc \
  37. file_unittest.cc \
  38. scoped_temp_dir_unittest.cc \
  39. guid_unittest.cc \
  40. hash_unittest.cc \
  41. lazy_instance_unittest.cc \
  42. md5_unittest.cc \
  43. aligned_memory_unittest.cc \
  44. linked_ptr_unittest.cc \
  45. ref_counted_memory_unittest.cc \
  46. ref_counted_unittest.cc \
  47. scoped_ptr_unittest.cc \
  48. scoped_vector_unittest.cc \
  49. singleton_unittest.cc \
  50. weak_ptr_unittest.cc \
  51. observer_list_unittest.cc \
  52. file_descriptor_shuffle_unittest.cc \
  53. rand_util_unittest.cc \
  54. safe_numerics_unittest.cc \
  55. scoped_clear_errno_unittest.cc \
  56. scoped_generic_unittest.cc \
  57. security_unittest.cc \
  58. sha1_unittest.cc \
  59. stl_util_unittest.cc \
  60. nullable_string16_unittest.cc \
  61. safe_sprintf_unittest.cc \
  62. string16_unittest.cc \
  63. stringprintf_unittest.cc \
  64. string_number_conversions_unittest.cc \
  65. string_piece_unittest.cc \
  66. string_split_unittest.cc \
  67. string_tokenizer_unittest.cc \
  68. string_util_unittest.cc \
  69. stringize_macros_unittest.cc \
  70. sys_string_conversions_unittest.cc \
  71. utf_offset_string_conversions_unittest.cc \
  72. utf_string_conversions_unittest.cc \
  73. cancellation_flag_unittest.cc \
  74. condition_variable_unittest.cc \
  75. lock_unittest.cc \
  76. waitable_event_unittest.cc \
  77. type_traits_unittest.cc \
  78. non_thread_safe_unittest.cc \
  79. platform_thread_unittest.cc \
  80. simple_thread_unittest.cc \
  81. thread_checker_unittest.cc \
  82. thread_collision_warner_unittest.cc \
  83. thread_id_name_manager_unittest.cc \
  84. thread_local_storage_unittest.cc \
  85. thread_local_unittest.cc \
  86. watchdog_unittest.cc \
  87. pr_time_unittest.cc \
  88. time_unittest.cc \
  89. version_unittest.cc \
  90. logging_unittest.cc \
  91. cacheline_unittest.cpp \
  92. class_name_unittest.cpp \
  93. endpoint_unittest.cpp \
  94. unique_ptr_unittest.cpp \
  95. errno_unittest.cpp \
  96. fd_guard_unittest.cpp \
  97. file_watcher_unittest.cpp \
  98. find_cstr_unittest.cpp \
  99. scoped_lock_unittest.cpp \
  100. status_unittest.cpp \
  101. string_printf_unittest.cpp \
  102. string_splitter_unittest.cpp \
  103. synchronous_event_unittest.cpp \
  104. temp_file_unittest.cpp \
  105. baidu_thread_local_unittest.cpp \
  106. baidu_time_unittest.cpp \
  107. flat_map_unittest.cpp \
  108. crc32c_unittest.cc \
  109. iobuf_unittest.cc \
  110. test_switches.cc \
  111. scoped_locale.cc \
  112. test_file_util_linux.cc \
  113. butil_unittest_main.cpp
  114. TEST_BUTIL_OBJS = iobuf.pb.o $(addsuffix .o, $(basename $(TEST_BUTIL_SOURCES)))
  115. TEST_BVAR_SOURCES = $(wildcard bvar_*_unittest.cpp)
  116. TEST_BVAR_OBJS = $(addsuffix .o, $(basename $(TEST_BVAR_SOURCES)))
  117. TEST_BTHREAD_SOURCES = $(wildcard bthread_*unittest.cpp)
  118. TEST_BTHREAD_OBJS = $(addsuffix .o, $(basename $(TEST_BTHREAD_SOURCES)))
  119. TEST_BRPC_SOURCES = $(wildcard brpc_*unittest.cpp)
  120. TEST_BRPC_OBJS = $(addsuffix .o, $(basename $(TEST_BRPC_SOURCES)))
  121. TEST_PROTO_SOURCES = $(wildcard *.proto)
  122. TEST_PROTO_OBJS = $(TEST_PROTO_SOURCES:.proto=.pb.o)
  123. TEST_BINS = test_butil test_bvar $(TEST_BTHREAD_SOURCES:.cpp=) $(TEST_BRPC_SOURCES:.cpp=)
  124. .PHONY:all
  125. all: $(TEST_BINS)
  126. .PHONY:clean
  127. clean:clean_bins clean_debug
  128. @echo "Cleaning"
  129. @rm -rf $(TEST_BUTIL_OBJS) $(TEST_BVAR_OBJS) $(TEST_BTHREAD_OBJS) \
  130. $(TEST_BRPC_OBJS) $(TEST_PROTO_OBJS)
  131. .PHONY:clean_bins
  132. clean_bins:
  133. @rm -rf $(TEST_BINS)
  134. .PHONY:clean_debug
  135. clean_debug:
  136. @$(MAKE) -C.. clean_debug
  137. ../libbrpc.dbg.a ../libbvar.dbg.a: FORCE
  138. @$(MAKE) -C.. debug
  139. FORCE:
  140. .PRECIOUS: %.o
  141. test_butil:$(TEST_BUTIL_OBJS) ../libbrpc.dbg.a
  142. @echo "Linking $@"
  143. @$(CXX) -o $@ $(LIBPATHS) -Xlinker "-(" $^ -Wl,-Bstatic $(STATIC_LINKINGS) -Wl,-Bdynamic -Xlinker "-)" $(DYNAMIC_LINKINGS)
  144. test_bvar:$(TEST_BVAR_OBJS) ../libbvar.dbg.a
  145. @echo "Linking $@"
  146. @$(CXX) -o $@ $(LIBPATHS) -Xlinker "-(" $^ -Wl,-Bstatic $(STATIC_LINKINGS) -Wl,-Bdynamic -Xlinker "-)" $(DYNAMIC_LINKINGS)
  147. bthread%unittest:bthread%unittest.o ../libbrpc.dbg.a
  148. @echo "Linking $@"
  149. @$(CXX) -o $@ $(LIBPATHS) -Xlinker "-(" $^ -Wl,-Bstatic $(STATIC_LINKINGS) -Wl,-Bdynamic -Xlinker "-)" $(DYNAMIC_LINKINGS)
  150. brpc_%_unittest:$(TEST_PROTO_OBJS) brpc_%_unittest.o ../libbrpc.dbg.a
  151. @echo "Linking $@"
  152. @$(CXX) -o $@ $(LIBPATHS) -Xlinker "-(" $^ -Wl,-Bstatic $(STATIC_LINKINGS) -Wl,-Bdynamic -Xlinker "-)" $(DYNAMIC_LINKINGS)
  153. %.pb.cc %.pb.h:%.proto
  154. @echo "Generating $@"
  155. @$(PROTOC) --cpp_out=. --proto_path=. --proto_path=../src --proto_path=$(PROTOBUF_HDR) $<
  156. %.o:%.cpp
  157. @echo "Compiling $@"
  158. @$(CXX) -c $(HDRPATHS) $(CXXFLAGS) $< -o $@
  159. %.o:%.cc
  160. @echo "Compiling $@"
  161. @$(CXX) -c $(HDRPATHS) $(CXXFLAGS) $< -o $@