Alien::ZMQ - find and install libzmq, the core zeromq library
version 0.06
use Alien::ZMQ; use version; my $version = version->parse(Alien::ZMQ::lib_version); my $lib_dir = Alien::ZMQ::lib_dir; print "zeromq $version is installed at $lib_dir\n";
Upon installation, the target system is probed for the presence of libzmq. If it is not found, libzmq 3.2.4 is installed in a shared directory. In short, modules that need libzmq can depend on this module to make sure that it is available, or use it independently as a way to install zeromq.
Get the version number of libzmq as a v-string (version string), according to the zmq.h header file.
Get the version number of libzmq as a v-string (version string), according to the libzmq.so file.
Get the directory containing the zmq.h header file.
Get the directory containing the libzmq.so file.
Get the C compiler flags required to compile a program that uses libzmq. This is a shortcut for constructing a -I flag using "inc_dir". In scalar context, the flags are quoted using String::ShellQuote and returned as a single string.
-I
Get the linker flags required to link a program against libzmq. This is a shortcut for constructing a -L flag using "lib_dir", plus -lzmq. In scalar context, the flags are quoted using String::ShellQuote and returned as a single string.
-L
-lzmq
On some platforms, you may also want to add the library path to your executable or library as a runtime path; this is usually done by passing -rpath to the linker. Something like this could work:
-rpath
my @flags = (Alien::ZMQ::libs, "-Wl,-rpath=" . Alien::ZMQ::lib_dir);
This will allow your program to find libzmq, even if it is installed in a non-standard location, but some systems don't have this RPATH mechanism.
RPATH
These options to Build.PL affect the installation of this module.
By default, libzmq is not compiled and installed if it is detected to already be on the system. Use this to skip those checks and always install libzmq.
Pass extra flags to the compiler when probing for an existing installation of libzmq. You can use this, along with "--zmq-libs", to help the probing function locate libzmq if it is installed in an unexpected place. For example, if your libzmq is installed at /opt/zeromq, you can do something like this:
perl Build.PL --zmq-cflags="-I/opt/zeromq/include" \ --zmq-libs="-L/opt/zeromq/lib -lzmq"
These flags are only used by the probing function to locate libzmq; they will not be used when compiling libzmq from source (if it needs to be). To affect the compiling of libzmq, using the "--zmq-config" flag instead.
A better alternative to using "--zmq-cflags" and "--zmq-libs" is to help the pkg-config program find your libzmq by using the PKG_CONFIG_PATH environment variable. Of course, this method requires that you have the pkg-config program installed. Here's an example:
PKG_CONFIG_PATH
perl Build.PL PKG_CONFIG_PATH=/opt/zeromq/lib/pkgconfig ./Build
Pass extra flags to the linker when probing for an existing installation of libzmq. You can use this, along with "--zmq-cflags", to help the probing function locate libzmq if it is installed in an unexpected place. Like "--zmq-cflags", these flags are only used by the probing function to locate libzmq.
Pass extra flags to the libzmq configure script. You may want to consider passing either --with-pgm or --with-system-pgm if you need support for PGM; this is not enabled by default because it is not supported by every system.
--with-pgm
--with-system-pgm
Probing is only done during the installation of this module, so if you are using a system-installed version of libzmq and you uninstall or upgrade it, you will also need to reinstall Alien::ZMQ.
If libzmq-2.x is found on the system, Alien::ZMQ will use it. There are a few incompatibilities between libzmq-2.x and libzmq-3.x, so your program may want to use the "lib_version" method to check which version of libzmq is installed.
MSWin32 is not yet supported, but cygwin works.
GitHub project
ZMQ - good perl bindings for zeromq
ZeroMQ - official libzmq website
The design and implementation of this module were influenced by other Alien modules, including Alien::GMP and Alien::Tidyp.
Charles McGarvey <ccm@cpan.org>
This software is copyright (c) 2013 by Charles McGarvey.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Alien::ZMQ, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Alien::ZMQ
CPAN shell
perl -MCPAN -e shell install Alien::ZMQ
For more information on module installation, please visit the detailed CPAN module installation guide.