1 1.1 mrg #!/bin/bash 2 1.1 mrg # Generate the libstdc++ onlinedocs for a GCC release 3 1.1 mrg # i.e. http://gcc.gnu.org/onlinedocs/gcc-x.y.z/libstdc++* 4 1.1 mrg 5 1.1 mrg SRCDIR=${1} 6 1.4 mrg DOCSDIR=${2} 7 1.1 mrg 8 1.1 mrg if ! [ $# -eq 2 -a -x "${SRCDIR}/configure" -a -d "${DOCSDIR}" ] 9 1.1 mrg then 10 1.4 mrg if ! [ $# -eq 2 ] 11 1.4 mrg then 12 1.4 mrg echo "$0: Wrong number of arguments" >&2 13 1.4 mrg elif ! [ -x "${SRCDIR}/configure" ] 14 1.4 mrg then 15 1.4 mrg echo "$0: No executable configure script found in $SRCDIR" >&2 16 1.4 mrg elif ! [ -d "${DOCSDIR}" ] 17 1.4 mrg then 18 1.4 mrg echo "$0: Output directory does not exist: $DOCSDIR" >&2 19 1.4 mrg fi 20 1.1 mrg echo "Usage: $0 <gcc src dir> <doc output dir>" >&2 21 1.1 mrg exit 1 22 1.1 mrg fi 23 1.1 mrg 24 1.1 mrg set -e 25 1.1 mrg 26 1.4 mrg DOCSDIR=$(realpath ${DOCSDIR}) 27 1.4 mrg 28 1.1 mrg # Check we have some of the required tools 29 1.1 mrg for i in doxygen dot dblatex pdflatex makeindex 30 1.1 mrg do 31 1.1 mrg echo -n "Checking for $i... " 32 1.1 mrg which $i 33 1.1 mrg done 34 1.1 mrg 35 1.1 mrg start=$PWD 36 1.1 mrg WORKDIR=`mktemp -d $PWD/build.XXXXXX` 37 1.1 mrg DESTDIR=`mktemp -d $PWD/dest.XXXXXX` 38 1.1 mrg cd $WORKDIR 39 1.1 mrg disabled_libs= 40 1.1 mrg for dir in ${SRCDIR}/lib* 41 1.1 mrg do 42 1.1 mrg dir="${dir##*/}" 43 1.1 mrg [ $dir == 'libstdc++-v3' ] || disabled_libs="$disabled_libs --disable-$dir" 44 1.1 mrg done 45 1.1 mrg set -x 46 1.5 mrg ${SRCDIR}/configure --enable-languages=c,c++ --disable-gcc --disable-multilib $disabled_libs --docdir=/docs 47 1.1 mrg eval `grep '^target=' config.log` 48 1.1 mrg make configure-target 49 1.3 mrg # If the following step fails with an error like 50 1.3 mrg # ! LaTeX Error: File `xtab.sty' not found. 51 1.3 mrg # then you need to install the relevant TeX package e.g. texlive-xtab 52 1.1 mrg make -C $target/libstdc++-v3 doc-install-html doc-install-xml doc-install-pdf DESTDIR=$DESTDIR 53 1.1 mrg cd $DESTDIR/docs 54 1.1 mrg mkdir libstdc++ 55 1.1 mrg for which in api manual 56 1.1 mrg do 57 1.1 mrg if [ -f libstdc++-$which-single.xml ] # Only needed for GCC 4.7.x 58 1.1 mrg then 59 1.1 mrg mv libstdc++-$which-single.xml libstdc++-$which.xml 60 1.1 mrg fi 61 1.1 mrg gzip --best libstdc++-$which.xml 62 1.1 mrg gzip --best libstdc++-$which.pdf 63 1.1 mrg mv libstdc++-$which{.html,-html} 64 1.1 mrg tar czf libstdc++-$which-html.tar.gz libstdc++-$which-html 65 1.1 mrg mv libstdc++-$which-html libstdc++/$which 66 1.1 mrg done 67 1.1 mrg mv *.gz libstdc++ $DOCSDIR/ 68 1.1 mrg cd $start 69 1.1 mrg rm -r $WORKDIR 70 1.1 mrg rm -r $DESTDIR 71 1.1 mrg 72