11debfc3dSmrg#!/bin/bash 21debfc3dSmrg# Generate the libstdc++ onlinedocs for a GCC release 31debfc3dSmrg# i.e. http://gcc.gnu.org/onlinedocs/gcc-x.y.z/libstdc++* 41debfc3dSmrg 51debfc3dSmrgSRCDIR=${1} 6c0a68be4SmrgDOCSDIR=${2} 71debfc3dSmrg 81debfc3dSmrgif ! [ $# -eq 2 -a -x "${SRCDIR}/configure" -a -d "${DOCSDIR}" ] 91debfc3dSmrgthen 10c0a68be4Smrg if ! [ $# -eq 2 ] 11c0a68be4Smrg then 12c0a68be4Smrg echo "$0: Wrong number of arguments" >&2 13c0a68be4Smrg elif ! [ -x "${SRCDIR}/configure" ] 14c0a68be4Smrg then 15c0a68be4Smrg echo "$0: No executable configure script found in $SRCDIR" >&2 16c0a68be4Smrg elif ! [ -d "${DOCSDIR}" ] 17c0a68be4Smrg then 18c0a68be4Smrg echo "$0: Output directory does not exist: $DOCSDIR" >&2 19c0a68be4Smrg fi 201debfc3dSmrg echo "Usage: $0 <gcc src dir> <doc output dir>" >&2 211debfc3dSmrg exit 1 221debfc3dSmrgfi 231debfc3dSmrg 241debfc3dSmrgset -e 251debfc3dSmrg 26c0a68be4SmrgDOCSDIR=$(realpath ${DOCSDIR}) 27c0a68be4Smrg 281debfc3dSmrg# Check we have some of the required tools 291debfc3dSmrgfor i in doxygen dot dblatex pdflatex makeindex 301debfc3dSmrgdo 311debfc3dSmrg echo -n "Checking for $i... " 321debfc3dSmrg which $i 331debfc3dSmrgdone 341debfc3dSmrg 351debfc3dSmrgstart=$PWD 361debfc3dSmrgWORKDIR=`mktemp -d $PWD/build.XXXXXX` 371debfc3dSmrgDESTDIR=`mktemp -d $PWD/dest.XXXXXX` 381debfc3dSmrgcd $WORKDIR 391debfc3dSmrgdisabled_libs= 401debfc3dSmrgfor dir in ${SRCDIR}/lib* 411debfc3dSmrgdo 421debfc3dSmrg dir="${dir##*/}" 431debfc3dSmrg [ $dir == 'libstdc++-v3' ] || disabled_libs="$disabled_libs --disable-$dir" 441debfc3dSmrgdone 451debfc3dSmrgset -x 46*8feb0f0bSmrg${SRCDIR}/configure --enable-languages=c,c++ --disable-gcc --disable-multilib $disabled_libs --docdir=/docs 471debfc3dSmrgeval `grep '^target=' config.log` 481debfc3dSmrgmake configure-target 491debfc3dSmrg# If the following step fails with an error like 501debfc3dSmrg# ! LaTeX Error: File `xtab.sty' not found. 511debfc3dSmrg# then you need to install the relevant TeX package e.g. texlive-xtab 521debfc3dSmrgmake -C $target/libstdc++-v3 doc-install-html doc-install-xml doc-install-pdf DESTDIR=$DESTDIR 531debfc3dSmrgcd $DESTDIR/docs 541debfc3dSmrgmkdir libstdc++ 551debfc3dSmrgfor which in api manual 561debfc3dSmrgdo 571debfc3dSmrg if [ -f libstdc++-$which-single.xml ] # Only needed for GCC 4.7.x 581debfc3dSmrg then 591debfc3dSmrg mv libstdc++-$which-single.xml libstdc++-$which.xml 601debfc3dSmrg fi 611debfc3dSmrg gzip --best libstdc++-$which.xml 621debfc3dSmrg gzip --best libstdc++-$which.pdf 631debfc3dSmrg mv libstdc++-$which{.html,-html} 641debfc3dSmrg tar czf libstdc++-$which-html.tar.gz libstdc++-$which-html 651debfc3dSmrg mv libstdc++-$which-html libstdc++/$which 661debfc3dSmrgdone 671debfc3dSmrgmv *.gz libstdc++ $DOCSDIR/ 681debfc3dSmrgcd $start 691debfc3dSmrgrm -r $WORKDIR 701debfc3dSmrgrm -r $DESTDIR 711debfc3dSmrg 72