acinclude/esd.m4
author Michael Sartain <mikesart@valvesoftware.com>
Thu, 11 Oct 2012 09:41:43 -0700
changeset 6570 45855398762c
parent 3342 3da232c5980a
permissions -rw-r--r--
Add GLX_X_VISUAL_TYPE_EXT so created window will use DirectColor if available (instead of TrueColor).
Our new X11 window was being created with the TrueColor attribute, and trying to set the gamma
on that would fail. This change checks for the visual_info extension, and uses that to ask for
DirectColor if available.
slouken@3342
     1
##############################################################################
slouken@3342
     2
#
slouken@3342
     3
# --- esd.m4 ---
slouken@3342
     4
#
slouken@3342
     5
# Configure paths for ESD
slouken@3342
     6
# Manish Singh    98-9-30
slouken@3342
     7
# stolen back from Frank Belew
slouken@3342
     8
# stolen from Manish Singh
slouken@3342
     9
# Shamelessly stolen from Owen Taylor
slouken@3342
    10
slouken@3342
    11
dnl AM_PATH_ESD([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
slouken@3342
    12
dnl Test for ESD, and define ESD_CFLAGS and ESD_LIBS
slouken@3342
    13
dnl
slouken@3342
    14
AC_DEFUN([AM_PATH_ESD],
slouken@3342
    15
[dnl 
slouken@3342
    16
dnl Get the cflags and libraries from the esd-config script
slouken@3342
    17
dnl
slouken@3342
    18
AC_ARG_WITH(esd-prefix,[  --with-esd-prefix=PFX   Prefix where ESD is installed (optional)],
slouken@3342
    19
            esd_prefix="$withval", esd_prefix="")
slouken@3342
    20
AC_ARG_WITH(esd-exec-prefix,[  --with-esd-exec-prefix=PFX Exec prefix where ESD is installed (optional)],
slouken@3342
    21
            esd_exec_prefix="$withval", esd_exec_prefix="")
slouken@3342
    22
AC_ARG_ENABLE(esdtest, [  --disable-esdtest       Do not try to compile and run a test ESD program],
slouken@3342
    23
		    , enable_esdtest=yes)
slouken@3342
    24
slouken@3342
    25
  if test x$esd_exec_prefix != x ; then
slouken@3342
    26
     esd_args="$esd_args --exec-prefix=$esd_exec_prefix"
slouken@3342
    27
     if test x${ESD_CONFIG+set} != xset ; then
slouken@3342
    28
        ESD_CONFIG=$esd_exec_prefix/bin/esd-config
slouken@3342
    29
     fi
slouken@3342
    30
  fi
slouken@3342
    31
  if test x$esd_prefix != x ; then
slouken@3342
    32
     esd_args="$esd_args --prefix=$esd_prefix"
slouken@3342
    33
     if test x${ESD_CONFIG+set} != xset ; then
slouken@3342
    34
        ESD_CONFIG=$esd_prefix/bin/esd-config
slouken@3342
    35
     fi
slouken@3342
    36
  fi
slouken@3342
    37
slouken@3342
    38
  AC_PATH_PROG(ESD_CONFIG, esd-config, no)
slouken@3342
    39
  min_esd_version=ifelse([$1], ,0.2.7,$1)
slouken@3342
    40
  AC_MSG_CHECKING(for ESD - version >= $min_esd_version)
slouken@3342
    41
  no_esd=""
slouken@3342
    42
  if test "$ESD_CONFIG" = "no" ; then
slouken@3342
    43
    no_esd=yes
slouken@3342
    44
  else
slouken@3342
    45
    ESD_CFLAGS=`$ESD_CONFIG $esdconf_args --cflags`
slouken@3342
    46
    ESD_LIBS=`$ESD_CONFIG $esdconf_args --libs`
slouken@3342
    47
slouken@3342
    48
    esd_major_version=`$ESD_CONFIG $esd_args --version | \
slouken@3342
    49
           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
slouken@3342
    50
    esd_minor_version=`$ESD_CONFIG $esd_args --version | \
slouken@3342
    51
           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
slouken@3342
    52
    esd_micro_version=`$ESD_CONFIG $esd_config_args --version | \
slouken@3342
    53
           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
slouken@3342
    54
    if test "x$enable_esdtest" = "xyes" ; then
slouken@3342
    55
      ac_save_CFLAGS="$CFLAGS"
slouken@3342
    56
      ac_save_LIBS="$LIBS"
slouken@3342
    57
      CFLAGS="$CFLAGS $ESD_CFLAGS"
slouken@3342
    58
      LIBS="$LIBS $ESD_LIBS"
slouken@3342
    59
dnl
slouken@3342
    60
dnl Now check if the installed ESD is sufficiently new. (Also sanity
slouken@3342
    61
dnl checks the results of esd-config to some extent
slouken@3342
    62
dnl
slouken@3342
    63
      rm -f conf.esdtest
slouken@3342
    64
      AC_TRY_RUN([
slouken@3342
    65
#include <stdio.h>
slouken@3342
    66
#include <stdlib.h>
slouken@3342
    67
#include <string.h>
slouken@3342
    68
#include <esd.h>
slouken@3342
    69
slouken@3342
    70
char*
slouken@3342
    71
my_strdup (char *str)
slouken@3342
    72
{
slouken@3342
    73
  char *new_str;
slouken@3342
    74
  
slouken@3342
    75
  if (str)
slouken@3342
    76
    {
slouken@3342
    77
      new_str = malloc ((strlen (str) + 1) * sizeof(char));
slouken@3342
    78
      strcpy (new_str, str);
slouken@3342
    79
    }
slouken@3342
    80
  else
slouken@3342
    81
    new_str = NULL;
slouken@3342
    82
  
slouken@3342
    83
  return new_str;
slouken@3342
    84
}
slouken@3342
    85
slouken@3342
    86
int main ()
slouken@3342
    87
{
slouken@3342
    88
  int major, minor, micro;
slouken@3342
    89
  char *tmp_version;
slouken@3342
    90
slouken@3342
    91
  system ("touch conf.esdtest");
slouken@3342
    92
slouken@3342
    93
  /* HP/UX 9 (%@#!) writes to sscanf strings */
slouken@3342
    94
  tmp_version = my_strdup("$min_esd_version");
slouken@3342
    95
  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
slouken@3342
    96
     printf("%s, bad version string\n", "$min_esd_version");
slouken@3342
    97
     exit(1);
slouken@3342
    98
   }
slouken@3342
    99
slouken@3342
   100
   if (($esd_major_version > major) ||
slouken@3342
   101
      (($esd_major_version == major) && ($esd_minor_version > minor)) ||
slouken@3342
   102
      (($esd_major_version == major) && ($esd_minor_version == minor) && ($esd_micro_version >= micro)))
slouken@3342
   103
    {
slouken@3342
   104
      return 0;
slouken@3342
   105
    }
slouken@3342
   106
  else
slouken@3342
   107
    {
slouken@3342
   108
      printf("\n*** 'esd-config --version' returned %d.%d.%d, but the minimum version\n", $esd_major_version, $esd_minor_version, $esd_micro_version);
slouken@3342
   109
      printf("*** of ESD required is %d.%d.%d. If esd-config is correct, then it is\n", major, minor, micro);
slouken@3342
   110
      printf("*** best to upgrade to the required version.\n");
slouken@3342
   111
      printf("*** If esd-config was wrong, set the environment variable ESD_CONFIG\n");
slouken@3342
   112
      printf("*** to point to the correct copy of esd-config, and remove the file\n");
slouken@3342
   113
      printf("*** config.cache before re-running configure\n");
slouken@3342
   114
      return 1;
slouken@3342
   115
    }
slouken@3342
   116
}
slouken@3342
   117
slouken@3342
   118
],, no_esd=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
slouken@3342
   119
       CFLAGS="$ac_save_CFLAGS"
slouken@3342
   120
       LIBS="$ac_save_LIBS"
slouken@3342
   121
     fi
slouken@3342
   122
  fi
slouken@3342
   123
  if test "x$no_esd" = x ; then
slouken@3342
   124
     AC_MSG_RESULT(yes)
slouken@3342
   125
     ifelse([$2], , :, [$2])     
slouken@3342
   126
  else
slouken@3342
   127
     AC_MSG_RESULT(no)
slouken@3342
   128
     if test "$ESD_CONFIG" = "no" ; then
slouken@3342
   129
       echo "*** The esd-config script installed by ESD could not be found"
slouken@3342
   130
       echo "*** If ESD was installed in PREFIX, make sure PREFIX/bin is in"
slouken@3342
   131
       echo "*** your path, or set the ESD_CONFIG environment variable to the"
slouken@3342
   132
       echo "*** full path to esd-config."
slouken@3342
   133
     else
slouken@3342
   134
       if test -f conf.esdtest ; then
slouken@3342
   135
        :
slouken@3342
   136
       else
slouken@3342
   137
          echo "*** Could not run ESD test program, checking why..."
slouken@3342
   138
          CFLAGS="$CFLAGS $ESD_CFLAGS"
slouken@3342
   139
          LIBS="$LIBS $ESD_LIBS"
slouken@3342
   140
          AC_TRY_LINK([
slouken@3342
   141
#include <stdio.h>
slouken@3342
   142
#include <esd.h>
slouken@3342
   143
],      [ return 0; ],
slouken@3342
   144
        [ echo "*** The test program compiled, but did not run. This usually means"
slouken@3342
   145
          echo "*** that the run-time linker is not finding ESD or finding the wrong"
slouken@3342
   146
          echo "*** version of ESD. If it is not finding ESD, you'll need to set your"
slouken@3342
   147
          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
slouken@3342
   148
          echo "*** to the installed location  Also, make sure you have run ldconfig if that"
slouken@3342
   149
          echo "*** is required on your system"
slouken@3342
   150
	  echo "***"
slouken@3342
   151
          echo "*** If you have an old version installed, it is best to remove it, although"
slouken@3342
   152
          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
slouken@3342
   153
        [ echo "*** The test program failed to compile or link. See the file config.log for the"
slouken@3342
   154
          echo "*** exact error that occured. This usually means ESD was incorrectly installed"
slouken@3342
   155
          echo "*** or that you have moved ESD since it was installed. In the latter case, you"
slouken@3342
   156
          echo "*** may want to edit the esd-config script: $ESD_CONFIG" ])
slouken@3342
   157
          CFLAGS="$ac_save_CFLAGS"
slouken@3342
   158
          LIBS="$ac_save_LIBS"
slouken@3342
   159
       fi
slouken@3342
   160
     fi
slouken@3342
   161
     ESD_CFLAGS=""
slouken@3342
   162
     ESD_LIBS=""
slouken@3342
   163
     ifelse([$3], , :, [$3])
slouken@3342
   164
  fi
slouken@3342
   165
  AC_SUBST(ESD_CFLAGS)
slouken@3342
   166
  AC_SUBST(ESD_LIBS)
slouken@3342
   167
  rm -f conf.esdtest
slouken@3342
   168
])