Patchwork [v2,1/2] qapi: check for python, allow path to be specified

login
register
mail settings
Submitter Michael Roth
Date July 24, 2011, 6:36 p.m.
Message ID <1311532589-5737-1-git-send-email-mdroth@linux.vnet.ibm.com>
Download mbox | patch
Permalink /patch/106558/
State New
Headers show

Comments

Michael Roth - July 24, 2011, 6:36 p.m.
QAPI requires python to generate code. Check for python during
configuration and allow python to be specified manually.

Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
---
 Makefile  |   12 ++++++------
 configure |   13 +++++++++++++
 2 files changed, 19 insertions(+), 6 deletions(-)
Blue Swirl - July 25, 2011, 2:36 p.m.
On Sun, Jul 24, 2011 at 9:36 PM, Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
> QAPI requires python to generate code. Check for python during
> configuration and allow python to be specified manually.

Now your patch is almost identical to mine. Maybe you missed it:
http://lists.nongnu.org/archive/html/qemu-devel/2011-07/msg02373.html.

There is still one difference, my version puts the python stuff close
to make and install handling, which is more logical since they all are
build tools.

> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
> ---
>  Makefile  |   12 ++++++------
>  configure |   13 +++++++++++++
>  2 files changed, 19 insertions(+), 6 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index f3a03ad..daa3aa0 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -168,22 +168,22 @@ test-visitor.o test-qmp-commands.o qemu-ga$(EXESUF): QEMU_CFLAGS += -I $(qapi-di
>
>  $(qapi-dir)/test-qapi-types.c: $(qapi-dir)/test-qapi-types.h
>  $(qapi-dir)/test-qapi-types.h: $(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py
> -       $(call quiet-command,python $(SRC_PATH)/scripts/qapi-types.py -o "$(qapi-dir)" -p "test-" < $<, "  GEN   $@")
> +       $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py -o "$(qapi-dir)" -p "test-" < $<, "  GEN   $@")
>  $(qapi-dir)/test-qapi-visit.c: $(qapi-dir)/test-qapi-visit.h
>  $(qapi-dir)/test-qapi-visit.h: $(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py
> -       $(call quiet-command,python $(SRC_PATH)/scripts/qapi-visit.py -o "$(qapi-dir)" -p "test-" < $<, "  GEN   $@")
> +       $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py -o "$(qapi-dir)" -p "test-" < $<, "  GEN   $@")
>  $(qapi-dir)/test-qmp-commands.h: $(qapi-dir)/test-qmp-marshal.c
>  $(qapi-dir)/test-qmp-marshal.c: $(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py
> -           $(call quiet-command,python $(SRC_PATH)/scripts/qapi-commands.py -o "$(qapi-dir)" -p "test-" < $<, "  GEN   $@")
> +           $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py -o "$(qapi-dir)" -p "test-" < $<, "  GEN   $@")
>
>  $(qapi-dir)/qga-qapi-types.c: $(qapi-dir)/qga-qapi-types.h
>  $(qapi-dir)/qga-qapi-types.h: $(SRC_PATH)/qapi-schema-guest.json $(SRC_PATH)/scripts/qapi-types.py
> -       $(call quiet-command,python $(SRC_PATH)/scripts/qapi-types.py -o "$(qapi-dir)" -p "qga-" < $<, "  GEN   $@")
> +       $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py -o "$(qapi-dir)" -p "qga-" < $<, "  GEN   $@")
>  $(qapi-dir)/qga-qapi-visit.c: $(qapi-dir)/qga-qapi-visit.h
>  $(qapi-dir)/qga-qapi-visit.h: $(SRC_PATH)/qapi-schema-guest.json $(SRC_PATH)/scripts/qapi-visit.py
> -       $(call quiet-command,python $(SRC_PATH)/scripts/qapi-visit.py -o "$(qapi-dir)" -p "qga-" < $<, "  GEN   $@")
> +       $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py -o "$(qapi-dir)" -p "qga-" < $<, "  GEN   $@")
>  $(qapi-dir)/qga-qmp-marshal.c: $(SRC_PATH)/qapi-schema-guest.json $(SRC_PATH)/scripts/qapi-commands.py
> -       $(call quiet-command,python $(SRC_PATH)/scripts/qapi-commands.py -o "$(qapi-dir)" -p "qga-" < $<, "  GEN   $@")
> +       $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py -o "$(qapi-dir)" -p "qga-" < $<, "  GEN   $@")
>
>  test-visitor.o: $(addprefix $(qapi-dir)/, test-qapi-types.c test-qapi-types.h test-qapi-visit.c test-qapi-visit.h) $(qapi-obj-y)
>  test-visitor: test-visitor.o qfloat.o qint.o qdict.o qstring.o qlist.o qbool.o $(qapi-obj-y) error.o osdep.o qemu-malloc.o $(oslib-obj-y) qjson.o json-streamer.o json-lexer.o json-parser.o qerror.o qemu-error.o qemu-tool.o $(qapi-dir)/test-qapi-visit.o $(qapi-dir)/test-qapi-types.o
> diff --git a/configure b/configure
> index 600da9b..16652b5 100755
> --- a/configure
> +++ b/configure
> @@ -225,6 +225,7 @@ strip="${cross_prefix}${STRIP-strip}"
>  windres="${cross_prefix}${WINDRES-windres}"
>  pkg_config="${cross_prefix}${PKG_CONFIG-pkg-config}"
>  sdl_config="${cross_prefix}${SDL_CONFIG-sdl-config}"
> +python="${cross_prefix}${PYTHON-python}"
>
>  # default flags for all hosts
>  QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
> @@ -748,6 +749,8 @@ for opt do
>   ;;
>   --enable-usb-redir) usb_redir="yes"
>   ;;
> +  --python=*) python="$optarg"
> +  ;;
>   *) echo "ERROR: unknown option $opt"; show_help="yes"
>   ;;
>   esac
> @@ -1025,6 +1028,7 @@ echo "  --disable-smartcard-nss  disable smartcard nss support"
>  echo "  --enable-smartcard-nss   enable smartcard nss support"
>  echo "  --disable-usb-redir      disable usb network redirection support"
>  echo "  --enable-usb-redir       enable usb network redirection support"
> +echo "  --python=PATH            path to python executable [$python]"
>  echo ""
>  echo "NOTE: The object files are built at the place where configure is launched"
>  exit 1
> @@ -1810,6 +1814,13 @@ EOF
>  fi
>
>  ##########################################
> +# python probe
> +if ! has $python; then
> +    echo "python executable not found: $python. You can specify with --python"
> +    exit 1
> +fi
> +
> +##########################################
>  # glib support probe
>  if $pkg_config --modversion glib-2.0 > /dev/null 2>&1 ; then
>     glib_cflags=`$pkg_config --cflags glib-2.0 2>/dev/null`
> @@ -2655,6 +2666,7 @@ echo "xfsctl support    $xfs"
>  echo "nss used          $smartcard_nss"
>  echo "usb net redir     $usb_redir"
>  echo "OpenGL support    $opengl"
> +echo "python            $python"
>
>  if test $sdl_too_old = "yes"; then
>  echo "-> Your SDL version is too old - please upgrade to have SDL support"
> @@ -3026,6 +3038,7 @@ echo "ARLIBS_END=$arlibs_end" >> $config_host_mak
>  echo "LIBS+=$LIBS" >> $config_host_mak
>  echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
>  echo "EXESUF=$EXESUF" >> $config_host_mak
> +echo "PYTHON=$python" >> $config_host_mak
>
>  # generate list of library paths for linker script
>
> --
> 1.7.0.4
>
>
Michael Roth - July 25, 2011, 2:55 p.m.
On 07/25/2011 09:36 AM, Blue Swirl wrote:
> On Sun, Jul 24, 2011 at 9:36 PM, Michael Roth<mdroth@linux.vnet.ibm.com>  wrote:
>> QAPI requires python to generate code. Check for python during
>> configuration and allow python to be specified manually.
>
> Now your patch is almost identical to mine. Maybe you missed it:
> http://lists.nongnu.org/archive/html/qemu-devel/2011-07/msg02373.html.
>

Doh! Yah must've missed it, thought you hadn't sent yet.

> There is still one difference, my version puts the python stuff close
> to make and install handling, which is more logical since they all are
> build tools.
>

Agreed. Let's stick with your patch :)

>> Signed-off-by: Michael Roth<mdroth@linux.vnet.ibm.com>
>> ---
>>   Makefile  |   12 ++++++------
>>   configure |   13 +++++++++++++
>>   2 files changed, 19 insertions(+), 6 deletions(-)
>>
>> diff --git a/Makefile b/Makefile
>> index f3a03ad..daa3aa0 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -168,22 +168,22 @@ test-visitor.o test-qmp-commands.o qemu-ga$(EXESUF): QEMU_CFLAGS += -I $(qapi-di
>>
>>   $(qapi-dir)/test-qapi-types.c: $(qapi-dir)/test-qapi-types.h
>>   $(qapi-dir)/test-qapi-types.h: $(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py
>> -       $(call quiet-command,python $(SRC_PATH)/scripts/qapi-types.py -o "$(qapi-dir)" -p "test-"<  $<, "  GEN   $@")
>> +       $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py -o "$(qapi-dir)" -p "test-"<  $<, "  GEN   $@")
>>   $(qapi-dir)/test-qapi-visit.c: $(qapi-dir)/test-qapi-visit.h
>>   $(qapi-dir)/test-qapi-visit.h: $(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py
>> -       $(call quiet-command,python $(SRC_PATH)/scripts/qapi-visit.py -o "$(qapi-dir)" -p "test-"<  $<, "  GEN   $@")
>> +       $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py -o "$(qapi-dir)" -p "test-"<  $<, "  GEN   $@")
>>   $(qapi-dir)/test-qmp-commands.h: $(qapi-dir)/test-qmp-marshal.c
>>   $(qapi-dir)/test-qmp-marshal.c: $(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py
>> -           $(call quiet-command,python $(SRC_PATH)/scripts/qapi-commands.py -o "$(qapi-dir)" -p "test-"<  $<, "  GEN   $@")
>> +           $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py -o "$(qapi-dir)" -p "test-"<  $<, "  GEN   $@")
>>
>>   $(qapi-dir)/qga-qapi-types.c: $(qapi-dir)/qga-qapi-types.h
>>   $(qapi-dir)/qga-qapi-types.h: $(SRC_PATH)/qapi-schema-guest.json $(SRC_PATH)/scripts/qapi-types.py
>> -       $(call quiet-command,python $(SRC_PATH)/scripts/qapi-types.py -o "$(qapi-dir)" -p "qga-"<  $<, "  GEN   $@")
>> +       $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py -o "$(qapi-dir)" -p "qga-"<  $<, "  GEN   $@")
>>   $(qapi-dir)/qga-qapi-visit.c: $(qapi-dir)/qga-qapi-visit.h
>>   $(qapi-dir)/qga-qapi-visit.h: $(SRC_PATH)/qapi-schema-guest.json $(SRC_PATH)/scripts/qapi-visit.py
>> -       $(call quiet-command,python $(SRC_PATH)/scripts/qapi-visit.py -o "$(qapi-dir)" -p "qga-"<  $<, "  GEN   $@")
>> +       $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py -o "$(qapi-dir)" -p "qga-"<  $<, "  GEN   $@")
>>   $(qapi-dir)/qga-qmp-marshal.c: $(SRC_PATH)/qapi-schema-guest.json $(SRC_PATH)/scripts/qapi-commands.py
>> -       $(call quiet-command,python $(SRC_PATH)/scripts/qapi-commands.py -o "$(qapi-dir)" -p "qga-"<  $<, "  GEN   $@")
>> +       $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py -o "$(qapi-dir)" -p "qga-"<  $<, "  GEN   $@")
>>
>>   test-visitor.o: $(addprefix $(qapi-dir)/, test-qapi-types.c test-qapi-types.h test-qapi-visit.c test-qapi-visit.h) $(qapi-obj-y)
>>   test-visitor: test-visitor.o qfloat.o qint.o qdict.o qstring.o qlist.o qbool.o $(qapi-obj-y) error.o osdep.o qemu-malloc.o $(oslib-obj-y) qjson.o json-streamer.o json-lexer.o json-parser.o qerror.o qemu-error.o qemu-tool.o $(qapi-dir)/test-qapi-visit.o $(qapi-dir)/test-qapi-types.o
>> diff --git a/configure b/configure
>> index 600da9b..16652b5 100755
>> --- a/configure
>> +++ b/configure
>> @@ -225,6 +225,7 @@ strip="${cross_prefix}${STRIP-strip}"
>>   windres="${cross_prefix}${WINDRES-windres}"
>>   pkg_config="${cross_prefix}${PKG_CONFIG-pkg-config}"
>>   sdl_config="${cross_prefix}${SDL_CONFIG-sdl-config}"
>> +python="${cross_prefix}${PYTHON-python}"
>>
>>   # default flags for all hosts
>>   QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
>> @@ -748,6 +749,8 @@ for opt do
>>    ;;
>>    --enable-usb-redir) usb_redir="yes"
>>    ;;
>> +  --python=*) python="$optarg"
>> +  ;;
>>    *) echo "ERROR: unknown option $opt"; show_help="yes"
>>    ;;
>>    esac
>> @@ -1025,6 +1028,7 @@ echo "  --disable-smartcard-nss  disable smartcard nss support"
>>   echo "  --enable-smartcard-nss   enable smartcard nss support"
>>   echo "  --disable-usb-redir      disable usb network redirection support"
>>   echo "  --enable-usb-redir       enable usb network redirection support"
>> +echo "  --python=PATH            path to python executable [$python]"
>>   echo ""
>>   echo "NOTE: The object files are built at the place where configure is launched"
>>   exit 1
>> @@ -1810,6 +1814,13 @@ EOF
>>   fi
>>
>>   ##########################################
>> +# python probe
>> +if ! has $python; then
>> +    echo "python executable not found: $python. You can specify with --python"
>> +    exit 1
>> +fi
>> +
>> +##########################################
>>   # glib support probe
>>   if $pkg_config --modversion glib-2.0>  /dev/null 2>&1 ; then
>>      glib_cflags=`$pkg_config --cflags glib-2.0 2>/dev/null`
>> @@ -2655,6 +2666,7 @@ echo "xfsctl support    $xfs"
>>   echo "nss used          $smartcard_nss"
>>   echo "usb net redir     $usb_redir"
>>   echo "OpenGL support    $opengl"
>> +echo "python            $python"
>>
>>   if test $sdl_too_old = "yes"; then
>>   echo "->  Your SDL version is too old - please upgrade to have SDL support"
>> @@ -3026,6 +3038,7 @@ echo "ARLIBS_END=$arlibs_end">>  $config_host_mak
>>   echo "LIBS+=$LIBS">>  $config_host_mak
>>   echo "LIBS_TOOLS+=$libs_tools">>  $config_host_mak
>>   echo "EXESUF=$EXESUF">>  $config_host_mak
>> +echo "PYTHON=$python">>  $config_host_mak
>>
>>   # generate list of library paths for linker script
>>
>> --
>> 1.7.0.4
>>
>>
Blue Swirl - July 25, 2011, 4:54 p.m.
On Mon, Jul 25, 2011 at 5:55 PM, Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
> On 07/25/2011 09:36 AM, Blue Swirl wrote:
>>
>> On Sun, Jul 24, 2011 at 9:36 PM, Michael Roth<mdroth@linux.vnet.ibm.com>
>>  wrote:
>>>
>>> QAPI requires python to generate code. Check for python during
>>> configuration and allow python to be specified manually.
>>
>> Now your patch is almost identical to mine. Maybe you missed it:
>> http://lists.nongnu.org/archive/html/qemu-devel/2011-07/msg02373.html.
>>
>
> Doh! Yah must've missed it, thought you hadn't sent yet.
>
>> There is still one difference, my version puts the python stuff close
>> to make and install handling, which is more logical since they all are
>> build tools.
>>
>
> Agreed. Let's stick with your patch :)

OK, I've pushed it.

>>> Signed-off-by: Michael Roth<mdroth@linux.vnet.ibm.com>
>>> ---
>>>  Makefile  |   12 ++++++------
>>>  configure |   13 +++++++++++++
>>>  2 files changed, 19 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/Makefile b/Makefile
>>> index f3a03ad..daa3aa0 100644
>>> --- a/Makefile
>>> +++ b/Makefile
>>> @@ -168,22 +168,22 @@ test-visitor.o test-qmp-commands.o
>>> qemu-ga$(EXESUF): QEMU_CFLAGS += -I $(qapi-di
>>>
>>>  $(qapi-dir)/test-qapi-types.c: $(qapi-dir)/test-qapi-types.h
>>>  $(qapi-dir)/test-qapi-types.h: $(SRC_PATH)/qapi-schema-test.json
>>> $(SRC_PATH)/scripts/qapi-types.py
>>> -       $(call quiet-command,python $(SRC_PATH)/scripts/qapi-types.py -o
>>> "$(qapi-dir)" -p "test-"<  $<, "  GEN   $@")
>>> +       $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py
>>> -o "$(qapi-dir)" -p "test-"<  $<, "  GEN   $@")
>>>  $(qapi-dir)/test-qapi-visit.c: $(qapi-dir)/test-qapi-visit.h
>>>  $(qapi-dir)/test-qapi-visit.h: $(SRC_PATH)/qapi-schema-test.json
>>> $(SRC_PATH)/scripts/qapi-visit.py
>>> -       $(call quiet-command,python $(SRC_PATH)/scripts/qapi-visit.py -o
>>> "$(qapi-dir)" -p "test-"<  $<, "  GEN   $@")
>>> +       $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py
>>> -o "$(qapi-dir)" -p "test-"<  $<, "  GEN   $@")
>>>  $(qapi-dir)/test-qmp-commands.h: $(qapi-dir)/test-qmp-marshal.c
>>>  $(qapi-dir)/test-qmp-marshal.c: $(SRC_PATH)/qapi-schema-test.json
>>> $(SRC_PATH)/scripts/qapi-commands.py
>>> -           $(call quiet-command,python
>>> $(SRC_PATH)/scripts/qapi-commands.py -o "$(qapi-dir)" -p "test-"<  $<, "
>>>  GEN   $@")
>>> +           $(call quiet-command,$(PYTHON)
>>> $(SRC_PATH)/scripts/qapi-commands.py -o "$(qapi-dir)" -p "test-"<  $<, "
>>>  GEN   $@")
>>>
>>>  $(qapi-dir)/qga-qapi-types.c: $(qapi-dir)/qga-qapi-types.h
>>>  $(qapi-dir)/qga-qapi-types.h: $(SRC_PATH)/qapi-schema-guest.json
>>> $(SRC_PATH)/scripts/qapi-types.py
>>> -       $(call quiet-command,python $(SRC_PATH)/scripts/qapi-types.py -o
>>> "$(qapi-dir)" -p "qga-"<  $<, "  GEN   $@")
>>> +       $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py
>>> -o "$(qapi-dir)" -p "qga-"<  $<, "  GEN   $@")
>>>  $(qapi-dir)/qga-qapi-visit.c: $(qapi-dir)/qga-qapi-visit.h
>>>  $(qapi-dir)/qga-qapi-visit.h: $(SRC_PATH)/qapi-schema-guest.json
>>> $(SRC_PATH)/scripts/qapi-visit.py
>>> -       $(call quiet-command,python $(SRC_PATH)/scripts/qapi-visit.py -o
>>> "$(qapi-dir)" -p "qga-"<  $<, "  GEN   $@")
>>> +       $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py
>>> -o "$(qapi-dir)" -p "qga-"<  $<, "  GEN   $@")
>>>  $(qapi-dir)/qga-qmp-marshal.c: $(SRC_PATH)/qapi-schema-guest.json
>>> $(SRC_PATH)/scripts/qapi-commands.py
>>> -       $(call quiet-command,python $(SRC_PATH)/scripts/qapi-commands.py
>>> -o "$(qapi-dir)" -p "qga-"<  $<, "  GEN   $@")
>>> +       $(call quiet-command,$(PYTHON)
>>> $(SRC_PATH)/scripts/qapi-commands.py -o "$(qapi-dir)" -p "qga-"<  $<, "  GEN
>>>   $@")
>>>
>>>  test-visitor.o: $(addprefix $(qapi-dir)/, test-qapi-types.c
>>> test-qapi-types.h test-qapi-visit.c test-qapi-visit.h) $(qapi-obj-y)
>>>  test-visitor: test-visitor.o qfloat.o qint.o qdict.o qstring.o qlist.o
>>> qbool.o $(qapi-obj-y) error.o osdep.o qemu-malloc.o $(oslib-obj-y) qjson.o
>>> json-streamer.o json-lexer.o json-parser.o qerror.o qemu-error.o qemu-tool.o
>>> $(qapi-dir)/test-qapi-visit.o $(qapi-dir)/test-qapi-types.o
>>> diff --git a/configure b/configure
>>> index 600da9b..16652b5 100755
>>> --- a/configure
>>> +++ b/configure
>>> @@ -225,6 +225,7 @@ strip="${cross_prefix}${STRIP-strip}"
>>>  windres="${cross_prefix}${WINDRES-windres}"
>>>  pkg_config="${cross_prefix}${PKG_CONFIG-pkg-config}"
>>>  sdl_config="${cross_prefix}${SDL_CONFIG-sdl-config}"
>>> +python="${cross_prefix}${PYTHON-python}"
>>>
>>>  # default flags for all hosts
>>>  QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
>>> @@ -748,6 +749,8 @@ for opt do
>>>   ;;
>>>   --enable-usb-redir) usb_redir="yes"
>>>   ;;
>>> +  --python=*) python="$optarg"
>>> +  ;;
>>>   *) echo "ERROR: unknown option $opt"; show_help="yes"
>>>   ;;
>>>   esac
>>> @@ -1025,6 +1028,7 @@ echo "  --disable-smartcard-nss  disable smartcard
>>> nss support"
>>>  echo "  --enable-smartcard-nss   enable smartcard nss support"
>>>  echo "  --disable-usb-redir      disable usb network redirection
>>> support"
>>>  echo "  --enable-usb-redir       enable usb network redirection support"
>>> +echo "  --python=PATH            path to python executable [$python]"
>>>  echo ""
>>>  echo "NOTE: The object files are built at the place where configure is
>>> launched"
>>>  exit 1
>>> @@ -1810,6 +1814,13 @@ EOF
>>>  fi
>>>
>>>  ##########################################
>>> +# python probe
>>> +if ! has $python; then
>>> +    echo "python executable not found: $python. You can specify with
>>> --python"
>>> +    exit 1
>>> +fi
>>> +
>>> +##########################################
>>>  # glib support probe
>>>  if $pkg_config --modversion glib-2.0>  /dev/null 2>&1 ; then
>>>     glib_cflags=`$pkg_config --cflags glib-2.0 2>/dev/null`
>>> @@ -2655,6 +2666,7 @@ echo "xfsctl support    $xfs"
>>>  echo "nss used          $smartcard_nss"
>>>  echo "usb net redir     $usb_redir"
>>>  echo "OpenGL support    $opengl"
>>> +echo "python            $python"
>>>
>>>  if test $sdl_too_old = "yes"; then
>>>  echo "->  Your SDL version is too old - please upgrade to have SDL
>>> support"
>>> @@ -3026,6 +3038,7 @@ echo "ARLIBS_END=$arlibs_end">>  $config_host_mak
>>>  echo "LIBS+=$LIBS">>  $config_host_mak
>>>  echo "LIBS_TOOLS+=$libs_tools">>  $config_host_mak
>>>  echo "EXESUF=$EXESUF">>  $config_host_mak
>>> +echo "PYTHON=$python">>  $config_host_mak
>>>
>>>  # generate list of library paths for linker script
>>>
>>> --
>>> 1.7.0.4
>>>
>>>
>
>

Patch

diff --git a/Makefile b/Makefile
index f3a03ad..daa3aa0 100644
--- a/Makefile
+++ b/Makefile
@@ -168,22 +168,22 @@  test-visitor.o test-qmp-commands.o qemu-ga$(EXESUF): QEMU_CFLAGS += -I $(qapi-di
 
 $(qapi-dir)/test-qapi-types.c: $(qapi-dir)/test-qapi-types.h
 $(qapi-dir)/test-qapi-types.h: $(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-types.py
-	$(call quiet-command,python $(SRC_PATH)/scripts/qapi-types.py -o "$(qapi-dir)" -p "test-" < $<, "  GEN   $@")
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py -o "$(qapi-dir)" -p "test-" < $<, "  GEN   $@")
 $(qapi-dir)/test-qapi-visit.c: $(qapi-dir)/test-qapi-visit.h
 $(qapi-dir)/test-qapi-visit.h: $(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-visit.py
-	$(call quiet-command,python $(SRC_PATH)/scripts/qapi-visit.py -o "$(qapi-dir)" -p "test-" < $<, "  GEN   $@")
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py -o "$(qapi-dir)" -p "test-" < $<, "  GEN   $@")
 $(qapi-dir)/test-qmp-commands.h: $(qapi-dir)/test-qmp-marshal.c
 $(qapi-dir)/test-qmp-marshal.c: $(SRC_PATH)/qapi-schema-test.json $(SRC_PATH)/scripts/qapi-commands.py
-	    $(call quiet-command,python $(SRC_PATH)/scripts/qapi-commands.py -o "$(qapi-dir)" -p "test-" < $<, "  GEN   $@")
+	    $(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py -o "$(qapi-dir)" -p "test-" < $<, "  GEN   $@")
 
 $(qapi-dir)/qga-qapi-types.c: $(qapi-dir)/qga-qapi-types.h
 $(qapi-dir)/qga-qapi-types.h: $(SRC_PATH)/qapi-schema-guest.json $(SRC_PATH)/scripts/qapi-types.py
-	$(call quiet-command,python $(SRC_PATH)/scripts/qapi-types.py -o "$(qapi-dir)" -p "qga-" < $<, "  GEN   $@")
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-types.py -o "$(qapi-dir)" -p "qga-" < $<, "  GEN   $@")
 $(qapi-dir)/qga-qapi-visit.c: $(qapi-dir)/qga-qapi-visit.h
 $(qapi-dir)/qga-qapi-visit.h: $(SRC_PATH)/qapi-schema-guest.json $(SRC_PATH)/scripts/qapi-visit.py
-	$(call quiet-command,python $(SRC_PATH)/scripts/qapi-visit.py -o "$(qapi-dir)" -p "qga-" < $<, "  GEN   $@")
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-visit.py -o "$(qapi-dir)" -p "qga-" < $<, "  GEN   $@")
 $(qapi-dir)/qga-qmp-marshal.c: $(SRC_PATH)/qapi-schema-guest.json $(SRC_PATH)/scripts/qapi-commands.py
-	$(call quiet-command,python $(SRC_PATH)/scripts/qapi-commands.py -o "$(qapi-dir)" -p "qga-" < $<, "  GEN   $@")
+	$(call quiet-command,$(PYTHON) $(SRC_PATH)/scripts/qapi-commands.py -o "$(qapi-dir)" -p "qga-" < $<, "  GEN   $@")
 
 test-visitor.o: $(addprefix $(qapi-dir)/, test-qapi-types.c test-qapi-types.h test-qapi-visit.c test-qapi-visit.h) $(qapi-obj-y)
 test-visitor: test-visitor.o qfloat.o qint.o qdict.o qstring.o qlist.o qbool.o $(qapi-obj-y) error.o osdep.o qemu-malloc.o $(oslib-obj-y) qjson.o json-streamer.o json-lexer.o json-parser.o qerror.o qemu-error.o qemu-tool.o $(qapi-dir)/test-qapi-visit.o $(qapi-dir)/test-qapi-types.o
diff --git a/configure b/configure
index 600da9b..16652b5 100755
--- a/configure
+++ b/configure
@@ -225,6 +225,7 @@  strip="${cross_prefix}${STRIP-strip}"
 windres="${cross_prefix}${WINDRES-windres}"
 pkg_config="${cross_prefix}${PKG_CONFIG-pkg-config}"
 sdl_config="${cross_prefix}${SDL_CONFIG-sdl-config}"
+python="${cross_prefix}${PYTHON-python}"
 
 # default flags for all hosts
 QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
@@ -748,6 +749,8 @@  for opt do
   ;;
   --enable-usb-redir) usb_redir="yes"
   ;;
+  --python=*) python="$optarg"
+  ;;
   *) echo "ERROR: unknown option $opt"; show_help="yes"
   ;;
   esac
@@ -1025,6 +1028,7 @@  echo "  --disable-smartcard-nss  disable smartcard nss support"
 echo "  --enable-smartcard-nss   enable smartcard nss support"
 echo "  --disable-usb-redir      disable usb network redirection support"
 echo "  --enable-usb-redir       enable usb network redirection support"
+echo "  --python=PATH            path to python executable [$python]"
 echo ""
 echo "NOTE: The object files are built at the place where configure is launched"
 exit 1
@@ -1810,6 +1814,13 @@  EOF
 fi
 
 ##########################################
+# python probe
+if ! has $python; then
+    echo "python executable not found: $python. You can specify with --python"
+    exit 1
+fi
+
+##########################################
 # glib support probe
 if $pkg_config --modversion glib-2.0 > /dev/null 2>&1 ; then
     glib_cflags=`$pkg_config --cflags glib-2.0 2>/dev/null`
@@ -2655,6 +2666,7 @@  echo "xfsctl support    $xfs"
 echo "nss used          $smartcard_nss"
 echo "usb net redir     $usb_redir"
 echo "OpenGL support    $opengl"
+echo "python            $python"
 
 if test $sdl_too_old = "yes"; then
 echo "-> Your SDL version is too old - please upgrade to have SDL support"
@@ -3026,6 +3038,7 @@  echo "ARLIBS_END=$arlibs_end" >> $config_host_mak
 echo "LIBS+=$LIBS" >> $config_host_mak
 echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak
 echo "EXESUF=$EXESUF" >> $config_host_mak
+echo "PYTHON=$python" >> $config_host_mak
 
 # generate list of library paths for linker script