Commit c17bef55 authored by doko's avatar doko

- Issue #21285: Refactor and fix curses configure check to always search

  in a ncursesw directory.
parent 4ec83ff2
......@@ -367,6 +367,12 @@ Tests
- Issue #21093: Prevent failures of ctypes test_macholib on OS X if a
copy of libz exists in $HOME/lib or /usr/local/lib.
Build
-----
- Issue #21285: Refactor and fix curses configure check to always search
in a ncursesw directory.
Documentation
-------------
......
......@@ -6651,9 +6651,9 @@ $as_echo "#define STDC_HEADERS 1" >>confdefs.h
fi
for ac_header in asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \
for ac_header in asm/types.h conio.h direct.h dlfcn.h errno.h \
fcntl.h grp.h \
ieeefp.h io.h langinfo.h libintl.h ncurses.h poll.h process.h pthread.h \
ieeefp.h io.h langinfo.h libintl.h poll.h process.h pthread.h \
shadow.h signal.h stdint.h stropts.h termios.h thread.h \
unistd.h utime.h \
sys/audioio.h sys/bsdtty.h sys/epoll.h sys/event.h sys/file.h sys/loadavg.h \
......@@ -6884,25 +6884,6 @@ fi
fi
# On Solaris, term.h requires curses.h
for ac_header in term.h
do :
ac_fn_c_check_header_compile "$LINENO" "term.h" "ac_cv_header_term_h" "
#ifdef HAVE_CURSES_H
#include <curses.h>
#endif
"
if test "x$ac_cv_header_term_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_TERM_H 1
_ACEOF
fi
done
# On Linux, netlink.h requires asm/types.h
for ac_header in linux/netlink.h
do :
......@@ -14132,6 +14113,43 @@ $as_echo "#define HAVE_STAT_TV_NSEC2 1" >>confdefs.h
fi
# first curses configure check
ac_save_cppflags="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw"
for ac_header in curses.h ncurses.h
do :
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
cat >>confdefs.h <<_ACEOF
#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
_ACEOF
fi
done
# On Solaris, term.h requires curses.h
for ac_header in term.h
do :
ac_fn_c_check_header_compile "$LINENO" "term.h" "ac_cv_header_term_h" "
#ifdef HAVE_CURSES_H
#include <curses.h>
#endif
"
if test "x$ac_cv_header_term_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_TERM_H 1
_ACEOF
fi
done
# On HP/UX 11.0, mvwdelch is a block with a return statement
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mvwdelch is an expression" >&5
$as_echo_n "checking whether mvwdelch is an expression... " >&6; }
......@@ -14285,6 +14303,8 @@ $as_echo "no" >&6; }
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
# last curses configure check
CPPFLAGS=$ac_save_cppflags
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for device files" >&5
$as_echo "$as_me: checking for device files" >&6;}
......
......@@ -1508,9 +1508,9 @@ dnl AC_MSG_RESULT($cpp_type)
# checks for header files
AC_HEADER_STDC
AC_CHECK_HEADERS(asm/types.h conio.h curses.h direct.h dlfcn.h errno.h \
AC_CHECK_HEADERS(asm/types.h conio.h direct.h dlfcn.h errno.h \
fcntl.h grp.h \
ieeefp.h io.h langinfo.h libintl.h ncurses.h poll.h process.h pthread.h \
ieeefp.h io.h langinfo.h libintl.h poll.h process.h pthread.h \
shadow.h signal.h stdint.h stropts.h termios.h thread.h \
unistd.h utime.h \
sys/audioio.h sys/bsdtty.h sys/epoll.h sys/event.h sys/file.h sys/loadavg.h \
......@@ -1523,13 +1523,6 @@ bluetooth/bluetooth.h linux/tipc.h spawn.h util.h alloca.h)
AC_HEADER_DIRENT
AC_HEADER_MAJOR
# On Solaris, term.h requires curses.h
AC_CHECK_HEADERS(term.h,,,[
#ifdef HAVE_CURSES_H
#include <curses.h>
#endif
])
# On Linux, netlink.h requires asm/types.h
AC_CHECK_HEADERS(linux/netlink.h,,,[
#ifdef HAVE_ASM_TYPES_H
......@@ -4296,6 +4289,19 @@ then
[Define if you have struct stat.st_mtimensec])
fi
# first curses configure check
ac_save_cppflags="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -I/usr/include/ncursesw"
AC_CHECK_HEADERS(curses.h ncurses.h)
# On Solaris, term.h requires curses.h
AC_CHECK_HEADERS(term.h,,,[
#ifdef HAVE_CURSES_H
#include <curses.h>
#endif
])
# On HP/UX 11.0, mvwdelch is a block with a return statement
AC_MSG_CHECKING(whether mvwdelch is an expression)
AC_CACHE_VAL(ac_cv_mvwdelch_is_expression,
......@@ -4350,6 +4356,8 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <curses.h>]], [[void *x=resizeterm
AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)]
)
# last curses configure check
CPPFLAGS=$ac_save_cppflags
AC_MSG_NOTICE([checking for device files])
......
......@@ -1339,13 +1339,17 @@ class PyBuildExt(build_ext):
# Curses support, requiring the System V version of curses, often
# provided by the ncurses library.
panel_library = 'panel'
curses_incs = None
if curses_library.startswith('ncurses'):
if curses_library == 'ncursesw':
# Bug 1464056: If _curses.so links with ncursesw,
# _curses_panel.so must link with panelw.
panel_library = 'panelw'
curses_libs = [curses_library]
curses_incs = find_file('curses.h', inc_dirs,
[os.path.join(d, 'ncursesw') for d in inc_dirs])
exts.append( Extension('_curses', ['_cursesmodule.c'],
include_dirs = curses_incs,
libraries = curses_libs) )
elif curses_library == 'curses' and host_platform != 'darwin':
# OSX has an old Berkeley curses, not good enough for
......@@ -1366,6 +1370,7 @@ class PyBuildExt(build_ext):
if (module_enabled(exts, '_curses') and
self.compiler.find_library_file(lib_dirs, panel_library)):
exts.append( Extension('_curses_panel', ['_curses_panel.c'],
include_dirs = curses_incs,
libraries = [panel_library] + curses_libs) )
else:
missing.append('_curses_panel')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment