From aa2bee1f32fd2bd249849bb2edf7b2dc5be1f7c1 Mon Sep 17 00:00:00 2001 From: Elliott Sales de Andrade Date: Mon, 30 Apr 2018 04:53:42 -0400 Subject: [PATCH] Use unbundled libuv. Signed-off-by: Elliott Sales de Andrade --- src/Makevars | 37 +++---------------------------------- src/callbackqueue.cpp | 2 +- src/callbackqueue.h | 2 +- src/http.h | 2 +- src/httprequest.h | 2 +- src/httpresponse.cpp | 2 +- src/httpuv.cpp | 2 +- src/socket.cpp | 2 +- src/socket.h | 2 +- src/thread.h | 2 +- src/uvutil.h | 2 +- src/webapplication.h | 2 +- 12 files changed, 14 insertions(+), 45 deletions(-) diff --git a/src/Makevars b/src/Makevars index 275a1b7..f940ce9 100644 --- a/src/Makevars +++ b/src/Makevars @@ -9,7 +9,7 @@ ifeq ($(UNAME), Darwin) FRAMEWORK = -framework CoreServices endif -PKG_LIBS = ./libuv/.libs/libuv.a ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o $(FRAMEWORK) -pthread +PKG_LIBS = $(shell pkgconf --libs libuv) ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o $(FRAMEWORK) -pthread ifeq ($(UNAME), SunOS) PKG_LIBS += -lkstat -lsendfile -lsocket -lxnet endif @@ -22,7 +22,7 @@ endif PKG_CFLAGS = $(C_VISIBILITY) -DSTRICT_R_HEADERS PKG_CXXFLAGS = $(CXX_VISIBILITY) -DSTRICT_R_HEADERS -PKG_CPPFLAGS = -Ilibuv/include -pthread +PKG_CPPFLAGS = -pthread $(shell pkgconf --cflags libuv) # To avoid spurious warnings from `R CMD check --as-cran`, about compiler # warning flags like -Werror. @@ -44,35 +44,4 @@ CONFIGURE_FLAGS="--quiet" # PKG_CPPFLAGS += -D_GLIBCXX_ASSERTIONS -$(SHLIB): libuv/.libs/libuv.a http-parser/http_parser.o sha1/sha1.o base64/base64.o - -# We needed to rename lt~obsolete.m4 because the name causes problems with R -# CMD check. Here we rename it back. -libuv/m4/lt~obsolete.m4: libuv/m4/lt_obsolete.m4 - cp -p -f libuv/m4/lt_obsolete.m4 libuv/m4/lt~obsolete.m4 - -# Run ./configure. We need to touch various autotools-related files to avoid -# it trying to run autotools programs again. We also need to make sure -# configure is executable, because on some platforms, calling unzip() in R -# does not preserve the executable bit. -# -# It's VERY IMPORTANT that mtime(aclocal.m4) <= mtime(configure), and also -# mtime(aclocal.m4) <= mtime(Makefile.in). On some platforms, passing multiple -# files to a single touch command gives them all the same time, but on others -# (Solaris and possibly some Fedoras) the timestamps are slightly increasing -# from one to the next, i.e. the order matters. To remove this fragility, we -# use "-r aclocal.m4" to ensure that all three files are guaranteed to have -# precisely the same timestamp value. -libuv/Makefile: libuv/m4/lt~obsolete.m4 - (cd libuv \ - && touch aclocal.m4 \ - && touch -r aclocal.m4 configure Makefile.in \ - && chmod +x configure \ - && CC="$(CC)" CFLAGS="$(CFLAGS) $(CPICFLAGS) $(C_VISIBILITY)" AR="$(AR)" RANLIB="$(RANLIB)" LDFLAGS="$(LDFLAGS)" ./configure $(CONFIGURE_FLAGS)) - -libuv/.libs/libuv.a: libuv/Makefile - $(MAKE) --directory=libuv \ - HAVE_DTRACE=0 - -clean: - $(MAKE) --directory=libuv distclean +$(SHLIB): http-parser/http_parser.o sha1/sha1.o base64/base64.o diff --git a/src/callbackqueue.cpp b/src/callbackqueue.cpp index a72fa06..220cb0b 100644 --- a/src/callbackqueue.cpp +++ b/src/callbackqueue.cpp @@ -2,7 +2,7 @@ #include "tqueue.h" #include "thread.h" #include -#include "libuv/include/uv.h" +#include // This non-class function is a plain C wrapper for CallbackQueue::flush(), and diff --git a/src/callbackqueue.h b/src/callbackqueue.h index 27f8bf5..5d995c9 100644 --- a/src/callbackqueue.h +++ b/src/callbackqueue.h @@ -3,7 +3,7 @@ #include "tqueue.h" #include -#include "libuv/include/uv.h" +#include class CallbackQueue { public: diff --git a/src/http.h b/src/http.h index 7da6b53..830a37f 100644 --- a/src/http.h +++ b/src/http.h @@ -1,7 +1,7 @@ #ifndef HTTP_HPP #define HTTP_HPP -#include "libuv/include/uv.h" +#include #include #include #include "webapplication.h" diff --git a/src/httprequest.h b/src/httprequest.h index 6865373..fb9a041 100644 --- a/src/httprequest.h +++ b/src/httprequest.h @@ -8,7 +8,7 @@ #include #include #include -#include "libuv/include/uv.h" +#include #include "http-parser/http_parser.h" #include "socket.h" #include "webapplication.h" diff --git a/src/httpresponse.cpp b/src/httpresponse.cpp index be807c7..0f7ce1a 100644 --- a/src/httpresponse.cpp +++ b/src/httpresponse.cpp @@ -3,7 +3,7 @@ #include "constants.h" #include "thread.h" #include "utils.h" -#include "libuv/include/uv.h" +#include void on_response_written(uv_write_t* handle, int status) { diff --git a/src/httpuv.cpp b/src/httpuv.cpp index 37d6a6d..2936d3c 100644 --- a/src/httpuv.cpp +++ b/src/httpuv.cpp @@ -9,7 +9,7 @@ #include #include #include -#include "libuv/include/uv.h" +#include #include "base64/base64.hpp" #include "uvutil.h" #include "webapplication.h" diff --git a/src/socket.cpp b/src/socket.cpp index de5d6c1..f1ca52b 100644 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -1,7 +1,7 @@ #include "socket.h" #include "httprequest.h" #include -#include "libuv/include/uv.h" +#include void on_Socket_close(uv_handle_t* pHandle); diff --git a/src/socket.h b/src/socket.h index c7770e2..feb2070 100644 --- a/src/socket.h +++ b/src/socket.h @@ -3,7 +3,7 @@ #include "http.h" #include -#include "libuv/include/uv.h" +#include class HttpRequest; class WebApplication; diff --git a/src/thread.h b/src/thread.h index e9066cb..80ea8b1 100644 --- a/src/thread.h +++ b/src/thread.h @@ -1,7 +1,7 @@ #ifndef THREAD_HPP #define THREAD_HPP -#include "libuv/include/uv.h" +#include // These must be called from the main and background thread, respectively, so // that is_main_thread() and is_background_thread() can be tested later. diff --git a/src/uvutil.h b/src/uvutil.h index 48c849a..5d82aaf 100644 --- a/src/uvutil.h +++ b/src/uvutil.h @@ -5,7 +5,7 @@ #include #include #include -#include "libuv/include/uv.h" +#include #include diff --git a/src/webapplication.h b/src/webapplication.h index bc23646..f3ee5f1 100644 --- a/src/webapplication.h +++ b/src/webapplication.h @@ -2,7 +2,7 @@ #define WEBAPPLICATION_HPP #include -#include "libuv/include/uv.h" +#include #include #include "websockets.h" #include "thread.h" -- 2.20.1