[Mesa-dev] [PATCH 2/2] configure.ac: error out if python/mako is not found when required

Emil Velikov emil.l.velikov at gmail.com
Wed Apr 1 11:41:04 PDT 2015


On 01/04/15 17:44, Matt Turner wrote:
> On Mon, Mar 23, 2015 at 10:49 AM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>> In case of using a distribution tarball (or a dirty git tree) one can
>> have the generated sources locally. Make configure.ac error out
>> otherwise, to alert that about the unmet requirement(s) of python/mako.
>>
>> Cc: Matt Turner <mattst88 at gmail.com>
>> Suggested-by: Matt Turner <mattst88 at gmail.com>
>> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
>> ---
>>  configure.ac | 45 +++++++++++++++++++++++++++++++++++++++++++--
>>  1 file changed, 43 insertions(+), 2 deletions(-)
>>
>> diff --git a/configure.ac b/configure.ac
>> index 3e5b6f5..10a36cc 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -123,8 +123,49 @@ if test "x$INDENT" != "xcat"; then
>>  fi
>>
>>  AX_CHECK_PYTHON_MAKO_MODULE($PYTHON_MAKO_REQUIRED)
>> -if test -n "$PYTHON2" -a "x$acv_mako_found" != "xyes"; then
>> -    AC_MSG_ERROR([Python mako module v$PYTHON_MAKO_REQUIRED or higher not found])
>> +
>> +if test -z "$PYTHON2"; then
>> +    if test ! -f "$srcdir/src/gallium/auxiliary/indices/u_indices_gen.c" -o \
>> +            ! -f "$srcdir/src/gallium/auxiliary/indices/u_unfilled_gen.c" -o \
>> +            ! -f "$srcdir/src/gallium/auxiliary/util/u_format_table.c" -o \
>> +            ! -f "$srcdir/src/glx/indirect.c" -o \
>> +            ! -f "$srcdir/src/glx/indirect.h" -o \
>> +            ! -f "$srcdir/src/glx/indirect_init.c" -o \
>> +            ! -f "$srcdir/src/glx/indirect_size.c" -o \
>> +            ! -f "$srcdir/src/glx/indirect_size.h" -o \
>> +            ! -f "$srcdir/src/mapi/es1api/glapi_mapi_tmp.h" -o \
>> +            ! -f "$srcdir/src/mapi/es2api/glapi_mapi_tmp.h" -o \
>> +            ! -f "$srcdir/src/mapi/glapi/glapi_mapi_tmp.h" -o \
>> +            ! -f "$srcdir/src/mapi/glapi/glprocs.h" -o \
>> +            ! -f "$srcdir/src/mapi/glapi/glapitemp.h" -o \
>> +            ! -f "$srcdir/src/mapi/glapi/glapitable.h" -o \
>> +            ! -f "$srcdir/src/mapi/glapi/glapi_gentable.c" -o \
>> +            ! -f "$srcdir/src/mapi/glapi/glapi_x86.S" -o \
>> +            ! -f "$srcdir/src/mapi/glapi/glapi_x86-64.S" -o \
>> +            ! -f "$srcdir/src/mapi/glapi/glapi_sparc.S" -o \
>> +            ! -f "$srcdir/src/mapi/shared-glapi/glapi_mapi_tmp.h" -o \
>> +            ! -f "$srcdir/src/mesa/drivers/dri/common/xmlpool/options.h" -o \
>> +            ! -f "$srcdir/src/mesa/main/enums.c" -o \
>> +            ! -f "$srcdir/src/mesa/main/api_exec.c" -o \
>> +            ! -f "$srcdir/src/mesa/main/dispatch.h" -o \
>> +            ! -f "$srcdir/src/mesa/main/format_info.h" -o \
>> +            ! -f "$srcdir/src/mesa/main/get_hash.h" -o \
>> +            ! -f "$srcdir/src/mesa/main/remap_helper.h" -o \
>> +            ! -f "$srcdir/src/util/format_srgb.c"; then
>> +        AC_MSG_ERROR([Python not found - unable to generate sources])
>> +    fi
>> +else
>> +    if test "x$acv_mako_found" = xno; then
>> +        if test ! -f "$srcdir/src/glsl/nir/nir_builder_opcodes.h" -o \
>> +                ! -f "$srcdir/src/glsl/nir/nir_constant_expressions.c" -o \
>> +                ! -f "$srcdir/src/glsl/nir/nir_opcodes.c" -o \
>> +                ! -f "$srcdir/src/glsl/nir/nir_opcodes.h" -o \
>> +                ! -f "$srcdir/src/glsl/nir/nir_opt_algebraic.c" -o \
>> +                ! -f "$srcdir/src/mesa/main/format_pack.c" -o \
>> +                ! -f "$srcdir/src/mesa/main/format_unpack.c"; then
>> +            AC_MSG_ERROR([Python mako module v$PYTHON_MAKO_REQUIRED or higher not found])
>> +        fi
>> +    fi
> 
> I don't think the list of generated files is a good idea. For
> starters, it's going to be difficult to remember to update.
> 
> Beyond that, I think there are only two real cases: (1) you're using a
> released tarball in which case you have all of these files, and (2)
> you're using a git checkout and you have none of them. Anything in
> between doesn't seem meaningful.
> 
> We check for a single generated file from bison (and a single one from
> flex), and have to my knowledge never encountered a problem by not
> checking for additional files.
> 
Most distros have been building (and still are last time I checked) with
flex and bison so even if there was a problem, it would have been hard
to spot.

Although as you said earlier - this is quite cumbersome and error-prone,
so let's go with a single file for now.

Thanks for steering me away from these lovely lists :-)

-Emil



More information about the mesa-dev mailing list