unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [PATCH 1/1] emacs: Makefile.local: HAVE_EMACS usage fixes
@ 2013-08-27 17:43 Tomi Ollila
  0 siblings, 0 replies; 5+ messages in thread
From: Tomi Ollila @ 2013-08-27 17:43 UTC (permalink / raw)
  To: notmuch; +Cc: tomi.ollila

If we don't have emacs, disable targets that used EMACS while doing
the recipes of that target.

If we do have emacs, make install-emacs depend on *.elc files,
as making the target will attempt to install those.
---

I tested this first by running tests normally.
Next with ./configure --without-emacs (after make distclean).
Then I did this:

diff --git a/configure b/configure
index 6166917..3640b47 100755
--- a/configure
+++ b/configure
@@ -363,3 +363,3 @@ fi
 printf "Checking if emacs is available... "
-if emacs --quick --batch > /dev/null 2>&1; then
+if eemacs --quick --batch > /dev/null 2>&1; then
     printf "Yes.\n"
@@ -658,3 +658,3 @@ CXX = ${CXX}
 # Command to execute emacs from Makefiles
-EMACS = emacs --quick
+EMACS = eemacs --quick

to hide emacs (make distclean; ./configure; make)

All of these worked as expected.


Tested the latest with current master (i.e without this patch):

$ make
Use "make V=1" to see the verbose compile lines.
EMACS emacs/.eldeps
/bin/sh: eemacs: command not found
make: Nothing to be done for `all'.

(although it seems to work, it complains...)

Finally, after applying this patch (and restoring configure),
./configure && make install-emacs DESTDIR=$HOME/DDIR  worked fine

(without this patch the above gives:
  install: cannot stat ‘emacs/notmuch-lib.elc’: No such file or directory
  install: cannot stat ‘emacs/notmuch-parser.elc’: No such file or directory
  ...)


 emacs/Makefile.local | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/emacs/Makefile.local b/emacs/Makefile.local
index a910aff..a7e967e 100644
--- a/emacs/Makefile.local
+++ b/emacs/Makefile.local
@@ -28,19 +28,24 @@ emacs_bytecode = $(emacs_sources:.el=.elc)
 # the byte compiler may load an old .elc file when processing a
 # "require" or we may fail to rebuild a .elc that depended on a macro
 # from an updated file.
+ifeq ($(HAVE_EMACS),1)
 $(dir)/.eldeps: $(dir)/Makefile.local $(dir)/make-deps.el $(emacs_sources)
 	$(call quiet,EMACS) --directory emacs -batch -l make-deps.el \
 		-f batch-make-deps $(emacs_sources) > $@.tmp && \
 		(cmp -s $@.tmp $@ || mv $@.tmp $@)
 -include $(dir)/.eldeps
+endif
 CLEAN+=$(dir)/.eldeps $(dir)/.eldeps.tmp
 
+ifeq ($(HAVE_EMACS),1)
 %.elc: %.el $(global_deps)
 	$(call quiet,EMACS) --directory emacs -batch -f batch-byte-compile $<
+endif
 
 ifeq ($(WITH_EMACS),1)
 ifeq ($(HAVE_EMACS),1)
 all: $(emacs_bytecode)
+install-emacs: $(emacs_bytecode)
 endif
 
 install: install-emacs
-- 
1.8.0

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

* [PATCH 1/1] emacs: Makefile.local: HAVE_EMACS usage fixes
@ 2013-08-27 19:00 Tomi Ollila
  2013-11-30 13:50 ` David Bremner
  2014-01-13 18:40 ` David Bremner
  0 siblings, 2 replies; 5+ messages in thread
From: Tomi Ollila @ 2013-08-27 19:00 UTC (permalink / raw)
  To: notmuch; +Cc: tomi.ollila

If we don't have emacs, disable targets that used EMACS while doing
the recipes of that target.

If we do have emacs, make install-emacs depend on *.elc files,
as making the target will attempt to install those.
---

This obsoletes id:1377625381-23440-1-git-send-email-tomi.ollila@iki.fi
-- the "patch" in comment section was applied by git am ;/

I tested this first by running tests normally.
Next with ./configure --without-emacs (after make distclean).
Then I did this:

| diff --git a/configure b/configure
| index 6166917..3640b47 100755
| --- a/configure
| +++ b/configure
| @@ -363,3 +363,3 @@ fi
|  printf "Checking if emacs is available... "
| -if emacs --quick --batch > /dev/null 2>&1; then
| +if eemacs --quick --batch > /dev/null 2>&1; then
|      printf "Yes.\n"
| @@ -658,3 +658,3 @@ CXX = ${CXX}
|  # Command to execute emacs from Makefiles
| -EMACS = emacs --quick
| +EMACS = eemacs --quick

to hide emacs (make distclean; ./configure; make)

All of these worked as expected.


Tested the latest with current master (i.e without this patch):

$ make
Use "make V=1" to see the verbose compile lines.
EMACS emacs/.eldeps
/bin/sh: eemacs: command not found
make: Nothing to be done for `all'.

(although it seems to work, it complains...)

Finally, after applying this patch (and restoring configure),
./configure && make install-emacs DESTDIR=$HOME/DDIR  worked fine

(without this patch the above gives:
  install: cannot stat ‘emacs/notmuch-lib.elc’: No such file or directory
  install: cannot stat ‘emacs/notmuch-parser.elc’: No such file or directory
  ...)


 emacs/Makefile.local | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/emacs/Makefile.local b/emacs/Makefile.local
index a910aff..a7e967e 100644
--- a/emacs/Makefile.local
+++ b/emacs/Makefile.local
@@ -28,19 +28,24 @@ emacs_bytecode = $(emacs_sources:.el=.elc)
 # the byte compiler may load an old .elc file when processing a
 # "require" or we may fail to rebuild a .elc that depended on a macro
 # from an updated file.
+ifeq ($(HAVE_EMACS),1)
 $(dir)/.eldeps: $(dir)/Makefile.local $(dir)/make-deps.el $(emacs_sources)
 	$(call quiet,EMACS) --directory emacs -batch -l make-deps.el \
 		-f batch-make-deps $(emacs_sources) > $@.tmp && \
 		(cmp -s $@.tmp $@ || mv $@.tmp $@)
 -include $(dir)/.eldeps
+endif
 CLEAN+=$(dir)/.eldeps $(dir)/.eldeps.tmp
 
+ifeq ($(HAVE_EMACS),1)
 %.elc: %.el $(global_deps)
 	$(call quiet,EMACS) --directory emacs -batch -f batch-byte-compile $<
+endif
 
 ifeq ($(WITH_EMACS),1)
 ifeq ($(HAVE_EMACS),1)
 all: $(emacs_bytecode)
+install-emacs: $(emacs_bytecode)
 endif
 
 install: install-emacs
-- 
1.8.0

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

* Re: [PATCH 1/1] emacs: Makefile.local: HAVE_EMACS usage fixes
  2013-08-27 19:00 [PATCH 1/1] emacs: Makefile.local: HAVE_EMACS usage fixes Tomi Ollila
@ 2013-11-30 13:50 ` David Bremner
  2013-12-04 19:27   ` Tomi Ollila
  2014-01-13 18:40 ` David Bremner
  1 sibling, 1 reply; 5+ messages in thread
From: David Bremner @ 2013-11-30 13:50 UTC (permalink / raw)
  To: Tomi Ollila, notmuch

Tomi Ollila <tomi.ollila@iki.fi> writes:

>  
>  ifeq ($(WITH_EMACS),1)
>  ifeq ($(HAVE_EMACS),1)
>  all: $(emacs_bytecode)
> +install-emacs: $(emacs_bytecode)
>  endif
>  

It's a bit confusing that we have both HAVE_EMACS and WITH_EMACS. Should
this be documented somewhere? Otherwise the patch seems sensible.

See also the discussion at id:528B455A.70200@iki.fi.

d

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

* Re: [PATCH 1/1] emacs: Makefile.local: HAVE_EMACS usage fixes
  2013-11-30 13:50 ` David Bremner
@ 2013-12-04 19:27   ` Tomi Ollila
  0 siblings, 0 replies; 5+ messages in thread
From: Tomi Ollila @ 2013-12-04 19:27 UTC (permalink / raw)
  To: David Bremner, notmuch

On Sat, Nov 30 2013, David Bremner <david@tethera.net> wrote:

> Tomi Ollila <tomi.ollila@iki.fi> writes:
>
>>  
>>  ifeq ($(WITH_EMACS),1)
>>  ifeq ($(HAVE_EMACS),1)
>>  all: $(emacs_bytecode)
>> +install-emacs: $(emacs_bytecode)
>>  endif
>>  
>
> It's a bit confusing that we have both HAVE_EMACS and WITH_EMACS. Should
> this be documented somewhere? Otherwise the patch seems sensible.
>
> See also the discussion at id:528B455A.70200@iki.fi.

Eventually it's probably good idea to merge HAVE_EMACS to WITH_EMACS but
doing in a good way requires quite a few ./configure changes (and while
doing that one have to check that some consistency is kept).
Eventually it would probably be nice that in case *_EMACS is not set (is 0)
the clean rules stay (provided that those do not require emacs) but
build rules are ifdeffed out...

In the meantime my patch here maintains status quo where things can be
done in case HAVE_EMACS is set (1) -- emacs is available in the system,
while keeping the cleanup rules in case *_EMACS is not set... and
this patch also fixes the compilation whenever there is no emacs in system.

I could add short notes of what HAVE_EMACS & WITH_EMACS mean but although
it is bit confusing that we currently have both, those are nevertheless
quite descriptive themselves.

>
> d

Tomi

> _______________________________________________
> notmuch mailing list
> notmuch@notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch

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

* Re: [PATCH 1/1] emacs: Makefile.local: HAVE_EMACS usage fixes
  2013-08-27 19:00 [PATCH 1/1] emacs: Makefile.local: HAVE_EMACS usage fixes Tomi Ollila
  2013-11-30 13:50 ` David Bremner
@ 2014-01-13 18:40 ` David Bremner
  1 sibling, 0 replies; 5+ messages in thread
From: David Bremner @ 2014-01-13 18:40 UTC (permalink / raw)
  To: Tomi Ollila, notmuch; +Cc: tomi.ollila

Tomi Ollila <tomi.ollila@iki.fi> writes:

> If we don't have emacs, disable targets that used EMACS while doing
> the recipes of that target.
>

pushed.

d

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

end of thread, other threads:[~2014-01-13 18:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-08-27 19:00 [PATCH 1/1] emacs: Makefile.local: HAVE_EMACS usage fixes Tomi Ollila
2013-11-30 13:50 ` David Bremner
2013-12-04 19:27   ` Tomi Ollila
2014-01-13 18:40 ` David Bremner
  -- strict thread matches above, loose matches on Subject: below --
2013-08-27 17:43 Tomi Ollila

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

	https://yhetil.org/notmuch.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).