]> git.wh0rd.org Git - nano.git/commitdiff
2009-02-28 Chris Allegretta <chrisa@asty.org>
authorChris Allegretta <chrisa@asty.org>
Sun, 1 Mar 2009 00:50:19 +0000 (00:50 +0000)
committerChris Allegretta <chrisa@asty.org>
Sun, 1 Mar 2009 00:50:19 +0000 (00:50 +0000)
        * configure.ac: Add check for whether _XOPEN_SOURCE_EXTENDED is needed for
          curses to work w/color.  Fixes compilation on HP-UX with older GCC,
          reported by jay.krell@cornell.edu.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4387 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
configure.ac
src/nano.h

index 9217f8aa8ba2a92688d7d0b75cbf0ceffbc5685f..0061480d20dfae2e0439d148bd5423f4d69a81b3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2009-02-28 Chris Allegretta <chrisa@asty.org>
+       * configure.ac: Add check for whether _XOPEN_SOURCE_EXTENDED is needed for
+         curses to work w/color.  Fixes compilation on HP-UX with older GCC, 
+         reported by jay.krell@cornell.edu.
+
 2009-02-23 Eitan Adler <eitanadlerlist@gmail.com>
        * doc/man/Makefile.am: Fix make variable substitution to be more portable
 
index 4239ae2c8a0803f85d0fb7afcb2574b65a90a9de..724dad4321b2744e07b00effcc0c83d4cd4c5e58 100644 (file)
@@ -50,7 +50,7 @@ AC_DEFINE_DIR([PKGDATADIR], [pkgdatadir], [Where data are placed to.])
 dnl Checks for header files.
 
 AC_HEADER_STDC
-AC_CHECK_HEADERS(getopt.h libintl.h limits.h regex.h sys/param.h wchar.h wctype.h)
+AC_CHECK_HEADERS(getopt.h libintl.h limits.h regex.h sys/param.h wchar.h wctype.h stdarg.h)
 
 dnl Checks for options.
 
@@ -144,7 +144,7 @@ fi])
 
 AC_ARG_ENABLE(color,
 [  --disable-color          Disable color and syntax highlighting],
-[if test x$enableval != xno; then
+if test x$enableval != xno; then
     if test x$ac_cv_header_regex_h = xyes; then
        AC_DEFINE(ENABLE_NANORC, 1, [Define this to use .nanorc files.]) nanorc_support=yes
        AC_DEFINE(ENABLE_COLOR, 1, [Define this to have syntax highlighting, requires regex.h and ENABLE_NANORC too!]) color_support=yes
@@ -155,7 +155,7 @@ AC_ARG_ENABLE(color,
 *** libraries that include the regex.h file or call the configure
 *** script with --disable-color.])
     fi
-fi], [
+fi
     if test x$enable_tiny != xyes; then
        if test x$ac_cv_header_regex_h = xyes; then
            AC_DEFINE(ENABLE_NANORC, 1, [Define this to use .nanorc files.]) nanorc_support=yes
@@ -168,7 +168,7 @@ fi], [
 *** script with --disable-color.])
        fi
     fi
-])
+)
 
 AC_ARG_ENABLE(multibuffer,
 [  --disable-multibuffer    Disable multiple file buffers],
@@ -194,34 +194,6 @@ AC_ARG_ENABLE(all,
     echo "--enable-all option no longer needed, ignoring for compatiblity"
 fi])
 
-if test x$color_support = xyes; then
-       # now check for the end of word boundary support (/< and />)
-       AC_MSG_CHECKING([for GNU-style word boundary regex support])
-       AC_TRY_RUN([
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#include <regex.h>
-int main(void)
-{
-    regex_t r;
-    size_t nmatch;
-    regmatch_t pmatch;
-
-    if (regcomp(&r, "\\\\>", REG_EXTENDED|REG_NOSUB))
-        return 1;
-    if (regexec(&r, "word boundary", nmatch, &pmatch, 0))
-        return 1;
-    return 0;
-}],
-       AC_MSG_RESULT(yes)
-       AC_DEFINE(GNU_WORDBOUNDS, 1, [Define if the system supports GNU-style word boundaries in regexes.]) gnu_wordbounds=yes,
-       AC_MSG_RESULT(no),
-        AC_MSG_WARN([*** Can't check for gnu word boundary support when cross-compiling])
-)
-fi
-
-
 AC_MSG_CHECKING([whether to enable UTF-8 support])
 AC_ARG_ENABLE(utf8,
 [  --enable-utf8           Enable UTF-8 support],
@@ -464,7 +436,6 @@ dnl Checks for library functions.
 AC_TYPE_SIGNAL
 AC_FUNC_VPRINTF
 AC_CHECK_FUNCS(getopt_long)
-
 dnl Checks for libraries.
 
 if eval "test x$CURSES_LIB_NAME = x"; then
@@ -545,6 +516,59 @@ else
     fi
 fi
 
+if test x$color_support = xyes; then
+       # now check for the end of word boundary support (/< and />)
+       AC_MSG_CHECKING([for GNU-style word boundary regex support])
+       AC_TRY_RUN([
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+#include <regex.h>
+int main(void)
+{
+    regex_t r;
+    size_t nmatch;
+    regmatch_t pmatch;
+
+    if (regcomp(&r, "\\\\>", REG_EXTENDED|REG_NOSUB))
+        return 1;
+    if (regexec(&r, "word boundary", nmatch, &pmatch, 0))
+        return 1;
+    return 0;
+}],
+       AC_MSG_RESULT(yes)
+       AC_DEFINE(GNU_WORDBOUNDS, 1, [Define if the system supports GNU-style word boundaries in regexes.]) gnu_wordbounds=yes,
+       AC_MSG_RESULT(no),
+        AC_MSG_WARN([*** Can't check for GNU-style word boundary support when cross-compiling])
+)
+#    if test x$CURSES_LIB_NAME = xcurses; then
+       AC_MSG_CHECKING([whether _XOPEN_SOURCE_EXTENDED is needed])
+       AC_TRY_RUN([
+#include <curses.h>
+int main(void)
+{
+    int testcolor = COLOR_WHITE;
+    return 0;
+}], AC_MSG_RESULT(no),
+        AC_TRY_RUN([
+#ifndef _XOPEN_SOURCE_EXTENDED
+#define _XOPEN_SOURCE_EXTENDED 1
+#endif
+#include <curses.h>
+int main(void)
+{
+    int testcolor = COLOR_WHITE;
+    return 0;
+}],
+       AC_DEFINE(NEED_XOPEN_SOURCE_EXTENDED, 1, [Define this if you need the _XOPEN_SOURCE_EXTENDED macro for color support])
+       AC_MSG_RESULT(yes),
+       AC_MSG_RESULT(not sure)
+       AC_MSG_WARN([*** Couldn't successfully compile basic color test with or without _XOPEN_SOURCE_EXTENDED])
+       AC_MSG_WARN([*** This build may not compile. Consider configuring with --disable-color or installing ncurses])),
+       AC_MSG_WARN([*** Can't check need for _XOPEN_SOURCE_EXTENDED when cross-compiling]))
+    fi
+#fi
+
 # Check for groff html support
 AC_MSG_CHECKING([for HTML support in groff])
 groff -t -mandoc -Thtml </dev/null >/dev/null
index 039bb3eead32ee06a2155bbca0d664d2e2418258..69f85bb9940d372a784a5db775da2804fff8aa51 100644 (file)
 #include <config.h>
 #endif
 
+#ifdef NEED_XOPEN_SOURCE_EXTENDED
+#ifndef _XOPEN_SOURCE_EXTENDED
+#define _XOPEN_SOURCE_EXTENDED 1
+#endif /* _XOPEN_SOURCE_EXTENDED */
+#endif /* NEED_XOPEN_SOURCE_EXTENDED */
+
 #ifdef __TANDEM
 /* Tandem NonStop Kernel support. */
 #include <floss.h>
 #include <sys/param.h>
 #endif
 
+#ifdef HAVE_STDARG_H
+#include <stdarg.h>
+#endif
+
 /* Macros for flags. */
 #define SET(bit) flags |= bit
 #define UNSET(bit) flags &= ~bit