1
by brian
clean slate |
1 |
#!/bin/sh
|
2 |
# Copyright (C) 2000-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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
16 |
||
17 |
# This script reports various configuration settings that may be needed
|
|
18 |
# when using the MySQL client library.
|
|
19 |
||
20 |
which ()
|
|
21 |
{
|
|
22 |
IFS="${IFS= }"; save_ifs="$IFS"; IFS=':' |
|
23 |
for file
|
|
24 |
do
|
|
25 |
for dir in $PATH |
|
26 |
do
|
|
27 |
if test -f $dir/$file |
|
28 |
then
|
|
29 |
echo "$dir/$file" |
|
30 |
continue 2 |
|
31 |
fi
|
|
32 |
done
|
|
33 |
echo "which: no $file in ($PATH)" |
|
34 |
exit 1 |
|
35 |
done
|
|
36 |
IFS="$save_ifs" |
|
37 |
}
|
|
38 |
||
39 |
#
|
|
40 |
# If we can find the given directory relatively to where mysql_config is
|
|
41 |
# we should use this instead of the incompiled one.
|
|
42 |
# This is to ensure that this script also works with the binary MySQL
|
|
43 |
# version
|
|
44 |
||
45 |
fix_path ()
|
|
46 |
{
|
|
47 |
var=$1 |
|
48 |
shift
|
|
49 |
for filename
|
|
50 |
do
|
|
51 |
path=$basedir/$filename |
|
52 |
if [ -d "$path" ] ; |
|
53 |
then
|
|
54 |
eval "$var"=$path |
|
55 |
return
|
|
56 |
fi
|
|
57 |
done
|
|
58 |
}
|
|
59 |
||
60 |
get_full_path ()
|
|
61 |
{
|
|
62 |
file=$1 |
|
63 |
||
64 |
# if the file is a symlink, try to resolve it
|
|
65 |
if [ -h $file ]; |
|
66 |
then
|
|
67 |
file=`ls -l $file | awk '{ print $NF }'` |
|
68 |
fi
|
|
69 |
||
70 |
case $file in |
|
71 |
/*) echo "$file";; |
|
72 |
*/*) tmp=`pwd`/$file; echo $tmp | sed -e 's;/\./;/;' ;; |
|
73 |
*) which $file ;; |
|
74 |
esac
|
|
75 |
}
|
|
76 |
||
77 |
me=`get_full_path $0` |
|
78 |
||
79 |
basedir=`echo $me | sed -e 's;/bin/mysql_config;;'` |
|
80 |
||
81 |
ldata='@localstatedir@' |
|
82 |
execdir='@libexecdir@' |
|
83 |
bindir='@bindir@' |
|
84 |
||
85 |
# If installed, search for the compiled in directory first (might be "lib64")
|
|
86 |
pkglibdir='@pkglibdir@' |
|
87 |
pkglibdir_rel=`echo $pkglibdir | sed -e "s;^$basedir/;;"` |
|
88 |
fix_path pkglibdir $pkglibdir_rel lib/mysql lib
|
|
89 |
||
90 |
plugindir='@pkgplugindir@' |
|
91 |
||
92 |
pkgincludedir='@pkgincludedir@' |
|
93 |
fix_path pkgincludedir include/mysql include |
|
94 |
||
95 |
version='@VERSION@' |
|
96 |
socket='@MYSQL_UNIX_ADDR@' |
|
97 |
ldflags='@LDFLAGS@' |
|
98 |
||
99 |
if [ @MYSQL_TCP_PORT_DEFAULT@ -eq 0 ]; then |
|
100 |
port=0 |
|
101 |
else
|
|
102 |
port=@MYSQL_TCP_PORT@ |
|
103 |
fi
|
|
104 |
||
105 |
# Create options
|
|
106 |
# We intentionally add a space to the beginning and end of lib strings, simplifies replace later
|
|
28.1.34
by Monty Taylor
Removed ZLIB references and the craziness of whether to build the server or not. |
107 |
libs=" $ldflags -L$pkglibdir -lmysqlclient " |
1
by brian
clean slate |
108 |
libs="$libs @openssl_libs@ @STATIC_NSS_FLAGS@ " |
28.1.34
by Monty Taylor
Removed ZLIB references and the craziness of whether to build the server or not. |
109 |
libs_r=" $ldflags -L$pkglibdir -lmysqlclient_r @LIBS@ @openssl_libs@ " |
28.1.2
by Monty Taylor
First stab at back porting libtool convenience lib patch from telco-6.2 |
110 |
libdir="-L$pkglibdir" |
28.1.34
by Monty Taylor
Removed ZLIB references and the craziness of whether to build the server or not. |
111 |
embedded_libs=" $ldflags -L$pkglibdir -lmysqld @LIBS@ @WRAPLIBS@ @innodb_system_libs@ @openssl_libs@ " |
1
by brian
clean slate |
112 |
|
113 |
if [ -r "$pkglibdir/libmygcc.a" ]; then |
|
114 |
# When linking against the static library with a different version of GCC
|
|
115 |
# from what was used to compile the library, some symbols may not be defined
|
|
116 |
# automatically. We package the libmygcc.a from the build host, to provide
|
|
117 |
# definitions for those. Bugs 4921, 19561, 19817, 21158, etc.
|
|
118 |
libs="$libs -lmygcc " |
|
119 |
libs_r="$libs_r -lmygcc " |
|
120 |
embedded_libs="$embedded_libs -lmygcc " |
|
121 |
fi
|
|
122 |
||
123 |
cflags="-I$pkgincludedir @CFLAGS@ " #note: end space! |
|
124 |
include="-I$pkgincludedir" |
|
125 |
||
126 |
# Remove some options that a client doesn't have to care about
|
|
127 |
# FIXME until we have a --cxxflags, we need to remove -Xa
|
|
128 |
# and -xstrconst to make --cflags usable for Sun Forte C++
|
|
129 |
# FIXME until we have a --cxxflags, we need to remove -AC99
|
|
130 |
# to make --cflags usable for HP C++ (aCC)
|
|
131 |
for remove in DDBUG_OFF DSAFEMALLOC USAFEMALLOC DSAFE_MUTEX \ |
|
132 |
DPEDANTIC_SAFEMALLOC DUNIV_MUST_NOT_INLINE DFORCE_INIT_OF_VARS \
|
|
133 |
DEXTRA_DEBUG DHAVE_purify O 'O[0-9]' 'xO[0-9]' 'W[-A-Za-z]*' \ |
|
134 |
'mtune=[-A-Za-z0-9]*' 'mcpu=[-A-Za-z0-9]*' 'march=[-A-Za-z0-9]*' \ |
|
135 |
Xa xstrconst "xc99=none" AC99 \ |
|
136 |
unroll2 ip mp restrict |
|
137 |
do
|
|
138 |
# The first option we might strip will always have a space before it because
|
|
139 |
# we set -I$pkgincludedir as the first option
|
|
140 |
cflags=`echo "$cflags"|sed -e "s/ -$remove */ /g"` |
|
141 |
done
|
|
142 |
cflags=`echo "$cflags"|sed -e 's/ *\$//'` |
|
143 |
||
144 |
# Same for --libs(_r)
|
|
145 |
for remove in lmtmalloc static-libcxa i-static static-intel
|
|
146 |
do
|
|
147 |
# We know the strings starts with a space
|
|
148 |
libs=`echo "$libs"|sed -e "s/ -$remove */ /g"` |
|
149 |
libs_r=`echo "$libs_r"|sed -e "s/ -$remove */ /g"` |
|
150 |
embedded_libs=`echo "$embedded_libs"|sed -e "s/ -$remove */ /g"` |
|
151 |
done
|
|
152 |
||
153 |
# Strip trailing and ending space if any, and '+' (FIXME why?)
|
|
154 |
libs=`echo "$libs" | sed -e 's; \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'` |
|
155 |
libs_r=`echo "$libs_r" | sed -e 's; \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'` |
|
156 |
embedded_libs=`echo "$embedded_libs" | sed -e 's; \+; ;g' | sed -e 's;^ *;;' | sed -e 's; *\$;;'` |
|
157 |
||
158 |
usage () { |
|
159 |
cat <<EOF
|
|
160 |
Usage: $0 [OPTIONS]
|
|
161 |
Options:
|
|
162 |
--cflags [$cflags]
|
|
163 |
--include [$include]
|
|
164 |
--libs [$libs]
|
|
165 |
--libs_r [$libs_r]
|
|
28.1.2
by Monty Taylor
First stab at back porting libtool convenience lib patch from telco-6.2 |
166 |
--libdir [$libdir]
|
1
by brian
clean slate |
167 |
--plugindir [$plugindir]
|
168 |
--socket [$socket]
|
|
169 |
--port [$port]
|
|
170 |
--version [$version]
|
|
171 |
--libmysqld-libs [$embedded_libs]
|
|
172 |
EOF
|
|
173 |
exit 1 |
|
174 |
}
|
|
175 |
||
176 |
if test $# -le 0; then usage; fi |
|
177 |
||
178 |
while test $# -gt 0; do |
|
179 |
case $1 in |
|
180 |
--cflags) echo "$cflags" ;; |
|
181 |
--include) echo "$include" ;; |
|
182 |
--libs) echo "$libs" ;; |
|
183 |
--libs_r) echo "$libs_r" ;; |
|
28.1.2
by Monty Taylor
First stab at back porting libtool convenience lib patch from telco-6.2 |
184 |
--libdir) echo "$libdir" ;; |
1
by brian
clean slate |
185 |
--plugindir) echo "$plugindir" ;; |
186 |
--socket) echo "$socket" ;; |
|
187 |
--port) echo "$port" ;; |
|
188 |
--version) echo "$version" ;; |
|
189 |
--embedded-libs | --embedded | --libmysqld-libs) echo "$embedded_libs" ;; |
|
190 |
*) usage ;; |
|
191 |
esac
|
|
192 |
||
193 |
shift
|
|
194 |
done
|
|
195 |
||
196 |
#echo "ldata: '"$ldata"'"
|
|
197 |
#echo "execdir: '"$execdir"'"
|
|
198 |
#echo "bindir: '"$bindir"'"
|
|
199 |
#echo "pkglibdir: '"$pkglibdir"'"
|
|
200 |
#echo "pkgincludedir: '"$pkgincludedir"'"
|
|
201 |
#echo "version: '"$version"'"
|
|
202 |
#echo "socket: '"$socket"'"
|
|
203 |
#echo "port: '"$port"'"
|
|
204 |
#echo "ldflags: '"$ldflags"'"
|
|
205 |
#echo "client_libs: '"$client_libs"'"
|
|
206 |
||
207 |
exit 0 |