[Intel-gfx] [PATCH i-g-t] igt: Fix detection of missing flex
Petri Latvala
petri.latvala at intel.com
Tue May 30 11:59:28 UTC 2017
On Fri, May 26, 2017 at 12:11:04PM +0100, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>
> AM_PROG_FLEX macro will set the LEX variable using the missing
> script when the flex is not present. This will confuse the
> configure.ac check, which expects the AC_PROG_FLEX behaviour,
> and will so fail to detect the missing flex:
>
> AS_IF([test x"$LEX" != "x:" -a x"$YACC" != xyacc],
> [enable_assembler=yes],
> [enable_assembler=no])
>
> This is because AM_PROG_LEX sets the LEX variable to
> "${SHELL} /home/sc/intel-gpu-tools/build-aux/missing flex",
> while AC_PROG_LEX would set it to ":".
Good catch!
>
> If for some reason we really need to keep AM_PROG_LEX,
> alternative fix could be something like this placed before
> the above AS_IF check:
>
> AC_MSG_CHECKING([checking for working flex])
> if ! eval "$LEX --version >/dev/null 2>&1"; then
> AC_MSG_RESULT([failed])
> LEX=:
> else
> AC_MSG_RESULT([pass])
> fi
>
> Note the evil eval needed to recursively expand variables.
As far as I can tell, A*_PROG_LEX is only used to be able to select
whether to build the assembler. In other words, we don't need to
AM_PROG_LEX behaviour.
There's still a bug left though: If flex is not found, but lex is,
AC_PROG_LEX sets $LEX to 'lex', but assembler/Makefile.am hardcodes
'flex -i' anyway if the assembler is enabled. That still happens
whether AM_ or AC_ is used so this patch is still an improvement.
I would also like to note that the ratio of
characters-in-commit-message to characters-changed-in-code is quite
the winner. :P
Reviewed-by: Petri Latvala <petri.latvala at intel.com>
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
> ---
> configure.ac | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/configure.ac b/configure.ac
> index 5342e33c8293..82857a8325b1 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -40,7 +40,7 @@ AM_INIT_AUTOMAKE([1.12 foreign subdir-objects dist-bzip2])
> AM_PATH_PYTHON([3],, [:])
>
> AC_PROG_CC
> -AM_PROG_LEX
> +AC_PROG_LEX
> AC_PROG_YACC
>
> # check for gtk-doc
> --
> 2.9.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
More information about the Intel-gfx
mailing list