OSDN Git Service

[BUILD] Separate definitions of archtecture flags.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Fri, 19 Jul 2019 15:56:44 +0000 (00:56 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Fri, 19 Jul 2019 15:56:44 +0000 (00:56 +0900)
source/build-cmake/buildvars.dat.tmpl
source/build-cmake/buildvars_mingw.dat.tmpl
source/build-cmake/buildvars_mingw_cross_win32.dat.tmpl
source/build-cmake/config_build.sh
source/build-cmake/config_build_cross_win32.sh
source/build-cmake/params/archdef_ia32.dat [new file with mode: 0644]
source/build-cmake/params/archdef_x86_64.dat [new file with mode: 0644]
source/build-cmake/params/buildvars_linux_params_gcc.dat
source/build-cmake/params/buildvars_linux_params_llvm.dat
source/build-cmake/params/buildvars_mingw_params_gcc.dat
source/build-cmake/params/buildvars_mingw_params_llvm.dat

index 055a096..20e8741 100644 (file)
@@ -7,6 +7,11 @@ CC_SUFFIX=6
 #BUILD_TOOLCHAIN="LLVM"
 #CC_SUFFIX=4.0
 
+# "IA32" "AMD64" "ARM32" "ARM64"
+MAJOR_ARCH="AMD64"
+
+# "GENERIC" "SSE1" "SSE2" "SSE3" "AVX" or "NO"
+LOCAL_ARCH_TYPE="GENERIC"
 
 BUILD_TYPE="Relwithdebinfo"
 # "No" or "Yes".
index 1849fa1..bbd6074 100644 (file)
@@ -7,6 +7,14 @@ CCMAKE_CXX=g++
 
 BUILD_TYPE="Release"
 
+# "IA32" "AMD64" "ARM32" "ARM64"
+MAJOR_ARCH="IA32"
+
+# "SSE1" "SSE2" "SSE3" "AVX" or "NO"
+#LOCAL_ARCH_TYPE="AVX"
+LOCAL_ARCH_TYPE="SSE2"
+#LOCAL_ARCH_TYPE="No"
+
 # "No" or "Yes"
 USE_SANITIZER="No"
 
index 5ac0144..5ef025b 100644 (file)
@@ -10,6 +10,9 @@ BUILD_TYPE="Release"
 # "No" or "Yes".
 CSP_DEBUG="NO"
 
+# "IA32" "AMD64" "ARM32" "ARM64"
+MAJOR_ARCH="IA32"
+
 # "SSE1" "SSE2" "SSE3" "AVX" or "NO"
 LOCAL_ARCH_TYPE="SSE2"
 
index 079d45c..3c1842b 100755 (executable)
@@ -9,6 +9,12 @@ MAKE_STATUS_FILE="./000_make_status_config_build.log"
 AFFINITY_MAKE="make" 
 
 BUILD_TYPE="Relwithdebinfo"
+
+#MAJOR_ARCH="IA32"
+MAJOR_ARCH="AMD64"
+#MAJOR_ARCH="ARM32"
+#MAJOR_ARCH="ARM64"
+
 CMAKE_APPENDFLAG=""
 
 echo "Make status." > ${MAKE_STATUS_FILE}
index 3cbb202..03f8c51 100755 (executable)
@@ -2,6 +2,11 @@
 
 CMAKE=/usr/bin/cmake
 
+MAJOR_ARCH="IA32"
+#MAJOR_ARCH="AMD64"
+#MAJOR_ARCH="ARM32"
+#MAJOR_ARCH="ARM64"
+
 BUILD_TYPE="Relwithdebinfo"
 CMAKE_APPENDFLAG=""
 export WINEDEBUG="-all"
diff --git a/source/build-cmake/params/archdef_ia32.dat b/source/build-cmake/params/archdef_ia32.dat
new file mode 100644 (file)
index 0000000..4146de0
--- /dev/null
@@ -0,0 +1,60 @@
+case ${LOCAL_ARCH_TYPE} in 
+   "GENERIC" | "generic" )
+      ARCH_FLAGS="-m32 -mtune=generic"
+      ;;
+   "SSE2" | "sse2" )
+      ARCH_FLAGS="-march=i686 -mtune=generic -msse -msse2"
+      ;;
+   "SSE3" | "sse3" )
+      ARCH_FLAGS="-march=prescott"
+      ;;
+   "AVX" | "avx" )
+      ARCH_FLAGS="-march=pentium4 -msse3  -mssse3 -msse4.1 -msse4.2 -mavx"
+      ;;
+   "SSE1" | "sse1" )
+      ARCH_FLAGS="-march=pentium3  -mtune=generic -msse"
+      ;;
+   "k6" | "K6" )
+      ARCH_FLAGS="-march=k6"
+      ;;
+   "athlon" | "ATHLON" )
+      ARCH_FLAGS="-march=athlon"
+      ;;
+   "athlonxp" | "ATHLONXP" )
+      ARCH_FLAGS="-march=athlon-xp"
+      ;;
+   "pentium" | "PENTIUM" )
+      ARCH_FLAGS="-march=pentium -mtune=generic"
+      ;;
+   "pentiummmx" | "PENTIUMMMX" | "MMX" | "mmx")
+      ARCH_FLAGS="-march=pentium-mmx"
+      ;;
+   "pentiumpro" | "PENTIUMPRO" )
+      ARCH_FLAGS="-march=pentiumpro"
+      ;;
+   "pentium2" | "PENTIUM2" )
+      ARCH_FLAGS="-march=pentium2"
+      ;;
+   "pentium3" | "PENTIUM3" )
+      ARCH_FLAGS="-march=pentium3"
+      ;;
+   "pentium4" | "PENTIUM4" )
+      ARCH_FLAGS="-march=pentium4"
+      ;;
+   "pentium4m" | "PENTIUM4M" )
+      ARCH_FLAGS="-march=pentium4m"
+      ;;
+   "pentiumM" | "PENTIUMM" )
+      ARCH_FLAGS="-march=pentium-m"
+      ;;
+   "prescott" | "PRESCOTT" )
+      ARCH_FLAGS="-march=prescott"
+      ;;
+   
+   "None" | "NONE " | "none" | "No" | "no" | "NO" | "686" | "I686" | "i686" )
+      ARCH_FLAGS="-march=i686 -mtune=generic"
+      ;;
+   * )
+      ARCH_FLAGS=""
+      ;;
+esac
diff --git a/source/build-cmake/params/archdef_x86_64.dat b/source/build-cmake/params/archdef_x86_64.dat
new file mode 100644 (file)
index 0000000..a4a39ec
--- /dev/null
@@ -0,0 +1,122 @@
+case ${LOCAL_ARCH_TYPE} in 
+   "NATIVE" | "native" )
+      ARCH_FLAGS="-march=native"
+      ;;   
+   "GENERIC" | "generic" )
+      ARCH_FLAGS=""
+      ;;
+   "32BIT" | "32bit" )
+      ARCH_FLAGS="-m32"
+      ;;
+   "32BITSSE" | "32bitSSE" )
+      ARCH_FLAGS="-march=i686 -m32 -msse"
+      ;;
+   "32BITSSE2" | "32bitSSE2" )
+      ARCH_FLAGS="-march=i686 -m32 -msse -msse2"
+      ;;
+   "32BITSSE3" | "32bitSSE3" )
+      ARCH_FLAGS="-march=i686 -m32 -msse -msse2 -msse3"
+      ;;
+   "32BITAVX" | "32bitAVX" )
+      ARCH_FLAGS="-march=i686 -m32 -msse -msse2 -msse3 -mavx"
+      ;;
+   "32BITAVX2" | "32bitAVX2" )
+      ARCH_FLAGS="-march=i686 -m32 -msse -msse2 -msse3 -mavx -mzvx2"
+      ;;
+   "SSE2" | "sse2" )
+      ARCH_FLAGS="-msse -msse2"
+      ;;
+   "SSE3" | "sse3" )
+      ARCH_FLAGS="-msse3"
+      ;;
+   "AVX" | "avx" )
+      ARCH_FLAGS="-msse3 -mavx"
+      ;;
+   "AVX2" | "avx2" )
+      ARCH_FLAGS="-msse3 -mavx -mavx2"
+      ;;
+   "AMDFAM10" | "amdfam10" )
+      ARCH_FLAGS="-march=amdfam10 -mtune=generic"
+      ;;
+   "BDVER1" | "bdver1" )
+      ARCH_FLAGS="-march=bdver1 -mtune=generic"
+      ;;
+   "BDVER2" | "bdver2" )
+      ARCH_FLAGS="-march=bdver2 -mtune=generic"
+      ;;
+   "BDVER3" | "bdver3" )
+      ARCH_FLAGS="-march=bdver3 -mtune=generic"
+      ;;
+   "BDVER4" | "bdver4" )
+      ARCH_FLAGS="-march=bdver4 -mtune=generic"
+      ;;
+   "ZNVER1" | "znver1" | "ZEN1" | "zen1" )
+      ARCH_FLAGS="-march=znver1 -mtune=generic"
+      ;;
+   "ZNVER2" | "znver2" | "ZEN2" | "zen2")
+      ARCH_FLAGS="-march=znver2 -mtune=generic"
+      ;;
+   "BTVER1" | "btver1" )
+      ARCH_FLAGS="-march=btver1 -mtune=generic"
+      ;;
+   "BTVER2" | "btver2" )
+      ARCH_FLAGS="-march=btver2 -mtune=generic"
+      ;;
+   "NOCONA" | "nocona" )
+      ARCH_FLAGS="-march=nocona -mtune=generic"
+      ;;
+   "CORE2" | "core2" )
+      ARCH_FLAGS="-march=core2 -mtune=generic"
+      ;;
+   "NEHALEM" | "nehalem" )
+      ARCH_FLAGS="-march=nehalem -mtune=generic"
+      ;;
+   "WESTMERE" | "westmere" )
+      ARCH_FLAGS="-march=westmere -mtune=generic"
+      ;;
+   "SANDYBRIDGE" | "sandybridge" )
+      ARCH_FLAGS="-march=sandybridge -mtune=generic"
+      ;;
+   "IVYBRIDGE" | "ivybridge" )
+      ARCH_FLAGS="-march=ivybridge -mtune=generic"
+      ;;
+   "SKYLAKE" | "skylake" )
+      ARCH_FLAGS="-march=skylake -mtune=generic"
+      ;;
+   "CANNONLAKE" | "cannonlake" )
+      ARCH_FLAGS="-march=cannonlake -mtune=generic"
+      ;;
+   "ICELAKE" | "icelake" )
+      ARCH_FLAGS="-march=icelake-client -mtune=generic"
+      ;;
+   "CASCADELAKE" | "skylake" )
+      ARCH_FLAGS="-march=cascadelake -mtune=generic"
+      ;;
+   "BONNELL" | "bonnell" )
+      ARCH_FLAGS="-march=bonnell -mtune=generic"
+      ;;
+   "SILVERMONT" | "silvermont" )
+      ARCH_FLAGS="-march=silvermont -mtune=generic"
+      ;;
+   "GOLDMONT" | "goldmont" )
+      ARCH_FLAGS="-march=goldmont -mtune=generic"
+      ;;
+   "GOLDMONTPLUS" | "goldmontplus" )
+      ARCH_FLAGS="-march=goldmont-plus -mtune=generic"
+      ;;
+   "TREMONT" | "tremont" )
+      ARCH_FLAGS="-march=tremont -mtune=generic"
+      ;;
+   "KNL" | "knl" )
+      ARCH_FLAGS="-march=knl -mtune=generic"
+      ;;
+   "KNM" | "knm" )
+      ARCH_FLAGS="-march=knm -mtune=generic"
+      ;;
+   "No" | "no" | "NO" | "None" | "NONE" | "none" )
+      ARCH_FLAGS=""
+      ;;
+   * )
+      ARCH_FLAGS=""
+      ;;
+esac
index 7095e6f..41431a2 100644 (file)
@@ -22,11 +22,23 @@ if [ -v CC_PATH ] ; then
    CCMAKE_CXX=${CC_PATH}/${CCMAKE_CXX}
 fi
 
+case ${MAJOR_ARCH} in
+   "AMD64" | "amd64" | "x86_64" | "X86_64" )
+   . ./params/archdef_x86_64.dat
+   ;;
+   "IA32" | "ia32" | "x86" | "X86" )
+   . ./params/archdef_ia32.dat
+   ;;
+   * )
+   ARCH_FLAGS=""
+   ;;
+esac
+
 case ${USE_RADICAL_OPTIMIZE} in
    "Yes" | "yes" | "YES" )
       MAKEFLAGS_BASE3=" \
                -O3 \
-              -msse -msse2 \
+              ${ARCH_FLAGS} \
               -Wall \
                ${MAKEFLAGS_BASE} \
               "
@@ -37,7 +49,7 @@ case ${USE_RADICAL_OPTIMIZE} in
               -mtune=generic \
               -ftree-vectorize \
               -funroll-loops \
-              -msse -msse2 \
+              ${ARCH_FLAGS} \
               -Wall \
                ${MAKEFLAGS_BASE} \
               "
index f3fbaad..9c12415 100644 (file)
@@ -20,34 +20,40 @@ if [ -v CC_PATH ] ; then
    CCMAKE_CXX=${CC_PATH}/${CCMAKE_CXX}
 fi
 
-case ${CSP_DEBUG} in
+case ${MAJOR_ARCH} in
+   "AMD64" | "amd64" | "x86_64" | "X86_64" )
+   . ./params/archdef_x86_64.dat
+   ;;
+   "IA32" | "ia32" | "x86" | "X86" )
+   . ./params/archdef_ia32.dat
+   ;;
+   * )
+   ARCH_FLAGS=""
+   ;;
+esac
+
+case ${USE_RADICAL_OPTIMIZE} in
    "Yes" | "yes" | "YES" )
-      MAKEFLAGS_BASE3="-ggdb \
-               -Wreserved-user-defined-literal \
-               -fslp-vectorize \
-               -fvectorize \
-               -fstrict-vtable-pointers \
-               -fstrict-enums \
-               -std=c++11 \
-               ${MAKEFLAGS_BASE} \
-               "
-       MAKEFLAGS_DLL_LINK_BASE="-g -ggdb -gz ${MAKEFLAGS_BASE3} -DNDEBUG"
+      MAKEFLAGS_BASE3=" \
+               -O3 \
+              ${ARCH_FLAGS}  \
+              -Wall \
+               ${MAKEFLAGS_BASE} \
+              "
+              ;;
+   "No" | "no" | "NO" | * )
+      MAKEFLAGS_BASE3=" \
+               -O2 \
+              -mtune=generic \
+              -ftree-vectorize \
+              -funroll-loops \
+              ${ARCH_FLAGS} \
+              -Wall \
+               ${MAKEFLAGS_BASE} \
+              "
               ;;
-              
-   "No" | "no" | "NO" | *)
-      MAKEFLAGS_BASE3="  \
-               -Wreserved-user-defined-literal \
-               -fslp-vectorize \
-               -fvectorize \
-               -msse -msse2 \
-               -fstrict-vtable-pointers \
-               -fstrict-enums \
-               -std=c++11 \
-               ${MAKEFLAGS_BASE} \
-               "
-               MAKEFLAGS_DLL_LINK_BASE="-s ${MAKEFLAGS_BASE3}"
-               ;;
 esac
+
 case ${USE_SANITIZER} in
    "Yes" | "yes" | "YES" )
       MAKEFLAGS_BASE3="${MAKEFLAGS_BASE3} \
@@ -85,16 +91,53 @@ case ${USE_STACK_PROTECTION} in
            ;;
 esac   
 
+#if [ -n "${LTO_THREADS}" ] ;  then 
+#   LTO_FLAGS="-flto=${LTO_THREADS} -flto-compression-level=9 ${LTO_FLAGS}"
+#   LTO_FLAGS2="-flto -ffat-lto-objects"
+#else
+#   LTO_FLAGS=""
+#   LTO_FLAGS2=""
+#fi
 case ${USE_LTO} in
    "Yes" | "yes" | "YES" )
-    MAKEFLAGS_BASE2="${MAKEFLAGS_BASE3} -O3 -flto=thin -std=c++11 -msse -msse2 -DNDEBUG" 
-       MAKEFLAGS_LINK_BASE2="${MAKEFLAGS_BASE3} -O3 -flto=thin -fwhole-program-vtables -msse -msse2"
-       ;;
+    MAKEFLAGS_BASE2="${MAKEFLAGS_BASE3} -flto=thin  -msse -msse2 -DNDEBUG" 
+    MAKEFLAGS_LINK_BASE2="${MAKEFLAGS_BASE3} -flto=thin -fwhole-program-vtables -msse -msse2"
+    ;;
    "No" | "no" | "NO" | * )
-    MAKEFLAGS_BASE2="-O3 -std=c++11 ${MAKEFLAGS_BASE3} -msse -msse2 -DNDEBUG" 
-       MAKEFLAGS_LINK_BASE2="${MAKEFLAGS_BASE3}"
-       ;;
+    MAKEFLAGS_BASE2="${MAKEFLAGS_BASE3} -msse -msse2 -DNDEBUG" 
+    MAKEFLAGS_LINK_BASE2="${MAKEFLAGS_BASE3}"
+    ;;
 esac   
+
+case ${CSP_DEBUG} in
+   "Yes" | "yes" | "YES" )
+      MAKEFLAGS_BASE3="-ggdb -\
+               -Wreserved-user-defined-literal \
+               -fslp-vectorize \
+               -fvectorize \
+               -fstrict-vtable-pointers \
+               -fstrict-enums \
+               -std=c++11 \
+               ${MAKEFLAGS_BASE3} \
+               "
+      MAKEFLAGS_DLL_LINK_BASE="-g -ggdb -gz ${MAKEFLAGS_BASE3} -DNDEBUG"
+              ;;
+              
+   "No" | "no" | "NO" | *)
+      MAKEFLAGS_BASE3="  \
+               -Wreserved-user-defined-literal \
+               -fslp-vectorize \
+               -fvectorize \
+               -msse -msse2 \
+               -fstrict-vtable-pointers \
+               -fstrict-enums \
+               -std=c++11 \
+               ${MAKEFLAGS_BASE3} \
+               "
+       MAKEFLAGS_DLL_LINK_BASE="-s ${MAKEFLAGS_BASE3}"
+               ;;
+esac
+
 case ${USE_OPENMP} in
    "Yes" | "yes" | "YES" )
      CMAKE_APPENDFLAG="${CMAKE_APPENDFLAG} -DUSE_OPENMP=YES"
index 53f50f5..584a8a8 100644 (file)
@@ -3,28 +3,21 @@
 # This is build-parameters fo GCC/MinGW.
 # Neither for GCC/Linux and LLVM.
 #
-case ${LOCAL_ARCH_TYPE} in 
-   "SSE2" | "sse2" )
-      ARCH_FLAGS="-march=i686 -mtune=generic -msse -msse2"
-      ;;
-   "SSE3" | "sse3" )
-      ARCH_FLAGS="-march=prescott"
-      ;;
-   "AVX" | "avx" )
-      ARCH_FLAGS="-march=pentium4 -msse3  -mssse3 -msse4.1 -msse4.2 -mavx"
-      ;;
-   "SSE1" | "sse1" | "pentium3" | "PENTIUM3" )
-      ARCH_FLAGS="-march=pentium3"
-      ;;
-   "No" | "no" | "686" )
-      ARCH_FLAGS="-march=i686"
-      ;;
-   * )
-      ARCH_FLAGS="-march=i686 -mtune=generic"
-      ;;
- esac
 
 MAKEFLAGS_BASE2="${MAKEFLAGS_BASE} -mthread=posix -pthread -mthreads"
+
+case ${MAJOR_ARCH} in
+   "AMD64" | "amd64" | "x86_64" | "X86_64" )
+   . ./params/archdef_x86_64.dat
+   ;;
+   "IA32" | "ia32" | "x86" | "X86" )
+   . ./params/archdef_ia32.dat
+   ;;
+   * )
+   ARCH_FLAGS=""
+   ;;
+esac
+
 case ${CSP_DEBUG} in
    "Yes" | "yes" | "YES" )
      MAKEFLAGS_BASE2="-g  ${MAKEFLAGS_BASE} -O2 \
index 61ddda1..f4d1b68 100644 (file)
@@ -17,6 +17,18 @@ if [ -v CC_PATH ] ; then
    CCMAKE_CXX=${CC_PATH}/${CCMAKE_CXX}
 fi
 
+case ${MAJOR_ARCH} in
+   "AMD64" | "amd64" | "x86_64" | "X86_64" )
+   . ./params/archdef_x86_64.dat
+   ;;
+   "IA32" | "ia32" | "x86" | "X86" )
+   . ./params/archdef_ia32.dat
+   ;;
+   * )
+   ARCH_FLAGS=""
+   ;;
+esac
+
 case ${USE_RADICAL_OPTIMIZE} in
    "Yes" | "yes" | "YES" )
       MAKEFLAGS_BASE3=" \
@@ -29,7 +41,7 @@ case ${USE_RADICAL_OPTIMIZE} in
               -funroll-loops \
               -fgraphite-identity \
               -floop-nest-optimize \
-              -msse -msse2 \
+              ${ARCH_FLAGS} \
               -Wall \
                ${MAKEFLAGS_BASE} \
               "
@@ -37,10 +49,10 @@ case ${USE_RADICAL_OPTIMIZE} in
    "No" | "no" | "NO" | * )
       MAKEFLAGS_BASE3=" \
                -O2 \
-              -mtune=generic \
+              \
               -ftree-vectorize \
               -funroll-loops \
-              -msse -msse2 \
+              ${ARCH_FLAGS} \
               -Wall \
                ${MAKEFLAGS_BASE} \
               "