xref: /netbsd-src/external/gpl3/gcc.old/dist/maintainer-scripts/generate_libstdcxx_web_docs (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
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