Commit e6fbb896 authored by unknown's avatar unknown

make_win_bin_dist:

  Aligned script with updated 5.0 version


scripts/make_win_bin_dist:
  Aligned script with updated 5.0 version
parent 7debdee8
#! /bin/sh
NOINST_NAME=$1
mkdir $NOINST_NAME
mkdir $NOINST_NAME/bin
cp client/release/*.exe $NOINST_NAME/bin/
cp extra/release/*.exe $NOINST_NAME/bin/
mv $NOINST_NAME/bin/comp_err.exe $NOINST_NAME/bin/comp-err.exe
cp storage/myisam/release/*.exe $NOINST_NAME/bin/
cp server-tools/instance-manager/release/*.exe $NOINST_NAME/bin/
cp tests/release/*.exe $NOINST_NAME/bin/
cp libmysql/release/*.exe $NOINST_NAME/bin/
cp libmysql/release/libmysql.dll $NOINST_NAME/bin/
cp sql/release/mysqld.exe $NOINST_NAME/bin/mysqld.exe
cp sql/debug/mysqld.exe $NOINST_NAME/bin/mysqld-debug.exe
# For Pro/Classic builds, do this instead:
# cp sql/release/mysqld.exe $NOINST_NAME/bin/mysqld-nt.exe
# cp sql/debug/mysqld.exe $NOINST_NAME/bin/mysqld-debug.exe
cp COPYING EXCEPTIONS-CLIENT $NOINST_NAME/
cp -dpR win/data $NOINST_NAME/data
mkdir $NOINST_NAME/Docs
cp Docs/INSTALL-BINARY Docs/manual.chm ChangeLog COPYING $NOINST_NAME/Docs/
# These will be filled in when we enable embedded.
mkdir -p $NOINST_NAME/Embedded/DLL/debug $NOINST_NAME/Embedded/DLL/release $NOINST_NAME/Embedded/static/release
mkdir -p $NOINST_NAME/examples/libmysqltest/debug $NOINST_NAME/examples/libmysqltest/release
cp libmysql/mytest.c libmysql/myTest.vcproj libmysql/release/myTest.exe $NOINST_NAME/examples/libmysqltest/
cp libmysql/debug/myTest.exe $NOINST_NAME/examples/libmysqltest/debug/
cp libmysql/release/myTest.exe $NOINST_NAME/examples/libmysqltest/release/
mkdir -p $NOINST_NAME/examples/tests
cp tests/*.res tests/*.tst tests/*.pl tests/*.c $NOINST_NAME/examples/tests/
mkdir -p $NOINST_NAME/include
#!/bin/sh
# Exit if failing to copy, we want exact specifications, not
# just "what happen to be built".
set -e
# ----------------------------------------------------------------------
# Read first argument that is the base name of the resulting TAR file.
# See usage() function below for a description on the arguments.
#
# NOTE: We will read the rest of the command line later on.
# NOTE: Pattern matching with "{..,..}" can't be used, not portable.
# ----------------------------------------------------------------------
# FIXME FIXME "debug", own build or handled here?
# FIXME FIXME add way to copy from other builds executables
usage()
{
echo <<EOF
Usage: make_win_bin_dist [ options ] package-base-name [ copy-defs... ]
This is a script to run from the top of a source tree built on Windows.
The "package-base-name" argument should be something like
mysql-noinstall-5.0.25-win32 (or winx64)
and will be the name of the directory of the unpacked ZIP (stripping
away the "noinstall" part of the ZIP file name if any) and the base
for the resulting package name.
Options are
--embedded Pack the embedded server and give error if not built.
The default is to pack it if it is built.
--no-embedded Don't pack the embedded server even if built
--debug Pack the debug binaries and give error if not built.
--no-debug Don't pack the debug binaries even if built
--only-debug The target for this build was "Debug", and we just
want to replace the normal binaries with debug
versions, i.e. no separate "debug" directories.
--exe-suffix=SUF Add a suffix to the "mysqld" binary.
As you might want to include files of directories from other builds
(like a "mysqld-max.exe" server), you can instruct this script do copy
them in for you. This is the "copy-def" arguments, and they are of the
form
relative-dest-name=source-name .....
i.e. can be something like
bin/mysqld-max.exe=../my-max-build/sql/release/mysqld.exe
If you specify a directory the whole directory will be copied.
EOF
exit 1
}
# ----------------------------------------------------------------------
# We need to be at the top of a source tree, check that we are
# ----------------------------------------------------------------------
if [ ! -d "sql" ] ; then
echo "You need to run this script from inside the source tree"
usage
fi
# ----------------------------------------------------------------------
# Actual argument processing, first part
# ----------------------------------------------------------------------
NOINST_NAME=""
TARGET="release"
PACK_EMBEDDED="" # Could be "no", "yes" or empty
PACK_DEBUG="" # Could be "no", "yes" or empty
EXE_SUFFIX=""
for arg do
shift
case "$arg" in
--embedded) PACK_EMBEDDED="yes" ;;
--no-embedded) PACK_EMBEDDED="no" ;;
--debug) PACK_DEBUG="yes" ;;
--no-debug) PACK_DEBUG="no" ;;
--only-debug) TARGET="debug" ; PACK_DEBUG="no" ;;
--exe-suffix=*) EXE_SUFFIX=`echo "$arg" | sed -e "s,--exe-suffix=,,"` ;;
-*)
echo "Unknown argument '$arg'"
usage
;;
*)
NOINST_NAME="$arg"
break
esac
done
if [ x"$NOINST_NAME" = x"" ] ; then
echo "No base package name given"
usage
fi
DESTDIR=`echo $NOINST_NAME | sed 's/-noinstall-/-/'`
if [ -e $DESTDIR ] ; then
echo "Please remove the old $DESTDIR before running this script"
usage
fi
# ----------------------------------------------------------------------
# Copy executables, and client DLL (FIXME why?)
# ----------------------------------------------------------------------
trap 'echo "Clearning up and exiting..." ; rm -fr $DESTDIR; exit 1' ERR
mkdir $DESTDIR
mkdir $DESTDIR/bin
cp client/$TARGET/*.exe $DESTDIR/bin/
cp extra/$TARGET/*.exe $DESTDIR/bin/
cp storage/myisam/$TARGET/*.exe $DESTDIR/bin/
cp server-tools/instance-manager/$TARGET/*.exe $DESTDIR/bin/
cp tests/$TARGET/*.exe $DESTDIR/bin/
cp libmysql/$TARGET/*.exe $DESTDIR/bin/
cp libmysql/$TARGET/libmysql.dll $DESTDIR/bin/
# FIXME really needed?!
mv $DESTDIR/bin/comp_err.exe $DESTDIR/bin/comp-err.exe
cp sql/$TARGET/mysqld.exe $DESTDIR/bin/mysqld$EXE_SUFFIX.exe
if [ x"$PACK_DEBUG" = "" -a -f "sql/debug/mysqld.exe" -o \
x"$PACK_DEBUG" = "yes" ] ; then
cp sql/debug/mysqld.exe $DESTDIR/bin/mysqld-debug.exe
cp sql/debug/mysqld.pdb $DESTDIR/bin/mysqld-debug.pdb
cp sql/debug/mysqld.map $DESTDIR/bin/mysqld-debug.map
fi
# ----------------------------------------------------------------------
# Copy data directory, readme files etc
# ----------------------------------------------------------------------
# FIXME is there ever a data directory to copy?
if [ -d win/data ] ; then
cp -pR win/data $DESTDIR/data
fi
# FIXME maybe a flag to define "release build", or do the
# check from the calling script that all these are there,
# and with the correct content.
mkdir $DESTDIR/Docs
cp Docs/INSTALL-BINARY $DESTDIR/Docs/
cp Docs/manual.chm $DESTDIR/Docs/ || /bin/true
cp ChangeLog $DESTDIR/Docs/ || /bin/true
cp support-files/my-*.ini $DESTDIR/
if [ -f COPYING ] ; then
cp COPYING EXCEPTIONS-CLIENT $DESTDIR/
cp COPYING $DESTDIR/Docs/
fi
# ----------------------------------------------------------------------
# These will be filled in when we enable embedded. Note that if no
# argument is given, it is copied if exists, else a check is done.
# ----------------------------------------------------------------------
copy_embedded()
{
mkdir -p $DESTDIR/Embedded/DLL/release \
$DESTDIR/Embedded/static/release \
$DESTDIR/include
cp libmysqld/libmysqld.def $DESTDIR/include/
cp libmysqld/$TARGET/mysqlserver.lib $DESTDIR/Embedded/static/release/
cp libmysqld/$TARGET/libmysqld.dll $DESTDIR/Embedded/DLL/release/
cp libmysqld/$TARGET/libmysqld.exp $DESTDIR/Embedded/DLL/release/
cp libmysqld/$TARGET/libmysqld.lib $DESTDIR/Embedded/DLL/release/
if [ x"$PACK_DEBUG" = "" -a -f "libmysqld/debug/libmysqld.lib" -o \
x"$PACK_DEBUG" = "yes" ] ; then
mkdir -p $DESTDIR/Embedded/DLL/debug
cp libmysqld/debug/libmysqld.dll $DESTDIR/Embedded/DLL/debug/
cp libmysqld/debug/libmysqld.exp $DESTDIR/Embedded/DLL/debug/
cp libmysqld/debug/libmysqld.lib $DESTDIR/Embedded/DLL/debug/
fi
}
if [ x"$PACK_EMBEDDED" = "" -a \
-f "libmysqld/$TARGET/mysqlserver.lib" -a \
-f "libmysqld/$TARGET/libmysqld.lib" -o \
x"$PACK_EMBEDDED" = "yes" ] ; then
copy_embedded
fi
# ----------------------------------------------------------------------
# FIXME test stuff that is useless garbage?
# ----------------------------------------------------------------------
mkdir -p $DESTDIR/examples/libmysqltest/release
cp libmysql/mytest.c libmysql/myTest.vcproj libmysql/$TARGET/myTest.exe \
$DESTDIR/examples/libmysqltest/
cp libmysql/$TARGET/myTest.exe $DESTDIR/examples/libmysqltest/release/
if [ x"$PACK_DEBUG" = "" -a -f "libmysql/debug/myTest.exe" -o \
x"$PACK_DEBUG" = "yes" ] ; then
mkdir -p $DESTDIR/examples/libmysqltest/debug
cp libmysql/debug/myTest.exe $DESTDIR/examples/libmysqltest/debug/
fi
mkdir -p $DESTDIR/examples/tests
cp tests/*.res tests/*.tst tests/*.pl tests/*.c $DESTDIR/examples/tests/
mkdir -p $DESTDIR/examples/udf_example
cp sql/udf_example.def sql/udf_example.vcproj sql/udf_example.c $DESTDIR/examples/udf_example/
# ----------------------------------------------------------------------
# FIXME why not copy it all in "include"?!
# ----------------------------------------------------------------------
mkdir -p $DESTDIR/include
cp include/conf*.h \
include/mysql*.h \
include/errmsg.h \
......@@ -48,69 +234,122 @@ cp include/conf*.h \
include/m_string.h \
include/m_ctype.h \
include/my_global.h \
include/typelib.h $NOINST_NAME/include/
cp libmysql/libmysql.def $NOINST_NAME/include/
cp libmysqld/libmysqld.def $NOINST_NAME/include/
mkdir -p $NOINST_NAME/lib/debug $NOINST_NAME/lib/opt
cp libmysql/debug/libmysql.dll \
libmysql/debug/libmysql.lib \
client/debug/mysqlclient.lib \
mysys/debug/mysys.lib \
regex/debug/regex.lib \
strings/debug/strings.lib \
zlib/debug/zlib.lib $NOINST_NAME/lib/debug/
cp libmysql/release/libmysql.dll \
libmysql/release/libmysql.lib \
client/release/mysqlclient.lib \
regex/release/regex.lib \
strings/release/strings.lib \
zlib/release/zlib.lib $NOINST_NAME/lib/opt/
cp mysys/release/mysys.lib $NOINST_NAME/lib/opt/mysys_tls.lib
cp support-files/my-*.ini $NOINST_NAME/
mkdir -p $NOINST_NAME/mysql-test/include $NOINST_NAME/mysql-test/lib \
$NOINST_NAME/mysql-test/r $NOINST_NAME/mysql-test/std_data \
$NOINST_NAME/mysql-test/t $NOINST_NAME/mysql-test/extra
cp mysql-test/mysql-test-run.pl $NOINST_NAME/mysql-test/
cp mysql-test/README $NOINST_NAME/mysql-test/
cp mysql-test/install_test_db.sh $NOINST_NAME/mysql-test/install_test_db
cp mysql-test/include/*.inc $NOINST_NAME/mysql-test/include/
cp mysql-test/lib/*.pl $NOINST_NAME/mysql-test/lib/
cp mysql-test/lib/*.sql $NOINST_NAME/mysql-test/lib/
cp mysql-test/r/*.require $NOINST_NAME/mysql-test/r/
include/typelib.h $DESTDIR/include/
cp libmysql/libmysql.def $DESTDIR/include/
# ----------------------------------------------------------------------
# Client libraries, and other libraries
# FIXME why "libmysql.dll" installed both in "bin" and "lib/opt"?
# ----------------------------------------------------------------------
mkdir -p $DESTDIR/lib/opt
cp libmysql/$TARGET/libmysql.dll \
libmysql/$TARGET/libmysql.lib \
client/$TARGET/mysqlclient.lib \
regex/$TARGET/regex.lib \
strings/$TARGET/strings.lib \
zlib/$TARGET/zlib.lib $DESTDIR/lib/opt/
if [ x"$PACK_DEBUG" = "" -a -f "libmysql/debug/libmysql.lib" -o \
x"$PACK_DEBUG" = "yes" ] ; then
mkdir -p $DESTDIR/lib/debug
cp libmysql/debug/libmysql.dll \
libmysql/debug/libmysql.lib \
client/debug/mysqlclient.lib \
mysys/debug/mysys.lib \
regex/debug/regex.lib \
strings/debug/strings.lib \
zlib/debug/zlib.lib $DESTDIR/lib/debug/
fi
# FIXME sort this out...
cp mysys/$TARGET/mysys.lib $DESTDIR/lib/opt/mysys_tls.lib
# ----------------------------------------------------------------------
# Copy the test directory
# ----------------------------------------------------------------------
mkdir -p $DESTDIR/mysql-test/include $DESTDIR/mysql-test/lib \
$DESTDIR/mysql-test/r $DESTDIR/mysql-test/std_data \
$DESTDIR/mysql-test/t
cp mysql-test/mysql-test-run.pl $DESTDIR/mysql-test/
cp mysql-test/README $DESTDIR/mysql-test/
cp mysql-test/install_test_db.sh $DESTDIR/mysql-test/install_test_db
cp mysql-test/include/*.inc $DESTDIR/mysql-test/include/
cp mysql-test/lib/*.pl $DESTDIR/mysql-test/lib/
cp mysql-test/lib/*.sql $DESTDIR/mysql-test/lib/
cp mysql-test/r/*.require $DESTDIR/mysql-test/r/
# Need this trick, or we get "argument list too long".
ABS_DST=`pwd`/$NOINST_NAME
ABS_DST=`pwd`/$DESTDIR
(cd mysql-test/r/ && cp *.result $ABS_DST/mysql-test/r/)
cp mysql-test/std_data/* $NOINST_NAME/mysql-test/std_data/
cp mysql-test/t/*.disabled $NOINST_NAME/mysql-test/t/
cp mysql-test/t/*.opt $NOINST_NAME/mysql-test/t/
cp mysql-test/t/*.sh $NOINST_NAME/mysql-test/t/
cp mysql-test/t/*.slave-mi $NOINST_NAME/mysql-test/t/
cp mysql-test/t/*.sql $NOINST_NAME/mysql-test/t/
cp mysql-test/t/*.def $NOINST_NAME/mysql-test/t/
cp mysql-test/std_data/Moscow_leap $DESTDIR/mysql-test/std_data/
cp mysql-test/std_data/des_key_file $DESTDIR/mysql-test/std_data/
cp mysql-test/std_data/*.000001 $DESTDIR/mysql-test/std_data/
cp mysql-test/std_data/*.cnf $DESTDIR/mysql-test/std_data/
cp mysql-test/std_data/*.dat $DESTDIR/mysql-test/std_data/
cp mysql-test/std_data/*.frm $DESTDIR/mysql-test/std_data/
cp mysql-test/std_data/*.pem $DESTDIR/mysql-test/std_data/
cp mysql-test/t/*.opt $DESTDIR/mysql-test/t/
cp mysql-test/t/*.sh $DESTDIR/mysql-test/t/
cp mysql-test/t/*.slave-mi $DESTDIR/mysql-test/t/
cp mysql-test/t/*.sql $DESTDIR/mysql-test/t/
cp mysql-test/t/*.def $DESTDIR/mysql-test/t/
(cd mysql-test/t/ && cp *.test $ABS_DST/mysql-test/t/)
cp -dpR mysql-test/extra/* $NOINST_NAME/mysql-test/extra/
# This copies in the unsubstituted scripts (containing @VAR@), but that seems
# rather better than substituting random Unix paths and architecture names
# from the Unix bootstrap host. Not sure what the point is of including these
# shell scripts in the Windows packaging in any case.
mkdir -p $NOINST_NAME/scripts
# Note that this will not copy "extra" if a soft link
if [ -d mysql-test/extra ] ; then
mkdir -p $DESTDIR/mysql-test/extra
cp -pR mysql-test/extra/* $DESTDIR/mysql-test/extra/
fi
# ----------------------------------------------------------------------
# Copy what could be usable in the "scripts" directory. Currently
# only SQL files, others are bourne shell scripts or Perl scripts
# not really usable on Windows.
#
# But to be nice to the few Cygwin users we might have in 5.0 we
# continue to copy the stuff, but don't include it include it in
# the WiX install.
# ----------------------------------------------------------------------
mkdir -p $DESTDIR/scripts
# Uncomment and remove the for loop in 5.1
#cp scripts/*.sql $DESTDIR/scripts/
for i in `cd scripts && ls`; do \
if echo $i | grep -q '\.sh'; then \
cp scripts/$i $NOINST_NAME/scripts/`echo $i | sed -e 's/\.sh$//'`; \
else if [ $i = Makefile.am -o $i = Makefile.in -o -e scripts/$i.sh ] ; then \
cp scripts/$i $DESTDIR/scripts/`echo $i | sed -e 's/\.sh$//'`; \
elif [ $i = Makefile.am -o $i = Makefile.in -o -e scripts/$i.sh ] ; then \
: ; \
else \
cp scripts/$i $NOINST_NAME/scripts/$i; \
fi; fi; \
cp scripts/$i $DESTDIR/scripts/$i; \
fi; \
done
cp -pR sql/share $DESTDIR/
# ----------------------------------------------------------------------
# Copy other files specified on command line DEST=SOURCE
# ----------------------------------------------------------------------
for arg do
dst=`echo $arg | sed 's/=.*$//'`
src=`echo $arg | sed 's/^.*=//'`
if [ x"$dst" = x"" -o x"$src" = x"" ] ; then
echo "Invalid specification of what to copy"
usage
fi
mkdir -p `dirname $DESTDIR/$dst`
cp -pR "$src" $DESTDIR/$dst
done
cp -dpR sql/share $NOINST_NAME/
cp -dpR sql-bench $NOINST_NAME/
rm -f $NOINST_NAME/sql-bench/*.sh $NOINST_NAME/sql-bench/Makefile*
# ----------------------------------------------------------------------
# Finally creat the ZIP archive
# ----------------------------------------------------------------------
zip -r $NOINST_NAME.zip $NOINST_NAME
rm -Rf $NOINST_NAME
rm -f $NOINST_NAME.zip
zip -r $NOINST_NAME.zip $DESTDIR
rm -Rf $DESTDIR
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment