unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* build emacs outside of the source directory
@ 2013-03-07 11:38 Darren Hoo
  0 siblings, 0 replies; 5+ messages in thread
From: Darren Hoo @ 2013-03-07 11:38 UTC (permalink / raw)
  To: emacs-devel


Let's say the emacs source is checked out into this emacs directory:

$ ls 
emacs  build

$ cd build; ../emacs/configure; make

The built object files for emacs/{src,lib,lib-src} all go to
build/{src,lib,lib-src}, but the *.elc files are not, they still lie in
the emacs/lisp diretory.  Is it because output file can not be specified
in emacs batch mode? Can it be added?




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

* Re: build emacs outside of the source directory
       [not found] <m2li9zwicn.fsf@darren.hoo@gmail.com>
@ 2013-03-07 13:05 ` Andreas Schwab
  2013-03-14  5:50   ` Jérémie Courrèges-Anglas
  2013-03-07 22:54 ` Stephen J. Turnbull
  1 sibling, 1 reply; 5+ messages in thread
From: Andreas Schwab @ 2013-03-07 13:05 UTC (permalink / raw)
  To: Darren Hoo; +Cc: emacs-devel

Darren Hoo <darren.hoo@gmail.com> writes:

> The built object files for emacs/{src,lib,lib-src} all go to
> build/{src,lib,lib-src}, but the *.elc files are not, they still lie in
> the emacs/lisp diretory.

That is correct, because these files are distributed, so when building
from a tarball they are not touched.

Andreas.

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."



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

* build emacs outside of the source directory
       [not found] <m2li9zwicn.fsf@darren.hoo@gmail.com>
  2013-03-07 13:05 ` build emacs outside of the source directory Andreas Schwab
@ 2013-03-07 22:54 ` Stephen J. Turnbull
  2013-03-08  7:36   ` Xue Fuqiao
  1 sibling, 1 reply; 5+ messages in thread
From: Stephen J. Turnbull @ 2013-03-07 22:54 UTC (permalink / raw)
  To: Darren Hoo; +Cc: emacs-devel

Darren Hoo writes:

 > The built object files for emacs/{src,lib,lib-src} all go to
 > build/{src,lib,lib-src}, but the *.elc files are not, they still lie in
 > the emacs/lisp diretory.

It's complicated.  The theory is that compiled Lisp is universal (can
be run by any instance of Emacs) but that's not 100% true.
(Especially for *XEmacs because Mule is optional -- we just fixed a
related build bug, but that's not a problem here.)  To the extent that
the assumption is true, this is a significant build-time-saver.

The easy way to generalize this would be to symlink farm the lisp
directory into blddir instead of linking the directory itself.  But
for the reason above, and to some extent Andreas's point about tarball
distribution, it would need to be a configure option.  People might
object to that as needless complexity.



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

* Re: build emacs outside of the source directory
  2013-03-07 22:54 ` Stephen J. Turnbull
@ 2013-03-08  7:36   ` Xue Fuqiao
  0 siblings, 0 replies; 5+ messages in thread
From: Xue Fuqiao @ 2013-03-08  7:36 UTC (permalink / raw)
  To: Stephen J. Turnbull; +Cc: emacs-devel, Darren Hoo

On 03/08/2013 06:54 AM, Stephen J. Turnbull wrote:

>   > The built object files for emacs/{src,lib,lib-src} all go to
>   > build/{src,lib,lib-src}, but the *.elc files are not, they still lie in
>   > the emacs/lisp diretory.

> It's complicated.  The theory is that compiled Lisp is universal (can
> be run by any instance of Emacs) but that's not 100% true.
> (Especially for *XEmacs because Mule is optional -- we just fixed a
> related build bug, but that's not a problem here.)  To the extent that
> the assumption is true, this is a significant build-time-saver.

> The easy way to generalize this would be to symlink farm the lisp
> directory into blddir instead of linking the directory itself.  But
> for the reason above, and to some extent Andreas's point about tarball
> distribution, it would need to be a configure option.  People might
> object to that as needless complexity.

A configure option looks good to me.

-- 
Best regards, Xue Fuqiao.
http://www.emacswiki.org/emacs/XueFuqiao



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

* Re: build emacs outside of the source directory
  2013-03-07 13:05 ` build emacs outside of the source directory Andreas Schwab
@ 2013-03-14  5:50   ` Jérémie Courrèges-Anglas
  0 siblings, 0 replies; 5+ messages in thread
From: Jérémie Courrèges-Anglas @ 2013-03-14  5:50 UTC (permalink / raw)
  To: Andreas Schwab; +Cc: emacs-devel, Darren Hoo

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

Andreas Schwab <schwab@linux-m68k.org> writes:

> Darren Hoo <darren.hoo@gmail.com> writes:
>
>> The built object files for emacs/{src,lib,lib-src} all go to
>> build/{src,lib,lib-src}, but the *.elc files are not, they still lie in
>> the emacs/lisp diretory.
>
> That is correct, because these files are distributed, so when building
> from a tarball they are not touched.

Is that true?  I haven't tried to investigate yet, but they are actually
rebuilt here (24.3 tarball).  This makes me suspicious about using
a single source directory for the four emacs flavors we ship in the
OpenBSD ports tree - thinking of two or more emacs processes writing the
same .elc at the same time.

> Andreas.

-- 
Jérémie Courrèges-Anglas - OpenBSD Emacs port maintainer
GPG Key fingerprint: 61DB D9A0 00A4 67CF 2A90  8961 6191 8FBF 06A1 1494

[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]

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

end of thread, other threads:[~2013-03-14  5:50 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <m2li9zwicn.fsf@darren.hoo@gmail.com>
2013-03-07 13:05 ` build emacs outside of the source directory Andreas Schwab
2013-03-14  5:50   ` Jérémie Courrèges-Anglas
2013-03-07 22:54 ` Stephen J. Turnbull
2013-03-08  7:36   ` Xue Fuqiao
2013-03-07 11:38 Darren Hoo

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).