X-Git-Url: https://git.draconx.ca/gitweb/cdecl99.git/blobdiff_plain/27af7b2f66aebc8c624a8a01b6f54ca69f95cdb9..HEAD:/configure.ac diff --git a/configure.ac b/configure.ac index 5752441..d292fcd 100644 --- a/configure.ac +++ b/configure.ac @@ -1,40 +1,124 @@ -dnl Copyright © 2011 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_COPYRIGHT([Copyright (C) 2011-2013, 2020-2024 Nick Bowler +License GPLv3+: GNU General Public License version 3 or any later version. +This is free software: you are free to change and redistribute it. +There is NO WARRANTY, to the extent permitted by law.]) + +DX_PATCH_GNULIB AC_PREREQ([2.68]) -AC_INIT([cdecl99], [0.1], [nbowler@draconx.ca]) -AC_CONFIG_HEADER([config.h]) -AC_CONFIG_MACRO_DIR([m4]) +AC_INIT([cdecl99], [1.3a], [nbowler@draconx.ca]) +AC_CONFIG_HEADERS([config.h]) -AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects]) +AM_INIT_AUTOMAKE([-Wall -Wno-portability foreign subdir-objects]) AM_SILENT_RULES([yes]) +DX_AUTOMAKE_COMPAT + +AC_ARG_WITH([readline], + [AS_HELP_STRING([--with-readline], + [use GNU readline for line-editing functionality (default: auto)])], + [], [with_readline=auto]) +AS_CASE([$with_readline], + [no], [gl_cv_lib_readline=no], + [yes|auto], [:], + [*], [AC_MSG_ERROR([invalid option --with-readline=$with_readline])]) AC_PROG_CC_C99 +AM_PROG_CC_C_O gl_EARLY +AC_HEADER_ASSERT +AC_TYPE_UNSIGNED_LONG_LONG_INT +AC_CHECK_TYPES([unsigned __int64], [], [], + [unsigned __int64 foo = -1; /* avoid false positive result on VAX C */]) +AC_C_FLEXIBLE_ARRAY_MEMBER +AC_C_INLINE +DX_C_FOR_DECLARATIONS +DX_C_ALIGNAS +AM_PROG_AR + LT_INIT gl_INIT -dnl We provide our own makefile rules for gettext. Disable tracing of -dnl AM_GNU_GETTEXT to prevent autoreconf from running autopoint, and to -dnl prevent automake from growing gratuitous error conditions. -m4_traceoff([AM_GNU_GETTEXT]) -AM_GNU_GETTEXT([external]) -DX_LINGUAS +# 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 the wcwidth replacement module is not used by the library, there is +# no need to support varying locales (programs set locale once at startup). +AC_DEFINE([GNULIB_WCHAR_SINGLE_LOCALE], [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])], + [dx_cv_rl_add_history=no])]) +AC_CACHE_CHECK([if readline supports add_history], [dx_cv_rl_add_history], [dnl +dx_cv_rl_add_history=no +dx_save_libs=$LIBS +LIBS="$LIBS $LIBREADLINE" +AC_LINK_IFELSE([AC_LANG_PROGRAM([dnl +#include +#if HAVE_READLINE_HISTORY_H +# include +#endif +], [dnl +(*add_history)(""); +])], [dx_cv_rl_add_history=yes], [dx_cv_rl_add_history=no]) +LIBS=$dx_save_libs +]) + +AS_IF([test x"$dx_cv_rl_add_history" = x"yes"], + [AC_DEFINE([HAVE_RL_ADD_HISTORY], [1], + [Define to 1 if readline supports add_history.])]) + +m4_include([lib/gnulib.mk]) +DX_GLSYM_PREFIX([cdecl__gl_]) +DX_GNULIB_SYMFILES([lib/symfiles], [s]) +AM_CONDITIONAL([BUILD_STATIC], [test x"$enable_static" = x"yes"]) -AC_ARG_VAR([FLEX], [Command to invoke flex. Defaults to flex.]) -AC_ARG_VAR([FLEXFLAGS], [Additional options to pass to flex.]) -AC_CHECK_PROGS([FLEX], [flex], [flex]) +AM_CONDITIONAL([USE_NLS], [test x"$USE_NLS" = x"yes"]) -AC_ARG_VAR([BISON], [Command to invoke GNU Bison. Defaults to bison.]) -AC_ARG_VAR([BISONFLAGS], [Additional options to pass to Bison.]) -AC_CHECK_PROGS([BISON], [bison], [bison]) +DX_PROG_FLEX([], [have_flex=yes], [have_flex=no]) +AM_CONDITIONAL([HAVE_FLEX], [test x"$have_flex" = x"yes"]) -AC_CONFIG_FILES([ - lib/Makefile - Makefile +DX_PROG_BISON([], [have_bison=yes], [have_bison=no]) +AM_CONDITIONAL([HAVE_BISON], [test x"$have_bison" = x"yes"]) + +DX_BISON_COMPAT +BISON_I18N + +BISON_COMPAT= +AS_IF([test x"$dx_cv_bison_api_header_include" = x"yes"], + [BISON_COMPAT="'--define=api.header.include={\"\$(*F).h\"}'"]) +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_CASE([$dx_cv_bison_define_cmdline], [yes], +[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_CASE([$dx_cv_bison_api_token_raw], [yes], + [AS_VAR_APPEND([BISON_COMPAT], [" --define api.token.raw"])])]) + +AH_TOP([#include ]) +AH_BOTTOM([#include ]) + +AC_CONFIG_TESTDIR([.], [t:.]) +DX_PROG_AUTOTEST_AM + +DX_CHECK_GETLINE + +AC_CONFIG_FILES([Makefile]) AC_OUTPUT