Theres' no Makevars file in this repo
We need to add Makevars/Makevars.win in order to link against librdkafka. It should consist of two options:
- Link against a system include/library if already installed
- Pull and compile and build a librdkafka for the package itself locally
This should pass R CMD CHECK. For examples, refer to: https://github.com/confluentinc/confluent-kafka-python/blob/master/tools/bootstrap-librdkafka.sh http://dirk.eddelbuettel.com/code/rcpp.cranusers.html https://stackoverflow.com/questions/50539270/writing-configure-file-for-an-r-package ... though everything i've read says autconf is not worth it
It's important to note the below has worked on mac but not CentOS
INSTALLDIR = $(shell pwd)
PKG_LIBS = -L$(INSTALLDIR)/librdkafka/src-cpp -lrdkafka++
PKG_CXXFLAGS = -std=c++11 -I$(INSTALLDIR)/librdkafka/src-cpp
.PHONY: all install_librdkadka
all: install_librdkadka
install_librdkadka:
if [ ! -d $(INSTALLDIR)/librdkafka/src-cpp ] ; \
then \
mkdir -p $(INSTALLDIR)/librdkafka && \
cd ../inst && \
tar xzf librdkafka-1.0.0.tar.gz && \
cd librdkafka-1.0.0 && \
./configure --prefix="$(INSTALLDIR)/librdkafka"&& \
$(MAKE) && \
$(MAKE) install && \
mv * $(INSTALLDIR)/librdkafka ; \
fi
additionally it doesn't allow for just linking against a system lib if available
I must say I don't have a good sense of the right way to go about doing this. Seems like there's a million options
Other option to look at: https://github.com/r-dbi/RPostgres
Note the apt get libpq in their .travis.yml https://github.com/r-dbi/RPostgres/blob/master/.travis.yml#L56-L60
I would like to additionally link against avro too since there's a benefit of using same toolchain to build multiple things.
As librdkafka is widely accessible with system package managers I believe having it as system dependency is much more easier and reliable.