summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2017-06-19 09:47:56 +0200
committerBenoit Foucher <benoit@zeroc.com>2017-06-19 09:47:56 +0200
commitf2349f53f00c74a7fe648f5037a8cc76cdb162b9 (patch)
treed236d89dceb0a549fa52e7941079783e2e062960
parentAdd back iceboxadmin Debug, disable IceBridge/Debug tests on Windows (diff)
downloadice-f2349f53f00c74a7fe648f5037a8cc76cdb162b9.tar.bz2
ice-f2349f53f00c74a7fe648f5037a8cc76cdb162b9.tar.xz
ice-f2349f53f00c74a7fe648f5037a8cc76cdb162b9.zip
Fixed ICE-8094 & ICE-8099 - IceBT build system fixes
-rw-r--r--config/Make.rules.Linux3
-rw-r--r--cpp/BuildInstructionsLinux.md15
-rw-r--r--cpp/config/Make.rules2
-rw-r--r--cpp/src/IceBT/Makefile.mk7
4 files changed, 23 insertions, 4 deletions
diff --git a/config/Make.rules.Linux b/config/Make.rules.Linux
index f866d139283..a9ff8714707 100644
--- a/config/Make.rules.Linux
+++ b/config/Make.rules.Linux
@@ -185,6 +185,3 @@ IceUtil_system_libs = -lrt $(if $(filter yes,$(libba
Ice_system_libs = -ldl -lcrypto $(IceUtil_system_libs)
IceSSL_system_libs = -lssl -lcrypto
Glacier2CryptPermissionsVerifier_system_libs = -lcrypt
-ifneq ($(filter debian ubuntu yocto,$(linux_id)),)
-IceBT_system_libs = $(IceSSL_system_libs) $(shell pkg-config --libs dbus-1)
-endif
diff --git a/cpp/BuildInstructionsLinux.md b/cpp/BuildInstructionsLinux.md
index bdc92a081f7..d2dea153953 100644
--- a/cpp/BuildInstructionsLinux.md
+++ b/cpp/BuildInstructionsLinux.md
@@ -51,6 +51,18 @@ that do not include them. You can install these packages as shown below:
sudo wget https://dev.zeroc.com/rpm/thirdparty/zeroc-thirdparty-sles12.repo
sudo yum install mcpp-devel
+In addition, on Ubuntu and Debian distributions where the Ice for Bluetooth
+plug-in is supported, you will need to install these packages if you want to
+build the IceBT transport plug-in:
+
+ - [pkg-config][8] 0.29 or later
+ - [D-Bus][9] 1.10 or later
+ - [BlueZ][10] 5.37 or later
+
+These packages are provided with the system and can be installed with:
+
+ sudo apt-get install pkg-config libdbus-1-dev libbluetooth-dev
+
## Building Ice
From the top-level source directory, edit `config/Make.rules` to establish your
@@ -150,3 +162,6 @@ failure, the tests abort with `failed`.
[5]: https://symas.com/lightning-memory-mapped-database/
[6]: https://github.com/zeroc-ice/mcpp
[7]: https://www.openssl.org/
+[8]: https://www.freedesktop.org/wiki/Software/pkg-config
+[9]: https://www.freedesktop.org/wiki/Software/dbus
+[10]: http://www.bluez.org
diff --git a/cpp/config/Make.rules b/cpp/config/Make.rules
index 94d5383b509..271bbcd2515 100644
--- a/cpp/config/Make.rules
+++ b/cpp/config/Make.rules
@@ -37,7 +37,7 @@ coreandstub_components = IceUtil \
# Add the Bluetooth transport for Debian/Ubuntu/Yocto
ifneq ($(filter debian ubuntu yocto,$(linux_id)),)
-coreandstub_components += IceXML IceBT
+coreandstub_components += IceBT
endif
#
diff --git a/cpp/src/IceBT/Makefile.mk b/cpp/src/IceBT/Makefile.mk
index 33bd7c56ed2..9c7a18240ef 100644
--- a/cpp/src/IceBT/Makefile.mk
+++ b/cpp/src/IceBT/Makefile.mk
@@ -9,13 +9,20 @@
ifneq ($(filter debian ubuntu yocto,$(linux_id)),)
+#
+# Only build the IceBT plugin if pkg-config, BlueZ and D-Bus requirements are
+# installed.
+#
+ifeq ($(shell pkg-config --exists bluez dbus-1 2> /dev/null && echo yes),yes)
$(project)_libraries := IceBT
IceBT_targetdir := $(libdir)
IceBT_dependencies := Ice
IceBT_cppflags := -DICEBT_API_EXPORTS $(shell pkg-config --cflags dbus-1)
IceBT_sliceflags := --include-dir IceBT
+IceBT_system_libs = $(IceSSL_system_libs) $(shell pkg-config --libs dbus-1)
projects += $(project)
+endif
endif