Out of source compilation

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Out of source compilation

Ergus
Hi:

Sorry if this is a too dumb question, but I don't find any related
reference.

What's the recommended method to do out of source compilation?  Right
now I am doing a cd dir && make. But maybe there is
something else, more complete?

Maybe a variable in the locals file?? Or a set command?

Thanks in advance,
Ergus

Reply | Threaded
Open this post in threaded view
|

Re: Out of source compilation

Tomas Zerolo
On Sun, Sep 01, 2019 at 05:57:07AM +0200, Ergus wrote:
> Hi:
>
> Sorry if this is a too dumb question, but I don't find any related
> reference.
>
> What's the recommended method to do out of source compilation?

You are talking about compiling Emacs from source?

> Right now I am doing a cd dir && make. But maybe there is
> something else, more complete?
>
> Maybe a variable in the locals file?? Or a set command?

If my guess above was right, it's easy (this is true of most well
managed "modern" Autotools projects):

 - just make yourself a build directory somewhere (in my case
   it's just a neighbour of the source dir, but that's not
   necessary)

 - cd to your build directory

 - call configure script from your build directory

 - the build machinery gets deployed in your build directory.

 - do there make && make install as usual.

Cheers
-- t

signature.asc (205 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Out of source compilation

VanL
<[hidden email]> writes:

> On Sun, Sep 01, 2019 at 05:57:07AM +0200, Ergus wrote:
>> Hi:
>>
>> Sorry if this is a too dumb question, but I don't find any related
>> reference.
>>
>> What's the recommended method to do out of source compilation?
>
> You are talking about compiling Emacs from source?

I was able to build the ordinary Emacs-26.3 source but EmacsMac is stuck.

  xxx% cd emacs-mac
  xxx% . ./autogen.sh
  Checking whether you have the necessary tools...
  (Read INSTALL.REPO for more details on building Emacs)
  Checking for autoconf (need at least version 2.65) ... ok
  Your system has the required tools.
  Running 'autoreconf -fi -I m4' ...
  autom4te: cannot lock autom4te.cache/requests with mode 2: \
            Operation not supported
  autom4te: cannot lock autom4te.cache/requests with mode 2: \
            Operation not supported
  autom4te: cannot lock autom4te.cache/requests with mode 2: \
            Operation not supported
  Installing git hooks...
  cp: build-aux/git-hooks/ commit-msg pre-commit \
      prepare-commit-msg: No such file or directory
  ./autogen.sh:360: you have running jobs.
 
\help

>> Right now I am doing a cd dir && make. But maybe there is
>> something else, more complete?
>>
>> Maybe a variable in the locals file?? Or a set command?
>
> If my guess above was right, it's easy (this is true of most well
> managed "modern" Autotools projects):
>
>  - just make yourself a build directory somewhere (in my case
>    it's just a neighbour of the source dir, but that's not
>    necessary)
>
>  - cd to your build directory
>
>  - call configure script from your build directory
>
>  - the build machinery gets deployed in your build directory.
>
>  - do there make && make install as usual.
                  ^
                  +--- Is it possible to set the target install-dir
                       after `make' soas not to confuse existing installs?

--
© 2019 VanL
gpg using EEF2 37E9 3840 0D5D 9183  251E 9830 384E 9683 B835
          'If the bug bites don't fight it.' - Nancy S. Steinhardt


Reply | Threaded
Open this post in threaded view
|

Re: Out of source compilation

Tomas Zerolo
On Sun, Sep 01, 2019 at 10:55:37PM +1000, VanL wrote:

> <[hidden email]> writes:
>
> > On Sun, Sep 01, 2019 at 05:57:07AM +0200, Ergus wrote:
> >> Hi:
> >>
> >> Sorry if this is a too dumb question, but I don't find any related
> >> reference.
> >>
> >> What's the recommended method to do out of source compilation?
> >
> > You are talking about compiling Emacs from source?
>
> I was able to build the ordinary Emacs-26.3 source but EmacsMac is stuck.
Can't help with Mac, sorry :-/

Cheers
-- t

signature.asc (205 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Out of source compilation

Ergus
In reply to this post by Tomas Zerolo
No, sorry I explained wrong myself ;)

I was asking about using the M-x compile command in general. So use
compilation buffers, recompile, goto-next-error and so on.

When compiling in source it is almost trivial, but when the building
directory is out of sources (like cmake does by default) I don't know if
there is a way to tell to emacs that the compilation directory is
somewhere else.

On Sun, Sep 01, 2019 at 10:24:30AM +0200, [hidden email] wrote:

>On Sun, Sep 01, 2019 at 05:57:07AM +0200, Ergus wrote:
>> Hi:
>>
>> Sorry if this is a too dumb question, but I don't find any related
>> reference.
>>
>> What's the recommended method to do out of source compilation?
>
>You are talking about compiling Emacs from source?
>
>> Right now I am doing a cd dir && make. But maybe there is
>> something else, more complete?
>>
>> Maybe a variable in the locals file?? Or a set command?
>
>If my guess above was right, it's easy (this is true of most well
>managed "modern" Autotools projects):
>
> - just make yourself a build directory somewhere (in my case
>   it's just a neighbour of the source dir, but that's not
>   necessary)
>
> - cd to your build directory
>
> - call configure script from your build directory
>
> - the build machinery gets deployed in your build directory.
>
> - do there make && make install as usual.
>
>Cheers
>-- t



Reply | Threaded
Open this post in threaded view
|

Re: Out of source compilation

Óscar Fuentes
Ergus <[hidden email]> writes:

> No, sorry I explained wrong myself ;)
>
> I was asking about using the M-x compile command in general. So use
> compilation buffers, recompile, goto-next-error and so on.
>
> When compiling in source it is almost trivial, but when the building
> directory is out of sources (like cmake does by default)

No, CMake does not build out of source by default. CMake uses the
current directory by default :-)

> I don't know if
> there is a way to tell to emacs that the compilation directory is
> somewhere else.

No that I know of, that's because I rolled my own.

On Emacs proper, there is project.el which has a TODO about
project-build:

;; * Build tool related functionality.  Start with a `project-build'
;;   command, which should provide completions on tasks to run, and
;;   maybe allow entering some additional arguments.

which is a bit vague.

Creating your own command to be used instead of `compile' (or advising
it) is quite easy, so easy that the value of any future built-in
functionality is questionable given the vast differences on build setups
that you will find out there.


Reply | Threaded
Open this post in threaded view
|

Re: Out of source compilation

Tomas Zerolo
In reply to this post by Ergus
On Sun, Sep 01, 2019 at 06:22:16PM +0200, Ergus wrote:
> No, sorry I explained wrong myself ;)
>
> I was asking about using the M-x compile command in general. So use
> compilation buffers, recompile, goto-next-error and so on.

Ah, got it. Hm. Since compile asks you for a compile command,
I don't think there's a general way to do it. It will depend
on the build system you use, I think.

Cheers
-- tomás

signature.asc (205 bytes) Download Attachment