Initial script to create a windows src distribution package
This commit is contained in:
parent
27521fb5dd
commit
6963b121da
@ -35,6 +35,7 @@ bin_SCRIPTS = @server_scripts@ \
|
|||||||
mysqld_multi
|
mysqld_multi
|
||||||
|
|
||||||
EXTRA_SCRIPTS = make_binary_distribution.sh \
|
EXTRA_SCRIPTS = make_binary_distribution.sh \
|
||||||
|
make_win_src_distribution.sh \
|
||||||
msql2mysql.sh \
|
msql2mysql.sh \
|
||||||
mysql_config.sh \
|
mysql_config.sh \
|
||||||
mysql_fix_privilege_tables.sh \
|
mysql_fix_privilege_tables.sh \
|
||||||
@ -66,6 +67,7 @@ pkgdata_DATA = make_binary_distribution
|
|||||||
# failures with it.
|
# failures with it.
|
||||||
CLEANFILES = @server_scripts@ \
|
CLEANFILES = @server_scripts@ \
|
||||||
make_binary_distribution \
|
make_binary_distribution \
|
||||||
|
make_win_src_distribution \
|
||||||
msql2mysql \
|
msql2mysql \
|
||||||
mysql_config \
|
mysql_config \
|
||||||
mysql_fix_privilege_tables \
|
mysql_fix_privilege_tables \
|
||||||
@ -135,7 +137,7 @@ SUFFIXES = .sh
|
|||||||
# Don't update the files from bitkeeper
|
# Don't update the files from bitkeeper
|
||||||
%::SCCS/s.%
|
%::SCCS/s.%
|
||||||
|
|
||||||
all: fill_help_tables.sql
|
all: fill_help_tables.sql make_win_src_distribution
|
||||||
|
|
||||||
fill_help_tables.sql: fill_help_tables ../Docs/manual.texi
|
fill_help_tables.sql: fill_help_tables ../Docs/manual.texi
|
||||||
./fill_help_tables < ../Docs/manual.texi > fill_help_tables.sql
|
./fill_help_tables < ../Docs/manual.texi > fill_help_tables.sql
|
||||||
|
360
scripts/make_win_src_distribution.sh
Executable file
360
scripts/make_win_src_distribution.sh
Executable file
@ -0,0 +1,360 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
#
|
||||||
|
# Script to create a Windows src package
|
||||||
|
#
|
||||||
|
|
||||||
|
version=@VERSION@
|
||||||
|
export version
|
||||||
|
SOURCE=`pwd`
|
||||||
|
CP="cp -p"
|
||||||
|
|
||||||
|
DEBUG=0
|
||||||
|
SILENT=0
|
||||||
|
TMP=/tmp
|
||||||
|
SUFFIX=""
|
||||||
|
OUTTAR=0
|
||||||
|
|
||||||
|
SRCDIR=$SOURCE
|
||||||
|
DSTDIR=$TMP
|
||||||
|
|
||||||
|
#
|
||||||
|
# This script must run from MySQL top directory
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ ! -f scripts/make_win_src_distribution.sh ]; then
|
||||||
|
echo "ERROR : You must run this script from the MySQL top-level directory"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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 " --silent Do not list verbosely files processed"
|
||||||
|
echo " --tar Create a tar.gz package instead of .zip"
|
||||||
|
echo " --help Show this help message"
|
||||||
|
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# 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=;;"` ;;
|
||||||
|
--silent) SILENT=1 ;;
|
||||||
|
--tar) OUTTAR=1 ;;
|
||||||
|
--help) show_usage ;;
|
||||||
|
*)
|
||||||
|
echo "Unknown argument '$arg'"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
parse_arguments "$@"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Currently return an error if --tar is not used
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ x$OUTTAR = x0 ] && [ x$DEBUG = x0 ]
|
||||||
|
then
|
||||||
|
echo "ERROR: The default .zip doesn't yet work on Windows, as it can't load"
|
||||||
|
echo " the workspace files due to LF->CR+LF issues, instead use --tar"
|
||||||
|
echo " to create a .tar.gz package "
|
||||||
|
echo ""
|
||||||
|
show_usage;
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Create a tmp dest directory to copy files
|
||||||
|
#
|
||||||
|
|
||||||
|
BASE=$TMP/my_win_dist$SUFFIX
|
||||||
|
|
||||||
|
if [ -d $BASE ] ; then
|
||||||
|
rm -r -f $BASE
|
||||||
|
fi
|
||||||
|
|
||||||
|
$CP -r $SOURCE/VC++Files $BASE
|
||||||
|
|
||||||
|
(
|
||||||
|
find $BASE -name *.dsw -and -not -path \*SCCS\* -print
|
||||||
|
find $BASE -name *.dsp -and -not -path \*SCCS\* -print
|
||||||
|
)|(
|
||||||
|
while read v
|
||||||
|
do
|
||||||
|
sed 's/$'"/`echo -e \\\r`/" $v > $v.tmp
|
||||||
|
rm $v
|
||||||
|
mv $v.tmp $v
|
||||||
|
done
|
||||||
|
)
|
||||||
|
|
||||||
|
# move all error message files to root directory
|
||||||
|
$CP -r $SOURCE/sql/share $BASE/
|
||||||
|
|
||||||
|
#
|
||||||
|
# Clean up if we did this from a bk tree
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ -d $BASE/SCCS ]
|
||||||
|
then
|
||||||
|
find $BASE/ -name SCCS -print | xargs rm -r -f
|
||||||
|
rm -rf "$BASE/InstallShield/Script Files/SCCS"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
mkdir $BASE/Docs $BASE/extra $BASE/include
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copy directory files
|
||||||
|
#
|
||||||
|
|
||||||
|
copy_dir_files() {
|
||||||
|
|
||||||
|
for arg do
|
||||||
|
|
||||||
|
cd $SOURCE/$arg/
|
||||||
|
(
|
||||||
|
ls -A1|grep \\.[ch]$
|
||||||
|
ls -A1|grep \\.ih$
|
||||||
|
ls -A1|grep \\.i$
|
||||||
|
ls -A1|grep \\.ic$
|
||||||
|
ls -A1|grep \\.asm$
|
||||||
|
ls -A1|grep README
|
||||||
|
ls -A1|grep INSTALL
|
||||||
|
ls -A1|grep LICENSE
|
||||||
|
)|(
|
||||||
|
while read v
|
||||||
|
do
|
||||||
|
$CP $SOURCE/$arg/$v $BASE/$arg/$v
|
||||||
|
done
|
||||||
|
)
|
||||||
|
|
||||||
|
cd $SOURCE/$arg/
|
||||||
|
(
|
||||||
|
ls -A1|grep \\.cc$|sed 's/.cc$//g')|(
|
||||||
|
while read v
|
||||||
|
do
|
||||||
|
$CP $SOURCE/$arg/$v.cc $BASE/$arg/$v.cpp
|
||||||
|
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/
|
||||||
|
(
|
||||||
|
ls -l |grep "^d"|awk '{print($9)}' -
|
||||||
|
)|(
|
||||||
|
while read dir_name
|
||||||
|
do
|
||||||
|
if [ x$dir_name != x"SCCS" ]
|
||||||
|
then
|
||||||
|
if [ ! -d $BASE/$basedir/$dir_name ]; then
|
||||||
|
mkdir $BASE/$basedir/$dir_name
|
||||||
|
fi
|
||||||
|
copy_dir_files $basedir/$dir_name
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
)
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Input directories to be copied
|
||||||
|
#
|
||||||
|
|
||||||
|
copy_dir_files 'bdb'
|
||||||
|
copy_dir_files 'bdb/build_win32'
|
||||||
|
copy_dir_files 'client'
|
||||||
|
copy_dir_files 'dbug'
|
||||||
|
copy_dir_files 'extra'
|
||||||
|
copy_dir_files 'heap'
|
||||||
|
copy_dir_files 'include'
|
||||||
|
copy_dir_files 'innobase'
|
||||||
|
copy_dir_files 'isam'
|
||||||
|
copy_dir_files 'libmysql'
|
||||||
|
copy_dir_files 'libmysqld'
|
||||||
|
copy_dir_files 'merge'
|
||||||
|
copy_dir_files 'myisam'
|
||||||
|
copy_dir_files 'myisammrg'
|
||||||
|
copy_dir_files 'mysys'
|
||||||
|
copy_dir_files 'regex'
|
||||||
|
copy_dir_files 'sql'
|
||||||
|
copy_dir_files 'strings'
|
||||||
|
copy_dir_files 'vio'
|
||||||
|
copy_dir_files 'zlib'
|
||||||
|
|
||||||
|
#
|
||||||
|
# Input directories to be copied recursively
|
||||||
|
#
|
||||||
|
|
||||||
|
copy_dir_dirs 'bdb'
|
||||||
|
copy_dir_dirs 'innobase'
|
||||||
|
|
||||||
|
# create dummy innobase configure header
|
||||||
|
if [ -f $BASE/innobase/ib_config.h ]
|
||||||
|
then
|
||||||
|
rm -f $BASE/innobase/ib_config.h
|
||||||
|
touch $BASE/innobase/ib_config.h
|
||||||
|
fi
|
||||||
|
|
||||||
|
#
|
||||||
|
# Copy miscellaneous files
|
||||||
|
#
|
||||||
|
|
||||||
|
$CP $SOURCE/myisam/myisampack.c $BASE/myisampack/
|
||||||
|
$CP $SOURCE/client/mysqlbinlog.cc $BASE/mysqlbinlog/mysqlbinlog.cpp
|
||||||
|
$CP $SOURCE/isam/pack_isam.c $BASE/pack_isam/pack_isam.c
|
||||||
|
|
||||||
|
cd $SOURCE
|
||||||
|
for i in COPYING ChangeLog README \
|
||||||
|
INSTALL-SOURCE INSTALL-WIN \
|
||||||
|
INSTALL-SOURCE-WIN \
|
||||||
|
Docs/manual_toc.html Docs/manual.html \
|
||||||
|
Docs/mysqld_error.txt Docs/INSTALL-BINARY
|
||||||
|
|
||||||
|
do
|
||||||
|
if [ -f $i ]
|
||||||
|
then
|
||||||
|
$CP $i $BASE/$i
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
#
|
||||||
|
# TODO: Initialize the initial data directory
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Specify the distribution package name and copy it
|
||||||
|
#
|
||||||
|
|
||||||
|
NEW_NAME=mysql@MYSQL_SERVER_SUFFIX@-$version$SUFFIX-win-src
|
||||||
|
BASE2=$TMP/$NEW_NAME
|
||||||
|
rm -r -f $BASE2
|
||||||
|
mv $BASE $BASE2
|
||||||
|
BASE=$BASE2
|
||||||
|
|
||||||
|
#
|
||||||
|
# If debugging, don't create a zip/tar/gz
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ x$DEBUG = x1 ] ; 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 file
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ x$OUTTAR = x1 ]; then
|
||||||
|
ZIPFILE1=gnutar
|
||||||
|
ZIPFILE2=gtar
|
||||||
|
OPT=cvf
|
||||||
|
EXT=".tar"
|
||||||
|
NEED_COMPRESS=1
|
||||||
|
if [ x$SILENT = x1 ] ; then
|
||||||
|
OPT=cf
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
ZIPFILE1=zip
|
||||||
|
ZIPFILE2=""
|
||||||
|
OPT="-lvr"
|
||||||
|
EXT=".zip"
|
||||||
|
NEED_COMPRESS=0
|
||||||
|
if [ x$SILENT = x1 ] ; then
|
||||||
|
OPT="-lr"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
tar=`which_1 $ZIPFILE1 $ZIPFILE2`
|
||||||
|
if test "$?" = "1" -o "$tar" = ""
|
||||||
|
then
|
||||||
|
tar=tar
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Using $tar to create archive"
|
||||||
|
cd $TMP
|
||||||
|
|
||||||
|
$tar $OPT $SOURCE/$NEW_NAME$EXT $NEW_NAME
|
||||||
|
cd $SOURCE
|
||||||
|
|
||||||
|
if [ x$NEED_COMPRESS = x1 ]
|
||||||
|
then
|
||||||
|
echo "Compressing archive"
|
||||||
|
gzip -9 $NEW_NAME$EXT
|
||||||
|
EXT=".tar.gz"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Removing temporary directory"
|
||||||
|
rm -r -f $BASE
|
||||||
|
|
||||||
|
echo "$NEW_NAME$EXT created successfully !!"
|
||||||
|
|
||||||
|
#
|
||||||
|
# End of script
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user