From b666a857f1938d2b80b79ddc84356b5602dccdd5 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 ae8b833..f31fdf5 100644 --- a/src/Makevars +++ b/src/Makevars @@ -5,7 +5,7 @@ CXX_STD=CXX11 UNAME := $(shell uname) -PKG_LIBS = ./libuv/.libs/libuv.a ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread +PKG_LIBS = $(shell pkgconf --libs libuv) ./http-parser/http_parser.o ./sha1/sha1.o ./base64/base64.o -pthread ifeq ($(UNAME), Darwin) PKG_LIBS += -framework CoreServices @@ -23,7 +23,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. @@ -43,35 +43,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 ffa1be0..fb976c7 100644 --- a/src/callbackqueue.cpp +++ b/src/callbackqueue.cpp @@ -2,7 +2,7 @@ #include "callbackqueue.h" #include "tqueue.h" #include "thread.h" -#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 cfd2732..9596d92 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 5b8ec73..882bbf2 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 f25370b..325f473 100644 --- a/src/httprequest.h +++ b/src/httprequest.h @@ -6,7 +6,7 @@ #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 7dccc2e..9083c76 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 c5ecf9f..63646cf 100644 --- a/src/httpuv.cpp +++ b/src/httpuv.cpp @@ -7,7 +7,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 16f3dbf..492388f 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 11cc840..472e917 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 7f812ce..67311d8 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 16fcbf6..51e4f26 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.29.2