[pacman-dev] [PATCH] Use automake verbose helpers in custom make rules
Dan McGee
dan at archlinux.org
Wed Dec 7 13:33:41 EST 2011
This converts our script generation to use the built-in AM_V_GEN macro,
which honors the V= setting passed to make and allows one to see the
full command if they truly desire. The AM_V_at macro is also used in
place of an explicit @ so verbose-mode compiles show all commands being
run.
We can also use these two macros in doc generation to quiet it down to
the level we expect.
Other minor changes:
* a pointless test call is removed in test/pacman/tests/
* sed is used instead of dos2unix as we depend on it anyway
* consecutive chmod calls are reduced to a single call (e.g., '+x,a-x')
Signed-off-by: Dan McGee <dan at archlinux.org>
---
Dave, I know you are good at shell stuff- can you take a look at this and make
sure it is kosher? Mainly the chmod changes (is that comma stuff
cross-platform?), and the sed conversion (cd doc/; make website). Thanks!
Example full complile run now, including docs:
$ make -s -j3 V=0
Making all in lib/libalpm
Making all in po
CC alpm.lo
CC add.lo
CC alpm_list.lo
CC backup.lo
CC be_local.lo
CC be_package.lo
CC be_sync.lo
CC conflict.lo
CC db.lo
CC delta.lo
CC deps.lo
CC diskspace.lo
CC dload.lo
CC error.lo
CC graph.lo
CC group.lo
CC handle.lo
CC log.lo
CC package.lo
CC pkghash.lo
CC rawstr.lo
CC remove.lo
CC signing.lo
CC sync.lo
CC trans.lo
CC util.lo
CC version.lo
CC base64.lo
CCLD libalpm.la
Making all in src/util
CC vercmp.o
CC testpkg.o
CC testdb.o
CC cleanupdelta.o
CC pacsort.o
CC pactree.o
CCLD vercmp
CCLD testpkg
CCLD testdb
CCLD cleanupdelta
CCLD pacsort
CCLD pactree
Making all in src/pacman
Making all in po
CC conf.o
CC database.o
CC deptest.o
CC package.o
CC pacman.o
CC query.o
CC remove.o
CC sync.o
CC callback.o
CC upgrade.o
CC util.o
CCLD pacman
Making all in scripts
Making all in po
GEN makepkg
GEN pacman-db-upgrade
GEN pacman-key
GEN pacman-optimize
GEN pkgdelta
GEN rankmirrors
GEN repo-add
Making all in etc
GEN makepkg.conf
GEN pacman.conf
Making all in test/pacman
Making all in tests
GEN sync200.py
Making all in test/util
Making all in contrib
GEN pacdiff
GEN bacman
GEN paccache
GEN paclist
GEN paclog-pkglist
GEN pacscripts
GEN pacsearch
GEN bash_completion
GEN zsh_completion
Making all in doc
GEN pacman.8
GEN makepkg.8
GEN repo-add.8
GEN vercmp.8
GEN pkgdelta.8
GEN pacman-key.8
GEN PKGBUILD.5
GEN makepkg.conf.5
GEN pacman.conf.5
GEN libalpm.3
contrib/Makefile.am | 19 ++++++++-----------
doc/Makefile.am | 16 +++++++++-------
etc/Makefile.am | 7 +++----
scripts/Makefile.am | 10 +++-------
test/pacman/tests/Makefile.am | 10 ++++------
5 files changed, 27 insertions(+), 35 deletions(-)
diff --git a/contrib/Makefile.am b/contrib/Makefile.am
index be0a4ba..970e17b 100644
--- a/contrib/Makefile.am
+++ b/contrib/Makefile.am
@@ -35,19 +35,16 @@ edit = sed \
-e '1s|!/bin/bash|!$(BASH_SHELL)|g'
$(OURSCRIPTS): Makefile
- @echo ' ' GEN $@;
- @$(RM) $@ $@.tmp
- @$(edit) $(srcdir)/$@.in >$@.tmp
- @chmod +x $@.tmp
- @chmod a-w $@.tmp
- @mv $@.tmp $@
+ $(AM_V_at)$(RM) $@ $@.tmp
+ $(AM_V_GEN)$(edit) $(srcdir)/$@.in >$@.tmp
+ $(AM_V_at)chmod +x,a-w $@.tmp
+ $(AM_V_at)mv $@.tmp $@
$(OURFILES): Makefile
- @echo ' ' GEN $@;
- @$(RM) $@ $@.tmp
- @$(edit) $(srcdir)/$@.in >$@.tmp
- @chmod a-w $@.tmp
- @mv $@.tmp $@
+ $(AM_V_at)$(RM) $@ $@.tmp
+ $(AM_V_GEN)$(edit) $(srcdir)/$@.in >$@.tmp
+ $(AM_V_at)chmod a-w $@.tmp
+ $(AM_V_at)mv $@.tmp $@
all-am: $(OURSCRIPTS) $(OURFILES)
diff --git a/doc/Makefile.am b/doc/Makefile.am
index f449e72..b8d42d6 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -90,8 +90,10 @@ endif
html: $(HTML_DOCS)
-website: html
- bsdtar czf website.tar.gz $(HTML_DOCS) \
+website: website.tar.gz
+
+website.tar.gz: html
+ $(AM_V_GEN)bsdtar czf $@ $(HTML_DOCS) \
asciidoc-override.css \
-C /etc/asciidoc/stylesheets/ \
asciidoc.css \
@@ -119,15 +121,15 @@ A2X_OPTS = \
# These rules are due to the includes and files of the asciidoc text
$(ASCIIDOC_MANS): asciidoc.conf footer.txt Makefile
- a2x $(A2X_OPTS) --asciidoc-opts="$(ASCIIDOC_OPTS) --out-file=./$@.xml" $(srcdir)/$@.txt
+ $(AM_V_GEN)a2x $(A2X_OPTS) --asciidoc-opts="$(ASCIIDOC_OPTS) --out-file=./$@.xml" $(srcdir)/$@.txt
%.html: %.txt
- asciidoc $(ASCIIDOC_OPTS) $*.txt
- dos2unix $@
+ $(AM_V_GEN)asciidoc $(ASCIIDOC_OPTS) -o - $*.txt | \
+ sed -e 's/\x0D$$//' > $@
HACKING.html: ../HACKING
- asciidoc $(ASCIIDOC_OPTS) -o $@ ../HACKING
- dos2unix $@
+ $(AM_V_GEN)asciidoc $(ASCIIDOC_OPTS) -o - ../HACKING | \
+ sed -e 's/\x0D$$//' > $@
# Customizations for certain HTML docs
$(HTML_MANPAGES): asciidoc.conf footer.txt Makefile
diff --git a/etc/Makefile.am b/etc/Makefile.am
index d504d7f..58a80bd 100644
--- a/etc/Makefile.am
+++ b/etc/Makefile.am
@@ -22,10 +22,9 @@ edit = sed \
-e 's|@ROOTDIR[@]|$(ROOTDIR)|g'
$(dist_sysconf_DATA): Makefile
- @echo ' ' GEN $@;
- @$(RM) $@ $@.tmp
- @$(edit) `test -f ./$@.in || echo $(srcdir)/`$@.in >$@.tmp
- @mv $@.tmp $@
+ $(AM_V_at)$(RM) $@ $@.tmp
+ $(AM_V_GEN)$(edit) `test -f ./$@.in || echo $(srcdir)/`$@.in >$@.tmp
+ $(AM_V_at)mv $@.tmp $@
makepkg.conf: $(srcdir)/makepkg.conf.in
pacman.conf: $(srcdir)/pacman.conf.in
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index d89fd30..328fbff 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -60,14 +60,10 @@ edit = sed \
## All the scripts depend on Makefile so that they are rebuilt when the
## prefix etc. changes. Use chmod -w to prevent people from editing the
## wrong file by accident.
-# two 'test' lines- make sure we can handle both sh and py type scripts
-# third 'test' line- make sure one of the two checks succeeded
$(OURSCRIPTS): Makefile
- @echo ' ' GEN $@;
- @$(RM) $@
- @test -f $(srcdir)/$@.sh.in && m4 -P -I $(srcdir) $(srcdir)/$@.sh.in | $(edit) >$@
- @chmod +x $@
- @chmod a-w $@
+ $(AM_V_at)$(RM) $@
+ $(AM_V_GEN)test -f $(srcdir)/$@.sh.in && m4 -P -I $(srcdir) $(srcdir)/$@.sh.in | $(edit) >$@
+ $(AM_V_at)chmod +x,a-w $@
makepkg: \
$(srcdir)/makepkg.sh.in \
diff --git a/test/pacman/tests/Makefile.am b/test/pacman/tests/Makefile.am
index 508534a..9ab0c77 100644
--- a/test/pacman/tests/Makefile.am
+++ b/test/pacman/tests/Makefile.am
@@ -17,11 +17,9 @@ edit = sed \
$(CONFTESTS): Makefile
- @echo ' ' GEN $@;
- @$(RM) $@ $@.tmp
- @test -f $(srcdir)/$@.in && $(edit) $(srcdir)/$@.in >$@.tmp || true
- @test -f $@.tmp || false
- @chmod a-w $@.tmp
- @mv $@.tmp $@
+ $(AM_V_at)$(RM) $@ $@.tmp
+ $(AM_V_GEN)test -f $(srcdir)/$@.in && $(edit) $(srcdir)/$@.in >$@.tmp || true
+ $(AM_V_at)chmod a-w $@.tmp
+ $(AM_V_at)mv $@.tmp $@
# vim:set ts=2 sw=2 noet:
--
1.7.8
More information about the pacman-dev
mailing list