Skip to content

Commit 966b715

Browse files
committed
use PIC flags associated w/R configuration
1 parent 629989e commit 966b715

File tree

3 files changed

+68
-14
lines changed

3 files changed

+68
-14
lines changed

configure

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -643,7 +643,11 @@ PACKAGE_URL=''
643643

644644
ac_subst_vars='LTLIBOBJS
645645
LIBOBJS
646-
R_CXX11_PREFIX
646+
STDVER
647+
CXX11PICFLAGS
648+
CXX11STD
649+
CXX11
650+
CC
647651
target_alias
648652
host_alias
649653
build_alias
@@ -1734,15 +1738,40 @@ as_arg_v2="3.4.0"
17341738
awk "$as_awk_strverscmp" v1="$as_arg_v1" v2="$as_arg_v2" /dev/null
17351739
case $? in #(
17361740
1) :
1737-
R_CXX11_PREFIX="CXX1X" ;; #(
1741+
USE_CXX11="no" ;; #(
17381742
0) :
1739-
R_CXX11_PREFIX="CXX11" ;; #(
1743+
USE_CXX11="yes" ;; #(
17401744
2) :
1741-
R_CXX11_PREFIX="CXX11" ;; #(
1745+
USE_CXX11="yes" ;; #(
17421746
*) :
17431747
;;
17441748
esac
17451749

1750+
if test "${USE_CXX11}" = "yes"
1751+
then
1752+
{ $as_echo "$as_me:${as_lineno-$LINENO}: R >= 3.4.0 detected" >&5
1753+
$as_echo "$as_me: R >= 3.4.0 detected" >&6;}
1754+
CC=`"${R_HOME}/bin/R" CMD config CC`
1755+
CXX11=`"${R_HOME}/bin/R" CMD config CXX11`
1756+
CXX11STD=`"${R_HOME}/bin/R" CMD config CXX11STD`
1757+
CXX11PICFLAGS=`"${R_HOME}/bin/R" CMD config CXX11PICFLAGS`
1758+
STDVER=c++11
1759+
else
1760+
{ $as_echo "$as_me:${as_lineno-$LINENO}: R < 3.4.0 detected" >&5
1761+
$as_echo "$as_me: R < 3.4.0 detected" >&6;}
1762+
CC=`"${R_HOME}/bin/R" CMD config CC`
1763+
CXX11=`"${R_HOME}/bin/R" CMD config CXX1X`
1764+
CXX11STD=`"${R_HOME}/bin/R" CMD config CXX1XSTD`
1765+
CXX11PICFLAGS=`"${R_HOME}/bin/R" CMD config CXX1XPICFLAGS`
1766+
STDVER=c++0x
1767+
fi
1768+
1769+
1770+
1771+
1772+
1773+
1774+
17461775
ac_config_files="$ac_config_files src/Makevars"
17471776

17481777
cat >confcache <<\_ACEOF

configure.ac

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,33 @@ fi
77

88
R_VERSION=`"${R_HOME}/bin/R" --vanilla --slave -e "cat(as.character(getRversion()))"`
99
AS_VERSION_COMPARE("${R_VERSION}", "3.4.0",
10-
[R_CXX11_PREFIX="CXX1X"],
11-
[R_CXX11_PREFIX="CXX11"],
12-
[R_CXX11_PREFIX="CXX11"])
13-
AC_SUBST(R_CXX11_PREFIX)
10+
[USE_CXX11="no"],
11+
[USE_CXX11="yes"],
12+
[USE_CXX11="yes"])
13+
14+
if test "${USE_CXX11}" = "yes"
15+
then
16+
AC_MSG_NOTICE([R >= 3.4.0 detected])
17+
CC=`"${R_HOME}/bin/R" CMD config CC`
18+
CXX11=`"${R_HOME}/bin/R" CMD config CXX11`
19+
CXX11STD=`"${R_HOME}/bin/R" CMD config CXX11STD`
20+
CXX11PICFLAGS=`"${R_HOME}/bin/R" CMD config CXX11PICFLAGS`
21+
STDVER=c++11
22+
else
23+
AC_MSG_NOTICE([R < 3.4.0 detected])
24+
CC=`"${R_HOME}/bin/R" CMD config CC`
25+
CXX11=`"${R_HOME}/bin/R" CMD config CXX1X`
26+
CXX11STD=`"${R_HOME}/bin/R" CMD config CXX1XSTD`
27+
CXX11PICFLAGS=`"${R_HOME}/bin/R" CMD config CXX1XPICFLAGS`
28+
STDVER=c++0x
29+
fi
30+
31+
AC_SUBST(CC)
32+
AC_SUBST(CXX11)
33+
AC_SUBST(CXX11STD)
34+
AC_SUBST(CXX11PICFLAGS)
35+
AC_SUBST(STDVER)
36+
1437
AC_CONFIG_FILES([src/Makevars])
1538
AC_OUTPUT
1639

src/Makevars.in

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
# Calls to 'firstword' are used to strip out
22
# a possible '-m64' attached to the CC variable
33
# (or other compiler arguments)
4-
PKG_CPPFLAGS += $(@R_CXX11_PREFIX@STD) -I../inst/include/
4+
PKG_CPPFLAGS += @CXX11STD@ -I../inst/include/
55

66
ifeq ($(OS), Windows_NT)
77

88
USE_TBB=Windows
99
TBB_COPY_PATTERN=tbb*.dll
1010

1111
MAKEFLAGS = -j1
12-
MAKE_CMD = CONLY="$(CC)" CPLUS="$(@R_CXX11_PREFIX@)" make
12+
MAKE = make -e
13+
MAKE_CMD = CONLY="@CC@" CPLUS="@CXX11@" PIC_KEY="@CXX11PICFLAGS@" $(MAKE)
1314

1415
else
1516

@@ -28,7 +29,8 @@ else
2829
endif
2930
endif
3031

31-
MAKE_CMD=$(MAKE)
32+
MAKE += -e
33+
MAKE_CMD = CONLY="@CC@" CPLUS="@CXX11@" PIC_KEY="@CXX11PICFLAGS@" $(MAKE)
3234

3335
endif
3436

@@ -74,11 +76,11 @@ tbb:
7476
mkdir -p ../inst/lib/$(ARCH_DIR); \
7577
cd tbb/src; \
7678
if [ -n "$(shell echo $(CC) | grep clang)" ]; then \
77-
$(MAKE_CMD) stdver=c++0x compiler=clang $(MAKE_ARGS); \
79+
$(MAKE_CMD) stdver=@STDVER@ compiler=clang $(MAKE_ARGS); \
7880
elif [ -n "$(shell echo $(CC) | grep gcc)" ]; then \
79-
$(MAKE_CMD) stdver=c++0x compiler=gcc $(MAKE_ARGS); \
81+
$(MAKE_CMD) stdver=@STDVER@ compiler=gcc $(MAKE_ARGS); \
8082
else \
81-
$(MAKE_CMD) stdver=c++0x $(MAKE_ARGS); \
83+
$(MAKE_CMD) stdver=@STDVER@ $(MAKE_ARGS); \
8284
fi; \
8385
cd ../..; \
8486
cp tbb/build/lib_release/$(TBB_COPY_PATTERN) ../inst/lib/$(ARCH_DIR)

0 commit comments

Comments
 (0)