summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorunknown <greg@gcw.ath.cx>2003-08-06 22:57:14 -0400
committerunknown <greg@gcw.ath.cx>2003-08-06 22:57:14 -0400
commitbb9568e092f82b67a615615239cb9810b45fc0b6 (patch)
tree306a6a5be2878bb451cc9eadaa1f0db9578b9a64 /scripts
parent3ee893cc3d0fb755a6d435a7cc41e0e819781761 (diff)
downloadmariadb-git-bb9568e092f82b67a615615239cb9810b45fc0b6.tar.gz
Copied Venu's make_win_src_distribution script from 4.1 tree
scripts/Makefile.am: Add make_win_src_distribution to EXTRA_SCRIPTS
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Makefile.am1
-rwxr-xr-xscripts/make_win_src_distribution.sh404
2 files changed, 405 insertions, 0 deletions
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 8f17d8519b8..f1ca6023fbe 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -35,6 +35,7 @@ bin_SCRIPTS = @server_scripts@ \
mysqld_multi
EXTRA_SCRIPTS = make_binary_distribution.sh \
+ make_win_src_distribution.sh \
msql2mysql.sh \
mysql_config.sh \
mysql_fix_privilege_tables.sh \
diff --git a/scripts/make_win_src_distribution.sh b/scripts/make_win_src_distribution.sh
new file mode 100755
index 00000000000..d2b50e06f54
--- /dev/null
+++ b/scripts/make_win_src_distribution.sh
@@ -0,0 +1,404 @@
+#!/bin/sh
+
+#
+# Script to create a Windows src package
+#
+
+version=@VERSION@
+export version
+SOURCE=`pwd`
+CP="cp -p"
+
+DEBUG=0
+SILENT=0
+SUFFIX=""
+DIRNAME=""
+OUTTAR=0
+
+#
+# This script must run from MySQL top directory
+#
+
+if [ ! -f scripts/make_win_src_distribution ]; then
+ echo "ERROR : You must run this script from the MySQL top-level directory"
+ exit 1
+fi
+
+#
+# Check for source compilation/configuration
+#
+
+if [ ! -f sql/sql_yacc.cc ]; then
+ echo "ERROR : Sorry, you must run this script after the complete build,"
+ echo " hope you know what you are trying to do !!"
+ 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 src package, and it takes"
+ echo "the following arguments:"
+ echo ""
+ echo " --debug Debug, without creating the package"
+ echo " --tmp Specify the temporary location"
+ echo " --suffix Suffix name for the package"
+ echo " --dirname Directory name to copy files (intermediate)"
+ echo " --silent Do not list verbosely files processed"
+ echo " --tar Create tar.gz package instead of .zip"
+ echo " --help Show this help message"
+
+ exit 0
+}
+
+#
+# Parse the input arguments
+#
+
+parse_arguments() {
+ for arg do
+ case "$arg" in
+ --debug) DEBUG=1;;
+ --tmp=*) TMP=`echo "$arg" | sed -e "s;--tmp=;;"` ;;
+ --suffix=*) SUFFIX=`echo "$arg" | sed -e "s;--suffix=;;"` ;;
+ --dirname=*) DIRNAME=`echo "$arg" | sed -e "s;--dirname=;;"` ;;
+ --silent) SILENT=1 ;;
+ --tar) OUTTAR=1 ;;
+ --help) show_usage ;;
+ *)
+ echo "Unknown argument '$arg'"
+ exit 1
+ ;;
+ esac
+ done
+}
+
+parse_arguments "$@"
+
+#
+# Assign the tmp directory if it was set from the environment variables
+#
+
+for i in $TMP $TMPDIR $TEMPDIR $TEMP /tmp
+do
+ if [ "$i" ]; then
+ print_debug "Setting TMP to '$i'"
+ TMP=$i
+ break
+ fi
+done
+
+
+#
+
+#
+# Create a tmp dest directory to copy files
+#
+
+BASE=$TMP/my_win_dist$SUFFIX
+
+if [ -d $BASE ] ; then
+ print_debug "Destination directory '$BASE' already exists, deleting it"
+ rm -r -f $BASE
+fi
+
+$CP -r $SOURCE/VC++Files $BASE
+(
+find $BASE \( -name "*.dsp" -o -name "*.dsw" \) -and -not -path \*SCCS\* -print
+)|(
+ while read v
+ do
+ print_debug "Replacing LF -> CRLF from '$v'"
+
+ # ^M -> type CTRL V + CTRL M
+ cat $v | sed 's/
+//' | sed 's/$/
+/' > $v.tmp
+ rm $v
+ mv $v.tmp $v
+ done
+)
+
+#
+# Move all error message files to root directory
+#
+
+$CP -r $SOURCE/sql/share $BASE/
+rm -r -f "$BASE/share/Makefile"
+rm -r -f "$BASE/share/Makefile.in"
+rm -r -f "$BASE/share/Makefile.am"
+
+#
+# Clean up if we did this from a bk tree
+#
+
+if [ -d $BASE/SCCS ]
+then
+ find $BASE/ -type d -name SCCS -printf " \"%p\"" | xargs rm -r -f
+fi
+
+mkdir $BASE/Docs $BASE/extra $BASE/include
+
+
+#
+# Copy directory files
+#
+
+copy_dir_files()
+{
+ for arg do
+ print_debug "Copying files from directory '$arg'"
+ cd $SOURCE/$arg
+ if [ ! -d $BASE/$arg ]; then
+ print_debug "Creating directory '$arg'"
+ mkdir $BASE/$arg
+ fi
+ for i in *.c *.cpp *.h *.ih *.i *.ic *.asm *.def \
+ README INSTALL* LICENSE
+ do
+ if [ -f $i ]
+ then
+ $CP $SOURCE/$arg/$i $BASE/$arg/$i
+ fi
+ done
+ for i in *.cc
+ do
+ if [ -f $i ]
+ then
+ i=`echo $i | sed 's/.cc$//g'`
+ $CP $SOURCE/$arg/$i.cc $BASE/$arg/$i.cpp
+ fi
+ done
+ done
+}
+
+#
+# Copy directory contents recursively
+#
+
+copy_dir_dirs() {
+
+ for arg do
+
+ basedir=$arg
+
+ if [ ! -d $BASE/$arg ]; then
+ mkdir $BASE/$arg
+ fi
+
+ copy_dir_files $arg
+
+ cd $SOURCE/$arg/
+ for i in *
+ do
+ if [ -d $SOURCE/$basedir/$i ] && [ "$i" != "SCCS" ]; then
+ copy_dir_files $basedir/$i
+ fi
+ done
+ done
+}
+
+#
+# Input directories to be copied
+#
+
+for i in client dbug extra heap include isam \
+ libmysql libmysqld merge myisam \
+ myisammrg mysys regex sql strings \
+ vio zlib
+do
+ copy_dir_files $i
+done
+
+#
+# Input directories to be copied recursively
+#
+
+for i in bdb innobase
+do
+ copy_dir_dirs $i
+done
+
+#
+# Create dummy innobase configure header
+#
+
+if [ -f $BASE/innobase/ib_config.h ]; then
+ rm -f $BASE/innobase/ib_config.h
+fi
+touch $BASE/innobase/ib_config.h
+
+
+#
+# Copy miscellaneous files
+#
+
+cd $SOURCE
+for i in COPYING ChangeLog README \
+ INSTALL-SOURCE INSTALL-WIN \
+ INSTALL-WIN-SOURCE \
+ Docs/manual_toc.html Docs/manual.html \
+ Docs/mysqld_error.txt Docs/INSTALL-BINARY
+
+do
+ print_debug "Copying file '$i'"
+ if [ -f $i ]
+ then
+ $CP $i $BASE/$i
+ fi
+done
+
+#
+# Fix some windows files
+#
+
+./extra/replace std:: "" -- $BASE/sql/sql_yacc.cpp
+
+#
+# Initialize the initial data directory
+#
+
+if [ -f scripts/mysql_install_db ]; then
+ print_debug "Initializing the 'data' directory"
+ scripts/mysql_install_db --no-defaults --windows --datadir=$BASE/data
+fi
+
+#
+# Specify the distribution package name and copy it
+#
+
+if test -z $DIRNAME
+then
+ NEW_DIR_NAME=mysql@MYSQL_SERVER_SUFFIX@-$version$SUFFIX
+else
+ NEW_DIR_NAME=$DIRNAME
+fi
+NEW_NAME=$NEW_DIR_NAME-win-src
+
+BASE2=$TMP/$NEW_DIR_NAME
+rm -r -f $BASE2
+mv $BASE $BASE2
+BASE=$BASE2
+
+#
+# If debugging, don't create a zip/tar/gz
+#
+
+if [ "$DEBUG" = "1" ] ; then
+ echo "Please check the distribution files from $BASE"
+ echo "Exiting (without creating the package).."
+ exit
+fi
+
+#
+# This is needed to prefere gnu tar instead of tar because tar can't
+# always handle long filenames
+#
+
+PATH_DIRS=`echo $PATH | sed -e 's/^:/. /' -e 's/:$/ ./' -e 's/::/ . /g' -e 's/:/ /g' `
+which_1 ()
+{
+ for cmd
+ do
+ for d in $PATH_DIRS
+ do
+ for file in $d/$cmd
+ do
+ if test -x $file -a ! -d $file
+ then
+ echo $file
+ exit 0
+ fi
+ done
+ done
+ done
+ exit 1
+}
+
+#
+# Create the result zip/tar file
+#
+
+set_tarzip_options()
+{
+ for arg
+ do
+ if [ "$arg" = "tar" ]; then
+ ZIPFILE1=gnutar
+ ZIPFILE2=gtar
+ OPT=cvf
+ EXT=".tar"
+ NEED_COMPRESS=1
+ if [ "$SILENT" = "1" ] ; then
+ OPT=cf
+ fi
+ else
+ ZIPFILE1=zip
+ ZIPFILE2=""
+ OPT="-r"
+ EXT=".zip"
+ NEED_COMPRESS=0
+ if [ "$SILENT" = "1" ] ; then
+ OPT="$OPT -q"
+ fi
+ fi
+ done
+}
+
+if [ "$OUTTAR" = "1" ]; then
+ set_tarzip_options 'tar'
+else
+ set_tarzip_options 'zip'
+fi
+
+tar=`which_1 $ZIPFILE1 $ZIPFILE2`
+if test "$?" = "1" -o "$tar" = ""
+then
+ print_debug "Search failed for '$ZIPFILE1', '$ZIPFILE2', using default 'tar'"
+ tar=tar
+ set_tarzip_options 'tar'
+fi
+
+#
+# Create the archive
+#
+
+print_debug "Using $tar to create archive"
+
+cd $TMP
+
+rm -f $SOURCE/$NEW_NAME$EXT
+$tar $OPT $SOURCE/$NEW_NAME$EXT $NEW_DIR_NAME
+cd $SOURCE
+
+if [ "$NEED_COMPRESS" = "1" ]
+then
+ print_debug "Compressing archive"
+ gzip -9 $NEW_NAME$EXT
+ EXT="$EXT.gz"
+fi
+
+print_debug "Removing temporary directory"
+rm -r -f $BASE
+
+if [ "$SILENT" = "0" ] ; then
+ echo "$NEW_NAME$EXT created successfully !!"
+fi
+# End of script