forked from nx10/httpgd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfigure
executable file
·98 lines (87 loc) · 3.63 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
# 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/tests/sysdeps.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="-DHTTPGD_NO_CAIRO"
PKG_LIBS=""
fi
# Write to Makevars
sed -e "s|@cflags@|$PKG_CFLAGS|" -e "s|@libs@|$PKG_LIBS|" src/Makevars.in > src/Makevars
# Success
exit 0