Messages in this thread | | | Date | Tue, 23 Oct 2012 06:39:51 -0700 | From | Arnaldo Carvalho de Melo <> | Subject | Re: [PATCH] perf: Build install-man target when installing |
| |
Em Tue, Oct 23, 2012 at 01:13:01AM +0200, Borislav Petkov escreveu: > On Mon, Oct 22, 2012 at 07:03:39AM -0700, Arnaldo Carvalho de Melo wrote: > > Em Mon, Oct 22, 2012 at 12:07:19PM +0200, Borislav Petkov escreveu: > > > On Mon, Oct 22, 2012 at 04:25:24PM +0900, Namhyung Kim wrote: > > > > It will add additional dependencies of asciidoc, docbook-xsl and/or > > > > something to default perf install command. I don't know it matters > > > > much, but just wanted to say. What if a user want to install the perf > > > > but the required packages for documents are not installed? > > > > > Ok, this is a valid point, more or less. > > > > Yes, its a valid point, to address it I think we should just do as we > > with other features, like, say, when python-devel is not installed warn > > the user that python support won't be included, i.e. if asciidoc, etc > > are not installed, tell the user that documentation will not be > > installed, install package A, B and C to have documentation installed. > > Ok, how's that: we check the presence of executables on the system and > error out if not in the path. I found some helpful make functions in > config/utilities.mak and decided to reuse them because I'm lazy :)
Better now:
make[1]: Entering directory `/home/git/linux/tools/lib/traceevent' make[1]: Entering directory `/home/git/linux/tools/perf/Documentation' make[2]: warning: jobserver unavailable: using -j1. Add `+' to parent make rule. make[1]: Leaving directory `/home/git/linux/tools/lib/traceevent' CC /home/acme/git/build/perf/perf.o LINK /home/acme/git/build/perf/perf make[2]: Entering directory `/home/git/linux/tools/perf' make[2]: `/home/acme/git/build/perf/PERF-VERSION-FILE' is up to date. make[2]: Leaving directory `/home/git/linux/tools/perf' Makefile:177: *** asciidoc not found, please install it on your distro. Stop. make[1]: Leaving directory `/home/git/linux/tools/perf/Documentation' make: *** [install-man] Error 2 make: Leaving directory `/home/git/linux/tools/perf' [acme@sandy linux]$
But it shouldn't stop the build, just warn the user that Documentation is not going to be installed. It should error like that if 'make install-man' is called.
Trying to do that now.
- Arnaldo
> -- > diff --git a/tools/perf/Documentation/Makefile b/tools/perf/Documentation/Makefile > index 9f2e44f2b17a..a2bfd6e3cce4 100644 > --- a/tools/perf/Documentation/Makefile > +++ b/tools/perf/Documentation/Makefile > @@ -1,3 +1,5 @@ > +include ../config/utilities.mak > + > OUTPUT := ./ > ifeq ("$(origin O)", "command line") > ifneq ($(O),) > @@ -64,6 +66,7 @@ MAKEINFO=makeinfo > INSTALL_INFO=install-info > DOCBOOK2X_TEXI=docbook2x-texi > DBLATEX=dblatex > +XMLTO=xmlto > ifndef PERL_PATH > PERL_PATH = /usr/bin/perl > endif > @@ -170,7 +173,11 @@ pdf: $(OUTPUT)user-manual.pdf > > install: install-man > > -install-man: man > +check-man-tools: > + $(call check-executable-or-error-out,$(ASCIIDOC)) > + $(call check-executable-or-error-out,$(XMLTO)) > + > +install-man: check-man-tools man > $(INSTALL) -d -m 755 $(DESTDIR)$(man1dir) > # $(INSTALL) -d -m 755 $(DESTDIR)$(man5dir) > # $(INSTALL) -d -m 755 $(DESTDIR)$(man7dir) > @@ -246,7 +253,7 @@ $(MAN_HTML): $(OUTPUT)%.html : %.txt > > $(OUTPUT)%.1 $(OUTPUT)%.5 $(OUTPUT)%.7 : $(OUTPUT)%.xml > $(QUIET_XMLTO)$(RM) $@ && \ > - xmlto -o $(OUTPUT) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $< > + $(XMLTO) -o $(OUTPUT) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $< > > $(OUTPUT)%.xml : %.txt > $(QUIET_ASCIIDOC)$(RM) $@+ $@ && \ > diff --git a/tools/perf/config/utilities.mak b/tools/perf/config/utilities.mak > index 8046182a19eb..f8b5d713ff15 100644 > --- a/tools/perf/config/utilities.mak > +++ b/tools/perf/config/utilities.mak > @@ -168,6 +168,8 @@ _is-executable-sh = $(call shell-sq,test -f $(1) -a -x $(1) && echo y) > get-executable = $(if $(1),$(if $(is-absolute),$(_ge-abspath),$(lookup))) > _ge-abspath = $(if $(is-executable),$(1)) > > +check-executable-or-error-out = $(if $(call get-executable,$(1)),,$(error $(1) not found, please install it on your distro)) > + > # get-supplied-or-default-executable > # > # Usage: absolute-executable-path-or-empty = $(call get-executable-or-default,variable,default) > > -- > Regards/Gruss, > Boris.
| |