This is an automated email from the ASF dual-hosted git repository.

jamesge pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-brpc.git


The following commit(s) were added to refs/heads/master by this push:
     new 255a653  Link shared libbrpc in UTs built by the Makefile
255a653 is described below

commit 255a653c651aeec2f0a4f6b063fea9c5789f209d
Author: gejun <ge...@bilibili.com>
AuthorDate: Wed May 29 15:29:04 2019 +0800

    Link shared libbrpc in UTs built by the Makefile
---
 Makefile      | 26 +++++++++++++++-----------
 test/Makefile | 50 ++++++++++++++++++++++++++++++++------------------
 2 files changed, 47 insertions(+), 29 deletions(-)

diff --git a/Makefile b/Makefile
index cdd1ff5..27a506c 100644
--- a/Makefile
+++ b/Makefile
@@ -17,9 +17,9 @@ COMMA = ,
 SOPATHS = $(addprefix -Wl$(COMMA)-rpath$(COMMA), $(LIBS))
 SRCEXTS = .c .cc .cpp .proto
 
-TARGET_LIB_DY = libbrpc.so
+SOEXT = so
 ifeq ($(SYSTEM),Darwin)
-    TARGET_LIB_DY = libbrpc.dylib
+    SOEXT = dylib
 endif
 
 #required by butil/crc32.cc to boost performance for 10x
@@ -205,19 +205,19 @@ DEBUG_OBJS = $(OBJS:.o=.dbg.o)
 PROTOS=$(BRPC_PROTOS) src/idl_options.proto
 
 .PHONY:all
-all:  protoc-gen-mcpack libbrpc.a $(TARGET_LIB_DY) output/include output/lib 
output/bin
+all:  protoc-gen-mcpack libbrpc.a libbrpc.$(SOEXT) output/include output/lib 
output/bin
 
 .PHONY:debug
-debug: test/libbrpc.dbg.a test/libbvar.dbg.a
+debug: test/libbrpc.dbg.$(SOEXT) test/libbvar.dbg.a
 
 .PHONY:clean
 clean:
        @echo "Cleaning"
-       @rm -rf src/mcpack2pb/generator.o protoc-gen-mcpack libbrpc.a 
$(TARGET_LIB_DY) $(OBJS) output/include output/lib output/bin 
$(PROTOS:.proto=.pb.h) $(PROTOS:.proto=.pb.cc)
+       @rm -rf src/mcpack2pb/generator.o protoc-gen-mcpack libbrpc.a 
libbrpc.$(SOEXT) $(OBJS) output/include output/lib output/bin 
$(PROTOS:.proto=.pb.h) $(PROTOS:.proto=.pb.cc)
 
 .PHONY:clean_debug
 clean_debug:
-       @rm -rf test/libbrpc.dbg.a test/libbvar.dbg.a $(DEBUG_OBJS)
+       @rm -rf test/libbrpc.dbg.$(SOEXT) test/libbvar.dbg.a $(DEBUG_OBJS)
 
 .PRECIOUS: %.o
 
@@ -234,7 +234,7 @@ libbrpc.a:$(BRPC_PROTOS:.proto=.pb.h) $(OBJS)
        @echo "Packing $@"
        @ar crs $@ $(filter %.o,$^)
 
-$(TARGET_LIB_DY):$(BRPC_PROTOS:.proto=.pb.h) $(OBJS)
+libbrpc.$(SOEXT):$(BRPC_PROTOS:.proto=.pb.h) $(OBJS)
        @echo "Linking $@"
 ifeq ($(SYSTEM),Linux)
        @$(CXX) -shared -o $@ $(LIBPATHS) $(SOPATHS) -Xlinker "-(" $(filter 
%.o,$^) -Xlinker "-)" $(STATIC_LINKINGS) $(DYNAMIC_LINKINGS)
@@ -246,9 +246,13 @@ test/libbvar.dbg.a:$(BVAR_DEBUG_OBJS)
        @echo "Packing $@"
        @ar crs $@ $^
 
-test/libbrpc.dbg.a:$(BRPC_PROTOS:.proto=.pb.h) $(DEBUG_OBJS)
-       @echo "Packing $@"
-       @ar crs $@ $(filter %.o,$^)
+test/libbrpc.dbg.$(SOEXT):$(BRPC_PROTOS:.proto=.pb.h) $(DEBUG_OBJS)
+       @echo "Linking $@"
+ifeq ($(SYSTEM),Linux)
+       @$(CXX) -shared -o $@ $(LIBPATHS) $(SOPATHS) -Xlinker "-(" $(filter 
%.o,$^) -Xlinker "-)" $(STATIC_LINKINGS) $(DYNAMIC_LINKINGS)
+else ifeq ($(SYSTEM),Darwin)
+       @$(CXX) -dynamiclib -Wl,-headerpad_max_install_names -o $@ 
-install_name @rpath/$@ $(LIBPATHS) $(SOPATHS) $(filter %.o,$^) 
$(STATIC_LINKINGS) $(DYNAMIC_LINKINGS)
+endif
 
 .PHONY:output/include
 output/include:
@@ -258,7 +262,7 @@ output/include:
        @cp src/idl_options.proto src/idl_options.pb.h $@
 
 .PHONY:output/lib
-output/lib:libbrpc.a $(TARGET_LIB_DY)
+output/lib:libbrpc.a libbrpc.$(SOEXT)
        @echo "Copying to $@"
        @mkdir -p $@
        @cp $^ $@
diff --git a/test/Makefile b/test/Makefile
index db4d7d8..b21a353 100644
--- a/test/Makefile
+++ b/test/Makefile
@@ -15,9 +15,18 @@ ifeq ($(CC),gcc)
  endif
 endif
 
+LIBS += .
 HDRPATHS=-I. -I../src $(addprefix -I, $(HDRS))
 LIBPATHS=$(addprefix -L, $(LIBS))
 
+COMMA = ,
+SOPATHS = $(addprefix -Wl$(COMMA)-rpath$(COMMA), $(LIBS))
+
+SOEXT = so
+ifeq ($(SYSTEM),Darwin)
+    SOEXT = dylib
+endif
+
 TEST_BUTIL_SOURCES = \
     at_exit_unittest.cc \
     atomicops_unittest.cc \
@@ -129,6 +138,8 @@ ifeq ($(SYSTEM), Darwin)
        DYNAMIC_LINKINGS+=-Wl,-U,_bthread_key_create
 endif
 
+UT_DYNAMIC_LINKINGS = $(DYNAMIC_LINKINGS) -lbrpc.dbg
+
 TEST_BUTIL_OBJS = iobuf.pb.o $(addsuffix .o, $(basename 
$(TEST_BUTIL_SOURCES))) 
 
 TEST_BVAR_SOURCES = $(wildcard bvar_*_unittest.cpp)
@@ -158,62 +169,65 @@ clean:clean_bins
 clean_bins:
        @rm -rf $(TEST_BINS)
 
-libbrpc.dbg.a:FORCE
-       @$(MAKE) -C.. debug
+libbrpc.dbg.$(SOEXT):FORCE
+       @$(MAKE) -C.. test/libbrpc.dbg.$(SOEXT)
+
+libbvar.dbg.a:FORCE
+       @$(MAKE) -C.. test/libbvar.dbg.a
 
 FORCE:
 
 .PRECIOUS: %.o
 
-test_butil:libbrpc.dbg.a $(TEST_BUTIL_OBJS)
+test_butil:$(TEST_BUTIL_OBJS) | libbrpc.dbg.$(SOEXT)
        @echo "Linking $@"
 ifeq ($(SYSTEM),Linux)
-       @$(CXX) -o $@ $(LIBPATHS) -Xlinker "-(" $^ -Wl,-Bstatic 
$(STATIC_LINKINGS) -Wl,-Bdynamic -Xlinker "-)" $(DYNAMIC_LINKINGS)
+       @$(CXX) -o $@ $(LIBPATHS) $(SOPATHS) -Xlinker "-(" $^ -Wl,-Bstatic 
$(STATIC_LINKINGS) -Wl,-Bdynamic -Xlinker "-)" $(UT_DYNAMIC_LINKINGS)
 else ifeq ($(SYSTEM),Darwin)
-       @$(CXX) -o $@ $(LIBPATHS) $^ $(STATIC_LINKINGS) $(DYNAMIC_LINKINGS)
+       @$(CXX) -o $@ $(LIBPATHS) $(SOPATHS) $^ $(STATIC_LINKINGS) 
$(UT_DYNAMIC_LINKINGS)
 endif
 
-test_bvar:libbrpc.dbg.a $(TEST_BVAR_OBJS)
+test_bvar:libbvar.dbg.a $(TEST_BVAR_OBJS)
        @echo "Linking $@"
 ifeq ($(SYSTEM),Linux)
-       @$(CXX) -o $@ $(LIBPATHS) -Xlinker "-(" $(TEST_BVAR_OBJS) libbvar.dbg.a 
-Wl,-Bstatic $(STATIC_LINKINGS) -Wl,-Bdynamic -Xlinker "-)" $(DYNAMIC_LINKINGS)
+       @$(CXX) -o $@ $(LIBPATHS) $(SOPATHS) -Xlinker "-(" $^ -Wl,-Bstatic 
$(STATIC_LINKINGS) -Wl,-Bdynamic -Xlinker "-)" $(DYNAMIC_LINKINGS)
 else ifeq ($(SYSTEM),Darwin)
-       @$(CXX) -o $@ $(LIBPATHS) $(TEST_BVAR_OBJS) libbvar.dbg.a 
$(STATIC_LINKINGS) $(DYNAMIC_LINKINGS)
+       @$(CXX) -o $@ $(LIBPATHS) $(SOPATHS) $^ $(STATIC_LINKINGS) 
$(DYNAMIC_LINKINGS)
 endif
 
-bthread%unittest:libbrpc.dbg.a bthread%unittest.o
+bthread%unittest:bthread%unittest.o | libbrpc.dbg.$(SOEXT)
        @echo "Linking $@"
 ifeq ($(SYSTEM),Linux)
-       @$(CXX) -o $@ $(LIBPATHS) -Xlinker "-(" $^ -Wl,-Bstatic 
$(STATIC_LINKINGS) -Wl,-Bdynamic -Xlinker "-)" $(DYNAMIC_LINKINGS)
+       @$(CXX) -o $@ $(LIBPATHS) $(SOPATHS) -Xlinker "-(" $^ -Wl,-Bstatic 
$(STATIC_LINKINGS) -Wl,-Bdynamic -Xlinker "-)" $(UT_DYNAMIC_LINKINGS)
 else ifeq ($(SYSTEM),Darwin)
-       @$(CXX) -o $@ $(LIBPATHS) $^ $(STATIC_LINKINGS) $(DYNAMIC_LINKINGS)
+       @$(CXX) -o $@ $(LIBPATHS) $(SOPATHS) $^ $(STATIC_LINKINGS) 
$(UT_DYNAMIC_LINKINGS)
 endif
 
-brpc_%_unittest:libbrpc.dbg.a $(TEST_PROTO_OBJS) brpc_%_unittest.o
+brpc_%_unittest:$(TEST_PROTO_OBJS) brpc_%_unittest.o | libbrpc.dbg.$(SOEXT)
        @echo "Linking $@"
 ifeq ($(SYSTEM),Linux)
-       @$(CXX) -o $@ $(LIBPATHS) -Xlinker "-(" $^ -Wl,-Bstatic 
$(STATIC_LINKINGS) -Wl,-Bdynamic -Xlinker "-)" $(DYNAMIC_LINKINGS)
+       @$(CXX) -o $@ $(LIBPATHS) $(SOPATHS) -Xlinker "-(" $^ -Wl,-Bstatic 
$(STATIC_LINKINGS) -Wl,-Bdynamic -Xlinker "-)" $(UT_DYNAMIC_LINKINGS)
 else ifeq ($(SYSTEM),Darwin)
-       @$(CXX) -o $@ $(LIBPATHS) $^ $(STATIC_LINKINGS) $(DYNAMIC_LINKINGS)
+       @$(CXX) -o $@ $(LIBPATHS) $(SOPATHS) $^ $(STATIC_LINKINGS) 
$(UT_DYNAMIC_LINKINGS)
 endif
 
 %.pb.cc %.pb.h:%.proto
        @echo "Generating $@"
        @$(PROTOC) --cpp_out=. --proto_path=. --proto_path=../src 
--proto_path=$(PROTOBUF_HDR) $<
 
-baidu_time_unittest.o:baidu_time_unittest.cpp | libbrpc.dbg.a
+baidu_time_unittest.o:baidu_time_unittest.cpp | libbrpc.dbg.$(SOEXT)
        @echo "Compiling $@"
        @$(CXX) -c $(HDRPATHS) -O2 $(CXXFLAGS) $< -o $@
 
-brpc_h2_unsent_message_unittest.o:brpc_h2_unsent_message_unittest.cpp | 
libbrpc.dbg.a
+brpc_h2_unsent_message_unittest.o:brpc_h2_unsent_message_unittest.cpp | 
libbrpc.dbg.$(SOEXT)
        @echo "Compiling $@"
        @$(CXX) -c $(HDRPATHS) -O2 $(CXXFLAGS) $< -o $@
 
-%.o:%.cpp | libbrpc.dbg.a
+%.o:%.cpp | libbrpc.dbg.$(SOEXT)
        @echo "Compiling $@"
        @$(CXX) -c $(HDRPATHS) $(CXXFLAGS) $< -o $@
 
-%.o:%.cc | libbrpc.dbg.a
+%.o:%.cc | libbrpc.dbg.$(SOEXT)
        @echo "Compiling $@"
        @$(CXX) -c $(HDRPATHS) $(CXXFLAGS) $< -o $@
 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@brpc.apache.org
For additional commands, e-mail: dev-h...@brpc.apache.org

Reply via email to