make clang++ happy on OSX by not linking with pthread
authorEvan Shelhamer <shelhamer@imaginarynumber.net>
Thu, 26 Jun 2014 00:35:40 +0000 (17:35 -0700)
committerEvan Shelhamer <shelhamer@imaginarynumber.net>
Thu, 26 Jun 2014 00:35:40 +0000 (17:35 -0700)
Makefile

index d62f415..32ce472 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -184,6 +184,7 @@ ifeq ($(OSX), 1)
        WARNINGS += -Wno-unneeded-internal-declaration
        ifneq ($(findstring 10.9, $(shell sw_vers -productVersion)),)
                CXXFLAGS += -stdlib=libstdc++
+               LINKFLAGS += -stdlib=libstdc++
        endif
 endif
 
@@ -229,6 +230,7 @@ CXXFLAGS += -pthread -fPIC $(COMMON_FLAGS) $(WARNINGS)
 NVCCFLAGS := -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
 # mex may invoke an older gcc that is too liberal with -Wuninitalized
 MATLAB_CXXFLAGS := $(CXXFLAGS) -Wno-uninitialized
+LINKFLAGS += -fPIC $(COMMON_FLAGS) $(WARNINGS)
 LDFLAGS += $(foreach librarydir,$(LIBRARY_DIRS),-L$(librarydir)) \
                $(foreach library,$(LIBRARIES),-l$(library))
 PYTHON_LDFLAGS := $(LDFLAGS) $(foreach library,$(PYTHON_LIBRARIES),-l$(library))
@@ -278,7 +280,7 @@ py: $(PY$(PROJECT)_SO) $(PROTO_GEN_PY)
 
 $(PY$(PROJECT)_SO): $(STATIC_NAME) $(PY$(PROJECT)_SRC)
        $(CXX) -shared -o $@ $(PY$(PROJECT)_SRC) \
-               $(STATIC_NAME) $(CXXFLAGS) $(PYTHON_LDFLAGS)
+               $(STATIC_NAME) $(LINKFLAGS) $(PYTHON_LDFLAGS)
        @ echo
 
 mat$(PROJECT): mat
@@ -315,7 +317,7 @@ $(ALL_BUILD_DIRS): | $(BUILD_DIR_LINK)
        @ mkdir -p $@
 
 $(NAME): $(PROTO_OBJS) $(OBJS) | $(LIB_BUILD_DIR)
-       $(CXX) -shared -o $@ $(OBJS) $(CXXFLAGS) $(LDFLAGS)
+       $(CXX) -shared -o $@ $(OBJS) $(LINKFLAGS) $(LDFLAGS)
        @ echo
 
 $(STATIC_NAME): $(PROTO_OBJS) $(OBJS) | $(LIB_BUILD_DIR)
@@ -330,21 +332,21 @@ $(TEST_BUILD_DIR)/%.o: src/$(PROJECT)/test/%.cpp $(HXX_SRCS) $(TEST_HDRS) \
 $(TEST_ALL_BIN): $(TEST_MAIN_SRC) $(TEST_OBJS) $(GTEST_OBJ) $(STATIC_NAME) \
                | $(TEST_BIN_DIR)
        $(CXX) $(TEST_MAIN_SRC) $(TEST_OBJS) $(GTEST_OBJ) $(STATIC_NAME) \
-               -o $@ $(CXXFLAGS) $(LDFLAGS)
+               -o $@ $(LINKFLAGS) $(LDFLAGS)
        @ echo
 
 $(TEST_BIN_DIR)/%.testbin: $(TEST_BUILD_DIR)/%.o $(GTEST_OBJ) $(STATIC_NAME) \
                | $(TEST_BIN_DIR)
        $(CXX) $(TEST_MAIN_SRC) $< $(GTEST_OBJ) $(STATIC_NAME) \
-               -o $@ $(CXXFLAGS) $(LDFLAGS)
+               -o $@ $(LINKFLAGS) $(LDFLAGS)
        @ echo
 
 $(TOOL_BINS): %.bin : %.o $(STATIC_NAME)
-       $(CXX) $< $(STATIC_NAME) -o $@ $(CXXFLAGS) $(LDFLAGS)
+       $(CXX) $< $(STATIC_NAME) -o $@ $(LINKFLAGS) $(LDFLAGS)
        @ echo
 
 $(EXAMPLE_BINS): %.bin : %.o $(STATIC_NAME)
-       $(CXX) $< $(STATIC_NAME) -o $@ $(CXXFLAGS) $(LDFLAGS)
+       $(CXX) $< $(STATIC_NAME) -o $@ $(LINKFLAGS) $(LDFLAGS)
        @ echo
 
 $(LAYER_BUILD_DIR)/%.o: src/$(PROJECT)/layers/%.cpp $(HXX_SRCS) \