configure: Don't create symlinks to nonexistent targets

Message ID
State New
Headers show

Commit Message

Peter Maydell May 25, 2011, 5:20 p.m.
When we create the symlinks to source tree files, don't create them
if the file is not actually present in the source tree; this will
happen if the file is in a git submodule that wasn't checked out.

This also avoids the odd effect where an in-source-tree configure
will end up creating the missing file as a symlink to itself.

Signed-off-by: Peter Maydell <>
 configure |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)


diff --git a/configure b/configure
index a318d37..e4d29d9 100755
--- a/configure
+++ b/configure
@@ -3564,7 +3564,10 @@  for bios_file in $source_path/pc-bios/*.bin $source_path/pc-bios/*.rom $source_p
 mkdir -p $DIRS
 for f in $FILES ; do
-    test -e $f || symlink $source_path/$f $f
+    if [ -e "$source_path/$f" -a ! -e "$f" ]; then
+        echo "symlinking $source_path/$f $f"
+        symlink "$source_path/$f" "$f"
+    fi
 # temporary config to build submodules