changeset 108729:83fdad33d6fa

Build simplifications for oldxmenu. * configure.in (OLDXMENU): Set to "nothing" if !HAVE_X11 || USE_GTK. (OLDXMENU_TARGET): Set to empty if USE_GTK. * src/Makefile.in (../src/$(OLDXMENU), $(OLDXMENU)): Always define rules. * msdos/sed1x.inp (OLDXMENU): Replace any initial value. * msdos/sed1v2.inp (OLDXMENU): Edit to "nothing".
author Glenn Morris <rgm@gnu.org>
date Thu, 20 May 2010 17:40:12 -0700
parents d0ebe5586d94
children c554bb2aba83
files ChangeLog configure.in msdos/ChangeLog msdos/sed1v2.inp msdos/sed1x.inp src/ChangeLog src/Makefile.in
diffstat 7 files changed, 29 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu May 20 17:33:54 2010 -0700
+++ b/ChangeLog	Thu May 20 17:40:12 2010 -0700
@@ -1,5 +1,8 @@
 2010-05-21  Glenn Morris  <rgm@gnu.org>
 
+	* configure.in (OLDXMENU): Set to "nothing" if !HAVE_X11 || USE_GTK.
+	(OLDXMENU_TARGET): Set to empty if USE_GTK.
+
 	* configure.in (cannot_dump): New output variable.
 
 2010-05-20  enami tsugutomo  <tsugutomo.enami@jp.sony.com>
--- a/configure.in	Thu May 20 17:33:54 2010 -0700
+++ b/configure.in	Thu May 20 17:40:12 2010 -0700
@@ -3181,7 +3181,6 @@
   OLDXMENU_TARGET="really-lwlib"
 fi
 AC_SUBST(LIBXT_OTHER)
-AC_SUBST(OLDXMENU_TARGET)
 
 ## The X Menu stuff is present in the X10 distribution, but missing
 ## from X11.  If we have X10, just use the installed library;
@@ -3200,7 +3199,9 @@
   LIBX_OTHER="\$(LIBXT) \$(LIBX_EXTRA)"
   OLDXMENU_DEPS="\${OLDXMENU} ../src/\${OLDXMENU}"
 else
-  OLDXMENU=
+  ## For a syntactically valid Makefile; not actually used for anything.
+  ## See comments in src/Makefile.in.
+  OLDXMENU=nothing
   ## FIXME This case (!HAVE_X11 && HAVE_X_WINDOWS) is no longer possible(?).
   if test "${HAVE_X_WINDOWS}" = "yes"; then
     LIBXMENU="-lXMenu"
@@ -3212,11 +3213,13 @@
 fi
 
 if test "$HAVE_GTK" = "yes" || test "$HAVE_MENUS" != "yes"; then
-  OLDXMENU=
+  OLDXMENU_TARGET=
+  OLDXMENU=nothing  
   LIBXMENU=
   OLDXMENU_DEPS=
 fi
 
+AC_SUBST(OLDXMENU_TARGET)
 AC_SUBST(OLDXMENU)
 AC_SUBST(LIBXMENU)
 AC_SUBST(LIBX_OTHER)
--- a/msdos/ChangeLog	Thu May 20 17:33:54 2010 -0700
+++ b/msdos/ChangeLog	Thu May 20 17:40:12 2010 -0700
@@ -1,5 +1,8 @@
 2010-05-21  Glenn Morris  <rgm@gnu.org>
 
+	* sed1x.inp (OLDXMENU): Replace any initial value.
+	* sed1v2.inp (OLDXMENU): Edit to "nothing".
+
 	* sed1v2.inp (CANNOT_DUMP): Edit to no.
 
 2010-05-20  Glenn Morris  <rgm@gnu.org>
--- a/msdos/sed1v2.inp	Thu May 20 17:33:54 2010 -0700
+++ b/msdos/sed1v2.inp	Thu May 20 17:40:12 2010 -0700
@@ -114,7 +114,7 @@
 /^WINDOW_SUPPORT *=/s/@WINDOW_SUPPORT@//
 /^LIBGPM *=/s/@LIBGPM@//
 /^EXEEXT *=/s/@EXEEXT@/.exe/
-/^OLDXMENU *=/s/@OLDXMENU@//
+/^OLDXMENU *=/s/@OLDXMENU@/nothing/
 /^LIBXMENU *=/s/@LIBXMENU@//
 /^LIBX_OTHER *=/s/@LIBX_OTHER@//
 /^GMALLOC_OBJ *=/s/@GMALLOC_OBJ@/gmalloc.o/
--- a/msdos/sed1x.inp	Thu May 20 17:33:54 2010 -0700
+++ b/msdos/sed1x.inp	Thu May 20 17:40:12 2010 -0700
@@ -19,7 +19,7 @@
 s!^	cd \${oldXMenudir}; \${MAKE}.*$!	${MAKE} -C ${oldXMenudir}.!
 s!^	@true *$!	@rem!
 s/DOC/DOC-X/g
-/^OLDXMENU *=/s!= *!= ${oldXMenudir}libXMenu11.a!
+/^OLDXMENU *=/s!=.*!= ${oldXMenudir}libXMenu11.a!
 /^LIBXMENU *=/s!= *!= ${OLDXMENU}!
 /^LIBX_OTHER *=/s!= *!= ${LIBXT} ${LIBX_EXTRA}!
 /^OLDXMENU_TARGET *=/s!= *!= really-oldxmenu!
--- a/src/ChangeLog	Thu May 20 17:33:54 2010 -0700
+++ b/src/ChangeLog	Thu May 20 17:40:12 2010 -0700
@@ -1,5 +1,7 @@
 2010-05-21  Glenn Morris  <rgm@gnu.org>
 
+	* Makefile.in (../src/$(OLDXMENU), $(OLDXMENU)): Always define rules.
+
 	* Makefile.in (CANNOT_DUMP): New, set by configure.
 	(emacs${EXEEXT}, bootstrap-emacs${EXEEXT}): Use $CANNOT_DUMP.
 
--- a/src/Makefile.in	Thu May 20 17:33:54 2010 -0700
+++ b/src/Makefile.in	Thu May 20 17:40:12 2010 -0700
@@ -173,13 +173,20 @@
 ## Only used if HAVE_X_WINDOWS.
 LIBXT_OTHER=@LIBXT_OTHER@
 
-## Only used if HAVE_X11 && !USE_GTK.
-## really-lwlib if USE_X_TOOLKIT, else really-oldxmenu.
+## If !HAVE_X11 || USE_GTK, empty.
+## Else if USE_X_TOOLKIT really-lwlib, else really-oldxmenu.
 OLDXMENU_TARGET=@OLDXMENU_TARGET@
 
 ## If !HAVE_X11 || USE_GTK, empty.
 ## Else if USE_X_TOOLKIT, ${lwlibdir}liblw.a.
 ## Else ${oldXMenudir}libXMenu11.a.
+## (Actually, rather than being empty, it is set to "nothing".
+## It is never actually used for anything in this case.
+## This is done because there is a rule with target $(OLDXMENU) below,
+## and I think it might be a syntax error with some makes to have
+## an empty target, even if the associated rule is never run.
+## http://lists.gnu.org/archive/html/help-make/2010-05/msg00058.html
+## The alternative would be to put that rule in a makefile fragment.)
 OLDXMENU=@OLDXMENU@
 
 ## If HAVE_X11 && !USE_GTK, ${OLDXMENU} ../src/${OLDXMENU}; else empty.
@@ -290,6 +297,7 @@
 ## -MMD -MF ${DEPDIR}/$*.d if AUTO_DEPEND; else empty.
 DEPFLAGS=@DEPFLAGS@
 ## test -d ${DEPDIR} || mkdir ${DEPDIR} (if AUTO_DEPEND); else ':'.
+## FIXME This can fail in parallel builds.  Use mkinstalldirs instead?
 MKDEPDIR=@MKDEPDIR@
 
 # ========================== start of cpp stuff =======================
@@ -651,8 +659,9 @@
 	$(CC) $(LDFLAGS) prefix-args.o -o prefix-args
 
 
-/* Only (possibly) used if HAVE_X11 && !USE_GTK, but no harm in always
-   defining.  */
+/* The following oldxmenu-related rules are only (possibly) used if
+   HAVE_X11 && !USE_GTK, but there is no harm in always defining them
+   (provided we take a little care that OLDXMENU is never empty).  */
 really-lwlib:
 	cd ${lwlibdir}; ${MAKE} ${MFLAGS} \
     CC='${CC}' CFLAGS='${CFLAGS}' MAKE='${MAKE}'
@@ -670,13 +679,10 @@
 stamp-oldxmenu: ${OLDXMENU_DEPS}
 	touch stamp-oldxmenu
 
-/* HAVE_X11 implies HAVE_X_WINDOWS and HAVE_MENUS.  */
-#if defined (HAVE_X11) && ! defined (USE_GTK)
 /* Supply an ordering for parallel make.  */
 ../src/$(OLDXMENU): ${OLDXMENU}
 
 $(OLDXMENU): $(OLDXMENU_TARGET)
-#endif /* HAVE_X11 && !USE_GTK */ 
 
 ../config.status:: epaths.in
 	@echo "The file epaths.h needs to be set up from epaths.in."