sdl.m4
来自「Source code (C++) of the Amoebax game fo」· M4 代码 · 共 251 行
M4
251 行
# _ES_FRAMEWORK_PATH(FRAMEWORK-NAME, HEADER-FILE[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])# Check for the path to Framework FRAMEWORK-NAME by looking HEADER-FILE in it.AC_DEFUN([_ES_FRAMEWORK_PATH],[ _es_frameworks_dirs="/System/Library/Frameworks /Library/Frameworks ~/Library/Frameworks" _es_framework_headers_dir="no" for _es_frameworks_dir in ${_es_frameworks_dirs} ; do _es_tmp_headers_dir="${_es_frameworks_dir}/[$1].framework/Headers" _es_framework_save_CFLAGS="${CFLAGS}" _es_framework_save_CXXFLAGS="${CXXFLAGS}" CFLAGS="${CFLAGS} -I${_es_tmp_headers_dir}" CXXFLAGS="${CXXFLAGS} -I${_es_tmp_headers_dir}" AC_COMPILE_IFELSE(AC_LANG_PROGRAM([#include <$2>], []), [_es_framework_headers_dir=${_es_tmp_headers_dir}], []) CFLAGS="${_es_framework_save_CFLAGS}" CXXFLAGS="${_es_framework_save_CXXFLAGS}" if test "x${_es_framework_headers_dir}" != "xno" ; then break fi done if test "x${_es_lib_sdl_osx_headers_dir}" = "xno" ; then FRAMEWORK_HEADERS_DIR="" ifelse([$4], [], :, [$4]) else FRAMEWORK_HEADERS_DIR="${_es_framework_headers_dir}" ifelse([$3], [], :, [$3]) fi])#_ES_FRAMEWORK_PATH# ES_LIB_SDL([MIN-VERSION[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]])# -------------------------------------------------------------------# Checks for SDL library.# If found, defines SDL_CFLAGS and SDL_LIBS.## Based on the original SDL's sdl.m4 file.AC_DEFUN([ES_LIB_SDL],[AC_REQUIRE([AC_CANONICAL_HOST])[]dnlAC_ARG_WITH([sdl-prefix], AS_HELP_STRING([--with-sdl-prefix], [prefix where SDL is installed (optional)]), [_es_lib_sdl_prefix=$withval], [_es_lib_sdl_prefix=""])AC_ARG_WITH([sdl-exec-prefix], AS_HELP_STRING([--with-sdl-exec-prefix], [prefix where SDL binaries are installed (optional)]), [_es_lib_sdl_exec_prefix=$withval], [_es_lib_sdl_exec_prefix=""])_es_lib_sdl_found="no"_es_lib_sdl_min_version=ifelse([$1], [], [0.11.0], [$1])_es_lib_sdl_min_version_major=`echo ${_es_lib_sdl_min_version} | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`_es_lib_sdl_min_version_minor=`echo ${_es_lib_sdl_min_version} | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`_es_lib_sdl_min_version_micro=`echo ${_es_lib_sdl_min_version} | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`case "${host}" in *-apple-darwin*) _es_lib_sdl_osx=yes ;;esac# On Mac OS X, just try to use the SDL framework.if test "x${_es_lib_sdl_osx}" = "xyes" ; then AC_MSG_CHECKING([for SDL, version >= ${_es_lib_sdl_min_version}]) _ES_FRAMEWORK_PATH([SDL], [SDL.h], [_es_lib_sdl_osx_headers_dir="${FRAMEWORK_HEADERS_DIR}"], [_es_lib_sdl_osx_headers_dir="no"]) if test "x${_es_lib_sdl_osx_headers_dir}" = "xno" ; then SDL_CFLAGS="" SDL_LIBS="" AC_MSG_RESULT([no]) ifelse([$3], [], :, [$3]) else SDL_CFLAGS="-I${_es_lib_sdl_osx_headers_dir}" SDL_LIBS="-framework SDL -framework Cocoa" _es_lib_sdl_found="yes" fielse# On others platforms use the sdl-config program. if test "x${_es_lib_sdl_exec_prefix}" != "x" ; then _es_lib_sdl_args="${_es_lib_sdl_args} --exec-prefix=${_es_lib_sdl_exec_prefix}" _es_lib_sdl_path="${_es_lib_sdl_exec_prefix}/bin:${_es_lib_sdl_path}" fi if test "x${_es_lib_sdl_prefix}" != "x" ; then _es_lib_sdl_args="${_es_lib_sdl_args} --prefix=${_es_lib_sdl_prefix}" _es_lib_sdl_path="${_es_lib_sdl_prefix}/bin:${_es_lib_sdl_path}" fi AC_PATH_PROG([SDL_CONFIG], [sdl-config], [no], [${_es_lib_sdl_path}:${PATH}]) AC_MSG_CHECKING([for SDL, version >= ${_es_lib_sdl_min_version}]) if test "x${SDL_CONFIG}" != "xno" ; then SDL_CFLAGS=`${SDL_CONFIG} ${_es_lib_sdl_args} --cflags` SDL_LIBS=`${SDL_CONFIG} ${_es_lib_sdl_args} --libs` _es_lib_sdl_found="yes" else SDL_CFLAGS="" SDL_LIBS="" AC_MSG_RESULT([no]) ifelse([$3], [], :, [$3]) fifiif test "x${_es_lib_sdl_found}" = "xyes" ; then _es_lib_sdl_save_CFLAGS="${CFLAGS}" _es_lib_sdl_save_CXXFLAGS="${CXXFLAGS}" _es_lib_sdl_save_LIBS="${LIBS}" CFLAGS="${CFLAGS} ${SDL_CFLAGS}" CXXFLAGS="${CXXFLAGS} ${SDL_CFLAGS}" LIBS="${LIBS} ${SDL_LIBS}" AC_LINK_IFELSE(AC_LANG_PROGRAM([#include <SDL.h>#include <SDL_version.h>#if SDL_MAJOR_VERSION * 1000 + SDL_MINOR_VERSION * 100 + SDL_PATCHLEVEL < ${_es_lib_sdl_min_version_major} * 1000 + ${_es_lib_sdl_min_version_minor} * 100 + ${_es_lib_sdl_min_version_micro}#error "SDL version not valid!"#endif#ifdef main#undef main#endif#if IS_WINCE_HOSTint SDL_main (int a, char **v) { return 0; }#endif], []), _es_lib_sdl_linked="yes", _es_lib_sdl_linked="no") CFLAGS="${_es_lib_sdl_save_CFLAGS}" CXXFLAGS="${_es_lib_sdl_save_CXXFLAGS}" LIBS="${_es_lib_sdl_save_LIBS}" if test "x${_es_lib_sdl_linked}" = "xyes" ; then AC_SUBST([SDL_CFLAGS]) AC_SUBST([SDL_LIBS]) AC_MSG_RESULT([yes]) ifelse([$2], [], :, [$2]) else AC_MSG_RESULT([no]) ifelse([$3], [], :, [$3]) fifi])# ES_LIB_SDL# ES_LIB_SDL_SUBLIB(SUBLIBRARY-NAME, VARIABLE-SUFFIX[, ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])# ----------------------------------------------------------# Checks for a sublibrary of SDL (usually called SDL_name).# If found, defines SDL_[$VARIABLE-SUFFIX]_CFLAGS and SDL_[$VARIABLE_SUFFIX]_LIBS.AC_DEFUN([ES_LIB_SDL_SUBLIB],[AC_REQUIRE([ES_LIB_SDL])[]dnl_es_lib_sdl_sublibrary_found="no"case "${host}" in *-apple-darwin*) _es_lib_sdl_sublibrary_osx="yes" ;; *-gp2x*) _es_lib_sdl_sublibrary_gp2x="yes" ;;esac# On Mac OS X, just try to use the SDL_sublibrary framework.if test "x${_es_lib_sdl_sublibrary_osx}" = "xyes" ; then AC_MSG_CHECKING([for SDL_$1]) _es_lib_sdl_sublibrary_save_CFLAGS="${CFLAGS}" _es_lib_sdl_sublibrary_save_CXXFLAGS="${CXXFLAGS}" CFLAGS="${CFLAGS} ${SDL_CFLAGS}" CXXFLAGS="${CXXFLAGS} ${SDL_CFLAGS}" _ES_FRAMEWORK_PATH([SDL_$1], [SDL_$1.h], [_es_lib_sdl_sublibrary_osx_headers_dir="${FRAMEWORK_HEADERS_DIR}"], [_es_lib_sdl_sublibrary_osx_headers_dir="no"]) CFLAGS="${_es_lib_sdl_sublibrary_save_CFLAGS}" CXXFLAGS="${_es_lib_sdl_sublibrary_save_CXXFLAGS}" if test "x${_es_lib_sdl_sublibrary_osx_headers_dir}" = "xno" ; then SDL_$2[]_CFLAGS="" SDL_$2[]_LIBS="" AC_MSG_RESULT([no]) ifelse([$4], [], :, [$4]) else SDL_$2[]_CFLAGS="-I${_es_lib_sdl_sublibrary_osx_headers_dir}" SDL_$2[]_LIBS="-framework SDL_$1" _es_lib_sdl_sublibrary_found="yes" fi# On others platforms try to compile the test program using SDL_CFLAGS# and SDL_LIBS.else # I seem to have problems in GP2X if I don't include them when linking. if test "x${_es_lib_sdl_sublibrary_gp2x}" = "xyes" ; then case $1 in image) _es_lib_sdl_sublibrary_extra_libs="-ljpeg -lpng -lz" ;; mixer) _es_lib_sdl_sublibrary_extra_libs="-lvorbisidec" ;; ttf) _es_lib_sdl_sublibrary_extra_libs="-lfreetype" ;; esac fi AC_MSG_CHECKING([for SDL_$1]) _es_lib_sdl_sublibrary_save_CFLAGS="${CFLAGS}" _es_lib_sdl_sublibrary_save_CXXFLAGS="${CXXFLAGS}" CFLAGS="${CFLAGS} ${SDL_CFLAGS}" CXXFLAGS="${CXXFLAGS} ${SDL_CFLAGS}" AC_COMPILE_IFELSE(AC_LANG_PROGRAM([#include <SDL_$1.h>], []), [_es_lib_sdl_sublibrary_found="yes"], [_es_lib_sdl_sublibrary_found="no"]) CFLAGS="${_es_lib_sdl_sublibrary_save_CFLAGS}" CXXFLAGS="${_es_lib_sdl_sublibrary_save_CXXFLAGS}" if test "x${_es_lib_sdl_sublibrary_found}" = "xno" ; then SDL_$2[]_CFLAGS="" SDL_$2[]_LIBS="" AC_MSG_RESULT([no]) ifelse([$4], [], :, [$4]) else SDL_$2[]_CFLAGS="" SDL_$2[]_LIBS="-lSDL_$1 ${_es_lib_sdl_sublibrary_extra_libs}" fifiif test "x${_es_lib_sdl_sublibrary_found}" = "xyes" ; then _es_lib_sdl_sublibrary_save_CFLAGS="${CFLAGS}" _es_lib_sdl_sublibrary_save_CXXFLAGS="${CXXFLAGS}" _es_lib_sdl_sublibrary_save_LIBS="${LIBS}" CFLAGS="${CFLAGS} ${SDL_CFLAGS} ${SDL_$2[]_CFLAGS}" CXXFLAGS="${CXXFLAGS} ${SDL_CFLAGS} ${SDL_$2[]_CFLAGS}" LIBS="${LIBS} ${SDL_LIBS} ${SDL_$2[]_LIBS}" AC_LINK_IFELSE(AC_LANG_PROGRAM([#include <SDL.h>#include <SDL_$1.h>#ifdef main#undef main#endif#if IS_WINCE_HOSTint SDL_main (int a, char **v) { return 0; }#endif], []), [_es_lib_sdl_sublibrary_linked="yes"], [_es_lib_sdl_sublibrary_linked="no"]) CFLAGS="${_es_lib_sdl_sublibrary_save_CFLAGS}" CXXFLAGS="${_es_lib_sdl_sublibrary_save_CXXFLAGS}" LIBS="${_es_lib_sdl_sublibrary_save_LIBS}" if test "x${_es_lib_sdl_sublibrary_linked}" = "xyes" ; then AC_MSG_RESULT([yes]) ifelse([$3], [], :, [$3]) else AC_MSG_RESULT([no]) ifelse([$4], [], :, [$4]) fifi])# ES_LIB_SDL_SUBLIBRARY
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?