This results in failures to create symlinks in a new build directory. The following patch seems to resolve it though.
Regards, Anthony Liguori On 06/06/2012 02:36 PM, Paolo Bonzini wrote:
Signed-off-by: Paolo Bonzini<pbonz...@redhat.com> --- configure | 35 ++--------------------------------- rules.mak | 1 + 2 files changed, 3 insertions(+), 33 deletions(-) diff --git a/configure b/configure index 301b574..07e3ff1 100755 --- a/configure +++ b/configure @@ -3672,26 +3672,6 @@ if [ "$TARGET_BASE_ARCH" = "" ]; then TARGET_BASE_ARCH=$TARGET_ARCH fi -mkdir -p $target_dir/fpu -mkdir -p $target_dir/tcg -mkdir -p $target_dir/9pfs -mkdir -p $target_dir/hw -mkdir -p $target_dir/hw/ide -mkdir -p $target_dir/hw/usb -mkdir -p $target_dir/hw/9pfs -mkdir -p $target_dir/hw/kvm -mkdir -p $target_dir/hw/$TARGET_ARCH -mkdir -p $target_dir/hw/$TARGET_BASE_ARCH -mkdir -p $target_dir/target-$TARGET_BASE_ARCH -if test "$target_linux_user" = yes; then - mkdir -p $target_dir/linux-user -fi -if test "$target_bsd_user" = yes; then - mkdir -p $target_dir/bsd-user -fi -if test "$target" = "arm-linux-user" -o "$target" = "armeb-linux-user" -o "$target" = "arm-bsd-user" -o "$target" = "armeb-bsd-user" ; then - mkdir -p $target_dir/linux-user/arm/nwfpe -fi symlink "$source_path/Makefile.target" "$target_dir/Makefile" @@ -3948,12 +3928,9 @@ done # for target in $targets # build tree in object directory in case the source is not in the current directory DIRS="tests tests/tcg tests/tcg/cris tests/tcg/lm32" -DIRS="$DIRS slirp audio block net pc-bios/optionrom" -DIRS="$DIRS pc-bios/spapr-rtas" +DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas" DIRS="$DIRS roms/seabios roms/vgabios" -DIRS="$DIRS fsdev ui hw hw/usb" -DIRS="$DIRS qapi qapi-generated" -DIRS="$DIRS qga trace qom" +DIRS="$DIRS qapi-generated" DIRS="$DIRS libcacard libcacard/libcacard libcacard/trace" FILES="Makefile tests/tcg/Makefile qdict-test-data.txt" FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit" @@ -3992,19 +3969,11 @@ done for hwlib in 32 64; do d=libhw$hwlib - mkdir -p $d - mkdir -p $d/hw - mkdir -p $d/hw/ide - mkdir -p $d/hw/usb symlink "$source_path/Makefile.hw" "$d/Makefile" - mkdir -p $d/hw/9pfs echo "QEMU_CFLAGS+=-DTARGET_PHYS_ADDR_BITS=$hwlib"> $d/config.mak done d=libuser -mkdir -p $d -mkdir -p $d/trace -mkdir -p $d/qom symlink "$source_path/Makefile.user" "$d/Makefile" if test "$docs" = "yes" ; then diff --git a/rules.mak b/rules.mak index f65283c..4bc5e52 100644 --- a/rules.mak +++ b/rules.mak @@ -111,4 +111,5 @@ endef define unnest-vars $(call unnest-vars-1) $(foreach var,$(nested-vars),$(eval $(var) := $(filter-out %/, $($(var))))) +$(shell mkdir -p $(sort $(foreach var,$(nested-vars),$(dir $($(var)))))) endef
>From e0e6e5b689cbcb782bca8f158fad89b3389e9e11 Mon Sep 17 00:00:00 2001 From: Anthony Liguori <aligu...@us.ibm.com> Date: Wed, 6 Jun 2012 16:57:00 +0800 Subject: [PATCH] configure: ensure directory exists when creating symlink Signed-off-by: Anthony Liguori <aligu...@us.ibm.com> --- configure | 3 +-- 1 files changed, 1 insertions(+), 2 deletions(-) diff --git a/configure b/configure index 07e3ff1..4a7f027 100755 --- a/configure +++ b/configure @@ -42,6 +42,7 @@ compile_prog() { # symbolically link $1 to $2. Portable version of "ln -sf". symlink() { rm -rf "$2" + mkdir -p `dirname $2` ln -s "$1" "$2" } @@ -3454,14 +3455,12 @@ if test -f ${config_host_ld}~ ; then fi for d in libdis libdis-user; do - mkdir -p $d symlink "$source_path/Makefile.dis" "$d/Makefile" echo > $d/config.mak done # use included Linux headers if test "$linux" = "yes" ; then - mkdir -p linux-headers case "$cpu" in i386|x86_64) symlink "$source_path/linux-headers/asm-x86" linux-headers/asm -- 1.7.5.4