From b343c24a9f78fd06de11f902aa477e4aabef8770 Mon Sep 17 00:00:00 2001 From: Kill Your TV Date: Wed, 17 Dec 2014 20:46:19 +0000 Subject: [PATCH] add explanatory comments to Makefiles --- Makefile | 15 +++++++++++---- Makefile.bsd | 6 ++++++ Makefile.linux | 17 ++++++++++++----- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 54cd1b6f..7ba467cc 100644 --- a/Makefile +++ b/Makefile @@ -8,16 +8,16 @@ USE_AESNI := yes USE_STATIC := no ifeq ($(UNAME),Darwin) - DAEMON_SRC += DaemonLinux.cpp + DAEMON_SRC += DaemonLinux.cpp include Makefile.osx else ifeq ($(UNAME),FreeBSD) - DAEMON_SRC += DaemonLinux.cpp + DAEMON_SRC += DaemonLinux.cpp include Makefile.bsd else ifeq ($(UNAME),Linux) - DAEMON_SRC += DaemonLinux.cpp + DAEMON_SRC += DaemonLinux.cpp include Makefile.linux else # win32 - DAEMON_SRC += DaemonWin32.cpp + DAEMON_SRC += DaemonWin32.cpp endif all: obj $(SHLIB) $(I2PD) @@ -25,6 +25,13 @@ all: obj $(SHLIB) $(I2PD) obj: mkdir -p obj +## NOTE: The NEEDED_CXXFLAGS are here so that CXXFLAGS can be specified at build time +## **without** overwriting the CXXFLAGS which we need in order to build. +## For example, when adding 'hardening flags' to the build +## (e.g. -fstack-protector-strong -Wformat -Werror=format-security), we do not want to remove +## -std=c++11. If you want to remove this variable please do so in a way that allows setting +## custom FLAGS to work at build-time. + # weaker rule for building files without headers obj/%.o : %.cpp $(CXX) $(CXXFLAGS) $(NEEDED_CXXFLAGS) $(INCFLAGS) $(CPU_FLAGS) -c -o $@ $< diff --git a/Makefile.bsd b/Makefile.bsd index f59b40e3..c6c3ce65 100644 --- a/Makefile.bsd +++ b/Makefile.bsd @@ -1,5 +1,11 @@ CXX = g++ CXXFLAGS = -O2 +## NOTE: NEEDED_CXXFLAGS is here so that custom CXXFLAGS can be specified at build time +## **without** overwriting the CXXFLAGS which we need in order to build. +## For example, when adding 'hardening flags' to the build +## (e.g. -fstack-protector-strong -Wformat -Werror=format-security), we do not want to remove +## -std=c++11. If you want to remove this variable please do so in a way that allows setting +## custom FLAGS to work at build-time. NEEDED_CXXFLAGS = -std=c++11 INCFLAGS = -I/usr/include/ -I/usr/local/include/ LDFLAGS = -Wl,-rpath,/usr/local/lib -L/usr/local/lib diff --git a/Makefile.linux b/Makefile.linux index 154c6ffd..04712322 100644 --- a/Makefile.linux +++ b/Makefile.linux @@ -1,18 +1,25 @@ CXXFLAGS = -g -Wall -fPIC INCFLAGS = +## NOTE: The NEEDED_CXXFLAGS are here so that custom CXXFLAGS can be specified at build time +## **without** overwriting the CXXFLAGS which we need in order to build. +## For example, when adding 'hardening flags' to the build +## (e.g. -fstack-protector-strong -Wformat -Werror=format-security), we do not want to remove +## -std=c++11. If you want to remove this variable please do so in a way that allows setting +## custom FLAGS to work at build-time. + # detect proper flag for c++11 support by gcc CXXVER := $(shell $(CXX) -dumpversion) ifeq ($(shell expr match ${CXXVER} "4\.[0-9][0-9]"),4) # >= 4.10 -NEEDED_CXXFLAGS += -std=c++11 + NEEDED_CXXFLAGS += -std=c++11 else ifeq ($(shell expr match ${CXXVER} "4\.[7-9]"),3) # >= 4.7 -NEEDED_CXXFLAGS += -std=c++11 + NEEDED_CXXFLAGS += -std=c++11 else ifeq ($(shell expr match ${CXXVER} "4\.6"),3) # = 4.6 -NEEDED_CXXFLAGS += -std=c++0x + NEEDED_CXXFLAGS += -std=c++0x else ifeq ($(shell expr match $(CXX) 'clang'),5) -NEEDED_CXXFLAGS += -std=c++11 + NEEDED_CXXFLAGS += -std=c++11 else # not supported - $(error Compiler too old) + $(error Compiler too old) endif ifeq ($(USE_STATIC),yes)