diff options
author | Andreas Jaeger <aj@suse.de> | 2012-05-14 21:45:48 +0200 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2012-05-14 22:01:08 +0200 |
commit | 6a4888ffd67163b589e602d62ca6330a608d8b89 (patch) | |
tree | 0c0a35db72928c17eded23c800a8c91742618782 /manual | |
parent | b8caea2cb90092ba8ecd3274898f227bbe2d305d (diff) | |
download | glibc-6a4888ffd67163b589e602d62ca6330a608d8b89.tar.gz glibc-6a4888ffd67163b589e602d62ca6330a608d8b89.tar.xz glibc-6a4888ffd67163b589e602d62ca6330a608d8b89.zip |
Do not build manual in source dir
[BZ #13750] Do not build manual anymore in the source dir. Also clean up the Makefile and remove rules that have been used previously when we had a stand-alone Makefile which was obsoleted recently.
Diffstat (limited to 'manual')
-rw-r--r-- | manual/.gitignore | 30 | ||||
-rw-r--r-- | manual/Makefile | 171 | ||||
-rw-r--r-- | manual/install.texi | 8 | ||||
-rw-r--r-- | manual/libc-texinfo.sh | 19 |
4 files changed, 81 insertions, 147 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..f02f14471c 100644 --- a/manual/Makefile +++ b/manual/Makefile @@ -19,29 +19,25 @@ # Makefile for the GNU C Library manual. subdir := manual -export subdir := $(subdir) # Allow override INSTALL_INFO = install-info -.PHONY: all dvi pdf info html -all: dvi -dvi: libc.dvi -pdf: libc.pdf +.PHONY: dvi pdf info html # 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 - chapters = $(addsuffix .texi, \ intro errno memory ctype string charset locale \ message search pattern io stdio llio filesys \ @@ -52,8 +48,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 +57,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 +103,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 +128,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,21 +146,19 @@ 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) - -.PHONY: install subdir_install installdirs install-data +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 ../Rules + +.PHONY: install subdir_install install-data install-data subdir_install: install ifneq ($(strip $(MAKEINFO)),:) install: $(inst_infodir)/libc.info @@ -162,58 +170,11 @@ 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 + $(make-target-directory) for file in $<*; do \ - $(INSTALL_DATA) $$file $(@D)/$$file; \ + $(INSTALL_DATA) $$file $(@D)/; \ done -installdirs: - $(mkinstalldirs) $(inst_infodir) - TAGS: $(minimal-dist) $(ETAGS) -o $@ $^ - -# The parent makefile sometimes invokes us with targets `subdir_REAL-TARGET'. -subdir_%: % ; -# For targets we don't define, do nothing. -subdir_%: ; - -# These are targets that each glibc subdirectory is expected to understand. -# ../Rules defines them for code subdirectories; for us, they are no-ops. -# None of these should be `subdir_TARGET'; those targets are transformed -# by the implicit rule above into `TARGET' deps. -glibc-targets := lib objects objs others tests xtests lint.out echo-headers -.PHONY: $(glibc-targets) -$(glibc-targets): - -# Create stamp files if they don't exist, so the parent makefile's rules for -# updating the library archives are happy with us, and never think we have -# changed the library. -lib: $(foreach o,$(object-suffixes-for-libc),$(objpfx)stamp$o) -ifdef objpfx -.PHONY: stubs -stubs: $(objpfx)stubs -endif -$(objpfx)stubs ../po/manual.pot: - $(make-target-directory) - touch $@ -$(objpfx)stamp%: - $(make-target-directory) - touch $@ - -# Make the target directory if it doesn't exist, using the `mkinstalldirs' -# script that does `mkdir -p' even if `mkdir' doesn't support that flag. -define make-target-directory -$(addprefix $(mkinstalldirs) ,\ - $(filter-out $(wildcard $(@D:%/=%)),$(@D:%/=%))) -endef - -# The top-level glibc Makefile expects subdir_install to update the stubs file. -subdir_install: stubs - -# Get rid of these variables if they came from the parent. -routines = -aux = -sources = -objects = -headers = diff --git a/manual/install.texi b/manual/install.texi index d2663f3d99..9918425a49 100644 --- a/manual/install.texi +++ b/manual/install.texi @@ -203,10 +203,10 @@ system such as @file{/etc/passwd}, @file{/etc/nsswitch.conf} and others. These files must all contain correct and sensible content. To format the @cite{GNU C Library Reference Manual} for printing, type -@w{@code{make dvi}}. You need a working @TeX{} installation to do this. -The distribution already includes the on-line formatted version of the -manual, as Info files. You can regenerate those with @w{@code{make -info}}, but it shouldn't be necessary. +@w{@code{make dvi}}. You need a working @TeX{} installation to do +this. The distribution builds the on-line formatted version of the +manual, as Info files, as part of the build process. You can build +them manually with @w{@code{make info}}. The library has a number of special-purpose configuration parameters which you can find in @file{Makeconfig}. These can be overwritten with 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}*.$$ |