summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makerules20
1 files changed, 16 insertions, 4 deletions
diff --git a/Makerules b/Makerules
index b68bfb90..37f633e1 100644
--- a/Makerules
+++ b/Makerules
@@ -7,17 +7,29 @@ OS := $(OS:Darwin=MACOS)
HAVE_LIBDL ?= yes
-CFLAGS += -Wall -ffunction-sections -fdata-sections
+
+CFLAGS += -Wall
+
+ifeq (,$(findstring -fembed-bitcode,$(XCFLAGS)))
+# clang does not support these in combination with -fembed-bitcode
+CFLAGS += -ffunction-sections -fdata-sections
+endif
+
+ifeq "$(OS)" "MACOS"
+LDREMOVEUNREACH = -Wl,-dead_strip
+else
+LDREMOVEUNREACH = -Wl,--gc-sections
+endif
ifeq "$(build)" "debug"
CFLAGS += -pipe -g -DDEBUG
LDFLAGS += -g
else ifeq "$(build)" "release"
CFLAGS += -pipe -O2 -DNDEBUG -fomit-frame-pointer
-LDFLAGS += -Wl,--gc-sections -Wl,-s
+LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s
else ifeq "$(build)" "small"
CFLAGS += -pipe -Os -DNDEBUG -fomit-frame-pointer
-LDFLAGS += -Wl,--gc-sections -Wl,-s
+LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s
else ifeq "$(build)" "sanitize"
CFLAGS += -pipe -g -DDEBUG -fsanitize=address -fno-omit-frame-pointer
LDFLAGS += -fsanitize=address
@@ -29,7 +41,7 @@ CFLAGS += -pipe -g -DDEBUG -pg -fprofile-arcs -ftest-coverage
LIBS += -lgcov
else ifeq "$(build)" "native"
CFLAGS += -pipe -O2 -DNDEBUG -fomit-frame-pointer -march=native -mfpmath=sse
-LDFLAGS += -Wl,--gc-sections -Wl,-s
+LDFLAGS += $(LDREMOVEUNREACH) -Wl,-s
else ifeq "$(build)" "memento"
CFLAGS += -pipe -g -DMEMENTO -DDEBUG
LDFLAGS += -g -d -rdynamic