Skip to content
Snippets Groups Projects
Commit d64d48ec authored by Jan Trávníček's avatar Jan Trávníček
Browse files

improve library makefiles

parent c4a6034d
No related branches found
No related tags found
No related merge requests found
LIBRARY:=alib2abstraction
TESTBIN:=alib2test
LINK_PATHS=../alib2std/
LINK_LIBRARIES=alib2std
INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2std/src/
SYSTEM_LIBRARIES=
SYSTEM_INCLUDE_PATHS=
TEST_LINK_LIBRARIES=
TEST_SYSTEM_LIBRARIES=
TEST_SYSTEM_INCLUDE_PATHS=
LIBRARY:=alib2algo
TESTBIN:=alib2test
LINK_PATHS=../alib2str/ ../alib2data/ ../alib2xml/ ../alib2common/ ../alib2abstraction/ ../alib2measure/ ../alib2std/
LINK_LIBRARIES=alib2str alib2data alib2xml alib2common alib2abstraction alib2measure alib2std xml2
INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2str/src/ \$$(SOURCES_BASE_DIR)/../../alib2data/src/ \$$(SOURCES_BASE_DIR)/../../alib2xml/src/ \$$(SOURCES_BASE_DIR)/../../alib2common/src/ \$$(SOURCES_BASE_DIR)/../../alib2abstraction/src/ \$$(SOURCES_BASE_DIR)/../../alib2measure/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/ /usr/include/libxml2/
LINK_LIBRARIES=alib2data alib2xml alib2common alib2abstraction alib2measure alib2std
SYSTEM_LIBRARIES=xml2
SYSTEM_INCLUDE_PATHS=/usr/include/libxml2
TEST_LINK_LIBRARIES=alib2str
TEST_SYSTEM_LIBRARIES=
TEST_SYSTEM_INCLUDE_PATHS=
LIBRARY:=alib2algo_experimental
TESTBIN:=alib2test
LINK_PATHS=../alib2algo/ ../alib2str/ ../alib2data_experimental/ ../alib2data/ ../alib2xml/ ../alib2common/ ../alib2abstraction/ ../alib2measure/ ../alib2std/
LINK_LIBRARIES=alib2algo alib2str alib2data_experimental alib2data alib2xml alib2common alib2abstraction alib2measure alib2std xml2
INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2algo/src/ \$$(SOURCES_BASE_DIR)/../../alib2str/src/ \$$(SOURCES_BASE_DIR)/../../alib2data_experimental/src/ \$$(SOURCES_BASE_DIR)/../../alib2data/src/ \$$(SOURCES_BASE_DIR)/../../alib2xml/src/ \$$(SOURCES_BASE_DIR)/../../alib2common/src/ \$$(SOURCES_BASE_DIR)/../../alib2abstraction/src/ \$$(SOURCES_BASE_DIR)/../../alib2measure/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/ /usr/include/libxml2/
LINK_LIBRARIES=alib2algo alib2data_experimental alib2data alib2xml alib2common alib2abstraction alib2measure alib2std
SYSTEM_LIBRARIES=xml2
SYSTEM_INCLUDE_PATHS=/usr/include/libxml2
TEST_LINK_LIBRARIES=alib2str
TEST_SYSTEM_LIBRARIES=
TEST_SYSTEM_INCLUDE_PATHS=
LIBRARY:=alib2aux
TESTBIN:=alib2test
LINK_PATHS=../alib2str/ ../alib2data/ ../alib2xml/ ../alib2common/ ../alib2abstraction/ ../alib2measure/ ../alib2std/
LINK_LIBRARIES=alib2str alib2data alib2xml alib2common alib2abstraction alib2measure alib2std xml2
INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2str/src/ \$$(SOURCES_BASE_DIR)/../../alib2data/src/ \$$(SOURCES_BASE_DIR)/../../alib2xml/src/ \$$(SOURCES_BASE_DIR)/../../alib2common/src/ \$$(SOURCES_BASE_DIR)/../../alib2abstraction/src/ \$$(SOURCES_BASE_DIR)/../../alib2measure/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/ /usr/include/libxml2/
LINK_LIBRARIES=alib2str alib2data alib2xml alib2common alib2abstraction alib2measure alib2std
SYSTEM_LIBRARIES=xml2
SYSTEM_INCLUDE_PATHS=/usr/include/libxml2
TEST_LINK_LIBRARIES=
TEST_SYSTEM_LIBRARIES=
TEST_SYSTEM_INCLUDE_PATHS=
LIBRARY:=alib2cli
TESTBIN:=alib2test
LINK_PATHS=../alib2xml/ ../alib2common/ ../alib2abstraction/ ../alib2measure/ ../alib2std/
LINK_LIBRARIES=alib2xml alib2common alib2abstraction alib2measure alib2std xml2 stdc++fs
INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2xml/src/ \$$(SOURCES_BASE_DIR)/../../alib2common/src/ \$$(SOURCES_BASE_DIR)/../../alib2abstraction/src/ \$$(SOURCES_BASE_DIR)/../../alib2measure/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/ /usr/include/libxml2/
LINK_LIBRARIES=alib2xml alib2common alib2abstraction alib2measure alib2std
SYSTEM_LIBRARIES=xml2 stdc++fs
SYSTEM_INCLUDE_PATHS=/usr/include/libxml2
TEST_LINK_LIBRARIES=
TEST_SYSTEM_LIBRARIES=
TEST_SYSTEM_INCLUDE_PATHS=
LIBRARY:=alib2common
TESTBIN:=alib2test
LINK_PATHS=../alib2abstraction/ ../alib2measure/ ../alib2std/
LINK_LIBRARIES=alib2abstraction alib2measure alib2std
INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2abstraction/src/ \$$(SOURCES_BASE_DIR)/../../alib2measure/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/
SYSTEM_LIBRARIES=
SYSTEM_INCLUDE_PATHS=
TEST_LINK_LIBRARIES=
TEST_SYSTEM_LIBRARIES=
TEST_SYSTEM_INCLUDE_PATHS=
LIBRARY:=alib2data
TESTBIN:=alib2test
LINK_PATHS=../alib2xml/ ../alib2common/ ../alib2abstraction/ ../alib2measure/ ../alib2std/
LINK_LIBRARIES=alib2xml alib2common alib2abstraction alib2measure alib2std xml2
INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2xml/src/ \$$(SOURCES_BASE_DIR)/../../alib2common/src/ \$$(SOURCES_BASE_DIR)/../../alib2abstraction/src/ \$$(SOURCES_BASE_DIR)/../../alib2measure/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/ /usr/include/libxml2/
LINK_LIBRARIES=alib2xml alib2common alib2abstraction alib2measure alib2std
SYSTEM_LIBRARIES=xml2
SYSTEM_INCLUDE_PATHS=/usr/include/libxml2
TEST_LINK_LIBRARIES=
TEST_SYSTEM_LIBRARIES=
TEST_SYSTEM_INCLUDE_PATHS=
LIBRARY:=alib2data_experimental
TESTBIN:=alib2test
LINK_PATHS=../alib2data/ ../alib2xml/ ../alib2common/ ../alib2abstraction/ ../alib2measure/ ../alib2std/
LINK_LIBRARIES=alib2data alib2xml alib2common alib2abstraction alib2measure alib2std xml2
INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2data/src/ \$$(SOURCES_BASE_DIR)/../../alib2xml/src/ \$$(SOURCES_BASE_DIR)/../../alib2common/src/ \$$(SOURCES_BASE_DIR)/../../alib2abstraction/src/ \$$(SOURCES_BASE_DIR)/../../alib2measure/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/ /usr/include/libxml2/
LINK_LIBRARIES=alib2data alib2xml alib2common alib2abstraction alib2measure alib2std
SYSTEM_LIBRARIES=xml2
SYSTEM_INCLUDE_PATHS=/usr/include/libxml2
TEST_LINK_LIBRARIES=
TEST_SYSTEM_LIBRARIES=
TEST_SYSTEM_INCLUDE_PATHS=
LIBRARY:=alib2dummy
TESTBIN:=alib2test
LINK_PATHS=../alib2xml/ ../alib2common/ ../alib2abstraction/ ../alib2measure/ ../alib2std/
LINK_LIBRARIES=alib2xml alib2common alib2abstraction alib2measure alib2std xml2
INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2xml/src/ \$$(SOURCES_BASE_DIR)/../../alib2common/src/ \$$(SOURCES_BASE_DIR)/../../alib2abstraction/src/ \$$(SOURCES_BASE_DIR)/../../alib2measure/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/ /usr/include/libxml2/
LINK_LIBRARIES=alib2xml alib2common alib2abstraction alib2measure alib2std
SYSTEM_LIBRARIES=xml2
SYSTEM_INCLUDE_PATHS=/usr/include/libxml2
TEST_LINK_LIBRARIES=
TEST_SYSTEM_LIBRARIES=
TEST_SYSTEM_INCLUDE_PATHS=
LIBRARY:=alib2elgo
TESTBIN:=alib2test
LINK_PATHS=../alib2algo/ ../alib2str/ ../alib2data/ ../alib2xml/ ../alib2common/ ../alib2abstraction/ ../alib2measure/ ../alib2std/
LINK_LIBRARIES=alib2algo alib2str alib2data alib2xml alib2common alib2abstraction alib2measure alib2std xml2
INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2algo/src/ \$$(SOURCES_BASE_DIR)/../../alib2str/src/ \$$(SOURCES_BASE_DIR)/../../alib2data/src/ \$$(SOURCES_BASE_DIR)/../../alib2xml/src/ \$$(SOURCES_BASE_DIR)/../../alib2common/src/ \$$(SOURCES_BASE_DIR)/../../alib2abstraction/src/ \$$(SOURCES_BASE_DIR)/../../alib2measure/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/ /usr/include/libxml2/
LINK_LIBRARIES=alib2algo alib2data alib2xml alib2common alib2abstraction alib2measure alib2std
SYSTEM_LIBRARIES=xml2
SYSTEM_INCLUDE_PATHS=/usr/include/libxml2
TEST_LINK_LIBRARIES=alib2str
TEST_SYSTEM_LIBRARIES=
TEST_SYSTEM_INCLUDE_PATHS=
LIBRARY:=alib2measure
TESTBIN:=alib2test
LINK_PATHS=
LINK_LIBRARIES=
INCLUDE_PATHS=
SYSTEM_LIBRARIES=
SYSTEM_INCLUDE_PATHS=
TEST_LINK_LIBRARIES=
TEST_SYSTEM_LIBRARIES=
TEST_SYSTEM_INCLUDE_PATHS=
LIBRARY:=alib2raw
TESTBIN:=alib2test
LINK_PATHS=../alib2data/ ../alib2xml/ ../alib2common/ ../alib2abstraction/ ../alib2measure/ ../alib2std/
LINK_LIBRARIES=alib2data alib2xml alib2common alib2abstraction alib2measure alib2std xml2
INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2data/src/ \$$(SOURCES_BASE_DIR)/../../alib2xml/src/ \$$(SOURCES_BASE_DIR)/../../alib2common/src/ \$$(SOURCES_BASE_DIR)/../../alib2abstraction/src/ \$$(SOURCES_BASE_DIR)/../../alib2measure/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/ /usr/include/libxml2/
LINK_LIBRARIES=alib2data alib2xml alib2common alib2abstraction alib2measure alib2std
SYSTEM_LIBRARIES=xml2
SYSTEM_INCLUDE_PATHS=/usr/include/libxml2
TEST_LINK_LIBRARIES=
TEST_SYSTEM_LIBRARIES=
TEST_SYSTEM_INCLUDE_PATHS=
LIBRARY:=alib2std
TESTBIN:=alib2test
LINK_PATHS=
LINK_LIBRARIES=
INCLUDE_PATHS=
SYSTEM_LIBRARIES=
SYSTEM_INCLUDE_PATHS=
TEST_LINK_LIBRARIES=
TEST_SYSTEM_LIBRARIES=
TEST_SYSTEM_INCLUDE_PATHS=
LIBRARY:=alib2str
TESTBIN:=alib2test
LINK_PATHS=../alib2data/ ../alib2xml/ ../alib2common/ ../alib2abstraction/ ../alib2measure/ ../alib2std/
LINK_LIBRARIES=alib2data alib2xml alib2common alib2abstraction alib2measure alib2std xml2
INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2data/src/ \$$(SOURCES_BASE_DIR)/../../alib2xml/src/ \$$(SOURCES_BASE_DIR)/../../alib2common/src/ \$$(SOURCES_BASE_DIR)/../../alib2abstraction/src/ \$$(SOURCES_BASE_DIR)/../../alib2measure/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/ /usr/include/libxml2/
LINK_LIBRARIES=alib2data alib2xml alib2common alib2abstraction alib2measure alib2std
SYSTEM_LIBRARIES=xml2
SYSTEM_INCLUDE_PATHS=/usr/include/libxml2
TEST_LINK_LIBRARIES=
TEST_SYSTEM_LIBRARIES=
TEST_SYSTEM_INCLUDE_PATHS=
LIBRARY:=alib2xml
TESTBIN:=alib2test
LINK_PATHS=../alib2common/ ../alib2abstraction/ ../alib2measure/ ../alib2std/
LINK_LIBRARIES=alib2common alib2abstraction alib2measure alib2std xml2
INCLUDE_PATHS=\$$(SOURCES_BASE_DIR)/../../alib2common/src/ \$$(SOURCES_BASE_DIR)/../../alib2abstraction/src/ \$$(SOURCES_BASE_DIR)/../../alib2measure/src/ \$$(SOURCES_BASE_DIR)/../../alib2std/src/ /usr/include/libxml2/
LINK_LIBRARIES=alib2common alib2abstraction alib2measure alib2std
SYSTEM_LIBRARIES=xml2
SYSTEM_INCLUDE_PATHS=/usr/include/libxml2
TEST_LINK_LIBRARIES=
TEST_SYSTEM_LIBRARIES=
TEST_SYSTEM_INCLUDE_PATHS=
......@@ -22,11 +22,27 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
space := $(eval) $(eval)
 
LDFLAGS_DEBUG:=-rdynamic -shared $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) $(addprefix -l, $(LINK_LIBRARIES))
TEST_LDFLAGS_DEBUG:=-Wl,--no-as-needed -Llib-debug $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic -l$(LIBRARY) $(addprefix -l, $(LINK_LIBRARIES)) -lcppunit -Wl,-rpath,.
TEST_LINK_LIBRARIES+= $(LINK_LIBRARIES) $(LIBRARY)
TEST_SYSTEM_LIBRARIES+= $(SYSTEM_LIBRARIES)
INCLUDE_PATHS:=$(addprefix -I, $(realpath $(addsuffix /src, $(addprefix ../, $(LINK_LIBRARIES) $(LIBRARY)))) $(SYSTEM_INCLUDE_PATHS))
TEST_INCLUDE_PATHS:=$(addprefix -I, $(realpath $(addsuffix /src, $(addprefix ../, $(TEST_LINK_LIBRARIES)))) $(TEST_SYSTEM_INCLUDE_PATHS))
DEBUG_LINK_PATHS:=$(addsuffix /lib-debug, $(addprefix ../, $(LINK_LIBRARIES)))
DEBUG_TEST_LINK_PATHS:=$(addsuffix /lib-debug, $(addprefix ../, $(TEST_LINK_LIBRARIES)))
LDFLAGS_DEBUG:=-rdynamic -shared $(addprefix -L, $(DEBUG_LINK_PATHS)) $(addprefix -l, $(LINK_LIBRARIES) $(SYSTEM_LIBRARIES))
TEST_LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(DEBUG_TEST_LINK_PATHS)) -rdynamic $(addprefix -l, $(TEST_LINK_LIBRARIES) $(TEST_SYSTEM_LIBRARIES)) -lcppunit -Wl,-rpath,.
RELEASE_LINK_PATHS:=$(addsuffix /lib-release, $(addprefix ../, $(LINK_LIBRARIES)))
RELEASE_TEST_LINK_PATHS:=$(addsuffix /lib-release, $(addprefix ../, $(TEST_LINK_LIBRARIES)))
LDFLAGS_RELEASE:=-rdynamic -shared $(LTO_PARAM) $(addprefix -L, $(RELEASE_LINK_PATHS)) $(addprefix -l, $(LINK_LIBRARIES) $(SYSTEM_LIBRARIES))
TEST_LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(RELEASE_TEST_LINK_PATHS)) -rdynamic $(addprefix -l, $(TEST_LINK_LIBRARIES) $(TEST_SYSTEM_LIBRARIES)) -lcppunit $(LTO_PARAM) -Wl,-rpath,.
 
LDFLAGS_RELEASE:=-rdynamic -shared $(LTO_PARAM) $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) $(addprefix -l, $(LINK_LIBRARIES))
TEST_LDFLAGS_RELEASE:=-Wl,--no-as-needed -Llib-release $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic -l$(LIBRARY) $(addprefix -l, $(LINK_LIBRARIES)) -lcppunit $(LTO_PARAM) -Wl,-rpath,.
 
OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
TEST_OBJECTS_DEBUG:=$(patsubst test-src/%.cpp,test-obj-debug/%.o, $(shell find test-src/ -name *cpp))
......@@ -64,7 +80,7 @@ FORCE:
$${NEW_LINE}\
export NEW_LINE$${NEW_LINE}\
$${NEW_LINE}\
CXXFLAGS:= -pipe -std=c++14 \$$(CXX_OTHER_FLAGS) -c $(CXX_FLAGS) -fPIC \$$(addprefix -I, \$$(realpath $(INCLUDE_PATHS))) -I\$$(realpath \$$(SOURCES_BASE_DIR)/../src/)$${NEW_LINE}\
CXXFLAGS:= -pipe -std=c++14 \$$(CXX_OTHER_FLAGS) -c -fPIC$${NEW_LINE}\
$${NEW_LINE}\
SOURCES:= \$$(shell find \$$(SOURCES_BASE_DIR)/\$$(SRCDIR) -maxdepth 1 -type f -name \"*.cpp\")$${NEW_LINE}\
DEPENDENCIES:= \$$(patsubst \$$(SOURCES_BASE_DIR)/\$$(SRCDIR)%.cpp, \$$(OBJECTS_BASE_DIR)/\$$(SRCDIR)%.d, \$$(SOURCES))$${NEW_LINE}\
......@@ -152,16 +168,16 @@ test-bin-release/$(TESTBIN): $(TEST_OBJECTS_RELEASE) test-obj-release/
# subdir make calls
 
obj-debug/: FORCE obj-debug/makefile
$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-debug) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-g -Og -DDEBUG"
$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-debug) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-g -Og -DDEBUG $(CXX_FLAGS) $(INCLUDE_PATHS)"
 
obj-release/: FORCE obj-release/makefile
$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM) $(MARCH_PARAM)"
$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM) $(MARCH_PARAM) $(CXX_FLAGS) $(INCLUDE_PATHS)"
 
test-obj-debug/: FORCE test-obj-debug/makefile
$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-debug) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-g -Og -DDEBUG"
$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-debug) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-g -Og -DDEBUG $(CXX_FLAGS) $(INCLUDE_PATHS) $(TEST_INCLUDE_PATHS)"
 
test-obj-release/: FORCE test-obj-release/makefile
$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-release) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM) $(MARCH_PARAM)"
$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-release) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM) $(MARCH_PARAM) $(CXX_FLAGS) $(INCLUDE_PATHS) $(TEST_INCLUDE_PATHS)"
 
# -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# objects dependencies
......@@ -178,10 +194,10 @@ $(TEST_OBJECTS_RELEASE): test-obj-release/
# standalone main targets
 
test-unit-debug:
LD_LIBRARY_PATH="$(subst $(space),,$(addsuffix lib-debug:,$(LINK_PATHS)))lib-debug" test-bin-debug/$(TESTBIN)
LD_LIBRARY_PATH="$(subst $(space),:,$(DEBUG_TEST_LINK_PATHS))" test-bin-debug/$(TESTBIN)
 
test-unit-release:
LD_LIBRARY_PATH="$(subst $(space),,$(addsuffix lib-release:,$(LINK_PATHS)))lib-release" test-bin-release/$(TESTBIN)
LD_LIBRARY_PATH="$(subst $(space),:,$(RELEASE_TEST_LINK_PATHS))" test-bin-release/$(TESTBIN)
 
build-test-debug: test-bin-debug/$(TESTBIN)
 
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment