summaryrefslogtreecommitdiffhomepage
path: root/common.mk
diff options
context:
space:
mode:
Diffstat (limited to 'common.mk')
-rw-r--r--common.mk85
1 files changed, 85 insertions, 0 deletions
diff --git a/common.mk b/common.mk
new file mode 100644
index 0000000..0b5c4d8
--- /dev/null
+++ b/common.mk
@@ -0,0 +1,85 @@
+CXX=clang++-14
+
+ifeq ($(shell which $(CXX)),)
+CXX=clang++-13
+endif
+
+ifeq ($(shell which $(CXX)),)
+CXX=clang++-11
+endif
+
+ifeq ($(shell which $(CXX)),)
+CXX=g++-11
+endif
+
+ifeq ($(shell which $(CXX)),)
+CXX=g++-10
+endif
+
+ifeq ($(shell which $(CXX)),)
+CXX=g++-8
+endif
+
+ifeq ($(shell which $(CXX)),)
+CXX=clang++
+endif
+
+ifeq ($(shell which $(CXX)),)
+CXX=g++-10
+endif
+
+ifeq ($(shell which $(CXX)),)
+CXX=g++-9
+endif
+
+ifeq ($(shell which $(CXX)),)
+CXX=g++
+endif
+
+ifeq ($(LINK_STATICALLY),1)
+LDFLAGS+=-static
+endif
+
+ifeq ($(CXXFLAGS),)
+CXXFLAGS=-O2 -g -DNDEBUG
+#CXXFLAGS=-O0 -g -D_DEBUG
+endif
+# -fprofile-instr-generate -fcoverage-mapping
+# gcc:--coverage
+
+CXXFLAGS+=-Wall -I.
+
+ifeq ($(CXX),clang++-11)
+CXXFLAGS+=-std=c++20 #-stdlib=libc++
+else ifeq ($(CXX),clang++-14)
+CXXFLAGS+=-std=c++2b #-stdlib=libc++
+else ifeq ($(CXX),clang++-13)
+CXXFLAGS+=-std=c++2b #-stdlib=libc++
+else ifeq ($(CXX),g++-11)
+CXXFLAGS+=-std=c++20 #-stdlib=libc++
+else
+CXXFLAGS+=-std=c++17
+endif
+
+ifeq ($(CXX),clang++-11)
+LIBS+= \
+-fuse-ld=lld-11 \
+-lstdc++
+#-lc++ \
+#-lc++abi
+#-lc++fs
+#-lstdc++fs
+else ifeq ($(CXX),clang++-14)
+LIBS+= \
+-fuse-ld=lld-14 \
+-lstdc++
+else ifeq ($(CXX),clang++-13)
+LIBS+= \
+-fuse-ld=lld-13 \
+-lstdc++
+else
+LIBS+= \
+-lstdc++ \
+-lstdc++fs
+endif
+