mariadb/netware/BUILD/nwbootstrap
unknown d497966a18 Several Netware specific fixes.
configure.in:
  To configure InnoDB for cross compilation.
include/config-netware.h:
  NetWare specific change to fix the compilation errors caused by event.h
  NetWare specific change required for WINE PATH and for new versions LibC(Jun 05)
  and zlib(1.2.3)
netware/BUILD/compile-AUTOTOOLS:
  Netware specific change reflecting the change in source code
  directory structure.
netware/BUILD/compile-linux-tools:
  Netware specific change to fix the location where gen_lex_hash
  gets created. Fixed also directory structure reflecting changes.
netware/BUILD/compile-netware-END:
  Netware specific change for creating mysqld_error.h
netware/BUILD/mwenv:
  Netware specific change required for WINE PATH and for
  new versions LibC(Jun 05) and zlib(1.2.3).
netware/BUILD/nwbootstrap:
  NetWare Specific change to produce absoulte path for XDC file.
netware/Makefile.am:
  Netware specific changes to fix to match new
  directory structure.
netware/my_manage.h:
  Netware specific change required for WINE PATH and for new versions
  LibC(Jun 05) and zlib(1.2.3).
netware/mysql_test_run.c:
  Netware specific change, added --autoclose option for mysql_test_run.nlm.
scripts/make_binary_distribution.sh:
  Fix to reflect change in directory structure.
sql/mysqld.cc:
  Stacksize change for Netware.
  Netware specific change to fix the compilation errors caused by event.h
sql/set_var.cc:
  Minor indending related fix.
sql/sql_class.cc:
  Added #ifdef HAVE_EXPLICIT_TEMPLATE_INSTANTIATION macro.
storage/innobase/os/os0thread.c:
  Netware specific change to increase the thread stack size.
storage/myisam/mi_locking.c:
  Enclosed MMAP related code under HAVE_MMAP preprocessor directive.
2006-02-02 16:22:31 +02:00

195 lines
5 KiB
Bash
Executable file

#! /bin/sh
# debug
#set -x
# stop on errors
set -e
path=`dirname $0`
# repository direcotry
repo_dir=`pwd`
# build directory
build_dir="$HOME/mydev"
wine_build_dir="F:/mydev"
# doc directory
doc_dir="$repo_dir/../mysqldoc"
# init
target_dir=""
temp_dir=""
revision=""
rev=""
build=""
suffix=""
mwenv=""
# show usage
show_usage()
{
cat << EOF
usage: nwbootstrap [options]
Exports a revision of the BitKeeper tree (nwbootstrap must be run inside a
directory of the BitKeeper tree to be used). Creates the ChangeLog file.
Adds the latest manual.texi from the mysqldoc BitKeeper tree. Builds the
Linux tools required for cross-platform builds. Optionally, builds the
binary distributions for NetWare.
options:
--build=<opt> Build the binary distributions for NetWare,
where <opt> is "standard", "debug", or "all"
(default is to not build a binary distribution)
--build-dir=<dir> Export the BitKeeper tree to the <dir> directroy
(default is "$build_dir")
--doc-dir=<dir> Use the mysqldoc BitKeeper tree located in the
<dir> directory
(default is parallel to current BitKeeper tree)
--help Show this help information
--revision=<rev> Export the BitKeeper tree as of revision <rev>
(default is the latest revision)
--wine-build-dir=<dir> Use the WINE directory <dir>, which should
correspond to the --build-dir directory
(default is "$wine_build_dir")
examples:
nwbootstrap
nwbootstrap --revision=1.1594 --build=all
nwbootstrap --build-dir=/home/jdoe/dev --wine-build-dir=F:/dev
EOF
exit 0;
}
# parse arguments
for arg do
case "$arg" in
--build-dir=*) build_dir=`echo "$arg" | sed -e "s;--build-dir=;;"` ;;
--wine-build-dir=*) wine_build_dir=`echo "$arg" | sed -e "s;--wine-build-dir=;;"` ;;
--revision=*) revision=`echo "$arg" | sed -e "s;--revision=;;"` ;;
--build=*) build=`echo "$arg" | sed -e "s;--build=;;"` ;;
--suffix=*) suffix=`echo "$arg" | sed -e "s;--suffix=;;"` ;;
--doc-dir=*) doc_dir=`echo "$arg" | sed -e "s;--doc-dir=;;"` ;;
*) show_usage ;;
esac
done
echo "starting build..."
# check for bk and repo_dir
bk help > /dev/null
repo_dir=`bk root $repo_dir`
cd $repo_dir
doc_dir="$repo_dir/../mysqldoc"
# build temporary directory
temp_dir="$build_dir/mysql-$$.tmp"
# export the bk tree
command="bk export";
if test $revision; then command="$command -r$revision"; fi
command="$command $temp_dir"
echo "exporting $repo_dir..."
$command
# determine version
version=`grep -e "AM_INIT_AUTOMAKE(mysql, .*)" < $temp_dir/configure.in | sed -e "s/AM_INIT_AUTOMAKE(mysql, \(.*\))/\1/"`
echo "version: $version"
# build target directory
target_dir="$build_dir/mysql-$version"
# add suffix
if test $suffix
then
target_dir="$target_dir-$suffix"
fi
# delete any old target
if test -d $target_dir.old; then rm -rf $target_dir.old; fi
# rename old target
if test -d $target_dir; then mv -f $target_dir $target_dir.old; fi
# rename directory to use version
mv $temp_dir $target_dir
# create ChangeLog
if test $revision
then
rev=`bk changes -r..$revision -t -d':REV:' -n | head -2 | tail -1`
else
rev=`bk changes -t -d':REV:' -n | head -1`
fi
echo "creating ChangeLog..."
bk changes -v -r$rev..$revision > $target_dir/ChangeLog
# add the latest manual
if test -d $doc_dir
then
echo "adding the latest manual..."
install -m 644 $doc_dir/Docs/{manual,reservedwords}.texi $target_dir/Docs/
fi
# make files writeable
echo "making files writable..."
cd $target_dir
chmod -R u+rw,g+rw .
# edit the mvenv file
echo "updating the mwenv environment file..."
mwenv="./netware/BUILD/mwenv"
mv -f $mwenv $mwenv.org
sed -e "s;WINE_BUILD_DIR;$wine_build_dir;g" \
-e "s;BUILD_DIR;$build_dir;g" \
-e "s;VERSION;$version;g" $mwenv.org > $mwenv
chmod +rwx $mwenv
PWD=`pwd`
SRC_DIR=`grep "^export MYDEV=" $mwenv | cut -d'=' -f2 | \
sed -e 's;";;g' -e "s;^;echo ;g" -e "s;$;/\`basename $PWD\`;g" | /bin/sh`
# edit the def file versions
echo "updating *.def file versions..."
nlm_version=`echo "$version" | sed -e "s;\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*;\1, \2, \3;"`
for file in ./netware/*.def
do
mv -f $file $file.org
sed -e "s;VERSION.*;VERSION $nlm_version;g" \
-e "s;XDCDATA.*;XDCDATA $SRC_DIR/netware/mysql.xdc;g" $file.org > $file
rm $file.org
done
# create the libmysql.imp file in netware folder from libmysql/libmysql.def
# file
echo "generating libmysql.imp file..."
awk 'BEGIN{x=0;} END{printf("\n");} x==1 {printf(" %s",$1); x++; next} x>1 {printf(",\n %s", $1);next} /EXPORTS/{x=1}' libmysql/libmysql.def > netware/libmysql.imp
# build linux tools
echo "compiling linux tools..."
./netware/BUILD/compile-linux-tools
# compile
if test $build
then
echo "compiling $build..."
./netware/BUILD/compile-netware-$build
fi
echo "done"