]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - aclocal.m4
ncurses 6.2 - patch 20200308
[ncurses.git] / aclocal.m4
index 84975a6c5690d8f2257a1272dfc5e60e6a3100a9..6ae0617ef4f7fe146cf1e021a304383d9c972b1b 100644 (file)
@@ -1,5 +1,6 @@
 dnl***************************************************************************
-dnl Copyright (c) 1998-2019,2020 Free Software Foundation, Inc.              *
+dnl Copyright 2018-2019,2020 Thomas E. Dickey                                *
+dnl Copyright 1998-2017,2018 Free Software Foundation, Inc.                  *
 dnl                                                                          *
 dnl Permission is hereby granted, free of charge, to any person obtaining a  *
 dnl copy of this software and associated documentation files (the            *
@@ -28,7 +29,7 @@ dnl***************************************************************************
 dnl
 dnl Author: Thomas E. Dickey 1995-on
 dnl
-dnl $Id: aclocal.m4,v 1.892 2020/01/12 00:10:43 tom Exp $
+dnl $Id: aclocal.m4,v 1.903 2020/03/08 01:05:14 tom Exp $
 dnl Macros used in NCURSES auto-configuration script.
 dnl
 dnl These macros are maintained separately from NCURSES.  The copyright on
@@ -1818,6 +1819,28 @@ if test "$cf_disable_rpath_hack" = no ; then
 fi
 ])
 dnl ---------------------------------------------------------------------------
+dnl CF_ENABLE_BROKEN_LINKER version: 1 updated: 2020/02/08 15:59:30
+dnl -----------------------
+dnl Some linkers cannot reference a data-only object.  Cygwin used to be one.
+dnl This usually follows CF_LINK_DATAONLY, but is not required in case we need
+dnl an unconditional feature.
+AC_DEFUN([CF_ENABLE_BROKEN_LINKER],[
+
+AC_MSG_CHECKING(if you want broken-linker support code)
+AC_ARG_ENABLE(broken_linker,
+       [  --enable-broken_linker  compile with broken-linker support code],
+       [with_broken_linker=$enableval],
+       [with_broken_linker=no])
+AC_MSG_RESULT($with_broken_linker)
+
+: ${BROKEN_LINKER:=0}
+if test "x$with_broken_linker" = xyes ; then
+       AC_DEFINE(BROKEN_LINKER,1,[Define to 1 to work around linkers which cannot link data-only modules])
+       BROKEN_LINKER=1
+fi
+AC_SUBST(BROKEN_LINKER)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_ENABLE_PC_FILES version: 13 updated: 2015/11/01 05:27:39
 dnl ------------------
 dnl This is the "--enable-pc-files" option, which is available if there is a
@@ -3992,7 +4015,7 @@ ifelse($1,,,[$1=$LIB_PREFIX])
        AC_SUBST(LIB_PREFIX)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_RULES version: 88 updated: 2018/08/18 12:19:21
+dnl CF_LIB_RULES version: 89 updated: 2020/03/07 20:05:14
 dnl ------------
 dnl Append definitions and rules for the given models to the subdirectory
 dnl Makefiles, and the recursion rule for the top-level Makefile.  If the
@@ -4080,8 +4103,13 @@ CF_EOF
                for cf_item in $cf_LIST_MODELS
                do
                        CF_LIB_SUFFIX($cf_item,cf_suffix,cf_depsuf)
-                       cf_libname=$cf_dir
-                       test "$cf_dir" = c++ && cf_libname=ncurses++
+                       if test "$cf_dir" = "c++"
+                       then
+                               CF_MAP_LIB_BASENAME(cf_libname,cxx)
+                       else
+                               CF_MAP_LIB_BASENAME(cf_libname,$cf_dir)
+                       fi
+                       test -z "$cf_libname" && cf_libname="$cf_dir"
                        if test $cf_item = shared ; then
                                if test -n "${LIB_SUFFIX}"
                                then
@@ -4259,8 +4287,10 @@ CF_EOF
                                        ;;
                                esac
                        elif test $cf_dir = c++ ; then
-                               cf_libname=ncurses++$USE_LIB_SUFFIX
+                               CF_MAP_LIB_BASENAME(cf_libname,cxx)
+                               cf_libname=${cf_libname}$USE_LIB_SUFFIX
                        else
+                               CF_MAP_LIB_BASENAME(cf_libname,$cf_dir)
                                cf_libname=${cf_libname}$USE_LIB_SUFFIX
                        fi
                        if test -n "${USE_ARG_SUFFIX}" ; then
@@ -4695,7 +4725,7 @@ AC_DEFUN([CF_LIB_TYPE],
        test -n "$LIB_SUFFIX" && $2="${LIB_SUFFIX}[$]{$2}"
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LINK_DATAONLY version: 12 updated: 2017/07/23 17:46:07
+dnl CF_LINK_DATAONLY version: 13 updated: 2020/02/08 15:59:30
 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
@@ -4755,6 +4785,7 @@ if test "$cf_cv_link_dataonly" = no ; then
        AC_DEFINE(BROKEN_LINKER,1,[if data-only library module does not link])
        BROKEN_LINKER=1
 fi
+AC_SUBST(BROKEN_LINKER)
 
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -5455,6 +5486,17 @@ exit 0
 CF_EOF
 chmod 755 $cf_edit_man
 
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_MAP_LIB_BASENAME version: 1 updated: 2020/03/07 20:05:14
+dnl -------------------
+dnl Convert a default-libname to the actual one used via CF_WITH_LIB_BASENAME.
+dnl
+dnl $1 = variable to set
+dnl $2 = default-libname
+AC_DEFUN([CF_MAP_LIB_BASENAME],[
+CF_UPPER(cf_map_lib_basename,$2)
+eval $1=\$${cf_map_lib_basename}_NAME
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_MATH_LIB version: 9 updated: 2017/01/21 11:06:25
@@ -6509,7 +6551,7 @@ do
 done
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 93 updated: 2018/08/18 16:36:35
+dnl CF_SHARED_OPTS version: 94 updated: 2020/02/29 16:09:19
 dnl --------------
 dnl --------------
 dnl Attempt to determine the appropriate CC/LD options for creating a shared
@@ -6735,6 +6777,37 @@ CF_EOF
                CF_SHARED_SONAME
                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
+               shlibdir=$bindir
+               MAKE_DLLS=
+               if test "$DFT_LWR_MODEL" = "shared" ; then
+                       LOCAL_LDFLAGS="-link -dll"
+                       LOCAL_LDFLAGS2="$LOCAL_LDFLAGS"
+                       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"
+               cat >mk_shared_lib.sh <<-CF_EOF
+               #!$SHELL
+               SHARED_LIB=\$1
+               IMPORT_LIB=\`echo "\$1" | sed -e 's/[0-9]*\.dll$\.dll.a/'\`
+               shift
+               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")
+               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
+               ;;
        (mingw*)
                cf_cv_shlib_version=mingw
                cf_cv_shlib_version_infix=mingw
@@ -7029,9 +7102,9 @@ done
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SIG_ATOMIC_T version: 3 updated: 2012/10/04 20:12:20
+dnl CF_SIG_ATOMIC_T version: 4 updated: 2020/01/18 12:30:44
 dnl ---------------
-dnl signal handler, but there are some gcc depedencies in that recommendation.
+dnl signal handler, but there are some gcc dependencies in that recommendation.
 dnl Try anyway.
 AC_DEFUN([CF_SIG_ATOMIC_T],
 [
@@ -7140,7 +7213,7 @@ if test "$cf_cv_sizechange" != no ; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SRC_MODULES version: 31 updated: 2019/09/21 18:08:42
+dnl CF_SRC_MODULES version: 32 updated: 2020/03/07 20:05:14
 dnl --------------
 dnl For each parameter, test if the source-directory exists, and if it contains
 dnl a 'modules' file.  If so, add to the list $cf_cv_src_modules which we'll
@@ -7194,14 +7267,15 @@ do
                        CF_UPPER(cf_have_include,$cf_dir)
                        AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
                        AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
-                       TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
-                       TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
+                       CF_MAP_LIB_BASENAME(TEST_ROOT,$cf_dir)
+                       TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TEST_ROOT}${DFT_DEP_SUFFIX} $TEST_DEPS"
+                       TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TEST_ROOT}${DFT_DEP_SUFFIX} $TEST_DEP2"
                        if test "$DFT_LWR_MODEL" = "libtool"; then
                                TEST_ARGS="${TEST_DEPS}"
                                TEST_ARG2="${TEST_DEP2}"
                        else
-                               TEST_ARGS="-l${cf_dir}${USE_ARG_SUFFIX} $TEST_ARGS"
-                               TEST_ARG2="-l${cf_dir}${USE_ARG_SUFFIX} $TEST_ARG2"
+                               TEST_ARGS="-l${TEST_ROOT}${USE_ARG_SUFFIX} $TEST_ARGS"
+                               TEST_ARG2="-l${TEST_ROOT}${USE_ARG_SUFFIX} $TEST_ARG2"
                        fi
                        PC_MODULES_TO_MAKE="${PC_MODULES_TO_MAKE} ${cf_dir}${USE_ARG_SUFFIX}"
                fi
@@ -8319,6 +8393,35 @@ esac
 AC_SUBST(LIBTOOL_OPTS)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_WITH_LIB_BASENAME version: 1 updated: 2020/03/07 20:05:14
+dnl --------------------
+dnl Allow for overriding the basename of a library, i.e., the part to which
+dnl prefixes/suffixes are attached.
+dnl
+dnl $1 = variable to set
+dnl $2 = option name
+dnl $3 = default basename for library, if omitted use $2
+AC_DEFUN([CF_WITH_LIB_BASENAME],
+[
+AC_MSG_CHECKING(for desired basename for $2 library)
+AC_ARG_WITH($2-libname,
+       [  --with-$2-libname=XXX override ifelse($3,,$2,$3) basename of library],
+       [with_lib_basename=$withval],
+       [with_lib_basename=ifelse($3,,$2,$3)])
+$1="$with_lib_basename"
+
+case "x[$]$1" in
+(x|xno|xnone|xyes)
+       $1=ifelse($3,,$2,$3)
+       ;;
+(*)
+       ;;
+esac
+
+AC_MSG_RESULT([$]$1)
+AC_SUBST($1)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_WITH_LIB_PREFIX version: 1 updated: 2012/01/21 19:28:10
 dnl ------------------
 dnl Allow the library-prefix to be overridden.  OS/2 EMX originally had no
@@ -8444,7 +8547,7 @@ AC_ARG_WITH($2-path,
        ])
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PCRE2 version: 2 updated: 2018/07/14 16:47:56
+dnl CF_WITH_PCRE2 version: 3 updated: 2020/02/29 16:09:19
 dnl -------------
 dnl Add PCRE2 (Perl-compatible regular expressions v2) to the build if it is
 dnl available and the user requests it.  Assume the application will otherwise
@@ -8482,7 +8585,7 @@ if test "x$with_pcre2" != xno ; then
        esac
 
        # either way, check for the library header files
-       AC_CHECK_HEADERS(pcre2-posix.h pcreposix.h)
+       AC_CHECK_HEADERS(pcre2posix.h pcreposix.h)
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------