If one tries to do a fresh clone from the repository and the standard
''./configure'' and ''make world'' the process
fails on the ''make clean''
due to a missing set of sea bios files?
[builder@xenbuild2 buildconfigs]$ uname -a
Linux xenbuild2.cyberlab 2.6.32-220.4.1.el6.x86_64 #1 SMP Tue Jan 24
02:13:44 GMT 2012 x86_64 x86_64 x86_64 GNU/Linux
[builder@xenbuild2 buildconfigs]$ hg summary
parent: 24984:f61120046915 tip
[builder@xenbuild2 buildconfigs]$ make world
...
make -C seabios-dir clean
make: Entering an unknown directory
make: *** seabios-dir: No such file or directory. Stop.
make: Leaving an unknown directory
make[4]: *** [subdir-clean-seabios-dir] Error 2
make[4]: Leaving directory
`/home/builder/xen/xentest/xen-unstable.hg/tools/firmware''
...
In looking at tools/Rules.mk
subdirs-all subdirs-clean subdirs-install subdirs-distclean: .phony
@set -e; for subdir in $(SUBDIRS) $(SUBDIRS-y); do \
$(MAKE) subdir-$(patsubst subdirs-%,%,$@)-$$subdir; \
done
Should this look more something like this:
subdirs-all subdirs-clean subdirs-install subdirs-distclean: .phony
@set -e; for subdir in $(SUBDIRS) $(SUBDIRS-y); do \
if test -d subdir/.; then \
$(MAKE) subdir-$(patsubst subdirs-%,%,$@)-$$subdir; \
fi \
done
On Thu, 2012-03-08 at 14:54 -0500, Jeffrey Karrels wrote:> subdirs-all subdirs-clean subdirs-install subdirs-distclean: .phony > @set -e; for subdir in $(SUBDIRS) $(SUBDIRS-y); do \ > if test -d subdir/.; then \This would need to be a ${sbudir} or something? Looking at tools/Makefile I see targets like subdir-clean-qemu-xen-traditional-dir and subdir-clean-qemu-xen-dir which do e.g.: subdir-clean-qemu-xen-dir: set -e; if test -d qemu-xen-dir/.; then \ $(buildmakevars2shellvars); \ $(MAKE) -C qemu-xen-dir clean; \ fi This is presumably there to override the wildcard rule in tools/Rukes.mk. I think adding a similar rune for SeaBIOS (and anything else we clone at runtime) would be a good idea. I don''t know what that buildmakevars2shellvars is doing there -- I would have imagined that was only necessary for the rule which calls xen-setup in the qemu-xen-traditional-dir case. Ian.> $(MAKE) subdir-$(patsubst subdirs-%,%,$@)-$$subdir; \ > fi \ > done > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel
Ian Campbell writes ("Re: [Xen-devel] Initial ''make
clean'' fails"):> I don''t know what that buildmakevars2shellvars is doing there -- I
would
> have imagined that was only necessary for the rule which calls xen-setup
> in the qemu-xen-traditional-dir case.
xen-setup uses some of the variables from the Xen build system and
buildmakevars2shellvars produces shell runes for setting them in the
environment. I guess they''re probably not needed for the
fully-external build systems of qemu upstream, seabios, et al.
Ian.