[zeromq-dev] [PATCH] libzmq - includedir and broken VPATH builds

Philip Kovacs kovacsp3 at comcast.net
Mon Nov 14 04:07:47 CET 2011


Attached are three patches to libzmq:

0001-Move-distributed-headers-into-includedir-zmq.patch
0002-Fix-broken-VPATH-parallel-build-of-documentation.patch
0003-Fixed-broken-VPATH-parallel-build-for-perf-and-tests.patch

The first moves the distributed header files to a /zmq subdirectory,
e.g. /usr/include/zmq, instead of dumping them in the main include area.
This is a common practice that allows developers to see the package headers 
grouped together for easy reference.  The pkg-config file is adjuested 
accordingly.

The other two patches fix the broken VPATH builds of the docs/perf and tests
directories.  When you build the package in-tree, you do not see the problem,
however, for out-of-tree builds, the errors appear.  To replicate the errors:

make maintainer-clean (to force removal of any existing built docs)
sh autogen.sh
mkdir i686
cd i686
../configure
make

The build will fail in the doc area first.  The perf and tests areas are also
affected.  The patches fix things up.  In general it is incorrect to assume
top_srcdir = top_builddir. Cross-compilers often make mutliple configurations
of the package.

If any of these are accepted, would oyu want similar pacthes in the release
repos? 2.1, 2.1, 3.0?  

Phil


-------------- next part --------------
From 2122b79b05de24a305da201eab09099b58d92dea Mon Sep 17 00:00:00 2001
From: Philip Kovacs <http://philkovacs.com/>
Date: Sun, 13 Nov 2011 21:15:57 -0500
Subject: [PATCH 1/3] Move distributed headers into $(includedir)/zmq
 Signed-off-by: Philip Kovacs <http://philkovacs.com/>

---
 src/Makefile.am  |    3 ++-
 src/libzmq.pc.in |    2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 4d3cba3..9b5646d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -3,7 +3,8 @@ lib_LTLIBRARIES = libzmq.la
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = libzmq.pc
 
-include_HEADERS = ../include/zmq.h ../include/zmq_utils.h
+libzmq_includedir = $(includedir)/zmq
+libzmq_include_HEADERS = ../include/zmq.h ../include/zmq_utils.h
 
 libzmq_la_SOURCES = \
     array.hpp \
diff --git a/src/libzmq.pc.in b/src/libzmq.pc.in
index ba155a3..4a04daa 100644
--- a/src/libzmq.pc.in
+++ b/src/libzmq.pc.in
@@ -7,4 +7,4 @@ Name: libzmq
 Description: 0MQ c++ library
 Version: @VERSION@
 Libs: -L${libdir} -lzmq
-Cflags: -I${includedir}
+Cflags: -I${includedir}/zmq
-- 
1.7.7.2

-------------- next part --------------
From 217c11b94fdfd91a5f85cf5e489b88406ddc6402 Mon Sep 17 00:00:00 2001
From: Philip Kovacs <http://philkovacs.com/>
Date: Sun, 13 Nov 2011 21:18:13 -0500
Subject: [PATCH 2/3] Fix broken VPATH/parallel build of documentation
 Signed-off-by: Philip Kovacs <http://philkovacs.com/>

---
 doc/Makefile.am |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/doc/Makefile.am b/doc/Makefile.am
index ff00c18..103652f 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -29,11 +29,11 @@ if BUILD_DOC
 SUFFIXES=.html .txt .xml .3 .7
 
 .txt.html:
-	asciidoc -d manpage -b xhtml11 -f asciidoc.conf \
-		-azmq_version=@PACKAGE_VERSION@ $<
+	asciidoc -d manpage -b xhtml11 -f $(srcdir)/asciidoc.conf \
+		-azmq_version=@PACKAGE_VERSION@ -o$@ $<
 .txt.xml:
-	asciidoc -d manpage -b docbook -f asciidoc.conf \
-		-azmq_version=@PACKAGE_VERSION@ $<
+	asciidoc -d manpage -b docbook -f $(srcdir)/asciidoc.conf \
+		-azmq_version=@PACKAGE_VERSION@ -o$@ $<
 .xml.1:
 	xmlto man $<
 .xml.3:
-- 
1.7.7.2

-------------- next part --------------
From 200caffc3386079fec5736e4999633af4bc7937b Mon Sep 17 00:00:00 2001
From: Philip Kovacs <http://philkovacs.com/>
Date: Sun, 13 Nov 2011 21:42:53 -0500
Subject: [PATCH 3/3] Fixed broken VPATH/parallel build for perf and tests
 Signed-off-by: Philip Kovacs <http://philkovacs.com/>

---
 perf/Makefile.am  |    3 ++-
 tests/Makefile.am |    4 +++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/perf/Makefile.am b/perf/Makefile.am
index 0f5e78e..2b3be0b 100644
--- a/perf/Makefile.am
+++ b/perf/Makefile.am
@@ -1,4 +1,5 @@
-INCLUDES = -I$(top_builddir)/include
+INCLUDES = -I$(top_srcdir)/include \
+           -I$(top_builddir)/include
 
 noinst_PROGRAMS = local_lat remote_lat local_thr remote_thr inproc_lat inproc_thr
 
diff --git a/tests/Makefile.am b/tests/Makefile.am
index bbae270..50d1aa3 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,4 +1,6 @@
-INCLUDES = -I$(top_builddir)/include
+INCLUDES = -I$(top_srcdir)/include \
+           -I$(top_builddir)/include
+
 LDADD = $(top_builddir)/src/libzmq.la
 
 noinst_PROGRAMS = test_pair_inproc \
-- 
1.7.7.2

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20111113/9047bb89/attachment.sig>


More information about the zeromq-dev mailing list