-
Notifications
You must be signed in to change notification settings - Fork 3
/
configure
executable file
·145 lines (129 loc) · 5.79 KB
/
configure
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
140
141
142
143
144
145
# Based on davidgohel/gdtools package source with minimal modifications:
# https://github.com/davidgohel/gdtools/blob/master/configure
# Anticonf script by Jeroen Ooms (2020)
# The script will try 'pkg-config' to find required cflags and ldflags.
# Make sure this executable is in PATH when installing the package.
# Alternatively, you can set INCLUDE_DIR and LIB_DIR manually:
# R CMD INSTALL --configure-vars='INCLUDE_DIR=/.../include LIB_DIR=/.../lib'
# Library settings
PKG_CONFIG_NAME="cairo freetype2"
PKG_DEB_NAME="libcairo2-dev"
PKG_RPM_NAME="cairo-devel"
PKG_CSW_NAME="libcairo_dev"
PKG_BREW_NAME="cairo"
PKG_LIBS="-lcairo -lfreetype"
PKG_TEST_FILE="src/sysdep_tests/sysdep_cairo.c"
# Prefer static linking on MacOS
if [ `uname` = "Darwin" ]; then
PKG_CONFIG_NAME="--static $PKG_CONFIG_NAME"
if [ `arch` = "i386" ]; then
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/opt/libffi/lib/pkgconfig"
fi
fi
# Use pkg-config if available
if [ `command -v pkg-config` ]; then
PKGCONFIG_CFLAGS=`pkg-config --cflags ${PKG_CONFIG_NAME}`
PKGCONFIG_LIBS=`pkg-config --libs ${PKG_CONFIG_NAME}`
fi
# On CRAN do not use pkgconfig cairo (which depends on XQuartz)
if [ -d "/Builds/CRAN-QA-Simon" ] || [ -d "/Volumes/Builds" ]; then
unset PKGCONFIG_CFLAGS
unset PKGCONFIG_LIBS
fi
# Note that cflags may be empty in case of success
if [ "$INCLUDE_DIR" ] || [ "$LIB_DIR" ]; then
echo "Found INCLUDE_DIR and/or LIB_DIR!"
PKG_CFLAGS="-I$INCLUDE_DIR $PKG_CFLAGS"
PKG_LIBS="-L$LIB_DIR $PKG_LIBS"
elif [ "$PKGCONFIG_CFLAGS" ] || [ "$PKGCONFIG_LIBS" ]; then
echo "Found pkg-config cflags and libs!"
PKG_CFLAGS=${PKGCONFIG_CFLAGS}
PKG_LIBS=${PKGCONFIG_LIBS}
elif [ `uname` = "Darwin" ]; then
brew --version 2>/dev/null
if [ $? -eq 0 ]; then
BREWDIR=`brew --prefix`
PKG_CFLAGS="-I$BREWDIR/include/cairo -I$BREWDIR/include/fontconfig -I$BREWDIR/include/freetype2"
PKG_LIBS="-L$BREWDIR/lib $PKG_LIBS"
else
curl -sfL "https://autobrew.github.io/scripts/cairo" > autobrew
. autobrew
fi
fi
# Find compiler
CC=`${R_HOME}/bin/R CMD config CC`
CFLAGS=`${R_HOME}/bin/R CMD config CFLAGS`
CPPFLAGS=`${R_HOME}/bin/R CMD config CPPFLAGS`
# For debugging
echo "Using PKG_CFLAGS=$PKG_CFLAGS"
echo "Using PKG_LIBS=$PKG_LIBS"
# Test configuration
${CC} ${CPPFLAGS} ${PKG_CFLAGS} ${CFLAGS} -E ${PKG_TEST_FILE} >/dev/null 2>configure.log
if [ $? -ne 0 ]; then
echo "------------------------------[ CAIRO ]---------------------------------"
echo "Info: Configuration failed to find cairo system library."
echo "httpgd is fully functional without cairo, but some plot file formats"
echo "will not be available."
echo "If you want to install cairo see below error for troubleshooting."
echo "-----------------------------[ ANTICONF ]-------------------------------"
echo "Configuration failed to find libraries. Try installing:"
echo " * deb: $PKG_DEB_NAME (Debian, Ubuntu)"
echo " * rpm: $PKG_RPM_NAME (Fedora, CentOS, RHEL)"
echo " * csw: $PKG_CSW_NAME (Solaris)"
echo " * brew: $PKG_BREW_NAME (OSX)"
echo "If $PKG_CONFIG_NAME are already installed, check that 'pkg-config' is in your"
echo "PATH and PKG_CONFIG_PATH contains a $PKG_CONFIG_NAME.pc file. If pkg-config"
echo "is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:"
echo "R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'"
echo "---------------------------[ ERROR MESSAGE ]----------------------------"
cat configure.log
echo "------------------------------------------------------------------------"
PKG_CFLAGS="-DUNIGD_NO_CAIRO"
PKG_LIBS=""
fi
# Library settings
PKG_LIBTIFF_CONFIG_NAME="libtiff-4"
PKG_LIBTIFF_DEB_NAME="libtiff-dev"
PKG_LIBTIFF_RPM_NAME="libtiff-devel"
PKG_LIBTIFF_BREW_NAME="libtiff"
PKG_LIBTIFF_TEST_FILE="src/sysdep_tests/sysdep_libtiff.cpp"
PKG_LIBTIFF_LIBS="-ltiff -ljpeg"
# Use pkg-config if available
if [ $(command -v pkg-config) ]; then
PKG_LIBTIFF_CFLAGS=$(pkg-config --cflags --silence-errors $PKG_LIBTIFF_CONFIG_NAME)
PKG_LIBTIFF_LIBS="$(pkg-config --libs $PKG_LIBTIFF_CONFIG_NAME) -ltiffxx "
fi
echo "Using PKG_LIBTIFF_CFLAGS=$PKG_LIBTIFF_CFLAGS"
echo "Using PKG_LIBTIFF_LIBS=$PKG_LIBTIFF_LIBS"
# Find compiler
CXX=`${R_HOME}/bin/R CMD config CXX`
CXXFLAGS=`${R_HOME}/bin/R CMD config CXXFLAGS`
CPPFLAGS=`${R_HOME}/bin/R CMD config CPPFLAGS`
# Test configuration
${CXX} ${CPPFLAGS} ${PKG_LIBTIFF_CFLAGS} ${CFLAGS} ${PKG_LIBTIFF_TEST_FILE} -o tmp_libtiff_test >/dev/null 2>configure.log
# Customize the error
if [ $? -ne 0 ]; then
echo "------------------------------[ WARNING ]---------------------------"
echo "Info: Configuration failed to find $PKG_LIBTIFF_CONFIG_NAME system library."
echo "httpgd is fully functional without $PKG_LIBTIFF_CONFIG_NAME, but some plot file formats"
echo "will not be available."
echo "If you want to install $PKG_LIBTIFF_CONFIG_NAME see below error for troubleshooting."
echo "------------------------- ANTICONF ERROR ---------------------------"
echo "Configuration failed because $PKG_LIBTIFF_CONFIG_NAME was not found. Try installing:"
echo " * deb: $PKG_LIBTIFF_DEB_NAME (Debian, Ubuntu, etc)"
echo " * rpm: $PKG_LIBTIFF_RPM_NAME (Fedora, EPEL)"
echo " * brew: $PKG_LIBTIFF_BREW_NAME (OSX)"
echo "If $PKG_LIBTIFF_CONFIG_NAME is already installed, check that 'pkg-config' is in your"
echo "PATH and PKG_CONFIG_PATH contains a $PKG_LIBTIFF_CONFIG_NAME.pc file. If pkg-config"
echo "is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:"
echo "R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'"
echo "--------------------------------------------------------------------"
PKG_LIBTIFF_CFLAGS="-DUNIGD_NO_TIFF"
PKG_LIBTIFF_LIBS=""
fi
# remove test file
rm -f tmp_libtiff_test
# Write to Makevars
sed -e "s|@cflags@|$PKG_CFLAGS $PKG_LIBTIFF_CFLAGS|" -e "s|@libs@|$PKG_LIBS $PKG_LIBTIFF_LIBS|" src/Makevars.in > src/Makevars
# Success
exit 0