This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-changelog] [xen-unstable] libxl: fix Makefiles for autogenerated co

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] libxl: fix Makefiles for autogenerated code (use multi-target patterns)
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Sat, 09 Oct 2010 14:55:34 -0700
Delivery-date: Sat, 09 Oct 2010 14:59:58 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Jan Beulich <jbeulich@xxxxxxxxxx>
# Date 1284998228 -3600
# Node ID 81c40c5db26ee3352f3bfff20aaa9bdc08a0472d
# Parent  7405e0ddb912a993982e4e4122856965b7c706dd
libxl: fix Makefiles for autogenerated code (use multi-target patterns)

Building in a tree with read-only source files failed because the flex/
bison generated files are left in place.

All of the source files (instead of all of the object files) were
depending on libxl.h (in particular forcing the needless re-generation
of the flex/bison generated files).

For _libxl_types.[ch] a single non-pattern rule was used. For non-
pattern rules with multiple targets, other than for pattern ones, the
body gets executed once for each target, causing problems when building
with -j<n>, <n> >= 2. Convert this rule to a pattern one.

The flex/bison generated headers pointlessly depended on the
corresponding source files. Use multiple-target pattern rules instead.

It would also have been nice if the minimal flex/bison versions needed
to successfully build libxl were documented: neither flex 2.5.31 nor
bison 2.1 (as found e.g. on SLE10) is sufficient.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
 tools/libxl/Makefile |   25 +++++++++++--------------
 1 files changed, 11 insertions(+), 14 deletions(-)

diff -r 7405e0ddb912 -r 81c40c5db26e tools/libxl/Makefile
--- a/tools/libxl/Makefile      Sat Sep 18 08:57:15 2010 +0100
+++ b/tools/libxl/Makefile      Mon Sep 20 16:57:08 2010 +0100
@@ -42,18 +42,15 @@ all: $(CLIENTS) libxenlight.so libxenlig
 all: $(CLIENTS) libxenlight.so libxenlight.a libxlutil.so libxlutil.a \
-#%_y.h: %_y.c
-#%_l.h: %_l.c
-%.c: %.y
-       $(BISON) --output=$@ $<
+%.c %.h: %.y
+       @rm -f $*.[ch]
+       $(BISON) --output=$*.c $<
-%.c: %.l
-       $(FLEX) --header-file=$*.h --outfile=$@ $<
+%.c %.h: %.l
+       @rm -f $*.[ch]
+       $(FLEX) --header-file=$*.h --outfile=$*.c $<
 genpath-target = $(call buildmakevars2file,_libxl_paths.h)
 $(eval $(genpath-target))
@@ -66,12 +63,12 @@ libxl_paths.c: _libxl_paths.h
 libxl.h: _libxl_types.h
-$(LIBXL_OBJS:%.o=%.c) $(LIBXLU_OBJS:%.o=%.c) $(XL_OBJS:%.o=%.c): libxl.h
-_libxl_types.h _libxl_types.c: libxl.idl gentypes.py libxltypes.py
-       $(PYTHON) gentypes.py libxl.idl __libxl_types.h __libxl_types.c
-       mv __libxl_types.h _libxl_types.h
-       mv __libxl_types.c _libxl_types.c
+_libxl_%.h _libxl_%.c: libxl.idl gen%.py libxl%.py
+       $(PYTHON) gen$*.py libxl.idl __libxl_$*.h __libxl_$*.c
+       mv __libxl_$*.h _libxl_$*.h
+       mv __libxl_$*.c _libxl_$*.c
 libxenlight.so: libxenlight.so.$(MAJOR)
        ln -sf $< $@

Xen-changelog mailing list

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] libxl: fix Makefiles for autogenerated code (use multi-target patterns), Xen patchbot-unstable <=