~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to scripts/make_win_bin_dist

Deleted tons of pointless garbage from scripts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/sh
2
 
# Copyright (C) 2006 MySQL AB
3
 
4
 
# This program is free software; you can redistribute it and/or modify
5
 
# it under the terms of the GNU General Public License as published by
6
 
# the Free Software Foundation; version 2 of the License.
7
 
8
 
# This program is distributed in the hope that it will be useful,
9
 
# but WITHOUT ANY WARRANTY; without even the implied warranty of
10
 
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11
 
# GNU General Public License for more details.
12
 
13
 
# You should have received a copy of the GNU General Public License
14
 
# along with this program; if not, write to the Free Software
15
 
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
16
 
 
17
 
# Exit if failing to copy, we want exact specifications, not
18
 
# just "what happen to be built".
19
 
set -e
20
 
 
21
 
# ----------------------------------------------------------------------
22
 
# Read first argument that is the base name of the resulting TAR file.
23
 
# See usage() function below for a description on the arguments.
24
 
#
25
 
# NOTE: We will read the rest of the command line later on.
26
 
# NOTE: Pattern matching with "{..,..}" can't be used, not portable.
27
 
# ----------------------------------------------------------------------
28
 
 
29
 
# FIXME why "libmysql.dll" installed both in "bin" and "lib/opt"?
30
 
 
31
 
usage()
32
 
{
33
 
  echo <<EOF
34
 
Usage: make_win_bin_dist [ options ] package-base-name [ copy-defs... ]
35
 
 
36
 
This is a script to run from the top of a source tree built on Windows.
37
 
The "package-base-name" argument should be something like
38
 
 
39
 
  mysql-noinstall-5.0.25-win32  (or winx64)
40
 
 
41
 
and will become the name of the directory of the unpacked ZIP (stripping
42
 
away the "noinstall" part of the ZIP file name if any) and the base
43
 
for the resulting package name.
44
 
 
45
 
Options are
46
 
 
47
 
  --embedded       Pack the embedded server and give error if not built.
48
 
                   The default is to pack it if it is built.
49
 
 
50
 
  --no-embedded    Don't pack the embedded server even if built
51
 
 
52
 
  --debug          Pack the debug binaries and give error if not built.
53
 
                   The default is to pack them if they are built.
54
 
 
55
 
  --no-debug       Don't pack the debug binaries even if built
56
 
 
57
 
  --only-debug     The target for this build was "Debug", and we just
58
 
                   want to replace the normal binaries with debug
59
 
                   versions, i.e. no separate "debug" directories.
60
 
 
61
 
  --exe-suffix=SUF Add a suffix to the filename part of the "mysqld" binary.
62
 
 
63
 
As you might want to include files of directories from other builds
64
 
(like a "mysqld-max.exe" server), you can instruct this script to copy
65
 
them in for you. This is the "copy-def" arguments, and they are of the
66
 
form
67
 
 
68
 
  relative-dest-name=source-name .....
69
 
 
70
 
i.e. can be something like
71
 
 
72
 
  bin/mysqld-max.exe=../my-max-build/sql/release/mysqld.exe
73
 
 
74
 
If you specify a directory the whole directory will be copied.
75
 
 
76
 
EOF
77
 
  exit 1
78
 
}
79
 
 
80
 
# ----------------------------------------------------------------------
81
 
# We need to be at the top of a source tree, check that we are
82
 
# ----------------------------------------------------------------------
83
 
 
84
 
if [ ! -d "sql" ] ; then
85
 
  echo "You need to run this script from inside the source tree"
86
 
  usage
87
 
fi
88
 
 
89
 
# ----------------------------------------------------------------------
90
 
# Actual argument processing, first part
91
 
# ----------------------------------------------------------------------
92
 
 
93
 
NOINST_NAME=""
94
 
TARGET="release"
95
 
PACK_EMBEDDED=""                # Could be "no", "yes" or empty
96
 
PACK_DEBUG=""                   # Could be "no", "yes" or empty
97
 
EXE_SUFFIX=""
98
 
 
99
 
for arg do
100
 
  shift
101
 
  case "$arg" in
102
 
    --embedded)       PACK_EMBEDDED="yes" ;;
103
 
    --no-embedded)    PACK_EMBEDDED="no" ;;
104
 
    --debug)          PACK_DEBUG="yes" ;;
105
 
    --no-debug)       PACK_DEBUG="no" ;;
106
 
    --only-debug)     TARGET="debug" ; PACK_DEBUG="no" ;;
107
 
    --exe-suffix=*)   EXE_SUFFIX=`echo "$arg" | sed -e "s,--exe-suffix=,,"` ;;
108
 
    -*)
109
 
      echo "Unknown argument '$arg'"
110
 
      usage
111
 
      ;;
112
 
    *)
113
 
      NOINST_NAME="$arg"
114
 
      break
115
 
  esac
116
 
done
117
 
 
118
 
if [ x"$NOINST_NAME" = x"" ] ; then
119
 
  echo "No base package name given"
120
 
  usage
121
 
fi
122
 
DESTDIR=`echo $NOINST_NAME | sed 's/-noinstall-/-/'`
123
 
 
124
 
if [ -e $DESTDIR ] ; then
125
 
  echo "Please remove the old $DESTDIR before running this script"
126
 
  usage
127
 
fi
128
 
 
129
 
trap 'echo "Clearning up and exiting..." ; rm -fr $DESTDIR; exit 1' ERR
130
 
 
131
 
# ----------------------------------------------------------------------
132
 
# Adjust target name if needed, release with debug info has another name
133
 
# ----------------------------------------------------------------------
134
 
 
135
 
if [ x"$TARGET" = x"release" -a -f "client/relwithdebinfo/mysql.exe" ]
136
 
then
137
 
  TARGET="relwithdebinfo"
138
 
fi
139
 
 
140
 
# ----------------------------------------------------------------------
141
 
# Copy executables, and client DLL
142
 
# ----------------------------------------------------------------------
143
 
 
144
 
mkdir $DESTDIR
145
 
mkdir $DESTDIR/bin
146
 
cp client/$TARGET/*.exe                                  $DESTDIR/bin/
147
 
cp extra/$TARGET/*.exe                                   $DESTDIR/bin/
148
 
cp storage/myisam/$TARGET/*.exe                          $DESTDIR/bin/
149
 
if [ x"$TARGET" != x"release" ] ; then
150
 
  cp client/$TARGET/mysql.pdb                            $DESTDIR/bin/
151
 
  cp client/$TARGET/mysqladmin.pdb                       $DESTDIR/bin/
152
 
  cp client/$TARGET/mysqlbinlog.pdb                      $DESTDIR/bin/
153
 
  cp client/$TARGET/mysqldump.pdb                        $DESTDIR/bin/
154
 
  cp client/$TARGET/mysqlimport.pdb                      $DESTDIR/bin/
155
 
  cp client/$TARGET/mysqlshow.pdb                        $DESTDIR/bin/
156
 
fi
157
 
cp tests/$TARGET/*.exe                                   $DESTDIR/bin/
158
 
cp libmysql/$TARGET/libmysql.dll                         $DESTDIR/bin/
159
 
 
160
 
cp sql/$TARGET/mysqld.exe                $DESTDIR/bin/mysqld$EXE_SUFFIX.exe
161
 
cp sql/$TARGET/mysqld.map                $DESTDIR/bin/mysqld$EXE_SUFFIX.map
162
 
if [ x"$TARGET" != x"release" ] ; then
163
 
  cp sql/$TARGET/mysqld.pdb              $DESTDIR/bin/mysqld$EXE_SUFFIX.pdb
164
 
fi
165
 
 
166
 
if [ x"$PACK_DEBUG" = x"" -a -f "sql/debug/mysqld.exe" -o \
167
 
     x"$PACK_DEBUG" = x"yes" ] ; then
168
 
  cp sql/debug/mysqld.exe                $DESTDIR/bin/mysqld-debug.exe
169
 
  cp sql/debug/mysqld.pdb                $DESTDIR/bin/mysqld-debug.pdb
170
 
  cp sql/debug/mysqld.map                $DESTDIR/bin/mysqld-debug.map
171
 
fi
172
 
 
173
 
# ----------------------------------------------------------------------
174
 
# Copy data directory, readme files etc
175
 
# ----------------------------------------------------------------------
176
 
 
177
 
if [ -d win/data ] ; then
178
 
  cp -pR win/data $DESTDIR/
179
 
fi
180
 
 
181
 
mkdir $DESTDIR/Docs
182
 
cp Docs/INSTALL-BINARY    $DESTDIR/Docs/
183
 
cp Docs/manual.chm        $DESTDIR/Docs/ || /bin/true
184
 
cp ChangeLog              $DESTDIR/Docs/ || /bin/true
185
 
cp support-files/my-*.ini $DESTDIR/
186
 
 
187
 
if [ -f COPYING ] ; then
188
 
  cp COPYING EXCEPTIONS-CLIENT $DESTDIR/
189
 
  cp COPYING                   $DESTDIR/Docs/
190
 
fi
191
 
 
192
 
# ----------------------------------------------------------------------
193
 
# These will be filled in when we enable embedded. Note that if no
194
 
# argument is given, it is copied if exists, else a check is done.
195
 
# ----------------------------------------------------------------------
196
 
 
197
 
copy_embedded()
198
 
{
199
 
  mkdir -p $DESTDIR/Embedded/DLL/release \
200
 
           $DESTDIR/Embedded/static/release \
201
 
           $DESTDIR/include
202
 
  cp libmysqld/libmysqld.def           $DESTDIR/include/
203
 
  cp libmysqld/$TARGET/mysqlserver.lib $DESTDIR/Embedded/static/release/
204
 
  cp libmysqld/$TARGET/libmysqld.dll   $DESTDIR/Embedded/DLL/release/
205
 
  cp libmysqld/$TARGET/libmysqld.exp   $DESTDIR/Embedded/DLL/release/
206
 
  cp libmysqld/$TARGET/libmysqld.lib   $DESTDIR/Embedded/DLL/release/
207
 
  if [ x"$TARGET" != x"release" ] ; then
208
 
    cp libmysqld/$TARGET/mysqlserver.pdb $DESTDIR/Embedded/static/release/
209
 
    cp libmysqld/$TARGET/libmysqld.pdb   $DESTDIR/Embedded/DLL/release/
210
 
  fi
211
 
 
212
 
  if [ x"$PACK_DEBUG" = x"" -a -f "libmysqld/debug/libmysqld.lib" -o \
213
 
       x"$PACK_DEBUG" = x"yes" ] ; then
214
 
    mkdir -p $DESTDIR/Embedded/DLL/debug \
215
 
             $DESTDIR/Embedded/static/debug
216
 
    cp libmysqld/debug/mysqlserver.lib   $DESTDIR/Embedded/static/debug/
217
 
    cp libmysqld/debug/mysqlserver.pdb   $DESTDIR/Embedded/static/debug/
218
 
    cp libmysqld/debug/libmysqld.dll     $DESTDIR/Embedded/DLL/debug/
219
 
    cp libmysqld/debug/libmysqld.exp     $DESTDIR/Embedded/DLL/debug/
220
 
    cp libmysqld/debug/libmysqld.lib     $DESTDIR/Embedded/DLL/debug/
221
 
    cp libmysqld/debug/libmysqld.pdb     $DESTDIR/Embedded/DLL/debug/
222
 
  fi
223
 
}
224
 
 
225
 
if [ x"$PACK_EMBEDDED" = x"" -a \
226
 
     -f "libmysqld/$TARGET/mysqlserver.lib" -a \
227
 
     -f "libmysqld/$TARGET/libmysqld.lib" -o \
228
 
     x"$PACK_EMBEDDED" = x"yes" ] ; then
229
 
  copy_embedded
230
 
fi
231
 
 
232
 
# ----------------------------------------------------------------------
233
 
# Note: Make sure to sync with include/Makefile.am and WiX installer
234
 
# XML specifications
235
 
# ----------------------------------------------------------------------
236
 
 
237
 
mkdir -p $DESTDIR/include
238
 
cp include/mysql.h \
239
 
   include/mysql_com.h \
240
 
   include/mysql_time.h \
241
 
   include/my_list.h \
242
 
   include/my_alloc.h \
243
 
   include/typelib.h \
244
 
   include/my_dbug.h \
245
 
   include/m_string.h \
246
 
   include/my_sys.h \
247
 
   include/my_xml.h \
248
 
   include/mysql_embed.h \
249
 
   include/my_pthread.h \
250
 
   include/my_no_pthread.h \
251
 
   include/decimal.h \
252
 
   include/errmsg.h \
253
 
   include/my_global.h \
254
 
   include/my_net.h \
255
 
   include/my_getopt.h \
256
 
   include/sslopt-longopts.h \
257
 
   include/my_dir.h \
258
 
   include/sslopt-vars.h \
259
 
   include/sslopt-case.h \
260
 
   include/sql_common.h \
261
 
   include/keycache.h \
262
 
   include/m_ctype.h \
263
 
   include/my_attribute.h \
264
 
   include/mysqld_error.h \
265
 
   include/sql_state.h \
266
 
   include/mysqld_ername.h \
267
 
   include/mysql_version.h \
268
 
   include/config-win.h \
269
 
   libmysql/libmysql.def \
270
 
   $DESTDIR/include/
271
 
 
272
 
mkdir -p $DESTDIR/include/mysql
273
 
cp include/mysql/plugin.h $DESTDIR/include/mysql/
274
 
 
275
 
# ----------------------------------------------------------------------
276
 
# Client libraries, and other libraries
277
 
# ----------------------------------------------------------------------
278
 
 
279
 
mkdir -p $DESTDIR/lib/opt
280
 
cp libmysql/$TARGET/libmysql.dll \
281
 
   libmysql/$TARGET/libmysql.lib \
282
 
   libmysql/$TARGET/mysqlclient.lib \
283
 
   mysys/$TARGET/mysys.lib \
284
 
   regex/$TARGET/regex.lib \
285
 
   strings/$TARGET/strings.lib \
286
 
   zlib/$TARGET/zlib.lib $DESTDIR/lib/opt/
287
 
 
288
 
if [ x"$TARGET" != x"release" ] ; then
289
 
  cp libmysql/$TARGET/libmysql.pdb \
290
 
     libmysql/$TARGET/mysqlclient.pdb \
291
 
     mysys/$TARGET/mysys.pdb \
292
 
     regex/$TARGET/regex.pdb \
293
 
     strings/$TARGET/strings.pdb \
294
 
     zlib/$TARGET/zlib.pdb $DESTDIR/lib/opt/
295
 
fi
296
 
 
297
 
if [ x"$PACK_DEBUG" = x"" -a -f "libmysql/debug/libmysql.lib" -o \
298
 
     x"$PACK_DEBUG" = x"yes" ] ; then
299
 
  mkdir -p $DESTDIR/lib/debug
300
 
  cp libmysql/debug/libmysql.dll \
301
 
     libmysql/debug/libmysql.lib \
302
 
     libmysql/debug/libmysql.pdb \
303
 
     libmysql/debug/mysqlclient.lib \
304
 
     libmysql/debug/mysqlclient.pdb \
305
 
     mysys/debug/mysys.lib \
306
 
     mysys/debug/mysys.pdb \
307
 
     regex/debug/regex.lib \
308
 
     regex/debug/regex.pdb \
309
 
     strings/debug/strings.lib \
310
 
     strings/debug/strings.pdb \
311
 
     zlib/debug/zlib.lib \
312
 
     zlib/debug/zlib.pdb $DESTDIR/lib/debug/
313
 
fi
314
 
 
315
 
# ----------------------------------------------------------------------
316
 
# Copy the test directory
317
 
# ----------------------------------------------------------------------
318
 
 
319
 
mkdir $DESTDIR/mysql-test
320
 
cp mysql-test/mysql-test-run.pl $DESTDIR/mysql-test/
321
 
cp mysql-test/README $DESTDIR/mysql-test/
322
 
cp -R mysql-test/{t,r,include,suite,std_data,lib} $DESTDIR/mysql-test/
323
 
 
324
 
# Note that this will not copy "extra" if a soft link
325
 
if [ -d mysql-test/extra ] ; then
326
 
  mkdir $DESTDIR/mysql-test/extra
327
 
  cp -pR mysql-test/extra/* $DESTDIR/mysql-test/extra/
328
 
fi
329
 
 
330
 
# ----------------------------------------------------------------------
331
 
# Copy what could be usable in the "scripts" directory
332
 
# ----------------------------------------------------------------------
333
 
 
334
 
mysql_scripts="\
335
 
mysql_config.pl \
336
 
mysql_convert_table_format.pl \
337
 
mysql_install_db.pl \
338
 
mysql_secure_installation.pl \
339
 
mysqld_multi.pl \
340
 
mysqldumpslow.pl \
341
 
mysqlhotcopy.pl \
342
 
"
343
 
 
344
 
mkdir -p $DESTDIR/scripts
345
 
 
346
 
for i in $mysql_scripts
347
 
do
348
 
  cp scripts/$i $DESTDIR/scripts/$i
349
 
done
350
 
 
351
 
cp -pR sql/share $DESTDIR/
352
 
cp -pR sql-bench $DESTDIR/
353
 
rm -f $DESTDIR/sql-bench/*.sh $DESTDIR/sql-bench/Makefile*
354
 
 
355
 
# The SQL initialisation code is to be in "share"
356
 
cp scripts/*.sql $DESTDIR/share/
357
 
 
358
 
# ----------------------------------------------------------------------
359
 
# Clean up from possibly copied SCCS directories
360
 
# ----------------------------------------------------------------------
361
 
 
362
 
rm -rf `find $DISTDIR -type d -name SCCS -print`
363
 
 
364
 
# ----------------------------------------------------------------------
365
 
# Copy other files specified on command line DEST=SOURCE
366
 
# ----------------------------------------------------------------------
367
 
 
368
 
for arg do
369
 
  dst=`echo $arg | sed 's/=.*$//'`
370
 
  src=`echo $arg | sed 's/^.*=//'`
371
 
 
372
 
  if [ x"$dst" = x"" -o x"$src" = x"" ] ; then
373
 
    echo "Invalid specification of what to copy"
374
 
    usage
375
 
  fi
376
 
 
377
 
  mkdir -p `dirname $DESTDIR/$dst`
378
 
  cp -pR "$src" $DESTDIR/$dst
379
 
done
380
 
 
381
 
# ----------------------------------------------------------------------
382
 
# Finally create the ZIP archive
383
 
# ----------------------------------------------------------------------
384
 
 
385
 
rm -f $NOINST_NAME.zip
386
 
zip -r $NOINST_NAME.zip $DESTDIR
387
 
rm -Rf $DESTDIR