Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
60104e11
Commit
60104e11
authored
Oct 20, 2006
by
kent@mysql.com/c-544072d5.010-2112-6f72651.cust.bredbandsbolaget.se
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
make_win_bin_dist:
Aligned script with updated 5.0 version
parent
bef920e0
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
332 additions
and
93 deletions
+332
-93
scripts/make_win_bin_dist
scripts/make_win_bin_dist
+332
-93
No files found.
scripts/make_win_bin_dist
View file @
60104e11
#! /bin/sh
#!/bin/sh
NOINST_NAME
=
$1
# Exit if failing to copy, we want exact specifications, not
# just "what happen to be built".
mkdir
$NOINST_NAME
set
-e
mkdir
$NOINST_NAME
/bin
cp
client/release/
*
.exe
$NOINST_NAME
/bin/
# ----------------------------------------------------------------------
cp
extra/release/
*
.exe
$NOINST_NAME
/bin/
# Read first argument that is the base name of the resulting TAR file.
mv
$NOINST_NAME
/bin/comp_err.exe
$NOINST_NAME
/bin/comp-err.exe
# See usage() function below for a description on the arguments.
cp
storage/myisam/release/
*
.exe
$NOINST_NAME
/bin/
#
cp
server-tools/instance-manager/release/
*
.exe
$NOINST_NAME
/bin/
# NOTE: We will read the rest of the command line later on.
cp
tests/release/
*
.exe
$NOINST_NAME
/bin/
# NOTE: Pattern matching with "{..,..}" can't be used, not portable.
cp
libmysql/release/
*
.exe
$NOINST_NAME
/bin/
# ----------------------------------------------------------------------
cp
libmysql/release/libmysql.dll
$NOINST_NAME
/bin/
# FIXME FIXME "debug", own build or handled here?
cp
sql/release/mysqld.exe
$NOINST_NAME
/bin/mysqld.exe
# FIXME FIXME add way to copy from other builds executables
cp
sql/debug/mysqld.exe
$NOINST_NAME
/bin/mysqld-debug.exe
# For Pro/Classic builds, do this instead:
usage
()
# cp sql/release/mysqld.exe $NOINST_NAME/bin/mysqld-nt.exe
{
# cp sql/debug/mysqld.exe $NOINST_NAME/bin/mysqld-debug.exe
echo
<<
EOF
Usage: make_win_bin_dist [ options ] package-base-name [ copy-defs... ]
cp
COPYING EXCEPTIONS-CLIENT
$NOINST_NAME
/
cp
-dpR
win/data
$NOINST_NAME
/data
This is a script to run from the top of a source tree built on Windows.
mkdir
$NOINST_NAME
/Docs
The "package-base-name" argument should be something like
cp
Docs/INSTALL-BINARY Docs/manual.chm ChangeLog COPYING
$NOINST_NAME
/Docs/
mysql-noinstall-5.0.25-win32 (or winx64)
# 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
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
mkdir
-p
$NOINST_NAME
/examples/libmysqltest/debug
$NOINST_NAME
/examples/libmysqltest/release
for the resulting package name.
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/
Options are
cp
libmysql/release/myTest.exe
$NOINST_NAME
/examples/libmysqltest/release/
--embedded Pack the embedded server and give error if not built.
mkdir
-p
$NOINST_NAME
/examples/tests
The default is to pack it if it is built.
cp
tests/
*
.res tests/
*
.tst tests/
*
.pl tests/
*
.c
$NOINST_NAME
/examples/tests/
--no-embedded Don't pack the embedded server even if built
mkdir
-p
$NOINST_NAME
/include
--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
\
cp
include/conf
*
.h
\
include/mysql
*
.h
\
include/mysql
*
.h
\
include/errmsg.h
\
include/errmsg.h
\
...
@@ -48,69 +234,122 @@ cp include/conf*.h \
...
@@ -48,69 +234,122 @@ cp include/conf*.h \
include/m_string.h
\
include/m_string.h
\
include/m_ctype.h
\
include/m_ctype.h
\
include/my_global.h
\
include/my_global.h
\
include/typelib.h
$NOINST_NAME
/include/
include/typelib.h
$DESTDIR
/include/
cp
libmysql/libmysql.def
$NOINST_NAME
/include/
cp
libmysql/libmysql.def
$DESTDIR
/include/
cp
libmysqld/libmysqld.def
$NOINST_NAME
/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/debug/libmysql.dll
\
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
\
libmysql/debug/libmysql.lib
\
client/debug/mysqlclient.lib
\
client/debug/mysqlclient.lib
\
mysys/debug/mysys.lib
\
mysys/debug/mysys.lib
\
regex/debug/regex.lib
\
regex/debug/regex.lib
\
strings/debug/strings.lib
\
strings/debug/strings.lib
\
zlib/debug/zlib.lib
$NOINST_NAME
/lib/debug/
zlib/debug/zlib.lib
$DESTDIR
/lib/debug/
cp
libmysql/release/libmysql.dll
\
fi
libmysql/release/libmysql.lib
\
client/release/mysqlclient.lib
\
# FIXME sort this out...
regex/release/regex.lib
\
cp
mysys/
$TARGET
/mysys.lib
$DESTDIR
/lib/opt/mysys_tls.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
# Copy the test directory
# ----------------------------------------------------------------------
cp
support-files/my-
*
.ini
$NOINST_NAME
/
mkdir
-p
$DESTDIR
/mysql-test/include
$DESTDIR
/mysql-test/lib
\
mkdir
-p
$NOINST_NAME
/mysql-test/include
$NOINST_NAME
/mysql-test/lib
\
$DESTDIR
/mysql-test/r
$DESTDIR
/mysql-test/std_data
\
$NOINST_NAME
/mysql-test/r
$NOINST_NAME
/mysql-test/std_data
\
$DESTDIR
/mysql-test/t
$NOINST_NAME
/mysql-test/t
$NOINST_NAME
/mysql-test/extra
cp
mysql-test/mysql-test-run.pl
$DESTDIR
/mysql-test/
cp
mysql-test/mysql-test-run.pl
$NOINST_NAME
/mysql-test/
cp
mysql-test/README
$DESTDIR
/mysql-test/
cp
mysql-test/README
$NOINST_NAME
/mysql-test/
cp
mysql-test/install_test_db.sh
$DESTDIR
/mysql-test/install_test_db
cp
mysql-test/install_test_db.sh
$NOINST_NAME
/mysql-test/install_test_db
cp
mysql-test/include/
*
.inc
$DESTDIR
/mysql-test/include/
cp
mysql-test/include/
*
.inc
$NOINST_NAME
/mysql-test/include/
cp
mysql-test/lib/
*
.pl
$DESTDIR
/mysql-test/lib/
cp
mysql-test/lib/
*
.pl
$NOINST_NAME
/mysql-test/lib/
cp
mysql-test/lib/
*
.sql
$DESTDIR
/mysql-test/lib/
cp
mysql-test/lib/
*
.sql
$NOINST_NAME
/mysql-test/lib/
cp
mysql-test/r/
*
.require
$DESTDIR
/mysql-test/r/
cp
mysql-test/r/
*
.require
$NOINST_NAME
/mysql-test/r/
# Need this trick, or we get "argument list too long".
# 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/
)
(
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/std_data/Moscow_leap
$DESTDIR
/mysql-test/std_data/
cp
mysql-test/t/
*
.disabled
$NOINST_NAME
/mysql-test/t/
cp
mysql-test/std_data/des_key_file
$DESTDIR
/mysql-test/std_data/
cp
mysql-test/t/
*
.opt
$NOINST_NAME
/mysql-test/t/
cp
mysql-test/std_data/
*
.000001
$DESTDIR
/mysql-test/std_data/
cp
mysql-test/t/
*
.sh
$NOINST_NAME
/mysql-test/t/
cp
mysql-test/std_data/
*
.cnf
$DESTDIR
/mysql-test/std_data/
cp
mysql-test/t/
*
.slave-mi
$NOINST_NAME
/mysql-test/t/
cp
mysql-test/std_data/
*
.dat
$DESTDIR
/mysql-test/std_data/
cp
mysql-test/t/
*
.sql
$NOINST_NAME
/mysql-test/t/
cp
mysql-test/std_data/
*
.frm
$DESTDIR
/mysql-test/std_data/
cp
mysql-test/t/
*
.def
$NOINST_NAME
/mysql-test/t/
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/
)
(
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
# Note that this will not copy "extra" if a soft link
# rather better than substituting random Unix paths and architecture names
if
[
-d
mysql-test/extra
]
;
then
# from the Unix bootstrap host. Not sure what the point is of including these
mkdir
-p
$DESTDIR
/mysql-test/extra
# shell scripts in the Windows packaging in any case.
cp
-pR
mysql-test/extra/
*
$DESTDIR
/mysql-test/extra/
mkdir
-p
$NOINST_NAME
/scripts
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
\
for
i
in
`
cd
scripts
&&
ls
`
;
do
\
if
echo
$i
|
grep
-q
'\.sh'
;
then
\
if
echo
$i
|
grep
-q
'\.sh'
;
then
\
cp
scripts/
$i
$
NOINST_NAME
/scripts/
`
echo
$i
|
sed
-e
's/\.sh$//'
`
;
\
cp
scripts/
$i
$
DESTDIR
/scripts/
`
echo
$i
|
sed
-e
's/\.sh$//'
`
;
\
el
se
if
[
$i
=
Makefile.am
-o
$i
=
Makefile.in
-o
-e
scripts/
$i
.sh
]
;
then
\
elif
[
$i
=
Makefile.am
-o
$i
=
Makefile.in
-o
-e
scripts/
$i
.sh
]
;
then
\
:
;
\
:
;
\
else
\
else
\
cp
scripts/
$i
$NOINST_NAME
/scripts/
$i
;
\
cp
scripts/
$i
$DESTDIR
/scripts/
$i
;
\
fi
;
fi
;
\
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
done
cp
-dpR
sql/share
$NOINST_NAME
/
# ----------------------------------------------------------------------
cp
-dpR
sql-bench
$NOINST_NAME
/
# Finally creat the ZIP archive
rm
-f
$NOINST_NAME
/sql-bench/
*
.sh
$NOINST_NAME
/sql-bench/Makefile
*
# ----------------------------------------------------------------------
zip
-r
$NOINST_NAME
.zip
$NOINST_NAME
rm
-f
$NOINST_NAME
.zip
rm
-Rf
$NOINST_NAME
zip
-r
$NOINST_NAME
.zip
$DESTDIR
rm
-Rf
$DESTDIR
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment