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.