summaryrefslogtreecommitdiff
path: root/acinclude.m4
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2017-07-11 21:53:15 -0300
committerDavid Bremner <david@tethera.net>2017-07-11 21:53:15 -0300
commit2f9741043a28227ef22b82a6670ff7fc5a180dc7 (patch)
tree2cbf0c9f26f6e90dceef5b8d8f27ae1f28ccf098 /acinclude.m4
Import Upstream version 1.00RC5
Diffstat (limited to 'acinclude.m4')
-rw-r--r--acinclude.m4133
1 files changed, 133 insertions, 0 deletions
diff --git a/acinclude.m4 b/acinclude.m4
new file mode 100644
index 0000000..df10b37
--- /dev/null
+++ b/acinclude.m4
@@ -0,0 +1,133 @@
+dnl TRY_CXX_FLAG(FLAG,[ACTION-IF-FOUND[,ACTION-IF-NOT-FOUND]])
+AC_DEFUN(TRY_CXX_FLAG,
+[echo >conftest.cc
+if ${CXX-g++} ${CXXFLAGS} -c [$1] conftest.cc >/dev/null 2>&1; then
+ ifelse([$2], , :, [rm -f conftest*
+ $2])
+else
+ ifelse([$3], , :, [rm -f conftest*
+ $3])
+fi
+rm -f conftest*])
+
+AC_DEFUN(CXX_NO_RTTI,
+[AC_CACHE_CHECK(whether ${CXX-g++} accepts -fno-rtti,
+ local_cv_flag_NO_RTTI,
+ TRY_CXX_FLAG(-fno-rtti,
+ local_cv_flag_NO_RTTI=yes,
+ local_cv_flag_NO_RTTI=no))
+test "$local_cv_flag_NO_RTTI" = yes && CXXFLAGS="$CXXFLAGS -fno-rtti"
+])
+
+AC_DEFUN(CXX_NO_EXCEPTIONS,
+[AC_CACHE_CHECK(whether ${CXX-g++} accepts -fno-exceptions,
+ local_cv_flag_NO_EXCEPTIONS,
+ TRY_CXX_FLAG(-fno-exceptions,
+ local_cv_flag_NO_EXCEPTIONS=yes,
+ local_cv_flag_NO_EXCEPTIONS=no))
+test "$local_cv_flag_NO_EXCEPTIONS" = yes && CXXFLAGS="$CXXFLAGS -fno-exceptions"
+])
+
+dnl TRY_STRUCT_TM_MEMBER(MEMBER,FLAGNAME)
+AC_DEFUN(TRY_STRUCT_TM_MEMBER,
+[ AC_CACHE_CHECK(whether struct tm contains [$1],
+ [$2],
+ cat >conftest.c <<EOF
+#if TIME_WITH_SYS_TIME
+# include <sys/time.h>
+# include <time.h>
+#else
+# if HAVE_SYS_TIME_H
+# include <sys/time.h>
+# else
+# include <time.h>
+# endif
+#endif
+int main() { struct tm* foo; foo->[$1]; }
+EOF
+ if ${CC} ${CFLAGS} -c conftest.c >/dev/null 2>&1; then
+ [$2]=yes
+ else
+ [$2]=no
+ fi
+ rm -f conftest*)
+])
+
+AC_DEFUN(TEST_STRUCT_TM,
+ TRY_STRUCT_TM_MEMBER(tm_isdst, local_cv_flag_TM_HAS_ISDST)
+ TRY_STRUCT_TM_MEMBER(__tm_isdst, local_cv_flag_TM_HAS___ISDST)
+ if test "$local_cv_flag_TM_HAS_ISDST" = yes
+ then AC_DEFINE(TM_HAS_ISDST,tm_isdst)
+ elif test "$local_cv_flag_TM_HAS___ISDST" = yes
+ then AC_DEFINE(TM_HAS_ISDST,__tm_isdst)
+ fi
+ TRY_STRUCT_TM_MEMBER(tm_gmtoff, local_cv_flag_TM_HAS_GMTOFF)
+ TRY_STRUCT_TM_MEMBER(__tm_gmtoff, local_cv_flag_TM_HAS___GMTOFF)
+ if test "$local_cv_flag_TM_HAS_GMTOFF" = yes
+ then AC_DEFINE(TM_HAS_GMTOFF,tm_gmtoff)
+ elif test "$local_cv_flag_TM_HAS___GMTOFF" = yes
+ then AC_DEFINE(TM_HAS_GMTOFF,__tm_gmtoff)
+ fi
+)
+
+dnl TRY_STRUCT_UTSNAME_MEMBER(MEMBER,FLAGNAME)
+AC_DEFUN(TRY_STRUCT_UTSNAME_MEMBER,
+[ AC_CACHE_CHECK(whether struct utsname contains [$1],
+ [$2],
+ cat >conftest.c <<EOF
+#include <sys/utsname.h>
+int main() { struct utsname* foo; foo->[$1]; }
+EOF
+ if ${CC} ${CFLAGS} -c conftest.c >/dev/null 2>&1; then
+ [$2]=yes
+ else
+ [$2]=no
+ fi
+ rm -f conftest*)
+])
+
+AC_DEFUN(TEST_STRUCT_UTSNAME,
+ TRY_STRUCT_UTSNAME_MEMBER(domainname, local_cv_flag_UTSNAME_HAS_DOMAINNAME)
+ TRY_STRUCT_UTSNAME_MEMBER(__domainname,
+ local_cv_flag_UTSNAME_HAS___DOMAINNAME)
+ if test "$local_cv_flag_UTSNAME_HAS_DOMAINNAME" = yes
+ then AC_DEFINE(UTSNAME_HAS_DOMAINNAME,domainname)
+ elif test "$local_cv_flag_UTSNAME_HAS___DOMAINNAME" = yes
+ then AC_DEFINE(UTSNAME_HAS_DOMAINNAME,__domainname)
+ fi
+)
+
+AC_DEFUN(CHECK_NAMED_PIPE_BUG,
+[ AC_CACHE_CHECK(whether named pipes are buggy,
+ local_cv_flag_NAMEDPIPEBUG,
+ cat >conftest.c <<EOF
+#include <fcntl.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <unistd.h>
+int main(int argc, char** argv)
+{
+ struct timeval tv;
+ fd_set rfds;
+ int fd = open(*(argv+1), O_RDONLY | O_NONBLOCK);
+ FD_ZERO(&rfds);
+ FD_SET(fd,&rfds);
+ tv.tv_sec = tv.tv_usec = 0;
+ return (select(fd+1, &rfds, 0, 0,&tv) > 0) ? 0 : 1;
+}
+EOF
+ if ! ${CC} ${CFLAGS} conftest.c -o conftest 2>/dev/null
+ then
+ echo Compile failed
+ exit 1
+ fi
+ mkfifo conftest.pipe
+ if ./conftest conftest.pipe
+ then
+ AC_DEFINE(NAMEDPIPEBUG, 1)
+ local_cv_flag_NAMEDPIPEBUG=yes
+ else
+ local_cv_flag_NAMEDPIPEBUG=no
+ fi
+ rm -f conftest*)
+])