]> git.draconx.ca Git - cdecl99.git/blobdiff - configure.ac
cdecl99: Combine all the main command implementations.
[cdecl99.git] / configure.ac
index bd07f463a09081e644224de482314bb00057c902..b9633244cd13b551b049ae9e3ed4f2d3f80cb96e 100644 (file)
@@ -1,11 +1,11 @@
-dnl Copyright © 2011-2013, 2020-2021 Nick Bowler
+dnl Copyright © 2011-2013, 2020-2023 Nick Bowler
 dnl
 dnl License WTFPL2: Do What The Fuck You Want To Public License, version 2.
 dnl This is free software: you are free to do what the fuck you want to.
 dnl There is NO WARRANTY, to the extent permitted by law.
 
 AC_PREREQ([2.68])
-AC_INIT([cdecl99], [1.1a], [nbowler@draconx.ca])
+AC_INIT([cdecl99], [1.2a], [nbowler@draconx.ca])
 AC_CONFIG_HEADERS([config.h])
 
 AM_INIT_AUTOMAKE([-Wall -Wno-portability foreign subdir-objects dist-xz])
@@ -28,6 +28,23 @@ gl_EARLY
 LT_INIT
 gl_INIT
 
+AC_HEADER_ASSERT
+AC_C_FLEXIBLE_ARRAY_MEMBER
+
+# Work around quoting bug in Gnulib threadlib.m4 which prevents
+# correct detection on e.g., Solaris 8.  These platforms require
+# PTHREAD_IN_USE_DETECTION_HARD to be set otherwise cdecl99 will
+# crash when reporting an error as initialization is not done.
+#
+# If this gets fixed in Gnulib, we can remove this.
+AS_CASE([$host_os],
+  [[solaris2.[1-9] | solaris2.[1-9].*]],
+    [AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD])])
+
+# As the mbrtowc replacement module is not used by the library, there is
+# no need for multithreaded mbrtowc (all programs are single threaded).
+AC_DEFINE([GNULIB_MBRTOWC_SINGLE_THREAD], [1], [Define to 1.])
+
 AS_IF([test x"$gl_cv_lib_readline" = x"no"],
   [AS_IF([test x"$with_readline" = x"yes"],
     [AC_MSG_FAILURE([--with-readline requested but readline was not found])],
@@ -52,7 +69,9 @@ AS_IF([test x"$dx_cv_rl_add_history" = x"yes"],
     [Define to 1 if readline supports add_history.])])
 
 m4_include([lib/gnulib.mk])
-DX_GLSYM_PREFIX([cdecl__])
+DX_GLSYM_PREFIX([cdecl__gl_])
+DX_GNULIB_SYMFILES([lib/symfiles], [s])
+AM_CONDITIONAL([BUILD_STATIC], [test x"$enable_static" = x"yes"])
 
 dnl We provide our own makefile rules for gettext.  Disable tracing of
 dnl AM_GNU_GETTEXT to prevent autoreconf from running autopoint, and to
@@ -79,23 +98,33 @@ AS_IF([test x"$dx_cv_bison_warn_no_deprecated" = x"yes"],
   [AS_VAR_APPEND([BISON_COMPAT], ["${BISON_COMPAT:+ }-Wno-deprecated"])])
 AC_SUBST([BISON_COMPAT])
 
+AS_IF([test x"$dx_cv_bison_define_cmdline" != x"yes"],
+  [dx_cv_bison_api_token_raw=no])
+AC_CACHE_CHECK([whether $BISON supports api.token.raw],
+  [dx_cv_bison_api_token_raw], [dx_cv_bison_api_token_raw=no
+cat >conftest.y <<'EOF'
+%token T_TEST
+%{
+int yylex(void) { return 0; }
+void yyerror(const char *msg) { }
+%}
+%%
+input:
+EOF
+AS_IF([$BISON --define api.token.raw conftest.y >&AS_MESSAGE_LOG_FD 2>&1],
+[AC_COMPUTE_INT([testval], [T_TEST], [#include "conftest.tab.c"
+])
+AS_IF([test "$testval" -lt 256], [dx_cv_bison_api_token_raw=yes])])])
+AS_IF([test x"$dx_cv_bison_api_token_raw" = x"yes"],
+  [AS_VAR_APPEND([BISON_COMPAT], [" --define api.token.raw"])])
+
 AH_TOP([#include <conf_pre.h>])
 AH_BOTTOM([#include <conf_post.h>])
 
-AC_ARG_WITH([gsl],
-       [AS_HELP_STRING([--with-gsl],
-               [specify whether to build test programs requiring the GNU Scientific Library. [default=auto]]
-       )], [with_gsl=$withval], [with_gsl=auto])
-
-AS_CASE([$with_gsl],
-       [no], [have_gsl=no],
-       [yes], [DX_CHECK_GSL([1.0], [have_gsl=yes])],
-       [DX_CHECK_GSL([1.0], [have_gsl=yes], [have_gsl=no])])
-AM_CONDITIONAL([HAVE_GSL], [test x"$have_gsl" = x"yes"])
-
-AC_CONFIG_TESTDIR([.], [test:.])
+AC_CONFIG_TESTDIR([.], [t:.])
 DX_PROG_AUTOTEST
 AM_CONDITIONAL([HAVE_AUTOTEST], [test x"$dx_cv_autotest_works" = x"yes"])
+AC_CHECK_FUNCS_ONCE([strtoumax strtoull __strtoull])
 
 AC_CONFIG_FILES([
        Makefile