emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Annoyingly cautious make rules


From: Paul Eggert
Subject: Re: Annoyingly cautious make rules
Date: Fri, 02 Dec 2011 10:24:34 -0800
User-agent: Mozilla/5.0 (X11; Linux i686; rv:8.0) Gecko/20111124 Thunderbird/8.0

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  <address@hidden>
+
+       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  <address@hidden>
 
        * 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 ====================
 
address@hidden@@MAINT@ --enable-maintainer-mode
+
 address@hidden@
 address@hidden@
 address@hidden@
@@ -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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]