#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".
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"
# "No" or "Yes".
CSP_DEBUG="NO"
+# "IA32" "AMD64" "ARM32" "ARM64"
+MAJOR_ARCH="IA32"
+
# "SSE1" "SSE2" "SSE3" "AVX" or "NO"
LOCAL_ARCH_TYPE="SSE2"
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}
CMAKE=/usr/bin/cmake
+MAJOR_ARCH="IA32"
+#MAJOR_ARCH="AMD64"
+#MAJOR_ARCH="ARM32"
+#MAJOR_ARCH="ARM64"
+
BUILD_TYPE="Relwithdebinfo"
CMAKE_APPENDFLAG=""
export WINEDEBUG="-all"
--- /dev/null
+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
--- /dev/null
+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
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} \
"
-mtune=generic \
-ftree-vectorize \
-funroll-loops \
- -msse -msse2 \
+ ${ARCH_FLAGS} \
-Wall \
${MAKEFLAGS_BASE} \
"
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} \
;;
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"
# 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 \
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=" \
-funroll-loops \
-fgraphite-identity \
-floop-nest-optimize \
- -msse -msse2 \
+ ${ARCH_FLAGS} \
-Wall \
${MAKEFLAGS_BASE} \
"
"No" | "no" | "NO" | * )
MAKEFLAGS_BASE3=" \
-O2 \
- -mtune=generic \
+ \
-ftree-vectorize \
-funroll-loops \
- -msse -msse2 \
+ ${ARCH_FLAGS} \
-Wall \
${MAKEFLAGS_BASE} \
"