aboutsummaryrefslogtreecommitdiffhomepage
path: root/configure.ac
diff options
context:
space:
mode:
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac59
1 files changed, 40 insertions, 19 deletions
diff --git a/configure.ac b/configure.ac
index c0e9939..673fb33 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.65])
-AC_INIT([SciTECO], [2.4.0],
+AC_INIT([SciTECO], [2.5.1],
[hackers@fmsbw.de],
[sciteco],
[https://sciteco.fmsbw.de/])
@@ -213,7 +213,9 @@ AC_CHECK_FUNCS([memset setlocale strchr strrchr fstat sscanf], , [
# glib defines G_OS_UNIX instead...
case $host in
*-*-linux* | *-*-*bsd* | *-*-darwin* | *-*-cygwin* | *-*-haiku*)
- AC_CHECK_FUNCS([realpath readlink pathconf fchown dup dup2 getpid open read kill mmap popen pclose isatty], , [
+ # NOTE: Keep this on a single line for compatibility
+ # with ancient versions of Autoconf.
+ AC_CHECK_FUNCS([realpath readlink pathconf fchown dup dup2 getpid open read kill mmap popen pclose isatty fork execv setsid], , [
AC_MSG_ERROR([Missing libc function])
])
AC_SEARCH_LIBS(dladdr, [dl], , [
@@ -287,7 +289,8 @@ case $INTERFACE in
case $INTERFACE in
ncurses)
# This gives precendence to the widechar version of ncurses,
- # which is necessary for Unicode support even when not using widechar APIs.
+ # which is necessary for Unicode support and when using more than
+ # 256 color pairs.
# However we also accept libncurses.so if it also contains the
# enhanced definitions.
# NOTE: This also defines CURSES_CFLAGS and CURSES_LIBS arguments,
@@ -301,6 +304,9 @@ case $INTERFACE in
CXXFLAGS="$CXXFLAGS $CURSES_CFLAGS"
LIBS="$LIBS $CURSES_LIBS"
+ # Scinterm cares about the correct flags itself.
+ AC_DEFINE(NCURSES_WIDECHAR, 1, [Provide wide-character functions])
+
AC_CHECK_FUNCS([tigetstr])
;;
@@ -310,10 +316,6 @@ case $INTERFACE in
# installed, we want this to be an explicit setting.
AC_DEFINE(NETBSD_CURSES, 1, [Building against netbsd-curses])
- CFLAGS="$CFLAGS $CURSES_CFLAGS"
- CXXFLAGS="$CXXFLAGS $CURSES_CFLAGS"
- LIBS="$LIBS $CURSES_LIBS"
-
if [[ "x$CURSES_LIBS" = "x" ]]; then
# libncurses.pc is only shipped by Void Linux' fork,
# not in NetBSD itself.
@@ -323,15 +325,20 @@ case $INTERFACE in
else
AC_MSG_CHECKING([checking for netbsd-curses (CURSES_LIBS)])
AC_MSG_RESULT([$CURSES_LIBS])
- LIBS="$LIBS $CURSES_LIBS"
fi
+ CFLAGS="$CFLAGS $CURSES_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $CURSES_CFLAGS"
+ LIBS="$LIBS $CURSES_LIBS"
+
AC_CHECK_FUNCS([tigetstr])
;;
xcurses)
AC_CHECK_PROG(XCURSES_CONFIG, xcurses-config, xcurses-config)
+ # NOTE: `xcurses-config --cflags` is expected to set
+ # -DPDC_WIDE and -DPDC_FORCE_UTF8 (if these features are enabled).
if [[ "x$CURSES_CFLAGS" = "x" -a "x$XCURSES_CONFIG" != "x" ]]; then
CURSES_CFLAGS=`$XCURSES_CONFIG --cflags`
fi
@@ -349,15 +356,18 @@ case $INTERFACE in
LIBS="$LIBS $CURSES_LIBS"
# It is crucial to define XCURSES before including curses.h.
+ # This is not important for Scinterm.
AC_DEFINE(XCURSES, 1, [Enable PDCurses/XCurses extensions])
+ AC_CHECK_FUNC([has_mouse], [
+ # not important to pass to Scinterm
+ AC_DEFINE(PDC_NCMOUSE, 1, [PDCurses built with ncurses mouse API])
+ ])
+
AC_DEFINE(PDCURSES_GUI, 1, [PDCurses with GUI window])
;;
pdcurses*)
- CFLAGS="$CFLAGS $CURSES_CFLAGS"
- CXXFLAGS="$CXXFLAGS $CURSES_CFLAGS"
-
if [[ "x$CURSES_LIBS" = "x" ]]; then
AC_CHECK_LIB(pdcurses, PDC_get_version, , [
AC_MSG_ERROR([libpdcurses missing!])
@@ -365,21 +375,26 @@ case $INTERFACE in
else
AC_MSG_CHECKING([checking for PDCurses (CURSES_LIBS)])
AC_MSG_RESULT([$CURSES_LIBS])
- LIBS="$LIBS $CURSES_LIBS"
fi
# It is crucial to define PDC_WIDE before including curses.h.
# FIXME: MinGW has a pdcurses.h that already defines all necessary macros,
# but it's not in upstream PDCurses/PDCursesMod.
- AC_CHECK_FUNC([add_wch], [
- AC_DEFINE(PDC_WIDE, 1, [PDCurses built with wide-character support])
- # FIXME: It would be better to check for PDC_FORCE_UTF8.
- # Theoretically, we could check for endwin_u[32|64]_4302,
- # but I'm not sure this will work reliably in the future.
- AC_DEFINE(PDC_FORCE_UTF8, 1, [PDCursesMod forces use of UTF8])
+ # FIXME: It would be better to check for PDC_FORCE_UTF8.
+ # Theoretically, we could check for endwin_u[32|64]_4302,
+ # but I'm not sure this will work reliably in the future.
+ CURSES_CFLAGS="$CURSES_CFLAGS -DPDC_WIDE -DPDC_FORCE_UTF8"
+
+ CFLAGS="$CFLAGS $CURSES_CFLAGS"
+ CXXFLAGS="$CXXFLAGS $CURSES_CFLAGS"
+ LIBS="$LIBS $CURSES_LIBS"
+
+ AC_CHECK_FUNC([add_wch], [], [
+ AC_MSG_ERROR([libpdcurses does not include wide-character support!])
])
AC_CHECK_FUNC([has_mouse], [
+ # not important to pass to Scinterm
AC_DEFINE(PDC_NCMOUSE, 1, [PDCurses built with ncurses mouse API])
])
@@ -450,7 +465,13 @@ AC_ARG_ENABLE(malloc-replacement,
[Replace the libc malloc() [default=check]]),
[malloc_replacement=$enableval], [malloc_replacement=check])
if [[ $malloc_replacement = check ]]; then
- # We currently do not support dlmalloc on Windows and Mac OS.
+ # malloc() replacement via dlmalloc should work practically everywhere
+ # but does not extend to shared libraries on Windows and Mac OS.
+ # That's why it is disabled by default on Windows and Mac OS where other cheap ways
+ # of introspection are available (see memory.c).
+ # On the remaining platforms you can try to combine --enable-malloc-replacement
+ # with --enable-static-executables to link in as many libraries statically
+ # as possible.
case $host in
*-*-darwin* | *-mingw*) malloc_replacement=no;;
*) malloc_replacement=yes;;