diff mbox series

[v3] configure: warn if not using a separate build directory

Message ID 20200331171606.386801-1-berrange@redhat.com
State New
Headers show
Series [v3] configure: warn if not using a separate build directory | expand

Commit Message

Daniel P. Berrangé March 31, 2020, 5:16 p.m. UTC
Running configure directly from the source directory is a build
configuration that will go away in future. It is also not currently
covered by any automated testing. Display a deprecation warning if
the user attempts to use an in-srcdir build setup, so that they are
aware that they're building QEMU in an undesirable manner.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---

Changed in v3:
  - Don't try to predict the future so much, just recommend
    a separate build dir

 configure | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

Comments

Eric Blake March 31, 2020, 5:21 p.m. UTC | #1
On 3/31/20 12:16 PM, Daniel P. Berrangé wrote:
> Running configure directly from the source directory is a build
> configuration that will go away in future. It is also not currently
> covered by any automated testing. Display a deprecation warning if
> the user attempts to use an in-srcdir build setup, so that they are
> aware that they're building QEMU in an undesirable manner.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
> 

> +if test "$in_srcdir" = "yes"; then
> +    echo
> +    echo "WARNING: SUPPORT FOR IN SOURCE DIR BUILDS IS DEPRECATED"
> +    echo
> +    echo "Support for running the 'configure' script directly from the"
> +    echo "source directory is deprecated. In source dir builds are not"
> +    echo "covered by automated testing and thus may not correctly build"
> +    echo "QEMU. Users are recommended to use a separate build directory:"

Our mails crossed. I still think this reads a bit awkwardly; maybe:

s/IN SOURCE DIR BUILDS/BUILDING IN THE SOURCE DIR/
s/In source dir builds/In-tree builds/

Reviewed-by: Eric Blake <eblake@redhat.com>
Markus Armbruster March 31, 2020, 6:28 p.m. UTC | #2
Eric Blake <eblake@redhat.com> writes:

> On 3/31/20 12:16 PM, Daniel P. Berrangé wrote:
>> Running configure directly from the source directory is a build
>> configuration that will go away in future. It is also not currently
>> covered by any automated testing. Display a deprecation warning if
>> the user attempts to use an in-srcdir build setup, so that they are
>> aware that they're building QEMU in an undesirable manner.
>>
>> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
>> ---
>>
>
>> +if test "$in_srcdir" = "yes"; then
>> +    echo
>> +    echo "WARNING: SUPPORT FOR IN SOURCE DIR BUILDS IS DEPRECATED"
>> +    echo
>> +    echo "Support for running the 'configure' script directly from the"
>> +    echo "source directory is deprecated. In source dir builds are not"
>> +    echo "covered by automated testing and thus may not correctly build"
>> +    echo "QEMU. Users are recommended to use a separate build directory:"
>
> Our mails crossed. I still think this reads a bit awkwardly; maybe:
>
> s/IN SOURCE DIR BUILDS/BUILDING IN THE SOURCE DIR/
> s/In source dir builds/In-tree builds/
>
> Reviewed-by: Eric Blake <eblake@redhat.com>

Preferably with Eric's tweaks:
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Philippe Mathieu-Daudé March 31, 2020, 7:57 p.m. UTC | #3
On 3/31/20 8:28 PM, Markus Armbruster wrote:
> Eric Blake <eblake@redhat.com> writes:
> 
>> On 3/31/20 12:16 PM, Daniel P. Berrangé wrote:
>>> Running configure directly from the source directory is a build
>>> configuration that will go away in future. It is also not currently
>>> covered by any automated testing. Display a deprecation warning if
>>> the user attempts to use an in-srcdir build setup, so that they are
>>> aware that they're building QEMU in an undesirable manner.
>>>
>>> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
>>> ---
>>>
>>
>>> +if test "$in_srcdir" = "yes"; then
>>> +    echo
>>> +    echo "WARNING: SUPPORT FOR IN SOURCE DIR BUILDS IS DEPRECATED"
>>> +    echo
>>> +    echo "Support for running the 'configure' script directly from the"
>>> +    echo "source directory is deprecated. In source dir builds are not"
>>> +    echo "covered by automated testing and thus may not correctly build"
>>> +    echo "QEMU. Users are recommended to use a separate build directory:"
>>
>> Our mails crossed. I still think this reads a bit awkwardly; maybe:
>>
>> s/IN SOURCE DIR BUILDS/BUILDING IN THE SOURCE DIR/
>> s/In source dir builds/In-tree builds/
>>
>> Reviewed-by: Eric Blake <eblake@redhat.com>
> 
> Preferably with Eric's tweaks:
> Reviewed-by: Markus Armbruster <armbru@redhat.com>
> 

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
diff mbox series

Patch

diff --git a/configure b/configure
index e225a1e3ff..b4d1b01689 100755
--- a/configure
+++ b/configure
@@ -285,6 +285,16 @@  then
   error_exit "main directory cannot contain spaces nor colons"
 fi
 
+canon_build_path=$(realpath -- "$PWD")
+canon_source_path=$(realpath -- "$source_path")
+
+in_srcdir=no
+if [ "$canon_build_path" = "$canon_source_path" ]
+then
+    in_srcdir=yes
+fi
+
+
 # default parameters
 cpu=""
 iasl="iasl"
@@ -6799,6 +6809,22 @@  if test "$supported_os" = "no"; then
     echo "us upstream at qemu-devel@nongnu.org."
 fi
 
+if test "$in_srcdir" = "yes"; then
+    echo
+    echo "WARNING: SUPPORT FOR IN SOURCE DIR BUILDS IS DEPRECATED"
+    echo
+    echo "Support for running the 'configure' script directly from the"
+    echo "source directory is deprecated. In source dir builds are not"
+    echo "covered by automated testing and thus may not correctly build"
+    echo "QEMU. Users are recommended to use a separate build directory:"
+    echo
+    echo "  $ mkdir build"
+    echo "  $ cd build"
+    echo "  $ ../configure"
+    echo "  $ make"
+    echo
+fi
+
 config_host_mak="config-host.mak"
 
 echo "# Automatically generated by configure - do not modify" >config-all-disas.mak