87 lines
1.7 KiB
Bash
Executable File
87 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -e
|
|
|
|
usage() {
|
|
echo "Usage: run_docs.sh [--nonfatal]"
|
|
echo "Generate the manual for gd!"
|
|
if [ $# -ne 0 ] ; then
|
|
printf 'ERROR: %b\n' "$*"
|
|
exit 1
|
|
else
|
|
exit 0
|
|
fi
|
|
}
|
|
|
|
nd() {
|
|
# Figure out the name of this tool.
|
|
if command -v naturaldocs ; then
|
|
return
|
|
elif command -v NaturalDocs ; then
|
|
return
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
cd "$(dirname "$0")"
|
|
|
|
if [ $# -eq 1 ] ; then
|
|
case $1 in
|
|
--nonfatal)
|
|
if ! nd >/dev/null ; then
|
|
echo "skipping doc generation -- please install naturaldoc!"
|
|
exit 0
|
|
fi
|
|
;;
|
|
-h|--help)
|
|
usage
|
|
;;
|
|
*)
|
|
usage "unknown option: $1"
|
|
;;
|
|
esac
|
|
elif [ $# -ne 0 ] ; then
|
|
usage "unknown options: $*"
|
|
fi
|
|
|
|
# Dump the tool version info for debugging.
|
|
echo "Found '$(nd)': $($(nd) -h | head -n1)"
|
|
|
|
# Library version number.
|
|
VERSION=$(cd ../../; config/getver.sh)
|
|
|
|
# Clear away old docs and ensure the doc dir. is present.
|
|
rm -rf html
|
|
mkdir html
|
|
|
|
# Create a lightly-processed copy of the source to use as input. This
|
|
# file skips all non-C code in src/ and removes the BGD_DECLARE()
|
|
# macro from definitions so they don't show up in the docs.
|
|
rm -rf tmp
|
|
mkdir tmp
|
|
perl nobgd.pl ../../src/ tmp/
|
|
|
|
# Add the external docs.
|
|
echo "Title: License" | cat - ../../COPYING > tmp/license.txt
|
|
sed -e "s/@VERSION@/$VERSION/g" preamble.txt > tmp/preamble.txt
|
|
# ^^^ hack to get the version number in the docs.
|
|
|
|
# Run naturaldocs to create the manual.
|
|
$(nd) --rebuild --rebuild-output --documented-only \
|
|
-i tmp/ \
|
|
-img images/ \
|
|
-o html html \
|
|
--project project/ \
|
|
-s Default libgd
|
|
|
|
# Strip whitespace.
|
|
sed -i.tmp -E \
|
|
-e 's:[[:space:]]+$::' \
|
|
-e '${/^[[:space:]]*$/d}' \
|
|
project/*.txt
|
|
rm project/*.txt.tmp
|
|
|
|
# And cleanup the temp files.
|
|
rm -rf Data tmp
|