dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
-dnl $Id: aclocal.m4,v 1.904 2020/03/20 00:46:13 tom Exp $
+dnl $Id: aclocal.m4,v 1.912 2020/04/04 20:16:13 tom Exp $
dnl Macros used in NCURSES 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_CXXFLAGS version: 1 updated: 2020/04/04 16:16:13
+dnl ---------------
+dnl Copy non-preprocessor flags to $CXXFLAGS, preprocessor flags to $CPPFLAGS
+dnl The second parameter 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
+dnl confused by the quotes (which require backslashes to keep them usable).
+AC_DEFUN([CF_ADD_CXXFLAGS],
+[
+cf_save_CXXFLAGS="$CFLAGS"
+CFLAGS="$CXXFLAGS"
+CF_ADD_CFLAGS($1 ifelse($2,,,[,$2]))
+CXXFLAGS="$CFLAGS"
+CFLAGS="$cf_save_CXXFLAGS"
+])dnl
+dnl ---------------------------------------------------------------------------
+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
])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
AC_DEFINE_UNQUOTED($cf_result)
fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_CHECK_FVISIBILITY version: 2 updated: 2020/04/04 16:16:13
+dnl --------------------
+dnl Check whether the compiler understands -fvisibility=hidden
+dnl
+dnl $1 = compiler
+dnl $2 = compiler-flags variable name
+dnl $3 = cache variable to set
+AC_DEFUN([CF_CHECK_FVISIBILITY],[
+AC_CACHE_CHECK(if $1 -fvisibility=hidden option works,$3,[
+ cf_save_cflags="[$]$2"
+ $2="[$]$2 -fvisibility=hidden"
+ AC_TRY_LINK([
+__attribute__ ((visibility("default"))) int somefunc() {return 42;}
+ ],[
+ if (somefunc()) return 1;
+],
+ [$3=yes],
+ [$3=no])
+ $2=$cf_save_cflags
+])
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_CHECK_GETENV version: 1 updated: 2019/06/23 15:28:15
test -z "$cf_cv_libtool_version" && unset cf_cv_libtool_version
])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_RULES version: 89 updated: 2020/03/07 20:05:14
+dnl CF_LIB_RULES version: 90 updated: 2020/04/04 10:11:47
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
AC_REQUIRE([CF_SUBST_NCURSES_VERSION])
case $cf_cv_shlib_version in
-(cygdll|msysdll|mingw)
+(cygdll|msysdll|mingw|msvcdll)
TINFO_NAME=$TINFO_ARG_SUFFIX
TINFO_SUFFIX=.dll
;;
cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
cf_add_lib="../lib/lib${cf_libname}${cf_cygsuf}"
;;
+ (msvcdll)
+ cf_cygsuf=`echo "$cf_suffix" | sed -e 's/\.dll/\${ABI_VERSION}.dll/'`
+ cf_add_lib="../lib/${cf_libname}${cf_cygsuf}"
+ ;;
(*)
cf_add_lib=
;;
CXX_MODEL=$cf_ITEM
if test "$CXX_MODEL" = SHARED; then
case $cf_cv_shlib_version in
- (cygdll|msysdll|mingw)
+ (cygdll|msysdll|mingw|msvcdll)
test "x$with_shared_cxx" = xno && CF_VERBOSE(overriding CXX_MODEL to SHARED)
with_shared_cxx=yes
;;
])
])
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
done
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 94 updated: 2020/02/29 16:09:19
+dnl CF_SHARED_OPTS version: 95 updated: 2020/04/04 10:11:47
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