[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#13104: Extending automake rules w.r.t dependencies
From: |
Theophile Ranquet |
Subject: |
bug#13104: Extending automake rules w.r.t dependencies |
Date: |
Fri, 7 Dec 2012 10:46:01 +0100 (CET) |
User-agent: |
SquirrelMail/1.4.9a |
> Hello,
Hi,
> The usual workaround to add prerequisites to an automake-generated
> rule is to use a one-off make variable for the target name. For
> example,
>
> doc_bison_dvi = doc/bison.dvi
> $(doc_bison_dvi): $(FIGS_DOT:.dot=.eps)
>
> and so on. Automake does a simple string comparison of the target name
> to decide whether or the generated rule is overridden, so using a
> variable will hide the "real" target name from this check. Note that
> this is only appropriate for rules with no commands.
We did something similar, with a little tweak because using three
variables seemed a bit of an overkill:
commit 476af12837af129d36b302e30789c549c85fdadb
Author: Theophile Ranquet <address@hidden>
Date: Tue Dec 4 16:09:24 2012 +0100
doc: fix build dependencies
* doc/local.mk: Avoid overwriting Automake's rules.
diff --git a/doc/local.mk b/doc/local.mk
index aaea996..cef4448 100644
--- a/doc/local.mk
+++ b/doc/local.mk
@@ -20,7 +20,14 @@ doc_bison_TEXINFOS = \
doc/fdl.texi \
doc/gpl-3.0.texi
-TEXI2DVI = texi2dvi --build-dir=doc/bison.t2d
+# Cannot express dependencies directly on file names because of Automake.
+# Obfuscate with a variable.
+doc_bison = doc/bison
+$(doc_bison).dvi: $(FIGS_DOT:.dot=.eps)
+$(doc_bison).pdf: $(FIGS_DOT:.dot=.pdf)
+$(doc_bison).html: $(FIGS_DOT:.dot=.html)
+
+TEXI2DVI = texi2dvi --build-dir=doc/bison.t2d -I doc
CLEANDIRS = doc/bison.t2d
clean-local:
rm -rf $(CLEANDIRS)
@@ -123,10 +130,6 @@ EXTRA_DIST +=
\
$(FIGS_DOT:.dot=.eps) $(FIGS_DOT:.dot=.pdf) $(FIGS_DOT:.dot=.png)
SUFFIXES += .dot .eps .pdf .png
-doc/bison.dvi: $(FIGS_DOT:.dot=.eps)
-doc/bison.html: $(FIGS_DOT:.dot=.png)
-doc/bison.pdf: $(FIGS_DOT:.dot=.pdf)
-
.dot.eps:
$(AM_V_GEN) $(MKDIR_P) `echo "./$@" | sed -e 's,/[^/]*$$,,'`
$(AM_V_at) $(DOT) -Gmargin=0 -Teps $< >address@hidden
> Hope that helps,
It did, thanks!