From cc203630fb977cb480931c42f377c9f51dc233a2 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Mon, 19 Jun 2017 22:58:16 +0200
Subject: [PATCH] make USE_LTO and USE_RAMDISK configurable

---
 .gitignore                      |  1 +
 aaccess2/makefile               | 12 +++++++++---
 aarbology2/makefile             | 12 +++++++++---
 acast2/makefile                 | 12 +++++++++---
 acompaction2/makefile           | 12 +++++++++---
 acompare2/makefile              | 12 +++++++++---
 aconversions2/makefile          | 12 +++++++++---
 aconvert2/makefile              | 12 +++++++++---
 aderivation2/makefile           | 12 +++++++++---
 adeterminize2/makefile          | 12 +++++++++---
 aecho2/makefile                 | 12 +++++++++---
 aepsilon2/makefile              | 12 +++++++++---
 agenerate2/makefile             | 12 +++++++++---
 aintegral2/makefile             | 12 +++++++++---
 aintrospection2/makefile        | 12 +++++++++---
 alangop2/makefile               | 12 +++++++++---
 alib2algo/makefile              | 16 +++++++++++-----
 alib2algo_experimental/makefile | 16 +++++++++++-----
 alib2common/makefile            | 19 ++++++++++++-------
 alib2data/makefile              | 16 +++++++++++-----
 alib2data_experimental/makefile | 16 +++++++++++-----
 alib2elgo/makefile              | 16 +++++++++++-----
 alib2measurepp/makefile         | 16 +++++++++++-----
 alib2raw/makefile               | 16 +++++++++++-----
 alib2std/makefile               | 16 +++++++++++-----
 alib2str/makefile               | 16 +++++++++++-----
 alib2str_experimental/makefile  | 16 +++++++++++-----
 all-debug.sh                    |  6 +++---
 all-release.sh                  |  6 +++---
 ameasure2/makefile              | 12 +++++++++---
 ameasurep2/makefile             | 12 +++++++++---
 aminimize2/makefile             | 12 +++++++++---
 anormalize2/makefile            | 12 +++++++++---
 aquery2/makefile                | 12 +++++++++---
 arand2/makefile                 | 12 +++++++++---
 araw2/makefile                  | 12 +++++++++---
 arename2/makefile               | 12 +++++++++---
 areverse2/makefile              | 12 +++++++++---
 arun2/makefile                  | 12 +++++++++---
 astat2/makefile                 | 12 +++++++++---
 astringology2/makefile          | 12 +++++++++---
 atrim2/makefile                 | 12 +++++++++---
 build-debug.sh                  |  4 ++--
 build-release.sh                |  4 ++--
 makefile                        |  8 +++++++-
 tniceprint/makefile             | 12 +++++++++---
 46 files changed, 401 insertions(+), 155 deletions(-)

diff --git a/.gitignore b/.gitignore
index ec9d7e5ef7..edf592dc71 100644
--- a/.gitignore
+++ b/.gitignore
@@ -57,6 +57,7 @@ doc/*
 
 debug.sh
 release.sh
+build.conf
 
 # local files
 local/
diff --git a/aaccess2/makefile b/aaccess2/makefile
index 1527c83e67..4064fd0131 100644
--- a/aaccess2/makefile
+++ b/aaccess2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/aarbology2/makefile b/aarbology2/makefile
index 1527c83e67..4064fd0131 100644
--- a/aarbology2/makefile
+++ b/aarbology2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/acast2/makefile b/acast2/makefile
index 1527c83e67..4064fd0131 100644
--- a/acast2/makefile
+++ b/acast2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/acompaction2/makefile b/acompaction2/makefile
index 1527c83e67..4064fd0131 100644
--- a/acompaction2/makefile
+++ b/acompaction2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/acompare2/makefile b/acompare2/makefile
index 1527c83e67..4064fd0131 100644
--- a/acompare2/makefile
+++ b/acompare2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/aconversions2/makefile b/aconversions2/makefile
index 1527c83e67..4064fd0131 100644
--- a/aconversions2/makefile
+++ b/aconversions2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/aconvert2/makefile b/aconvert2/makefile
index 1527c83e67..4064fd0131 100644
--- a/aconvert2/makefile
+++ b/aconvert2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/aderivation2/makefile b/aderivation2/makefile
index 1527c83e67..4064fd0131 100644
--- a/aderivation2/makefile
+++ b/aderivation2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/adeterminize2/makefile b/adeterminize2/makefile
index 1527c83e67..4064fd0131 100644
--- a/adeterminize2/makefile
+++ b/adeterminize2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/aecho2/makefile b/aecho2/makefile
index 1527c83e67..4064fd0131 100644
--- a/aecho2/makefile
+++ b/aecho2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/aepsilon2/makefile b/aepsilon2/makefile
index 1527c83e67..4064fd0131 100644
--- a/aepsilon2/makefile
+++ b/aepsilon2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/agenerate2/makefile b/agenerate2/makefile
index 1527c83e67..4064fd0131 100644
--- a/agenerate2/makefile
+++ b/agenerate2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/aintegral2/makefile b/aintegral2/makefile
index 1527c83e67..4064fd0131 100644
--- a/aintegral2/makefile
+++ b/aintegral2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/aintrospection2/makefile b/aintrospection2/makefile
index 1527c83e67..4064fd0131 100644
--- a/aintrospection2/makefile
+++ b/aintrospection2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/alangop2/makefile b/alangop2/makefile
index 1527c83e67..4064fd0131 100644
--- a/alangop2/makefile
+++ b/alangop2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/alib2algo/makefile b/alib2algo/makefile
index b41f715c53..c11946de9e 100644
--- a/alib2algo/makefile
+++ b/alib2algo/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 FULL_LIBRARY:=lib$(LIBRARY).so
 define NEW_LINE
 
@@ -17,8 +23,8 @@ space := $(eval) $(eval)
 LDFLAGS_DEBUG:=-rdynamic -shared
 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,.
 
-LDFLAGS_RELEASE:=-rdynamic -shared -flto
-TEST_LDFLAGS_RELEASE:=-Wl,--no-as-needed -Llib-release $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic -l$(LIBRARY) $(addprefix -l, $(LINK_LIBRARIES)) -lcppunit -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-rdynamic -shared $(LTO_PARAM)
+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))
@@ -147,13 +153,13 @@ 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"
 
 obj-release/: FORCE obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 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"
 
 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 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-release) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/alib2algo_experimental/makefile b/alib2algo_experimental/makefile
index b41f715c53..c11946de9e 100644
--- a/alib2algo_experimental/makefile
+++ b/alib2algo_experimental/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 FULL_LIBRARY:=lib$(LIBRARY).so
 define NEW_LINE
 
@@ -17,8 +23,8 @@ space := $(eval) $(eval)
 LDFLAGS_DEBUG:=-rdynamic -shared
 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,.
 
-LDFLAGS_RELEASE:=-rdynamic -shared -flto
-TEST_LDFLAGS_RELEASE:=-Wl,--no-as-needed -Llib-release $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic -l$(LIBRARY) $(addprefix -l, $(LINK_LIBRARIES)) -lcppunit -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-rdynamic -shared $(LTO_PARAM)
+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))
@@ -147,13 +153,13 @@ 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"
 
 obj-release/: FORCE obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 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"
 
 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 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-release) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/alib2common/makefile b/alib2common/makefile
index 89a440863b..c11946de9e 100644
--- a/alib2common/makefile
+++ b/alib2common/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 FULL_LIBRARY:=lib$(LIBRARY).so
 define NEW_LINE
 
@@ -17,8 +23,8 @@ space := $(eval) $(eval)
 LDFLAGS_DEBUG:=-rdynamic -shared
 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,.
 
-LDFLAGS_RELEASE:=-rdynamic -shared -flto
-TEST_LDFLAGS_RELEASE:=-Wl,--no-as-needed -Llib-release $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic -l$(LIBRARY) $(addprefix -l, $(LINK_LIBRARIES)) -lcppunit -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-rdynamic -shared $(LTO_PARAM)
+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))
@@ -147,14 +153,13 @@ 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"
 
 obj-release/: FORCE obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
-# O0 here not to optimize measurement tests
 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 -O0 -DDEBUG"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-debug) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-g -Og -DDEBUG"
 
 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 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-release) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/alib2data/makefile b/alib2data/makefile
index b41f715c53..c11946de9e 100644
--- a/alib2data/makefile
+++ b/alib2data/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 FULL_LIBRARY:=lib$(LIBRARY).so
 define NEW_LINE
 
@@ -17,8 +23,8 @@ space := $(eval) $(eval)
 LDFLAGS_DEBUG:=-rdynamic -shared
 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,.
 
-LDFLAGS_RELEASE:=-rdynamic -shared -flto
-TEST_LDFLAGS_RELEASE:=-Wl,--no-as-needed -Llib-release $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic -l$(LIBRARY) $(addprefix -l, $(LINK_LIBRARIES)) -lcppunit -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-rdynamic -shared $(LTO_PARAM)
+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))
@@ -147,13 +153,13 @@ 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"
 
 obj-release/: FORCE obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 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"
 
 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 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-release) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/alib2data_experimental/makefile b/alib2data_experimental/makefile
index b41f715c53..c11946de9e 100644
--- a/alib2data_experimental/makefile
+++ b/alib2data_experimental/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 FULL_LIBRARY:=lib$(LIBRARY).so
 define NEW_LINE
 
@@ -17,8 +23,8 @@ space := $(eval) $(eval)
 LDFLAGS_DEBUG:=-rdynamic -shared
 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,.
 
-LDFLAGS_RELEASE:=-rdynamic -shared -flto
-TEST_LDFLAGS_RELEASE:=-Wl,--no-as-needed -Llib-release $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic -l$(LIBRARY) $(addprefix -l, $(LINK_LIBRARIES)) -lcppunit -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-rdynamic -shared $(LTO_PARAM)
+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))
@@ -147,13 +153,13 @@ 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"
 
 obj-release/: FORCE obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 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"
 
 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 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-release) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/alib2elgo/makefile b/alib2elgo/makefile
index b41f715c53..c11946de9e 100644
--- a/alib2elgo/makefile
+++ b/alib2elgo/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 FULL_LIBRARY:=lib$(LIBRARY).so
 define NEW_LINE
 
@@ -17,8 +23,8 @@ space := $(eval) $(eval)
 LDFLAGS_DEBUG:=-rdynamic -shared
 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,.
 
-LDFLAGS_RELEASE:=-rdynamic -shared -flto
-TEST_LDFLAGS_RELEASE:=-Wl,--no-as-needed -Llib-release $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic -l$(LIBRARY) $(addprefix -l, $(LINK_LIBRARIES)) -lcppunit -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-rdynamic -shared $(LTO_PARAM)
+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))
@@ -147,13 +153,13 @@ 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"
 
 obj-release/: FORCE obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 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"
 
 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 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-release) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/alib2measurepp/makefile b/alib2measurepp/makefile
index b41f715c53..c11946de9e 100644
--- a/alib2measurepp/makefile
+++ b/alib2measurepp/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 FULL_LIBRARY:=lib$(LIBRARY).so
 define NEW_LINE
 
@@ -17,8 +23,8 @@ space := $(eval) $(eval)
 LDFLAGS_DEBUG:=-rdynamic -shared
 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,.
 
-LDFLAGS_RELEASE:=-rdynamic -shared -flto
-TEST_LDFLAGS_RELEASE:=-Wl,--no-as-needed -Llib-release $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic -l$(LIBRARY) $(addprefix -l, $(LINK_LIBRARIES)) -lcppunit -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-rdynamic -shared $(LTO_PARAM)
+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))
@@ -147,13 +153,13 @@ 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"
 
 obj-release/: FORCE obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 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"
 
 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 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-release) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/alib2raw/makefile b/alib2raw/makefile
index b41f715c53..c11946de9e 100644
--- a/alib2raw/makefile
+++ b/alib2raw/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 FULL_LIBRARY:=lib$(LIBRARY).so
 define NEW_LINE
 
@@ -17,8 +23,8 @@ space := $(eval) $(eval)
 LDFLAGS_DEBUG:=-rdynamic -shared
 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,.
 
-LDFLAGS_RELEASE:=-rdynamic -shared -flto
-TEST_LDFLAGS_RELEASE:=-Wl,--no-as-needed -Llib-release $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic -l$(LIBRARY) $(addprefix -l, $(LINK_LIBRARIES)) -lcppunit -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-rdynamic -shared $(LTO_PARAM)
+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))
@@ -147,13 +153,13 @@ 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"
 
 obj-release/: FORCE obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 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"
 
 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 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-release) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/alib2std/makefile b/alib2std/makefile
index b41f715c53..c11946de9e 100644
--- a/alib2std/makefile
+++ b/alib2std/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 FULL_LIBRARY:=lib$(LIBRARY).so
 define NEW_LINE
 
@@ -17,8 +23,8 @@ space := $(eval) $(eval)
 LDFLAGS_DEBUG:=-rdynamic -shared
 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,.
 
-LDFLAGS_RELEASE:=-rdynamic -shared -flto
-TEST_LDFLAGS_RELEASE:=-Wl,--no-as-needed -Llib-release $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic -l$(LIBRARY) $(addprefix -l, $(LINK_LIBRARIES)) -lcppunit -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-rdynamic -shared $(LTO_PARAM)
+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))
@@ -147,13 +153,13 @@ 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"
 
 obj-release/: FORCE obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 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"
 
 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 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-release) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/alib2str/makefile b/alib2str/makefile
index b41f715c53..c11946de9e 100644
--- a/alib2str/makefile
+++ b/alib2str/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 FULL_LIBRARY:=lib$(LIBRARY).so
 define NEW_LINE
 
@@ -17,8 +23,8 @@ space := $(eval) $(eval)
 LDFLAGS_DEBUG:=-rdynamic -shared
 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,.
 
-LDFLAGS_RELEASE:=-rdynamic -shared -flto
-TEST_LDFLAGS_RELEASE:=-Wl,--no-as-needed -Llib-release $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic -l$(LIBRARY) $(addprefix -l, $(LINK_LIBRARIES)) -lcppunit -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-rdynamic -shared $(LTO_PARAM)
+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))
@@ -147,13 +153,13 @@ 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"
 
 obj-release/: FORCE obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 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"
 
 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 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-release) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/alib2str_experimental/makefile b/alib2str_experimental/makefile
index b41f715c53..c11946de9e 100644
--- a/alib2str_experimental/makefile
+++ b/alib2str_experimental/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 FULL_LIBRARY:=lib$(LIBRARY).so
 define NEW_LINE
 
@@ -17,8 +23,8 @@ space := $(eval) $(eval)
 LDFLAGS_DEBUG:=-rdynamic -shared
 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,.
 
-LDFLAGS_RELEASE:=-rdynamic -shared -flto
-TEST_LDFLAGS_RELEASE:=-Wl,--no-as-needed -Llib-release $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic -l$(LIBRARY) $(addprefix -l, $(LINK_LIBRARIES)) -lcppunit -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-rdynamic -shared $(LTO_PARAM)
+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))
@@ -147,13 +153,13 @@ 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"
 
 obj-release/: FORCE obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 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"
 
 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 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath test-obj-release) SOURCES_BASE_DIR=$(realpath test-src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/all-debug.sh b/all-debug.sh
index 0737267c86..84ace32b73 100755
--- a/all-debug.sh
+++ b/all-debug.sh
@@ -1,4 +1,4 @@
 THREADS=${1:-5}
-USE_RAMDISK=1 CXX=clang++ make debug -j${THREADS} || exit 1
-USE_RAMDISK=1 CXX=clang++ make install-debug -j${THREADS} || exit 1
-USE_RAMDISK=1 CXX=clang++ make test-debug -j${THREADS} || exit 1
+CXX=clang++ make debug -j${THREADS} || exit 1
+CXX=clang++ make install-debug -j${THREADS} || exit 1
+CXX=clang++ make test-debug -j${THREADS} || exit 1
diff --git a/all-release.sh b/all-release.sh
index 1e885d0ae9..7abf5dc52e 100755
--- a/all-release.sh
+++ b/all-release.sh
@@ -1,4 +1,4 @@
 THREADS=${1:-5}
-USE_RAMDISK=1 CXX=g++-6 make release -j${THREADS} || exit 1
-USE_RAMDISK=1 CXX=g++-6 make install-release -j${THREADS} || exit 1
-USE_RAMDISK=1 CXX=g++-6 make test-release -j${THREADS} || exit 1
+CXX=g++-6 make release -j${THREADS} || exit 1
+CXX=g++-6 make install-release -j${THREADS} || exit 1
+CXX=g++-6 make test-release -j${THREADS} || exit 1
diff --git a/ameasure2/makefile b/ameasure2/makefile
index 1527c83e67..4064fd0131 100644
--- a/ameasure2/makefile
+++ b/ameasure2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/ameasurep2/makefile b/ameasurep2/makefile
index 1527c83e67..4064fd0131 100644
--- a/ameasurep2/makefile
+++ b/ameasurep2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/aminimize2/makefile b/aminimize2/makefile
index 1527c83e67..4064fd0131 100644
--- a/aminimize2/makefile
+++ b/aminimize2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/anormalize2/makefile b/anormalize2/makefile
index 1527c83e67..4064fd0131 100644
--- a/anormalize2/makefile
+++ b/anormalize2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/aquery2/makefile b/aquery2/makefile
index 1527c83e67..4064fd0131 100644
--- a/aquery2/makefile
+++ b/aquery2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/arand2/makefile b/arand2/makefile
index 1527c83e67..4064fd0131 100644
--- a/arand2/makefile
+++ b/arand2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/araw2/makefile b/araw2/makefile
index 1527c83e67..4064fd0131 100644
--- a/araw2/makefile
+++ b/araw2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/arename2/makefile b/arename2/makefile
index 1527c83e67..4064fd0131 100644
--- a/arename2/makefile
+++ b/arename2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/areverse2/makefile b/areverse2/makefile
index 1527c83e67..4064fd0131 100644
--- a/areverse2/makefile
+++ b/areverse2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/arun2/makefile b/arun2/makefile
index 1527c83e67..4064fd0131 100644
--- a/arun2/makefile
+++ b/arun2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/astat2/makefile b/astat2/makefile
index 1527c83e67..4064fd0131 100644
--- a/astat2/makefile
+++ b/astat2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/astringology2/makefile b/astringology2/makefile
index 1527c83e67..4064fd0131 100644
--- a/astringology2/makefile
+++ b/astringology2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/atrim2/makefile b/atrim2/makefile
index 1527c83e67..4064fd0131 100644
--- a/atrim2/makefile
+++ b/atrim2/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
diff --git a/build-debug.sh b/build-debug.sh
index ea131e9c1d..7c6f18f2f4 100755
--- a/build-debug.sh
+++ b/build-debug.sh
@@ -1,3 +1,3 @@
 THREADS=${1:-5}
-USE_RAMDISK=1 CXX=clang++ make build-code-debug -j${THREADS} || exit 1
-USE_RAMDISK=1 CXX=clang++ make install-debug -j${THREADS} || exit 1
+CXX=clang++ make build-code-debug -j${THREADS} || exit 1
+CXX=clang++ make install-debug -j${THREADS} || exit 1
diff --git a/build-release.sh b/build-release.sh
index c46c061b5a..6a92fbe0e9 100755
--- a/build-release.sh
+++ b/build-release.sh
@@ -1,3 +1,3 @@
 THREADS=${1:-5}
-USE_RAMDISK=1 CXX=g++-6 make build-code-release -j${THREADS} || exit 1
-USE_RAMDISK=1 CXX=g++-6 make install-release -j${THREADS} || exit 1
+CXX=g++-6 make build-code-release -j${THREADS} || exit 1
+CXX=g++-6 make install-release -j${THREADS} || exit 1
diff --git a/makefile b/makefile
index 460ecbeedc..c2a483a176 100644
--- a/makefile
+++ b/makefile
@@ -1,9 +1,15 @@
 SHELL = /bin/bash
-USE_RAMDISK ?= 0
 APPPATH = /usr/bin
 LIBPATH = /usr/lib
 BINFOLDER = bin
 
+ifeq ("$(wildcard build.conf)","")
+$(shell echo USE_RAMDISK=0 >> build.conf)
+$(shell echo USE_LTO=0 >> build.conf)
+endif
+
+-include build.conf
+
 # can be queued from version 4.2 via MAKEFLAGS sice there is the number of jobs as well
 MAKE_PID := $(shell echo $$PPID)
 JOB_FLAG := $(filter -j%, $(subst -j ,-j,$(shell ps T | grep "^\s*$(MAKE_PID).*$(MAKE)")))
diff --git a/tniceprint/makefile b/tniceprint/makefile
index 1527c83e67..4064fd0131 100644
--- a/tniceprint/makefile
+++ b/tniceprint/makefile
@@ -1,7 +1,13 @@
 SHELL:=/bin/bash
-USE_RAMDISK ?= 0
+
+-include ../build.conf
 -include makefile.conf
 
+LTO_PARAM:=
+ifeq ($(USE_LTO),1)
+LTO_PARAM:= -flto
+endif
+
 define NEW_LINE
 
 
@@ -13,7 +19,7 @@ CXX_FLAGS := -Wall -pedantic -Wextra -Werror -Wshadow -Wpointer-arith -Wcast-qua
 
 LDFLAGS_DEBUG:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-debug, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -Wl,-rpath,.
 
-LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) -flto -Wl,-rpath,.
+LDFLAGS_RELEASE:=-Wl,--no-as-needed $(addprefix -L, $(addsuffix lib-release, $(LINK_PATHS))) -rdynamic $(addprefix -l, $(LINK_LIBRARIES)) $(LTO_PARAM) -Wl,-rpath,.
 
 OBJECTS_DEBUG:=$(patsubst src/%.cpp,obj-debug/%.o, $(shell find src/ -name *cpp))
 
@@ -118,7 +124,7 @@ 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"
 
 obj-release/: FORCE | obj-release/makefile
-	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -flto -DNDEBUG -DRELEASE"
+	$(MAKE) -C $@ OBJECTS_BASE_DIR=$(realpath obj-release) SOURCES_BASE_DIR=$(realpath src) CXX_OTHER_FLAGS="-O3 -DNDEBUG -DRELEASE $(LTO_PARAM)"
 
 # -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 # objects dependencies
-- 
GitLab