209 lines
5.9 KiB
Bash
209 lines
5.9 KiB
Bash
#!/bin/sh
|
|
#
|
|
# Script to build the web-version of the Berkeley DB documentation.
|
|
#
|
|
# $Id: build,v 1.107 2008/02/07 17:12:18 mark Exp $
|
|
|
|
# The build script must be run from the document source directory.
|
|
MSG="build: build script must be run from the document source directory."
|
|
egrep "^MSG=\"$MSG\"" build > /dev/null 2>&1 || {
|
|
echo "$MSG"
|
|
exit 1
|
|
}
|
|
|
|
# Save the absolute path of the Berkeley DB document source directory.
|
|
DOCS_SRC=`pwd`
|
|
export DOCS_SRC
|
|
|
|
# Save the absolute path of the Berkeley DB source directory.
|
|
BDB_SRC=`dirname $DOCS_SRC`
|
|
export BDB_SRC
|
|
|
|
# Save the absolute path of the target Berkeley DB documents directory.
|
|
TARGET=$BDB_SRC/docs
|
|
export TARGET
|
|
|
|
# splash:
|
|
# splash page.
|
|
splash()
|
|
{
|
|
rm -f $TARGET/index.html
|
|
sed -e "s/DB_RELEASE_DATE/$DB_RELEASE_DATE/" \
|
|
-e "s/DB_VERSION_MAJOR/$DB_VERSION_MAJOR/" \
|
|
-e "s/DB_VERSION_MINOR/$DB_VERSION_MINOR/" \
|
|
-e "s/DB_VERSION_PATCH/$DB_VERSION_PATCH/" \
|
|
< index_db.html > $TARGET/index.html
|
|
}
|
|
|
|
# api_index:
|
|
# Build a sorted list of all methods.
|
|
api_index()
|
|
{
|
|
t=/tmp/__build.$$
|
|
cat <<END_OF_HEADER > $t
|
|
m4_comment([DO NOT EDIT: automatically built by build script.])
|
|
m4_page_title([m4_db: ifelse(M4API, C_API, C, C++) Handle Methods (version M4MAJOR.M4MINOR.M4PATCH)])
|
|
m4_table_begin(, _center)
|
|
m4_table_header(ifelse(M4API, C_API, C, C++) Handle Methods, Description)
|
|
END_OF_HEADER
|
|
|
|
d="db dbc env lock log memp mutex rep seq txn"
|
|
for i in $d; do
|
|
egrep m4_table_element $i/m4.methods
|
|
done | sort -u >> $t
|
|
cat <<END_OF_FOOTER >> $t
|
|
m4_table_end
|
|
m4_page_footer
|
|
END_OF_FOOTER
|
|
f=env/api_core.so
|
|
cmp $t $f > /dev/null 2>&1 || (echo "Building $f" && cp $t $f)
|
|
}
|
|
|
|
# reftoc:
|
|
# Berkeley DB Reference Guide table of contents.
|
|
reftoc()
|
|
{
|
|
rm -f $TARGET/ref/toc.html
|
|
sed -e "s/__EDIT_PRODUCT/Berkeley DB/" \
|
|
-e "s/__EDIT_VERSION_MAJOR/$DB_VERSION_MAJOR/" \
|
|
-e "s/__EDIT_VERSION_MINOR/$DB_VERSION_MINOR/" \
|
|
-e "s/__EDIT_VERSION_PATCH/$DB_VERSION_PATCH/" \
|
|
-e "s/__EDIT_RELEASE_DATE/$DB_RELEASE_DATE/" \
|
|
< ref/toc.html > $TARGET/ref/toc.html
|
|
}
|
|
|
|
# build:
|
|
# Build the Berkeley DB documents.
|
|
#
|
|
# $1: Directory to build.
|
|
# $2: API
|
|
# $3: Depth in tree
|
|
# $4: Source Directory
|
|
build()
|
|
{
|
|
f=$TARGET/$1
|
|
[ -d $f ] || mkdir -p $f
|
|
|
|
# Copy documents.
|
|
# Check for COPY in the Makefile first, some make programs have their
|
|
# own values for the "COPY" variable if it's not already set.
|
|
if egrep COPY $4/Makefile > /dev/null 2>&1; then
|
|
(cat $4/Makefile &&
|
|
echo &&
|
|
cat $DOCS_SRC/support/copy) > $f/Makefile
|
|
(cd $f && make BUILDDIR=$1 copy || exit 1)
|
|
fi
|
|
|
|
# Build documents.
|
|
(cat $DOCS_SRC/support/suffix &&
|
|
echo &&
|
|
echo "VPATH=\$(DOCS_SRC)/$4" &&
|
|
echo &&
|
|
cat $4/Makefile &&
|
|
case $2 in
|
|
C_API)
|
|
echo 'all: $(COMMON) $(C)';;
|
|
CXX_API)
|
|
echo 'all: $(COMMON) $(CXX)';;
|
|
NOAPI|UTILITY)
|
|
echo 'all: $(BUILD)';;
|
|
esac) > $f/Makefile
|
|
(cd $f &&
|
|
make ABSDIR=`pwd` \
|
|
API=$2 \
|
|
BUILDDIR=$1 \
|
|
RELDIR=$3 || exit 1)
|
|
|
|
rm -f $f/Makefile
|
|
}
|
|
|
|
# run
|
|
# Run any single command.
|
|
run()
|
|
{
|
|
case "$1" in
|
|
c)
|
|
for i in $APILIST; do
|
|
build api_c C_API .. $i
|
|
done;;
|
|
check)
|
|
shift
|
|
sh $DOCS_SRC/support/check $TARGET $*;;
|
|
clean)
|
|
(cd $TARGET && rm -rf api_c api_cxx \
|
|
api_tcl images index.html java license ref utility);;
|
|
cxx)
|
|
for i in $APILIST; do
|
|
build api_cxx CXX_API .. $i
|
|
done;;
|
|
index)
|
|
sh $DOCS_SRC/support/Xindex;;
|
|
javadoc)
|
|
javadoc $JAVADOC_ARGS -protected -d $TARGET/java \
|
|
-use -link http://java.sun.com/j2se/1.5.0/docs/api/ \
|
|
-link http://java.sun.com/javaee/5/docs/api/ \
|
|
-sourcepath $BDB_SRC/java/src \
|
|
-source 1.5 -stylesheetfile support/style.css \
|
|
-header '<b>Berkeley DB</b><br><font size="-1"> version '$DB_VERSION_MAJOR.$DB_VERSION_MINOR.$DB_VERSION_PATCH'</font>' \
|
|
-windowtitle 'Oracle - Berkeley DB Java API' -bottom '<font size=1>Copyright (c) 1996,2008 Oracle. All rights reserved.</font>' \
|
|
com.sleepycat.db com.sleepycat.bind com.sleepycat.bind.serial com.sleepycat.bind.tuple com.sleepycat.collections com.sleepycat.persist com.sleepycat.persist.model com.sleepycat.persist.evolve com.sleepycat.persist.raw com.sleepycat.util \
|
|
-group 'Berkeley DB Core Package' com.sleepycat.db \
|
|
-group 'Berkeley DB Direct Persistence Layer (DPL) Packages' com.sleepycat.persist:com.sleepycat.persist.model:com.sleepycat.persist.evolve:com.sleepycat.persist.raw \
|
|
-group 'Berkeley DB Bind and Collections Packages' com.sleepycat.bind:com.sleepycat.bind.serial:com.sleepycat.bind.tuple:com.sleepycat.collections:com.sleepycat.util | \
|
|
egrep -v 'Generating|first sentence';;
|
|
ref)
|
|
[ -d $TARGET/ref ] || mkdir $TARGET/ref
|
|
reftoc
|
|
for i in $REFLIST; do
|
|
build ref/$i C_API ../.. ref/$i
|
|
done;;
|
|
tcl)
|
|
build api_tcl TCL_API .. tcl;;
|
|
util*)
|
|
build utility UTILITY .. utility;;
|
|
*)
|
|
echo "build: unknown command $1"
|
|
exit 1;;
|
|
esac
|
|
}
|
|
|
|
# Source the RELEASE file to get major/minor numbers.
|
|
. $BDB_SRC/dist/RELEASE
|
|
|
|
PRODUCT="CORE"
|
|
export DB_RELEASE_DATE
|
|
export DB_VERSION_MAJOR
|
|
export DB_VERSION_MINOR
|
|
export DB_VERSION_PATCH
|
|
version="$DB_VERSION_MAJOR.$DB_VERSION_MINOR.$DB_VERSION_PATCH"
|
|
|
|
APILIST="api db db_except dbc dbt env exc historic lock log memp mutex
|
|
rep rtc seq txn"
|
|
REFLIST="am am_conf am_misc apprec arch build_brew build_s60 build_unix
|
|
build_vxworks build_win build_wince cam changelog debug distrib dumpload
|
|
env ext install intro java lock log mp program refs rep rpc sequence tcl
|
|
test transapp txn upgrade upgrade.2.0 upgrade.3.0 upgrade.3.1
|
|
upgrade.3.2 upgrade.3.3 upgrade.4.0 upgrade.4.1 upgrade.4.2 upgrade.4.3
|
|
upgrade.4.4 upgrade.4.5 upgrade.4.6 upgrade.4.7 xa"
|
|
|
|
if [ $# = 0 ]; then
|
|
echo "Building Berkeley DB documentation ..."
|
|
|
|
[ -d $TARGET ] || mkdir $TARGET
|
|
|
|
splash
|
|
api_index
|
|
|
|
build images NOAPI .. images
|
|
build license NOAPI .. license
|
|
run c
|
|
run cxx
|
|
run ref
|
|
run tcl
|
|
run utility
|
|
run index
|
|
run javadoc
|
|
else
|
|
run $*
|
|
fi
|