From: wmperry@aventail.com (William M. Perry)
Cc: ding@gnus.org
Subject: Re: building pgnus with VPATH
Date: 12 Nov 1999 19:58:02 -0500 [thread overview]
Message-ID: <86yac3b42t.fsf@megalith.bp.aventail.com> (raw)
In-Reply-To: Denys Duchier's message of "13 Nov 1999 01:38:41 +0100"
Denys Duchier <Denys.Duchier@ps.uni-sb.de> writes:
> Jason R Mastaler <jason@4b.org> writes:
>
> > It would be nice if pgnus could be compiled in a separate directory
> > than the sources, especially now that we can update via CVS.
> >
> > Although I'm not sure how to implement this
>
> This request also gets my vote. The autoconf documentation explains
> the technique:
>
> > To support `VPATH', each `Makefile.in' should contain two lines that
> > look like:
> >
> > srcdir = @srcdir@
> > VPATH = @srcdir@
>
> This is nice for several reasons: (1) you can have one source tree and
> multiple build dirs for different architectures (or, in gnus case,
> different emacs implementations) - this is great for updating in an
> heterogenous environment, (2) you don't pollute the source tree, which is
> great when you also participate in the development. Less filling _and_
> tastes great!
Emacs/W3 supports this - there are a couple of gotchas though. This is
from the Emacs/W3 lisp/docomp.el script that is loaded before
batch-byte-compile is executed.
;; If we are building w3 in a different directory than the source
;; directory, we must read *.el from source directory and write *.elc
;; into the building directory. For that, we define this function
;; before loading bytecomp. Bytecomp doesn't overwrite this function.
(defun byte-compile-dest-file (filename)
"Convert an Emacs Lisp source file name to a compiled file name.
In addition, remove directory name part from FILENAME."
(setq filename (byte-compiler-base-file-name filename))
(setq filename (file-name-sans-versions filename))
(setq filename (file-name-nondirectory filename))
(if (memq system-type '(win32 w32 mswindows windows-nt))
(setq filename (downcase filename)))
(cond ((eq system-type 'vax-vms)
(concat (substring filename 0 (string-match ";" filename)) "c"))
((string-match emacs-lisp-file-regexp filename)
(concat (substring filename 0 (match-beginning 0)) ".elc"))
(t (concat filename ".elc"))))
Building in a separate dir is very nice for keeping Emacs & XEmacs bytecode
separate.
-Bill P.
prev parent reply other threads:[~1999-11-13 0:58 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-11-13 0:00 Jason R Mastaler
1999-11-13 0:38 ` Denys Duchier
1999-11-13 0:58 ` William M. Perry [this message]
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=86yac3b42t.fsf@megalith.bp.aventail.com \
--to=wmperry@aventail.com \
--cc=ding@gnus.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.
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 NNTP newsgroup(s).