[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |