# Nathan's Common Config -*- mode:autoconf -*- # Copyright (C) 2020 Nathan Sidwell, nathan@acm.org # License: Apache v2.0 # Note: VAR+=... is not dashing, despite its looks AC_DEFUN([NMS_MAINTAINER_MODE], [AC_ARG_ENABLE([maintainer-mode], AS_HELP_STRING([--enable-maintainer-mode], [enable maintainer mode. Add rules to rebuild configurey bits]),, [enable_maintainer_mode=no]) AS_CASE([$enable_maintainer_mode], [yes], [maintainer_mode=yes], [no], [maintainer=no], [AC_MSG_ERROR([unknown maintainer mode $enable_maintainer_mode])]) AC_MSG_CHECKING([maintainer-mode]) AC_MSG_RESULT([$maintainer_mode]) test "$maintainer_mode" = yes && MAINTAINER=yes AC_SUBST(MAINTAINER)]) AC_DEFUN([NMS_CXX_COMPILER], [AC_ARG_WITH([compiler], AS_HELP_STRING([--with-compiler=NAME],[which compiler to use]), AC_MSG_CHECKING([C++ compiler]) if test "$withval" = "yes" ; then AC_MSG_ERROR([NAME not specified]) elif test "$withval" = "no" ; then AC_MSG_ERROR([Gonna need a C++ compiler!]) else CXX="${withval}" AC_MSG_RESULT([$CXX]) fi)]) AC_DEFUN([NMS_CXX_11], [AC_MSG_CHECKING([whether $CXX is for C++11]) AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ [#if __cplusplus != 201103 #error "C++11 is required" #endif ]])], [AC_MSG_RESULT([yes])], [CXX_ORIG="$CXX" CXX="$CXX -std=c++11" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ [#if __cplusplus != 201103 #error "C++11 is required" #endif ]])], AC_MSG_RESULT([adding -std=c++11]), [CXX="$CXX_ORIG" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ [#if __cplusplus > 201103 #error "C++11 is required" #endif ]])], AC_MSG_RESULT([> C++11]), AC_MSG_RESULT([no]) AC_MSG_ERROR([C++11 is required])])) unset CXX_ORIG])]) AC_DEFUN([NMS_ENABLE_EXCEPTIONS], [AC_ARG_ENABLE([exceptions], AS_HELP_STRING([--enable-exceptions], [enable exceptions & rtti]),, [enable_exceptions="no"]) AS_CASE([$enable_exceptions], [yes], [nms_exceptions=yes], [no], [nms_exceptions=no], [AC_MSG_ERROR([unknown exceptions $enable_exceptions])]) AC_MSG_CHECKING([exceptions]) AC_MSG_RESULT([$nms_exceptions]) if test "$nms_exceptions" != no ; then EXCEPTIONS=yes fi AC_SUBST(EXCEPTIONS)]) AC_DEFUN([NMS_LINK_OPT], [AC_MSG_CHECKING([adding $1 to linker]) ORIG_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $1" AC_LINK_IFELSE([AC_LANG_PROGRAM([])], [AC_MSG_RESULT([ok])], [LDFLAGS="$ORIG_LDFLAGS" AC_MSG_RESULT([no])]) unset ORIG_LDFLAGS]) AC_DEFUN([NMS_ENABLE_CHECKING], [AC_ARG_ENABLE([checking], AS_HELP_STRING([--enable-checking], [enable run-time checking]),, [enable_checking="yes"]) AS_CASE([$enable_checking], [yes|all|yes,*], [nms_checking=yes], [no|none|release], [nms_checking=], [AC_MSG_ERROR([unknown check "$enable_checking"])]) AC_MSG_CHECKING([checking]) AC_MSG_RESULT([${nms_checking:-no}]) if test "$nms_checking" = yes ; then AC_DEFINE_UNQUOTED([NMS_CHECKING], [0${nms_checking:+1}], [Enable checking]) fi])