in software/messaging/src/main/java/org/apache/brooklyn/entity/messaging/storm/StormSshDriver.java [215:264]
protected List<String> installNativeDependencies() {
String zeromqUrl = format("http://download.zeromq.org/zeromq-%s.tar.gz", getZeromqVersion());
String targz = format("zeromq-%s.tar.gz", getZeromqVersion());
String jzmq = "https://github.com/nathanmarz/jzmq.git";
ImmutableList.Builder<String> commands = ImmutableList.<String>builder();
if (getLocation().getOsDetails().isMac()) {
commands.add("export PATH=$PATH:/usr/local/bin")
.add("export JAVA_HOME=$(/usr/libexec/java_home)")
.add("cd " + getInstallDir())
.add(BashCommands.installPackage(ImmutableMap.of("brew", "automake"), "make"))
.add(BashCommands.installPackage(ImmutableMap.of("brew", "libtool"), "libtool"))
.add(BashCommands.installPackage(ImmutableMap.of("brew", "pkg-config"), "pkg-config"))
.add(BashCommands.installPackage(ImmutableMap.of("brew", "zeromq"), "zeromq"))
.add("git clone https://github.com/asmaier/jzmq")
.add("cd jzmq")
.add("./autogen.sh")
.add("./configure")
.add("make")
.add((BashCommands.sudo("make install")))
.add("cd " + getInstallDir());
} else {
commands.add("export JAVA_HOME=$(dirname $(readlink -m `which java`))/../../ || export JAVA_HOME=/usr/lib/jvm/java")
.add("cd " + getInstallDir())
.add(BashCommands.commandToDownloadUrlAs(zeromqUrl, targz))
.add("tar xzf " + targz)
.add(format("cd zeromq-%s", getZeromqVersion()))
.add("./configure")
.add("make")
.add((BashCommands.sudo("make install")))
// install jzmq
.add("cd " + getInstallDir())
.add("git clone " + jzmq)
.add("cd jzmq")
.add("./autogen.sh")
.add("./configure")
// hack needed on ubuntu 12.04; ignore if it fails
// see https://github.com/zeromq/jzmq/issues/114
.add(BashCommands.ok(
"pushd src ; touch classdist_noinst.stamp ; CLASSPATH=.:./.:$CLASSPATH "
+ "javac -d . org/zeromq/ZMQ.java org/zeromq/App.java org/zeromq/ZMQForwarder.java org/zeromq/EmbeddedLibraryTools.java org/zeromq/ZMQQueue.java org/zeromq/ZMQStreamer.java org/zeromq/ZMQException.java"))
.add(BashCommands.ok("popd"))
.add("make")
.add((BashCommands.sudo("make install")))
.add("cd " + getInstallDir());
}
return commands.build();
}