Do not build manual in the source directory

[BZ #13750]

Build the manual in the build directory and
not anymore in the source directory.
This commit is contained in:
Andreas Jaeger 2012-05-04 13:13:57 +02:00
parent 31dc8730af
commit e3945c47bd
5 changed files with 110 additions and 95 deletions

View File

@ -1,4 +1,33 @@
2012-05-02 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
2012-05-04 Andreas Jaeger <aj@suse.de>
[BZ #13750]
* manual/.gitignore: Remove, it's not needed anymore.
* manual/libc-texinfo.sh: Pass OUTDIR as extra argument, create
all files in it.
* manual/Makefile (dvi, pdf, info, html): Depend on files in build
directory.
(texis): Renamed to $(objpfx)texis.
(texis-path): New, contains path to generated files.
(chapters.%): Use texis-path for complete path, add extra argument
libc-texinfo.sh.
(libc.dvi, libc.pdf, libc.info, libc.pdf): Add $(objfpx) as prefix.
(libc/index.html, summary.texi): Add $(objpfx) as prefix.
(summary,texi, stamp-summary): Use complete path of
files. Generate files in build dir.
(dir-add.texi): Build in build dir.
(libm-err.texi,stamp-libm-err): Likewise.
(version.texi, stamp-version): Likewise.
(.%c.texi): Likewise.
(%.info,%.dvi,%.pdf): Add $(objpfx) as prefix, build in build dir.
(mostlyclean): Remove target.
(realclean): Remove target.
(generated): Add new variable with contents from mostlyclean and
realclean, remove entries duplicated in common-mostlyclean, add
stamp-libm-err and stamp-version.
(generated-dirs): Add libc directory.
($(inst_infodir)/libc.info): Install files from build dir.
2012-05-04 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
* sysdeps/ieee754/ldbl-128ibm/e_acosl.c (__ieee754_acosl): Fix
long double comparison inaccuracies.

12
NEWS
View File

@ -18,12 +18,12 @@ Version 2.16
12047, 12340, 13058, 13525, 13526, 13527, 13528, 13529, 13530, 13531,
13532, 13533, 13547, 13551, 13552, 13553, 13555, 13559, 13566, 13583,
13592, 13618, 13637, 13656, 13658, 13673, 13691, 13695, 13704, 13705,
13706, 13726, 13738, 13739, 13758, 13760, 13761, 13775, 13786, 13792,
13806, 13824, 13840, 13841, 13844, 13846, 13851, 13852, 13854, 13871,
13872, 13873, 13879, 13883, 13886, 13892, 13895, 13908, 13910, 13911,
13912, 13913, 13915, 13916, 13917, 13918, 13919, 13920, 13921, 13924,
13926, 13927, 13928, 13938, 13941, 13942, 13963, 13967, 13970, 13973,
14027, 14033, 14034, 14040, 14049, 14055
13706, 13726, 13738, 13739, 13750, 13758, 13760, 13761, 13775, 13786,
13792, 13806, 13824, 13840, 13841, 13844, 13846, 13851, 13852, 13854,
13871, 13872, 13873, 13879, 13883, 13886, 13892, 13895, 13908, 13910,
13911, 13912, 13913, 13915, 13916, 13917, 13918, 13919, 13920, 13921,
13924, 13926, 13927, 13928, 13938, 13941, 13942, 13963, 13967, 13970,
13973, 14027, 14033, 14034, 14040, 14049, 14055
* ISO C11 support:

30
manual/.gitignore vendored
View File

@ -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

View File

@ -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)))
# Kludge: implicit rule so Make knows the one command does it all.
chapters.% top-menu.%: libc-texinfo.sh $(texis) Makefile
AWK=$(AWK) $(SHELL) $< '$(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
# 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)))
html: libc/index.html
libc/index.html: $(libc-texi-generated)
$(MAKEINFO) --html libc.texinfo
# Kludge: implicit rule so Make knows the one command does it all.
chapters.% top-menu.%: libc-texinfo.sh $(texis-path) Makefile
AWK=$(AWK) $(SHELL) $< $(objpfx) \
'$(chapters)' \
'$(add-chapters)' \
'$(appendices) $(licenses)'
$(objpfx)libc.dvi $(objpfx)libc.pdf $(objpfx)libc.info: \
$(addprefix $(objpfx),$(libc-texi-generated))
$(objpfx)libc.dvi $(objpfx)libc.pdf: texinfo.tex
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:

View File

@ -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}*.$$