[PATCH libX11] Allow overriding location of keysymdef.h
Dan Nicholson
dbn.lists at gmail.com
Wed Sep 12 05:51:16 PDT 2012
On Tue, Sep 11, 2012 at 9:43 AM, Ross Burton <ross.burton at intel.com> wrote:
> Currently keysymdef.h is found by using the includedir of xproto. This doesn't
> work when cross-compiling with a sysroot as that ends up being /usr/include/X11,
> not a path into the cross-build environment.
>
> So, add an option to allow explicitly specifying the location of keysymdef.h,
> and verify that the specified or found path exists.
>
> (original patch by Martin Jansa <martin.jansa at gmail.com>, revised by myself)
>
> Signed-off-by: Ross Burton <ross.burton at intel.com>
It's unfortunate that PKG_CONFIG_SYSROOT_DIR doesn't help you here,
but it only does the mangling at the Cflags/Libs level rather than at
individual variables.
> ---
> configure.ac | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/configure.ac b/configure.ac
> index 48a0c8a..200db15 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -306,7 +306,18 @@ AC_CHECK_FUNC(poll, [AC_DEFINE(USE_POLL, 1, [poll() function is available])], )
> # Find keysymdef.h
> #
> AC_MSG_CHECKING([keysym definitions])
> -KEYSYMDEFDIR=`$PKG_CONFIG --variable=includedir xproto`/X11
> +AC_ARG_WITH(keysymdefdir,
> + AC_HELP_STRING([--with-keysymdefdir=DIR], [The location of keysymdef.h (defaults to xproto include dir)]),
> + KEYSYMDEFDIR=$withval, KEYSYMDEFDIR="")
> +
> +if test x$KEYSYMDEFDIR = x; then
> + KEYSYMDEFDIR=`$PKG_CONFIG --variable=includedir xproto`/X11
> +fi
You could compact these together so the pkg-config query is just the
option default. Plus all the stuff in the macros should be quoted to
be safe when autoconf expands it.
AC_ARG_WITH([keysymdefdir],
[AC_HELP_STRING([--with-keysymdefdir=DIR], [The location of
keysymdef.h (defaults to xproto include dir)])],
[KEYSYMDEFDIR=$withval],
[KEYSYMDEFDIR=`$PKG_CONFIG --variable=includedir xproto`/X11])
> +if test ! -d $KEYSYMDEFDIR; then
I'd quote the variable here so stupid shell errors don't happen if
someone throws in a directory with spaces.
> + AC_MSG_ERROR([$KEYSYMDEFDIR doesn't exist or isn't a directory])
> +fi
> +
> FILES="keysymdef.h XF86keysym.h Sunkeysym.h DECkeysym.h HPkeysym.h"
> for i in $FILES; do
> if test -f "$KEYSYMDEFDIR/$i"; then
Other than those nitpicks, it seems like a good fix to me.
Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>
More information about the xorg-devel
mailing list