# FP_CHECK_CONSTS(EXPRESSION..., [INCLUDES = DEFAULT-INCLUDES], [VALUE-IF-FAIL = -1])
# -----------------------------------------------------------------------------------
# List version of FP_CHECK_CONST
-AC_DEFUN(FP_CHECK_CONSTS,
+AC_DEFUN([FP_CHECK_CONSTS],
[FP_CHECK_CONSTS_TEMPLATE([$1])dnl
for fp_const_name in $1
do
dnl Based on autconf's AC_CHECK_SIZEOF.
dnl FPTOOLS_CHECK_HTYPE(TYPE [, DEFAULT_VALUE, [, VALUE-FOR-CROSS-COMPILATION])
-AC_DEFUN(FPTOOLS_CHECK_HTYPE,
+AC_DEFUN([FPTOOLS_CHECK_HTYPE],
[changequote(<<, >>)dnl
dnl The name to #define.
define(<<AC_TYPE_NAME>>, translit(htype_$1, [a-z *], [A-Z_P]))dnl
# include <ctype.h>
#endif
+#if HAVE_INTTYPES_H
+# include <inttypes.h>
+#else
+# if HAVE_STDINT_H
+# include <stdint.h>
+# endif
+#endif
+
#if defined(HAVE_GL_GL_H)
# include <GL/gl.h>
#elif defined(HAVE_OPENGL_GL_H)
# include <OpenGL/gl.h>
#endif
+#if defined(HAVE_AL_AL_H)
+# include <AL/al.h>
+#elif defined(HAVE_OPENAL_AL_H)
+# include <OpenAL/al.h>
+#endif
+
#if defined(HAVE_AL_ALC_H)
# include <AL/alc.h>
#elif defined(HAVE_OPENAL_ALC_H)
# include <sys/resource.h>
#endif
+#include <stdlib.h>
+
typedef $1 testing;
-main() {
+int main(void) {
FILE *f=fopen("conftestval", "w");
if (!f) exit(1);
if (((testing)((int)((testing)1.4))) == ((testing)1.4)) {
fprintf(f, "%s%d\n",
((testing)(-1) < (testing)0) ? "Int" : "Word",
- sizeof(testing)*8);
+ (int)(sizeof(testing)*8));
} else {
fprintf(f,"%s\n",
(sizeof(testing) > sizeof(double)) ? "LDouble" :
exit(0);
}]])],[AC_CV_NAME=`cat conftestval`],
[ifelse([$2], , [AC_CV_NAME=NotReallyAType; AC_CV_NAME_supported=no], [AC_CV_NAME=$2])],
-[ifelse([$3], , [AC_CV_NAME=NotReallyATypeCross; AC_CV_NAME_supported=no], [AC_CV_NAME=$3])])]) dnl
-CPPFLAGS="$fp_check_htype_save_cppflags"
+[ifelse([$3], , [AC_CV_NAME=NotReallyATypeCross; AC_CV_NAME_supported=no], [AC_CV_NAME=$3])])
+CPPFLAGS="$fp_check_htype_save_cppflags"]) dnl
if test "$AC_CV_NAME_supported" = yes; then
AC_MSG_RESULT($AC_CV_NAME)
AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [Define to Haskell type for $1])
])
-dnl @synopsis FP_READDIR_EOF_ERRNO
-dnl
-dnl Check what readdir() sets 'errno' to upon reaching
-dnl end of directory; not setting it is the correct thing to do,
-dnl but mingw based versions have set it to ENOENT until recently
-dnl (summer 2004).
-dnl
-dnl
-AC_DEFUN(FP_READDIR_EOF_ERRNO,
-[AC_CACHE_CHECK([what readdir sets errno to upon EOF], fptools_cv_readdir_eof_errno,
-[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <dirent.h>
-#include <stdio.h>
-#include <errno.h>
-int
-main(argc, argv)
-int argc;
-char **argv;
-{
- FILE *f=fopen("conftestval", "w");
-#if defined(__MINGW32__)
- int fd = mkdir("testdir");
-#else
- int fd = mkdir("testdir", 0666);
-#endif
- DIR* dp;
- struct dirent* de;
- int err = 0;
-
- if (!f) return 1;
- if (fd == -1) {
- fprintf(stderr,"unable to create directory; quitting.\n");
- return 1;
- }
- close(fd);
- dp = opendir("testdir");
- if (!dp) {
- fprintf(stderr,"unable to browse directory; quitting.\n");
- rmdir("testdir");
- return 1;
- }
-
- /* the assumption here is that readdir() will only return NULL
- * due to reaching the end of the directory.
- */
- while (de = readdir(dp)) {
- ;
- }
- err = errno;
- fprintf(f,"%d", err);
- fclose(f);
- closedir(dp);
- rmdir("testdir");
- return 0;
-}]])],[fptools_cv_readdir_eof_errno=`cat conftestval`],[fptools_cv_readdir_eof_errno=bogus],[fptools_cv_readdir_eof_errno=0])])
-dnl the cross value is somewhat bogus.
-AC_DEFINE_UNQUOTED([READDIR_ERRNO_EOF], [$fptools_cv_readdir_eof_errno], [readdir() sets errno to this upon EOF])
-])
-
-dnl @synopsis FP_DIRENT_FLAT_LAYOUT
-dnl
-dnl Check whether 'struct dirent' (in dirent.h) has d_name defined
-dnl as being the final field in a struct, or a pointer to somewhere
-dnl else. The former is the standardly thing to do, but mingw defns
-dnl have for the longest time gone for the latter. They no longer do,
-dnl hence the need to configure test for this.
-dnl
-dnl
-AC_DEFUN(FP_DIRENT_FLAT_LAYOUT,
-[AC_CACHE_CHECK([if struct dirent layout is flat], fptools_cv_dirent_flat_layout,
-[AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <dirent.h>
-#include <stdio.h>
-#include <string.h>
-int
-main(argc, argv)
-int argc;
-char **argv;
-{
- struct dirent de;
- /*
- * Check whether d_name is defined as
- * struct dirent { .... ; char d_name[..]; }
- * or
- * struct dirent { .... ; char* d_name; }
- *
- * Returns 0 if the former.
- */
- memset(&de,0,sizeof(struct dirent));
- return ((int)de.d_name == 0);
-}]])],[fptools_cv_dirent_flat_layout=yes],[fptools_cv_dirent_flat_layout=no],[fptools_cv_dirent_flat_layout=yes])])
-dnl the cross value is somewhat bogus.
-if test "$fptools_cv_dirent_flat_layout" = yes; then
-AC_DEFINE([STRUCT_DIRENT_FLAT_LAYOUT], [1], [Define to 1 if struct dirent is a flat structure])
-fi
+# FP_SEARCH_LIBS_PROTO(WHAT, PROTOTYPE, FUNCTION, SEARCH-LIBS,
+# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
+# [OTHER-LIBRARIES])
+# --------------------------------------------------------
+# Search for a library defining FUNC, if it's not already available.
+# This is a copy of the AC_SEARCH_LIBS definition, but extended to take
+# the name of the thing we are looking for as its first argument, and
+# prototype text as its second argument. It also calls AC_LANG_PROGRAM
+# instead of AC_LANG_CALL
+AC_DEFUN([FP_SEARCH_LIBS_PROTO],
+[AS_VAR_PUSHDEF([ac_Search], [ac_cv_search_$3])dnl
+AC_CACHE_CHECK([for library containing $1], [ac_Search],
+[ac_func_search_save_LIBS=$LIBS
+AC_LANG_CONFTEST([AC_LANG_PROGRAM([$2], [$3])])
+for ac_lib in '' $4; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $7 $ac_func_search_save_LIBS"
+ fi
+ AC_LINK_IFELSE([], [AS_VAR_SET([ac_Search], [$ac_res])])
+ AS_VAR_SET_IF([ac_Search], [break])dnl
+done
+AS_VAR_SET_IF([ac_Search], , [AS_VAR_SET([ac_Search], [no])])dnl
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS])
+ac_res=AS_VAR_GET([ac_Search])
+AS_IF([test "$ac_res" != no],
+ [test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+ $5],
+ [$6])dnl
+AS_VAR_POPDEF([ac_Search])dnl
])