1dnl
2dnl aclocal.m4, read by configure
3dnl by pts@fazekas.hu at Thu Nov  1 23:07:16 CET 2001
4dnl advanced integer checks Sat Apr  6 12:32:02 CEST 2002
5dnl
6dnl Imp: is shell `elif' compatible
7dnl Imp: less autoconf warnings
8dnl Dat: m4 SUXX, no normal error message for missing ')'
9dnl Dat: FILE *f=fopen("conftestval", "w"); is autoconf trad
10
11dnl autoconf-2.13 generates bad code for AC_C_CONST in g++-3.2
12dnl autoconf-2.54 is good (verified at Wed Dec 11 15:28:28 CET 2002)
13AC_PREREQ([2.14])
14
15dnl stupid autoconf-2.54 does #include <stdlib.h>
16m4_define([_AC_PROG_CXX_EXIT_DECLARATION],[:])
17
18AC_DEFUN([AC_PTS_CHECK_INTEGRALS],[
19dnl Checks for integral sizes.
20AC_REQUIRE([AC_HEADER_STDC])
21AC_PTS_C_CHAR_UNSIGNED
22dnl ^^^ eliminates autoconf warning `warning: AC_TRY_RUN called without default to allow cross compiling'
23
24dnl by pts@fazekas.hu at Sat Apr  6 12:43:48 CEST 2002
25dnl Run some tests in a single burst.
26if test x"$ac_cv_sizeof_char" = x; then
27AC_MSG_CHECKING(size of char)
28AC_CACHE_VAL(ac_cv_sizeof_char,
29[ac_cv_sizeof_char_p=-1;ac_cv_sizeof_short=-1;ac_cv_sizeof_int=-1
30ac_cv_sizeof_long=-1
31AC_TRY_RUN([
32#undef const
33#undef volatile
34#undef inline
35#include <stdio.h>
36int main(){FILE *f=fopen("conftestval", "w");
37  if (!f) return 1;
38  fprintf(f, "ac_cv_sizeof_char=%d\n", sizeof(char));
39  fprintf(f, "ac_cv_sizeof_char_p=%d\n", sizeof(char*));
40  fprintf(f, "ac_cv_sizeof_short=%d\n", sizeof(short));
41  fprintf(f, "ac_cv_sizeof_int=%d\n", sizeof(int));
42  fprintf(f, "ac_cv_sizeof_long=%d\n", sizeof(long));
43  return 0; /* exit(0); -- return is more portable */
44}], eval "`cat conftestval`", , ac_cv_sizeof_char=-1)])
45AC_MSG_RESULT($ac_cv_sizeof_char)
46AC_DEFINE_UNQUOTED(SIZEOF_CHAR, $ac_cv_sizeof_char)
47AC_DEFINE_UNQUOTED(SIZEOF_CHAR_P, $ac_cv_sizeof_char_p)
48AC_DEFINE_UNQUOTED(SIZEOF_SHORT, $ac_cv_sizeof_short)
49AC_DEFINE_UNQUOTED(SIZEOF_INT, $ac_cv_sizeof_int)
50AC_DEFINE_UNQUOTED(SIZEOF_LONG, $ac_cv_sizeof_long)
51fi
52dnl AC_PTS_CHECK_SIZEOF(char, -1)
53
54if test $ac_cv_sizeof_char = -1; then
55  AC_MSG_ERROR(cross compiling not supported by .._PTS_CHECK_INTEGRALS)
56fi
57AC_PTS_CHECK_SIZEOF(short, -1)
58AC_PTS_CHECK_SIZEOF(int, -1)
59AC_PTS_CHECK_SIZEOF(long, -1)
60AC_PTS_CHECK_SIZEOF(long long, -1)
61if test $ac_cv_sizeof_long_long = 8
62then ac_cv_sizeof___int64=0; ac_cv_sizeof_very_long=0; fi
63AC_PTS_CHECK_SIZEOF(very long, -1)
64if test $ac_cv_sizeof_very_long = 8; then ac_cv_sizeof___int64=0; fi
65AC_PTS_CHECK_SIZEOF(__int64, -1)
66dnl ^^^ very long type doesn't exit in any C standard.
67
68dnl Imp: make these cached
69# echo $ac_cv_sizeof_long_long
70if test $ac_cv_sizeof_char != 1; then
71  AC_MSG_ERROR(sizeof(char)!=1)
72fi
73if test $ac_cv_sizeof_short = 2; then
74  ac_cv_pts_int16_t=short
75elif test $ac_cv_sizeof_int = 2; then
76  ac_cv_pts_int16_t=int
77else
78  AC_MSG_ERROR(cannot find inttype: sizeof(inttype)==2)
79fi
80AC_DEFINE_UNQUOTED(PTS_INT16_T, $ac_cv_pts_int16_t)
81if test $ac_cv_sizeof_int = 4; then
82  ac_cv_pts_int32_t=int
83elif test $ac_cv_sizeof_long = 4; then
84  ac_cv_pts_int32_t=long
85elif test $ac_cv_sizeof_long -lt 4; then
86  AC_MSG_ERROR(sizeof(long)<4)
87else
88  AC_MSG_ERROR(cannot find inttype: sizeof(inttype)==4)
89fi
90AC_DEFINE_UNQUOTED(PTS_INT32_T, $ac_cv_pts_int32_t)
91if test $ac_cv_sizeof_long = 8; then
92  ac_cv_pts_int64_t=long
93elif test $ac_cv_sizeof_long_long = 8; then
94  ac_cv_pts_int64_t="long long"
95elif test $ac_cv_sizeof_very_long = 8; then
96  ac_cv_pts_int64_t="very long"
97elif test $ac_cv_sizeof___int64 = 8; then
98  ac_cv_pts_int64_t="__int64"
99else
100  dnl AC_DEFINE(PTS_INT64_T, 0) -- skip AC_DEFINE(); #undef is OK in aclocal.h
101  dnl Imp: put a real #undef into config.h (configure comments it out :-< )
102  ac_cv_pts_int64_t=0
103  AC_MSG_WARN(cannot find inttype: sizeof(inttype)==8)
104fi
105AC_DEFINE_UNQUOTED(PTS_INT64_T, $ac_cv_pts_int64_t)
106if test $ac_cv_sizeof_long = 16; then
107  ac_cv_pts_int128_t=long
108elif test $ac_cv_sizeof_long_long = 16; then
109  ac_cv_pts_int128_t="long long"
110elif test $ac_cv_sizeof_very_long = 16; then
111  ac_cv_pts_int128_t="very long"
112else
113  dnl AC_DEFINE(PTS_INT128_T, 0) -- skip AC_DEFINE(); #undef is OK in aclocal.h
114  dnl Imp: put a real #undef into config.h (configure comments it out :-< )
115  ac_cv_pts_int128_t=0
116  AC_MSG_WARN(cannot find inttype: sizeof(inttype)==16)
117fi
118AC_DEFINE_UNQUOTED(PTS_INT128_T, $ac_cv_pts_int128_t)
119])
120
121dnl ripped from autoconf-2.13 (ruined by autoconf-2.50)
122dnl by pts@fazekas.hu at Wed Dec 11 12:33:53 CET 2002
123dnl AC_PTS_CHECK_SIZEOF(TYPE [, CROSS-SIZE])
124AC_DEFUN(AC_PTS_CHECK_SIZEOF,
125[changequote(<<, >>)dnl
126dnl The name to #define.
127define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl
128dnl The cache variable name.
129define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
130changequote([, ])dnl
131AC_MSG_CHECKING(size of $1)
132AC_CACHE_VAL(AC_CV_NAME,
133[AC_TRY_RUN([#include <stdio.h>
134#include <sys/types.h>
135int main() {
136  FILE *f=fopen("conftestval", "w");
137  if (!f) return 1;
138  fprintf(f, "%d\n", sizeof($1));
139  return 0;
140}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$2], , , AC_CV_NAME=$2))])dnl
141AC_MSG_RESULT($AC_CV_NAME)
142AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
143undefine([AC_TYPE_NAME])dnl
144undefine([AC_CV_NAME])dnl
145])
146
147
148
149AC_DEFUN([AC_PTS_CHECK_POINTERS],[
150AC_REQUIRE([AC_PTS_CHECK_INTEGRALS])
151AC_PTS_CHECK_SIZEOF(char *, -1)
152AC_PTS_CHECK_SIZEOF(void *, -1)
153dnl no need for checking for -1, AC_PTS_CHECK_INTEGRALS already did it
154AC_MSG_CHECKING(for an integral type to hold a ptr)
155AC_CACHE_VAL(ac_cv_pts_intp_t, [
156if test $ac_cv_sizeof_char_p != $ac_cv_sizeof_void_p; then
157  AC_MSG_ERROR($ac_cv_sizeof_char_p==sizeof(char*)!=sizeof(void*))
158fi
159if test $ac_cv_sizeof_char_p -le 2; then
160  ac_cv_pts_intp_t=$ac_cv_pts_int16_t
161elif test $ac_cv_sizeof_char_p -le 4; then
162  ac_cv_pts_intp_t=$ac_cv_pts_int32_t
163elif test $ac_cv_sizeof_char_p -le 8; then
164  ac_cv_pts_intp_t=$ac_cv_pts_int64_t
165elif test $ac_cv_sizeof_char_p -le 16; then
166  ac_cv_pts_intp_t=$ac_cv_pts_int128_t
167else
168  # :; fi; if true; then
169  AC_MSG_RESULT(not found!)
170  AC_MSG_ERROR(no integral type for sizeof(char*)==$ac_cv_sizeof_char_p)
171fi
172])dnl AC_CACHE_VAL
173AC_DEFINE_UNQUOTED(PTS_INTP_T, $ac_cv_pts_intp_t)
174AC_MSG_RESULT($ac_cv_pts_intp_t)
175AC_MSG_CHECKING(for ptr <-> integral conversion)
176AC_CACHE_VAL(ac_cv_pts_intp_ok, [
177  AC_TRY_RUN([
178/* #include "confdefs.h" -- automatic */
179int main
180#ifdef __STDC__
181(int argc, char **argv)
182#else
183(argc, argv) int argc; char **argv;
184#endif
185/* #ifndef __cplusplus; #define const; #endif -- automatic config.h */
186   {char const*p="The quick brown fox."+5;
187    PTS_INTP_T i;
188    while (*p!='r') p++; /* prevent compiler optimisations */
189    i=(PTS_INTP_T)p;
190    while (*p!='w') p++; /* prevent compiler optimisations */
191    return p!=(char*)(i+2); }
192  ], ac_cv_pts_intp_ok=yes, ac_cv_pts_intp_ok=no,
193  [AC_MSG_ERROR(cross compiling not supported by .._PTS_CHECK_POINTERS)]
194)])dnl AC_CACHE_VAL
195if test x"$ac_cv_pts_intp_ok" = xyes; then
196  AC_DEFINE(PTS_INTP_OK)
197fi
198AC_MSG_RESULT($ac_cv_pts_intp_ok)
199])
200
201dnl Ballast code elmiminated at Sat Apr  6 11:47:08 CEST 2002
202dnl  [AC_MSG_RESULT(not found); AC_MSG_ERROR(This is fatal.)],
203dnl  [AC_MSG_ERROR(cross compiling not supported by .._PTS_CHECK_INTEGRAL_TYPE)]
204dnl)
205dnlAC_MSG_RESULT($ac_cv_integral_type_$1)
206dnl])
207
208AC_DEFUN([AC_PTS_CHECK_INTEGRAL_TYPEX],[
209dnl @param $1: name of type
210dnl @param $2: substitution type
211dnl @param $3: stored name for the variable
212dnl errs out if specified type doesn't exist
213dnl please invoke AC_CHECK_HEADERS(unistd.h) 1st
214dnl Imp: make it work even if specified type doesn't exist
215dnl AC_TYPE_SIZE_T
216AC_REQUIRE([AC_HEADER_STDC])
217AC_MSG_CHECKING(for integral type $3)
218AC_CACHE_VAL(ac_cv_integral_type_$3, [
219AC_TRY_RUN([
220#include <stdio.h>
221/* #include "confdefs.h" -- automatic */
222#include <sys/types.h>
223#if STDC_HEADERS
224#include <stdlib.h>
225#include <stddef.h>
226#endif
227#include <stdio.h>
228#if HAVE_UNISTD_H
229#include <unistd.h>
230#endif
231#if HAVE_SYS_SOCKET_H
232#include <sys/socket.h>
233#endif
234#define MY_TYPE $1
235int main
236#ifdef __STDC__
237(int argc, char **argv)
238#else
239(argc, argv) int argc; char **argv;
240#endif
241{
242  FILE *f=fopen("conftestval", "w");
243  if (!f) return 1;
244  fprintf(f, 0<(MY_TYPE)-1 ? "unsigned " : "signed ");
245       if (sizeof(MY_TYPE)==1) fprintf(f, "char");
246  else if (sizeof(MY_TYPE)==sizeof(char))  fprintf(f, "char");
247  else if (sizeof(MY_TYPE)==sizeof(short))  fprintf(f, "short");
248  else if (sizeof(MY_TYPE)==sizeof(int))  fprintf(f, "int");
249  else if (sizeof(MY_TYPE)==sizeof(long)) fprintf(f, "long");
250  else if (sizeof(MY_TYPE)==sizeof(PTS_INT16_T))  fprintf(f, "PTS_INT16_T");
251  else if (sizeof(MY_TYPE)==sizeof(PTS_INT32_T))  fprintf(f, "PTS_INT32_T");
252  else if (sizeof(MY_TYPE)==sizeof(PTS_INT64_T))  fprintf(f, "PTS_INT64_T");
253  else if (sizeof(MY_TYPE)==sizeof(PTS_INT128_T)) fprintf(f, "PTS_INT128_T");
254  else return 3; /* fprintf(f, "???"); */
255  if (ferror(f)) return 2; /* printf("\n"); */
256  return 0;
257}],
258  [ac_cv_integral_type_$3="`cat conftestval`";
259      ],
260  dnl vvv Imp: make this a macro
261  [if test x"$2" = x; then AC_MSG_RESULT(not found); AC_MSG_ERROR(This is fatal.); fi
262   ac_cv_integral_type_$3="$2"
263   echo -n "substituting "
264   dnl ^^^ Imp: echo -n...
265   dnl AC_MSG_RESULT(substituting $2) # doesn't work because of AC_CACHE_VAL
266  ],
267  [AC_MSG_ERROR(cross compiling not supported by .._PTS_CHECK_INTEGRAL_TYPEX)]
268)
269])dnl AC_CACHE_VAL
270AC_DEFINE_UNQUOTED(PTS_$3, $ac_cv_integral_type_$3)
271AC_MSG_RESULT($ac_cv_integral_type_$3)
272])
273
274AC_DEFUN([AC_PTS_CHECK_INTEGRAL_TYPE],[
275  AC_PTS_CHECK_INTEGRAL_TYPEX($1,$2,$1)
276])
277
278AC_DEFUN([AC_PTS_TYPE_GETGROUPS], [
279  AC_REQUIRE([AC_TYPE_GETGROUPS])
280  dnl echo ,$ac_cv_type_getgroups,
281  AC_PTS_CHECK_INTEGRAL_TYPEX($ac_cv_type_getgroups, [], getgroups_t)
282])
283
284
285dnl ripped from ruby-1.6.2
286AC_DEFUN([AC_PTS_HAVE_PROTOTYPES], [
287  AC_CACHE_CHECK(whether cc supports prototypes, ac_cv_pts_have_prototypes, [
288    AC_TRY_COMPILE(
289      [int foo(int x) { return 0; }], [return foo(10);],
290      ac_cv_pts_have_prototypes=yes,
291      ac_cv_pts_have_prototypes=no
292    )
293  ])
294  if test x"$ac_cv_pts_have_prototypes" = xyes; then
295    AC_DEFINE(HAVE_PROTOTYPES)
296  fi
297])
298
299dnl by pts@fazekas.hu at Wed Dec 11 12:09:14 CET 2002
300AC_DEFUN([AC_PTS_HAVE_STATIC_CONST], [
301  AC_CACHE_CHECK(whether c++ supports static const, ac_cv_pts_have_static_const, [
302    AC_TRY_COMPILE(
303      [#undef const
304class A { public: static const int i=1; };], [return A::i==0;],
305      ac_cv_pts_have_static_const=yes,
306      ac_cv_pts_have_static_const=no
307    )
308  ])
309  if test x"$ac_cv_pts_have_static_const" = xyes; then
310    AC_DEFINE(HAVE_STATIC_CONST)
311  fi
312])
313class A { static const int i=1; };
314
315
316
317dnl by pts@fazekas.hu at Fri Nov  2 13:15:27 CET 2001
318AC_DEFUN([AC_PTS_HAVE_STDC], [
319dnl Check for working standard C (also called as ANSI C)
320dnl implies check for AC_PTS_HAVE_PROTOTYPES, AC_HEADER_STDC
321  AC_REQUIRE([AC_HEADER_STDC])
322  AC_REQUIRE([AC_PTS_HAVE_PROTOTYPES])
323  AC_CACHE_CHECK(whether cc compiles standard C, ac_cv_pts_have_stdc, [
324    AC_EGREP_CPP(nope, [
325#if defined(__STDC__) && __STDC__
326  /* note: the starting spaces are deliberate in the next line */
327  #if 0
328    nope
329  #endif
330#else
331#if defined(__cplusplus) && __cplusplus
332  #if 0
333    nope
334  #endif
335#else
336  nope
337#endif
338#endif
339    ], ac_cv_pts_have_stdc=no, [
340      if test x"$ac_cv_pts_have_prototypes" = xyes; then
341        ac_cv_pts_have_stdc=yes
342      else
343        ac_cv_pts_have_stdc=no
344      fi
345    ])
346  ])
347  if test x"$ac_cv_pts_have_stdc" = xyes; then
348    AC_DEFINE(HAVE_PTS_STDC)
349  fi
350])
351
352dnl by pts@fazekas.hu at Fri Nov  2 13:46:39 CET 2001
353AC_DEFUN([AC_PTS_C_VOLATILE], [
354  AC_CACHE_CHECK(for C keyword volatile, ac_cv_pts_have_volatile, [
355    AC_TRY_COMPILE(
356      [volatile int i;], [i=5; i++; return i-6;],
357      ac_cv_pts_have_volatile=yes,
358      ac_cv_pts_have_volatile=no
359    )
360  ])
361  if test x"$ac_cv_pts_have_volatile" = xno; then
362    AC_DEFINE(volatile, )
363  fi
364])
365
366AC_DEFUN([AC_PTS_CHECK_HEADER], [
367dnl @param $1 file to be #included
368dnl @param $2 function to be tested
369dnl @param $3 cache name, such as `strcpy_in_string'
370dnl @param $4 test code (main() function)
371dnl better than AC_CHECK_HEADERS because it undefines const and volatile
372dnl before including
373  AC_CACHE_CHECK(for working $2 in $1, ac_cv_pts_$3, [
374    AC_TRY_RUN([
375/* #include "confdefs.h" -- automatic */
376#undef const
377#undef volatile
378#undef inline
379#include <$1>
380#include "confdefs.h"
381int main
382#ifdef __STDC__
383(int argc, char **argv)
384#else
385(argc, argv) int argc; char **argv;
386#endif
387{
388  $4
389  return 1;
390}],
391      ac_cv_pts_$3=yes,
392      ac_cv_pts_$3=no,
393      [AC_MSG_ERROR(cross compiling not supported by .._PTS_CHECK_HEADER)]
394    )
395  ])
396  if test x"$ac_cv_pts_$3" = xyes; then
397    AC_DEFINE_UNQUOTED(HAVE_$3)
398  fi
399])
400
401dnl by pts@fazekas.hu at Fri Nov  2 15:05:19 CET 2001
402AC_DEFUN([AC_PTS_CHECK_STRING], [
403dnl defines ac_cv_pts_have_string
404dnl defines ac_cv_pts_have_memcmpy_builtin
405dnl defines ac_cv_pts_string_header
406  AC_PTS_CHECK_HEADER(string.h,  strcpy, strcpy_in_string,   [char s[42]="X"; strcpy(s, "Hello, World!"); return *s!='H';] )
407  ac_cv_pts_have_string=no
408  if test x"$ac_cv_pts_strcpy_in_string" = xyes; then
409    ac_cv_pts_have_string=yes
410    ac_cv_pts_string_header=string
411  else
412    AC_PTS_CHECK_HEADER(strings.h, strcpy, strcpy_in_strings,  [char s[42]="X"; strcpy(s, "Hello, World!"); return *s!='H';] )
413    if test x"$ac_cv_pts_strcpy_in_strings" = xyes; then
414      ac_cv_pts_have_string=yes
415      ac_cv_pts_string_header=strings
416    fi
417  fi
418  if test x"$ac_cv_pts_have_string" = xyes; then
419    AC_DEFINE(HAVE_STRING)
420  fi
421  CC_bak="$CC"
422  CC="${CC:-cc} -Werror"
423  AC_PTS_CHECK_HEADER($ac_cv_pts_string_header.h, memcpy, memcpy_in_stringxs,  [char s[42]="X"; memcpy(s, "Hello, World!", 2); return *s!='H'; ])
424  CC="$CC_bak"
425
426  AC_CACHE_CHECK(whether memcmp and memcpy are built-in, ac_cv_pts_have_memcmpy_builtin, [
427    ac_cv_pts_have_memcmpy_builtin=no
428    if test x"$ac_cv_pts_have_string" = xyes; then
429      dnl They are built-in for gcc 2.7.2.3 -traditional
430      if test x"$ac_cv_pts_memcpy_in_stringxs" = xno; then
431        AC_TRY_RUN([
432int main
433#ifdef __STDC__
434(int argc, char **argv)
435#else
436(argc, argv) int argc; char **argv;
437#endif
438{
439  char s[42]="X"; memcpy(s, "Hello, World!", 2); return memcmp(s, "H", 1)!=0;
440}],
441          [ac_cv_pts_have_memcmpy_builtin=yes],
442          [AC_MSG_ERROR(missing memcmp and memcpy)],
443          [AC_MSG_ERROR(cross compiling not supported by .._PTS_CHECK_STRING)]
444        )
445      fi
446    fi
447  ])
448  if test x"$ac_cv_pts_have_memcmpy_builtin" = xyes; then
449    AC_DEFINE(HAVE_MEMCMPY_BUILTIN)
450  fi
451])
452
453dnl by pts@fazekas.hu at Tue Sep  3 19:27:50 CEST 2002
454dnl g++-3.2: cc1plus: warning: ignoring command line option '-Wnested-externs'
455dnl Usage: AC_PTS_CHECK_IGNORING(nebfcmd,-Wnested-externs -Wbad-function-cast -Wmissing-declarations)
456AC_DEFUN([AC_PTS_CHECK_IGNORING], [
457  XTRA="$2"
458  CC_bak="$CC"   CC="${CC:-cc}  -Werror $2"
459  CXX_bak="$CXX" CXX="${CXX:-c++} -Werror $2"
460  AC_CACHE_CHECK([for ignored $2],ac_cv_pts_ignoring_$1, [
461      AC_TRY_COMPILE([],[],
462          ac_cv_pts_ignoring_$1=no,ac_cv_pts_ignoring_$1=yes)])
463  CC="$CC_bak"
464  CXX="$CXX_bak"
465])
466
467dnl by pts@fazekas.hu at Fri Nov  2 15:05:27 CET 2001
468AC_DEFUN([AC_PTS_CHECK_MALLOC], [
469dnl never fails
470  AC_PTS_CHECK_HEADER(stdlib.h, malloc,   malloc_in_stdlib,  [char *p=(char*)malloc(42); if (p!=0) free((void*)p); return p==0;])
471  if test x"$ac_cv_pts_malloc_in_stdlib" != xyes; then
472    AC_PTS_CHECK_HEADER(malloc.h, malloc,   malloc_in_malloc,  [char *p=malloc(42); if (p!=0) free(p); return p==0;])
473  fi
474])
475
476
477dnl by pts@fazekas.hu at Fri Nov  2 16:51:13 CET 2001
478AC_DEFUN([AC_PTS_HAVE_SWITCH_ENUM_BUG], [
479  AC_CACHE_CHECK(for switch(enum) bug, ac_cv_pts_have_switch_enum_bug, [
480    AC_TRY_RUN([
481enum what { foo, bar };
482int main
483#ifdef __STDC__
484(int argc, char **argv)
485#else
486(argc, argv) int argc; char **argv;
487#endif
488{
489  switch ((enum what)1) {
490    case foo: return 1;
491    case bar: return 0;
492  }
493  return 1;
494}],
495      [ac_cv_pts_have_switch_enum_bug=no],
496      [ac_cv_pts_have_switch_enum_bug=yes],
497      [AC_MSG_ERROR(cross compiling not supported by .._PTS_HAVE_SWITCH_ENUM_BUG)]
498    )
499  ])
500  if test x"$ac_cv_pts_have_switch_enum_bug" = xyes; then
501    AC_DEFINE(HAVE_SWITCH_ENUM_BUG)
502  fi
503])
504
505dnl by pts@fazekas.hu at Mon Mar  4 09:17:43 CET 2002
506AC_DEFUN([AC_PTS_HAVE_ASCII_SYSTEM], [
507  AC_CACHE_CHECK(for ASCII system, ac_cv_pts_have_ascii_system, [
508    AC_EGREP_CPP(ascii_yes,[
509#if 'a'!=97 || '!'!=33
510#error You need an ASCII system to compile this.
511#else
512ascii_yes
513#endif
514],
515      ac_cv_pts_have_ascii_system=yes, ac_cv_pts_have_ascii_system=no
516    )
517  ])
518  if test x"$ac_cv_pts_have_ascii_system" = xyes; then
519    AC_DEFINE(HAVE_ASCII_SYSTEM)
520  fi
521])
522
523AC_DEFUN([AC_PTS_ENSURE_ASCII_SYSTEM], [
524  AC_PTS_HAVE_ASCII_SYSTEM
525  if test x"$ac_cv_pts_have_ascii_system" != xyes; then
526    AC_MSG_ERROR(you need an ASCII system)
527  fi
528])
529
530dnl by pts@fazekas.hu at Fri Nov  2 16:51:13 CET 2001
531AC_DEFUN([AC_PTS_CFG_P_TMPDIR], [
532  AC_CACHE_CHECK(for tmpdir, ac_cv_pts_cfg_p_tmpdir, [
533    AC_TRY_RUN([
534#define __USE_SVID 1
535#define __USE_GNU  1
536#include <stdio.h>
537
538int main
539#ifdef __STDC__
540(int argc, char **argv)
541#else
542(argc, argv) int argc; char **argv;
543#endif
544{
545  FILE *f=fopen("conftestval","w");
546  if (!f) return 1;
547  fputs(P_tmpdir,f);
548  return 0;
549}],
550      [ac_cv_pts_cfg_p_tmpdir=\""`cat conftestval`"\"],
551      [ac_cv_pts_cfg_p_tmpdir=0],
552      [AC_MSG_ERROR(cross compiling not supported by .._PTS_CFG_P_TMPDIR)]
553    )
554  ])
555  AC_DEFINE_UNQUOTED(PTS_CFG_P_TMPDIR, $ac_cv_pts_cfg_p_tmpdir)
556])
557
558dnl by pts@fazekas.hu at Thu Dec 12 20:20:41 CET 2002
559AC_DEFUN([AC_PTS_HAVE_SYSTEMF], [
560  echo no-original >conftestval
561  AC_CACHE_CHECK(for working system(3), ac_cv_pts_systemf, [
562    AC_TRY_RUN([
563#include <stdio.h>
564#include <stdlib.h> /* system() */
565
566int main
567#ifdef __STDC__
568(int argc, char **argv)
569#else
570(argc, argv) int argc; char **argv;
571#endif
572{
573  (void)argc;
574  (void)argv;
575  if (0!=system("echo t >conftestval && echo \"let  it\" be  e >conftestval")) {
576    FILE *f=fopen("conftestval","w");
577    if (f) {
578      fprintf(f,"runtime-error\n");
579      fclose(f);
580    }
581  }
582  return 0;
583}
584],    [ac_cv_pts_systemf="`cat conftestval`"; ac_cv_pts_systemf="${ac_cv_pts_systemf:-invalid}"],
585      [ac_cv_pts_systemf=compile-error],
586      [AC_MSG_ERROR(cross compiling not supported by .._PTS_HAVE_VSNPRINTF)]
587    )
588    # echo "($ac_cv_pts_systemf)"
589    # if test x"$ac_cv_pts_systemf" = x'"let  it" be  e '; then
590    if test x"$ac_cv_pts_systemf" = x't  && echo "let  it" be  e '; then
591      # Win32 COMMAND.COM
592      ac_cv_pts_systemf=win32
593    elif test x"$ac_cv_pts_systemf" = x"let  it be e"; then
594      # UNIX /bin/sh
595      ac_cv_pts_systemf=unix
596    fi
597  ])
598  if test x"$ac_cv_pts_systemf" = xwin32; then
599    ac_cv_pts_have_systemf=yes
600    AC_DEFINE(HAVE_PTS_SYSTEMF)
601    AC_DEFINE(HAVE_PTS_SYSTEMF_WIN32)
602  elif test x"$ac_cv_pts_systemf" = xunix; then
603    ac_cv_pts_have_systemf=yes
604    AC_DEFINE(HAVE_PTS_SYSTEMF)
605    AC_DEFINE(HAVE_PTS_SYSTEMF_UNIX)
606  elif test x"$ac_cv_pts_systemf" = x"invalid"; then
607    ac_cv_pts_have_systemf=no
608  elif test x"$ac_cv_pts_systemf" = x"compile-error"; then
609    ac_cv_pts_have_systemf=no
610  elif test x"$ac_cv_pts_systemf" = x"runtime-error"; then
611    ac_cv_pts_have_systemf=no
612  elif test x"$ac_cv_pts_systemf" = x"no-original"; then
613    ac_cv_pts_have_systemf=no
614  else
615    ac_cv_pts_have_systemf=yes
616    # ac_cv_pts_systemf=other
617    AC_DEFINE(HAVE_PTS_SYSTEMF)
618    AC_DEFINE(HAVE_PTS_SYSTEMF_OTHER)
619  fi
620])
621
622dnl by pts@fazekas.hu at Fri Mar 22 16:40:22 CET 2002
623AC_DEFUN([AC_PTS_HAVE_POPEN_B], [
624  AC_CACHE_CHECK(for binary popen_b, ac_cv_pts_have_popen_b, [
625    AC_TRY_RUN([
626#define _XOPEN_SOURCE 1 /* popen() on Digital UNIX */
627#define _POSIX_SOURCE 1 /* popen() */
628#define _POSIX_C_SOURCE 2 /* popen() */
629#include <stdio.h>
630
631int main
632#ifdef __STDC__
633(int argc, char **argv)
634#else
635(argc, argv) int argc; char **argv;
636#endif
637{ FILE *p=popen("echo Ko   rt5","rb");
638  int i;
639  (void)argc; (void)argv;
640  if (p==0) return 1;
641  if (getc(p)!='K' || getc(p)!='o' || getc(p)!=' ') return 2;
642  if (getc(p)!='r' || getc(p)!='t') return 3;
643  if (getc(p)!='f'-'a'+'0') return 4;
644  if (getc(p)!='\n') return 5;
645  if (getc(p)!=-1) return 6;
646  if (0!=pclose(p)) return 7;
647
648  p=popen("cat >conftestval","wb");
649  if (p==0) return 31;
650  for (i=0;i<666;i++) putc(i,p);
651  if (ferror(p)) return 32;
652  if (0!=pclose(p)) return 33;
653  p=fopen("conftestval","rb");
654  if (p==0) return 34;
655  for (i=0;i<666;i++) if (getc(p)!=(i&255)) return 35;
656  if (fclose(p)!=0) return 36;
657
658  return 0;
659}
660],    [ac_cv_pts_have_popen_b=yes],
661      [ac_cv_pts_have_popen_b=no],
662      [AC_MSG_ERROR(cross compiling not supported by .._PTS_HAVE_POPEN_B)]
663    )
664  ])
665dnl  AC_DEFINE_UNQUOTED(HAVE_PTS_POPEN_B, $ac_cv_pts_have_popen_b)
666  if test x"$ac_cv_pts_have_popen_b" = xyes; then
667    AC_DEFINE(HAVE_PTS_POPEN_B)
668  fi
669])
670
671dnl by pts@fazekas.hu at Fri Mar 22 16:40:22 CET 2002
672AC_DEFUN([AC_PTS_HAVE_POPEN_], [
673  AC_CACHE_CHECK(for binary popen_, ac_cv_pts_have_popen_, [
674    AC_TRY_RUN([
675#define _XOPEN_SOURCE 1 /* popen() on Digital UNIX */
676#define _POSIX_SOURCE 1 /* popen() */
677#define _POSIX_C_SOURCE 2 /* popen() */
678#include <stdio.h>
679
680int main
681#ifdef __STDC__
682(int argc, char **argv)
683#else
684(argc, argv) int argc; char **argv;
685#endif
686{ FILE *p=popen("echo Ko   rt5","r");
687  int i;
688  (void)argc; (void)argv;
689  if (p==0) return 1;
690  if (getc(p)!='K' || getc(p)!='o' || getc(p)!=' ') return 2;
691  if (getc(p)!='r' || getc(p)!='t') return 3;
692  if (getc(p)!='f'-'a'+'0') return 4;
693  if (getc(p)!='\n') return 5;
694  if (getc(p)!=-1) return 6;
695  if (0!=pclose(p)) return 7;
696
697  p=popen("cat >conftestval","w");
698  if (p==0) return 31;
699  for (i=0;i<666;i++) putc(i,p);
700  if (ferror(p)) return 32;
701  if (0!=pclose(p)) return 33;
702  p=fopen("conftestval","rb");
703  if (p==0) return 34;
704  for (i=0;i<666;i++) if (getc(p)!=(i&255)) return 35;
705  if (fclose(p)!=0) return 36;
706
707  return 0;
708}
709],    [ac_cv_pts_have_popen_=yes],
710      [ac_cv_pts_have_popen_=no],
711      [AC_MSG_ERROR(cross compiling not supported by .._PTS_HAVE_POPEN_)]
712    )
713  ])
714dnl  AC_DEFINE_UNQUOTED(HAVE_PTS_POPEN_, $ac_cv_pts_have_popen_)
715  if test x"$ac_cv_pts_have_popen_" = xyes; then
716    AC_DEFINE(HAVE_PTS_POPEN_)
717  fi
718])
719
720dnl by pts@fazekas.hu at Fri Mar 22 19:36:26 CET 2002
721dnl huge BUGFIX at Tue Jun 11 13:38:30 CEST 2002
722dnl on kempelen: ac_cv_pts_vsnprintf=bad
723AC_DEFUN([AC_PTS_HAVE_VSNPRINTF], [
724  AC_CACHE_CHECK(for working vsnprintf, ac_cv_pts_vsnprintf, [
725    AC_TRY_RUN([
726#if 0 /* autoconf-2.54 */
727  extern "C" void std::exit (int) throw (); using std::exit;
728  extern "C" void std::exit (int); using std::exit;
729  extern "C" void exit (int) throw ();
730  extern "C" void exit (int);
731  void exit (int);
732#endif
733#ifdef __cplusplus
734extern "C" void exit(int);
735#endif
736#define _BSD_SOURCE 1 /* vsnprintf */
737#define _POSIX_SOURCE 1
738#define _POSIX_C_SOURCE 2
739#include <stdio.h>
740#include <stdarg.h>
741#include <string.h>
742
743static int myprintf(int max, char *dstr, char *fmt, ...) {
744  int i;
745  va_list ap;
746  #if defined(__STDC__)
747    va_start(ap, fmt);
748  #else
749    va_start(ap);
750  #endif
751  i=vsnprintf(dstr, max, fmt, ap);
752  va_end(ap);
753  return i;
754}
755
756int c99t[]={13,9,10,10,10}, oldt[]={-1,9,-1,0,-1}, sun99t[]={13,9,10,-1,10};
757/* wincrtt[]={-1,9,10,-1,-1}, but it modifies the string in a completely
758 * bogus way (passes 1 test of 5)
759 */
760
761int main
762#ifdef __STDC__
763(int argc, char **argv)
764#else
765(argc, argv) int argc; char **argv;
766#endif
767{ char buf[40];
768  int i;
769  int g[5], gg;
770  int *t=oldt;
771  FILE *f=fopen("conftestval","w");
772  (void)argc;
773  (void)argv;
774
775  if (f) {
776    for (i=0;i<(int)sizeof(buf)-1;i++) buf[i]='X';   buf[i]='\0';
777    i=myprintf(10, buf, "%s-%ld", "Alma", -1234567L);
778    if (i==c99t[0]) t=c99t; /* oldt[0]!=c99t[0] */
779    g[0]=(i==t[0] && 0==memcmp(buf, "Alma--123\0X", 11));
780    /* printf("(%s) %d %d\n", buf, i, g[0]); */
781
782    for (i=0;i<(int)sizeof(buf)-1;i++) buf[i]='Y';   buf[i]='\0';
783    i=myprintf(10, buf, "%s-%ld", "Alma", -123L);
784    g[1]=(i==t[1] && 0==memcmp(buf, "Alma--123\0Y", 11));
785    /* printf("(%s) %d %d\n", buf, i, g[1]); */
786
787    for (i=0;i<(int)sizeof(buf)-1;i++) buf[i]='Z';   buf[i]='\0';
788    i=myprintf(10, buf, "%s-%ld", "Alma", -1234L);
789    g[2]=(i==t[2] && 0==memcmp(buf, "Alma--123\0Z", 11));
790    /* printf("(%s) %d %d\n", buf, i, g[2]); */
791
792    buf[0]='#';
793    i=myprintf(0, buf, "%s-%ld", "Alma", -1234L);
794    if (t==c99t && i==sun99t[3]) t=sun99t;
795    g[3]=(i==t[3] && buf[0]=='#');
796    /* printf("(%s) %d %d\n", buf, i, g[3]); */
797
798    buf[0]=buf[1]='$';
799    i=myprintf(1, buf, "%s-%ld", "Alma", -1234L);
800    g[4]=(i==t[4] && buf[0]=='\0' && buf[1]=='$');
801    /* printf("(%s) %d %d\n", buf, i, g[4]); */
802
803    gg=g[0] && g[1] && g[2] && g[3] && g[4];
804    fputs(!gg ? "bad\n" : t==oldt ? "old\n" : t==sun99t ? "sun99\n" : "c99\n", f);
805    fclose(f);
806  }
807  return 0;
808}
809],    [ac_cv_pts_vsnprintf="`cat conftestval`"; ac_cv_pts_vsnprintf="${ac_cv_pts_vsnprintf:-invalid}"],
810      [ac_cv_pts_vsnprintf=no],
811      [AC_MSG_ERROR(cross compiling not supported by .._PTS_HAVE_VSNPRINTF)]
812    )
813  ])
814  if test x"$ac_cv_pts_vsnprintf" = xold; then
815    ac_cv_pts_have_vsnprintf=yes
816    AC_DEFINE(HAVE_PTS_VSNPRINTF)
817    AC_DEFINE(HAVE_PTS_VSNPRINTF_OLD)
818  elif test x"$ac_cv_pts_have_vsnprintf" = xc99; then
819    ac_cv_pts_have_vsnprintf=yes
820    AC_DEFINE(HAVE_PTS_VSNPRINTF)
821    AC_DEFINE(HAVE_PTS_VSNPRINTF_C99)
822  else
823    ac_cv_pts_have_vsnprintf=no
824    ac_cv_pts_vsnprintf=no
825  fi
826])
827
828dnl by pts@fazekas.hu at Sun Mar 31 17:26:01 CEST 2002
829AC_DEFUN([AC_PTS_HAVE_ERRNO_DECL], [
830  AC_CACHE_CHECK([for errno in errno.h],ac_cv_pts_errno_decl, [
831      AC_TRY_COMPILE([#include <errno.h>],[int i = errno],
832          ac_cv_pts_errno_decl=yes,ac_cv_pts_have_errno_decl=no)])
833  if test x"$ac_cv_pts_errno_decl" = x"yes"; then
834     AC_DEFINE(HAVE_ERRNO_DECL, 1, [ ])
835  fi
836])
837
838dnl by pts@fazekas.hu at Sun Mar 31 22:19:16 CEST 2002
839dnl modeled after Autoconf internal AC_EGREP_CPP
840dnl AC_PTS_SED_EGREP_CPP(SED-PATTERN, EGREP-PATTERN, PROGRAM, [ACTION-IF-FOUND [,
841dnl              ACTION-IF-NOT-FOUND]])
842AC_DEFUN(AC_PTS_SED_EGREP_CPP,
843[AC_REQUIRE_CPP()dnl
844cat > conftest.$ac_ext <<EOF
845[#]line __oline__ "configure"
846#include "confdefs.h"
847[$3]
848EOF
849dnl eval is necessary to expand ac_cpp.
850dnl Ultrix and Pyramid sh refuse to redirect output of eval, so use subshell.
851if (eval "$ac_cpp conftest.$ac_ext") 2>&AC_FD_CC |
852dnl Prevent m4 from eating regexp character classes:
853changequote(, )dnl
854  sed -n '$1' | egrep '$2' >/dev/null 2>&1; then
855changequote([, ])dnl
856  ifelse([$4], , :, [rm -rf conftest*
857  $4])
858ifelse([$5], , , [else
859  rm -rf conftest*
860  $5
861])dnl
862fi
863rm -f conftest*
864])
865
866dnl by pts@fazekas.hu at Sun Mar 31 22:23:48 CEST 2002
867dnl Digital UNIX OSF/1 has it in _some_ cases.
868AC_DEFUN([AC_PTS_HAVE_GETSOCKNAME_SIZE_T], [
869  AC_CACHE_CHECK(whether getsockname accepts size_t, ac_cv_pts_have_getsockname_size_t, [
870    AC_PTS_SED_EGREP_CPP([/getsockname/,/)/p], [size_t],
871      [#include <sys/socket.h>],
872      [ac_cv_pts_have_getsockname_size_t=yes],
873      [ac_cv_pts_have_getsockname_size_t=no]
874    )
875  ])
876  if test x"$ac_cv_pts_have_getsockname_size_t" = xyes; then
877    AC_DEFINE(HAVE_PTS_GETSOCKNAME_SIZE_T)
878  fi
879])
880
881dnl by pts@fazekas.hu at Sun Mar 31 22:23:48 CEST 2002
882dnl Digital UNIX OSF/1 has it.
883AC_DEFUN([AC_PTS_HAVE_GETSOCKNAME_SOCKLEN_T], [
884  AC_CACHE_CHECK(whether getsockname accepts socklen_t, ac_cv_pts_have_getsockname_socklen_t, [
885    AC_PTS_SED_EGREP_CPP([/getsockname/,/)/p], [socklen_t],
886      [#include <sys/socket.h>],
887      [ac_cv_pts_have_getsockname_socklen_t=yes],
888      [ac_cv_pts_have_getsockname_socklen_t=no]
889    )
890  ])
891  if test x"$ac_cv_pts_have_getsockname_socklen_t" = xyes; then
892    AC_DEFINE(HAVE_PTS_GETSOCKNAME_SOCKLEN_T)
893  fi
894])
895
896dnl by pts@fazekas.hu at Sun Mar 31 23:50:05 CEST 2002
897dnl Digital UNIX OSF/1 has it.
898AC_DEFUN([AC_PTS_ENABLE_DEBUG], [
899  AC_MSG_CHECKING([for --enable-debug])
900  AC_SUBST(ENABLE_DEBUG)
901  AC_ARG_ENABLE(debug,
902    [  --enable-debug[=val]    val: no, assert(default), yes, checker],
903    [], [])
904  ENABLE_DEBUG="$enable_debug"
905  if test x"$enable_debug" = xno; then
906    AC_MSG_RESULT(no)
907  elif test x"$enable_debug" = x || test x"$enable_debug" = xassert; then
908    AC_MSG_RESULT(assert)
909    ENABLE_DEBUG=assert
910  elif test x"$enable_debug" = xyes; then
911    AC_MSG_RESULT(yes)
912  elif test x"$enable_debug" = xchecker; then
913    AC_MSG_RESULT(checker)
914  else
915    AC_MSG_RESULT("?? $enable_debug")
916    AC_MSG_ERROR(Invalid --enable--debug option specified.)
917  fi
918])
919
920dnl by pts@fazekas.hu at Thu Apr  4 13:25:20 CEST 2002
921dnl Keeps conftest*
922AC_DEFUN(AC_PTS_TRY_COMPILE_NORM,
923[cat > conftest.$ac_ext <<EOF
924dnl vvv Dat: breaks newer autoconfs :-(
925dnl ifelse(AC_LANG, [FORTRAN77],
926ifelse(not_AC_LANG, [FORTRAN77],
927[      program main
928[$2]
929      end],
930[dnl This sometimes fails to find confdefs.h, for some reason.
931dnl [#]line __oline__ "[$]0"
932[#]line __oline__ "configure"
933#include "confdefs.h"
934[$1]
935int main() {
936[$2]
937; return 0; }
938])EOF
939if AC_TRY_EVAL(ac_compile); then
940  ifelse([$3], , :, [
941  $3])
942else
943  echo "configure: failed program was:" >&AC_FD_CC
944  cat conftest.$ac_ext >&AC_FD_CC
945ifelse([$4], , , [
946  $4
947])dnl
948fi
949rm -f conftest*])
950
951dnl by pts@fazekas.hu at Thu Apr  4 13:00:08 CEST 2002
952dnl Checks whether `gcc' can link C++ programs (and thus libstdc++ is
953dnl avoided).
954AC_DEFUN([AC_PTS_GCC_LINKS_CXX], [
955  AC_REQUIRE([AC_LANG_CPLUSPLUS])
956  AC_REQUIRE([AC_PROG_CXX])
957  AC_CACHE_CHECK(whether gcc can link C++ code, ac_cv_pts_gcc_links_cxx, [
958    CXX_saved="$CXX"
959    LIBS_saved="$LIBS"
960    CXX_new="$CXX"
961    ac_ext_saved="$ac_ext"
962    AC_PTS_TRY_COMPILE_NORM([
963      #include <stdio.h>
964      struct B            { virtual int f()=0; int x() { return f(); } };
965      struct C1: public B { virtual int f() {return 1;}};
966      struct C2: public B { virtual int f() {return 2;}};
967      C1 global; /* global.x() will cause segfault in i386-uclibc-gcc */
968    ],[
969      /* vvv (B*) cast added for gcc-3.1 */
970      B *p=(ferror(stderr))?(B*)new C1():(B*)new C2(); /* Imp: argc... */
971      /* if (p==0) throw long(42); */ /* doesn't work with -fno-rtti */
972      int ok2=p->x()==2;
973      delete p;
974      return !(ok2 && global.x()==1);
975    ],[
976      case x"$CC" in
977        xgcc-*) CXX="$CC" ;; # gcc-3.2
978        x*-gcc-*) CXX="$CC" ;; #
979        x*-gcc) CXX="$CC" ;; # i386-uclibc-gcc
980        *) CXX=gcc ;;
981      esac
982      CXX_new="$CXX"
983      ac_ext="$ac_objext"
984      if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} && ./conftest${ac_exeext}
985      then ac_cv_pts_gcc_links_cxx=yes
986      else
987        LIBS="$LIBS_saved c_lgcc.cpp"
988        if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} && ./conftest${ac_exeext}
989        then ac_cv_pts_gcc_links_cxx=yes-with-help
990        else
991          LIBS="$LIBS_saved c_lgcc3.cpp"
992          if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} && ./conftest${ac_exeext}
993          then ac_cv_pts_gcc_links_cxx=yes-with-help3
994          else ac_cv_pts_gcc_links_cxx=no; CXX_new="$CXX_saved"; fi
995        fi
996      fi
997    ],[ac_cv_pts_gcc_links_cxx=compilation-failed])
998    CXX="$CXX_saved"
999    LIBS="$LIBS_saved"
1000    ac_ext="$ac_ext_saved"
1001  ])
1002  AC_SUBST(LDXX)
1003  case x"$ac_cv_pts_gcc_links_cxx" in
1004    xyes-with-help) LDXX="$CXX_new"; AC_DEFINE(HAVE_PTS_C_LGCC_CPP_REQUIRED) ;;
1005    xyes-with-help3) LDXX="$CXX_new"; AC_DEFINE(HAVE_PTS_C_LGCC3_CPP_REQUIRED) ;;
1006    xyes) LDXX="$CXX_new" ;;
1007    xno)  LDXX="$CXX_new" ;;
1008    *)    AC_MSG_ERROR([Compilation failed, aborting.]) ;;
1009  esac
1010])
1011
1012dnl by pts@fazekas.hu at Sat Apr  6 10:56:48 CEST 2002
1013dnl based on AC_PROG_CXX_G from acspecific.m4 of autoconf
1014dnl Appends the specified flags to CXXFLAGS, so it will affect subsequent AC_*
1015dnl tests.
1016dnl Example: AC_PTS_PROG_CXXFLAGS(nrne, -fno-rtti -fno-exceptions)
1017AC_DEFUN(AC_PTS_PROG_CXXFLAGS,
1018[AC_REQUIRE([AC_PROG_CXX])
1019AC_CACHE_CHECK(whether ${CXX-g++} accepts $2, ac_cv_prog_cxx_$1,
1020[echo 'void f(void);void f(void){}' > conftest.cc
1021if test -z "`${CXX-g++} $2 -c conftest.cc 2>&1`"
1022then ac_cv_prog_cxx_$1=yes;
1023else ac_cv_prog_cxx_$1=no; fi
1024rm -f conftest*
1025])
1026if test $ac_cv_prog_cxx_$1 = yes; then CXXFLAGS="$CXXFLAGS $2"; fi
1027])
1028
1029dnl by pts@fazekas.hu at Sat Apr  6 10:56:48 CEST 2002
1030dnl based on AC_PROG_CXX_G from acspecific.m4 of autoconf
1031dnl Appends the specified flags to CXXFLAGSB, so it won't affect subsequent
1032dnl AC_* tests.
1033dnl Example: AC_PTS_PROG_CXXFLAGSB(apwaw, -ansi -pedantic -Wall -W)
1034AC_DEFUN(AC_PTS_PROG_CXXFLAGSB,
1035[AC_REQUIRE([AC_PROG_CXX])
1036AC_SUBST(CXXFLAGSB)
1037AC_CACHE_CHECK(whether ${CXX-g++} accepts $2, ac_cv_prog_cxx_$1,
1038[echo 'void f(void);void f(void){}' > conftest.cc
1039if test -z "`${CXX-g++} $2 -c conftest.cc 2>&1`"
1040then ac_cv_prog_cxx_$1=yes;
1041else ac_cv_prog_cxx_$1=no; fi
1042rm -f conftest*
1043])
1044if test $ac_cv_prog_cxx_$1 = yes; then CXXFLAGSB="$CXXFLAGSB $2"; fi
1045])
1046
1047dnl by pts@fazekas.hu at Sat Apr  6 10:56:48 CEST 2002
1048dnl based on AC_PROG_CXX_G from acspecific.m4 of autoconf
1049dnl Appends the specified flags to CFLAGS, so it will affect subsequent AC_*
1050dnl tests.
1051dnl Example: AC_PTS_PROG_CFLAGS(nrne, -fno-rtti -fno-exceptions)
1052AC_DEFUN(AC_PTS_PROG_CFLAGS,
1053[AC_REQUIRE([AC_PROG_CC])
1054AC_CACHE_CHECK(whether ${CC-gcc} accepts $2, ac_cv_prog_cc_$1,
1055[echo 'void f(void);void f(void){}' > conftest.c
1056if test -z "`${CC-gcc} $2 -c conftest.c 2>&1`"
1057then ac_cv_prog_cc_$1=yes;
1058else ac_cv_prog_cc_$1=no; fi
1059rm -f conftest*
1060])
1061if test $ac_cv_prog_cc_$1 = yes; then CFLAGS="$CFLAGS $2"; fi
1062])
1063
1064dnl by pts@fazekas.hu at Sat Apr  6 10:56:48 CEST 2002
1065dnl based on AC_PROG_CXX_G from acspecific.m4 of autoconf
1066dnl Appends the specified flags to CFLAGSB, so it won't affect subsequent
1067dnl AC_* tests.
1068dnl Example: AC_PTS_PROG_CFLAGSB(apwaw, -ansi -pedantic -Wall -W)
1069AC_DEFUN(AC_PTS_PROG_CFLAGSB,
1070[AC_REQUIRE([AC_PROG_CC])
1071AC_SUBST(CFLAGSB)
1072AC_CACHE_CHECK(whether ${CC-gcc} accepts $2, ac_cv_prog_cc_$1,
1073[echo 'void f(void);void f(void){}' > conftest.c
1074if test -z "`${CC-gcc} $2 -c conftest.c 2>&1`"
1075then ac_cv_prog_cc_$1=yes;
1076else ac_cv_prog_cc_$1=no; fi
1077rm -f conftest*
1078])
1079if test $ac_cv_prog_cc_$1 = yes; then CFLAGSB="$CFLAGSB $2"; fi
1080])
1081
1082dnl by pts@fazekas.hu at Sat Apr  6 11:49:59 CEST 2002
1083dnl Similar to AC_C_CHAR_UNSIGNED, but without the
1084dnl `warning: AC_TRY_RUN called without default to allow cross compiling'.
1085AC_DEFUN(AC_PTS_C_CHAR_UNSIGNED,
1086[AC_CACHE_CHECK(whether char is unsigned, ac_cv_c_char_unsigned,
1087[if test "$GCC" = yes; then
1088  # GCC predefines this symbol on systems where it applies.
1089AC_EGREP_CPP(yes,
1090[#ifdef __CHAR_UNSIGNED__
1091  yes
1092#endif
1093], ac_cv_c_char_unsigned=yes, ac_cv_c_char_unsigned=no)
1094else
1095AC_TRY_RUN(
1096[/* volatile prevents gcc2 from optimizing the test away on sparcs.  */
1097#if !defined(__STDC__) || __STDC__ != 1
1098#define volatile
1099#endif
1100int main() {
1101  volatile char c = 255; return(c < 0);
1102}], ac_cv_c_char_unsigned=yes, ac_cv_c_char_unsigned=no,
1103  [AC_MSG_ERROR(cross compiling not supported by .._PTS_C_CHAR_UNSIGNED)])
1104fi])
1105if test $ac_cv_c_char_unsigned = yes && test "$GCC" != yes; then
1106  AC_DEFINE(__CHAR_UNSIGNED__)
1107fi
1108])
1109
1110dnl by pts@fazekas.hu at Sun Apr 14 22:08:04 CEST 2002
1111
1112dnl Ripped from autoconf's acgeneral.m4. Tests with `test -x'.
1113dnl AC_PTS_PATH_XPROG(VARIABLE, PROG-TO-CHECK-FOR [, VALUE-IF-NOT-FOUND [, PATH]])
1114AC_DEFUN(AC_PTS_PATH_XPROG,
1115[# Extract the first word of "$2", so it can be a program name with args.
1116set dummy $2; ac_word=[$]2
1117AC_MSG_CHECKING([for $ac_word])
1118AC_CACHE_VAL(ac_cv_path_$1,
1119[case "[$]$1" in
1120  /*)
1121  ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
1122  ;;
1123  ?:/*)
1124  ac_cv_path_$1="[$]$1" # Let the user override the test with a dos path.
1125  ;;
1126  *)
1127  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
1128dnl $ac_dummy forces splitting on constant user-supplied paths.
1129dnl POSIX.2 word splitting is done only on the output of word expansions,
1130dnl not every word.  This closes a longstanding sh security hole.
1131  ac_dummy="ifelse([$4], , $PATH, [$4])"
1132  for ac_dir in $ac_dummy; do
1133    test -z "$ac_dir" && ac_dir=.
1134    if test -x $ac_dir/$ac_word; then
1135      ac_cv_path_$1="$ac_dir/$ac_word"
1136      break
1137    fi
1138  done
1139  IFS="$ac_save_ifs"
1140dnl If no 3rd arg is given, leave the cache variable unset,
1141dnl so AC_PATH_PROGS will keep looking.
1142ifelse([$3], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$3"
1143])dnl
1144  ;;
1145esac])dnl
1146$1="$ac_cv_path_$1"
1147if test -n "[$]$1"; then
1148  AC_MSG_RESULT([$]$1)
1149else
1150  AC_MSG_RESULT(no)
1151fi
1152AC_SUBST($1)dnl
1153])
1154
1155dnl by pts@fazekas.hu at Sun Apr 14 21:50:13 CEST 2002
1156
1157dnl Usage: AC_PTS_WARN_PROG(zip, [zip might become useful for /Compression/ZIP])
1158AC_DEFUN(AC_PTS_WARN_PROG,
1159[AC_PTS_PATH_XPROG(pts_$1, $1)
1160if test x"$ac_cv_path_pts_$1" = x; then
1161  AC_MSG_WARN($1 would provide increased functionality to this program:)
1162  AC_MSG_WARN($2)
1163fi
1164])
1165dnl Usage: AC_PTS_ERR_PROG(make, [make is required for compiling this program])
1166AC_DEFUN(AC_PTS_ERR_PROG,
1167[AC_PTS_PATH_XPROG(pts_$1, $1)
1168if test x"$ac_cv_path_pts_$1" = x; then
1169  AC_MSG_WARN($1 is required:)
1170  AC_MSG_ERROR($2)
1171fi
1172])
1173
1174dnl by pts@fazekas.hu at Sat Jun  1 15:00:44 CEST 2002
1175dnl ac_n=... autoconf2.13 -> autoconf2.50
1176dnl Usage: AC_PTS_RUN_OK(CMDLINE, ACTION-OF-EXITCODE-0, ACTION-IF-ERROR)
1177AC_DEFUN(AC_PTS_RUN_OK,
1178[ac_n="${ac_n:-$ECHO_N}"
1179echo $ac_n "running $1""... $ac_c" 1>&AC_FD_MSG
1180echo "configure:__oline__: running $1" >&AC_FD_CC
1181if >&AC_FD_CC 2>&AC_FD_CC $1; then :
1182  AC_MSG_RESULT(ok)
1183  $2
1184else
1185  AC_MSG_RESULT(error)
1186  $3
1187fi
1188])
1189
1190dnl by pts@fazekas.hu at Sat Jun  1 15:13:36 CEST 2002
1191AC_DEFUN(AC_PTS_OK, [echo "configure:__oline__: all OK" >&AC_FD_CC
1192])
1193
1194dnl __EOF__
1195