dnl***************************************************************************
-dnl Copyright 2018-2022,2023 Thomas E. Dickey *
+dnl Copyright 2018-2023,2024 Thomas E. Dickey *
dnl Copyright 2010-2017,2018 Free Software Foundation, Inc. *
dnl *
dnl Permission is hereby granted, free of charge, to any person obtaining a *
dnl
dnl Author: Thomas E. Dickey
dnl
-dnl $Id: aclocal.m4,v 1.206 2023/11/23 01:48:30 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
fi
])
dnl ---------------------------------------------------------------------------
-dnl CF_CONST_X_STRING version: 7 updated: 2021/06/07 17:39:17
-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(
- [
-#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 ---------------------------------------------------------------------------
-dnl CF_CONST_X_STRING version: 7 updated: 2021/06/07 17:39:17
+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.
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>
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
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LARGEFILE version: 12 updated: 2020/03/19 20:23:48
+dnl CF_LARGEFILE version: 13 updated: 2023/12/03 19:09:59
dnl ------------
dnl Add checks for large file support.
AC_DEFUN([CF_LARGEFILE],[
#pragma GCC diagnostic error "-Wincompatible-pointer-types"
#include <sys/types.h>
#include <dirent.h>
+
+#ifndef __REDIRECT
+/* if transitional largefile support is setup, this is true */
+extern struct dirent64 * readdir(DIR *);
+#endif
],[
- /* if transitional largefile support is setup, this is true */
- extern struct dirent64 * readdir(DIR *);
- struct dirent64 *x = readdir((DIR *)0);
- struct dirent *y = readdir((DIR *)0);
+ DIR *dp = opendir(".");
+ struct dirent64 *x = readdir(dp);
+ struct dirent *y = readdir(dp);
int z = x - y;
(void)z;
],
test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LINK_DATAONLY version: 13 updated: 2020/02/08 15:59:30
+dnl CF_LINK_DATAONLY version: 15 updated: 2023/12/03 10:03:10
dnl ----------------
dnl Some systems have a non-ANSI linker that doesn't pull in modules that have
dnl only data (i.e., no functions), for example NeXT. On those systems we'll
rm -f conftest.$ac_ext data.o
cat >conftest.$ac_ext <<EOF
#line __oline__ "configure"
+extern int testfunc(void);
+#if defined(NeXT)
int testfunc(void)
{
-#if defined(NeXT)
${cf_cv_main_return:-return}(1); /* I'm told this linker is broken */
+}
#else
- extern int testdata[[3]];
+extern int testdata[[3]];
+int testfunc(void)
+{
return testdata[[0]] == 123
&& testdata[[1]] == 456
&& testdata[[2]] == 789;
-#endif
}
+#endif
EOF
if AC_TRY_EVAL(ac_compile); then
mv conftest.o func.o && \
cf_saveLIBS="$LIBS"
LIBS="conftest.a $LIBS"
AC_TRY_RUN([
+ extern int testfunc(void);
int main(void)
{
- extern int testfunc();
${cf_cv_main_return:-return} (!testfunc());
}
],
test "$cf_cv_mixedcase" = yes && AC_DEFINE(MIXEDCASE_FILENAMES,1,[Define to 1 if filesystem supports mixed-case filenames.])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MKSTEMP version: 12 updated: 2023/01/05 17:53:11
+dnl CF_MKSTEMP version: 13 updated: 2023/12/01 17:22:50
dnl ----------
dnl Check for a working mkstemp. This creates two files, checks that they are
dnl successfully created and distinct (AmigaOS apparently fails on the last).
int main(void)
{
- char *tmpl = "conftestXXXXXX";
+ static char tmpl[] = "conftestXXXXXX";
char name[2][80];
int n;
int result = 0;
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
AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_VERSION version: 17 updated: 2023/01/05 18:54:02
+dnl CF_NCURSES_VERSION version: 18 updated: 2024/01/07 06:34:16
dnl ------------------
dnl Check for the version of ncurses, to aid in reporting bugs, etc.
dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
# ifdef __NCURSES_H
fprintf(fp, "old\\n");
# else
- make an error
+ #error expected ncurses header to define __NCURSES_H
# endif
#endif
${cf_cv_main_return:-return}(0);
done
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 108 updated: 2023/10/28 11:59:01
+dnl CF_SHARED_OPTS version: 111 updated: 2024/03/29 20:08:49
dnl --------------
dnl --------------
dnl Attempt to determine the appropriate CC/LD options for creating a shared
for CC_SHARED_OPTS in -fPIC -fpic ''
do
CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
- AC_TRY_COMPILE([#include <stdio.h>],[int x = 1],[break],[])
+ AC_TRY_COMPILE([#include <stdio.h>],[int x = 1; (void)x],[break],[])
done
AC_MSG_RESULT($CC_SHARED_OPTS)
CFLAGS="$cf_save_CFLAGS"
# tested with SunOS 5.5.1 (solaris 2.5.1) and gcc 2.7.2
# tested with SunOS 5.10 (solaris 10) and gcc 3.4.3
if test "$DFT_LWR_MODEL" = "shared" ; then
- LOCAL_LDFLAGS="-R \$(LOCAL_LIBDIR):\${libdir}"
+ LOCAL_LDFLAGS="-R\$(LOCAL_LIBDIR):\${libdir}"
LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
fi
if test "$cf_cv_enable_rpath" = yes ; then
- EXTRA_LDFLAGS="-R \${libdir} $EXTRA_LDFLAGS"
+ EXTRA_LDFLAGS="-R\${libdir} $EXTRA_LDFLAGS"
fi
CF_SHARED_SONAME
if test "$GCC" != yes; then
done
CFLAGS="$cf_save_CFLAGS"
CC_SHARED_OPTS=$cf_shared_opts
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -h '$cf_cv_shared_soname' -o $[@]'
+ MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -dy -G -Wl,-h,'$cf_cv_shared_soname' -o $[@]'
else
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -h '$cf_cv_shared_soname' -o $[@]'
+ MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -dy -G -Wl,-h,'$cf_cv_shared_soname' -o $[@]'
fi
;;
(sysv5uw7*|unix_sv*)
])
])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.