Skip to content

Commit 62f036c

Browse files
committed
bundle libzmq, cppzmq
1 parent abfb3f1 commit 62f036c

File tree

9 files changed

+23
-2769
lines changed

9 files changed

+23
-2769
lines changed

.github/workflows/check-standard.yaml

+1-9
Original file line numberDiff line numberDiff line change
@@ -54,19 +54,11 @@ jobs:
5454
key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }}
5555
restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-
5656

57-
- name: Install system dependencies (Linux)
58-
if: runner.os == 'Linux'
59-
run: |
60-
while read -r cmd
61-
do
62-
eval sudo $cmd
63-
done < <(Rscript -e 'writeLines(remotes::system_requirements("ubuntu", "20.04"))')
64-
6557
- name: Install system dependencies (macOS)
6658
if: runner.os == 'macOS'
6759
run: |
6860
brew update
69-
brew install zeromq coreutils
61+
brew install coreutils
7062
7163
- name: Set up local key-based SSH
7264
if: runner.os != 'Windows' # GHA does not allow empty passphrase on Windows

.gitmodules

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[submodule "src/libzmq"]
2+
path = src/libzmq
3+
url = https://github.com/zeromq/libzmq.git
4+
[submodule "src/cppzmq"]
5+
path = src/cppzmq
6+
url = https://github.com/zeromq/cppzmq.git

cleanup

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
#!/bin/sh
2-
rm -f src/Makevars configure.log autobrew
2+
rm -f src/Makevars src/*.o src/*.so* src/*.dylib configure.log autobrew
3+
make -C src/libzmq distclean

configure

+7-68
Original file line numberDiff line numberDiff line change
@@ -1,77 +1,16 @@
11
#!/usr/bin/env bash
2-
# Anticonf (tm) script by Jeroen Ooms (2020)
3-
# This script will query 'pkg-config' for the required cflags and ldflags.
4-
# If pkg-config is unavailable or does not find the library, try setting
5-
# INCLUDE_DIR and LIB_DIR manually via e.g:
6-
# R CMD INSTALL --configure-vars='INCLUDE_DIR=/.../include LIB_DIR=/.../lib'
7-
8-
# Library settings
9-
PKG_CONFIG_NAME="libzmq"
10-
PKG_DEB_NAME="libzmq3-dev"
11-
PKG_RPM_NAME="zeromq-devel"
12-
PKG_EPEL_NAME="zeromq3-devel"
13-
PKG_CSW_NAME="libzmq1_dev"
14-
PKG_BREW_NAME="zeromq"
15-
PKG_TEST_HEADER="<zmq.h>"
16-
PKG_LIBS="-lzmq"
17-
18-
# Use pkg-config if available
19-
if [ $(command -v pkg-config) ]; then
20-
PKGCONFIG_CFLAGS=$(pkg-config --cflags --silence-errors ${PKG_CONFIG_NAME})
21-
PKGCONFIG_LIBS=$(pkg-config --libs ${PKG_CONFIG_NAME})
22-
fi
23-
24-
# Check for custom locations
25-
if [ "$INCLUDE_DIR" ] || [ "$LIB_DIR" ]; then
26-
echo "Found INCLUDE_DIR and/or LIB_DIR!"
27-
PKG_CFLAGS="-I$INCLUDE_DIR $PKG_CFLAGS"
28-
PKG_LIBS="-L$LIB_DIR $PKG_LIBS"
29-
elif [ "$PKGCONFIG_CFLAGS" ] || [ "$PKGCONFIG_LIBS" ]; then
30-
echo "Found pkg-config cflags and libs!"
31-
PKG_CFLAGS=${PKGCONFIG_CFLAGS}
32-
PKG_LIBS=${PKGCONFIG_LIBS}
33-
elif [[ "$OSTYPE" == "darwin"* ]]; then
34-
if [ $(command -v brew) ]; then
35-
BREWDIR=$(brew --prefix)
36-
PKG_CFLAGS="-I$BREWDIR/opt/$PKG_BREW_NAME/include"
37-
PKG_LIBS="-L$BREWDIR/opt/$PKG_BREW_NAME/lib $PKG_LIBS"
38-
else
39-
curl -sfL "https://autobrew.github.io/scripts/$PKG_BREW_NAME" > autobrew
40-
source autobrew
41-
fi
42-
fi
43-
44-
# For debugging
45-
echo "Using PKG_CFLAGS=$PKG_CFLAGS"
46-
echo "Using PKG_LIBS=$PKG_LIBS"
47-
48-
# Find compiler
492
CXX=$(${R_HOME}/bin/R CMD config CXX)
503
CXXFLAGS=$(${R_HOME}/bin/R CMD config CXXFLAGS)
514
CPPFLAGS=$(${R_HOME}/bin/R CMD config CPPFLAGS)
525

53-
# Test for libzmq
54-
echo "#include $PKG_TEST_HEADER" | ${CXX} -E ${CPPFLAGS} ${PKG_CFLAGS} ${CXXFLAGS} -xc++ - >/dev/null 2>configure.log
6+
PKG_LIBS=-lunwind
557

56-
if [ $? -ne 0 ]; then
57-
echo "------------------------------[ ANTICONF ]------------------------------"
58-
echo "Configuration failed because $PKG_CONFIG_NAME was not found. Try installing:"
59-
echo " * deb: $PKG_DEB_NAME (Debian, Ubuntu, etc)"
60-
echo " * rpm: $PKG_RPM_NAME (Fedora, CentOS 7)"
61-
echo " * rpm: $PKG_EPEL_NAME (RHEL 6, CentOS 6, from EPEL)"
62-
echo " * csw: $PKG_CSW_NAME (Solaris)"
63-
echo "If $PKG_CONFIG_NAME is already installed, check that 'pkg-config' is in your"
64-
echo "PATH and PKG_CONFIG_PATH contains a $PKG_CONFIG_NAME.pc file. If pkg-config"
65-
echo "is unavailable you can set INCLUDE_DIR and LIB_DIR manually via:"
66-
echo "R CMD INSTALL --configure-vars='INCLUDE_DIR=... LIB_DIR=...'"
67-
echo "---------------------------[ ERROR MESSAGE ]-----------------------------"
68-
cat configure.log
69-
echo "-------------------------------------------------------------------------"
70-
exit 1
8+
cd src/libzmq
9+
if [ ! -f src/.libs/libzmq.a ]; then
10+
./autogen.sh
11+
CXXFLAGS="$CXXFLAGS -fPIC" ./configure --enable-drafts --disable-libbsd --disable-curve
12+
make
7113
fi
14+
cd -
7215

73-
# Write to Makevars
7416
sed -e "s|@cflags@|$PKG_CFLAGS|" -e "s|@libs@|$PKG_LIBS|" src/Makevars.in > src/Makevars
75-
76-
# Success
77-
exit 0

0 commit comments

Comments
 (0)