Split out target flags from $extra_cflags.
To compile particular TUs with Haswell- or Skylake-specific target
flags, we must be able to disambiguate the target-related flags
from the other flags like -O0 or -Dsomething.
Change-Id: Ia49a3969709a8ff26e55c28da58dbfcb5445c89a
Reviewed-on: https://skia-review.googlesource.com/c/skcms/+/777096
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: John Stiles <johnstiles@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
diff --git a/ninja/android-arm.neon-vfpv4 b/ninja/android-arm.neon-vfpv4
index 8129d6a..2536166 100644
--- a/ninja/android-arm.neon-vfpv4
+++ b/ninja/android-arm.neon-vfpv4
@@ -1,3 +1,3 @@
mode = .neon-vfpv4
-extra_cflags = -mfpu=neon-vfpv4
+target_flags = -mfpu=neon-vfpv4
include ninja/android-arm
diff --git a/ninja/android-arm.neon-vfpv4-O3 b/ninja/android-arm.neon-vfpv4-O3
index d144011..d6dfd13 100644
--- a/ninja/android-arm.neon-vfpv4-O3
+++ b/ninja/android-arm.neon-vfpv4-O3
@@ -1,3 +1,4 @@
mode = .neon-vfpv4-O3
-extra_cflags = -mfpu=neon-vfpv4 -O3
+extra_cflags = -O3
+target_flags = -mfpu=neon-vfpv4
include ninja/android-arm
diff --git a/ninja/android-arm.vfpv2 b/ninja/android-arm.vfpv2
index c6ad1c9..5e9e833 100644
--- a/ninja/android-arm.vfpv2
+++ b/ninja/android-arm.vfpv2
@@ -1,3 +1,3 @@
mode = .vfpv2
-extra_cflags = -mfpu=vfpv2
+target_flags = -mfpu=vfpv2
include ninja/android-arm
diff --git a/ninja/android.nofp16 b/ninja/android.nofp16
index 772eb98..9a372cd 100644
--- a/ninja/android.nofp16
+++ b/ninja/android.nofp16
@@ -1,3 +1,3 @@
mode = .nofp16
-extra_cflags = -march=armv8.2a+fp16
+target_flags = -march=armv8.2a+fp16
include ninja/android
diff --git a/ninja/clang.avx512 b/ninja/clang.avx512
index a0af8d5..eada731 100644
--- a/ninja/clang.avx512
+++ b/ninja/clang.avx512
@@ -1,5 +1,6 @@
mode = .avx512
-extra_cflags = -march=skylake-avx512 -DSKCMS_FORCE_SKX
+extra_cflags = -DSKCMS_FORCE_SKX
+target_flags = -march=skylake-avx512
include ninja/clang
disabled = (uname | grep -q Darwin && sysctl machdep.cpu | grep -qv AVX512F || grep '^flags' /proc/cpuinfo | grep -vq avx512f)
diff --git a/ninja/clang.hsw b/ninja/clang.hsw
index 5df8c72..f7d0c63 100644
--- a/ninja/clang.hsw
+++ b/ninja/clang.hsw
@@ -1,5 +1,6 @@
mode = .hsw
-extra_cflags = -march=haswell -DSKCMS_FORCE_HSW
+extra_cflags = -DSKCMS_FORCE_HSW
+target_flags = -march=haswell
include ninja/clang
disabled = (uname | grep -q Darwin && sysctl machdep.cpu | grep -qv AVX2 || grep '^flags' /proc/cpuinfo | grep -vq avx2)
diff --git a/ninja/clang.m32 b/ninja/clang.m32
index ee10cba..1b7f01d 100644
--- a/ninja/clang.m32
+++ b/ninja/clang.m32
@@ -1,6 +1,7 @@
mode = .m32
-extra_cflags = -m32 -msse2 -DSKCMS_DISABLE_HSW -DSKCMS_DISABLE_SKX
+extra_cflags = -DSKCMS_DISABLE_HSW -DSKCMS_DISABLE_SKX
extra_ldflags = -m32
+target_flags = -m32 -msse2
include ninja/clang
disabled = (uname | grep -qv Linux)
diff --git a/ninja/clang.m32-O0 b/ninja/clang.m32-O0
index f50ebac..312853b 100644
--- a/ninja/clang.m32-O0
+++ b/ninja/clang.m32-O0
@@ -1,6 +1,7 @@
mode = .m32-O0
-extra_cflags = -m32 -msse2 -O0 -DSKCMS_DISABLE_HSW -DSKCMS_DISABLE_SKX
+extra_cflags = -O0 -DSKCMS_DISABLE_HSW -DSKCMS_DISABLE_SKX
extra_ldflags = -m32
+target_flags = -m32 -msse2
include ninja/clang
disabled = (uname | grep -qv Linux)
diff --git a/ninja/clang.native b/ninja/clang.native
index 1104e28..297ba7c 100644
--- a/ninja/clang.native
+++ b/ninja/clang.native
@@ -1,3 +1,3 @@
mode = .native
-extra_cflags = -march=native
+target_flags = -march=native
include ninja/clang
diff --git a/ninja/clang.sse2 b/ninja/clang.sse2
index d3c807e..48c8fa0 100644
--- a/ninja/clang.sse2
+++ b/ninja/clang.sse2
@@ -1,5 +1,6 @@
mode = .sse2
-extra_cflags = -msse2 -mno-sse3 -mno-ssse3 -mno-sse4.1 -DSKCMS_DISABLE_HSW -DSKCMS_DISABLE_SKX
+extra_cflags = -DSKCMS_DISABLE_HSW -DSKCMS_DISABLE_SKX
+target_flags = -msse2 -mno-sse3 -mno-ssse3 -mno-sse4.1
include ninja/clang
disabled = (uname | grep -q Darwin && sysctl machdep.cpu | grep -qv SSE2)
diff --git a/ninja/clang.sse41 b/ninja/clang.sse41
index edd0d6a..c80f415 100644
--- a/ninja/clang.sse41
+++ b/ninja/clang.sse41
@@ -1,5 +1,6 @@
mode = .sse41
-extra_cflags = -msse4.1 -DSKCMS_DISABLE_HSW -DSKCMS_DISABLE_SKX
+extra_cflags = -DSKCMS_DISABLE_HSW -DSKCMS_DISABLE_SKX
+target_flags = -msse4.1
include ninja/clang
disabled = (uname | grep -q Darwin && sysctl machdep.cpu | grep -qv SSE4.1)
diff --git a/ninja/common b/ninja/common
index 147a569..7b194df 100644
--- a/ninja/common
+++ b/ninja/common
@@ -21,14 +21,14 @@
rule compile_c
command = $disabled && touch $out || $cc -std=c11 -g -Os $warnings_c $cflags $extra_cflags $
- -MD -MF $out.d -c $in -o $out
+ $target_flags -MD -MF $out.d -c $in -o $out
depfile = $out.d
deps = gcc
description = compile $out
rule compile_cc
command = $disabled && touch $out || $cxx -std=c++11 -g -Os $warnings_cc $cflags $extra_cflags $
- -MD -MF $out.d -c $in -o $out
+ $target_flags -MD -MF $out.d -c $in -o $out
depfile = $out.d
deps = gcc
description = compile $out
diff --git a/ninja/gcc.m32 b/ninja/gcc.m32
index d738d9a..e742044 100644
--- a/ninja/gcc.m32
+++ b/ninja/gcc.m32
@@ -1,4 +1,4 @@
mode = .m32
-extra_cflags = -m32 -msse2 -mfpmath=sse
+target_flags = -m32 -mfpmath=sse -msse2
extra_ldflags = -m32
include ninja/gcc
diff --git a/ninja/gcc.m32-O0 b/ninja/gcc.m32-O0
index aac5476..b91e5aa 100644
--- a/ninja/gcc.m32-O0
+++ b/ninja/gcc.m32-O0
@@ -1,4 +1,5 @@
mode = .m32-O0
-extra_cflags = -m32 -msse2 -mfpmath=sse -O0
+extra_cflags = -O0
+target_flags = -m32 -mfpmath=sse -msse2
extra_ldflags = -m32
include ninja/gcc
diff --git a/ninja/gcc.native b/ninja/gcc.native
index e99cda6..f59ca03 100644
--- a/ninja/gcc.native
+++ b/ninja/gcc.native
@@ -1,3 +1,4 @@
mode = .native
-extra_cflags = -march=native
+target_flags = -march=native
+
include ninja/gcc