summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorunknown <monty@mashka.mysql.fi>2004-02-22 09:50:59 +0200
committerunknown <monty@mashka.mysql.fi>2004-02-22 09:50:59 +0200
commit192bf819eb2bb91e383327d3bde6f596c20a82db (patch)
treedceddcd17cf1278b50f8838476df5644f764efe9 /scripts
parent984750e13ef4a559c5da05b5fbd6fa363d3650b2 (diff)
parent522e83b64ab46d400ccb6aa8d7b749eefc28f4d5 (diff)
downloadmariadb-git-192bf819eb2bb91e383327d3bde6f596c20a82db.tar.gz
merge with 4.0
BitKeeper/etc/ignore: auto-union VC++Files/comp_err/comp_err.dsp: Auto merged VC++Files/my_print_defaults/my_print_defaults.dsp: Auto merged VC++Files/myisampack/myisampack.dsp: Auto merged acinclude.m4: Auto merged innobase/buf/buf0buf.c: Auto merged innobase/com/com0shm.c: Auto merged innobase/data/data0data.c: Auto merged innobase/ha/ha0ha.c: Auto merged innobase/include/buf0buf.ic: Auto merged innobase/include/dict0dict.h: Auto merged innobase/include/ibuf0ibuf.h: Auto merged innobase/include/lock0lock.h: Auto merged innobase/include/mtr0log.h: Auto merged innobase/include/mtr0mtr.h: Auto merged innobase/include/os0proc.h: Auto merged innobase/include/os0thread.h: Auto merged innobase/include/srv0srv.h: Auto merged innobase/include/sync0sync.h: Auto merged innobase/lock/lock0lock.c: Auto merged innobase/log/log0recv.c: Auto merged innobase/mem/mem0dbg.c: Auto merged innobase/mtr/mtr0mtr.c: Auto merged innobase/os/os0proc.c: Auto merged innobase/page/page0page.c: Auto merged innobase/que/que0que.c: Auto merged innobase/rem/rem0cmp.c: Auto merged innobase/row/row0ins.c: Auto merged innobase/row/row0mysql.c: Auto merged innobase/srv/srv0start.c: Auto merged innobase/sync/sync0sync.c: Auto merged innobase/trx/trx0rec.c: Auto merged innobase/trx/trx0trx.c: Auto merged innobase/ut/ut0mem.c: Auto merged innobase/ut/ut0ut.c: Auto merged libmysql/libmysql.c: Auto merged scripts/mysql_config.sh: Auto merged sql/net_serv.cc: Auto merged sql/sql_delete.cc: Auto merged sql/sql_yacc.yy: Auto merged
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Makefile.am2
-rw-r--r--scripts/make_win_binary_distribution.sh178
-rw-r--r--scripts/mysql_config.sh13
3 files changed, 189 insertions, 4 deletions
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 037adc64d39..d4da77d0387 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -34,11 +34,13 @@ bin_SCRIPTS = @server_scripts@ \
mysql_tableinfo \
mysqld_multi \
make_win_src_distribution \
+ make_win_binary_distribution \
mysql_create_system_tables
EXTRA_SCRIPTS = make_binary_distribution.sh \
make_sharedlib_distribution.sh \
make_win_src_distribution.sh \
+ make_win_binary_distribution.sh \
msql2mysql.sh \
mysql_config.sh \
mysql_fix_privilege_tables.sh \
diff --git a/scripts/make_win_binary_distribution.sh b/scripts/make_win_binary_distribution.sh
new file mode 100644
index 00000000000..e5893c1eb1e
--- /dev/null
+++ b/scripts/make_win_binary_distribution.sh
@@ -0,0 +1,178 @@
+#!/bin/sh
+
+#
+# Script to create a Windows binary package
+#
+# This is intended to be used under Cygwin, and will generate
+# an archive named in the form mysql<suffix>-<version>-noinstall.zip
+
+version=@VERSION@
+
+DEBUG=0
+SUFFIX=""
+DIRNAME=""
+EXTRA=""
+
+#
+# This script must run from MySQL top directory
+#
+
+if [ ! -f scripts/make_win_binary_distribution ]; then
+ echo "ERROR : You must run this script from the MySQL top-level directory"
+ exit 1
+fi
+
+#
+# Debug print of the status
+#
+
+print_debug()
+{
+ for statement
+ do
+ if [ "$DEBUG" = "1" ] ; then
+ echo $statement
+ fi
+ done
+}
+
+#
+# Usage of the script
+#
+
+show_usage()
+{
+ echo "MySQL utility script to create a Windows binary package"
+ echo ""
+ echo "This is intended to be used under Cygwin, and will generate"
+ echo "an archive named in the form mysql<suffix>-<version>-noinstall.zip"
+ echo "Takes the following arguments:"
+ echo ""
+ echo " --dirname Directory to use for copying files"
+ echo " --extra Directory to get extra files from"
+ echo " --suffix Name to append to 'mysql' for this binary"
+ echo " --help Show this help message"
+ exit 0
+}
+
+#
+# Parse the input arguments
+#
+
+parse_arguments() {
+ for arg do
+ case "$arg" in
+ --debug) DEBUG=1;;
+ --extra=*) EXTRA=`echo "$arg" | sed -e "s;--extra=;;"` ;;
+ --suffix=*) SUFFIX=`echo "$arg" | sed -e "s;--suffix=;;"` ;;
+ --dirname=*) DIRNAME=`echo "$arg" | sed -e "s;--dirname=;;"` ;;
+ --help) show_usage ;;
+ *)
+ echo "Unknown argument '$arg'"
+ exit 1
+ ;;
+ esac
+ done
+}
+
+parse_arguments "$@"
+
+if [ -z "$DIRNAME" ]; then
+ $DIRNAME="dist"
+fi
+
+print_debug "Making directories"
+mkdir $DIRNAME
+$DIRNAME="$DIRNAME/mysql-$version"
+mkdir $DIRNAME
+
+for dir in bin lib lib/opt lib/debug Embedded Embedded/DLL Embedded/DLL/debug Embedded/DLL/release Embedded/static Embedded/static/release examples examples/libmysqltest
+do
+ mkdir $DIRNAME/$dir
+done
+
+if [ $EXTRA ]; then
+ print_debug "Copying extra files"
+ cp -fr $EXTRA/* $DIRNAME
+fi
+
+# Dirs to be copied as-is
+for dir in data Docs include scripts share
+do
+ print_debug "Copying $dir to $DIRNAME/"
+ cp -fr $dir $DIRNAME
+done
+
+print_debug "Copying tests to $DIRNAME/examples/"
+cp -fr tests $DIRNAME/examples
+
+print_debug "Copying sql-bench to $DIRNAME/bench"
+mkdir $DIRNAME/bench
+cp -fr sql-bench/* $DIRNAME/bench
+
+# Files for bin
+for i in client_release/* client_debug/mysqld.exe lib_release/libmySQL.dll
+do
+ print_debug "Copying $i to $DIRNAME/bin"
+ cp $i $DIRNAME/bin
+done
+
+# Files for include
+for i in libmysql/libmysql.def libmysqld/libmysqld.def
+do
+ print_debug "Copying $i to $DIRNAME/include"
+ cp $i $DIRNAME/include
+done
+
+# Windows users are used to having dbug.h
+cp include/my_dbug.h $DIRNAME/include/dbug.h
+
+# Libraries found in lib_release and lib_debug
+for i in libmySQL.dll libmysql.lib zlib.lib mysqlclient.lib mysys.lib regex.lib strings.lib
+do
+ print_debug "Copying lib_release/$i to $DIRNAME/lib/opt"
+ cp lib_release/$i $DIRNAME/lib/opt
+ print_debug "Copying lib_debug/$i to $DIRNAME/lib/debug"
+ cp lib_debug/$i $DIRNAME/lib/debug
+done
+
+print_debug "Copying lib_release/mysys-max.lib to $DIRNAME/lib/opt"
+cp lib_release/mysys-max.lib $DIRNAME/lib/opt
+
+# Embedded server
+for i in libmysqld.dll libmysqld.lib libmysqld.exp
+do
+ print_debug "Copying lib_release/$i to $DIRNAME/Embedded/DLL/release"
+ cp lib_release/$i $DIRNAME/Embedded/DLL/release
+ print_debug "Copying lib_debug/$i to $DIRNAME/Embedded/DLL/debug"
+ cp lib_debug/$i $DIRNAME/Embedded/DLL/debug
+done
+
+# Static embedded
+print_debug "Copying lib_release/mysqlserver.lib to $DIRNAME/Embedded/static/release"
+cp lib_release/mysqlserver.lib $DIRNAME/Embedded/static/release
+
+# libmysqltest
+for i in mytest.c mytest.dsp mytest.dsw mytest.exe
+do
+ print_debug "Copying libmysqltest/release/$i to $DIRNAME/examples/libmysqltest"
+ cp libmysqltest/release/$i $DIRNAME/examples/libmysqltest
+done
+
+print_debug "Copying README.txt"
+cp README.txt $DIRNAME
+
+if [ -f MySQLEULA.txt ]; then
+ print_debug "Commercial version: copying MySQLEULA.txt"
+ cp MySQLEULA.txt $DIRNAME
+ rm $DIRNAME/Docs/COPYING
+else
+ print_debug "GPL version: copying COPYING"
+ cp Docs/COPYING $DIRNAME
+fi
+
+print_debug "Invoking zip to package the binary"
+zip -r mysql$SUFFIX-$version-win-noinstall.zip $DIRNAME
+
+print_debug "Deleting intermediate directory"
+rm -rf $DIRNAME
diff --git a/scripts/mysql_config.sh b/scripts/mysql_config.sh
index 051f3fa9c14..aa7af1cb2c6 100644
--- a/scripts/mysql_config.sh
+++ b/scripts/mysql_config.sh
@@ -84,20 +84,25 @@ port='@MYSQL_TCP_PORT@'
ldflags='@LDFLAGS@'
client_libs='@CLIENT_LIBS@'
-# Create options, without end space
+# Create options
libs="$ldflags -L$pkglibdir -lmysqlclient $client_libs"
libs=`echo "$libs" | sed -e 's; \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'`
libs_r="$ldflags -L$pkglibdir -lmysqlclient_r @LIBS@ @openssl_libs@"
libs_r=`echo "$libs_r" | sed -e 's; \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'`
-cflags="-I$pkgincludedir @CFLAGS@"
+cflags="-I$pkgincludedir @CFLAGS@ " #note: end space!
include="-I$pkgincludedir"
embedded_libs="$ldflags -L$pkglibdir -lmysqld @LIBS@ @WRAPLIBS@ @innodb_system_libs@"
embedded_libs=`echo "$embedded_libs" | sed -e 's; \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'`
# Remove some options that a client doesn't have to care about
-
-cflags=`echo "$cflags " | sed -e 's;\(-DDBUG_OFF\|-DSAFEMALLOC\|-USAFEMALLOC\|-DSAFE_MUTEX\|-DPEDANTIC_SAFEMALLOC\|-DUNIV_MUST_NOT_INLINE\|-DFORCE_INIT_OF_VARS\|-DEXTRA_DEBUG\|-DHAVE_purify\|-O[0-9]\|-W[-A-Za-z]*\) *;;g' | sed -e 's; *\$;;'`
+for remove in DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX \
+ DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \
+ DEXTRA_DEBUG DHAVE_purify 'O[0-9]' 'W[-A-Za-z]*'
+do
+ cflags=`echo "$cflags"|sed -e "s/-$remove *//g"`
+done
+cflags=`echo "$cflags"|sed -e 's/ *\$//'`
usage () {
cat <<EOF