Browse Source

anticonf but no windows version since no libs for there yet

latest
boB Rudis 2 years ago
parent
commit
3b32d3c1f6
No known key found for this signature in database GPG Key ID: 1D7529BE14E2BBA9
5 changed files with 86 additions and 3 deletions
  1. +2
    -0
      cleanup
  2. +68
    -0
      configure
  3. +1
    -1
      man/suffix_extract2.Rd
  4. +7
    -2
      src/Makevars
  5. +8
    -0
      src/Makevars.in

+ 2
- 0
cleanup View File

@@ -0,0 +1,2 @@
#!/bin/sh
rm -f src/Makevars

+ 68
- 0
configure View File

@@ -0,0 +1,68 @@
# Anticonf (tm) script inspired by Jeroen Ooms (2015)
# This script will query 'pkg-config' for the required cflags and ldflags.
# If pkg-config is unavailable or does not find the library, try setting
# INCLUDE_DIR and LIB_DIR manually via e.g:
# R CMD INSTALL --configure-vars='INCLUDE_DIR=/.../include LIB_DIR=/.../lib'

# Library settings
PKG_CONFIG_NAME="libpsl"
PKG_DEB_NAME="libpsl-dev"
PKG_RPM_NAME="libpsl-devel"
PKG_CSW_NAME="libpsl_dev"
PKG_TEST_HEADER="<libpsl.h>"
PKG_LIBS="-lpsl"
PKG_CFLAGS=""

# Use pkg-config if available
pkg-config --version >/dev/null 2>&1
if [ $? -eq 0 ]; then
PKGCONFIG_CFLAGS=`pkg-config --cflags ${PKG_CONFIG_NAME}`
case "$PKGCONFIG_CFLAGS" in
*PSL_STATICLIB*) PKGCONFIG_LIBS=`pkg-config --libs --static ${PKG_CONFIG_NAME}`;;
*) PKGCONFIG_LIBS=`pkg-config --libs ${PKG_CONFIG_NAME}`;;
esac
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}
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
echo "#include $PKG_TEST_HEADER" | ${CC} ${CPPFLAGS} ${PKG_CFLAGS} ${CFLAGS} -E -xc - >/dev/null 2>&1 || R_CONFIG_ERROR=1;

# Customize the error
if [ $R_CONFIG_ERROR ]; then
echo "------------------------- ANTICONF ERROR ---------------------------"
echo "Configuration failed because $PKG_CONFIG_NAME was not found. Try installing:"
echo " * deb: $PKG_DEB_NAME (Debian, Ubuntu, etc)"
echo " * rpm: $PKG_RPM_NAME (Fedora, CentOS, RHEL)"
echo " * csw: $PKG_CSW_NAME (Solaris)"
echo "If $PKG_CONFIG_NAME is 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 "--------------------------------------------------------------------"
exit 1;
fi

# Write to Makevars
sed -e "s|@cflags@|$PKG_CFLAGS|" -e "s|@libs@|$PKG_LIBS|" src/Makevars.in > src/Makevars

# Success
exit 0

+ 1
- 1
man/suffix_extract2.Rd View File

@@ -2,7 +2,7 @@
% Please edit documentation in R/RcppExports.R
\name{suffix_extract2}
\alias{suffix_extract2}
\title{Separate a domain into component parts}
\title{Separate a domain into component parts (\code{urltools} compatibility function)}
\usage{
suffix_extract2(domains)
}


+ 7
- 2
src/Makevars View File

@@ -1,3 +1,8 @@
CXX_STD = CXX11
PKG_CXXFLAGS =
PKG_LIBS = -L. -lpsl
PKG_CXXFLAGS=-I/usr/local/include
PKG_LIBS=-L/usr/local/lib -lpsl

all: clean

clean:
rm -f $(SHLIB) $(OBJECTS)

+ 8
- 0
src/Makevars.in View File

@@ -0,0 +1,8 @@
CXX_STD = CXX11
PKG_CXXFLAGS=@cflags@
PKG_LIBS=@libs@

all: clean

clean:
rm -f $(SHLIB) $(OBJECTS)

Loading…
Cancel
Save