unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
@ 2002-10-29 21:42 Thorbjørn Ravn Andersen
  2002-10-29 21:55 ` Thorbjørn Ravn Andersen
  0 siblings, 1 reply; 43+ messages in thread
From: Thorbjørn Ravn Andersen @ 2002-10-29 21:42 UTC (permalink / raw)


Tried to play with the latest Emacs for OS X as the one supplied from 
Apple has short comings.

I could not build it, and apparently the stock emacs 21.1.1 in OS X does 
not know some of the new things needed to build.

The problem is that emacs depends on {etc}DOC (or so), which in turn 
depends on the compiled lisp files, which in turn depends on emacs to 
compile them.

Is there a quick work around to get emacs up and running?

-- 
  Thorbjørn Ravn Andersen      Scandiatransplant
                               Skejby Sygehus, indgang 3
  +45 89 49 53 01              DK-8200 Århus N
  http://biobase.dk/~tra         

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-10-29 21:42 Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs Thorbjørn Ravn Andersen
@ 2002-10-29 21:55 ` Thorbjørn Ravn Andersen
  2002-10-30 22:00   ` Kim F. Storm
  0 siblings, 1 reply; 43+ messages in thread
From: Thorbjørn Ravn Andersen @ 2002-10-29 21:55 UTC (permalink / raw)
  Cc: emacs-devel

Thorbjørn Ravn Andersen wrote:

> Is there a quick work around to get emacs up and running?

My apologies.  Apparently I did not read the Install document well 
enough - it appears that I should have run "make bootstrap" instead of 
"make".  Of course this popped up before me about 15 seconds after 
sending the mail.

-- 
  Thorbjørn Ravn Andersen      Scandiatransplant
                               Skejby Sygehus, indgang 3
  +45 89 49 53 01              DK-8200 Århus N
  http://biobase.dk/~tra         

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-10-29 21:55 ` Thorbjørn Ravn Andersen
@ 2002-10-30 22:00   ` Kim F. Storm
  2002-10-31  8:10     ` Thorbjørn Ravn Andersen
  0 siblings, 1 reply; 43+ messages in thread
From: Kim F. Storm @ 2002-10-30 22:00 UTC (permalink / raw)
  Cc: emacs-devel

Thorbjørn Ravn Andersen <tra@biobase.dk> writes:

> Thorbjørn Ravn Andersen wrote:
> 
> > Is there a quick work around to get emacs up and running?
> 
> My apologies.  Apparently I did not read the Install document well
> enough - it appears that I should have run "make bootstrap" instead of
> "make".  Of course this popped up before me about 15 seconds after
> sending the mail.

This question pops up time and again!

Maybe we could add a test to the makefile, so that doing 'make' if
e.g. lisp/files.elc does not exist, it does 'cat INSTALL_CVS'
and exits?

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-10-30 22:00   ` Kim F. Storm
@ 2002-10-31  8:10     ` Thorbjørn Ravn Andersen
  2002-10-31 14:14       ` Eli Zaretskii
  0 siblings, 1 reply; 43+ messages in thread
From: Thorbjørn Ravn Andersen @ 2002-10-31  8:10 UTC (permalink / raw)
  Cc: emacs-devel

Kim F. Storm wrote:

>This question pops up time and again!
>
>Maybe we could add a test to the makefile, so that doing 'make' if
>e.g. lisp/files.elc does not exist, it does 'cat INSTALL_CVS'
>and exits?
>
I didn't find this document.  I got around by touching "etc/DOC" and 
then building, which gave me a slightly crippled Emacs.  

Why does the main "make" not compile the lisp files?  Can't this be done 
with temacs?

-- 
  Thorbjørn Ravn Andersen      Scandiatransplant
                               Skejby Sygehus, indgang 3
  +45 89 49 53 01              DK-8200 Århus N
  http://biobase.dk/~tra         

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-10-31  8:10     ` Thorbjørn Ravn Andersen
@ 2002-10-31 14:14       ` Eli Zaretskii
  2002-10-31 14:40         ` Thorbjørn Ravn Andersen
  0 siblings, 1 reply; 43+ messages in thread
From: Eli Zaretskii @ 2002-10-31 14:14 UTC (permalink / raw)
  Cc: emacs-devel


On Thu, 31 Oct 2002, =?ISO-8859-1?Q?Thorbj=F8rn_Ravn_Andersen?= wrote:

> Kim F. Storm wrote:
> 
> >This question pops up time and again!
> >
> >Maybe we could add a test to the makefile, so that doing 'make' if
> >e.g. lisp/files.elc does not exist, it does 'cat INSTALL_CVS'
> >and exits?
> >
> I didn't find this document.

The correct file name is INSTALL-CVS.  Do you see that file?  If not, 
please fetch it from the CVS.

> Why does the main "make" not compile the lisp files?

It does, if you say "make bootstrap".  Plain "make" assumes the *.elc 
files are already there.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-10-31 14:14       ` Eli Zaretskii
@ 2002-10-31 14:40         ` Thorbjørn Ravn Andersen
  2002-10-31 14:55           ` Andreas Schwab
  2002-10-31 19:03           ` Eli Zaretskii
  0 siblings, 2 replies; 43+ messages in thread
From: Thorbjørn Ravn Andersen @ 2002-10-31 14:40 UTC (permalink / raw)
  Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 934 bytes --]

Eli Zaretskii wrote:

>>I didn't find this document
>>
>
>The correct file name is INSTALL-CVS.  Do you see that file?  If not, 
>please fetch it from the CVS.
>  
>
I scanned the INSTALL document, and the README and INSTALL files in mac/

The INSTALL-CVS file was not mentioned in either of these.

>>Why does the main "make" not compile the lisp files?
>>    
>>
>
>It does, if you say "make bootstrap".  Plain "make" assumes the *.elc 
>files are already there.
>  
>
I understood that.  I still do not understand why the normal "make" 
command in the "./compile; make; make install" cycle does not do this?

Well, so much for being a neophyte in the intricates of emacs 
development.  I would, however, like to second Kim's suggestion.


-- 
  Thorbjørn Ravn Andersen      Scandiatransplant
                               Skejby Sygehus, indgang 3
  +45 89 49 53 01              DK-8200 Århus N
  http://biobase.dk/~tra         


[-- Attachment #2: Type: text/html, Size: 1656 bytes --]

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-10-31 14:40         ` Thorbjørn Ravn Andersen
@ 2002-10-31 14:55           ` Andreas Schwab
  2002-10-31 16:24             ` Thorbjørn Ravn Andersen
  2002-10-31 19:03           ` Eli Zaretskii
  1 sibling, 1 reply; 43+ messages in thread
From: Andreas Schwab @ 2002-10-31 14:55 UTC (permalink / raw)
  Cc: Eli Zaretskii, emacs-devel

Thorbjørn Ravn Andersen <tra@biobase.dk> writes:

|> I understood that.  I still do not understand why the normal "make"
|> command in the "./compile; make; make install" cycle does not do this?

Because compiling from CVS is different than compiling from a distribution
tar file.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-10-31 14:55           ` Andreas Schwab
@ 2002-10-31 16:24             ` Thorbjørn Ravn Andersen
  2002-10-31 17:01               ` Stefan Monnier
                                 ` (2 more replies)
  0 siblings, 3 replies; 43+ messages in thread
From: Thorbjørn Ravn Andersen @ 2002-10-31 16:24 UTC (permalink / raw)
  Cc: emacs-devel

Andreas Schwab wrote:

>Thorbjørn Ravn Andersen <tra@biobase.dk> writes:
>
>|> I understood that.  I still do not understand why the normal "make"
>|> command in the "./compile; make; make install" cycle does not do this?
>
>Because compiling from CVS is different than compiling from a distribution
>tar file.
>  
>
In what way?

Most, if not all, of those projects I have retrieved from CVS I have 
been able to use the "./configure; make; make install" incantation, so - 
recognizing that Emacs is a large and complex program with different 
needs to most other programs - I would still like to know what the 
reason for this is.

Is this question so ignorant that I should go hiding under a rock after 
reading some INSTALL-CVS-FAQ-READ-ME-FIRST file, I have missed (if I 
missed one file, I can miss even more), I will be happy to do so, but I 
would appreciate a gentle nudge mentioning the name of this file.  The 
INSTALL-CVS file did not indicate the existance of such a file.

Thanks in advance.

-- 
  Thorbjørn Ravn Andersen      Scandia transplant
                               Skejby Sygehus, indgang 3
  +45 89 49 53 01              DK-8200 Århus N
  http://biobase.dk/~tra         

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-10-31 16:24             ` Thorbjørn Ravn Andersen
@ 2002-10-31 17:01               ` Stefan Monnier
  2002-11-01  0:41                 ` Steven Tamm
  2002-11-01  8:34                 ` Thorbjørn Ravn Andersen
  2002-10-31 18:10               ` Andreas Schwab
  2002-11-01  9:39               ` Richard Stallman
  2 siblings, 2 replies; 43+ messages in thread
From: Stefan Monnier @ 2002-10-31 17:01 UTC (permalink / raw)
  Cc: Andreas Schwab, emacs-devel

> Most, if not all, of those projects I have retrieved from CVS I have
> been able to use the "./configure; make; make install" incantation, so -
> recognizing that Emacs is a large and complex program with different
> needs to most other programs - I would still like to know what the
> reason for this is.

It can be done, but Emacs' Makefile has not been worked on sufficiently
to allow it to both work and be fast: checking whether bootstrap
is needed or not can be costly if you want to do it right (it's OK,
tho, since we can just be conservative as we do now) but more importantly
the best way to bootstrap is not always the same and since bootstrapping
can take a while...
The procedure has already been streamlined a little, but it still needs
more work.  The reason why it hasn't been done earlier is that .elc
files used to be stored in CVS (and in RCS before that) making bootstrapping
mostly unnecessary.  And also because once you've bootstrapped you almost
don't need to bootstrap ever again: I've had to bootstrap maybe 3 times
last year: not much incentive to improve it.

What I'm wondering is: when you tried to build Emacs, it should
have told you "use make bootstrap" or something like that.
Did it ?  Or did you simply not pay attention ?


	Stefan

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-10-31 16:24             ` Thorbjørn Ravn Andersen
  2002-10-31 17:01               ` Stefan Monnier
@ 2002-10-31 18:10               ` Andreas Schwab
  2002-11-02  3:32                 ` Richard Stallman
  2002-11-01  9:39               ` Richard Stallman
  2 siblings, 1 reply; 43+ messages in thread
From: Andreas Schwab @ 2002-10-31 18:10 UTC (permalink / raw)
  Cc: emacs-devel

Thorbjørn Ravn Andersen <tra@biobase.dk> writes:

|> Most, if not all, of those projects I have retrieved from CVS I have been
|> able to use the "./configure; make; make install" incantation

Many projects require you to run something like autogen.sh before you can
build from CVS.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-10-31 14:40         ` Thorbjørn Ravn Andersen
  2002-10-31 14:55           ` Andreas Schwab
@ 2002-10-31 19:03           ` Eli Zaretskii
  1 sibling, 0 replies; 43+ messages in thread
From: Eli Zaretskii @ 2002-10-31 19:03 UTC (permalink / raw)
  Cc: emacs-devel

> Date: Thu, 31 Oct 2002 15:40:02 +0100
> From: =?ISO-8859-1?Q?Thorbj=F8rn_Ravn_Andersen?= <tra@biobase.dk>
> 
> >>Why does the main "make" not compile the lisp files?
> >
> >It does, if you say "make bootstrap".  Plain "make" assumes the *.elc 
> >files are already there.
> >
> I understood that.  I still do not understand why the normal "make" 
> command in the "./compile; make; make install" cycle does not do this?

Because compiling them takes a lot of time if we compile all of them.

It's possible to compile only those which aren't compiled, but setting
this up is not easy, as Stefan explained, and was not done yet.
(Please remember that anon CVS access to Emacs development sources is
relatively new.)

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-10-31 17:01               ` Stefan Monnier
@ 2002-11-01  0:41                 ` Steven Tamm
  2002-11-01 15:34                   ` Stefan Monnier
  2002-11-02  3:32                   ` Richard Stallman
  2002-11-01  8:34                 ` Thorbjørn Ravn Andersen
  1 sibling, 2 replies; 43+ messages in thread
From: Steven Tamm @ 2002-11-01  0:41 UTC (permalink / raw)
  Cc: emacs-devel

For the make-package script in the Mac OS X, it will run make bootstrap 
if lisp/abbrev.elc is missing.
What would be the argument(s) against adding to the root Makefile a 
dependency on a specific .elc file that would force "make bootstrap" if 
starting from scratch?  It is not "doing it right", but it seems to 
work.

-Steven

On Thursday, October 31, 2002, at 09:01  AM, Stefan Monnier wrote:

>> Most, if not all, of those projects I have retrieved from CVS I have
>> been able to use the "./configure; make; make install" incantation, 
>> so -
>> recognizing that Emacs is a large and complex program with different
>> needs to most other programs - I would still like to know what the
>> reason for this is.
>
> It can be done, but Emacs' Makefile has not been worked on sufficiently
> to allow it to both work and be fast: checking whether bootstrap
> is needed or not can be costly if you want to do it right (it's OK,
> tho, since we can just be conservative as we do now) but more 
> importantly
> the best way to bootstrap is not always the same and since 
> bootstrapping
> can take a while...

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-10-31 17:01               ` Stefan Monnier
  2002-11-01  0:41                 ` Steven Tamm
@ 2002-11-01  8:34                 ` Thorbjørn Ravn Andersen
  2002-11-01 15:40                   ` Stefan Monnier
  1 sibling, 1 reply; 43+ messages in thread
From: Thorbjørn Ravn Andersen @ 2002-11-01  8:34 UTC (permalink / raw)
  Cc: Andreas Schwab, emacs-devel

Stefan Monnier wrote:

>What I'm wondering is: when you tried to build Emacs, it should
>have told you "use make bootstrap" or something like that.
>Did it ?  Or did you simply not pay attention ?
>  
>
Thank you for your explanation.

The mac/INSTALL file says

> You should be able to build Emacs on Mac OS X by typing the following
> commands at the top-level directory after the source distribution is
> un-tarred.
>
>   ./configure
>   make
>   make install
>
> The last step must be performed as root.


The "make bootstrap" is mentioned in passing a bit further down.

I probably should not have thought that Emacs was like everything else, 
so I should have read all the various documents more carefully before 
plunging in the mindless "configure; make" cycle.  Credits for the GNU 
organization for making it so - in the "good" old days, you had to read 
everything and adapt Makefiles carefullly before even thinking of typing 
make.

I'll get back to testing the Aqua Emacs and keeping an eye on this list.

-- 
  Thorbjørn Ravn Andersen      Scandiatransplant
                               Skejby Sygehus, indgang 3
  +45 89 49 53 01              DK-8200 Århus N
  http://biobase.dk/~tra         

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-10-31 16:24             ` Thorbjørn Ravn Andersen
  2002-10-31 17:01               ` Stefan Monnier
  2002-10-31 18:10               ` Andreas Schwab
@ 2002-11-01  9:39               ` Richard Stallman
  2 siblings, 0 replies; 43+ messages in thread
From: Richard Stallman @ 2002-11-01  9:39 UTC (permalink / raw)
  Cc: schwab, emacs-devel

The Emacs tar file is the official release of Emacs.  It includes the
.elc files, and ./configure; make works to build it.

It's not necessary for the CVS sources to support this.
It would be NICE if they did, all else being equal.
However, doing it in the obvious way (by bootstrapping)
would be a big pain in the neck for people who
build from CVS regularly.  It would be too painful.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-01  0:41                 ` Steven Tamm
@ 2002-11-01 15:34                   ` Stefan Monnier
  2002-11-02 17:15                     ` Andreas Schwab
  2002-11-02  3:32                   ` Richard Stallman
  1 sibling, 1 reply; 43+ messages in thread
From: Stefan Monnier @ 2002-11-01 15:34 UTC (permalink / raw)
  Cc: Stefan Monnier, emacs-devel

> For the make-package script in the Mac OS X, it will run make bootstrap 
> if lisp/abbrev.elc is missing.
> What would be the argument(s) against adding to the root Makefile a 
> dependency on a specific .elc file that would force "make bootstrap" if 
> starting from scratch?  It is not "doing it right", but it seems to 
> work.

The argument against it (for me anyway) is that the bootstrap
target in the Makefile does a pretty thorough `clean' before doing
its job: I don't want to have to rebuild each and every elc file just
because I happen to have deleted abbrev.elc.

But I guess this begs the question: why does the bootstrap target
do such a thorough `clean' at all ?


	Stefan

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-01  8:34                 ` Thorbjørn Ravn Andersen
@ 2002-11-01 15:40                   ` Stefan Monnier
  2002-11-03  8:13                     ` Thorbjørn Ravn Andersen
  0 siblings, 1 reply; 43+ messages in thread
From: Stefan Monnier @ 2002-11-01 15:40 UTC (permalink / raw)
  Cc: Stefan Monnier, Andreas Schwab, emacs-devel

> > You should be able to build Emacs on Mac OS X by typing the following
> > commands at the top-level directory after the source distribution is
> > un-tarred.
> >
> >   ./configure
> >   make
> >   make install
> >
> > The last step must be performed as root.

No, I wasn't talking about any INSTALL file:
When you ran `make', you should have gotten a message saying
"use make bootstrap".  Did you see that ?


	Stefan

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-02  3:32                 ` Richard Stallman
@ 2002-11-02  2:37                   ` Karl Fogel
  2002-11-03 13:56                     ` Richard Stallman
  0 siblings, 1 reply; 43+ messages in thread
From: Karl Fogel @ 2002-11-02  2:37 UTC (permalink / raw)
  Cc: schwab, tra, emacs-devel

Richard Stallman <rms@gnu.org> writes:
>     Many projects require you to run something like autogen.sh before you can
>     build from CVS.
> 
> Is that a semi-standard convention?  If so, maybe Emacs should follow
> the convention, maybe we should add that script.

It seems to be at least semi-standard now, yes.

-Karl

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-01  0:41                 ` Steven Tamm
  2002-11-01 15:34                   ` Stefan Monnier
@ 2002-11-02  3:32                   ` Richard Stallman
  1 sibling, 0 replies; 43+ messages in thread
From: Richard Stallman @ 2002-11-02  3:32 UTC (permalink / raw)
  Cc: monnier+gnu/emacs, emacs-devel

    For the make-package script in the Mac OS X, it will run make bootstrap 
    if lisp/abbrev.elc is missing.

This sounds like what emacs/Makefile.in used to do.
We have changed it since.  Could you update your script?

    What would be the argument(s) against adding to the root Makefile a 
    dependency on a specific .elc file that would force "make bootstrap" if 
    starting from scratch?

It is a bad idea to do a boostrap if the user did not explicitly ask
for one.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-10-31 18:10               ` Andreas Schwab
@ 2002-11-02  3:32                 ` Richard Stallman
  2002-11-02  2:37                   ` Karl Fogel
  0 siblings, 1 reply; 43+ messages in thread
From: Richard Stallman @ 2002-11-02  3:32 UTC (permalink / raw)
  Cc: tra, emacs-devel

    Many projects require you to run something like autogen.sh before you can
    build from CVS.

Is that a semi-standard convention?  If so, maybe Emacs should follow
the convention, maybe we should add that script.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-01 15:34                   ` Stefan Monnier
@ 2002-11-02 17:15                     ` Andreas Schwab
  2002-11-03  2:24                       ` Stefan Monnier
  0 siblings, 1 reply; 43+ messages in thread
From: Andreas Schwab @ 2002-11-02 17:15 UTC (permalink / raw)
  Cc: Steven Tamm, emacs-devel

"Stefan Monnier" <monnier+gnu/emacs@rum.cs.yale.edu> writes:

|> But I guess this begs the question: why does the bootstrap target
|> do such a thorough `clean' at all ?

You need to make sure there are no old elc containing out-of-date macro
implementations around.  Otherwise you cannot guarantee consistency.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-02 17:15                     ` Andreas Schwab
@ 2002-11-03  2:24                       ` Stefan Monnier
  2002-11-03 23:27                         ` Juanma Barranquero
  0 siblings, 1 reply; 43+ messages in thread
From: Stefan Monnier @ 2002-11-03  2:24 UTC (permalink / raw)
  Cc: Stefan Monnier, Steven Tamm, emacs-devel

> |> But I guess this begs the question: why does the bootstrap target
> |> do such a thorough `clean' at all ?
> 
> You need to make sure there are no old elc containing out-of-date macro
> implementations around.  Otherwise you cannot guarantee consistency.

Does anybody care ?
As I said, I almost never bootstrap and I'm pretty sure I still have .elc
files compiled with very old versions of define-derived-mode or
define-minor-mode (the two macros that I know have changed), but it doesn't
create any problem.  I understand that you want such consistency when
building the tarball for distribution or when doing a daily "bootstrap
regression test", but in those cases you can always do
`make bootstrap-clean bootstrap'.


	Stefan

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-01 15:40                   ` Stefan Monnier
@ 2002-11-03  8:13                     ` Thorbjørn Ravn Andersen
  2002-11-03  8:36                       ` Alfred M. Szmidt
  0 siblings, 1 reply; 43+ messages in thread
From: Thorbjørn Ravn Andersen @ 2002-11-03  8:13 UTC (permalink / raw)
  Cc: Andreas Schwab, emacs-devel

Stefan Monnier wrote:

>No, I wasn't talking about any INSTALL file:
>When you ran `make', you should have gotten a message saying
>"use make bootstrap".  Did you see that ?
>  
>
No.

I checked the "maybe_bootstrap" target, and the code is:

maybe_bootstrap:
        @bar=`echo ./lisp/*.elc`; \
        if [ "$bar" = './lisp/*.elc' ]; then \
          echo "Your tree does not include the compiled Lisp files."; \
          echo "You need to do \`make bootstrap' to build Emacs."; \
          echo "Emacs now requires Texinfo version 4.2."; \
          exit 1;\
        fi

I am not _that_ familiar with shell code, but does "@bar" and "$bar" 
refer to the same variable?

-- 
  Thorbjørn Ravn Andersen      Scandiatransplant
                               Skejby Sygehus, indgang 3
  +45 89 49 53 01              DK-8200 Århus N
  http://biobase.dk/~tra         

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-03  8:13                     ` Thorbjørn Ravn Andersen
@ 2002-11-03  8:36                       ` Alfred M. Szmidt
  2002-11-03  9:10                         ` Thorbjørn Ravn Andersen
  0 siblings, 1 reply; 43+ messages in thread
From: Alfred M. Szmidt @ 2002-11-03  8:36 UTC (permalink / raw)
  Cc: monnier+gnu/emacs, schwab, emacs-devel

   I am not _that_ familiar with shell code, but does "@bar" and "$bar" 
   refer to the same variable?

The @ supresses output in make.  So yes.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-03  8:36                       ` Alfred M. Szmidt
@ 2002-11-03  9:10                         ` Thorbjørn Ravn Andersen
  2002-11-04 12:02                           ` Richard Stallman
  0 siblings, 1 reply; 43+ messages in thread
From: Thorbjørn Ravn Andersen @ 2002-11-03  9:10 UTC (permalink / raw)
  Cc: monnier+gnu/emacs, schwab, emacs-devel

Alfred M. Szmidt wrote:

>   I am not _that_ familiar with shell code, but does "@bar" and "$bar" 
>   refer to the same variable?
>
>The @ supresses output in make.  So yes.
>
Ok.

This code works under OS X:

maybe_bootstrap:
        @bar="`echo ./lisp/*.elc`"; \
        if [ \( "$(bar)" = './lisp/*.elc' \) -o \( "$(bar)" = '' \) ]; 
then \
          echo "Your tree does not include the compiled Lisp files."; \
          echo "You need to do \`make bootstrap' to build Emacs."; \
          echo "Emacs now requires Texinfo version 4.2."; \
          exit 1;\
        fi

There was also a TAB missing.  I do not know if these still are mandatory.

-- 
  Thorbjørn Ravn Andersen      Scandiatransplant
                               Skejby Sygehus, indgang 3
  +45 89 49 53 01              DK-8200 Århus N
  http://biobase.dk/~tra         

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-02  2:37                   ` Karl Fogel
@ 2002-11-03 13:56                     ` Richard Stallman
  2002-11-04  1:31                       ` Karl Fogel
  2002-11-20  1:42                       ` Karl Fogel
  0 siblings, 2 replies; 43+ messages in thread
From: Richard Stallman @ 2002-11-03 13:56 UTC (permalink / raw)
  Cc: schwab, tra, emacs-devel

    >     Many projects require you to run something like autogen.sh before you can
    >     build from CVS.
    > 
    > Is that a semi-standard convention?  If so, maybe Emacs should follow
    > the convention, maybe we should add that script.

    It seems to be at least semi-standard now, yes.

Can you write such a script for Emacs?

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-03  2:24                       ` Stefan Monnier
@ 2002-11-03 23:27                         ` Juanma Barranquero
  2002-11-04  7:20                           ` Kai Großjohann
  2002-11-04 14:53                           ` Stefan Monnier
  0 siblings, 2 replies; 43+ messages in thread
From: Juanma Barranquero @ 2002-11-03 23:27 UTC (permalink / raw)
  Cc: Andreas Schwab, Steven Tamm, emacs-devel


On Sat, 02 Nov 2002 21:24:47 -0500
"Stefan Monnier" <monnier+gnu/emacs@rum.cs.yale.edu> wrote:

> Does anybody care ?
> As I said, I almost never bootstrap

Well, I bootstrap daily. Some days more than once.

Mostly as a test, to check that it still bootstraps. It´s not unheard of
that a change in the sources breaks bootstrapping *precisely* because
bootstrapping, being almost unnecesary, is often not checked after a
change.

-- 
Juanma Barranquero <lektu@terra.es>

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-03 13:56                     ` Richard Stallman
@ 2002-11-04  1:31                       ` Karl Fogel
  2002-11-04 18:06                         ` Richard Stallman
  2002-11-20  1:42                       ` Karl Fogel
  1 sibling, 1 reply; 43+ messages in thread
From: Karl Fogel @ 2002-11-04  1:31 UTC (permalink / raw)
  Cc: schwab, tra, emacs-devel

Richard Stallman <rms@gnu.org> writes:
>     > Is that a semi-standard convention?  If so, maybe Emacs should follow
>     > the convention, maybe we should add that script.
> 
>     It seems to be at least semi-standard now, yes.
> 
> Can you write such a script for Emacs?

Okay, I'll look into doing so.  I'm not familiar with the exact
mechanism of 'make bootstrap', so will need about a week.

-K

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-03 23:27                         ` Juanma Barranquero
@ 2002-11-04  7:20                           ` Kai Großjohann
  2002-11-04 14:53                           ` Stefan Monnier
  1 sibling, 0 replies; 43+ messages in thread
From: Kai Großjohann @ 2002-11-04  7:20 UTC (permalink / raw)


Juanma Barranquero <lektu@terra.es> writes:

> Well, I bootstrap daily. Some days more than once.

FWIW, I also like the clean feeling that bootstrapping gives me.
Then I know that all the object code is fresh :-)

kai
-- 
~/.signature is: umop ap!sdn    (Frank Nobis)

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-03  9:10                         ` Thorbjørn Ravn Andersen
@ 2002-11-04 12:02                           ` Richard Stallman
  0 siblings, 0 replies; 43+ messages in thread
From: Richard Stallman @ 2002-11-04 12:02 UTC (permalink / raw)
  Cc: ams, monnier+gnu/emacs, schwab, emacs-devel

    maybe_bootstrap:
	    @bar="`echo ./lisp/*.elc`"; \
	    if [ \( "$(bar)" = './lisp/*.elc' \) -o \( "$(bar)" = '' \) ]; then \

It looks like that should work in GNU and Unix too, so we may as well
make that change.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-03 23:27                         ` Juanma Barranquero
  2002-11-04  7:20                           ` Kai Großjohann
@ 2002-11-04 14:53                           ` Stefan Monnier
  2002-11-04 15:24                             ` Andreas Schwab
  2002-11-04 15:31                             ` Juanma Barranquero
  1 sibling, 2 replies; 43+ messages in thread
From: Stefan Monnier @ 2002-11-04 14:53 UTC (permalink / raw)
  Cc: Stefan Monnier, Andreas Schwab, Steven Tamm, emacs-devel

> 
> On Sat, 02 Nov 2002 21:24:47 -0500
> "Stefan Monnier" <monnier+gnu/emacs@rum.cs.yale.edu> wrote:
> 
> > Does anybody care ?
> > As I said, I almost never bootstrap
> 
> Well, I bootstrap daily. Some days more than once.
> 
> Mostly as a test, to check that it still bootstraps. It´s not unheard of
> that a change in the sources breaks bootstrapping *precisely* because
> bootstrapping, being almost unnecesary, is often not checked after a
> change.

The question was: do you care whether you have to say

	make bootstrap
or
	make clean bootstrap

when you want to do your consistency-check bootstrap ?


	Stefan

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-04 14:53                           ` Stefan Monnier
@ 2002-11-04 15:24                             ` Andreas Schwab
  2002-11-04 15:26                               ` Stefan Monnier
  2002-11-04 15:31                             ` Juanma Barranquero
  1 sibling, 1 reply; 43+ messages in thread
From: Andreas Schwab @ 2002-11-04 15:24 UTC (permalink / raw)
  Cc: Juanma Barranquero, Steven Tamm, emacs-devel

"Stefan Monnier" <monnier+gnu/emacs@rum.cs.yale.edu> writes:

|> The question was: do you care whether you have to say
|> 
|> 	make bootstrap
|> or
|> 	make clean bootstrap
|> 
|> when you want to do your consistency-check bootstrap ?

make clean does not rm *.elc, only bootstrap-clean does.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux AG, Deutschherrnstr. 15-19, D-90429 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-04 15:24                             ` Andreas Schwab
@ 2002-11-04 15:26                               ` Stefan Monnier
  0 siblings, 0 replies; 43+ messages in thread
From: Stefan Monnier @ 2002-11-04 15:26 UTC (permalink / raw)
  Cc: Stefan Monnier, Juanma Barranquero, Steven Tamm, emacs-devel

> "Stefan Monnier" <monnier+gnu/emacs@rum.cs.yale.edu> writes:
> 
> |> The question was: do you care whether you have to say
> |> 
> |> 	make bootstrap
> |> or
> |> 	make clean bootstrap
> |> 
> |> when you want to do your consistency-check bootstrap ?
> 
> make clean does not rm *.elc, only bootstrap-clean does.

I wouldn't know, I use cvsclean instead.


	Stefan


#!/usr/bin/perl

sub cvsclean {
    my($path) = @_;
    my(%files) = ();
    my(@subdirs);

    print STDOUT "Cleaning $path\n";
    opendir (DIR, "$path/") || die "No directory $path";
    open (ENTRIES, "$path/CVS/Entries") || die "No $path/CVS/Entries file";
    while (<ENTRIES>) {
        if (m[^D/([^/]+)]) {
            push (@subdirs, "$path/$1");
        } elsif (m[^/([^/]+)/[^/-]]) {
            $files{$1} = "managed";
        }
    }

    foreach $entry (readdir(DIR)) {
        if (!exists ($files{$entry})) {
            $entry = "$path/$entry";
            if (-f $entry) {
                print STDOUT "unlink $entry\n";
                unlink $entry;
            }
        }
    }
    
    foreach $subdir (@subdirs) {
        &cvsclean ($subdir);
    }
}

&cvsclean (".");

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-04 14:53                           ` Stefan Monnier
  2002-11-04 15:24                             ` Andreas Schwab
@ 2002-11-04 15:31                             ` Juanma Barranquero
  2002-11-04 15:43                               ` Stefan Monnier
  1 sibling, 1 reply; 43+ messages in thread
From: Juanma Barranquero @ 2002-11-04 15:31 UTC (permalink / raw)
  Cc: Andreas Schwab, Steven Tamm, emacs-devel

On Mon, 04 Nov 2002 09:53:51 -0500, "Stefan Monnier" <monnier+gnu/emacs@rum.cs.yale.edu> wrote:

> The question was: do you care whether you have to say
> 
> 	make bootstrap
> or
> 	make clean bootstrap
> 
> when you want to do your consistency-check bootstrap ?

No, of course I don't care as long as it's clearly documented somewhere
:)



                                                           /L/e/k/t/u

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-04 15:31                             ` Juanma Barranquero
@ 2002-11-04 15:43                               ` Stefan Monnier
  2002-11-04 16:17                                 ` Juanma Barranquero
  0 siblings, 1 reply; 43+ messages in thread
From: Stefan Monnier @ 2002-11-04 15:43 UTC (permalink / raw)
  Cc: Stefan Monnier, Andreas Schwab, Steven Tamm, emacs-devel

> > The question was: do you care whether you have to say
> > 
> > 	make bootstrap
> > or
> > 	make clean bootstrap
> > 
> > when you want to do your consistency-check bootstrap ?
> 
> No, of course I don't care as long as it's clearly documented somewhere

It should probably be documented at the same place as the fact
that after modifying lisp.h `make' will not rebuild all the .o files
that depend on lisp.h and that you might thus need a `make clean' as
well.


	Stefan

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-04 15:43                               ` Stefan Monnier
@ 2002-11-04 16:17                                 ` Juanma Barranquero
  0 siblings, 0 replies; 43+ messages in thread
From: Juanma Barranquero @ 2002-11-04 16:17 UTC (permalink / raw)
  Cc: Andreas Schwab, Steven Tamm, emacs-devel

On Mon, 04 Nov 2002 10:43:04 -0500, "Stefan Monnier" <monnier+gnu/emacs@rum.cs.yale.edu> wrote:

> It should probably be documented at the same place as the fact
> that after modifying lisp.h `make' will not rebuild all the .o files
> that depend on lisp.h and that you might thus need a `make clean' as
> well.

That'd be INSTALL and/or INSTALL-CVS, for starters.

                                                           /L/e/k/t/u

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-04  1:31                       ` Karl Fogel
@ 2002-11-04 18:06                         ` Richard Stallman
  0 siblings, 0 replies; 43+ messages in thread
From: Richard Stallman @ 2002-11-04 18:06 UTC (permalink / raw)
  Cc: schwab, tra, emacs-devel

    Okay, I'll look into doing so.  I'm not familiar with the exact
    mechanism of 'make bootstrap', so will need about a week.

Thanks.

I don't think you need to change the mechanism of `make bootstrap' much.
What the script has to do is cause `make' to run `make bootstrap'
unconditionally, the next time only.

Right now there is a target `maybe_bootstrap' that checks whether
a bootstrap is needed; but it doesn't actually do a bootstrap,
rather it exits with instructions to do `make bootstrap'.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-03 13:56                     ` Richard Stallman
  2002-11-04  1:31                       ` Karl Fogel
@ 2002-11-20  1:42                       ` Karl Fogel
  2002-11-20 11:29                         ` Kim F. Storm
  2002-11-21 17:12                         ` Richard Stallman
  1 sibling, 2 replies; 43+ messages in thread
From: Karl Fogel @ 2002-11-20  1:42 UTC (permalink / raw)
  Cc: schwab, tra, emacs-devel

Richard Stallman <rms@gnu.org> writes:
>     >     Many projects require you to run something like autogen.sh
>     >     before you can build from CVS.
>     > 
>     > Is that a semi-standard convention?  If so, maybe Emacs should follow
>     > the convention, maybe we should add that script.
> 
>     It seems to be at least semi-standard now, yes.
> 
> Can you write such a script for Emacs?
>
>     Okay, I'll look into doing so.  I'm not familiar with the exact
>    mechanism of 'make bootstrap', so will need about a week.

Okay, the patch is at the end of this mail.  I've also read over this
whole thread, and realized that people are probably talking from
different assumptions.  Please bear with me while I try to sort some
things out:

It is normal these days for a CVS working copy of a project to require
one extra step in its build procedure:

   $ ./autogen.sh        <=== this is the extra step
   $ ./configure
   $ ./make
   $ ./make install

In other words, the purpose of autogen.sh is to get your working copy
to the "same" state as a distribution tarball, at least as far as the
build procedure is concerned.

In most projects, the autogen.sh script exists because the project
does not keep generated files (such as configure, Makefile, etc) in
the repository.  Instead, the repository holds only `configure.in',
`Makefile.in', and so on.  When you check out the project, you do not
get the derived files.  That's why you have to run autogen.sh -- to
get `./configure', so you can run that to get `Makefile', so you can
run 'make'.  Thus, at its most basic, autogen.sh looks like this:

   #!/bin/sh
   autoconf

Of course, in real life, most autogen.sh scripts are considerably more
complicated.  (For example, they often check the version of autoconf,
and exit telling you to upgrade if the version is too low.)
   
Anyway, the Emacs repository does not follow the convention of not
storing generated files.  It stores `configure', and what's more, the
bootstrap process is 'make bootstrap', which depends on `Makefile'
having been generated.  (And for a final twist, 'make bootstrap'
actually builds the whole system, obviating the need to run 'make'
afterwards.)

Because of all this, the traditional autogen.sh strategy doesn't
really work for Emacs, at least not without a larger change to the way
Emacs is versioned.  So what I have done is implemented autogen.sh in
roughly the way that RMS suggested:

> I don't think you need to change the mechanism of `make bootstrap' much.
> What the script has to do is cause `make' to run `make bootstrap'
> unconditionally, the next time only.
> 
> Right now there is a target `maybe_bootstrap' that checks whether
> a bootstrap is needed; but it doesn't actually do a bootstrap,
> rather it exits with instructions to do `make bootstrap'.

However, the result is a very unusual autogen.sh.  It will probably
confuse people who thought (based on other projects) that they
understood what autogen.sh scripts were all about.

For a long term goal, I think it would be best if we separated out two
distinct sets of requirements:

   1. The ways in which bootstrapping Emacs from a CVS working copy is
      the same as bootstrapping most other projects (e.g., the need
      to get a `configure' from `configure.in')

   2. The ways in which bootstrapping Emacs from a CVS working copy is
      special (e.g., the need to compile .elc files, and to reload and
      redump Emacs after a new build)

Everything in category (1) should be handled by autogen.sh, and we
would stop versioning the `configure' file.  Category (2) would be
handled by a separate script, or by good advice printed by autogen.sh
at the end of its run.

I'm not volunteering for this; I just want to see whether people think
it's a good direction to go.

As Eli Zaretskii said recently:

   > Please remember that anon CVS access to Emacs development sources
   > is relatively new.

Mmm, yes :-).

Here's the patch, not applying until get some feedback:

2002-11-19  Karl Fogel  <kfogel@red-bean.com>

	* autogen.sh: New file.

	* INSTALL-CVS: Adjust for presence of autogen.sh.

Index: autogen.sh
===================================================================
RCS file: autogen.sh
diff -N autogen.sh
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ autogen.sh	20 Nov 2002 05:41:37 -0000
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+if make maybe_bootstrap > /dev/null 2>&1; then
+  ./configure
+  echo ""
+  echo "Your working copy is now ready for you to run 'make'."
+  echo "If you want to be extra thorough, then run:"
+  echo ""
+  echo "  make"
+  echo "  cd lisp"
+  echo "  make recompile EMACS=../src/emacs"
+  echo "  cd .."
+  echo "  make"
+  echo "  make install     ### optional ###"
+  echo ""
+else
+  echo "$0: Bootstrapping..."
+  ./configure
+  make bootstrap
+  echo "$0: Done bootstrapping."
+fi
Index: INSTALL-CVS
===================================================================
RCS file: /cvsroot/emacs/emacs/INSTALL-CVS,v
retrieving revision 1.1
diff -u -r1.1 INSTALL-CVS
--- INSTALL-CVS	17 Jun 2002 06:07:24 -0000	1.1
+++ INSTALL-CVS	20 Nov 2002 05:41:37 -0000
@@ -2,42 +2,31 @@
 
 Some of the files that are included in the Emacs tarball, such as
 byte-compiled Lisp files, are not stored in the CVS repository.
-Therefore, to build from CVS you must run "make bootstrap"
-instead of just "make":
+Therefore, to build from a CVS working copy, you should first run
 
-  $ ./configure
-  $ make bootstrap
+   ./autogen.sh
 
-The bootstrap process makes sure all necessary files are rebuilt
-before it builds the final Emacs binary.
+then run the appropriate 'make' commands afterwards, if necessary (the
+output from autogen.sh will give you some guidance).
 
-Normally, it is not necessary to use "make bootstrap" after every CVS
-update.  Unless there are problems, we suggest the following
-procedure:
-
-  $ ./configure
-  $ make
-  $ cd lisp
-  $ make recompile EMACS=../src/emacs
-  $ cd ..
-  $ make
-
-(If you want to install the Emacs binary, type "make install" instead
-of "make" in the last command.)
-
-If the above procedure fails, try "make bootstrap".
-
-Users of non-Posix systems (MS-Windows etc.) should run the
-platform-specific configuration scripts (nt/configure.bat, config.bat,
-etc.) before "make bootstrap" or "make"; the rest of the procedure is
+Users of non-Posix systems (MS-Windows etc.) should follow the
+procedure in autogen.sh, but run the appropriate platform-specific
+configuration scripts (nt/configure.bat, config.bat, etc.) before the
+"make bootstrap" or "make" step; the rest of the procedure is
 applicable to those systems as well.
 
-Note that "make bootstrap" overwrites some files that are under CVS
-control, such as lisp/loaddefs.el.  This could produce CVS conflicts
-next time that you resync with the CVS.  If you see such conflicts,
-overwrite your local copy of the file with the clean version from the
-CVS repository.  For example:
+What to do if you get unexpected CVS conflicts later:
+=====================================================
+
+Bootstrapping overwrites some files that are under CVS control, such
+as lisp/loaddefs.el.  This could produce CVS conflicts next time that
+you do a 'cvs update'.  If you see such conflicts, overwrite your
+local copy of the file with the clean version from the CVS repository.
+For example:
 
     cvs update -C lisp/loaddefs.el
+
+Bugs:
+=====
 
 Please report any bugs in the CVS versions to emacs-pretest-bug@gnu.org.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-20  1:42                       ` Karl Fogel
@ 2002-11-20 11:29                         ` Kim F. Storm
  2002-11-20 17:05                           ` Karl Fogel
  2002-11-21 17:12                         ` Richard Stallman
  1 sibling, 1 reply; 43+ messages in thread
From: Kim F. Storm @ 2002-11-20 11:29 UTC (permalink / raw)
  Cc: rms, schwab, tra, emacs-devel

Karl Fogel <kfogel@floss.red-bean.com> writes:

> In other words, the purpose of autogen.sh is to get your working copy
> to the "same" state as a distribution tarball, at least as far as the
> build procedure is concerned.

This is obviously not the case for the CVS emacs autogen.sh, so 
couldn't ./autogen.sh simply print a message telling the user to
follow the steps described in the (unmodified) INSTALL-CVS file?

> +Therefore, to build from a CVS working copy, you should first run
> +   ./autogen.sh

With the proposed change to use autogen.sh, the text in INSTALL-CVS
becomes more cryptic and less useful, e.g.

> -Normally, it is not necessary to use "make bootstrap" after every CVS
> -update.  Unless there are problems, we suggest the following
> -procedure:

Here you entirely remove the "recompile" instructions -- assuming that
the user will run autogen.sh _again_ to get those instructions.  Not
very likely IMO.

Also for non-POSIX systems has become more cryptic ... instead of
simply stating that the user should run e.g. nt/configure.bat instead
of configure, it instructs the user to study the autogen.sh script
to determine what to do.

>  
> +Users of non-Posix systems (MS-Windows etc.) should follow the
> +procedure in autogen.sh, but run the appropriate platform-specific
> +configuration scripts (nt/configure.bat, config.bat, etc.) before the
> +"make bootstrap" or "make" step; the rest of the procedure is


All in all, I think the proposed changes is a change to the worse,
making it harder rather than easier to build and maintain a CVS emacs
checkout.

But I like the header lines you added in the INSTALL-CVS file :-)

As I suggested, the following autogen.sh would suffice:

        #!/bin/sh
        echo "Please read INSTALL-CVS for instructions how to build emacs."

-- 
Kim F. Storm <storm@cua.dk> http://www.cua.dk

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-20 11:29                         ` Kim F. Storm
@ 2002-11-20 17:05                           ` Karl Fogel
  2002-11-21 17:13                             ` Richard Stallman
  0 siblings, 1 reply; 43+ messages in thread
From: Karl Fogel @ 2002-11-20 17:05 UTC (permalink / raw)
  Cc: rms, schwab, tra, emacs-devel

storm@cua.dk (Kim F. Storm) writes:
> As I suggested, the following autogen.sh would suffice:
> 
>         #!/bin/sh
>         echo "Please read INSTALL-CVS for instructions how to build emacs."

I think that would be fine.

I'll just commit the above, if no one objects.

-K

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-21 17:13                             ` Richard Stallman
@ 2002-11-21 17:05                               ` Karl Fogel
  2002-11-23 22:57                                 ` Richard Stallman
  0 siblings, 1 reply; 43+ messages in thread
From: Karl Fogel @ 2002-11-21 17:05 UTC (permalink / raw)
  Cc: storm, schwab, tra, emacs-devel

Richard Stallman <rms@gnu.org> writes:
> Please don't do that.  My first message describes
> a much better method.

Whups, already committed now, but even as it is it's an improvement
over the previous situation (an autogen.sh that tells the user to read
INSTALL-CVS is better than no autogen.sh at all).

The method you described wasn't completely fleshed out, and left a few
practical issues unaddressed.  Nevertheless, my original patch
implemented it, or something very close to it, and Kim objected, for
reasons that make a lot of sense to me.

Emacs' bootstrapping is both different from, and more complex than,
most other projects.  If we try to build too much intelligence into
autogen.sh, I think we'll just end up hampering developers.  IMHO it's
better for them to just read & understand INSTALL-CVS.

However, if we can come up with some precise description of how
autogen.sh should behave, I'd be happy to implement it.  Can you
describe exactly what you had in mind?

-Karl

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-20  1:42                       ` Karl Fogel
  2002-11-20 11:29                         ` Kim F. Storm
@ 2002-11-21 17:12                         ` Richard Stallman
  1 sibling, 0 replies; 43+ messages in thread
From: Richard Stallman @ 2002-11-21 17:12 UTC (permalink / raw)
  Cc: schwab, tra, emacs-devel

I don't think that autogen.sh should do the configure and make
bootstrap.  I think it should create a file `must-bootstrap'.  Then
the next `make all' run should notice the existence of must-bootstrap,
and do a bootstrap automatically.  That way the usual sequence of
commands

       $ ./autogen.sh        <=== this is the extra step
       $ ./configure
       $ ./make
       $ ./make install

will work as expected.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-20 17:05                           ` Karl Fogel
@ 2002-11-21 17:13                             ` Richard Stallman
  2002-11-21 17:05                               ` Karl Fogel
  0 siblings, 1 reply; 43+ messages in thread
From: Richard Stallman @ 2002-11-21 17:13 UTC (permalink / raw)
  Cc: storm, schwab, tra, emacs-devel

    >         #!/bin/sh
    >         echo "Please read INSTALL-CVS for instructions how to build emacs."

    I think that would be fine.

    I'll just commit the above, if no one objects.

Please don't do that.  My first message describes
a much better method.

^ permalink raw reply	[flat|nested] 43+ messages in thread

* Re: Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs
  2002-11-21 17:05                               ` Karl Fogel
@ 2002-11-23 22:57                                 ` Richard Stallman
  0 siblings, 0 replies; 43+ messages in thread
From: Richard Stallman @ 2002-11-23 22:57 UTC (permalink / raw)
  Cc: storm, schwab, tra, emacs-devel

    The method you described wasn't completely fleshed out, and left a few
    practical issues unaddressed.  Nevertheless, my original patch
    implemented it, or something very close to it,

It was not close at all.  Your first script actually ran the bootstrap
procedure.  That is very different from what I suggested.

    However, if we can come up with some precise description of how
    autogen.sh should behave, I'd be happy to implement it.

Here's the description I wrote before:

      I think it should create a file `must-bootstrap'.  Then
    the next `make all' run should notice the existence of must-bootstrap,
    and do a bootstrap automatically.

Could you be more specific about why you think that is hard?
It could be implemented inside the rule maybe-bootstrap.

^ permalink raw reply	[flat|nested] 43+ messages in thread

end of thread, other threads:[~2002-11-23 22:57 UTC | newest]

Thread overview: 43+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-10-29 21:42 Emacs in CVS as today does not build - emacs depends on *.elc, which cannot be built without emacs Thorbjørn Ravn Andersen
2002-10-29 21:55 ` Thorbjørn Ravn Andersen
2002-10-30 22:00   ` Kim F. Storm
2002-10-31  8:10     ` Thorbjørn Ravn Andersen
2002-10-31 14:14       ` Eli Zaretskii
2002-10-31 14:40         ` Thorbjørn Ravn Andersen
2002-10-31 14:55           ` Andreas Schwab
2002-10-31 16:24             ` Thorbjørn Ravn Andersen
2002-10-31 17:01               ` Stefan Monnier
2002-11-01  0:41                 ` Steven Tamm
2002-11-01 15:34                   ` Stefan Monnier
2002-11-02 17:15                     ` Andreas Schwab
2002-11-03  2:24                       ` Stefan Monnier
2002-11-03 23:27                         ` Juanma Barranquero
2002-11-04  7:20                           ` Kai Großjohann
2002-11-04 14:53                           ` Stefan Monnier
2002-11-04 15:24                             ` Andreas Schwab
2002-11-04 15:26                               ` Stefan Monnier
2002-11-04 15:31                             ` Juanma Barranquero
2002-11-04 15:43                               ` Stefan Monnier
2002-11-04 16:17                                 ` Juanma Barranquero
2002-11-02  3:32                   ` Richard Stallman
2002-11-01  8:34                 ` Thorbjørn Ravn Andersen
2002-11-01 15:40                   ` Stefan Monnier
2002-11-03  8:13                     ` Thorbjørn Ravn Andersen
2002-11-03  8:36                       ` Alfred M. Szmidt
2002-11-03  9:10                         ` Thorbjørn Ravn Andersen
2002-11-04 12:02                           ` Richard Stallman
2002-10-31 18:10               ` Andreas Schwab
2002-11-02  3:32                 ` Richard Stallman
2002-11-02  2:37                   ` Karl Fogel
2002-11-03 13:56                     ` Richard Stallman
2002-11-04  1:31                       ` Karl Fogel
2002-11-04 18:06                         ` Richard Stallman
2002-11-20  1:42                       ` Karl Fogel
2002-11-20 11:29                         ` Kim F. Storm
2002-11-20 17:05                           ` Karl Fogel
2002-11-21 17:13                             ` Richard Stallman
2002-11-21 17:05                               ` Karl Fogel
2002-11-23 22:57                                 ` Richard Stallman
2002-11-21 17:12                         ` Richard Stallman
2002-11-01  9:39               ` Richard Stallman
2002-10-31 19:03           ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).