--- nono/configure.ac 2026/04/29 17:04:33 1.1.1.3 +++ nono/configure.ac 2026/04/29 17:04:37 1.1.1.4 @@ -14,6 +14,27 @@ AC_PROG_CC AC_PROG_INSTALL AC_C_BIGENDIAN +# コンパイラをチェック。今のところ clang/gcc のみ。 +# (autoconf がやってる gcc かどうかのチェックは clang を検出できず使えない) +AC_MSG_CHECKING(for compiler) +if test -n "`${CC} -v 2>&1 | grep clang`" ; then + AC_MSG_RESULT([clang]) + COMPILER=CLANG +elif test -n "`${CC} -v 2>&1 | grep GCC`"; then + AC_MSG_RESULT([gcc]) + COMPILER=GCC +else + AC_MSG_RESULT([unknown]) + COMPILER= +fi +AC_SUBST([COMPILER]) + +# アーキテクチャのチェック。 +AC_MSG_CHECKING(for architecture) +ARCH=`${CC} -v 2>&1 | awk '/Target:/ {print \$2}' | sed -e 's/-.*//'` +AC_MSG_RESULT([${ARCH}]) +AC_SUBST([ARCH]) + # C++ のバージョンをチェック CXX_STD=-std=c++14 AC_LANG_PUSH([C++]) @@ -29,7 +50,7 @@ AC_LANG_POP([C++]) # C コンパイラのワーニングオプション AC_LANG_PUSH([C]) -AC_DEFUN([ADD_CC_FLAG_IF],[ +AC_DEFUN([ADD_CC_WARN_IF],[ AC_MSG_CHECKING([whether cc accepts $1]) old_CFLAGS="${CFLAGS}" CFLAGS="${CFLAGS} -Werror $1" @@ -39,19 +60,19 @@ AC_DEFUN([ADD_CC_FLAG_IF],[ AC_MSG_RESULT([no])) CFLAGS="${old_CFLAGS}" ]) -ADD_CC_FLAG_IF(-Wcast-qual) -ADD_CC_FLAG_IF(-Wdisabled-macro-expansion) -ADD_CC_FLAG_IF(-Wextra-semi) -ADD_CC_FLAG_IF(-Wlogical-op) -ADD_CC_FLAG_IF(-Wmissing-prototypes) -ADD_CC_FLAG_IF(-Wmissing-variable-declarations) +ADD_CC_WARN_IF(-Wcast-qual) +ADD_CC_WARN_IF(-Wdisabled-macro-expansion) +ADD_CC_WARN_IF(-Wextra-semi) +ADD_CC_WARN_IF(-Wlogical-op) +ADD_CC_WARN_IF(-Wmissing-prototypes) +ADD_CC_WARN_IF(-Wmissing-variable-declarations) AC_LANG_POP([C]) AC_SUBST([WARNFLAGS_C]) # C++ コンパイラのワーニングオプション # (AC_LANG は C++ のまま継続する) AC_LANG_CPLUSPLUS -AC_DEFUN([ADD_CXX_FLAG_IF],[ +AC_DEFUN([ADD_CXX_WARN_IF],[ AC_MSG_CHECKING([whether c++ accepts $1]) old_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${CXXFLAGS} -Werror $1" @@ -61,15 +82,15 @@ AC_DEFUN([ADD_CXX_FLAG_IF],[ AC_MSG_RESULT([no])) CXXFLAGS="${old_CXXFLAGS}" ]) -ADD_CXX_FLAG_IF(-Wcast-qual) -ADD_CXX_FLAG_IF(-Wdisabled-macro-expansion) -ADD_CXX_FLAG_IF(-Wextra-semi) -ADD_CXX_FLAG_IF(-Winconsistent-missing-override) -ADD_CXX_FLAG_IF(-Winconsistent-missing-destructor-override) -ADD_CXX_FLAG_IF(-Wlogical-op) -ADD_CXX_FLAG_IF(-Wmissing-prototypes) -ADD_CXX_FLAG_IF(-Wmissing-variable-declarations) -ADD_CXX_FLAG_IF(-Wvla-extension) +ADD_CXX_WARN_IF(-Wcast-qual) +ADD_CXX_WARN_IF(-Wdisabled-macro-expansion) +ADD_CXX_WARN_IF(-Wextra-semi) +ADD_CXX_WARN_IF(-Winconsistent-missing-override) +ADD_CXX_WARN_IF(-Winconsistent-missing-destructor-override) +ADD_CXX_WARN_IF(-Wlogical-op) +ADD_CXX_WARN_IF(-Wmissing-prototypes) +ADD_CXX_WARN_IF(-Wmissing-variable-declarations) +ADD_CXX_WARN_IF(-Wvla-extension) AC_SUBST([WARNFLAGS_CXX]) # Checks for libraries.