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