forked from r-dbi/RMySQL
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfigure
More file actions
executable file
·139 lines (124 loc) · 4.94 KB
/
configure
File metadata and controls
executable file
·139 lines (124 loc) · 4.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# If $MYSQL_DIR is specified, use that
if [ "$MYSQL_DIR" ]; then
echo "PKG_CPPFLAGS= -I$MYSQL_DIR/include" > src/Makevars
echo "PKG_LIBS= -L$MYSQL_DIR/lib -lmysqlclient -lz" >> src/Makevars
exit 0
fi
# Else if $MYSQL_INC is set, use that
if [ "$MYSQL_INC" ]; then
echo "PKG_CPPFLAGS= -I$MYSQL_INC" > src/Makevars
if [ "$MYSQL_LIB" ]; then
echo "PKG_LIBS= -L$MYSQL_LIB -lmysqlclient -lz" >> src/Makevars
else
echo "PKG_LIBS= -lmysqlclient -lz" >> src/Makevars
fi
exit 0
fi
# If the mariadb_config command is availble, use that
if [ $(command -v mariadb_config) ]; then
echo "Found mariadb_config"
MYSQL_CFLAGS=$(mariadb_config --cflags)
MYSQL_LIBS=$(mariadb_config --libs)
echo "PKG_CPPFLAGS=$MYSQL_CFLAGS" > src/Makevars
echo "PKG_LIBS=$MYSQL_LIBS" >> src/Makevars
exit 0
fi
# If the mysql_config command is availble, use that
if [ $(command -v mysql_config) ]; then
echo "Found mysql_config"
MYSQL_CFLAGS=$(mysql_config --cflags)
MYSQL_LIBS=$(mysql_config --libs)
echo "PKG_CPPFLAGS=$MYSQL_CFLAGS" > src/Makevars
echo "PKG_LIBS=$MYSQL_LIBS" >> src/Makevars
exit 0
fi
# Force static linking on OSX to support redistributable binary packages.
if [ $(echo "$OSTYPE" | grep "darwin") ]; then
# Check for the presence of the Mac OS X 'native' package
NATIVEPKG=$(echo /usr/local/mysql-connector-c-*)
if [ -r $NATIVEPKG/include/mysql.h ]; then
echo "Using native mysqlclient from $NATIVEPKG";
echo "PKG_CPPFLAGS= -I$NATIVEPKG/include" > src/Makevars
# Copy the static library
cp -f $NATIVEPKG/lib/libmysqlclient.a ./src/libmysqlstatic.a
echo "PKG_LIBS= -L. -lz -lmysqlstatic" >> src/Makevars
exit 0
else
echo "No native mysqlclient package found."
fi
# Check for mariadb brew package
MARIADBPKG=$(echo /usr/local/Cellar/mariadb/*/)
if [ -r $MARIADBPKG/include/mysql/mysql.h ]; then
echo "Found mariadb in $MARIADBPKG.";
echo "PKG_CPPFLAGS= -I$MARIADBPKG/include/mysql" > src/Makevars
# Copy the static library
cp -f $MARIADBPKG/lib/libmysqlclient.a ./src/libmysqlstatic.a
# This one is dynamically linked against libssl
echo "PKG_LIBS= -L. -lz -lmysqlstatic -lssl" >> src/Makevars
exit 0
else
echo "No mariadb found."
fi
# Use system 'brew' if available
if [ $(command -v brew) ]; then
MYSQLBREWDIR="$(brew --prefix)/Cellar/mysql-connector-c/6.1.6";
if [ ! -r "$MYSQLBREWDIR/include/mysql.h" ]; then
echo "Brewing libmysql...";
brew install ./tools/mysql-connector-c.rb;
fi
if [ -r "$MYSQLBREWDIR/include/mysql.h" ]; then
echo "Brewed libmysql found in $MYSQLBREWDIR";
echo "PKG_CPPFLAGS= -I$MYSQLBREWDIR/include" > src/Makevars
# Force using the static library
cp -f $MYSQLBREWDIR/lib/libmysqlclient.a ./src/libmysqlstatic.a
echo "PKG_LIBS= -L. -lz -lmysqlstatic" >> src/Makevars
exit 0
fi
else
echo "No system brew found."
fi
# Try brewing locally
LOCALBREW="homebrew"
if [ ! -r "$LOCALBREW/bin/brew" ]; then
mkdir -p $LOCALBREW && curl -fsSL https://github.com/Homebrew/homebrew/tarball/master | tar xz --strip 1 -C $LOCALBREW
fi
if [ ! -r "$LOCALBREW/Cellar/mysql-connector-c/6.1.6/include/mysql.h" ]; then
HOMEBREW_CACHE="/tmp" $LOCALBREW/bin/brew install ./tools/mysql-connector-c.rb;
fi
if [ -r "$LOCALBREW/Cellar/mysql-connector-c/6.1.6/include/mysql.h" ]; then
echo "Using local brew from $LOCALBREW."
echo "PKG_CPPFLAGS= -I../$LOCALBREW/Cellar/mysql-connector-c/6.1.6/include/" > src/Makevars
cp -f $LOCALBREW/Cellar/mysql-connector-c/6.1.6/lib/libmysqlclient.a ./src/libmysqlstatic.a
echo "PKG_LIBS= -L. -lz -lmysqlstatic" >> src/Makevars
exit 0;
fi
echo "Failed to install mysql-connector-c."
# Fix for CRAN OSX 10.6
if [ -r /usr/local/mysql/include/mysql.h ]; then
echo "Found mysql /usr/local/mysql. Lets try that then."
echo "PKG_CPPFLAGS= -I/usr/local/mysql/include/" > src/Makevars
echo "PKG_LIBS= -L/usr/local/mysql/lib -lmysqlclient" >> src/Makevars
exit 0
fi
# Fall through on general methods
fi
# Check for presence of system libraires on Linux and friends:
if [ -r /usr/include/mysql/mysql.h ]; then
echo "PKG_CPPFLAGS= -I/usr/include/mysql/" > src/Makevars
elif [ -r /usr/local/include/mysql/mysql.h ]; then
echo "PKG_CPPFLAGS= -I/usr/local/include/mysql/" > src/Makevars
elif [ -r /usr/local/mysql/include/mysql.h ]; then
echo "PKG_CPPFLAGS= -I/usr/local/mysql/include/" > src/Makevars
else
echo "File mysql.h not found. Please install mysql development library, e.g: libmysqlclient-dev (deb) or mariadb-devel (rpm)."
exit 1
fi
if [ -r /usr/lib/mysql ]; then
echo "PKG_LIBS= -L/usr/lib/mysql -lmysqlclient -lz" >> src/Makevars
elif [ -r /usr/lib64/mysql ]; then
echo "PKG_LIBS= -L/usr/lib64/mysql -lmysqlclient -lz" >> src/Makevars
elif [ -r /usr/local/mysql/lib ]; then
echo "PKG_LIBS= -L/usr/local/mysql/lib -lmysqlclient -lz" >> src/Makevars
else
echo "PKG_LIBS= -lmysqlclient -lz" >> src/Makevars
fi