Message ID | 20181030125005.28151-2-peter.maydell@linaro.org |
---|---|
State | New |
Headers | show |
Series | configure: symlink directories, not wildcarded files | expand |
On 30/10/18 13:50, Peter Maydell wrote: > The FILES variable is used to accumulate a list of things to symlink > from the source tree into the build tree. These don't have to be > individual files; symlinking an entire directory of data files is > also fine. Rename it to something less confusing before we add a few > directories to it. > > Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > configure | 33 ++++++++++++++++++--------------- > 1 file changed, 18 insertions(+), 15 deletions(-) > > diff --git a/configure b/configure > index 1c473ce95ba..b7d0167b650 100755 > --- a/configure > +++ b/configure > @@ -7366,22 +7366,25 @@ if test "$ccache_cpp2" = "yes"; then > echo "export CCACHE_CPP2=y" >> $config_host_mak > fi > > -# build tree in object directory in case the source is not in the current directory > +# If we're using a separate build tree, set it up now. > +# DIRS are directories which we simply mkdir in the build tree; > +# LINKS are things to symlink back into the source tree > +# (these can be both files and directories). > DIRS="tests tests/tcg tests/tcg/cris tests/tcg/lm32 tests/libqos tests/qapi-schema tests/tcg/xtensa tests/qemu-iotests tests/vm" > DIRS="$DIRS tests/fp" > DIRS="$DIRS docs docs/interop fsdev scsi" > DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas pc-bios/s390-ccw" > DIRS="$DIRS roms/seabios roms/vgabios" > -FILES="Makefile tests/tcg/Makefile qdict-test-data.txt" > -FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit" > -FILES="$FILES tests/tcg/lm32/Makefile tests/tcg/xtensa/Makefile po/Makefile" > -FILES="$FILES tests/fp/Makefile" > -FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps" > -FILES="$FILES pc-bios/spapr-rtas/Makefile" > -FILES="$FILES pc-bios/s390-ccw/Makefile" > -FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile" > -FILES="$FILES pc-bios/qemu-icon.bmp" > -FILES="$FILES .gdbinit scripts" # scripts needed by relative path in .gdbinit > +LINKS="Makefile tests/tcg/Makefile qdict-test-data.txt" > +LINKS="$LINKS tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit" > +LINKS="$LINKS tests/tcg/lm32/Makefile tests/tcg/xtensa/Makefile po/Makefile" > +LINKS="$LINKS tests/fp/Makefile" > +LINKS="$LINKS pc-bios/optionrom/Makefile pc-bios/keymaps" > +LINKS="$LINKS pc-bios/spapr-rtas/Makefile" > +LINKS="$LINKS pc-bios/s390-ccw/Makefile" > +LINKS="$LINKS roms/seabios/Makefile roms/vgabios/Makefile" > +LINKS="$LINKS pc-bios/qemu-icon.bmp" > +LINKS="$LINKS .gdbinit scripts" # scripts needed by relative path in .gdbinit > for bios_file in \ > $source_path/pc-bios/*.bin \ > $source_path/pc-bios/*.lid \ > @@ -7393,18 +7396,18 @@ for bios_file in \ > $source_path/pc-bios/u-boot.* \ > $source_path/pc-bios/palcode-* > do > - FILES="$FILES pc-bios/$(basename $bios_file)" > + LINKS="$LINKS pc-bios/$(basename $bios_file)" > done > for test_file in $(find $source_path/tests/acpi-test-data -type f) > do > - FILES="$FILES tests/acpi-test-data$(echo $test_file | sed -e 's/.*acpi-test-data//')" > + LINKS="$LINKS tests/acpi-test-data$(echo $test_file | sed -e 's/.*acpi-test-data//')" > done > for test_file in $(find $source_path/tests/hex-loader-check-data -type f) > do > - FILES="$FILES tests/hex-loader-check-data$(echo $test_file | sed -e 's/.*hex-loader-check-data//')" > + LINKS="$LINKS tests/hex-loader-check-data$(echo $test_file | sed -e 's/.*hex-loader-check-data//')" > done > mkdir -p $DIRS > -for f in $FILES ; do > +for f in $LINKS ; do > if [ -e "$source_path/$f" ] && [ "$pwd_is_source_path" != "y" ]; then > symlink "$source_path/$f" "$f" > fi >
diff --git a/configure b/configure index 1c473ce95ba..b7d0167b650 100755 --- a/configure +++ b/configure @@ -7366,22 +7366,25 @@ if test "$ccache_cpp2" = "yes"; then echo "export CCACHE_CPP2=y" >> $config_host_mak fi -# build tree in object directory in case the source is not in the current directory +# If we're using a separate build tree, set it up now. +# DIRS are directories which we simply mkdir in the build tree; +# LINKS are things to symlink back into the source tree +# (these can be both files and directories). DIRS="tests tests/tcg tests/tcg/cris tests/tcg/lm32 tests/libqos tests/qapi-schema tests/tcg/xtensa tests/qemu-iotests tests/vm" DIRS="$DIRS tests/fp" DIRS="$DIRS docs docs/interop fsdev scsi" DIRS="$DIRS pc-bios/optionrom pc-bios/spapr-rtas pc-bios/s390-ccw" DIRS="$DIRS roms/seabios roms/vgabios" -FILES="Makefile tests/tcg/Makefile qdict-test-data.txt" -FILES="$FILES tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit" -FILES="$FILES tests/tcg/lm32/Makefile tests/tcg/xtensa/Makefile po/Makefile" -FILES="$FILES tests/fp/Makefile" -FILES="$FILES pc-bios/optionrom/Makefile pc-bios/keymaps" -FILES="$FILES pc-bios/spapr-rtas/Makefile" -FILES="$FILES pc-bios/s390-ccw/Makefile" -FILES="$FILES roms/seabios/Makefile roms/vgabios/Makefile" -FILES="$FILES pc-bios/qemu-icon.bmp" -FILES="$FILES .gdbinit scripts" # scripts needed by relative path in .gdbinit +LINKS="Makefile tests/tcg/Makefile qdict-test-data.txt" +LINKS="$LINKS tests/tcg/cris/Makefile tests/tcg/cris/.gdbinit" +LINKS="$LINKS tests/tcg/lm32/Makefile tests/tcg/xtensa/Makefile po/Makefile" +LINKS="$LINKS tests/fp/Makefile" +LINKS="$LINKS pc-bios/optionrom/Makefile pc-bios/keymaps" +LINKS="$LINKS pc-bios/spapr-rtas/Makefile" +LINKS="$LINKS pc-bios/s390-ccw/Makefile" +LINKS="$LINKS roms/seabios/Makefile roms/vgabios/Makefile" +LINKS="$LINKS pc-bios/qemu-icon.bmp" +LINKS="$LINKS .gdbinit scripts" # scripts needed by relative path in .gdbinit for bios_file in \ $source_path/pc-bios/*.bin \ $source_path/pc-bios/*.lid \ @@ -7393,18 +7396,18 @@ for bios_file in \ $source_path/pc-bios/u-boot.* \ $source_path/pc-bios/palcode-* do - FILES="$FILES pc-bios/$(basename $bios_file)" + LINKS="$LINKS pc-bios/$(basename $bios_file)" done for test_file in $(find $source_path/tests/acpi-test-data -type f) do - FILES="$FILES tests/acpi-test-data$(echo $test_file | sed -e 's/.*acpi-test-data//')" + LINKS="$LINKS tests/acpi-test-data$(echo $test_file | sed -e 's/.*acpi-test-data//')" done for test_file in $(find $source_path/tests/hex-loader-check-data -type f) do - FILES="$FILES tests/hex-loader-check-data$(echo $test_file | sed -e 's/.*hex-loader-check-data//')" + LINKS="$LINKS tests/hex-loader-check-data$(echo $test_file | sed -e 's/.*hex-loader-check-data//')" done mkdir -p $DIRS -for f in $FILES ; do +for f in $LINKS ; do if [ -e "$source_path/$f" ] && [ "$pwd_is_source_path" != "y" ]; then symlink "$source_path/$f" "$f" fi
The FILES variable is used to accumulate a list of things to symlink from the source tree into the build tree. These don't have to be individual files; symlinking an entire directory of data files is also fine. Rename it to something less confusing before we add a few directories to it. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> --- configure | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-)