diff --git a/alib2abstraction/makefile.conf b/alib2abstraction/makefile.conf
index fac18fab7f5ecb24c9684d25a47bdd982ac5c9ee..20108e6424e82c73560835dddb182c090a8ebc39 100644
--- a/alib2abstraction/makefile.conf
+++ b/alib2abstraction/makefile.conf
@@ -1,5 +1,9 @@
 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=
diff --git a/alib2algo/makefile.conf b/alib2algo/makefile.conf
index 618f62bbb4849d0730ef1b5412097d45ca49d406..9b98b4414379b3df761608ebcb7cb7c79ae3c237 100644
--- a/alib2algo/makefile.conf
+++ b/alib2algo/makefile.conf
@@ -1,5 +1,9 @@
 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=
diff --git a/alib2algo_experimental/makefile.conf b/alib2algo_experimental/makefile.conf
index 4db6a26f7994ad60092f4b5996d514bc0447c719..0bff7174acc236e0f3016c5dc2de949a80110e6f 100644
--- a/alib2algo_experimental/makefile.conf
+++ b/alib2algo_experimental/makefile.conf
@@ -1,5 +1,9 @@
 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=
diff --git a/alib2aux/makefile.conf b/alib2aux/makefile.conf
index 0d085a11e154c48754a133ce59919665a5d31336..eb240b3b0d7a608575b144226dbc5609b5ce5973 100644
--- a/alib2aux/makefile.conf
+++ b/alib2aux/makefile.conf
@@ -1,5 +1,9 @@
 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=
diff --git a/alib2cli/makefile.conf b/alib2cli/makefile.conf
index f6fc9bd3735f36f1e102dc7ada68efcf302dd1ff..a433dc4b45edfa5a18ef4611bb1545800149a4c9 100644
--- a/alib2cli/makefile.conf
+++ b/alib2cli/makefile.conf
@@ -1,5 +1,9 @@
 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=
diff --git a/alib2common/makefile.conf b/alib2common/makefile.conf
index 8e7a32b57bc74c70ac55dcab5b15e70827239981..9d632f126b1e0278fb2367e1f65f32b0a71bdb4b 100644
--- a/alib2common/makefile.conf
+++ b/alib2common/makefile.conf
@@ -1,5 +1,9 @@
 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=
diff --git a/alib2data/makefile.conf b/alib2data/makefile.conf
index 2adea3d5f21a838230b918c6083b4d21d114d1e6..367126234c116b14f5aaee82f92ca40e8463c832 100644
--- a/alib2data/makefile.conf
+++ b/alib2data/makefile.conf
@@ -1,5 +1,9 @@
 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=
diff --git a/alib2data_experimental/makefile.conf b/alib2data_experimental/makefile.conf
index 338aede2296098ae13eb2d1974ea597522e1fafd..f064ddaf7d6edd96154917432ed8735ee0d2770a 100644
--- a/alib2data_experimental/makefile.conf
+++ b/alib2data_experimental/makefile.conf
@@ -1,5 +1,9 @@
 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=
diff --git a/alib2dummy/makefile.conf b/alib2dummy/makefile.conf
index b4d362f052b12967f1cbe9c662b6bc731e91f57a..b8647605d2c1450020379cabb128b7650e09b295 100644
--- a/alib2dummy/makefile.conf
+++ b/alib2dummy/makefile.conf
@@ -1,5 +1,9 @@
 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=
diff --git a/alib2elgo/makefile.conf b/alib2elgo/makefile.conf
index 8ae0d6bfb836e585aa073853f4f0823b56ec6c42..b03f3f307758e84509fc8341d4f8ed49cfc4f0e7 100644
--- a/alib2elgo/makefile.conf
+++ b/alib2elgo/makefile.conf
@@ -1,5 +1,9 @@
 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=
diff --git a/alib2measure/makefile.conf b/alib2measure/makefile.conf
index df589ff30d0e1fbe7cbbbd4d403355a5834c85f1..3eb6995bbf31fe1d4d5b914427cd96e7944c9812 100644
--- a/alib2measure/makefile.conf
+++ b/alib2measure/makefile.conf
@@ -1,5 +1,9 @@
 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=
diff --git a/alib2raw/makefile.conf b/alib2raw/makefile.conf
index 612665e3b19e6ed48eddfc24c3e5f95c42d74717..f388eb05657be2a22e2cbaa34f14958dffe33896 100644
--- a/alib2raw/makefile.conf
+++ b/alib2raw/makefile.conf
@@ -1,5 +1,9 @@
 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=
diff --git a/alib2std/makefile.conf b/alib2std/makefile.conf
index 51853190d4c1a488e02adffd06469b9df81fe806..eece1a74efcfe0312217d2b578d7e4533058530c 100644
--- a/alib2std/makefile.conf
+++ b/alib2std/makefile.conf
@@ -1,5 +1,9 @@
 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=
diff --git a/alib2str/makefile.conf b/alib2str/makefile.conf
index b532a047ff33b8471daa6dd4a780ec247bd605b5..36a4e4ebb2a04b02c55420171701133b87b700df 100644
--- a/alib2str/makefile.conf
+++ b/alib2str/makefile.conf
@@ -1,5 +1,9 @@
 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=
diff --git a/alib2xml/makefile.conf b/alib2xml/makefile.conf
index 83b18a531cafa5da5dc6e6f3c90f6fbef4bcb981..be93c7ac77fc700a087d30b0c8671f4eb8a267de 100644
--- a/alib2xml/makefile.conf
+++ b/alib2xml/makefile.conf
@@ -1,5 +1,9 @@
 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=
diff --git a/makefile-library b/makefile-library
index 5b1ce80510b7da5b6507f7c511c58df4803c99ac..0ac6e9c920a3b0ca37c527ef7115ed8d51acf719 100644
--- a/makefile-library
+++ b/makefile-library
@@ -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)