mirror of https://github.com/PurpleI2P/i2pd.git
I2P: End-to-End encrypted and anonymous Internet
https://i2pd.website/
62 lines
2.2 KiB
62 lines
2.2 KiB
# set defaults instead redefine |
|
CXXFLAGS ?= -g -Wall -Wextra -Wno-unused-parameter -pedantic |
|
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 compilers |
|
CXXVER := $(shell $(CXX) -dumpversion) |
|
ifeq ($(shell expr match $(CXX) 'clang'),5) |
|
NEEDED_CXXFLAGS += -std=c++11 |
|
else ifeq ($(shell expr match ${CXXVER} "4\.[0-9][0-9]"),4) # gcc >= 4.10 |
|
NEEDED_CXXFLAGS += -std=c++11 |
|
else ifeq ($(shell expr match ${CXXVER} "4\.[7-9]"),3) # >= 4.7 |
|
NEEDED_CXXFLAGS += -std=c++11 -D_GLIBCXX_USE_NANOSLEEP=1 |
|
else ifeq ($(shell expr match ${CXXVER} "4\.6"),3) # = 4.6 |
|
NEEDED_CXXFLAGS += -std=c++0x |
|
else ifeq ($(shell expr match ${CXXVER} "[5-6]\.[0-9]"),3) # gcc >= 5.0 |
|
NEEDED_CXXFLAGS += -std=c++11 |
|
else # not supported |
|
$(error Compiler too old) |
|
endif |
|
|
|
NEEDED_CXXFLAGS += -fPIC |
|
|
|
ifeq ($(USE_STATIC),yes) |
|
# NOTE: on glibc you will get this warning: |
|
# Using 'getaddrinfo' in statically linked applications requires at runtime |
|
# the shared libraries from the glibc version used for linking |
|
LIBDIR := /usr/lib |
|
LDLIBS = $(LIBDIR)/libboost_system.a |
|
LDLIBS += $(LIBDIR)/libboost_date_time.a |
|
LDLIBS += $(LIBDIR)/libboost_filesystem.a |
|
LDLIBS += $(LIBDIR)/libboost_program_options.a |
|
LDLIBS += $(LIBDIR)/libssl.a |
|
LDLIBS += $(LIBDIR)/libcrypto.a |
|
LDLIBS += $(LIBDIR)/libz.a |
|
LDLIBS += -lpthread -static-libstdc++ -static-libgcc -lrt -ldl |
|
USE_AESNI := no |
|
else |
|
LDLIBS = -lcrypto -lssl -lz -lboost_system -lboost_date_time -lboost_filesystem -lboost_program_options -lpthread |
|
endif |
|
|
|
# UPNP Support (miniupnpc 1.5 or 1.6) |
|
ifeq ($(USE_UPNP),yes) |
|
LDFLAGS += -lminiupnpc |
|
CXXFLAGS += -DUSE_UPNP |
|
endif |
|
|
|
IS_64 := $(shell $(CXX) -dumpmachine 2>&1 | $(GREP) -c "64") |
|
ifeq ($(USE_AESNI),yes) |
|
ifeq ($(IS_64),1) |
|
#check if AES-NI is supported by CPU |
|
ifneq ($(shell $(GREP) -c aes /proc/cpuinfo),0) |
|
CPU_FLAGS = -maes -DAESNI |
|
endif |
|
endif |
|
endif
|
|
|