mirror of
https://github.com/love2d/megasource.git
synced 2026-08-16 16:21:13 +02:00
299 lines
11 KiB
Plaintext
299 lines
11 KiB
Plaintext
|
|
AC_DEFUN([ADD_CFLAGS],
|
|
[GENERAL_CFLAGS="$GENERAL_CFLAGS $1"])
|
|
dnl IL_CFLAGS="$IL_CFLAGS $1"])
|
|
dnl ILU_CFLAGS="$ILU_CFLAGS $1"
|
|
dnl ILUT_CFLAGS="$ILUT_CFLAGS $1"])
|
|
dnl IL_CFLAGS are present everywhere
|
|
|
|
|
|
dnl
|
|
dnl Check CPU Extensions
|
|
dnl
|
|
AC_DEFUN([TEST_EXT],
|
|
[AC_ARG_ENABLE([$6],
|
|
[AC_HELP_STRING([--enable-$6],
|
|
[Doesn't compile $1 support. Overrides general enable of ASM])],
|
|
[use_$1=$enable_$6
|
|
test "x$enable_$6" = "xyes" && enable_asm="yes"],
|
|
[use_$1=test])
|
|
AC_MSG_CHECKING([$1])
|
|
AS_IF([test "$use_$1" = "yes"],
|
|
[AC_DEFINE([$4],
|
|
[1],
|
|
[$1 extension found])
|
|
AC_DEFINE([VECTORMEM],
|
|
[1],
|
|
[Memory must be vector aligned])
|
|
ADD_CFLAGS([$2])
|
|
AC_MSG_RESULT([yes])
|
|
SUPPORTED_EXTENSION=$SUPPORTED_EXTENSION"$1 "],
|
|
[test "$use_$1" = "test" -a "x$enable_asm" = "xyes"],
|
|
[CFLAGS_TMP=$CFLAGS
|
|
CFLAGS="$CFLAGS $2"
|
|
AC_COMPILE_IFELSE([$5
|
|
int main()
|
|
{$3;return 0;}],
|
|
[AC_DEFINE([$4],
|
|
[],
|
|
[$1 extension found])
|
|
AC_DEFINE([VECTORMEM],
|
|
[],
|
|
[Memory must be vector aligned])
|
|
ADD_CFLAGS([$2])
|
|
AC_MSG_RESULT([yes])
|
|
SUPPORTED_EXTENSION=$SUPPORTED_EXTENSION"$1 "],
|
|
[AC_MSG_RESULT([no]) ])
|
|
CFLAGS="$CFLAGS_TMP"],
|
|
[AC_MSG_RESULT(disabled)]) ])
|
|
|
|
dnl
|
|
dnl Check CPU Assembly
|
|
dnl
|
|
dnl add test to have only an ASM for compilation
|
|
AC_DEFUN([TEST_ASM],
|
|
[AC_ARG_ENABLE([$4],
|
|
[AC_HELP_STRING([--enable-$4],
|
|
[Compile with $4 support])],
|
|
[use_$4=$enable_$4],[use_$4=test])
|
|
AC_MSG_CHECKING([$4])
|
|
AS_IF([test "$use_$4" = "yes"],
|
|
[SUPPORTED_EXTENSION=$SUPPORTED_EXTENSION"$2 "
|
|
AC_DEFINE([$3],
|
|
[],
|
|
[$2 assembly found])
|
|
AC_MSG_RESULT([yes])],
|
|
[test "$use_$4" = "no"],
|
|
[AC_MSG_RESULT(no)],
|
|
[AS_CASE([$host_cpu],
|
|
[$1],
|
|
[SUPPORTED_EXTENSION=$SUPPORTED_EXTENSION"$2 "
|
|
AC_DEFINE([$3],
|
|
[],
|
|
[$2 assembly found])
|
|
AC_MSG_RESULT([yes])],
|
|
[AC_MSG_RESULT([no]) ]) ]) ])
|
|
|
|
dnl
|
|
dnl Setup Libraries
|
|
dnl SET_LIB([libname],[if-found],[if-not-found])
|
|
dnl
|
|
AC_DEFUN([SET_LIB],
|
|
[AC_ARG_WITH([$1],
|
|
[AC_HELP_STRING([--with-$1=[[yes/no]]],
|
|
[Do wou want to use lib$1?])],
|
|
[],
|
|
[enable_$1="yes"])
|
|
AS_IF([test "$enable_$1" = "yes"],
|
|
[AC_CHECK_LIB([$1],
|
|
[main],
|
|
[LIBS="-l$1 $LIBS"
|
|
support_$1="yes"],
|
|
[support_$1="no"])
|
|
AS_IF([test "x$support_$1" = "xyes" -a -n '$2'],
|
|
[$2],
|
|
[test "x$support_$1" = "xno" -a -n '$3'],
|
|
[$3]) ]) ])
|
|
|
|
dnl
|
|
dnl Formats
|
|
dnl
|
|
dnl usage:
|
|
dnl TEST_FORMAT(<name>, <varname>[, <check for a lib>]))
|
|
dnl
|
|
AC_DEFUN([TEST_FORMAT],
|
|
[AC_ARG_ENABLE([$1],
|
|
[AC_HELP_STRING([--enable-$1],
|
|
[Compile $1 support. $3 (default=yes) ])],
|
|
[],
|
|
[enable_$1="yes"])
|
|
AS_IF([test $# -eq 4 -a "x$enable_$1" = "xyes"],
|
|
[$4])
|
|
AC_MSG_CHECKING([whether we would like to have support for $1 format])
|
|
AS_IF([test "x$enable_$1" = "xno" -o "x$lib_test_result" = "xno"],
|
|
[AC_MSG_RESULT([no])
|
|
AC_DEFINE([IL_NO_$2],
|
|
[],
|
|
[$1 support ($3)])],
|
|
[AC_MSG_RESULT([yes])
|
|
SUPPORTED_FORMATS="$SUPPORTED_FORMATS $2"])
|
|
lib_test_result="" ])
|
|
|
|
dnl
|
|
dnl Adds a library to human-readable list of dependencies
|
|
dnl
|
|
dnl Usage:
|
|
dnl MAYBE_OPTIONAL_DEPENDENCY(<library part prefix>, <library name>)
|
|
dnl for example:
|
|
dnl MAYBE_OPTIONAL_DEPENDENCY([IL], [libjpeg])
|
|
dnl MAYBE_OPTIONAL_DEPENDENCY([ILUT], [allegro])
|
|
dnl
|
|
AC_DEFUN([MAYBE_OPTIONAL_DEPENDENCY],
|
|
[AS_IF([test "x$enable_modules" = "xyes"],
|
|
[$1_LIBS_OPTIONAL="${$1_LIBS_OPTIONAL} $2"],
|
|
[$1_LIBS_REQUIRED="${$1_LIBS_REQUIRED} $2"]) ])
|
|
|
|
dnl
|
|
dnl Check for libraries
|
|
dnl
|
|
dnl Usage:
|
|
dnl DEVIL_IL_LIB(<include>, <library>)
|
|
dnl the <library> is appended to IL_LIBS, sets have_<library> to yes/no
|
|
dnl Nothing else is done, see MAYBE_OPTIONAL_DEPENDENCY macro...
|
|
dnl
|
|
AC_DEFUN([DEVIL_IL_LIB],
|
|
[AC_CHECK_HEADER([$1],
|
|
[AC_CHECK_LIB([$2],
|
|
[main],
|
|
[IL_LIBS="-l$2 $IL_LIBS"
|
|
have_$2="yes"],
|
|
[have_$2="no"])],
|
|
[have_$2="no"]) ])
|
|
|
|
dnl
|
|
dnl Checks for squish library = GPU accelerated DXT compression
|
|
dnl Can be used along with nvidia texture tools
|
|
dnl
|
|
AC_DEFUN([DEVIL_CHECK_LIBSQUISH],
|
|
[DEVIL_IL_LIB([squish.h],
|
|
[squish])
|
|
lib_test_result="$have_squish"
|
|
AS_IF([test "x$lib_test_result" = "xyes"],
|
|
[AC_DEFINE([IL_USE_DXTC_SQUISH],
|
|
[1],
|
|
[Define if you have libsquish installed])
|
|
MAYBE_OPTIONAL_DEPENDENCY([IL],
|
|
[libsquish]) ]) ])
|
|
|
|
dnl
|
|
dnl Checks for nvidia texture tools library - GPU acceleration of DXT compression
|
|
dnl Can be used along with libsquish
|
|
dnl
|
|
AC_DEFUN([DEVIL_CHECK_NVIDIA_TEXTOOLS],
|
|
[DEVIL_IL_LIB([nvtt/nvtt.h],
|
|
[nvtt])
|
|
lib_test_result="$have_nvtt"
|
|
AS_IF([test "x$lib_test_result" = "xyes"],
|
|
[AC_DEFINE([IL_USE_DXTC_NVIDIA],
|
|
[1],
|
|
[Define if you have nvidia texture tools library installed])
|
|
MAYBE_OPTIONAL_DEPENDENCY([IL],
|
|
[libnvtt-nvidia_texture_tools]) ]) ])
|
|
|
|
AC_DEFUN([SETTLE_LCMS],
|
|
[AC_CHECK_LIB([lcms],
|
|
[main],
|
|
[have_lcms_lib="yes"
|
|
IL_LIBS="-llcms $IL_LIBS"])
|
|
AC_CHECK_HEADER([lcms/lcms.h],
|
|
[have_lcms_h="yes"])
|
|
AC_CHECK_HEADER([lcms.h],
|
|
[have_lcms_h="yes"
|
|
lcms_nodirinclude="yes"])
|
|
AS_IF([test "x$lcms_nodirinclude" = "xyes"],
|
|
[AC_DEFINE([LCMS_NODIRINCLUDE],
|
|
[1],
|
|
[LCMS include without lcms/ support]) ])
|
|
AS_IF([test "x$have_lcms_lib" = "xyes" -a "x$have_lcms_h" = "xyes"],
|
|
[have_lcms="yes"
|
|
IL_LIBS_REQUIRED="$IL_LIBS_REQUIRED lcms"
|
|
lib_test_result="yes"],
|
|
[lib_test_result="no"]) ])
|
|
|
|
AC_DEFUN([SETTLE_OPENEXR],
|
|
[PKG_CHECK_MODULES([OPENEXR],
|
|
[OpenEXR],
|
|
[have_openexr="yes"],
|
|
[have_openexr="no"])
|
|
MAYBE_OPTIONAL_DEPENDENCY([IL],
|
|
[OpenEXR])
|
|
IL_LIBS="$OPENEXR_LIBS $IL_LIBS"
|
|
IL_CFLAGS="$OPENEXR_CFLAGS $IL_CFLAGS"
|
|
lib_test_result="$have_openexr"])
|
|
|
|
AC_DEFUN([SETTLE_JPEG],
|
|
[DEVIL_IL_LIB([jpeglib.h],
|
|
[jpeg])
|
|
AC_DEFINE([IL_USE_JPEGLIB_UNMODIFIED],
|
|
[1],
|
|
[Use libjpeg without modification. always enabled.])
|
|
lib_test_result="$have_jpeg"
|
|
AS_IF([test "x$lib_test_result" = "xyes"],
|
|
[MAYBE_OPTIONAL_DEPENDENCY([IL],
|
|
[libjpeg]) ]) ])
|
|
|
|
AC_DEFUN([SETTLE_JASPER],
|
|
[DEVIL_IL_LIB([jasper/jasper.h],
|
|
[jasper])
|
|
AS_IF([test "x$have_jasper" != "xyes"],
|
|
[DEVIL_IL_LIB([jasper/jasper.h],
|
|
[jp2])
|
|
lib_test_result="$have_jp2" ],
|
|
[lib_test_result="yes"])
|
|
AS_IF([test "x$lib_test_result" = "xyes"],
|
|
[MAYBE_OPTIONAL_DEPENDENCY([IL],
|
|
[JasPer]) ]) ])
|
|
|
|
AC_DEFUN([SETTLE_MNG],
|
|
[DEVIL_IL_LIB([libmng.h],
|
|
[mng])
|
|
lib_test_result="$have_mng"
|
|
AS_IF([test "x$lib_test_result" = "xyes"],
|
|
[MAYBE_OPTIONAL_DEPENDENCY([IL],
|
|
[libmng]) ]) ])
|
|
|
|
AC_DEFUN([SETTLE_PNG],
|
|
[DEVIL_IL_LIB([png.h],
|
|
[png12])
|
|
AS_IF([test "x$have_png12" = "xno"],
|
|
[DEVIL_IL_LIB([png.h],
|
|
[png])
|
|
lib_test_result="$have_png"],
|
|
[lib_test_result="$have_png12"])
|
|
AS_IF([test "x$lib_test_result" = "xyes"],
|
|
[MAYBE_OPTIONAL_DEPENDENCY([IL],
|
|
[libpng]) ]) ])
|
|
|
|
AC_DEFUN([SETTLE_TIFF],
|
|
[DEVIL_IL_LIB([tiffio.h],
|
|
[tiff])
|
|
lib_test_result="$have_tiff"
|
|
AS_IF([test "x$lib_test_result" = "xyes"],
|
|
[MAYBE_OPTIONAL_DEPENDENCY([IL],
|
|
[libtiff]) ]) ])
|
|
|
|
dnl
|
|
dnl ILUT generic APIs checking
|
|
dnl
|
|
AC_DEFUN([TEST_API],
|
|
[AC_ARG_ENABLE([$1],
|
|
[AC_HELP_STRING([--enable-$1],
|
|
[Compiles $1 support for ILUT (default=yes) ])],
|
|
[],
|
|
[enable_$1="yes"]) ])
|
|
|
|
dnl Test for restrict c/c++ keyword
|
|
AC_DEFUN([DEVIL_CHECK_RESTRICT],
|
|
[AC_MSG_CHECKING([restrict keyword])
|
|
AC_COMPILE_IFELSE([[void foo(void * restrict test){}]],
|
|
[AC_DEFINE([RESTRICT_KEYWORD],
|
|
[],
|
|
[restric keyword available])
|
|
restrict_keyword="found"
|
|
AC_MSG_RESULT([yes]) ],
|
|
[AC_MSG_RESULT([no]) ]) ])
|
|
|
|
AC_DEFUN([DEVIL_CHECK_RESTRICT_GNU99],
|
|
[TMP_CFLAGS="$CFLAGS"
|
|
CFLAGS="$CFLAGS -std=gnu99 -fgnu89-inline"
|
|
AC_MSG_CHECKING([restrict gnu99 keyword])
|
|
AC_COMPILE_IFELSE([[void foo(void * restrict test){}]],
|
|
[AC_DEFINE([RESTRICT_KEYWORD],
|
|
[1],
|
|
[restric keyword available])
|
|
AC_MSG_RESULT([yes])
|
|
CFLAGS="$TMP_CFLAGS"
|
|
ADD_CFLAGS(-std=gnu99 -fgnu89-inline)],
|
|
[AC_MSG_RESULT([no])
|
|
CFLAGS="$TMP_CFLAGS"]) ])
|