100 lines
2.8 KiB
Text
100 lines
2.8 KiB
Text
# 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])
|