consolidate build rules for object files
authorJonathan L Long <jonlong@cs.berkeley.edu>
Mon, 24 Nov 2014 06:35:46 +0000 (22:35 -0800)
committerJonathan L Long <jonlong@cs.berkeley.edu>
Tue, 16 Dec 2014 09:54:20 +0000 (01:54 -0800)
Makefile

index b19555f..da8a4d8 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -472,15 +472,20 @@ $(STATIC_NAME): $(OBJS) | $(LIB_BUILD_DIR)
        ar rcs $@ $(OBJS)
        @ echo
 
-$(TEST_BUILD_DIR)/%.o: src/$(PROJECT)/test/%.cpp $(HXX_SRCS) $(TEST_HXX_SRCS) \
-               | $(TEST_BUILD_DIR)
+$(BUILD_DIR)/%.o: %.cpp $(HXX_SRCS) | $(ALL_BUILD_DIRS)
        $(CXX) $< $(CXXFLAGS) -c -o $@ 2> $@.$(WARNS_EXT) \
                || (cat $@.$(WARNS_EXT); exit 1)
        @ cat $@.$(WARNS_EXT)
        @ echo
 
-$(TEST_BUILD_DIR)/%.cuo: src/$(PROJECT)/test/%.cu $(HXX_SRCS) $(TEST_HXX_SRCS) \
-               | $(TEST_BUILD_DIR)
+$(PROTO_BUILD_DIR)/%.pb.o: $(PROTO_BUILD_DIR)/%.pb.cc $(PROTO_GEN_HEADER) \
+               | $(PROTO_BUILD_DIR)
+       $(CXX) $< $(CXXFLAGS) -c -o $@ 2> $@.$(WARNS_EXT) \
+               || (cat $@.$(WARNS_EXT); exit 1)
+       @ cat $@.$(WARNS_EXT)
+       @ echo
+
+$(BUILD_DIR)/%.cuo: %.cu $(HXX_SRCS) | $(ALL_BUILD_DIRS)
        $(CUDA_DIR)/bin/nvcc $(NVCCFLAGS) $(CUDA_ARCH) -c $< -o $@ 2> $@.$(WARNS_EXT) \
                || (cat $@.$(WARNS_EXT); exit 1)
        @ cat $@.$(WARNS_EXT)
@@ -515,72 +520,10 @@ $(TOOL_BUILD_DIR)/%: $(TOOL_BUILD_DIR)/%.bin | $(TOOL_BUILD_DIR)
        @ $(RM) $@
        @ ln -s $(abspath $<) $@
 
-$(TOOL_BINS): %.bin : %.o $(STATIC_NAME)
+$(TOOL_BINS) $(EXAMPLE_BINS): %.bin : %.o $(STATIC_NAME)
        $(CXX) $< $(STATIC_LINK_COMMAND) -o $@ $(LINKFLAGS) $(LDFLAGS)
        @ echo
 
-$(EXAMPLE_BINS): %.bin : %.o $(STATIC_NAME)
-       $(CXX) $< $(STATIC_LINK_COMMAND) -o $@ $(LINKFLAGS) $(LDFLAGS)
-       @ echo
-
-$(LAYER_BUILD_DIR)/%.o: src/$(PROJECT)/layers/%.cpp $(HXX_SRCS) \
-               | $(LAYER_BUILD_DIR)
-       $(CXX) $< $(CXXFLAGS) -c -o $@ 2> $@.$(WARNS_EXT) \
-               || (cat $@.$(WARNS_EXT); exit 1)
-       @ cat $@.$(WARNS_EXT)
-       @ echo
-
-$(PROTO_BUILD_DIR)/%.pb.o: $(PROTO_BUILD_DIR)/%.pb.cc $(PROTO_GEN_HEADER) \
-               | $(PROTO_BUILD_DIR)
-       $(CXX) $< $(CXXFLAGS) -c -o $@ 2> $@.$(WARNS_EXT) \
-               || (cat $@.$(WARNS_EXT); exit 1)
-       @ cat $@.$(WARNS_EXT)
-       @ echo
-
-$(UTIL_BUILD_DIR)/%.o: src/$(PROJECT)/util/%.cpp $(HXX_SRCS) | $(UTIL_BUILD_DIR)
-       $(CXX) $< $(CXXFLAGS) -c -o $@ 2> $@.$(WARNS_EXT) \
-               || (cat $@.$(WARNS_EXT); exit 1)
-       @ cat $@.$(WARNS_EXT)
-       @ echo
-
-$(GTEST_OBJ): $(GTEST_SRC) | $(GTEST_BUILD_DIR)
-       $(CXX) $< $(CXXFLAGS) -c -o $@ 2> $@.$(WARNS_EXT) \
-               || (cat $@.$(WARNS_EXT); exit 1)
-       @ cat $@.$(WARNS_EXT)
-       @ echo
-
-$(LAYER_BUILD_DIR)/%.cuo: src/$(PROJECT)/layers/%.cu $(HXX_SRCS) \
-               | $(LAYER_BUILD_DIR)
-       $(CUDA_DIR)/bin/nvcc $(NVCCFLAGS) $(CUDA_ARCH) -c $< -o $@ 2> $@.$(WARNS_EXT) \
-               || (cat $@.$(WARNS_EXT); exit 1)
-       @ cat $@.$(WARNS_EXT)
-       @ echo
-
-$(UTIL_BUILD_DIR)/%.cuo: src/$(PROJECT)/util/%.cu | $(UTIL_BUILD_DIR)
-       $(CUDA_DIR)/bin/nvcc $(NVCCFLAGS) $(CUDA_ARCH) -c $< -o $@ 2> $@.$(WARNS_EXT) \
-               || (cat $@.$(WARNS_EXT); exit 1)
-       @ cat $@.$(WARNS_EXT)
-       @ echo
-
-$(TOOL_BUILD_DIR)/%.o: tools/%.cpp $(PROTO_GEN_HEADER) | $(TOOL_BUILD_DIR)
-       $(CXX) $< $(CXXFLAGS) -c -o $@ 2> $@.$(WARNS_EXT) \
-               || (cat $@.$(WARNS_EXT); exit 1)
-       @ cat $@.$(WARNS_EXT)
-       @ echo
-
-$(EXAMPLE_BUILD_DIR)/%.o: examples/%.cpp $(PROTO_GEN_HEADER) \
-               | $(EXAMPLE_BUILD_DIRS)
-       $(CXX) $< $(CXXFLAGS) -c -o $@ 2> $@.$(WARNS_EXT) \
-               || (cat $@.$(WARNS_EXT); exit 1)
-       @ cat $@.$(WARNS_EXT)
-       @ echo
-
-$(BUILD_DIR)/src/$(PROJECT)/%.o: src/$(PROJECT)/%.cpp $(HXX_SRCS)
-       $(CXX) $< $(CXXFLAGS) -c -o $@ 2> $@.$(WARNS_EXT) \
-               || (cat $@.$(WARNS_EXT); exit 1)
-       @ cat $@.$(WARNS_EXT)
-       @ echo
-
 proto: $(PROTO_GEN_CC) $(PROTO_GEN_HEADER)
 
 $(PROTO_BUILD_DIR)/%.pb.cc $(PROTO_BUILD_DIR)/%.pb.h : \