all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Paul Eggert <eggert@cs.ucla.edu>
To: Stefan Monnier <monnier@IRO.UMontreal.CA>
Cc: Eli Zaretskii <eliz@gnu.org>,
	Andreas Schwab <schwab@linux-m68k.org>,
	rms@gnu.org, emacs-devel@gnu.org
Subject: Re: Annoyingly cautious make rules
Date: Fri, 02 Dec 2011 10:24:34 -0800	[thread overview]
Message-ID: <4ED917E2.7020807@cs.ucla.edu> (raw)
In-Reply-To: <jwviplz7y4o.fsf-monnier+emacs@gnu.org>

On 12/02/11 08:14, Stefan Monnier wrote:
> IIUC it's because the expectation is that it's not run very often and
> that current machines are fast enough to make it bearable,

Both assumptions are false for me.  I run 'configure' often
(either directly, or indirectly because of 'make'), I have a
current desktop (purchased within the past year), and 'configure'
is not parallelized and takes 48 seconds real time.
That's waaaayy too slow and detracts from getting real work done.
It sounds like Richard has a similar problem, except that his
machine is slower so his problem is even worse.

Some of this problem comes back the 2011-03-20 patch that added
the autogen subdir.  That patch also made --enable-maintainer-mode
the default, which wasn't an integral part of the autogen stuff
and which (given the above issues) seems like it may not have been
such a good idea.

Another part of the problem is that even if I use "configure -C",
"make" sometimes invokes "configure" without -C, which is reeeeally
slow.

And another part of this problem is that "configure -C" is poorly
publicized.  (Perhaps -C should be the default, but that's a bigger
change.)

Here's a patch that addresses the above issues, without making
-C the default.

=== modified file 'ChangeLog'
--- ChangeLog	2011-11-27 18:33:17 +0000
+++ ChangeLog	2011-12-02 18:13:04 +0000
@@ -1,3 +1,17 @@
+2011-12-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+	configure: Disable maintainer mode by default and suggest -C.
+	This causes make rules to be less annoyingly-cautious; see
+	<http://lists.gnu.org/archive/html/emacs-devel/2011-11/msg00547.html>.
+	* INSTALL.BZR, autogen.sh: Suggest "configure -C" instead of plain
+	"configure".
+	* Makefile.in (CONFIGUREFLAGS): New macro.
+	(config.status, bootstrap): Use it.  This preserves -C and
+	--enable-maintainer-mode in subsidiary calls to "configure".
+	* configure.in (maintainer-mode): Change the default back to "no".
+	This was changed to 'yes' on 2011-03-20 as part of the autogen patch,
+	but the dependencies it adds cause problems in practice.
+
 2011-11-27  Jan Djärv  <jan.h.d@swipnet.se>
 
 	* configure.in: Check for gtk_window_set_has_resize_grip.

=== modified file 'INSTALL.BZR'
--- INSTALL.BZR	2011-06-25 17:51:03 +0000
+++ INSTALL.BZR	2011-12-02 17:54:11 +0000
@@ -26,7 +26,7 @@
 You can then configure your build (use `./configure --help' to see
 options you can set):
 
-  $ ./configure
+  $ ./configure -C
 
 Some of the files that are included in the Emacs tarball, such as
 byte-compiled Lisp files, are not stored in Bazaar.  Therefore, to

=== modified file 'Makefile.in'
--- Makefile.in	2011-11-22 01:56:49 +0000
+++ Makefile.in	2011-12-02 18:11:50 +0000
@@ -66,6 +66,8 @@
 
 # ==================== Things `configure' Might Edit ====================
 
+CONFIGUREFLAGS=--cache-file=@cache_file@@MAINT@ --enable-maintainer-mode
+
 CC=@CC@
 CFLAGS=@CFLAGS@
 LDFLAGS=@LDFLAGS@
@@ -404,7 +406,7 @@
 	if [ -x ./config.status ]; then	\
 	    ./config.status --recheck;	\
 	else				\
-	    ./configure;		\
+	    ./configure $(CONFIGUREFLAGS); \
 	fi
 
 AUTOCONF_INPUTS = @MAINT@ $(srcdir)/configure.in $(srcdir)/aclocal.m4
@@ -936,7 +938,7 @@
 	if [ -x ./config.status ]; then           \
 	    ./config.status;                      \
 	else                                      \
-	    ./configure --enable-maintainer-mode; \
+	    ./configure $(CONFIGUREFLAGS);        \
 	fi
 	$(MAKE) $(MFLAGS) info all
 

=== modified file 'autogen.sh'
--- autogen.sh	2011-03-31 04:24:03 +0000
+++ autogen.sh	2011-12-02 17:51:37 +0000
@@ -209,7 +209,7 @@
 ## Let autoreconf figure out what, if anything, needs doing.
 autoreconf -i -I m4 || exit $?
 
-echo "You can now run \`./configure'."
+echo "You can now run \`./configure -C'."
 
 exit 0
 

=== modified file 'configure.in'
--- configure.in	2011-11-30 16:23:05 +0000
+++ configure.in	2011-12-02 18:11:11 +0000
@@ -182,6 +182,9 @@
 dnl http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01844.html
 OPTION_DEFAULT_ON([makeinfo],[don't require makeinfo for building manuals])
 
+## Makefile.in needs the cache file name.
+AC_SUBST(cache_file)
+
 ## This is an option because I do not know if all info/man support
 ## compressed files, nor how to test if they do so.
 OPTION_DEFAULT_ON([compress-info],[don't compress the installed Info pages])
@@ -232,11 +235,11 @@
       USE_XASSERTS=no)
 
 AC_ARG_ENABLE(maintainer-mode,
-[AS_HELP_STRING([--disable-maintainer-mode],
-                [disable make rules and dependencies not useful (and sometimes
+[AS_HELP_STRING([--enable-maintainer-mode],
+                [enable make rules and dependencies not useful (and sometimes
 		 confusing) to the casual installer])],
       USE_MAINTAINER_MODE=$enableval,
-      USE_MAINTAINER_MODE=yes)
+      USE_MAINTAINER_MODE=no)
 if test $USE_MAINTAINER_MODE = yes; then
   MAINT=
 else




  parent reply	other threads:[~2011-12-02 18:24 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-30 21:48 Annoyingly cautious make rules Richard Stallman
2011-11-30 22:00 ` Paul Eggert
2011-12-01 21:54   ` Richard Stallman
2011-12-02  1:35     ` Stefan Monnier
2011-12-02 10:00     ` Paul Eggert
2011-12-01  3:54 ` Eli Zaretskii
2011-12-01  8:50 ` Andreas Schwab
2011-12-02 12:05   ` Richard Stallman
2011-12-02 12:11     ` Andy Wingo
2011-12-02 12:13     ` Andreas Schwab
2011-12-02 14:57       ` Eli Zaretskii
2011-12-02 15:05         ` Andreas Schwab
2011-12-02 15:41           ` Eli Zaretskii
2011-12-03  9:23           ` Richard Stallman
2011-12-02 16:14         ` Stefan Monnier
2011-12-02 16:24           ` Eli Zaretskii
2011-12-02 18:24           ` Paul Eggert [this message]
2011-12-02 18:39             ` Glenn Morris
2011-12-02 20:21               ` Paul Eggert
2011-12-02 20:36             ` Stefan Monnier
2011-12-02 21:29               ` Paul Eggert
2011-12-02 23:26                 ` Stefan Monnier
2011-12-03  0:34                 ` Andreas Schwab
2011-12-03  2:52                   ` Paul Eggert
2011-12-03  3:42                     ` Stefan Monnier
2011-12-03  3:55                       ` Paul Eggert
2011-12-03  5:48                         ` Stefan Monnier
2011-12-03  6:35                           ` Paul Eggert
2011-12-03  8:49                     ` Andreas Schwab
2011-12-03 20:15                       ` Paul Eggert
2011-12-03 20:29                         ` Andreas Schwab
2011-12-03 20:42                         ` Glenn Morris
2011-12-04 15:04                           ` Richard Stallman
2011-12-04 16:55                             ` Stefan Monnier
2011-12-04 18:57                               ` Paul Eggert
2011-12-05  2:53                                 ` Glenn Morris
2011-12-03  6:45                 ` Eli Zaretskii
2011-12-03 20:23               ` Paul Eggert
2011-12-03  4:52             ` Stephen J. Turnbull
2011-12-03 20:34               ` Paul Eggert
2011-12-03  9:23           ` Richard Stallman
2011-12-03  4:26         ` Stephen J. Turnbull

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4ED917E2.7020807@cs.ucla.edu \
    --to=eggert@cs.ucla.edu \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@IRO.UMontreal.CA \
    --cc=rms@gnu.org \
    --cc=schwab@linux-m68k.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.