[Buildroot] [PATCH] package/reactcpp: new package
Marcin Niestroj
m.niestroj at grinn-global.com
Tue Dec 6 13:26:43 UTC 2016
Signed-off-by: Marcin Niestroj <m.niestroj at grinn-global.com>
---
package/Config.in | 1 +
...akefile-Cleanup-compiler-and-linker-flags.patch | 82 ++++++++++++++++++++++
package/reactcpp/Config.in | 14 ++++
package/reactcpp/reactcpp.hash | 2 +
package/reactcpp/reactcpp.mk | 34 +++++++++
5 files changed, 133 insertions(+)
create mode 100644 package/reactcpp/0001-Makefile-Cleanup-compiler-and-linker-flags.patch
create mode 100644 package/reactcpp/Config.in
create mode 100644 package/reactcpp/reactcpp.hash
create mode 100644 package/reactcpp/reactcpp.mk
diff --git a/package/Config.in b/package/Config.in
index 664d0d9..27debdc 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1355,6 +1355,7 @@ endif
source "package/protobuf-c/Config.in"
source "package/qhull/Config.in"
source "package/qlibc/Config.in"
+ source "package/reactcpp/Config.in"
source "package/shapelib/Config.in"
source "package/sphinxbase/Config.in"
source "package/startup-notification/Config.in"
diff --git a/package/reactcpp/0001-Makefile-Cleanup-compiler-and-linker-flags.patch b/package/reactcpp/0001-Makefile-Cleanup-compiler-and-linker-flags.patch
new file mode 100644
index 0000000..a0b065a
--- /dev/null
+++ b/package/reactcpp/0001-Makefile-Cleanup-compiler-and-linker-flags.patch
@@ -0,0 +1,82 @@
+From 583b934dbd712e661e7c4eb994174bf71d88690c Mon Sep 17 00:00:00 2001
+From: Marcin Niestroj <m.niestroj at grinn-global.com>
+Date: Tue, 15 Nov 2016 14:51:47 +0100
+Subject: [PATCH] Makefile: Cleanup compiler and linker flags
+
+Cleanup compiler and linker flags, so the library can be easily
+cross-compiled by overwriting CPPFLAGS, CXXFLAGS and LDFLAGS:
+
+* Rename CPP into CXX, as we use this command for compiling, not
+ preprocessing.
+* Remove separate LD usage, use CXX instead. This is to still launch
+ compiler command when user overrides CXX and LD commands.
+* Define MY_CXXFLAGS and MY_LDFLAGS, which should always take place and
+ not get overridden by user.
+* Define AR command, which can be overidden by user.
+---
+ src/Makefile | 26 +++++++++++++-------------
+ 1 file changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 54e938a..5fb9763 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -1,8 +1,8 @@
+-CPP = g++
++AR = ar
++CXX = g++
+ RM = rm -f
+-CPPFLAGS = -Wall -MMD -c -I. -std=c++11
+-LD = g++
+-LD_FLAGS = -Wall -shared
++MY_CXXFLAGS = -Wall -MMD -c -I. -std=c++11
++MY_LDFLAGS = -Wall -shared
+ SHARED_LIB = lib$(LIBRARY_NAME).so.$(VERSION)
+ STATIC_LIB = lib$(LIBRARY_NAME).a.$(VERSION)
+ STATIC_FPIC_LIB = lib$(LIBRARY_NAME)_fpic.a
+@@ -11,12 +11,12 @@ DEPENDENCIES = $(SOURCES:%.cpp=%.d)
+ SHARED_OBJECTS = $(SOURCES:%.cpp=%.o)
+ STATIC_OBJECTS = $(SOURCES:%.cpp=%.s.o)
+
+-all: CPPFLAGS += -g
+-all: LD_FLAGS += -g
++all: CXXFLAGS = -g
++all: LDFLAGS = -g
+ all: shared static
+
+-release: CPPFLAGS += -O2
+-release: LD_FLAGS += -O2
++release: CXXFLAGS = -O2
++release: LDFLAGS = -O2
+ release: shared static
+
+ -include ${DEPENDENCIES}
+@@ -28,20 +28,20 @@ static_fpic: ${SHARED_OBJECTS} ${STATIC_FPIC_LIB}
+ static: ${STATIC_OBJECTS} ${STATIC_LIB}
+
+ ${SHARED_LIB}: ${SHARED_OBJECTS}
+- ${LD} ${LD_FLAGS} -Wl,-soname,lib$(LIBRARY_NAME).so.$(SONAME) -o $@ ${SHARED_OBJECTS} -lev -lcares
++ ${CXX} ${MY_LDFLAGS} ${LDFLAGS} -Wl,-soname,lib$(LIBRARY_NAME).so.$(SONAME) -o $@ ${SHARED_OBJECTS} -lev -lcares
+
+ ${STATIC_LIB}: ${STATIC_OBJECTS}
+- ar rcs ${STATIC_LIB} ${STATIC_OBJECTS}
++ $(AR) rcs ${STATIC_LIB} ${STATIC_OBJECTS}
+
+ ${STATIC_FPIC_LIB}: ${SHARED_OBJECTS}
+- ar rcs ${STATIC_FPIC_LIB} ${SHARED_OBJECTS}
++ $(AR) rcs ${STATIC_FPIC_LIB} ${SHARED_OBJECTS}
+
+ clean:
+ ${RM} *.obj *~* ${SHARED_OBJECTS} ${STATIC_OBJECTS} ${SHARED_LIB} ${STATIC_LIB}
+
+ ${SHARED_OBJECTS}:
+- ${CPP} ${CPPFLAGS} -fpic -o $@ ${@:%.o=%.cpp}
++ ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${MY_CXXFLAGS} -fpic -o $@ ${@:%.o=%.cpp}
+
+ ${STATIC_OBJECTS}:
+- ${CPP} ${CPPFLAGS} -o $@ ${@:%.s.o=%.cpp}
++ ${CXX} ${CXXFLAGS} ${CPPFLAGS} ${MY_CXXFLAGS} -o $@ ${@:%.s.o=%.cpp}
+
+--
+2.10.2
+
diff --git a/package/reactcpp/Config.in b/package/reactcpp/Config.in
new file mode 100644
index 0000000..f6989e5
--- /dev/null
+++ b/package/reactcpp/Config.in
@@ -0,0 +1,14 @@
+config BR2_PACKAGE_REACTCPP
+ bool "reactcpp"
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ select BR2_PACKAGE_C_ARES
+ select BR2_PACKAGE_LIBEV
+ help
+ REACT-CPP is an event loop library that utilizes the new
+ C++11 lambda functions to notify you when there is activity
+ on a filedescriptor or on a timer. Internally, it is a wrapper
+ around the libev library, and does therefore also depend on
+ that library.
+
+ https://github.com/CopernicaMarketingSoftware/REACT-CPP
diff --git a/package/reactcpp/reactcpp.hash b/package/reactcpp/reactcpp.hash
new file mode 100644
index 0000000..c30dab6
--- /dev/null
+++ b/package/reactcpp/reactcpp.hash
@@ -0,0 +1,2 @@
+# Locally calculated
+sha256 4af5d6a535ff7d8835d05db3490f2b62d6d791a4968ab45f479023868d7acdc8 reactcpp-v1.0.3.tar.gz
diff --git a/package/reactcpp/reactcpp.mk b/package/reactcpp/reactcpp.mk
new file mode 100644
index 0000000..e198c3d
--- /dev/null
+++ b/package/reactcpp/reactcpp.mk
@@ -0,0 +1,34 @@
+################################################################################
+#
+# reactcpp
+#
+################################################################################
+
+REACTCPP_VERSION_MAJOR = 1.0
+REACTCPP_VERSION_RAW = $(REACTCPP_VERSION_MAJOR).3
+REACTCPP_VERSION = v$(REACTCPP_VERSION_RAW)
+REACTCPP_SITE = $(call github,CopernicaMarketingSoftware,REACT-CPP,$(REACTCPP_VERSION))
+REACTCPP_LICENSE = Apache-2.0
+REACTCPP_LICENSE_FILES = LICENSE
+REACTCPP_DEPENDENCIES = c-ares libev
+REACTCPP_INSTALL_STAGING = YES
+
+define REACTCPP_BUILD_CMDS
+ $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
+endef
+
+define REACTCPP_INSTALL_STAGING_CMDS
+ $(MAKE) $(TARGET_CONFIGURE_OPTS) PREFIX=$(STAGING_DIR)/usr -C $(@D) install
+endef
+
+REACTCPP_SO = libreactcpp.so.$(REACTCPP_VERSION_RAW)
+
+ifeq ($(BR2_STATIC_LIBS),)
+define REACTCPP_INSTALL_TARGET_CMDS
+ $(INSTALL) -D -m 0755 $(@D)/src/$(REACTCPP_SO) $(TARGET_DIR)/usr/lib/$(REACTCPP_SO)
+ ln -sf $(REACTCPP_SO) $(TARGET_DIR)/usr/lib/libreactcpp.so.$(REACTCPP_VERSION_MAJOR)
+ ln -sf $(REACTCPP_SO) $(TARGET_DIR)/usr/lib/libreactcpp.so
+endef
+endif
+
+$(eval $(generic-package))
--
2.10.2
More information about the buildroot
mailing list