Gnus development mailing list
 help / color / mirror / Atom feed
* `make' compiles every files
@ 2007-04-16 14:49 Leo
  2007-04-16 14:57 ` Simon Josefsson
  0 siblings, 1 reply; 6+ messages in thread
From: Leo @ 2007-04-16 14:49 UTC (permalink / raw)
  To: ding

Hi all,

I just notice that even only just one file has been changed, `make' will
compile all the .el files. This looks like a waste.

Regards,
-- 
Leo <sdl.web AT gmail.com>                         (GPG Key: 9283AA3F)




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

* Re: `make' compiles every files
  2007-04-16 14:49 `make' compiles every files Leo
@ 2007-04-16 14:57 ` Simon Josefsson
  2007-04-16 15:03   ` Leo
  0 siblings, 1 reply; 6+ messages in thread
From: Simon Josefsson @ 2007-04-16 14:57 UTC (permalink / raw)
  To: Leo; +Cc: ding

Leo <sdl.web@gmail.com> writes:

> Hi all,
>
> I just notice that even only just one file has been changed, `make' will
> compile all the .el files. This looks like a waste.

If you changed, for example, a defmacro, other files that use the
macro needs to be recompiled.  I think there are other similar
cross-dependencies too.  If you know that what you changed does not
cause other files to be regenerated too, you can use the 'make clever'
target.



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

* Re: `make' compiles every files
  2007-04-16 14:57 ` Simon Josefsson
@ 2007-04-16 15:03   ` Leo
  2007-04-16 16:25     ` Simon Josefsson
  0 siblings, 1 reply; 6+ messages in thread
From: Leo @ 2007-04-16 15:03 UTC (permalink / raw)
  To: ding

----- Simon Josefsson (2007-04-16) wrote:-----

>> I just notice that even only just one file has been changed, `make'
>> will compile all the .el files. This looks like a waste.
>
> If you changed, for example, a defmacro, other files that use the
> macro needs to be recompiled.

I am quite sure changing anything even it is not a defmacro triggers a
compile of all .el files, i.e. `make' in Gnus is not so smart.

> I think there are other similar cross-dependencies too.  If you know
> that what you changed does not cause other files to be regenerated
> too, you can use the 'make clever' target.

I am getting "make: *** No rule to make target `clever'.  Stop."

Thanks,
-- 
Leo <sdl.web AT gmail.com>                         (GPG Key: 9283AA3F)




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

* Re: `make' compiles every files
  2007-04-16 15:03   ` Leo
@ 2007-04-16 16:25     ` Simon Josefsson
  2007-04-17  7:20       ` Leo
  0 siblings, 1 reply; 6+ messages in thread
From: Simon Josefsson @ 2007-04-16 16:25 UTC (permalink / raw)
  To: Leo; +Cc: ding

Leo <sdl.web@gmail.com> writes:

> ----- Simon Josefsson (2007-04-16) wrote:-----
>
>>> I just notice that even only just one file has been changed, `make'
>>> will compile all the .el files. This looks like a waste.
>>
>> If you changed, for example, a defmacro, other files that use the
>> macro needs to be recompiled.
>
> I am quite sure changing anything even it is not a defmacro triggers a
> compile of all .el files, i.e. `make' in Gnus is not so smart.

Right, 'make' does not know that you didn't change a macro etc, so it
assumes the worst and rebuilds everything.

>> I think there are other similar cross-dependencies too.  If you know
>> that what you changed does not cause other files to be regenerated
>> too, you can use the 'make clever' target.
>
> I am getting "make: *** No rule to make target `clever'.  Stop."

Try 'cd lisp/'.  However, keep in mind that your Gnus build may be
broken if you use it (for the above reason).

/Simon



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

* Re: `make' compiles every files
  2007-04-16 16:25     ` Simon Josefsson
@ 2007-04-17  7:20       ` Leo
  2007-04-17  9:08         ` Simon Josefsson
  0 siblings, 1 reply; 6+ messages in thread
From: Leo @ 2007-04-17  7:20 UTC (permalink / raw)
  To: ding

----- Simon Josefsson (2007-04-16) wrote:-----

>>> If you changed, for example, a defmacro, other files that use the
>>> macro needs to be recompiled.
>>
>> I am quite sure changing anything even it is not a defmacro triggers
>> a compile of all .el files, i.e. `make' in Gnus is not so smart.
>
> Right, 'make' does not know that you didn't change a macro etc, so it
> assumes the worst and rebuilds everything.

But `make' in emacs CVS knows how to deal with it ;) i.e. there is way
to improve this, isn't it?

-- 
Leo <sdl.web AT gmail.com>                         (GPG Key: 9283AA3F)




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

* Re: `make' compiles every files
  2007-04-17  7:20       ` Leo
@ 2007-04-17  9:08         ` Simon Josefsson
  0 siblings, 0 replies; 6+ messages in thread
From: Simon Josefsson @ 2007-04-17  9:08 UTC (permalink / raw)
  To: Leo; +Cc: ding

Leo <sdl.web@gmail.com> writes:

> ----- Simon Josefsson (2007-04-16) wrote:-----
>
>>>> If you changed, for example, a defmacro, other files that use the
>>>> macro needs to be recompiled.
>>>
>>> I am quite sure changing anything even it is not a defmacro triggers
>>> a compile of all .el files, i.e. `make' in Gnus is not so smart.
>>
>> Right, 'make' does not know that you didn't change a macro etc, so it
>> assumes the worst and rebuilds everything.
>
> But `make' in emacs CVS knows how to deal with it ;) i.e. there is way
> to improve this, isn't it?

Yes, probably.  Patches welcome. ;-)

Although I'm not sure if Emacs 'make' is actually clever enough to do
this properly.  Perhaps it just ignores this issue?  The motivation
might be that only developers do incremental builds, and they will
know how to debug things.  End-users only build it once.

/Simon



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

end of thread, other threads:[~2007-04-17  9:08 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-04-16 14:49 `make' compiles every files Leo
2007-04-16 14:57 ` Simon Josefsson
2007-04-16 15:03   ` Leo
2007-04-16 16:25     ` Simon Josefsson
2007-04-17  7:20       ` Leo
2007-04-17  9:08         ` Simon Josefsson

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