X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=configure.in;h=f3adbf5fa85c5f434acf1abfd90e1daf8d1d442f;hp=c14ebe7914410d07cdd3d1e45716cbcdf59b10a8;hb=87f20fc6e737084b06b6343c8c7206404daec4a2;hpb=cc387b11f421650091d84640e05825ea5161ac66 diff --git a/configure.in b/configure.in index c14ebe79..f3adbf5f 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,5 @@ dnl*************************************************************************** -dnl Copyright (c) 1998-2012,2013 Free Software Foundation, Inc. * +dnl Copyright (c) 1998-2014,2015 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,19 +28,20 @@ dnl*************************************************************************** dnl dnl Author: Thomas E. Dickey 1995-on dnl -dnl $Id: configure.in,v 1.577 2013/12/15 00:03:02 tom Exp $ +dnl $Id: configure.in,v 1.599 2015/02/21 21:12:07 tom Exp $ dnl Process this file with autoconf to produce a configure script. dnl dnl See http://invisible-island.net/autoconf/ for additional information. dnl dnl --------------------------------------------------------------------------- AC_PREREQ(2.52.20030208) -AC_REVISION($Revision: 1.577 $) +AC_REVISION($Revision: 1.599 $) AC_INIT(ncurses/base/lib_initscr.c) AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin) CF_TOP_BUILDDIR CF_SUBST_NCURSES_VERSION +CF_VERSION_INFO(NCURSES,ncurses) CF_WITH_REL_VERSION(NCURSES) CF_WITH_ABI_VERSION @@ -92,6 +93,37 @@ else cf_with_cxx=no; CXX=""; GXX="";])dnl AC_PROG_CXX popdef([AC_MSG_ERROR])dnl + + AC_LANG_PUSH(C++) + if test "x$cf_with_cxx" != xno + then + # Several of the C++ configurations do not work, particularly when + # cross-compiling (20140913 -TD) + AC_MSG_CHECKING(if $CXX works) + + save_CPPFLAGS="$CPPFLAGS" + eval cf_includedir=${includedir} + CPPFLAGS="$CPPFLAGS -I${cf_includedir}" + AC_TRY_COMPILE([ +#include +#include +], + [ + printf("Hello world!\n") + ], + [cf_cxx_works=yes], + [cf_cxx_works=no]) + CPPFLAGS="$save_CPPFLAGS" + + AC_MSG_RESULT($cf_cxx_works) + if test "x$cf_cxx_works" = xno + then + AC_MSG_WARN([Ignore $CXX, since it cannot compile hello-world.]) + cf_with_cxx=no; CXX=""; GXX=""; + fi + fi + AC_LANG_POP + # autoconf 2.5x removed the error (hardcoding it to g++, or just blank) if test "$CXX" = "g++" ; then AC_PATH_PROG(CXX,g++) @@ -178,6 +210,23 @@ AC_SYS_LONG_FILE_NAMES CF_PKG_CONFIG CF_WITH_PKG_CONFIG_LIBDIR CF_ENABLE_PC_FILES +if test -z "$MAKE_PC_FILES" +then + AC_MSG_CHECKING(for suffix to add to pc-files) +AC_ARG_WITH(pc-suffix, + [ --with-pc-suffix suffixes pc-files], + [case "x$withval" in #(vi + xyes|xno) #(vi + PC_MODULE_SUFFIX= + ;; + *) PC_MODULE_SUFFIX="$withval" + ;; + esac]) + test -z "$PC_MODULE_SUFFIX" && PC_MODULE_SUFFIX=none + AC_MSG_RESULT($PC_MODULE_SUFFIX) + test "$PC_MODULE_SUFFIX" = none && PC_MODULE_SUFFIX= + AC_SUBST(PC_MODULE_SUFFIX) +fi AC_MSG_CHECKING(if we should assume mixed-case filenames) AC_ARG_ENABLE(mixed-case, @@ -413,13 +462,29 @@ esac # we will build libraries one-level down. rel_builddir=.. CF_SHARED_OPTS -if test "$CC_SHARED_OPTS" = "unknown"; then - for model in $cf_list_models; do - if test "$model" = "shared"; then +for model in $cf_list_models; do + case $model in #(vi + libtool) + CF_WITH_LIBTOOL_OPTS + CF_WITH_EXPORT_SYMS + ;; + shared) #(vi + if test "$CC_SHARED_OPTS" = "unknown"; then AC_ERROR(Shared libraries are not supported in this version) fi - done -fi + CF_WITH_VERSIONED_SYMS + ;; + esac +done + +# pretend that ncurses==ncursesw==ncursest +AC_MSG_CHECKING(if you want to disable library suffixes) +CF_ARG_DISABLE(lib-suffixes, + [ --disable-lib-suffixes disable library suffixes], + [disable_lib_suffixes=yes], + [disable_lib_suffixes=no], + no) +AC_MSG_RESULT($disable_lib_suffixes) ### If we're building with rpath, try to link non-standard libs that way too. if test "$DFT_LWR_MODEL" = "shared"; then @@ -724,7 +789,9 @@ NCURSES_WCHAR_T=0 NCURSES_WINT_T=0 # Check to define _XOPEN_SOURCE "automatically" +CPPFLAGS_before_XOPEN="$CPPFLAGS" CF_XOPEN_SOURCE(500) +CPPFLAGS_after_XOPEN="$CPPFLAGS" # Work around breakage on OS X CF_SIGWINCH @@ -743,7 +810,9 @@ AC_ARG_ENABLE(widec, [with_widec=no]) AC_MSG_RESULT($with_widec) if test "x$with_widec" = xyes ; then - LIB_SUFFIX="w${LIB_SUFFIX}" + if test "x$disable_lib_suffixes" = xno ; then + LIB_SUFFIX="w${LIB_SUFFIX}" + fi AC_DEFINE(USE_WIDEC_SUPPORT,1,[Define to 1 to compile with wide-char/UTF-8 code]) AC_DEFINE(NCURSES_WIDECHAR,1,[Define to 1 to compile with wide-char/UTF-8 code]) @@ -1186,11 +1255,17 @@ if test "x$with_reentrant" = xyes ; then # except cygwin, where we only do that if ALSO # compiling with full thread support. case "$host" in - *cygwin* | *msys*) + *cygwin* | *msys*) #(vi if test "$with_pthread" = "yes" ; then - LIB_SUFFIX="t${LIB_SUFFIX}" + if test "x$disable_lib_suffixes" = "xno" ; then + LIB_SUFFIX="t${LIB_SUFFIX}" + fi fi ;; - * ) LIB_SUFFIX="t${LIB_SUFFIX}" ;; + *) + if test "x$disable_lib_suffixes" = "xno" ; then + LIB_SUFFIX="t${LIB_SUFFIX}" + fi + ;; esac fi AC_DEFINE(USE_REENTRANT,1,[Define to 1 to use experimental reentrant feature]) @@ -1337,9 +1412,13 @@ fi AC_SUBST(ADA_TRACE) +CF_DISABLE_GNAT_PROJECTS + ### Checks for libraries. case $cf_cv_system_name in #(vi -*mingw32*) #(vi +*mingw32*|*mingw64*) #(vi + CPPFLAGS="$CPPFLAGS -DWINVER=0x0501" + LIBS=" -lpsapi $LIBS" ;; *) AC_CHECK_FUNC(gettimeofday, @@ -1428,6 +1507,7 @@ AC_CHECK_FUNCS( \ getcwd \ getegid \ geteuid \ +getopt \ getttynam \ issetugid \ poll \ @@ -1446,6 +1526,12 @@ tcgetpgrp \ times \ vsnprintf \ ) + +if test "x$ac_cv_func_getopt" = xno && + test "x$cf_with_progs$cf_with_tests" != xnono; then + AC_MSG_ERROR(getopt is required for building programs) +fi + if test "x$with_getcap" = "xyes" ; then CF_CGETENT fi @@ -1467,6 +1553,7 @@ else AC_FUNC_SETVBUF_REVERSED fi AC_CHECK_TYPE(intptr_t, long) +AC_CHECK_TYPE(ssize_t, int) CF_TYPE_SIGACTION CF_SIZECHANGE CF_FUNC_MEMMOVE @@ -1601,9 +1688,10 @@ dnl At the moment we support no other Ada95 compiler. CF_ADD_ADAFLAGS(-gnatpn) CF_FIXUP_ADAFLAGS + CF_GNATPREP_OPT_T + CF_GNAT_GENERICS CF_GNAT_SIGINT - CF_GNAT_PRAGMA_UNREF CF_GNAT_PROJECTS CF_WITH_ADA_COMPILER @@ -1663,8 +1751,9 @@ LIB_SUBSETS="${LIB_SUBSETS}base" if test "$with_term_driver" != no ; then LIB_SUBSETS="${LIB_SUBSETS}+port_drivers" case $cf_cv_system_name in #(vi - *mingw32*) #(vi + *mingw32*|*mingw64*) #(vi LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo+port_win32con" + CPPFLAGS="$CPPFLAGS -DUSE_WIN32CON_DRIVER" ;; *) #(vi LIB_SUBSETS="${LIB_SUBSETS}+port_tinfo" @@ -1898,6 +1987,7 @@ CF_ADD_CFLAGS($EXTRA_CFLAGS) ### Define substitutions for header files to avoid name-pollution CF_SUBST_IF(["x$cf_cv_have_tcgetattr" = xyes], HAVE_TCGETATTR, 1, 0) +CF_SUBST_IF(["x$ac_cv_header_stdint_h" = xyes], HAVE_STDINT_H, 1, 0) CF_SUBST_IF(["x$ac_cv_header_termio_h" = xyes], HAVE_TERMIO_H, 1, 0) CF_SUBST_IF(["x$ac_cv_header_termios_h" = xyes], HAVE_TERMIOS_H, 1, 0) @@ -1950,7 +2040,7 @@ AC_SUBST(CXX_NAME) # workaround for g++ versus Solaris (20131116) case $cf_cv_system_name in #(vi -solaris2*) #(vi +solaris2*) case "x$CPPFLAGS" in #(vi *-D_XOPEN_SOURCE_EXTENDED*) CF_VERBOSE(moving _XOPEN_SOURCE_EXTENDED to work around g++ problem) @@ -1961,6 +2051,26 @@ solaris2*) #(vi ;; esac +# Help to automatically enable the extended curses features when using either +# the *-config or the ".pc" files by adding defines. +AC_MSG_CHECKING(for defines to add to ncurses${DFT_ARG_SUFFIX}${cf_cv_abi_version}-config script) +PKG_CFLAGS= +for cf_loop1 in $CPPFLAGS_after_XOPEN +do + cf_found=no + for cf_loop2 in $CPPFLAGS_before_XOPEN + do + if test "x$cf_loop1" = "x$cf_loop2" + then + cf_found=yes + break + fi + done + test "$cf_found" = no && PKG_CFLAGS="$PKG_CFLAGS $cf_loop1" +done +AC_MSG_RESULT($PKG_CFLAGS) +AC_SUBST(PKG_CFLAGS) + # AC_CHECK_SIZEOF demands a literal parameter, no variables. So we do this. case "x$NCURSES_OSPEED" in #(vi *short*) #(vi @@ -1972,8 +2082,69 @@ case "x$NCURSES_OSPEED" in #(vi esac AC_DEFINE_UNQUOTED(NCURSES_OSPEED_COMPAT,$cf_compatible,[Define to 1 if termcap variable ospeed is short]) +case "x$cf_cv_typeof_chtype" in +xshort|xint|xlong) + cf_cv_typeof_chtype="unsigned $cf_cv_typeof_chtype" + ;; +esac + +case "x$cf_cv_typeof_mmask_t" in +xshort|xint|xlong) + cf_cv_typeof_mmask_t="unsigned $cf_cv_typeof_mmask_t" + ;; +esac + +# substitute into misc/Makefile to suppress +# (un)install.data from the +# (un)install rules. +if test "x$cf_with_db_install" = "xno"; then + MISC_INSTALL_DATA= + MISC_UNINSTALL_DATA= +else + MISC_INSTALL_DATA=install.data + MISC_UNINSTALL_DATA=uninstall.data +fi +AC_SUBST(MISC_INSTALL_DATA) +AC_SUBST(MISC_UNINSTALL_DATA) + SUB_SCRIPTS= +dnl Override the package used for exported symbols +if test -n "$PACKAGE" +then + PACKAGE="${PACKAGE}${DFT_ARG_SUFFIX}" + export PACKAGE + echo "package: $PACKAGE" +fi + +UNALTERED_SYMS= +cf_filter_syms=no + +if test -n "$RESULTING_SYMS" +then + case $cf_cv_abi_version in + [[6789]]) + CF_VERBOSE(will map symbols to ABI=$cf_cv_abi_version) + cf_filter_syms=yes + ;; + *) + CF_VERBOSE(will map symbols to default ABI) + ;; + esac +fi + +if test "x$WILDCARD_SYMS" = xno +then + cf_filter_syms=yes +fi + +UNALTERED_SYMS=`echo "$RESULTING_SYMS" | sed -e 's/\\$/\\\\$/g'` +if test $cf_filter_syms = yes +then + RESULTING_SYMS=resulting.map +fi +AC_SUBST(UNALTERED_SYMS) + AC_OUTPUT( \ include/MKterm.h.awk \ include/curses.head:include/curses.h.in \ @@ -1998,6 +2169,7 @@ fi ### configuration-run into config.status AWK="$AWK" +ALTERNATE_SYMS="$ALTERNATE_SYMS" DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX" DFT_LWR_MODEL="$DFT_LWR_MODEL" ECHO_LD="$ECHO_LD" @@ -2024,7 +2196,9 @@ TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX" TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX" TINFO_NAME="$TINFO_NAME" TINFO_SUFFIX="$TINFO_SUFFIX" +UNALTERED_SYMS="$UNALTERED_SYMS" USE_OLD_MAKERULES="$USE_OLD_MAKERULES" +WILDCARD_SYMS="$WILDCARD_SYMS" WITH_CURSES_H="$with_curses_h" WITH_ECHO="${enable_echo:=yes}" WITH_OVERWRITE="$with_overwrite" @@ -2049,9 +2223,9 @@ cf_with_cxx_binding="$cf_with_cxx_binding" cf_with_db_install="$cf_with_db_install" cf_with_manpages="$cf_with_manpages" cf_with_tests="$cf_with_tests" -with_shared_cxx="$with_shared_cxx" host="$host" target="$target" +with_shared_cxx="$with_shared_cxx" ],cat)dnl ${MAKE:-make} preinstall