summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/Config.in1
-rw-r--r--package/alljoyn/Config.in23
-rw-r--r--package/alljoyn/alljoyn.hash2
-rw-r--r--package/alljoyn/alljoyn.mk69
4 files changed, 95 insertions, 0 deletions
diff --git a/package/Config.in b/package/Config.in
index 0614cb9ff7..a68213156f 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1128,6 +1128,7 @@ endmenu
menu "Networking"
source "package/agentpp/Config.in"
+ source "package/alljoyn/Config.in"
source "package/batman-adv/Config.in"
source "package/c-ares/Config.in"
source "package/canfestival/Config.in"
diff --git a/package/alljoyn/Config.in b/package/alljoyn/Config.in
new file mode 100644
index 0000000000..021a07b756
--- /dev/null
+++ b/package/alljoyn/Config.in
@@ -0,0 +1,23 @@
+config BR2_PACKAGE_ALLJOYN
+ bool "alljoyn"
+ depends on BR2_USE_MMU # fork()
+ depends on !BR2_STATIC_LIBS
+ depends on BR2_INSTALL_LIBSTDCPP
+ depends on BR2_TOOLCHAIN_HAS_THREADS
+ depends on BR2_USE_WCHAR
+ select BR2_PACKAGE_LIBCAP
+ select BR2_PACKAGE_OPENSSL
+ help
+ The AllJoyn framework defines a common way for devices and
+ apps to communicate with one another regardless of brands,
+ categories, transports, and OSes. Developers write
+ applications that discover nearby devices, and communicate
+ with each other directly and through the cloud, unleashing
+ new possibilities in the Internet of Things.
+
+ https://allseenalliance.org
+
+comment "alljoyn needs a toolchain w/ C++, threads, wchar and dynamic library"
+ depends on BR2_USE_MMU
+ depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
+ !BR2_USE_WCHAR || BR2_STATIC_LIBS
diff --git a/package/alljoyn/alljoyn.hash b/package/alljoyn/alljoyn.hash
new file mode 100644
index 0000000000..e18d66e717
--- /dev/null
+++ b/package/alljoyn/alljoyn.hash
@@ -0,0 +1,2 @@
+# Locally computed:
+sha256 41bd424d376d22dc2b48cc035400bd63595d19467eeb6a7ae81429f5a43ed2e2 alljoyn-16.04.00-src.tar.gz
diff --git a/package/alljoyn/alljoyn.mk b/package/alljoyn/alljoyn.mk
new file mode 100644
index 0000000000..71262587da
--- /dev/null
+++ b/package/alljoyn/alljoyn.mk
@@ -0,0 +1,69 @@
+################################################################################
+#
+# alljoyn
+#
+################################################################################
+
+ALLJOYN_REV = 16.04
+ALLJOYN_VERSION = $(ALLJOYN_REV).00
+ALLJOYN_SOURCE = alljoyn-$(ALLJOYN_VERSION)-src.tar.gz
+ALLJOYN_SITE = https://mirrors.kernel.org/allseenalliance/alljoyn/$(ALLJOYN_REV)
+# See https://allseenalliance.org/alliance/ip-policy
+ALLJOYN_LICENSE = ISC
+
+ALLJOYN_DEPENDENCIES = host-scons libcap openssl
+ALLJOYN_INSTALL_STAGING = YES
+
+ALLJOYN_CRYPTO = openssl
+
+# AllJoyn can be compiled in debug or release mode. By default, AllJoyn is built
+# in debug mode.
+ALLJOYN_VARIANT = release
+
+ALLJOYN_BINDINGS = c,cpp
+
+# By setting openwrt for OS and CPU, AllJoyn cross-compilation can be finely
+# tuned through TARGET_xxx options. All TARGET_xxx variables must be defined
+# otherwise compilation will fail.
+# CROSS_COMPILE option should not be used as it works only for linux/ARM.
+ALLJOYN_OS = openwrt
+ALLJOYN_CPU = openwrt
+
+# AllJoyn installs everything in this relative path
+ALLJOYN_DISTDIR = build/$(ALLJOYN_OS)/$(ALLJOYN_CPU)/$(ALLJOYN_VARIANT)/dist/
+
+ALLJOYN_SCONS_OPTS = \
+ -j$(PARALLEL_JOBS) \
+ V=1 \
+ OS=$(ALLJOYN_OS) \
+ CPU=$(ALLJOYN_CPU) \
+ VARIANT=$(ALLJOYN_VARIANT) \
+ BR=off \
+ CRYPTO=$(ALLJOYN_CRYPTO) \
+ BINDINGS=$(ALLJOYN_BINDINGS) \
+ TARGET_CFLAGS="$(TARGET_CFLAGS)" \
+ TARGET_CPPFLAGS="$(TARGET_CPPFLAGS)" \
+ TARGET_LINKFLAGS="$(TARGET_LINKFLAGS)" \
+ TARGET_CC="$(TARGET_CC)" \
+ TARGET_CXX="$(TARGET_CXX)" \
+ TARGET_LD="$(TARGET_LD)" \
+ TARGET_LINK="$(TARGET_CXX)" \
+ TARGET_AR="$(TARGET_AR)" \
+ TARGET_RANLIB="$(TARGET_RANLIB)" \
+ TARGET_PATH="$(BR_PATH)"
+
+define ALLJOYN_BUILD_CMDS
+ cd $(@D); $(SCONS) $(ALLJOYN_SCONS_OPTS)
+endef
+
+define ALLJOYN_INSTALL_STAGING_CMDS
+ cp -a $(@D)/$(ALLJOYN_DISTDIR)/*/lib/lib* $(STAGING_DIR)/usr/lib/
+ cp -a $(@D)/$(ALLJOYN_DISTDIR)/*/inc/* $(STAGING_DIR)/usr/include/
+endef
+
+# Only install alljoyn dynamic libraries into target directory
+define ALLJOYN_INSTALL_TARGET_CMDS
+ cp -a $(@D)/$(ALLJOYN_DISTDIR)/*/lib/lib*.so* $(TARGET_DIR)/usr/lib/
+endef
+
+$(eval $(generic-package))
OpenPOWER on IntegriCloud