[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] libxl: fix Makefiles for autogenerated code (use multi-target patterns)



# 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 \
        $(AUTOSRCS) $(AUTOINCS)
 
-$(AUTOINCS): $(AUTOSRCS)
-
-#%_y.h: %_y.c
-#%_l.h: %_l.c
-
 $(LIBXLU_OBJS): $(AUTOINCS)
 
-%.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_OBJS) $(LIBXLU_OBJS) $(XL_OBJS): 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
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.