| # A few convenience macros for Mesa, mostly to keep all the platform | 
 | # specifics out of configure.ac. | 
 |  | 
 | # MESA_PIC_FLAGS() | 
 | # | 
 | # Find out whether to build PIC code using the option --enable-pic and | 
 | # the configure enable_static/enable_shared settings. If PIC is needed, | 
 | # figure out the necessary flags for the platform and compiler. | 
 | # | 
 | # The platform checks have been shamelessly taken from libtool and | 
 | # stripped down to just what's needed for Mesa. See _LT_COMPILER_PIC in | 
 | # /usr/share/aclocal/libtool.m4 or | 
 | # http://git.savannah.gnu.org/gitweb/?p=libtool.git;a=blob;f=libltdl/m4/libtool.m4;hb=HEAD | 
 | # | 
 | AC_DEFUN([MESA_PIC_FLAGS], | 
 | [AC_REQUIRE([AC_PROG_CC])dnl | 
 | AC_ARG_VAR([PIC_FLAGS], [compiler flags for PIC code]) | 
 | AC_ARG_ENABLE([pic], | 
 |     [AS_HELP_STRING([--disable-pic], | 
 |         [compile PIC objects @<:@default=enabled for shared builds | 
 |         on supported platforms@:>@])], | 
 |     [enable_pic="$enableval" | 
 |     test "x$enable_pic" = x && enable_pic=auto], | 
 |     [enable_pic=auto]) | 
 | # disable PIC by default for static builds | 
 | if test "$enable_pic" = auto && test "$enable_static" = yes; then | 
 |     enable_pic=no | 
 | fi | 
 | # if PIC hasn't been explicitly disabled, try to figure out the flags | 
 | if test "$enable_pic" != no; then | 
 |     AC_MSG_CHECKING([for $CC option to produce PIC]) | 
 |     # allow the user's flags to override | 
 |     if test "x$PIC_FLAGS" = x; then | 
 |         # see if we're using GCC | 
 |         if test "x$GCC" = xyes; then | 
 |             case "$host_os" in | 
 |             aix*|beos*|cygwin*|irix5*|irix6*|osf3*|osf4*|osf5*) | 
 |                 # PIC is the default for these OSes. | 
 |                 ;; | 
 |             mingw*|os2*|pw32*) | 
 |                 # This hack is so that the source file can tell whether | 
 |                 # it is being built for inclusion in a dll (and should | 
 |                 # export symbols for example). | 
 |                 PIC_FLAGS="-DDLL_EXPORT" | 
 |                 ;; | 
 |             darwin*|rhapsody*) | 
 |                 # PIC is the default on this platform | 
 |                 # Common symbols not allowed in MH_DYLIB files | 
 |                 PIC_FLAGS="-fno-common" | 
 |                 ;; | 
 |             hpux*) | 
 |                 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, | 
 |                 # but not for PA HP-UX. | 
 |                 case $host_cpu in | 
 |                 hppa*64*|ia64*) | 
 |                     ;; | 
 |                 *) | 
 |                     PIC_FLAGS="-fPIC" | 
 |                     ;; | 
 |                 esac | 
 |                 ;; | 
 |             *) | 
 |                 # Everyone else on GCC uses -fPIC | 
 |                 PIC_FLAGS="-fPIC" | 
 |                 ;; | 
 |             esac | 
 |         else # !GCC | 
 |             case "$host_os" in | 
 |             hpux9*|hpux10*|hpux11*) | 
 |                 # PIC is the default for IA64 HP-UX and 64-bit HP-UX, | 
 |                 # but not for PA HP-UX. | 
 |                 case "$host_cpu" in | 
 |                 hppa*64*|ia64*) | 
 |                     # +Z the default | 
 |                     ;; | 
 |                 *) | 
 |                     PIC_FLAGS="+Z" | 
 |                     ;; | 
 |                 esac | 
 |                 ;; | 
 |             linux*|k*bsd*-gnu) | 
 |                 case `basename "$CC"` in | 
 |                 icc*|ecc*|ifort*) | 
 |                     PIC_FLAGS="-KPIC" | 
 |                     ;; | 
 |                 pgcc*|pgf77*|pgf90*|pgf95*) | 
 |                     # Portland Group compilers (*not* the Pentium gcc | 
 |                     # compiler, which looks to be a dead project) | 
 |                     PIC_FLAGS="-fpic" | 
 |                     ;; | 
 |                 ccc*) | 
 |                     # All Alpha code is PIC. | 
 |                     ;; | 
 |                 xl*) | 
 |                     # IBM XL C 8.0/Fortran 10.1 on PPC | 
 |                     PIC_FLAGS="-qpic" | 
 |                     ;; | 
 |                 *) | 
 |                     case `$CC -V 2>&1 | sed 5q` in | 
 |                     *Sun\ C*|*Sun\ F*) | 
 |                         # Sun C 5.9 or Sun Fortran | 
 |                         PIC_FLAGS="-KPIC" | 
 |                         ;; | 
 |                     esac | 
 |                 esac | 
 |                 ;; | 
 |             solaris*) | 
 |                 PIC_FLAGS="-KPIC" | 
 |                 ;; | 
 |             sunos4*) | 
 |                 PIC_FLAGS="-PIC" | 
 |                 ;; | 
 |             esac | 
 |         fi # GCC | 
 |     fi # PIC_FLAGS | 
 |     AC_MSG_RESULT([$PIC_FLAGS]) | 
 | fi | 
 | AC_SUBST([PIC_FLAGS]) | 
 | ])# MESA_PIC_FLAGS |