dnl
dnl Author: Thomas E. Dickey
dnl
-dnl $Id: aclocal.m4,v 1.155 2020/03/20 00:23:48 tom Exp $
+dnl $Id: aclocal.m4,v 1.165 2020/11/20 23:52:27 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(ADAFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_ADD_CFLAGS version: 13 updated: 2017/02/25 18:57:40
+dnl CF_ADD_CFLAGS version: 14 updated: 2020/04/04 16:16:13
dnl -------------
dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
-dnl The second parameter if given makes this macro verbose.
+dnl $1 = flags to add
+dnl $2 = if given makes this macro verbose.
dnl
dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
AC_DEFUN([CF_ARG_DISABLE],
[CF_ARG_OPTION($1,[$2],[$3],[$4],yes)])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_ARG_ENABLE version: 3 updated: 1999/03/30 17:24:31
+dnl -------------
+dnl Allow user to enable a normally-off option.
+AC_DEFUN([CF_ARG_ENABLE],
+[CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_ARG_OPTION version: 5 updated: 2015/05/10 19:52:14
dnl -------------
dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
])dnl
])])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_AR_FLAGS version: 6 updated: 2015/10/10 15:25:05
+dnl CF_AR_FLAGS version: 7 updated: 2020/04/04 11:37:29
dnl -----------
dnl Check for suitable "ar" (archiver) options for updating an archive.
dnl
AC_REQUIRE([CF_PROG_AR])
AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
- cf_cv_ar_flags=unknown
- for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
- do
+ case $cf_cv_system_name in
+ (*-msvc*)
+ cf_cv_ar_flags=''
+ cat >mk_static_lib.sh <<-EOF
+ #!$SHELL
+ MSVC_BIN="[$]AR"
+ out="\[$]1"
+ shift
+ exec \[$]MSVC_BIN -out:"\[$]out" \[$]@
+ EOF
+ chmod +x mk_static_lib.sh
+ AR=`pwd`/mk_static_lib.sh
+ ;;
+ (*)
+ cf_cv_ar_flags=unknown
+ for cf_ar_flags in -curvU -curv curv -crv crv -cqv cqv -rv rv
+ do
- # check if $ARFLAGS already contains this choice
- if test "x$ARFLAGS" != "x" ; then
- cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
- if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
- cf_cv_ar_flags=
- break
+ # check if $ARFLAGS already contains this choice
+ if test "x$ARFLAGS" != "x" ; then
+ cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
+ if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
+ cf_cv_ar_flags=
+ break
+ fi
fi
- fi
- rm -f conftest.$ac_cv_objext
- rm -f conftest.a
+ rm -f conftest.$ac_cv_objext
+ rm -f conftest.a
- cat >conftest.$ac_ext <<EOF
+ cat >conftest.$ac_ext <<EOF
#line __oline__ "configure"
int testdata[[3]] = { 123, 456, 789 };
EOF
- if AC_TRY_EVAL(ac_compile) ; then
- echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
- $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
- if test -f conftest.a ; then
- cf_cv_ar_flags=$cf_ar_flags
+ if AC_TRY_EVAL(ac_compile) ; then
+ echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
+ $AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
+ if test -f conftest.a ; then
+ cf_cv_ar_flags=$cf_ar_flags
+ break
+ fi
+ else
+ CF_VERBOSE(cannot compile test-program)
break
fi
- else
- CF_VERBOSE(cannot compile test-program)
- break
- fi
- done
- rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
+ done
+ rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
+ ;;
+ esac
])
if test -n "$ARFLAGS" ; then
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_GNAT_VERSION version: 2 updated: 2019/12/31 08:53:54
+dnl CF_CHECK_GNAT_VERSION version: 3 updated: 2020/05/23 19:39:36
dnl ---------------------
AC_DEFUN([CF_CHECK_GNAT_VERSION],
[
AC_REQUIRE([CF_GNAT_VERSION])
case $cf_cv_gnat_version in
-(3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|20[[0-9]][[0-9]])
+(3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
cf_cv_prog_gnat_correct=yes
;;
(*)
esac
])
dnl ---------------------------------------------------------------------------
-dnl CF_CLANG_COMPILER version: 2 updated: 2013/11/19 19:23:35
+dnl CF_CLANG_COMPILER version: 5 updated: 2020/11/20 18:52:27
dnl -----------------
dnl Check if the given compiler is really clang. clang's C driver defines
dnl __GNUC__ (fooling the configure script into setting $GCC to yes) but does
if test "$ifelse([$1],,[$1],GCC)" = yes ; then
AC_MSG_CHECKING(if this is really Clang ifelse([$1],GXX,C++,C) compiler)
cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
- ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -Qunused-arguments"
AC_TRY_COMPILE([],[
#ifdef __clang__
#else
make an error
#endif
],[ifelse([$2],,CLANG_COMPILER,[$2])=yes
-cf_save_CFLAGS="$cf_save_CFLAGS -Qunused-arguments"
],[])
ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
AC_MSG_RESULT($ifelse([$2],,CLANG_COMPILER,[$2]))
fi
+
+if test "x$ifelse([$2],,CLANG_COMPILER,[$2])" = "xyes" ; then
+ for cf_clang_opt in \
+ -Qunused-arguments \
+ -Wno-error=implicit-function-declaration
+ do
+ AC_MSG_CHECKING(if option $cf_clang_opt works)
+ cf_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $cf_clang_opt"
+ AC_TRY_LINK([
+ #include <stdio.h>],[
+ printf("hello!\n");],[
+ cf_clang_optok=yes],[
+ cf_clang_optok=no])
+ AC_MSG_RESULT($cf_clang_optok)
+ CFLAGS="$cf_save_CFLAGS"
+ if test $cf_clang_optok = yes; then
+ CF_VERBOSE(adding option $cf_clang_opt)
+ CF_APPEND_TEXT(CFLAGS,$cf_clang_opt)
+ fi
+ done
+fi
])
dnl ---------------------------------------------------------------------------
dnl CF_CONST_X_STRING version: 4 updated: 2020/03/10 18:53:47
AC_SUBST(BROKEN_LINKER)
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_ENABLE_WARNINGS version: 7 updated: 2020/08/29 09:05:21
+dnl ------------------
+dnl Configure-option to enable gcc warnings
+dnl
+dnl $1 = extra options to add, if supported
+dnl $2 = option for checking attributes. By default, this is done when
+dnl warnings are enabled. For other values:
+dnl yes: always do this, e.g., to use in generated library-headers
+dnl no: never do this
+AC_DEFUN([CF_ENABLE_WARNINGS],[
+if ( test "$GCC" = yes || test "$GXX" = yes )
+then
+CF_FIX_WARNINGS(CFLAGS)
+CF_FIX_WARNINGS(CPPFLAGS)
+CF_FIX_WARNINGS(LDFLAGS)
+AC_MSG_CHECKING(if you want to turn on gcc warnings)
+CF_ARG_ENABLE(warnings,
+ [ --enable-warnings test: turn on gcc compiler warnings],
+ [with_warnings=yes],
+ [with_warnings=no])
+AC_MSG_RESULT($with_warnings)
+if test "$with_warnings" = "yes"
+then
+ ifelse($2,,[CF_GCC_ATTRIBUTES])
+ CF_GCC_WARNINGS($1)
+fi
+ifelse($2,yes,[CF_GCC_ATTRIBUTES])
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
dnl ---------------
dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
AC_MSG_RESULT($ADAFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GCC_ATTRIBUTES version: 18 updated: 2020/03/10 18:53:47
+dnl CF_FIX_WARNINGS version: 2 updated: 2020/08/28 15:08:28
+dnl ---------------
+dnl Warning flags do not belong in CFLAGS, CPPFLAGS, etc. Any of gcc's
+dnl "-Werror" flags can interfere with configure-checks. Those go into
+dnl EXTRA_CFLAGS.
+dnl
+dnl $1 = variable name to repair
+define([CF_FIX_WARNINGS],[
+if ( test "$GCC" = yes || test "$GXX" = yes )
+then
+ case [$]$1 in
+ (*-Werror=*)
+ CF_VERBOSE(repairing $1: [$]$1)
+ cf_temp_flags=
+ for cf_temp_scan in [$]$1
+ do
+ case "x$cf_temp_scan" in
+ (x-Werror=*)
+ CF_APPEND_TEXT(EXTRA_CFLAGS,"$cf_temp_scan")
+ ;;
+ (*)
+ CF_APPEND_TEXT(cf_temp_flags,"$cf_temp_scan")
+ ;;
+ esac
+ done
+ $1="$cf_temp_flags"
+ CF_VERBOSE(... fixed [$]$1)
+ CF_VERBOSE(... extra $EXTRA_CFLAGS)
+ ;;
+ esac
+fi
+AC_SUBST(EXTRA_CFLAGS)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_GCC_ATTRIBUTES version: 19 updated: 2020/08/29 09:05:21
dnl -----------------
dnl Test for availability of useful gcc __attribute__ directives to quiet
dnl compiler warnings. Though useful, not all are supported -- and contrary
dnl to documentation, unrecognized directives cause older compilers to barf.
AC_DEFUN([CF_GCC_ATTRIBUTES],
[
-if test "$GCC" = yes
+if ( test "$GCC" = yes || test "$GXX" = yes )
then
cat > conftest.i <<EOF
#ifndef GCC_PRINTF
CF_CLANG_COMPILER(GCC,CLANG_COMPILER,CFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GCC_WARNINGS version: 37 updated: 2020/01/05 20:04:12
+dnl CF_GCC_WARNINGS version: 38 updated: 2020/08/28 15:08:28
dnl ---------------
dnl Check if the compiler supports useful warning options. There's a few that
dnl we don't use, simply because they're too noisy:
AC_CHECKING([for $CC warning options])
cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS="-Wall"
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
for cf_opt in \
wd1419 \
wd1683 \
then
AC_CHECKING([for $CC warning options])
cf_save_CFLAGS="$CFLAGS"
- EXTRA_CFLAGS=
cf_warn_CONST=""
test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
cf_gcc_warnings="Wignored-qualifiers Wlogical-op Wvarargs"
AC_SUBST(GNATPREP_OPTS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GNAT_GENERICS version: 4 updated: 2019/12/31 08:53:54
+dnl CF_GNAT_GENERICS version: 6 updated: 2020/07/04 19:30:27
dnl ----------------
AC_DEFUN([CF_GNAT_GENERICS],
[
AC_MSG_CHECKING(if GNAT supports generics)
case $cf_cv_gnat_version in
-(3.[[1-9]]*|[[4-9]].*)
+(3.1[[1-9]]*|3.[[2-9]]*|[[4-9]].*|[[1-9]][[0-9]].[[0-9]]*|20[[0-9]][[0-9]])
cf_gnat_generics=yes
;;
(*)
$1="$cf_library_path_list [$]$1"
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LIB_PREFIX version: 12 updated: 2015/10/17 19:03:33
+dnl CF_LIB_PREFIX version: 13 updated: 2020/04/04 10:11:47
dnl -------------
dnl Compute the library-prefix for the given host system
dnl $1 = variable to set
LIB_PREFIX=''
fi
;;
+ (*-msvc*)
+ LIB_PREFIX=''
+ ;;
(*) LIB_PREFIX='lib'
;;
esac
AC_SUBST(LIB_PREFIX)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LIB_SUFFIX version: 25 updated: 2015/04/17 21:13:04
+dnl CF_LIB_SUFFIX version: 26 updated: 2020/04/04 10:11:47
dnl -------------
dnl Compute the library file-suffix from the given model name
dnl $1 = model name
$3=[$]$2
;;
(Xdebug)
- $2='_g.a'
+ case $cf_cv_system_name in
+ (*-msvc*)
+ $2='_g.lib'
+ ;;
+ (*)
+ $2='_g.a'
+ ;;
+ esac
$3=[$]$2
;;
(Xprofile)
- $2='_p.a'
+ case $cf_cv_system_name in
+ (*-msvc*)
+ $2='_p.lib'
+ ;;
+ (*)
+ $2='_p.a'
+ ;;
+ esac
$3=[$]$2
;;
(Xshared)
$2='.so'
$3=[$]$2
;;
+ (*-msvc*)
+ $2='.dll'
+ $3='.dll.lib'
+ ;;
(cygwin*|msys*|mingw*)
$2='.dll'
$3='.dll.a'
esac
;;
(*)
- $2='.a'
+ case $target in
+ (*-msvc*)
+ $2='.lib'
+ ;;
+ (*)
+ $2='.a'
+ ;;
+ esac
$3=[$]$2
;;
esac
AC_SUBST(MAKE_LOWER_TAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MIXEDCASE_FILENAMES version: 7 updated: 2015/04/12 15:39:00
+dnl CF_MIXEDCASE_FILENAMES version: 8 updated: 2020/11/14 10:12:15
dnl ----------------------
dnl Check if the file-system supports mixed-case filenames. If we're able to
dnl create a lowercase name and see it as uppercase, it doesn't support that.
AC_CACHE_CHECK(if filesystem supports mixed-case filenames,cf_cv_mixedcase,[
if test "$cross_compiling" = yes ; then
case $target_alias in
- (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*)
+ (*-os2-emx*|*-msdosdjgpp*|*-cygwin*|*-msys*|*-mingw*|*-uwin*|darwin*)
cf_cv_mixedcase=no
;;
(*)
done
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 94 updated: 2020/02/29 16:09:19
+dnl CF_SHARED_OPTS version: 102 updated: 2020/08/22 18:17:19
dnl --------------
dnl --------------
dnl Attempt to determine the appropriate CC/LD options for creating a shared
MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
;;
(mingw*msvc*)
- cf_cv_shlib_version=mingw
- cf_cv_shlib_version_infix=mingw
+ cf_cv_shlib_version=msvcdll
+ cf_cv_shlib_version_infix=msvcdll
shlibdir=$bindir
MAKE_DLLS=
if test "$DFT_LWR_MODEL" = "shared" ; then
EXTRA_LDFLAGS="-link -dll $EXTRA_LDFLAGS"
fi
CC_SHARED_OPTS=
- MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh $@ ${LD} ${CFLAGS}'
- RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.a"
+ MK_SHARED_LIB=$SHELL' '$rel_builddir'/mk_shared_lib.sh [$]@ ${LD} [$]{CFLAGS}'
+ RM_SHARED_OPTS="$RM_SHARED_OPTS $rel_builddir/mk_shared_lib.sh *.dll.lib"
cat >mk_shared_lib.sh <<-CF_EOF
#!$SHELL
- SHARED_LIB=\$1
- IMPORT_LIB=\`echo "\$1" | sed -e 's/[0-9]*\.dll$\.dll.a/'\`
+ SHARED_LIB=\[$]1
+ IMPORT_LIB=\`echo "\[$]1" | sed -e 's/[[0-9]]*\.dll[$]/.dll.lib/'\`
shift
- my_ld=\$1
+ my_ld=\[$]1
shift
cat <<-EOF
Linking shared library
** SHARED LIB \$SHARED_LIB
** IMPORT_LIB \$IMPORT_LIB
EOF
- args=\$(echo \$* | sed -E "s#-l(\w*)#lib\1.a#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
+ args=\$(echo \[$]* | sed -E "s#-l(\w*)#\1.dll.lib#g" | sed -E "s#-L(\w*)#-LIBPATH:\1#g")
exec \$my_ld -DLL -IMPLIB:"\${IMPORT_LIB}" -OUT:"\${SHARED_LIB}" ${LDFLAGS} \$args
mv "\${IMPORT_LIB}" "\${IMPORT_LIB}"
CF_EOF
chmod +x mk_shared_lib.sh
+ cat >mk_prog.sh <<-CF_EOF
+ #!$SHELL
+ shift
+ # Ignore first argument (compiler) and use LD (link.exe) unconditionally
+ LD="[$]LD"
+ clopts=()
+ ldopts=("/subsystem:console")
+ libs=()
+ isdll=0
+ while test \[$]# -gt 0; do
+ case "\[$]1" in
+ -link)
+ # ignore -link argument
+ ;;
+ -M[[TD]] | -M[[TD]]d)
+ # ignore runtime-library option
+ ;;
+ -dll)
+ isdll=1
+ ;;
+ -W* | -w*)
+ # ignore warnings
+ ;;
+ -D*)
+ clopts+=("\[$]1")
+ ;;
+ -I*)
+ clopts+=("\[$]1")
+ ;;
+ -l*)
+ libs+=("\`echo \"\[$]1\" | sed \"s/^-l//\"\`")
+ ;;
+ -L*)
+ ldopts+=("\`echo \"\[$]1\" | sed \"s/^-L/-LIBPATH:/\"\`")
+ ;;
+ *.obj | *.o)
+ ldopts+=("\[$]1")
+ ;;
+ -Wl,*)
+ for linkarg in \`echo '\[$]1' | sed -e 's/-Wl,//' -e 's/,/ /'\`; do
+ ldopts+=("\[$]{linkarg}")
+ done
+ ;;
+ *.lib)
+ ldopts+=("\[$]1")
+ ;;
+ -o)
+ shift
+ ldopts+=("-out:\[$]1")
+ ;;
+ *)
+ clopts+=("\[$]1")
+ ldopts+=("\[$]1")
+ ;;
+ esac
+ shift
+ done
+ if [[ "\$isdll" -ne 0 ]]; then
+ for lib in \[$]{libs[[*]]}; do
+ ldopts+=("\[$]lib.dll.lib")
+ done
+ else
+ for lib in \[$]{libs[[*]]}; do
+ ldopts+=("\[$]lib.lib")
+ done
+ fi
+ cat <<-EOF
+ Creating program
+ ** ld options: "\[$]{ldopts[[@]]}"
+EOF
+ exec \[$]LD \[$]{ldopts[[@]]}
+CF_EOF
+ chmod +x mk_prog.sh
+ LINK_PROGS="$SHELL ${rel_builddir}/mk_prog.sh"
+ LINK_TESTS="$SHELL ${rel_builddir}/mk_prog.sh"
;;
(mingw*)
cf_cv_shlib_version=mingw
CF_SHARED_SONAME
MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-Bshareable,-soname,'$cf_cv_shared_soname',-stats,-lc -o $[@]'
;;
+ (nskJ*)
+ CC_SHARED_OPTS=
+ MK_SHARED_LIB='${LD} -Wshared -Weld=-export_all -o $[@]'
+ ;;
+ (nskL*)
+ CC_SHARED_OPTS=
+ MK_SHARED_LIB='${LD} -Wshared -Wxld=-export_all -o $[@]'
+ ;;
(nto-qnx*|openbsd*|freebsd[[12]].*)
CC_SHARED_OPTS="$CC_SHARED_OPTS -DPIC"
MK_SHARED_LIB='${LD} ${LDFLAGS} -Bshareable -o $[@]'
CF_SHARED_SONAME
MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,'$cf_cv_shared_soname' -o $[@]'
else
- MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -Wl,-shared -Wl,-Bshareable -o $[@]'
+ MK_SHARED_LIB='${CC} ${LDFLAGS} ${CFLAGS} -shared -o $[@]'
fi
;;
(osf*|mls+*)