summaryrefslogtreecommitdiff
path: root/cpp/options.mk
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/options.mk')
-rw-r--r--cpp/options.mk12
1 files changed, 8 insertions, 4 deletions
diff --git a/cpp/options.mk b/cpp/options.mk
index fc9cd26fff..fec94c4fba 100644
--- a/cpp/options.mk
+++ b/cpp/options.mk
@@ -45,7 +45,8 @@ LIBDIR:=build/$(BUILD)/lib
OBJDIR:=build/$(BUILD)/obj
TESTDIR:=build/$(BUILD)/test
-BUILDDIRS:= $(BINDIR) $(LIBDIR) $(OBJDIR) $(TESTDIR) $(GENDIR)
+BUILDDIRS := $(BINDIR) $(LIBDIR) $(OBJDIR) $(TESTDIR) $(GENDIR)
+SRCDIRS := src src_$(PLATFORM) $(GENDIR)
## External dependencies:
@@ -68,14 +69,17 @@ RELEASE := -O3 -DNDEBUG
#
WARN := -Werror -pedantic -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wno-long-long -Wvolatile-register-var -Winvalid-pch
-INCLUDES := -Isrc -I$(GENDIR) $(EXTRA_INCLUDES)
+INCLUDES := $(SRCDIRS:%=-I%) $(EXTRA_INCLUDES)
LDFLAGS := -L$(LIBDIR) $(LDFLAGS_$(PLATFORM))
CXXFLAGS := $(DEFINES) $(WARN) -MMD -fpic $(INCLUDES) $(CXXFLAGS_$(PLATFORM))
## Macros for linking, must be late evaluated
-# $(call OBJ_FROM,root,subdirs)
-OBJ_FROM = $(foreach sub,$2,$(patsubst $1/%.cpp,$(OBJDIR)/%.o,$(wildcard $1/$(sub)/*.cpp)))
+# Collect object files from a collection of src subdirs
+# $(call OBJ_FROM,srcdir,subdir)
+OBJECTS_1 = $(patsubst $1/$2/%.cpp,$(OBJDIR)/$2/%.o,$(wildcard $1/$2/*.cpp))
+OBJECTS = $(foreach src,$(SRCDIRS),$(foreach sub,$1,$(call OBJECTS_1,$(src),$(sub))))
+
# $(call LIBFILE,name,version)
LIBFILE =$(CURDIR)/$(LIBDIR)/libqpid_$1.so.$2