summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorJared Van Bortel <jared@nomic.ai>2023-12-13 12:10:10 -0500
committerGitHub <noreply@github.com>2023-12-13 12:10:10 -0500
commit70f806b821f603cafb6f634c93a6729dc21bb354 (patch)
treee348e94def4ed02742bc1d5560cbdf6c7080682e /scripts
parent9fb13f95840c722ad419f390dc8a9c86080a3700 (diff)
build : detect host compiler and cuda compiler separately (#4414)
Diffstat (limited to 'scripts')
-rw-r--r--scripts/get-flags.mk38
1 files changed, 38 insertions, 0 deletions
diff --git a/scripts/get-flags.mk b/scripts/get-flags.mk
new file mode 100644
index 00000000..596d7ead
--- /dev/null
+++ b/scripts/get-flags.mk
@@ -0,0 +1,38 @@
+ifeq '' '$(findstring clang,$(shell $(GF_CC) --version))'
+ GF_CC_IS_GCC = 1
+ GF_CC_VER := $(shell { $(GF_CC) -dumpfullversion 2>/dev/null || $(GF_CC) -dumpversion; } | awk -F. '{ printf("%02d%02d%02d", $$1, $$2, $$3) }')
+else
+ GF_CC_IS_CLANG = 1
+ ifeq '' '$(findstring Apple,$(shell $(GF_CC) --version))'
+ GF_CC_IS_LLVM_CLANG = 1
+ else
+ GF_CC_IS_APPLE_CLANG = 1
+ endif
+ GF_CC_VER := \
+ $(shell $(GF_CC) --version | sed -n 's/^.* version \([0-9.]*\).*$$/\1/p' \
+ | awk -F. '{ printf("%02d%02d%02d", $$1, $$2, $$3) }')
+endif
+
+ifeq ($(GF_CC_IS_CLANG), 1)
+ # clang options
+ GF_CFLAGS = -Wunreachable-code-break -Wunreachable-code-return
+ GF_CXXFLAGS = -Wunreachable-code-break -Wunreachable-code-return -Wmissing-prototypes -Wextra-semi
+
+ ifneq '' '$(and $(GF_CC_IS_LLVM_CLANG),$(filter 1,$(shell expr $(GF_CC_VER) \>= 030800)))'
+ GF_CFLAGS += -Wdouble-promotion
+ endif
+ ifneq '' '$(and $(GF_CC_IS_APPLE_CLANG),$(filter 1,$(shell expr $(GF_CC_VER) \>= 070300)))'
+ GF_CFLAGS += -Wdouble-promotion
+ endif
+else
+ # gcc options
+ GF_CFLAGS = -Wdouble-promotion
+ GF_CXXFLAGS = -Wno-array-bounds
+
+ ifeq ($(shell expr $(GF_CC_VER) \>= 070100), 1)
+ GF_CXXFLAGS += -Wno-format-truncation
+ endif
+ ifeq ($(shell expr $(GF_CC_VER) \>= 080100), 1)
+ GF_CXXFLAGS += -Wextra-semi
+ endif
+endif