libstdc++: Allow lualatex to be used for Doxygen PDF
This allows the Doxygen PDF to be built using lualatex instead of pdflatex, which solves a problem with pdflatex running out of memory sometimes. This is done by adding a --latex_cmd option to the run_doxygen script, which then sets the specified command in the generated user.cfg file used by Doxygen. The makefile is adjusted to pass --latex_cmd=$(LATEX_CMD) to the script, so using running make with LATEX_CMD=lualatex will override the default. Additionally, this does some refactoring of the doc/Makefile.am rules and the run_doxygen script. libstdc++-v3/ChangeLog: * doc/Makefile.am: Simplify doxygen recipes and use --latex_cmd. * doc/Makefile.in: Regenerate. * doc/doxygen/user.cfg.in (LATEX_CMD_NAME): Add placeholder value. * scripts/run_doxygen (print_usage): Always print to stdout and do not exit. (fail): New function for exiting on error. (parse_options): Handle --latex_cmd. Do not treat --help the same as errors. Simplify handling of required arguments.
This commit is contained in:
parent
a8e19fa419
commit
e3b6d3a887
@ -226,10 +226,10 @@ ${doxygen_outdir}/man:
|
|||||||
mkdir -p ${doxygen_outdir}/man
|
mkdir -p ${doxygen_outdir}/man
|
||||||
|
|
||||||
stamp-xml-doxygen: ${doxygen_outdir}/xml
|
stamp-xml-doxygen: ${doxygen_outdir}/xml
|
||||||
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
|
@builddir=`cd ..; ${PWD_COMMAND}`; \
|
||||||
builddir=`cd ..; ${PWD_COMMAND}`; \
|
|
||||||
${SHELL} ${doxygen_script} \
|
${SHELL} ${doxygen_script} \
|
||||||
--host_alias=${host_alias} --mode=xml $${srcdir} $${builddir} NO)
|
--host_alias=${host_alias} --mode=xml \
|
||||||
|
"${top_srcdir}" "$${builddir}" NO || true
|
||||||
$(STAMP) stamp-xml-doxygen
|
$(STAMP) stamp-xml-doxygen
|
||||||
|
|
||||||
stamp-xml-single-doxygen: stamp-xml-doxygen
|
stamp-xml-single-doxygen: stamp-xml-doxygen
|
||||||
@ -239,29 +239,29 @@ stamp-xml-single-doxygen: stamp-xml-doxygen
|
|||||||
$(STAMP) stamp-xml-single-doxygen
|
$(STAMP) stamp-xml-single-doxygen
|
||||||
|
|
||||||
stamp-html-doxygen: ${doxygen_outdir}/html
|
stamp-html-doxygen: ${doxygen_outdir}/html
|
||||||
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
|
@builddir=`cd ..; ${PWD_COMMAND}`; \
|
||||||
builddir=`cd ..; ${PWD_COMMAND}`; \
|
|
||||||
${SHELL} ${doxygen_script} \
|
${SHELL} ${doxygen_script} \
|
||||||
--host_alias=${host_alias} --mode=html $${srcdir} $${builddir} YES)
|
--host_alias=${host_alias} --mode=html \
|
||||||
|
"${top_srcdir}" "$${builddir}" YES || true
|
||||||
$(STAMP) stamp-html-doxygen
|
$(STAMP) stamp-html-doxygen
|
||||||
|
|
||||||
stamp-latex-doxygen: ${doxygen_outdir}/latex
|
stamp-latex-doxygen: ${doxygen_outdir}/latex
|
||||||
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
|
@builddir=`cd ..; ${PWD_COMMAND}`; \
|
||||||
builddir=`cd ..; ${PWD_COMMAND}`; \
|
|
||||||
${SHELL} ${doxygen_script} \
|
${SHELL} ${doxygen_script} \
|
||||||
--host_alias=${host_alias} --mode=latex $${srcdir} $${builddir} NO)
|
--host_alias=${host_alias} --mode=latex --latex_cmd=$(LATEX_CMD) \
|
||||||
|
"${top_srcdir}" "$${builddir}" NO || true
|
||||||
$(STAMP) stamp-latex-doxygen
|
$(STAMP) stamp-latex-doxygen
|
||||||
|
|
||||||
# Chance of loooooonnggg creation time on this rule. Iff this fails,
|
# Chance of loooooonnggg creation time on this rule. Iff this fails,
|
||||||
# look at refman.log and see if TeX's memory is exhausted. Symptoms
|
# look at refman.log and see if TeX's memory is exhausted. Symptoms
|
||||||
# include asking a wizard to enlarge capacity. If this is the case,
|
# include asking a wizard to enlarge capacity. If this is the case,
|
||||||
# find texmf.cnf and add a zero for pool_size, string_vacancies,
|
# find texmf.cnf and add a zero for pool_size, string_vacancies,
|
||||||
# max_strings, and pool_free values. A much simpler workaround is to install
|
# max_strings, and pool_free values. A much simpler workaround is to
|
||||||
# lualatex and set LATEX_CMD_NAME = lualatex in the doxygen user.cfg file.
|
# install lualatex and set LATEX_CMD=lualatex when running make.
|
||||||
# Errors like "File `foo.sty' not found" mean a TeX package is missing.
|
# Errors like "File `foo.sty' not found" mean a TeX package is missing.
|
||||||
stamp-pdf-doxygen: stamp-latex-doxygen ${doxygen_outdir}/pdf
|
stamp-pdf-doxygen: stamp-latex-doxygen ${doxygen_outdir}/pdf
|
||||||
-(cd ${doxygen_outdir}/latex && $(MAKE) -i pdf;)
|
|
||||||
@echo "Generating doxygen pdf file...";
|
@echo "Generating doxygen pdf file...";
|
||||||
|
-$(MAKE) -C ${doxygen_outdir}/latex -i pdf
|
||||||
@if [ -f ${doxygen_pdf} ]; then \
|
@if [ -f ${doxygen_pdf} ]; then \
|
||||||
mv ${doxygen_pdf} ${api_pdf} ; \
|
mv ${doxygen_pdf} ${api_pdf} ; \
|
||||||
echo ":: PDF file is ${api_pdf}"; \
|
echo ":: PDF file is ${api_pdf}"; \
|
||||||
@ -274,10 +274,10 @@ stamp-pdf-doxygen: stamp-latex-doxygen ${doxygen_outdir}/pdf
|
|||||||
$(STAMP) stamp-pdf-doxygen
|
$(STAMP) stamp-pdf-doxygen
|
||||||
|
|
||||||
stamp-man-doxygen: ${doxygen_outdir}/man
|
stamp-man-doxygen: ${doxygen_outdir}/man
|
||||||
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
|
@builddir=`cd ..; ${PWD_COMMAND}`; \
|
||||||
builddir=`cd ..; ${PWD_COMMAND}`; \
|
|
||||||
${SHELL} ${doxygen_script} \
|
${SHELL} ${doxygen_script} \
|
||||||
--host_alias=${host_alias} --mode=man $${srcdir} $${builddir} YES)
|
--host_alias=${host_alias} --mode=man \
|
||||||
|
"${top_srcdir}" "$${builddir}" YES || true
|
||||||
$(STAMP) stamp-man-doxygen
|
$(STAMP) stamp-man-doxygen
|
||||||
|
|
||||||
doc-xml-doxygen: stamp-xml-doxygen
|
doc-xml-doxygen: stamp-xml-doxygen
|
||||||
|
@ -917,10 +917,10 @@ ${doxygen_outdir}/man:
|
|||||||
mkdir -p ${doxygen_outdir}/man
|
mkdir -p ${doxygen_outdir}/man
|
||||||
|
|
||||||
stamp-xml-doxygen: ${doxygen_outdir}/xml
|
stamp-xml-doxygen: ${doxygen_outdir}/xml
|
||||||
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
|
@builddir=`cd ..; ${PWD_COMMAND}`; \
|
||||||
builddir=`cd ..; ${PWD_COMMAND}`; \
|
|
||||||
${SHELL} ${doxygen_script} \
|
${SHELL} ${doxygen_script} \
|
||||||
--host_alias=${host_alias} --mode=xml $${srcdir} $${builddir} NO)
|
--host_alias=${host_alias} --mode=xml \
|
||||||
|
"${top_srcdir}" "$${builddir}" NO || true
|
||||||
$(STAMP) stamp-xml-doxygen
|
$(STAMP) stamp-xml-doxygen
|
||||||
|
|
||||||
stamp-xml-single-doxygen: stamp-xml-doxygen
|
stamp-xml-single-doxygen: stamp-xml-doxygen
|
||||||
@ -930,29 +930,29 @@ stamp-xml-single-doxygen: stamp-xml-doxygen
|
|||||||
$(STAMP) stamp-xml-single-doxygen
|
$(STAMP) stamp-xml-single-doxygen
|
||||||
|
|
||||||
stamp-html-doxygen: ${doxygen_outdir}/html
|
stamp-html-doxygen: ${doxygen_outdir}/html
|
||||||
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
|
@builddir=`cd ..; ${PWD_COMMAND}`; \
|
||||||
builddir=`cd ..; ${PWD_COMMAND}`; \
|
|
||||||
${SHELL} ${doxygen_script} \
|
${SHELL} ${doxygen_script} \
|
||||||
--host_alias=${host_alias} --mode=html $${srcdir} $${builddir} YES)
|
--host_alias=${host_alias} --mode=html \
|
||||||
|
"${top_srcdir}" "$${builddir}" YES || true
|
||||||
$(STAMP) stamp-html-doxygen
|
$(STAMP) stamp-html-doxygen
|
||||||
|
|
||||||
stamp-latex-doxygen: ${doxygen_outdir}/latex
|
stamp-latex-doxygen: ${doxygen_outdir}/latex
|
||||||
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
|
@builddir=`cd ..; ${PWD_COMMAND}`; \
|
||||||
builddir=`cd ..; ${PWD_COMMAND}`; \
|
|
||||||
${SHELL} ${doxygen_script} \
|
${SHELL} ${doxygen_script} \
|
||||||
--host_alias=${host_alias} --mode=latex $${srcdir} $${builddir} NO)
|
--host_alias=${host_alias} --mode=latex --latex_cmd=$(LATEX_CMD) \
|
||||||
|
"${top_srcdir}" "$${builddir}" NO || true
|
||||||
$(STAMP) stamp-latex-doxygen
|
$(STAMP) stamp-latex-doxygen
|
||||||
|
|
||||||
# Chance of loooooonnggg creation time on this rule. Iff this fails,
|
# Chance of loooooonnggg creation time on this rule. Iff this fails,
|
||||||
# look at refman.log and see if TeX's memory is exhausted. Symptoms
|
# look at refman.log and see if TeX's memory is exhausted. Symptoms
|
||||||
# include asking a wizard to enlarge capacity. If this is the case,
|
# include asking a wizard to enlarge capacity. If this is the case,
|
||||||
# find texmf.cnf and add a zero for pool_size, string_vacancies,
|
# find texmf.cnf and add a zero for pool_size, string_vacancies,
|
||||||
# max_strings, and pool_free values. A much simpler workaround is to install
|
# max_strings, and pool_free values. A much simpler workaround is to
|
||||||
# lualatex and set LATEX_CMD_NAME = lualatex in the doxygen user.cfg file.
|
# install lualatex and set LATEX_CMD=lualatex when running make.
|
||||||
# Errors like "File `foo.sty' not found" mean a TeX package is missing.
|
# Errors like "File `foo.sty' not found" mean a TeX package is missing.
|
||||||
stamp-pdf-doxygen: stamp-latex-doxygen ${doxygen_outdir}/pdf
|
stamp-pdf-doxygen: stamp-latex-doxygen ${doxygen_outdir}/pdf
|
||||||
-(cd ${doxygen_outdir}/latex && $(MAKE) -i pdf;)
|
|
||||||
@echo "Generating doxygen pdf file...";
|
@echo "Generating doxygen pdf file...";
|
||||||
|
-$(MAKE) -C ${doxygen_outdir}/latex -i pdf
|
||||||
@if [ -f ${doxygen_pdf} ]; then \
|
@if [ -f ${doxygen_pdf} ]; then \
|
||||||
mv ${doxygen_pdf} ${api_pdf} ; \
|
mv ${doxygen_pdf} ${api_pdf} ; \
|
||||||
echo ":: PDF file is ${api_pdf}"; \
|
echo ":: PDF file is ${api_pdf}"; \
|
||||||
@ -965,10 +965,10 @@ stamp-pdf-doxygen: stamp-latex-doxygen ${doxygen_outdir}/pdf
|
|||||||
$(STAMP) stamp-pdf-doxygen
|
$(STAMP) stamp-pdf-doxygen
|
||||||
|
|
||||||
stamp-man-doxygen: ${doxygen_outdir}/man
|
stamp-man-doxygen: ${doxygen_outdir}/man
|
||||||
-(srcdir=`cd ${top_srcdir}; ${PWD_COMMAND}`; \
|
@builddir=`cd ..; ${PWD_COMMAND}`; \
|
||||||
builddir=`cd ..; ${PWD_COMMAND}`; \
|
|
||||||
${SHELL} ${doxygen_script} \
|
${SHELL} ${doxygen_script} \
|
||||||
--host_alias=${host_alias} --mode=man $${srcdir} $${builddir} YES)
|
--host_alias=${host_alias} --mode=man \
|
||||||
|
"${top_srcdir}" "$${builddir}" YES || true
|
||||||
$(STAMP) stamp-man-doxygen
|
$(STAMP) stamp-man-doxygen
|
||||||
|
|
||||||
doc-xml-doxygen: stamp-xml-doxygen
|
doc-xml-doxygen: stamp-xml-doxygen
|
||||||
|
@ -1945,7 +1945,7 @@ LATEX_OUTPUT = latex
|
|||||||
# the output language.
|
# the output language.
|
||||||
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
# This tag requires that the tag GENERATE_LATEX is set to YES.
|
||||||
|
|
||||||
LATEX_CMD_NAME =
|
LATEX_CMD_NAME = @latex_cmd@
|
||||||
|
|
||||||
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
|
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
|
||||||
# index for LaTeX.
|
# index for LaTeX.
|
||||||
|
@ -35,8 +35,7 @@ find_doxygen() {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
if test -z "$doxygen"; then
|
if test -z "$doxygen"; then
|
||||||
echo run_doxygen error: Could not find Doxygen $DOXYVER in path. 1>&2
|
fail "Could not find Doxygen $DOXYVER in path."
|
||||||
print_usage
|
|
||||||
fi
|
fi
|
||||||
# We need to use other tools from the same package/version.
|
# We need to use other tools from the same package/version.
|
||||||
echo :: Using Doxygen tools from ${dir}.
|
echo :: Using Doxygen tools from ${dir}.
|
||||||
@ -45,8 +44,8 @@ find_doxygen() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
print_usage() {
|
print_usage() {
|
||||||
cat 1>&2 <<EOF
|
cat <<EOF
|
||||||
Usage: run_doxygen --mode=MODE --host_alias=BUILD_ALIAS [<options>]
|
Usage: run_doxygen --mode=MODE --host_alias=HOST_ALIAS [<options>]
|
||||||
<v3-src-dir> <v3-build-dir> <shortnamesp>
|
<v3-src-dir> <v3-build-dir> <shortnamesp>
|
||||||
MODE is one of:
|
MODE is one of:
|
||||||
html Generate user-level HTML library documentation.
|
html Generate user-level HTML library documentation.
|
||||||
@ -54,48 +53,67 @@ Usage: run_doxygen --mode=MODE --host_alias=BUILD_ALIAS [<options>]
|
|||||||
xml Generate user-level XML pages.
|
xml Generate user-level XML pages.
|
||||||
latex Generate user-level LaTeX pages.
|
latex Generate user-level LaTeX pages.
|
||||||
|
|
||||||
BUILD_ALIAS is the GCC build alias set at configure time.
|
HOST_ALIAS is the GCC host alias triplet set at configure time.
|
||||||
|
|
||||||
|
shortnamesp is one of YES or NO and is used as the SHORT_NAMES value
|
||||||
|
in the Doxygen config file.
|
||||||
|
|
||||||
|
Supported options:
|
||||||
|
|
||||||
|
--help | -h Print this message and exit.
|
||||||
|
--latex_cmd=CMD Set LATEX_CMD_NAME=CMD in the Doxygen config file.
|
||||||
|
|
||||||
Note: Requires Doxygen ${DOXYVER} or later; get it at
|
Note: Requires Doxygen ${DOXYVER} or later; get it at
|
||||||
ftp://ftp.stack.nl/pub/users/dimitri/doxygen-${DOXYVER}.src.tar.gz
|
ftp://ftp.stack.nl/pub/users/dimitri/doxygen-${DOXYVER}.src.tar.gz
|
||||||
|
|
||||||
EOF
|
EOF
|
||||||
exit 1
|
}
|
||||||
|
|
||||||
|
# Print an error message followed by usage to stderr, then exit.
|
||||||
|
fail() {
|
||||||
|
echo "$0: error: $*" 1>&2
|
||||||
|
echo 1>&2
|
||||||
|
print_usage 1>&2
|
||||||
|
exit 1
|
||||||
}
|
}
|
||||||
|
|
||||||
parse_options() {
|
parse_options() {
|
||||||
for o
|
while [ $# -ne 0 ]
|
||||||
do
|
do
|
||||||
# Blatantly ripped from autoconf, er, I mean, "gratefully standing
|
# Blatantly ripped from autoconf, er, I mean, "gratefully standing
|
||||||
# on the shoulders of those giants who have gone before us."
|
# on the shoulders of those giants who have gone before us."
|
||||||
case "$o" in
|
case "$1" in
|
||||||
-*=*) arg=`echo "$o" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
|
-*=*) arg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
|
||||||
*) arg= ;;
|
*) arg= ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
case "$o" in
|
case "$1" in
|
||||||
--mode=*)
|
--mode=*)
|
||||||
mode=$arg ;;
|
mode=$arg ;;
|
||||||
--host_alias=*)
|
--host_alias=*)
|
||||||
host_alias=$arg ;;
|
host_alias=$arg ;;
|
||||||
--mode | --host_alias | --help | -h)
|
--help | -h)
|
||||||
print_usage ;;
|
print_usage ; exit ;;
|
||||||
|
--mode | --host_alias)
|
||||||
|
fail "missing argument: $1" ;;
|
||||||
|
--latex_cmd=*)
|
||||||
|
latex_cmd=$arg ;;
|
||||||
|
--*)
|
||||||
|
fail "invalid option: $1" ;;
|
||||||
*)
|
*)
|
||||||
# this turned out to be a mess, maybe change to --srcdir=, etc
|
break ;;
|
||||||
if test $srcdir = unset; then
|
esac
|
||||||
srcdir=$o
|
shift
|
||||||
elif test $outdir = unset; then
|
|
||||||
builddir=${o}
|
|
||||||
outdir=${o}/doc/doxygen
|
|
||||||
elif test $shortname = unset; then
|
|
||||||
shortname=$o
|
|
||||||
else
|
|
||||||
echo run_doxygen error: Too many arguments 1>&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [ $# -ne 3 ]
|
||||||
|
then
|
||||||
|
fail "wrong number of arguments"
|
||||||
|
fi
|
||||||
|
srcdir="$1"
|
||||||
|
builddir="$2"
|
||||||
|
outdir="$2/doc/doxygen"
|
||||||
|
shortname="$3"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -109,6 +127,7 @@ do_html=false
|
|||||||
do_man=false
|
do_man=false
|
||||||
do_xml=false
|
do_xml=false
|
||||||
do_latex=false
|
do_latex=false
|
||||||
|
latex_cmd=
|
||||||
enabled_sections=
|
enabled_sections=
|
||||||
generate_tagfile=
|
generate_tagfile=
|
||||||
DATEtext=`date '+%Y-%m-%d'`
|
DATEtext=`date '+%Y-%m-%d'`
|
||||||
@ -121,8 +140,7 @@ find_doxygen
|
|||||||
|
|
||||||
if test $srcdir = unset || test $outdir = unset || test $mode = unset || test $shortname = unset || test $host_alias = unset; then
|
if test $srcdir = unset || test $outdir = unset || test $mode = unset || test $shortname = unset || test $host_alias = unset; then
|
||||||
# this could be better
|
# this could be better
|
||||||
echo run_doxygen error: You have not given enough information...! 1>&2
|
fail "You have not given enough information...! $srcdir - "
|
||||||
print_usage
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case x"$mode" in
|
case x"$mode" in
|
||||||
@ -173,6 +191,7 @@ chmod u+w $outdir
|
|||||||
-e "s=@enabled_sections@=${enabled_sections}=" \
|
-e "s=@enabled_sections@=${enabled_sections}=" \
|
||||||
-e "s=@do_html@=${do_html}=" \
|
-e "s=@do_html@=${do_html}=" \
|
||||||
-e "s=@do_latex@=${do_latex}=" \
|
-e "s=@do_latex@=${do_latex}=" \
|
||||||
|
-e "s=@latex_cmd@=${latex_cmd}=" \
|
||||||
-e "s=@do_man@=${do_man}=" \
|
-e "s=@do_man@=${do_man}=" \
|
||||||
-e "s=@do_xml@=${do_xml}=" \
|
-e "s=@do_xml@=${do_xml}=" \
|
||||||
-e "s=@generate_tagfile@=${generate_tagfile}=" \
|
-e "s=@generate_tagfile@=${generate_tagfile}=" \
|
||||||
|
Loading…
Reference in New Issue
Block a user