Loading scripts/make_win_bin_dist +332 −93 Original line number Diff line number Diff line #!/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 # 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 \ Loading @@ -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/ 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 $NOINST_NAME/lib/debug $NOINST_NAME/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 $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/ 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 Loading
scripts/make_win_bin_dist +332 −93 Original line number Diff line number Diff line #!/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 # 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 \ Loading @@ -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/ 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 $NOINST_NAME/lib/debug $NOINST_NAME/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 $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/ 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