1 # /***********************************************************************
2 # // standard ACC macros
3 # ************************************************************************/
5 AC_DEFUN([mfx_ACC_CHECK_ENDIAN], [
6 AC_C_BIGENDIAN([AC_DEFINE(ACC_ABI_BIG_ENDIAN,1,[Define to 1 if your machine is big endian.])],[AC_DEFINE(ACC_ABI_LITTLE_ENDIAN,1,[Define to 1 if your machine is little endian.])])
9 AC_DEFUN([mfx_ACC_CHECK_HEADERS], [
11 AC_CHECK_HEADERS([assert.h ctype.h dirent.h errno.h fcntl.h float.h limits.h malloc.h memory.h setjmp.h signal.h stdarg.h stddef.h stdint.h stdio.h stdlib.h string.h strings.h time.h unistd.h utime.h sys/mman.h sys/resource.h sys/stat.h sys/time.h sys/types.h sys/wait.h])
14 AC_DEFUN([mfx_ACC_CHECK_FUNCS], [
15 AC_CHECK_FUNCS(access alloca atexit atoi atol chmod chown clock_getcpuclockid clock_getres clock_gettime ctime difftime fstat getenv getpagesize getrusage gettimeofday gmtime isatty localtime longjmp lstat memcmp memcpy memmove memset mkdir mktime mmap mprotect munmap qsort raise rmdir setjmp signal snprintf strcasecmp strchr strdup strerror strftime stricmp strncasecmp strnicmp strrchr strstr time umask utime vsnprintf)
19 AC_DEFUN([mfx_ACC_CHECK_SIZEOF], [
20 AC_CHECK_SIZEOF(short)
24 AC_CHECK_SIZEOF(long long)
25 AC_CHECK_SIZEOF(__int16)
26 AC_CHECK_SIZEOF(__int32)
27 AC_CHECK_SIZEOF(__int64)
29 AC_CHECK_SIZEOF(void *)
30 AC_CHECK_SIZEOF(char *)
31 AC_CHECK_SIZEOF(size_t)
32 AC_CHECK_SIZEOF(ptrdiff_t)
36 # /***********************************************************************
37 # // Check for ACC_conformance
38 # ************************************************************************/
40 AC_DEFUN([mfx_ACC_ACCCHK], [
42 mfx_save_CPPFLAGS=$CPPFLAGS
43 dnl in Makefile.in $(INCLUDES) will be before $(CPPFLAGS), so we mimic this here
44 test "X$mfx_tmp" = "X" || CPPFLAGS="$mfx_tmp $CPPFLAGS"
46 AC_MSG_CHECKING([whether your compiler passes the ACC conformance test])
48 AC_LANG_CONFTEST([AC_LANG_PROGRAM(
49 [[#define ACC_CONFIG_NO_HEADER 1
51 #include "acc/acc_incd.h"
53 #define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT_HEADER(expr)
54 #include "acc/acc_chk.ch"
56 static void test_acc_compile_time_assert(void) {
57 #define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT(expr)
58 #include "acc/acc_chk.ch"
63 static int test_acc_run_time_assert(int r) {
64 #define ACCCHK_ASSERT(expr) assert(expr);
65 #include "acc/acc_chk.ch"
70 test_acc_compile_time_assert();
71 if (test_acc_run_time_assert(1) != 1) return 1;
76 _AC_COMPILE_IFELSE([], [mfx_tmp=yes])
77 rm -f conftest.$ac_ext conftest.$ac_objext
79 CPPFLAGS=$mfx_save_CPPFLAGS
81 AC_MSG_RESULT([$mfx_tmp])
86 AC_MSG_NOTICE([Your compiler failed the ACC conformance test - for details see ])
87 AC_MSG_NOTICE([`config.log'. Please check that log file and consider sending])
88 AC_MSG_NOTICE([a patch or bug-report to <${PACKAGE_BUGREPORT}>.])
89 AC_MSG_NOTICE([Thanks for your support.])
91 AC_MSG_ERROR([ACC conformance test failed. Stop.])
98 # /***********************************************************************
99 # // Check for ACC_conformance
100 # ************************************************************************/
102 AC_DEFUN([mfx_MINIACC_ACCCHK], [
104 mfx_save_CPPFLAGS=$CPPFLAGS
105 dnl in Makefile.in $(INCLUDES) will be before $(CPPFLAGS), so we mimic this here
106 test "X$mfx_tmp" = "X" || CPPFLAGS="$mfx_tmp $CPPFLAGS"
108 AC_MSG_CHECKING([whether your compiler passes the ACC conformance test])
110 AC_LANG_CONFTEST([AC_LANG_PROGRAM(
111 [[#define ACC_CONFIG_NO_HEADER 1
112 #define ACC_WANT_ACC_INCD_H 1
115 #define ACC_WANT_ACC_CHK_CH 1
117 #define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT_HEADER(expr)
120 #define ACC_WANT_ACC_CHK_CH 1
122 #define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT(expr)
123 static void test_acc_compile_time_assert(void) {
129 #define ACC_WANT_ACC_CHK_CH 1
131 #define ACCCHK_ASSERT(expr) assert(expr);
132 static int test_acc_run_time_assert(int r) {
137 test_acc_compile_time_assert();
138 if (test_acc_run_time_assert(1) != 1) return 1;
143 _AC_COMPILE_IFELSE([], [mfx_tmp=yes])
144 rm -f conftest.$ac_ext conftest.$ac_objext
146 CPPFLAGS=$mfx_save_CPPFLAGS
148 AC_MSG_RESULT([$mfx_tmp])
153 AC_MSG_NOTICE([Your compiler failed the ACC conformance test - for details see ])
154 AC_MSG_NOTICE([`config.log'. Please check that log file and consider sending])
155 AC_MSG_NOTICE([a patch or bug-report to <${PACKAGE_BUGREPORT}>.])
156 AC_MSG_NOTICE([Thanks for your support.])
158 AC_MSG_ERROR([ACC conformance test failed. Stop.])
162 ])# mfx_MINIACC_ACCCHK
168 AC_DEFUN([mfx_PROG_CPPFLAGS], [
169 AC_MSG_CHECKING([whether the C preprocessor needs special flags])
171 AC_LANG_CONFTEST([AC_LANG_PROGRAM(
172 [[#include <limits.h>
173 #if (32767 >= 4294967295ul) || (65535u >= 4294967295ul)
174 # include "your C preprocessor is broken 1"
175 #elif (0xffffu == 0xfffffffful)
176 # include "your C preprocessor is broken 2"
177 #elif (32767 >= ULONG_MAX) || (65535u >= ULONG_MAX)
178 # include "your C preprocessor is broken 3"
183 mfx_save_CPPFLAGS=$CPPFLAGS
185 for mfx_arg in "" -no-cpp-precomp
187 CPPFLAGS="$mfx_arg $mfx_save_CPPFLAGS"
188 _AC_COMPILE_IFELSE([],
192 CPPFLAGS=$mfx_save_CPPFLAGS
193 rm -f conftest.$ac_ext conftest.$ac_objext
196 AC_MSG_RESULT([none needed]) ;;
198 AC_MSG_RESULT([ERROR])
199 AC_MSG_ERROR([your C preprocessor is broken - for details see config.log])
202 AC_MSG_RESULT([$mfx_tmp])
203 CPPFLAGS="$mfx_tmp $CPPFLAGS"
206 ])# mfx_PROG_CPPFLAGS
210 AC_DEFUN([mfx_CHECK_HEADER_SANE_LIMITS_H], [
211 AC_CACHE_CHECK([whether limits.h is sane],
212 mfx_cv_header_sane_limits_h,
213 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <limits.h>
214 #if (32767 >= 4294967295ul) || (65535u >= 4294967295ul)
215 # if defined(__APPLE__) && defined(__GNUC__)
216 # error "your preprocessor is broken - use compiler option -no-cpp-precomp"
218 # include "your preprocessor is broken"
221 #define MFX_0xffff 0xffff
222 #define MFX_0xffffffffL 4294967295ul
223 #if !defined(CHAR_BIT) || (CHAR_BIT != 8)
224 # include "error CHAR_BIT"
226 #if !defined(UCHAR_MAX)
227 # include "error UCHAR_MAX 1"
229 #if !defined(USHRT_MAX)
230 # include "error USHRT_MAX 1"
232 #if !defined(UINT_MAX)
233 # include "error UINT_MAX 1"
235 #if !defined(ULONG_MAX)
236 # include "error ULONG_MAX 1"
238 #if !defined(SHRT_MAX)
239 # include "error SHRT_MAX 1"
241 #if !defined(INT_MAX)
242 # include "error INT_MAX 1"
244 #if !defined(LONG_MAX)
245 # include "error LONG_MAX 1"
248 # include "error UCHAR_MAX 2"
251 # include "error USHRT_MAX 2"
254 # include "error UINT_MAX 2"
257 # include "error ULONG_MAX 2"
259 #if (UCHAR_MAX < 0xff)
260 # include "error UCHAR_MAX 3"
262 #if (USHRT_MAX < MFX_0xffff)
263 # include "error USHRT_MAX 3"
265 #if (UINT_MAX < MFX_0xffff)
266 # include "error UINT_MAX 3"
268 #if (ULONG_MAX < MFX_0xffffffffL)
269 # include "error ULONG_MAX 3"
271 #if (USHRT_MAX > UINT_MAX)
272 # include "error USHRT_MAX vs UINT_MAX"
274 #if (UINT_MAX > ULONG_MAX)
275 # include "error UINT_MAX vs ULONG_MAX"
278 #if (USHRT_MAX == MFX_0xffff)
279 { typedef char a_short2a[1 - 2 * !(sizeof(short) == 2)]; }
280 #elif (USHRT_MAX >= MFX_0xffff)
281 { typedef char a_short2b[1 - 2 * !(sizeof(short) > 2)]; }
283 #if (UINT_MAX == MFX_0xffff)
284 { typedef char a_int2a[1 - 2 * !(sizeof(int) == 2)]; }
285 #elif (UINT_MAX >= MFX_0xffff)
286 { typedef char a_int2b[1 - 2 * !(sizeof(int) > 2)]; }
288 #if (ULONG_MAX == MFX_0xffff)
289 { typedef char a_long2a[1 - 2 * !(sizeof(long) == 2)]; }
290 #elif (ULONG_MAX >= MFX_0xffff)
291 { typedef char a_long2b[1 - 2 * !(sizeof(long) > 2)]; }
293 #if !defined(_CRAY1) /* CRAY PVP systems */
294 #if (USHRT_MAX == MFX_0xffffffffL)
295 { typedef char a_short4a[1 - 2 * !(sizeof(short) == 4)]; }
296 #elif (USHRT_MAX >= MFX_0xffffffffL)
297 { typedef char a_short4b[1 - 2 * !(sizeof(short) > 4)]; }
300 #if (UINT_MAX == MFX_0xffffffffL)
301 { typedef char a_int4a[1 - 2 * !(sizeof(int) == 4)]; }
302 #elif (UINT_MAX >= MFX_0xffffffffL)
303 { typedef char a_int4b[1 - 2 * !(sizeof(int) > 4)]; }
305 #if (ULONG_MAX == MFX_0xffffffffL)
306 { typedef char a_long4a[1 - 2 * !(sizeof(long) == 4)]; }
307 #elif (ULONG_MAX >= MFX_0xffffffffL)
308 { typedef char a_long4b[1 - 2 * !(sizeof(long) > 4)]; }
311 [mfx_cv_header_sane_limits_h=yes],
312 [mfx_cv_header_sane_limits_h=no])])
315 # /***********************************************************************
317 # ************************************************************************/
319 AC_DEFUN([mfx_LZO_CHECK_ENDIAN], [
320 AC_C_BIGENDIAN([AC_DEFINE(LZO_ABI_BIG_ENDIAN,1,[Define to 1 if your machine is big endian.])],[AC_DEFINE(LZO_ABI_LITTLE_ENDIAN,1,[Define to 1 if your machine is little endian.])])
324 # /***********************************************************************
326 # ************************************************************************/
328 dnl more types which are not yet covered by ACC
330 AC_DEFUN([mfx_CHECK_SIZEOF], [
331 AC_CHECK_SIZEOF(__int32)
332 AC_CHECK_SIZEOF(intmax_t)
333 AC_CHECK_SIZEOF(uintmax_t)
334 AC_CHECK_SIZEOF(intptr_t)
335 AC_CHECK_SIZEOF(uintptr_t)
337 AC_CHECK_SIZEOF(float)
338 AC_CHECK_SIZEOF(double)
339 AC_CHECK_SIZEOF(long double)
341 AC_CHECK_SIZEOF(dev_t)
342 AC_CHECK_SIZEOF(fpos_t)
343 AC_CHECK_SIZEOF(mode_t)
344 AC_CHECK_SIZEOF(off_t)
345 AC_CHECK_SIZEOF(ssize_t)
346 AC_CHECK_SIZEOF(time_t)
351 AC_DEFUN([mfx_CHECK_LIB_WINMM], [
352 if test "X$GCC" = Xyes; then
354 cygwin* | mingw* | pw32*)
355 test "X$LIBS" != "X" && LIBS="$LIBS "
356 LIBS="${LIBS}-lwinmm" ;;