diff options
author | Andreas Jaeger <aj@suse.de> | 2012-05-04 13:13:57 +0200 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2012-05-04 13:13:57 +0200 |
commit | e3945c47bdac1149a1fec5d46bd567a248cd17b9 (patch) | |
tree | e67a0c0f333cd35de310a66749f9793aaf5b1b13 /manual | |
parent | 31dc8730af585d8e13021484752fb20decae0661 (diff) | |
download | glibc-e3945c47bdac1149a1fec5d46bd567a248cd17b9.tar.gz glibc-e3945c47bdac1149a1fec5d46bd567a248cd17b9.tar.xz glibc-e3945c47bdac1149a1fec5d46bd567a248cd17b9.zip |
Do not build manual in the source directory
[BZ #13750] Build the manual in the build directory and not anymore in the source directory.
Diffstat (limited to 'manual')
-rw-r--r-- | manual/.gitignore | 30 | ||||
-rw-r--r-- | manual/Makefile | 111 | ||||
-rw-r--r-- | manual/libc-texinfo.sh | 19 |
3 files changed, 73 insertions, 87 deletions
diff --git a/manual/.gitignore b/manual/.gitignore deleted file mode 100644 index 55c49c998c..0000000000 --- a/manual/.gitignore +++ /dev/null @@ -1,30 +0,0 @@ -*.aux -*.c.texi -*.cp -*.cps -*.dvi* -*.fn -*.fns -*.info* -*.ky -*.kys -*.log -*.pdf -*.pg -*.pgs -*.ps -*.tmp -*.toc -*.tp -*.tps -*.vr -*.vrs -chapters.texi -dir-add.texi -dir-add.texinfo -libm-err.texi -stamp-* -summary.texi -texis -top-menu.texi -version.texi diff --git a/manual/Makefile b/manual/Makefile index 29e36c2453..08afecbbf2 100644 --- a/manual/Makefile +++ b/manual/Makefile @@ -26,18 +26,19 @@ INSTALL_INFO = install-info .PHONY: all dvi pdf info html all: dvi -dvi: libc.dvi -pdf: libc.pdf # Get glibc's configuration info. include ../Makeconfig +dvi: $(objpfx)libc.dvi +pdf: $(objpfx)libc.pdf + TEXI2DVI = texi2dvi TEXI2PDF = texi2dvi --pdf ifneq ($(strip $(MAKEINFO)),:) all: info -info: libc.info +info: $(objpfx)libc.info endif mkinstalldirs = $(..)scripts/mkinstalldirs @@ -52,8 +53,8 @@ add-chapters = $(wildcard $(foreach d, $(add-ons), ../$d/$d.texi)) appendices = lang.texi header.texi install.texi maint.texi contrib.texi licenses = freemanuals.texi lgpl-2.1.texi fdl-1.3.texi --include texis -texis: texis.awk $(chapters) $(add-chapters) $(appendices) $(licenses) +-include $(objpfx)texis +$(objpfx)texis: texis.awk $(chapters) $(add-chapters) $(appendices) $(licenses) $(AWK) -f $^ > $@.T mv -f $@.T $@ @@ -61,34 +62,45 @@ nonexamples = $(filter-out $(add-chapters) %.c.texi, $(texis)) examples = $(filter-out $(foreach d, $(add-ons), ../$d/%.c.texi), \ $(filter %.c.texi, $(texis))) +# Generated files directly included from libc.texinfo. +libc-texi-generated = chapters.texi top-menu.texi dir-add.texi \ + libm-err.texi version.texi + +# Add path to build dir for generated files +texis-path := $(filter-out $(libc-texi-generated) summary.texi $(examples), \ + $(texis)) \ + $(addprefix $(objpfx),$(filter $(libc-texi-generated) summary.texi \ + $(examples), $(texis))) + # Kludge: implicit rule so Make knows the one command does it all. -chapters.% top-menu.%: libc-texinfo.sh $(texis) Makefile - AWK=$(AWK) $(SHELL) $< '$(chapters)' \ +chapters.% top-menu.%: libc-texinfo.sh $(texis-path) Makefile + AWK=$(AWK) $(SHELL) $< $(objpfx) \ + '$(chapters)' \ '$(add-chapters)' \ '$(appendices) $(licenses)' -# Generated files directly included from libc.texinfo. -libc-texi-generated = chapters.texi top-menu.texi dir-add.texi \ - libm-err.texi version.texi -libc.dvi libc.pdf libc.info: $(libc-texi-generated) -libc.dvi libc.pdf: texinfo.tex +$(objpfx)libc.dvi $(objpfx)libc.pdf $(objpfx)libc.info: \ + $(addprefix $(objpfx),$(libc-texi-generated)) +$(objpfx)libc.dvi $(objpfx)libc.pdf: texinfo.tex -html: libc/index.html -libc/index.html: $(libc-texi-generated) - $(MAKEINFO) --html libc.texinfo +html: $(objpfx)libc/index.html +$(objpfx)libc/index.html: $(addprefix $(objpfx),$(libc-texi-generated)) + $(MAKEINFO) -P $(objpfx) -o $(objpfx)libc --html libc.texinfo # Generate the summary from the Texinfo source files for each chapter. -summary.texi: stamp-summary ; -stamp-summary: summary.awk $(filter-out summary.texi, $(texis)) - $(AWK) -f $^ | sort -t'' -df -k 1,1 | tr '\014' '\012' > summary-tmp - $(move-if-change) summary-tmp summary.texi +$(objpfx)summary.texi: $(objpfx)stamp-summary ; +$(objpfx)stamp-summary: summary.awk $(filter-out $(objpfx)summary.texi, \ + $(texis-path)) + $(AWK) -f $^ | sort -t'' -df -k 1,1 | tr '\014' '\012' \ + > $(objpfx)summary-tmp + $(move-if-change) $(objpfx)summary-tmp $(objpfx)summary.texi touch $@ # Generate a file which can be added to the `dir' content to provide direct # access to the documentation of the function, variables, and other # definitions. -dir-add.texi: xtract-typefun.awk $(texis) +$(objpfx)dir-add.texi: xtract-typefun.awk $(texis-path) (echo "@dircategory GNU C library functions and macros"; \ echo "@direntry"; \ $(AWK) -f $^ | sort; \ @@ -96,23 +108,23 @@ dir-add.texi: xtract-typefun.awk $(texis) mv -f $@.new $@ # The table with the math errors is generated. -libm-err.texi: stamp-libm-err -stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\ +$(objpfx)libm-err.texi: $(objpfx)stamp-libm-err +$(objpfx)stamp-libm-err: libm-err-tab.pl $(wildcard $(foreach dir,$(sysdirs),\ $(dir)/libm-test-ulps)) pwd=`pwd`; \ - $(PERL) $< $$pwd/.. > libm-err-tmp - $(move-if-change) libm-err-tmp libm-err.texi + $(PERL) $< $$pwd/.. > $(objpfx)libm-err-tmp + $(move-if-change) $(objpfx)libm-err-tmp $(objpfx)libm-err.texi touch $@ # Generate a file with the version number. -version.texi: stamp-version ; -stamp-version: $(common-objpfx)config.make - echo "@set VERSION $(version)" > version-tmp - $(move-if-change) version-tmp version.texi +$(objpfx)version.texi: $(objpfx)stamp-version ; +$(objpfx)stamp-version: $(common-objpfx)config.make + echo "@set VERSION $(version)" > $(objpfx)version-tmp + $(move-if-change) $(objpfx)version-tmp $(objpfx)version.texi touch $@ # Generate Texinfo files from the C source for the example programs. -%.c.texi: examples/%.c +$(objpfx)%.c.texi: examples/%.c sed -e '1,/^\*\/$$/d' \ -e 's,[{}],@&,g' \ -e 's,/\*\(@.*\)\*/,\1,g' \ @@ -121,14 +133,17 @@ stamp-version: $(common-objpfx)config.make $< | expand > $@.new mv -f $@.new $@ -%.info: %.texinfo - LANGUAGE=C LC_ALL=C $(MAKEINFO) $< +$(objpfx)%.info: %.texinfo + LANGUAGE=C LC_ALL=C $(MAKEINFO) -P $(objpfx) --output=$@ $< -%.dvi: %.texinfo - $(TEXI2DVI) $< +$(objpfx)%.dvi: %.texinfo + cd $(objpfx);$(TEXI2DVI) -I $(shell cd $(<D) && pwd) --output=$@ \ + $(shell cd $(<D) && pwd)/$< + +$(objpfx)%.pdf: %.texinfo + cd $(objpfx);$(TEXI2PDF) -I $(shell cd $(<D) && pwd) --output=$@ \ + $(shell cd $(<D) && pwd)/$< -%.pdf: %.texinfo - $(TEXI2PDF) $< # Distribution. minimal-dist = summary.awk texis.awk tsort.awk libc-texinfo.sh libc.texinfo \ @@ -136,19 +151,17 @@ minimal-dist = summary.awk texis.awk tsort.awk libc-texinfo.sh libc.texinfo \ $(filter-out summary.texi, $(nonexamples)) \ $(patsubst %.c.texi,examples/%.c, $(examples)) -.PHONY: mostlyclean distclean realclean clean -mostlyclean: - -rm -f libc.dvi libc.pdf libc.tmp libc.info* - -rm -f $(objpfx)stubs - -rm -f $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o) -clean: mostlyclean -distclean: clean indices = cp fn pg tp vr ky -realclean: distclean - -rm -f texis summary.texi stamp-summary *.c.texi - -rm -f $(foreach index,$(indices),libc.$(index) libc.$(index)s) - -rm -f libc.log libc.aux libc.toc - -rm -f $(libc-texi-generated) +generated-dirs := libc +generated = libc.dvi libc.pdf libc.tmp libc.info* \ + stubs \ + texis summary.texi stamp-summary *.c.texi \ + $(foreach index,$(indices),libc.$(index) libc.$(index)s) \ + libc.log libc.aux libc.toc \ + $(libc-texi-generated) \ + stamp-libm-err stamp-version + +include ../Makerules .PHONY: install subdir_install installdirs install-data install-data subdir_install: install @@ -162,9 +175,9 @@ endif # Catchall implicit rule for other installation targets from the parent. install-%: ; -$(inst_infodir)/libc.info: libc.info installdirs +$(inst_infodir)/libc.info: $(objpfx)libc.info installdirs for file in $<*; do \ - $(INSTALL_DATA) $$file $(@D)/$$file; \ + $(INSTALL_DATA) $$file $(@D)/; \ done installdirs: diff --git a/manual/libc-texinfo.sh b/manual/libc-texinfo.sh index 79ac9773ee..60e224bb8d 100644 --- a/manual/libc-texinfo.sh +++ b/manual/libc-texinfo.sh @@ -1,10 +1,13 @@ #! /bin/sh +OUTDIR=$1 +shift + # Create libc.texinfo from the chapter files. -trap "rm -f *.$$; exit 1" 1 2 15 +trap "rm -f ${OUTDIR}*.$$; exit 1" 1 2 15 -exec 3>incl.$$ 4>smenu.$$ 5>lmenu.$$ +exec 3>${OUTDIR}incl.$$ 4>${OUTDIR}smenu.$$ 5>${OUTDIR}lmenu.$$ build_menu () { while IFS=: read file node; do @@ -51,7 +54,7 @@ collect_nodes $3 | build_menu exec 3>&- 4>&- 5>&- -mv -f incl.$$ chapters.texi +mv -f ${OUTDIR}incl.$$ ${OUTDIR}chapters.texi { echo '@menu' @@ -72,7 +75,7 @@ mv -f incl.$$ chapters.texi } !/^\*/ { print; } - ' smenu.$$ + ' ${OUTDIR}smenu.$$ cat <<EOF * Free Manuals:: Free Software Needs Free Documentation. * Copying:: The GNU Lesser General Public License says @@ -90,8 +93,8 @@ Indices --- The Detailed Node Listing --- EOF - cat lmenu.$$ - echo '@end menu'; } >top-menu.texi.$$ -mv -f top-menu.texi.$$ top-menu.texi + cat ${OUTDIR}lmenu.$$ + echo '@end menu'; } >${OUTDIR}top-menu.texi.$$ +mv -f ${OUTDIR}top-menu.texi.$$ ${OUTDIR}top-menu.texi -rm -f *.$$ +rm -f ${OUTDIR}*.$$ |