test/aclocal.m4
author Alex Baines <alex@abaines.me.uk>
Tue, 19 Aug 2014 23:31:50 +0100
changeset 9097 56d712662a82
parent 6272 f3dbef2cc0f2
permissions -rw-r--r--
Add a SDL_IM_INTERNAL_EDITING event to make IMs like iBus render editing text in its own UI instead of sending TEXTEDITING events.
This is useful for applications that handle TEXTINPUT events but not TEXTEDITING events.
     1 # Configure paths for SDL
     2 # Sam Lantinga 9/21/99
     3 # stolen from Manish Singh
     4 # stolen back from Frank Belew
     5 # stolen from Manish Singh
     6 # Shamelessly stolen from Owen Taylor
     7 
     8 # serial 1
     9 
    10 dnl AM_PATH_SDL([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
    11 dnl Test for SDL, and define SDL_CFLAGS and SDL_LIBS
    12 dnl
    13 AC_DEFUN([AM_PATH_SDL2],
    14 [dnl 
    15 dnl Get the cflags and libraries from the sdl2-config script
    16 dnl
    17 AC_ARG_WITH(sdl-prefix,[  --with-sdl-prefix=PFX   Prefix where SDL is installed (optional)],
    18             sdl_prefix="$withval", sdl_prefix="")
    19 AC_ARG_WITH(sdl-exec-prefix,[  --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)],
    20             sdl_exec_prefix="$withval", sdl_exec_prefix="")
    21 AC_ARG_ENABLE(sdltest, [  --disable-sdltest       Do not try to compile and run a test SDL program],
    22 		    , enable_sdltest=yes)
    23 
    24   min_sdl_version=ifelse([$1], ,0.9.0,$1)
    25 
    26   if test "x$sdl_prefix$sdl_exec_prefix" = x ; then
    27     PKG_CHECK_MODULES([SDL], [sdl2 >= $min_sdl_version],
    28            [sdl_pc=yes],
    29            [sdl_pc=no])
    30   else
    31     sdl_pc=no
    32     if test x$sdl_exec_prefix != x ; then
    33       sdl_config_args="$sdl_config_args --exec-prefix=$sdl_exec_prefix"
    34       if test x${SDL_CONFIG+set} != xset ; then
    35         SDL_CONFIG=$sdl_exec_prefix/bin/sdl2-config
    36       fi
    37     fi
    38     if test x$sdl_prefix != x ; then
    39       sdl_config_args="$sdl_config_args --prefix=$sdl_prefix"
    40       if test x${SDL_CONFIG+set} != xset ; then
    41         SDL_CONFIG=$sdl_prefix/bin/sdl2-config
    42       fi
    43     fi
    44   fi
    45 
    46   if test "x$sdl_pc" = xyes ; then
    47     no_sdl=""
    48     SDL_CONFIG="pkg-config sdl2"
    49   else
    50     as_save_PATH="$PATH"
    51     if test "x$prefix" != xNONE && test "$cross_compiling" != yes; then
    52       PATH="$prefix/bin:$prefix/usr/bin:$PATH"
    53     fi
    54     AC_PATH_PROG(SDL_CONFIG, sdl2-config, no, [$PATH])
    55     PATH="$as_save_PATH"
    56     AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
    57     no_sdl=""
    58 
    59     if test "$SDL_CONFIG" = "no" ; then
    60       no_sdl=yes
    61     else
    62       SDL_CFLAGS=`$SDL_CONFIG $sdl_config_args --cflags`
    63       SDL_LIBS=`$SDL_CONFIG $sdl_config_args --libs`
    64 
    65       sdl_major_version=`$SDL_CONFIG $sdl_config_args --version | \
    66              sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
    67       sdl_minor_version=`$SDL_CONFIG $sdl_config_args --version | \
    68              sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
    69       sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \
    70              sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
    71       if test "x$enable_sdltest" = "xyes" ; then
    72         ac_save_CFLAGS="$CFLAGS"
    73         ac_save_CXXFLAGS="$CXXFLAGS"
    74         ac_save_LIBS="$LIBS"
    75         CFLAGS="$CFLAGS $SDL_CFLAGS"
    76         CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
    77         LIBS="$LIBS $SDL_LIBS"
    78 dnl
    79 dnl Now check if the installed SDL is sufficiently new. (Also sanity
    80 dnl checks the results of sdl2-config to some extent
    81 dnl
    82       rm -f conf.sdltest
    83       AC_TRY_RUN([
    84 #include <stdio.h>
    85 #include <stdlib.h>
    86 #include <string.h>
    87 #include "SDL.h"
    88 
    89 char*
    90 my_strdup (char *str)
    91 {
    92   char *new_str;
    93   
    94   if (str)
    95     {
    96       new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
    97       strcpy (new_str, str);
    98     }
    99   else
   100     new_str = NULL;
   101   
   102   return new_str;
   103 }
   104 
   105 int main (int argc, char *argv[])
   106 {
   107   int major, minor, micro;
   108   char *tmp_version;
   109 
   110   /* This hangs on some systems (?)
   111   system ("touch conf.sdltest");
   112   */
   113   { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }
   114 
   115   /* HP/UX 9 (%@#!) writes to sscanf strings */
   116   tmp_version = my_strdup("$min_sdl_version");
   117   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
   118      printf("%s, bad version string\n", "$min_sdl_version");
   119      exit(1);
   120    }
   121 
   122    if (($sdl_major_version > major) ||
   123       (($sdl_major_version == major) && ($sdl_minor_version > minor)) ||
   124       (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro)))
   125     {
   126       return 0;
   127     }
   128   else
   129     {
   130       printf("\n*** 'sdl2-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version);
   131       printf("*** of SDL required is %d.%d.%d. If sdl2-config is correct, then it is\n", major, minor, micro);
   132       printf("*** best to upgrade to the required version.\n");
   133       printf("*** If sdl2-config was wrong, set the environment variable SDL_CONFIG\n");
   134       printf("*** to point to the correct copy of sdl2-config, and remove the file\n");
   135       printf("*** config.cache before re-running configure\n");
   136       return 1;
   137     }
   138 }
   139 
   140 ],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
   141         CFLAGS="$ac_save_CFLAGS"
   142         CXXFLAGS="$ac_save_CXXFLAGS"
   143         LIBS="$ac_save_LIBS"
   144       fi
   145     fi
   146     if test "x$no_sdl" = x ; then
   147       AC_MSG_RESULT(yes)
   148     else
   149       AC_MSG_RESULT(no)
   150     fi
   151   fi
   152   if test "x$no_sdl" = x ; then
   153      ifelse([$2], , :, [$2])
   154   else
   155      if test "$SDL_CONFIG" = "no" ; then
   156        echo "*** The sdl2-config script installed by SDL could not be found"
   157        echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in"
   158        echo "*** your path, or set the SDL_CONFIG environment variable to the"
   159        echo "*** full path to sdl2-config."
   160      else
   161        if test -f conf.sdltest ; then
   162         :
   163        else
   164           echo "*** Could not run SDL test program, checking why..."
   165           CFLAGS="$CFLAGS $SDL_CFLAGS"
   166           CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
   167           LIBS="$LIBS $SDL_LIBS"
   168           AC_TRY_LINK([
   169 #include <stdio.h>
   170 #include "SDL.h"
   171 
   172 int main(int argc, char *argv[])
   173 { return 0; }
   174 #undef  main
   175 #define main K_and_R_C_main
   176 ],      [ return 0; ],
   177         [ echo "*** The test program compiled, but did not run. This usually means"
   178           echo "*** that the run-time linker is not finding SDL or finding the wrong"
   179           echo "*** version of SDL. If it is not finding SDL, you'll need to set your"
   180           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
   181           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
   182           echo "*** is required on your system"
   183 	  echo "***"
   184           echo "*** If you have an old version installed, it is best to remove it, although"
   185           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
   186         [ echo "*** The test program failed to compile or link. See the file config.log for the"
   187           echo "*** exact error that occured. This usually means SDL was incorrectly installed"
   188           echo "*** or that you have moved SDL since it was installed. In the latter case, you"
   189           echo "*** may want to edit the sdl2-config script: $SDL_CONFIG" ])
   190           CFLAGS="$ac_save_CFLAGS"
   191           CXXFLAGS="$ac_save_CXXFLAGS"
   192           LIBS="$ac_save_LIBS"
   193        fi
   194      fi
   195      SDL_CFLAGS=""
   196      SDL_LIBS=""
   197      ifelse([$3], , :, [$3])
   198   fi
   199   AC_SUBST(SDL_CFLAGS)
   200   AC_SUBST(SDL_LIBS)
   201   rm -f conf.sdltest
   202 ])
   203 # pkg.m4 - Macros to locate and utilise pkg-config.            -*- Autoconf -*-
   204 # serial 1 (pkg-config-0.24)
   205 # 
   206 # Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
   207 #
   208 # This program is free software; you can redistribute it and/or modify
   209 # it under the terms of the GNU General Public License as published by
   210 # the Free Software Foundation; either version 2 of the License, or
   211 # (at your option) any later version.
   212 #
   213 # This program is distributed in the hope that it will be useful, but
   214 # WITHOUT ANY WARRANTY; without even the implied warranty of
   215 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   216 # General Public License for more details.
   217 #
   218 # You should have received a copy of the GNU General Public License
   219 # along with this program; if not, write to the Free Software
   220 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
   221 #
   222 # As a special exception to the GNU General Public License, if you
   223 # distribute this file as part of a program that contains a
   224 # configuration script generated by Autoconf, you may include it under
   225 # the same distribution terms that you use for the rest of that program.
   226 
   227 # PKG_PROG_PKG_CONFIG([MIN-VERSION])
   228 # ----------------------------------
   229 AC_DEFUN([PKG_PROG_PKG_CONFIG],
   230 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
   231 m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
   232 AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
   233 AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
   234 AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
   235 
   236 if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
   237 	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
   238 fi
   239 if test -n "$PKG_CONFIG"; then
   240 	_pkg_min_version=m4_default([$1], [0.9.0])
   241 	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
   242 	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
   243 		AC_MSG_RESULT([yes])
   244 	else
   245 		AC_MSG_RESULT([no])
   246 		PKG_CONFIG=""
   247 	fi
   248 fi[]dnl
   249 ])# PKG_PROG_PKG_CONFIG
   250 
   251 # PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
   252 #
   253 # Check to see whether a particular set of modules exists.  Similar
   254 # to PKG_CHECK_MODULES(), but does not set variables or print errors.
   255 #
   256 # Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
   257 # only at the first occurence in configure.ac, so if the first place
   258 # it's called might be skipped (such as if it is within an "if", you
   259 # have to call PKG_CHECK_EXISTS manually
   260 # --------------------------------------------------------------
   261 AC_DEFUN([PKG_CHECK_EXISTS],
   262 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
   263 if test -n "$PKG_CONFIG" && \
   264     AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
   265   m4_default([$2], [:])
   266 m4_ifvaln([$3], [else
   267   $3])dnl
   268 fi])
   269 
   270 # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
   271 # ---------------------------------------------
   272 m4_define([_PKG_CONFIG],
   273 [if test -n "$$1"; then
   274     pkg_cv_[]$1="$$1"
   275  elif test -n "$PKG_CONFIG"; then
   276     PKG_CHECK_EXISTS([$3],
   277                      [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
   278 		     [pkg_failed=yes])
   279  else
   280     pkg_failed=untried
   281 fi[]dnl
   282 ])# _PKG_CONFIG
   283 
   284 # _PKG_SHORT_ERRORS_SUPPORTED
   285 # -----------------------------
   286 AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
   287 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])
   288 if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
   289         _pkg_short_errors_supported=yes
   290 else
   291         _pkg_short_errors_supported=no
   292 fi[]dnl
   293 ])# _PKG_SHORT_ERRORS_SUPPORTED
   294 
   295 
   296 # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
   297 # [ACTION-IF-NOT-FOUND])
   298 #
   299 #
   300 # Note that if there is a possibility the first call to
   301 # PKG_CHECK_MODULES might not happen, you should be sure to include an
   302 # explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
   303 #
   304 #
   305 # --------------------------------------------------------------
   306 AC_DEFUN([PKG_CHECK_MODULES],
   307 [AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
   308 AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
   309 AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
   310 
   311 pkg_failed=no
   312 AC_MSG_CHECKING([for $1])
   313 
   314 _PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
   315 _PKG_CONFIG([$1][_LIBS], [libs], [$2])
   316 
   317 m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
   318 and $1[]_LIBS to avoid the need to call pkg-config.
   319 See the pkg-config man page for more details.])
   320 
   321 if test $pkg_failed = yes; then
   322    	AC_MSG_RESULT([no])
   323         _PKG_SHORT_ERRORS_SUPPORTED
   324         if test $_pkg_short_errors_supported = yes; then
   325 	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
   326         else 
   327 	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
   328         fi
   329 	# Put the nasty error message in config.log where it belongs
   330 	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
   331 
   332 	m4_default([$4], [AC_MSG_ERROR(
   333 [Package requirements ($2) were not met:
   334 
   335 $$1_PKG_ERRORS
   336 
   337 Consider adjusting the PKG_CONFIG_PATH environment variable if you
   338 installed software in a non-standard prefix.
   339 
   340 _PKG_TEXT])dnl
   341         ])
   342 elif test $pkg_failed = untried; then
   343      	AC_MSG_RESULT([no])
   344 	m4_default([$4], [AC_MSG_FAILURE(
   345 [The pkg-config script could not be found or is too old.  Make sure it
   346 is in your PATH or set the PKG_CONFIG environment variable to the full
   347 path to pkg-config.
   348 
   349 _PKG_TEXT
   350 
   351 To get pkg-config, see <http://pkg-config.freedesktop.org/>.])dnl
   352         ])
   353 else
   354 	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
   355 	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
   356         AC_MSG_RESULT([yes])
   357 	$3
   358 fi[]dnl
   359 ])# PKG_CHECK_MODULES