dnl
dnl Author: Thomas E. Dickey
dnl
-dnl $Id: aclocal.m4,v 1.210 2024/03/30 22:17:13 tom Exp $
+dnl $Id: aclocal.m4,v 1.216 2024/06/01 21:38:29 tom Exp $
dnl Macros used in NCURSES Ada95 auto-configuration script.
dnl
dnl These macros are maintained separately from NCURSES. The copyright on
AC_SUBST(ARFLAGS)
])
dnl ---------------------------------------------------------------------------
-dnl CF_BUILD_CC version: 11 updated: 2022/12/04 15:40:08
+dnl CF_BUILD_CC version: 12 updated: 2024/03/17 09:17:26
dnl -----------
dnl If we're cross-compiling, allow the user to override the tools and their
dnl options. The configure script is oriented toward identifying the host
: ${BUILD_CC:='${CC}'}
: ${BUILD_CPP:='${CPP}'}
: ${BUILD_CFLAGS:='${CFLAGS}'}
- : ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
+ : ${BUILD_CPPFLAGS:='ifelse([$1],,'${CPPFLAGS}',[$1])'}
: ${BUILD_LDFLAGS:='${LDFLAGS}'}
- : ${BUILD_LIBS:='${LIBS}'}
+ : ${BUILD_LIBS:='ifelse([$2],,'${LIBS}',[$2])'}
: ${BUILD_EXEEXT:='$x'}
: ${BUILD_OBJEXT:='o'}
fi
;;
esac
-])
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_CONST_X_STRING version: 8 updated: 2023/12/01 17:22:50
-dnl -----------------
-dnl The X11R4-X11R6 Xt specification uses an ambiguous String type for most
-dnl character-strings.
-dnl
-dnl It is ambiguous because the specification accommodated the pre-ANSI
-dnl compilers bundled by more than one vendor in lieu of providing a standard C
-dnl compiler other than by costly add-ons. Because of this, the specification
-dnl did not take into account the use of const for telling the compiler that
-dnl string literals would be in readonly memory.
-dnl
-dnl As a workaround, one could (starting with X11R5) define XTSTRINGDEFINES, to
-dnl let the compiler decide how to represent Xt's strings which were #define'd.
-dnl That does not solve the problem of using the block of Xt's strings which
-dnl are compiled into the library (and is less efficient than one might want).
-dnl
-dnl Xt specification 7 introduces the _CONST_X_STRING symbol which is used both
-dnl when compiling the library and compiling using the library, to tell the
-dnl compiler that String is const.
-AC_DEFUN([CF_CONST_X_STRING],
-[
-AC_REQUIRE([AC_PATH_XTRA])
-
-CF_SAVE_XTRA_FLAGS([CF_CONST_X_STRING])
-
-AC_TRY_COMPILE(
-[
-#include <stdlib.h>
-#include <X11/Intrinsic.h>
-],
-[String foo = malloc(1); free((void*)foo)],[
-
-AC_CACHE_CHECK(for X11/Xt const-feature,cf_cv_const_x_string,[
- AC_TRY_COMPILE(
- [
-#undef _CONST_X_STRING
-#define _CONST_X_STRING /* X11R7.8 (perhaps) */
-#undef XTSTRINGDEFINES /* X11R5 and later */
-#include <stdlib.h>
-#include <X11/Intrinsic.h>
- ],[String foo = malloc(1); *foo = 0],[
- cf_cv_const_x_string=no
- ],[
- cf_cv_const_x_string=yes
- ])
-])
-
-CF_RESTORE_XTRA_FLAGS([CF_CONST_X_STRING])
-
-case "$cf_cv_const_x_string" in
-(no)
- CF_APPEND_TEXT(CPPFLAGS,-DXTSTRINGDEFINES)
- ;;
-(*)
- CF_APPEND_TEXT(CPPFLAGS,-D_CONST_X_STRING)
- ;;
-esac
-
])
])dnl
dnl ---------------------------------------------------------------------------
AC_SUBST(EXTRA_CFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_GETTIME version: 2 updated: 2023/02/25 08:45:56
+dnl CF_FUNC_GETTIME version: 3 updated: 2024/05/11 13:40:02
dnl ---------------
dnl Check for gettimeofday or clock_gettime. In 2023, the former is still more
dnl widely supported, but "deprecated" (2008), so we will use the latter if it
dnl is available, to reduce compiler warnings.
AC_DEFUN([CF_FUNC_GETTIME],[
-AC_CACHE_CHECK(for clock_gettime,cf_cv_func_clock_gettime,[
- AC_TRY_LINK([#include <time.h>],
+cf_save_libs="$LIBS"
+AC_CHECK_FUNC(clock_gettime,
+ cf_cv_test_clock_gettime=yes,
+ AC_CHECK_LIB(rt, clock_gettime,
+ [LIBS="-lrt $LIBS"
+ cf_cv_test_clock_gettime=yes],
+ cf_cv_test_clock_gettime=no))
+
+if test "$cf_cv_test_clock_gettime" = yes ; then
+AC_CACHE_CHECK(if clock_gettime links,cf_cv_func_clock_gettime,[
+ AC_TRY_LINK([
+$ac_includes_default
+#include <time.h>
+ ],
[struct timespec ts;
- int rc = clock_gettime(CLOCK_REALTIME, &ts); (void) rc; (void)ts],
+ int rc = clock_gettime(CLOCK_REALTIME, &ts)
+ + clock_gettime(CLOCK_MONOTONIC, &ts);
+ (void) rc; (void)ts],
[cf_cv_func_clock_gettime=yes],
[cf_cv_func_clock_gettime=no])
])
+else
+ cf_cv_func_clock_gettime=no
+fi
if test "$cf_cv_func_clock_gettime" = yes
then
echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_ADDON version: 6 updated: 2021/01/04 19:33:05
+dnl CF_NCURSES_ADDON version: 7 updated: 2024/06/01 17:37:13
dnl ----------------
dnl Configure an ncurses add-on, built outside the ncurses tree.
AC_DEFUN([CF_NCURSES_ADDON],[
AC_PROVIDE([CF_SUBST_NCURSES_VERSION])
-AC_MSG_CHECKING(if you want wide-character code)
-AC_ARG_ENABLE(widec,
- [ --enable-widec compile with wide-char/UTF-8 code],
- [with_widec=$enableval],
- [with_widec=no])
-AC_MSG_RESULT($with_widec)
-if test "$with_widec" = yes ; then
+AC_MSG_CHECKING(for specified curses library type)
+AC_ARG_WITH(screen,
+ [ --with-screen=XXX use specified curses-libraries],
+ [cf_cv_screen=$withval],
+ [cf_cv_screen=ncurses])
+
+case $cf_cv_screen in
+(curses|curses_*)
+ CF_CURSES_CONFIG
+ ;;
+(ncursesw*)
CF_UTF8_LIB
- CF_NCURSES_CONFIG(ncursesw)
-else
- CF_NCURSES_CONFIG(ncurses)
-fi
+ CF_NCURSES_CONFIG($cf_cv_screen)
+ ;;
+(ncurses*)
+ CF_NCURSES_CONFIG($cf_cv_screen)
+ ;;
+(*)
+ AC_MSG_ERROR(unexpected screen-value: $cf_cv_screen)
+ ;;
+esac
+
+AC_SUBST(cf_cv_screen)
if test "$NCURSES_CONFIG_PKG" != none ; then
cf_version=`$PKG_CONFIG --modversion $NCURSES_CONFIG_PKG 2>/dev/null`
AC_SUBST(cf_cv_header_stdbool_h)
AC_SUBST(cf_cv_type_of_bool)dnl
+AC_CACHE_CHECK(if KEY_RESIZE is supported,cf_cv_curses_resizes,[
+ AC_TRY_COMPILE([#include <${cf_cv_ncurses_header:-curses.h}>],
+ [int key = KEY_RESIZE; (void)key],
+ cf_cv_curses_resizes=yes,
+ cf_cv_curses_resizes=no)])
+cf_cv_enable_sigwinch=0
+test "$cf_cv_curses_resizes" = yes && cf_cv_enable_sigwinch=1
+AC_SUBST(cf_cv_enable_sigwinch)
])
dnl ---------------------------------------------------------------------------
dnl CF_NCURSES_CC_CHECK version: 6 updated: 2023/02/18 17:47:58
])
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_WITH_ADA version: 1 updated: 2024/05/18 13:55:23
+dnl -----------
+dnl Check for the Ada compiler (unless requested to not do this), which causes
+dnl a further check for a C compiler which can work with the Ada compiler.
+AC_DEFUN([CF_WITH_ADA],[
+AC_ARG_WITH(ada,
+ [ --without-ada suppress check for Ada compiler],
+ [cf_with_ada=$withval],
+ [cf_with_ada=yes])
+
+cf_prog_cc="gcc cc"
+if test "x$cf_with_ada" = xyes
+then
+ CF_PROG_GNAT
+ if test "x$cf_cv_prog_gnat_correct" = xyes; then
+ # gcc's developers chose to deprecate gnatgcc before making gprconfig
+ # work. They replaced gnatgcc in gcc 13 with a script which spits out
+ # a warning offering advice which could never work.
+ #
+ # Here is a workaround.
+ AC_PATH_PROG(cf_cv_path_gnatgcc,gnatgcc,no)
+ if test "$cf_cv_path_gnatgcc" != no
+ then
+ AC_MSG_CHECKING(for improvement)
+ cf_file_gnatgcc=`file -L "$cf_cv_path_gnatgcc" 2>/dev/null`
+ case "x$cf_file_gnatgcc" in
+ (*script*)
+ cf_cv_path_gnatgcc=`sh -x "$cf_cv_path_gnatgcc" --version 2>&1 | grep -w exec | sed -e 's/^[[ ]]*+[[ ]]*//' -e 's/exec[[ ]]//' -e 's/ .*//'`
+ ;;
+ (*)
+ cf_cv_path_gnatgcc=no
+ ;;
+ esac
+ AC_MSG_RESULT($cf_cv_path_gnatgcc)
+ test "$cf_cv_path_gnatgcc" = no && cf_cv_path_gnatgcc=gnatgcc
+ cf_prog_cc="$cf_cv_path_gnatgcc $cf_prog_cc"
+ fi
+ fi
+fi
+case "$cf_prog_cc" in
+(*/*)
+ CC="$cf_prog_cc"
+ AC_SUBST(CC)
+ ;;
+(*)
+ CF_PROG_CC($cf_prog_cc)
+ ;;
+esac
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_WITH_ADA_COMPILER version: 3 updated: 2023/10/28 11:59:01
dnl --------------------
dnl Command-line option to specify the Ada95 compiler.