[Mesa-dev] [PATCH 7/7] automake: properly handle non-default expat installation

Emil Velikov emil.l.velikov at gmail.com
Mon Oct 7 10:53:10 PDT 2013


On 07/10/13 16:48, Tom Stellard wrote:
> On Sat, Sep 28, 2013 at 03:46:21PM +0100, Emil Velikov wrote:
>> Use PKG_CHECK_MODULE over requesting the user to setup the
>> option at configure time. Drop unused EXPAT_INCLUDE and add
>> EXPAT_CFLAGS to all classic/dri and gallium/dri targets.
>>
>> Signed-off-by: Emil Velikov <emil.l.velikov at gmail.com>
>> ---
>>  configure.ac                                  | 23 +++++------------------
>>  src/gallium/targets/dri-freedreno/Makefile.am |  1 +
>>  src/gallium/targets/dri-i915/Makefile.am      |  1 +
>>  src/gallium/targets/dri-ilo/Makefile.am       |  1 +
>>  src/gallium/targets/dri-nouveau/Makefile.am   |  1 +
>>  src/gallium/targets/dri-swrast/Makefile.am    |  1 +
>>  src/gallium/targets/dri-vmwgfx/Makefile.am    |  1 +
>>  src/gallium/targets/r300/dri/Makefile.am      |  1 +
>>  src/gallium/targets/r600/dri/Makefile.am      |  1 +
>>  src/gallium/targets/radeonsi/dri/Makefile.am  |  1 +
>>  src/mesa/drivers/dri/common/Makefile.am       |  1 +
>>  src/mesa/drivers/dri/i915/Makefile.am         |  1 +
>>  src/mesa/drivers/dri/i965/Makefile.am         |  1 +
>>  src/mesa/drivers/dri/nouveau/Makefile.am      |  1 +
>>  src/mesa/drivers/dri/r200/Makefile.am         |  1 +
>>  src/mesa/drivers/dri/radeon/Makefile.am       |  1 +
>>  src/mesa/drivers/dri/swrast/Makefile.am       |  1 +
>>  17 files changed, 21 insertions(+), 18 deletions(-)
>>
>> diff --git a/configure.ac b/configure.ac
>> index 1dd0087..e8fb7f1 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -1003,21 +1003,9 @@ if test "x$enable_dri" = xyes; then
>>      DRI_DIRS=`echo "$DRI_DIRS" | $SED 's/  */ /g'`
>>  
>>      # Check for expat
>> -    EXPAT_INCLUDES=""
>> -    EXPAT_LIB=-lexpat
>> -    AC_ARG_WITH([expat],
>> -        [AS_HELP_STRING([--with-expat=DIR],
>> -            [expat install directory])],[
>> -        EXPAT_INCLUDES="-I$withval/include"
>> -        CPPFLAGS="$CPPFLAGS $EXPAT_INCLUDES"
>> -        LDFLAGS="$LDFLAGS -L$withval/$LIB_DIR"
>> -        EXPAT_LIB="-L$withval/$LIB_DIR -lexpat"
>> -        ])
>> -    AC_CHECK_HEADER([expat.h],[],[AC_MSG_ERROR([Expat required for DRI.])])
>> -    save_LIBS="$LIBS"
>> -    AC_CHECK_LIB([expat],[XML_ParserCreate],[],
>> -        [AC_MSG_ERROR([Expat required for DRI.])])
>> -    LIBS="$save_LIBS"
>> +    PKG_CHECK_MODULES([EXPAT], [expat], [],
>> +                      AC_MSG_ERROR([Expat required for DRI.]))
>> +
> 
> Is it possible to get the same behavior as the --with-expat option by
> setting EXPAT_* environment variables at configure time?  If so, it would
> be nice to add a note to the commit message explaining how to do this.
> 
Very nice point Tom.
No, it cannot in it's current form. My intent was so standardise
handling of mesa dependencies. That means it will break on certain
(hacky) setups, where expat is available without expat.pc or when they
are linking against system libdrm, libudev, etc. and custom expat. It's
a all or nothing solution.

>From my POV the solution for those people would be have an enviroment
where all the libraries are present (coordinated) in a single location
(available to pkg-config via PKG_CONFIG_PATH).

FWIW Archlinux, Gentoo, Fedora, OpenSUSE and Debian do not use the flag.

Sorry for the lengthy explanation.

Cheers
Emil

> -Tom
>>  
>>      # If we are building any DRI driver other than swrast.
>>      if test -n "$DRI_DIRS" -a x"$DRI_DIRS" != xswrast; then
>> @@ -1030,13 +1018,12 @@ if test "x$enable_dri" = xyes; then
>>      fi
>>  
>>      # put all the necessary libs together
>> -    DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm $PTHREAD_LIBS $DLOPEN_LIBS"
>> -    GALLIUM_DRI_LIB_DEPS="$GALLIUM_DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIB -lm $CLOCK_LIB $PTHREAD_LIBS $DLOPEN_LIBS"
>> +    DRI_LIB_DEPS="$DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIBS -lm $PTHREAD_LIBS $DLOPEN_LIBS"
>> +    GALLIUM_DRI_LIB_DEPS="$GALLIUM_DRI_LIB_DEPS $SELINUX_LIBS $LIBDRM_LIBS $EXPAT_LIBS -lm $CLOCK_LIB $PTHREAD_LIBS $DLOPEN_LIBS"
>>  
>>      DRI_DRIVER_LDFLAGS="-module -avoid-version -shared -Wl,-Bsymbolic"
>>  fi
>>  AM_CONDITIONAL(NEED_LIBDRICORE, test -n "$DRI_DIRS")
>> -AC_SUBST([EXPAT_INCLUDES])
>>  AC_SUBST([DRI_LIB_DEPS])
>>  AC_SUBST([DRI_DRIVER_LDFLAGS])
>>  AC_SUBST([GALLIUM_DRI_LIB_DEPS])
>> diff --git a/src/gallium/targets/dri-freedreno/Makefile.am b/src/gallium/targets/dri-freedreno/Makefile.am
>> index 615ae6f..18a3a8d 100644
>> --- a/src/gallium/targets/dri-freedreno/Makefile.am
>> +++ b/src/gallium/targets/dri-freedreno/Makefile.am
>> @@ -25,6 +25,7 @@ include $(top_srcdir)/src/gallium/Automake.inc
>>  AM_CFLAGS = \
>>  	$(GALLIUM_CFLAGS) \
>>  	$(PTHREAD_CFLAGS) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(LIBDRM_CFLAGS)
>>  AM_CPPFLAGS = \
>>  	-I$(top_srcdir)/src/gallium/drivers \
>> diff --git a/src/gallium/targets/dri-i915/Makefile.am b/src/gallium/targets/dri-i915/Makefile.am
>> index ce6be78..7dfbe84 100644
>> --- a/src/gallium/targets/dri-i915/Makefile.am
>> +++ b/src/gallium/targets/dri-i915/Makefile.am
>> @@ -25,6 +25,7 @@ include $(top_srcdir)/src/gallium/Automake.inc
>>  AM_CFLAGS = \
>>  	$(GALLIUM_CFLAGS) \
>>  	$(PTHREAD_CFLAGS) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(LIBDRM_CFLAGS)
>>  AM_CPPFLAGS = \
>>  	-I$(top_srcdir)/src/gallium/drivers \
>> diff --git a/src/gallium/targets/dri-ilo/Makefile.am b/src/gallium/targets/dri-ilo/Makefile.am
>> index 7761f33..39c1a91 100644
>> --- a/src/gallium/targets/dri-ilo/Makefile.am
>> +++ b/src/gallium/targets/dri-ilo/Makefile.am
>> @@ -26,6 +26,7 @@ include $(top_srcdir)/src/gallium/Automake.inc
>>  AM_CFLAGS = \
>>  	$(GALLIUM_CFLAGS) \
>>  	$(PTHREAD_CFLAGS) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(LIBDRM_CFLAGS)
>>  AM_CPPFLAGS = \
>>  	-I$(top_srcdir)/src/gallium/drivers \
>> diff --git a/src/gallium/targets/dri-nouveau/Makefile.am b/src/gallium/targets/dri-nouveau/Makefile.am
>> index 9cc5455..c49a6a6 100644
>> --- a/src/gallium/targets/dri-nouveau/Makefile.am
>> +++ b/src/gallium/targets/dri-nouveau/Makefile.am
>> @@ -25,6 +25,7 @@ include $(top_srcdir)/src/gallium/Automake.inc
>>  AM_CFLAGS = \
>>  	$(GALLIUM_CFLAGS) \
>>  	$(PTHREAD_CFLAGS) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(LIBDRM_CFLAGS)
>>  AM_CPPFLAGS = \
>>  	-I$(top_srcdir)/src/gallium/drivers \
>> diff --git a/src/gallium/targets/dri-swrast/Makefile.am b/src/gallium/targets/dri-swrast/Makefile.am
>> index 1104379..60c3253 100644
>> --- a/src/gallium/targets/dri-swrast/Makefile.am
>> +++ b/src/gallium/targets/dri-swrast/Makefile.am
>> @@ -25,6 +25,7 @@ include $(top_srcdir)/src/gallium/Automake.inc
>>  AM_CFLAGS = \
>>  	$(GALLIUM_CFLAGS) \
>>  	$(PTHREAD_CFLAGS) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(LIBDRM_CFLAGS)
>>  AM_CPPFLAGS = \
>>  	-I$(top_srcdir)/src/gallium/winsys/sw/dri \
>> diff --git a/src/gallium/targets/dri-vmwgfx/Makefile.am b/src/gallium/targets/dri-vmwgfx/Makefile.am
>> index ca7df65..5a369e6 100644
>> --- a/src/gallium/targets/dri-vmwgfx/Makefile.am
>> +++ b/src/gallium/targets/dri-vmwgfx/Makefile.am
>> @@ -25,6 +25,7 @@ include $(top_srcdir)/src/gallium/Automake.inc
>>  AM_CFLAGS = \
>>  	$(GALLIUM_CFLAGS) \
>>  	$(PTHREAD_CFLAGS) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(LIBDRM_CFLAGS)
>>  AM_CPPFLAGS = \
>>  	-I$(top_srcdir)/src/gallium/drivers \
>> diff --git a/src/gallium/targets/r300/dri/Makefile.am b/src/gallium/targets/r300/dri/Makefile.am
>> index 8909840..114f75f 100644
>> --- a/src/gallium/targets/r300/dri/Makefile.am
>> +++ b/src/gallium/targets/r300/dri/Makefile.am
>> @@ -25,6 +25,7 @@ include $(top_srcdir)/src/gallium/Automake.inc
>>  AM_CFLAGS = \
>>  	$(GALLIUM_CFLAGS) \
>>  	$(PTHREAD_CFLAGS) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(LIBDRM_CFLAGS)
>>  AM_CPPFLAGS = \
>>  	-I$(top_srcdir)/src/gallium/drivers \
>> diff --git a/src/gallium/targets/r600/dri/Makefile.am b/src/gallium/targets/r600/dri/Makefile.am
>> index 423ad0e..d637fbc 100644
>> --- a/src/gallium/targets/r600/dri/Makefile.am
>> +++ b/src/gallium/targets/r600/dri/Makefile.am
>> @@ -25,6 +25,7 @@ include $(top_srcdir)/src/gallium/Automake.inc
>>  AM_CFLAGS = \
>>  	$(GALLIUM_CFLAGS) \
>>  	$(PTHREAD_CFLAGS) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(LIBDRM_CFLAGS)
>>  AM_CPPFLAGS = \
>>  	-I$(top_srcdir)/src/gallium/drivers \
>> diff --git a/src/gallium/targets/radeonsi/dri/Makefile.am b/src/gallium/targets/radeonsi/dri/Makefile.am
>> index 3e927c7..4a36d09 100644
>> --- a/src/gallium/targets/radeonsi/dri/Makefile.am
>> +++ b/src/gallium/targets/radeonsi/dri/Makefile.am
>> @@ -25,6 +25,7 @@ include $(top_srcdir)/src/gallium/Automake.inc
>>  AM_CFLAGS = \
>>  	$(GALLIUM_CFLAGS) \
>>  	$(PTHREAD_CFLAGS) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(LIBDRM_CFLAGS)
>>  AM_CPPFLAGS = \
>>  	-I$(top_srcdir)/src/gallium/drivers \
>> diff --git a/src/mesa/drivers/dri/common/Makefile.am b/src/mesa/drivers/dri/common/Makefile.am
>> index ce4119d..12f5095 100644
>> --- a/src/mesa/drivers/dri/common/Makefile.am
>> +++ b/src/mesa/drivers/dri/common/Makefile.am
>> @@ -27,6 +27,7 @@ AM_CFLAGS = \
>>  	-I$(top_srcdir)/src/mapi \
>>  	-I$(top_srcdir)/src/mesa/ \
>>  	$(DEFINES) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(LIBDRM_CFLAGS) \
>>  	$(VISIBILITY_CFLAGS)
>>  
>> diff --git a/src/mesa/drivers/dri/i915/Makefile.am b/src/mesa/drivers/dri/i915/Makefile.am
>> index 46dd4c2..07088de 100644
>> --- a/src/mesa/drivers/dri/i915/Makefile.am
>> +++ b/src/mesa/drivers/dri/i915/Makefile.am
>> @@ -32,6 +32,7 @@ AM_CFLAGS = \
>>  	-I$(top_srcdir)/src/mesa/drivers/dri/intel/server \
>>  	-I$(top_builddir)/src/mesa/drivers/dri/common \
>>  	$(DEFINES) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(VISIBILITY_CFLAGS) \
>>  	$(INTEL_CFLAGS)
>>  
>> diff --git a/src/mesa/drivers/dri/i965/Makefile.am b/src/mesa/drivers/dri/i965/Makefile.am
>> index eb437d3..3ba950b 100644
>> --- a/src/mesa/drivers/dri/i965/Makefile.am
>> +++ b/src/mesa/drivers/dri/i965/Makefile.am
>> @@ -35,6 +35,7 @@ AM_CFLAGS = \
>>  	-I$(top_srcdir)/src/gtest/include \
>>  	-I$(top_builddir)/src/mesa/drivers/dri/common \
>>  	$(DEFINES) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(VISIBILITY_CFLAGS) \
>>  	$(INTEL_CFLAGS)
>>  
>> diff --git a/src/mesa/drivers/dri/nouveau/Makefile.am b/src/mesa/drivers/dri/nouveau/Makefile.am
>> index 7172e62..18866e8 100644
>> --- a/src/mesa/drivers/dri/nouveau/Makefile.am
>> +++ b/src/mesa/drivers/dri/nouveau/Makefile.am
>> @@ -30,6 +30,7 @@ AM_CFLAGS = \
>>  	-I$(top_srcdir)/src/mesa/ \
>>  	-I$(top_srcdir)/src/mesa/drivers/dri/common \
>>  	$(DEFINES) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(VISIBILITY_CFLAGS) \
>>  	$(NOUVEAU_CFLAGS)
>>  
>> diff --git a/src/mesa/drivers/dri/r200/Makefile.am b/src/mesa/drivers/dri/r200/Makefile.am
>> index fc0482a..9bd859d 100644
>> --- a/src/mesa/drivers/dri/r200/Makefile.am
>> +++ b/src/mesa/drivers/dri/r200/Makefile.am
>> @@ -33,6 +33,7 @@ AM_CFLAGS = \
>>  	-I$(top_srcdir)/src/mesa/drivers/dri/r200/server \
>>  	-I$(top_builddir)/src/mesa/drivers/dri/common \
>>  	$(DEFINES) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(VISIBILITY_CFLAGS) \
>>  	$(RADEON_CFLAGS)
>>  
>> diff --git a/src/mesa/drivers/dri/radeon/Makefile.am b/src/mesa/drivers/dri/radeon/Makefile.am
>> index d13b803..17d03e3 100644
>> --- a/src/mesa/drivers/dri/radeon/Makefile.am
>> +++ b/src/mesa/drivers/dri/radeon/Makefile.am
>> @@ -33,6 +33,7 @@ AM_CFLAGS = \
>>  	-I$(top_srcdir)/src/mesa/drivers/dri/radeon/server \
>>  	-I$(top_builddir)/src/mesa/drivers/dri/common \
>>  	$(DEFINES) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(VISIBILITY_CFLAGS) \
>>  	$(RADEON_CFLAGS)
>>  
>> diff --git a/src/mesa/drivers/dri/swrast/Makefile.am b/src/mesa/drivers/dri/swrast/Makefile.am
>> index fb9b8a0..9ba5021 100644
>> --- a/src/mesa/drivers/dri/swrast/Makefile.am
>> +++ b/src/mesa/drivers/dri/swrast/Makefile.am
>> @@ -31,6 +31,7 @@ AM_CFLAGS = \
>>  	-I$(top_srcdir)/src/mesa/ \
>>  	-I$(top_srcdir)/src/mesa/drivers/dri/common \
>>  	$(DEFINES) \
>> +	$(EXPAT_CFLAGS) \
>>  	$(VISIBILITY_CFLAGS)
>>  
>>  dridir = $(DRI_DRIVER_INSTALL_DIR)
>> -- 
>> 1.8.4
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list