summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJonathan L Long <jonlong@cs.berkeley.edu>2014-11-24 00:10:35 -0800
committerJonathan L Long <jonlong@cs.berkeley.edu>2014-12-16 01:54:20 -0800
commit89f7019acef532064f0897ceb45d2ed37a6bd608 (patch)
tree3aed1896a4f675efae4fda5850df31f89b6b3ba7 /Makefile
parentf519338c5e38f29bb8f02d59b945cc3af73d828b (diff)
downloadcaffeonacl-89f7019acef532064f0897ceb45d2ed37a6bd608.tar.gz
caffeonacl-89f7019acef532064f0897ceb45d2ed37a6bd608.tar.bz2
caffeonacl-89f7019acef532064f0897ceb45d2ed37a6bd608.zip
automatic discovery of source directories
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile22
1 files changed, 7 insertions, 15 deletions
diff --git a/Makefile b/Makefile
index da8a4d81..e5a4b5ee 100644
--- a/Makefile
+++ b/Makefile
@@ -16,6 +16,10 @@ else
OTHER_BUILD_DIR := $(DEBUG_BUILD_DIR)
endif
+# All of the directories containing code.
+SRC_DIRS := $(shell find * -type d -exec bash -c "find {} -maxdepth 1 \
+ \( -name '*.cpp' -o -name '*.proto' \) | grep -q ." \; -print)
+
# The target shared library name
LIB_BUILD_DIR := $(BUILD_DIR)/lib
STATIC_NAME := $(LIB_BUILD_DIR)/lib$(PROJECT).a
@@ -98,9 +102,6 @@ PROTO_GEN_PY := $(foreach file,${PROTO_SRCS:.proto=_pb2.py}, \
CXX_OBJS := $(addprefix $(BUILD_DIR)/, ${CXX_SRCS:.cpp=.o})
CU_OBJS := $(addprefix $(BUILD_DIR)/, ${CU_SRCS:.cu=.cuo})
PROTO_OBJS := ${PROTO_GEN_CC:.cc=.o}
-OBJ_BUILD_DIR := $(BUILD_DIR)/src/$(PROJECT)
-LAYER_BUILD_DIR := $(OBJ_BUILD_DIR)/layers
-UTIL_BUILD_DIR := $(OBJ_BUILD_DIR)/util
OBJS := $(PROTO_OBJS) $(CXX_OBJS) $(CU_OBJS)
# tool, example, and test objects
TOOL_OBJS := $(addprefix $(BUILD_DIR)/, ${TOOL_SRCS:.cpp=.o})
@@ -110,11 +111,7 @@ TEST_CXX_OBJS := $(addprefix $(BUILD_DIR)/, ${TEST_SRCS:.cpp=.o})
TEST_CU_OBJS := $(addprefix $(BUILD_DIR)/, ${TEST_CU_SRCS:.cu=.cuo})
TEST_OBJS := $(TEST_CXX_OBJS) $(TEST_CU_OBJS)
GTEST_OBJ := $(addprefix $(BUILD_DIR)/, ${GTEST_SRC:.cpp=.o})
-GTEST_BUILD_DIR := $(dir $(GTEST_OBJ))
EXAMPLE_OBJS := $(addprefix $(BUILD_DIR)/, ${EXAMPLE_SRCS:.cpp=.o})
-EXAMPLE_BUILD_DIR := $(BUILD_DIR)/examples
-EXAMPLE_BUILD_DIRS := $(EXAMPLE_BUILD_DIR)
-EXAMPLE_BUILD_DIRS += $(foreach obj,$(EXAMPLE_OBJS),$(dir $(obj)))
# tool, example, and test bins
TOOL_BINS := ${TOOL_OBJS:.o=.bin}
EXAMPLE_BINS := ${EXAMPLE_OBJS:.o=.bin}
@@ -183,14 +180,9 @@ ifneq ($(strip $(DISTRIBUTE_DIR)),distribute)
DIST_ALIASES += distribute
endif
-ALL_BUILD_DIRS := $(sort \
- $(BUILD_DIR) $(LIB_BUILD_DIR) $(OBJ_BUILD_DIR) \
- $(LAYER_BUILD_DIR) $(UTIL_BUILD_DIR) $(TOOL_BUILD_DIR) \
- $(TEST_BUILD_DIR) $(TEST_BIN_DIR) $(GTEST_BUILD_DIR) \
- $(EXAMPLE_BUILD_DIRS) \
- $(LINT_OUTPUT_DIR) \
- $(PROTO_BUILD_DIR) $(PROTO_BUILD_INCLUDE_DIR) $(PY_PROTO_BUILD_DIR) \
- $(DISTRIBUTE_SUBDIRS))
+ALL_BUILD_DIRS := $(sort $(BUILD_DIR) $(addprefix $(BUILD_DIR)/, $(SRC_DIRS)) \
+ $(LIB_BUILD_DIR) $(TEST_BIN_DIR) $(PY_PROTO_BUILD_DIR) $(LINT_OUTPUT_DIR) \
+ $(DISTRIBUTE_SUBDIRS) $(PROTO_BUILD_INCLUDE_DIR))
##############################
# Set directory for Doxygen-generated documentation