Subject: bug#7178: 24.0.50; Emacs 24 doesn't build on Solaris 10

From: Rainer Orth <[email-masked]>
Date: Fri, 08 Oct 2010 22:04:28 +0200

When I tried to build Emacs bazaar trunk on Solaris 10 to check if
bug#7163 still occurs on trunk, I ran into two issues:

* lisp/Makefile.in (compile-clean) uses $() which the Solaris 10 /bin/sh
  doesn't understand.  This can easily be avoided by using `` instead.

* src/sysdep.c doesn't compile: 

"/usr/include/term.h", line 1034: syntax error before or at: bool

  <term.h> uses bool without providing bool.  <stdbool.h> cannot be
  included since it only works in C99 mode.  The documented solution
  (e.g. on the curs_terminfo(3CURSES) manpage) is to include <curses.h>
  before term.h.  The patch below hardcodes this, but this is most
  likely not the appropriate solution.  Some kind of autoconf magic is
  probably needed to check if <term.h> can be compiled on its own.

	Rainer

2010-10-08  Rainer Orth  <[email-masked]>

	src:
	* sysdep.c [HAVE_TERM_H]: Include <curses.h> before <term.h>.

	lisp:
	* Makefile.in (compile-clean): Use `` instead of $().

=== modified file 'lisp/Makefile.in'
--- lisp/Makefile.in	2010-09-08 14:42:54 +0000
+++ lisp/Makefile.in	2010-09-08 20:49:05 +0000
@@ -249,7 +249,7 @@
 compile-clean:
 	@cd $(lisp); $(setwins); \
 	elcs=`echo "$$wins " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.elc |g'`; \
-	for el in $$(echo $$elcs | sed -e 's/\.elc/\.el/g'); do \
+	for el in `echo $$elcs | sed -e 's/\.elc/\.el/g'`; do \
 	  if test -f "$$el" -o \! -f "$${el}c"; then :; else \
 	    echo rm "$${el}c"; \
 	    rm "$${el}c"; \

=== modified file 'src/sysdep.c'
--- src/sysdep.c	2010-08-22 15:14:37 +0000
+++ src/sysdep.c	2010-09-08 20:34:07 +0000
@@ -97,6 +97,7 @@
 /* Include this last.  If it is ncurses header file, it adds a lot of
    defines that interfere with stuff in other headers.  Someone responsible
    for ncurses messed up bigtime.  See bug#6812.  */
+#include <curses.h>
 #include <term.h>
 #endif

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University