ac61a22001-12-06Henrik Grubbström (Grubba) AC_REVISION("$Id: configure.in,v 1.560 2001/12/06 10:40:42 grubba Exp $")
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_INIT(interpret.c)
af56471996-12-03Fredrik Hübinette (Hubbe) AC_CONFIG_HEADER(machine.h)
51bd9e1996-10-09Fredrik Hübinette (Hubbe) 
ea24061997-04-01Henrik Grubbström (Grubba) # We want an absolute path to the source-dir. case "$srcdir" in /*) ;; *) oldsrcdir="$srcdir" srcdir="`cd \"$srcdir\";pwd`" AC_MSG_WARN([ Converted $oldsrcdir to $srcdir, If this does not work, please use an absolute path to the configure script. ]) ;; esac
c334a02001-03-27Henrik Grubbström (Grubba) # Attempt to use bash instead of /bin/sh to run configure # since bash is usually several orders of magnitude faster # on machines that have a real /bin/sh. if test "x$CONFIG_SHELL" = "x"; then AC_PATH_PROG(bash_prog, bash, no) if test "x$ac_cv_path_bash_prog" = "xno"; then :; else AC_MSG_WARN([Found bash as $ac_cv_path_bash_prog. Will attempt to restart configure with bash for performance. If this fails, please set CONFIG_SHELL to /bin/sh before starting configure. ]) CONFIG_SHELL="$ac_cv_path_bash_prog" export CONFIG_SHELL echo $CONFIG_SHELL "$srcdir/configure" $ac_configure_args
89b28a2001-05-31Fredrik Hübinette (Hubbe)  eval exec $CONFIG_SHELL "$srcdir/configure" $ac_configure_args exit 17
c334a02001-03-27Henrik Grubbström (Grubba)  fi else :; fi
48ae531996-10-09Fredrik Hübinette (Hubbe) if test "x${CFLAGS-}" = x ; then
51bd9e1996-10-09Fredrik Hübinette (Hubbe)  cflags_is_set=no
48ae531996-10-09Fredrik Hübinette (Hubbe) else cflags_is_set=yes
51bd9e1996-10-09Fredrik Hübinette (Hubbe) fi
c67b691996-11-16Fredrik Hübinette (Hubbe) if test "x${CPPFLAGS-}" = x ; then cppflags_is_set=no else cppflags_is_set=yes fi if test "x${LDFLAGS-}" = x ; then ldflags_is_set=no else ldflags_is_set=yes fi
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(cflags, MY_DESCR([--with-cflags=cflags], [specify extra c compiler flags]), [ CFLAGS="$with_cflags $CFLAGS" ]) AC_ARG_WITH(cppflags, MY_DESCR([--with-cppflags=cppflags], [specify extra c preprocessor flags]), [ CPPFLAGS="$with_cppflags $CPPFLAGS" ]) AC_ARG_WITH(ldflags, MY_DESCR([--with-ldflags=ldflags], [specify extra linker flags]), [ LDFLAGS="$with_ldflags $LDFLAGS" ])
f2e5eb2001-04-25Henrik Grubbström (Grubba) 
7b39411997-02-06Fredrik Hübinette (Hubbe) for ac_site_file in $CONFIG_SITE; do if test -r "$ac_site_file"; then AC_MSG_WARN([You are using a site file to initialize configure, please note that this can lead to problems if anything in $ac_site_file is not correct. If Pike does not compile, or does not run, please try this to compile Pike again: rm ./config.cache ; CONFIG_SITE=x ./configure ; make]) fi done
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_ENABLE(binary, MY_DESCR([--disable-binary], [don't configure for binary build, only do tests for precompilation stuff]), [], [enable_binary=yes])
4174542001-01-26Martin Stjernholm  if test "x$enable_binary" = "xno"; then
1acce82001-01-27Martin Stjernholm  AC_MSG_WARN(Short-circuiting configure tests for binary building.) AC_MSG_WARN(Only some targets in the Makefile can be used.) CC=false CPP=echo
4174542001-01-26Martin Stjernholm else
1acce82001-01-27Martin Stjernholm  if test ! -z "$pike_cv_prog_CC_save" -a ! -z "$CC" -a "$CC" != "$pike_cv_prog_CC_save" then AC_MSG_WARN([CC is different than last time Pike was compiled, It is probably best to delete ./config.cache before proceeding]) fi
7b39411997-02-06Fredrik Hübinette (Hubbe) 
1acce82001-01-27Martin Stjernholm  pike_cv_prog_CC_save="$CC"
7b39411997-02-06Fredrik Hübinette (Hubbe) 
1acce82001-01-27Martin Stjernholm  # MY_AC_PROG_CC # The above has problems if the smartlink binary is removed. /grubba AC_PROG_CC AC_PROG_CPP
2ed72c2000-09-17Henrik Grubbström (Grubba)  #############################################################################
1acce82001-01-27Martin Stjernholm  AC_ISC_POSIX AC_AIX AC_MINIX fi
2ed72c2000-09-17Henrik Grubbström (Grubba)  #############################################################################
4827972000-09-16Henrik Grubbström (Grubba) 
6cefa12000-09-27Henrik Grubbström (Grubba) # option, cache_name, variable AC_DEFUN(AC_SYS_COMPILER_FLAG, [ AC_MSG_CHECKING($1) AC_CACHE_VAL(pike_cv_option_$2, [ OLD_CFLAGS="[$]CFLAGS" CFLAGS="[$]OLD_CFLAGS $1"
ffff622001-03-19Henrik Grubbström (Grubba)  AC_TRY_RUN([ int foo; int main(int argc, char **argv) { /* The following code triggs gcc's generation of aline opcodes, * which some versions of as does not support. */ if (argc > 0) argc = 0; return argc; } ],pike_cv_option_$2=yes,
6cefa12000-09-27Henrik Grubbström (Grubba)  pike_cv_option_$2=no, [ AC_TRY_LINK([], [], pike_cv_option_$2=yes, pike_cv_option_$2=no) ]) CFLAGS="[$]OLD_CFLAGS" ]) if test x"[$]pike_cv_option_$2" = "xyes" ; then $3="[$]$3 $1" case "$3" in OPTIMIZE) CFLAGS="[$]CFLAGS $1" ;; esac AC_MSG_RESULT(yes) $5 else AC_MSG_RESULT(no) $4 fi ]) # arch, option, cache_name, variable AC_DEFUN(AC_SYS_CPU_COMPILER_FLAG, [ if test "`uname -m 2>/dev/null`" = "$1" ; then AC_SYS_COMPILER_FLAG($2,$3,$4,$5,$6) $7 fi ]) # os, option, cache_name, variable AC_DEFUN(AC_SYS_OS_COMPILER_FLAG, [ if test "x$pike_cv_sys_os" = "x$1" ; then AC_SYS_COMPILER_FLAG($2,$3,$4,$5,$6) $7 fi ]) define([DO_IF_OS], [ if test "x$pike_cv_sys_os" = "x$1" ; then $2 fi ]) define([DO_IF_CPU], [ if test "`uname -m 2>/dev/null`" = "$1" ; then $2 fi ]) #############################################################################
1ab51d2001-06-29Henrik Grubbström (Grubba) if test "x$GCC" = "x"; then GCC=no else :; fi
4827972000-09-16Henrik Grubbström (Grubba) if test "x$GCC" = "xno" -a "x$TCC" = "xno"; then # # We want 64bit mode if possible. #
6cefa12000-09-27Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-q64, q64, CFLAGS)
4827972000-09-16Henrik Grubbström (Grubba)  if test "x$ac_cv_prog_cc_cross" = "xyes"; then # The AIX 5L/cc beta can't generate working binaries without a # data-segment... AC_MSG_CHECKING([if we're really using a cross-compiler])
6cefa12000-09-27Henrik Grubbström (Grubba) 
7fcd072000-09-16Henrik Grubbström (Grubba)  AC_CACHE_VAL(pike_cv_datasegment_required, [ ac_cv_prog_cc_cross=no; AC_TRY_RUN([int foo;main(){return(0);}], [
4827972000-09-16Henrik Grubbström (Grubba)  pike_cv_datasegment_required=yes
7fcd072000-09-16Henrik Grubbström (Grubba)  ], [
4827972000-09-16Henrik Grubbström (Grubba)  pike_cv_datasegment_required=no
7fcd072000-09-16Henrik Grubbström (Grubba)  ac_cv_prog_cc_cross=yes ], [ pike_cv_datasegment_required=no ac_cv_prog_cc_cross=yes ])
4827972000-09-16Henrik Grubbström (Grubba)  ]) if test "x$pike_cv_datasegment_required" = "xyes"; then AC_MSG_RESULT([no -- Applying data-segment kludge]) ac_cv_prog_cc_cross=no cat >conftest.c <<EOF static int foo; EOF pike_cv_datasegemnt_file=no if AC_TRY_EVAL(ac_compile); then if test -f "conftest.$ac_objext"; then rm -f "data-segment.$ac_objext" if mv "conftest.$ac_objext" "data-segment.$ac_objext"; then if test -f "`pwd`/data-segment.$ac_objext"; then pike_cv_datasegemnt_file="`pwd`/data-segment.$ac_objext" else AC_MSG_WARN(Lost track of data-segment kludge-file.) fi else AC_MSG_WARN(Failed to rename data-segment kludge-file.) fi else AC_MSG_WARN(Can not find data-segment kludgefile.) fi else AC_MSG_WARN(Failed to compile data-segment kludge.) fi if test "x$pike_cv_datasegment_file" = "xno"; then AC_MSG_WARN(Some tests may yield false results.) else LIBS="$pike_cv_datasegment_file $LIBS" export LIBS AC_MSG_WARN(Data-segment kludge applied.) fi else AC_MSG_RESULT(yes) fi fi fi
18be802000-03-02Fredrik Hübinette (Hubbe) #############################################################################
1acce82001-01-27Martin Stjernholm if test "x$enable_binary" != "xno"; then
18be802000-03-02Fredrik Hübinette (Hubbe) # # The purpose of this test is to check that there is no filesystem # caching preventing pike from compiling correctly. #
d4f9e92000-05-19Martin Stjernholm AC_MSG_CHECKING([filesystem synchronization])
18be802000-03-02Fredrik Hübinette (Hubbe)  AC_CACHE_VAL(pike_cv_filesystem_syncronization, [ pike_cv_filesystem_syncronization=working AC_EGREP_CPP(true, [ true ], , pike_cv_filesystem_syncronization=broken) AC_EGREP_CPP(false, [ false ], , pike_cv_filesystem_syncronization=broken) AC_EGREP_CPP(yes, [ yes ], , pike_cv_filesystem_syncronization=broken) AC_EGREP_CPP(no, [ no ], , pike_cv_filesystem_syncronization=broken) AC_EGREP_CPP(near, [ far ], pike_cv_filesystem_syncronization=broken, ) AC_EGREP_CPP(up, [ up ], , pike_cv_filesystem_syncronization=broken) AC_EGREP_CPP(down, [ down], , pike_cv_filesystem_syncronization=broken) ]) AC_MSG_RESULT($pike_cv_filesystem_syncronization) if test "x$pike_cv_filesystem_syncronization" = xbroken ; then AC_MSG_ERROR([Filesystem caching is too aggressive. If you are using Samba, make sure to have the following line in your smb.conf: oplocks = False ]) exit 1 fi
1acce82001-01-27Martin Stjernholm fi
4174542001-01-26Martin Stjernholm ############################################################################# # # Some cross-compilation support # CROSS="$ac_cv_prog_cc_cross" AC_SUBST(CROSS) if test "x$ac_cv_prog_cc_cross" = "xyes"; then RUNTPIKE="USE_PIKE" else RUNTPIKE="USE_TPIKE" fi AC_SUBST(RUNTPIKE) AC_PATH_PROG(pike_prog,pike,no) PIKE="$ac_cv_path_pike_prog" AC_SUBST(PIKE) ############################################################################# LIBDIR=`(cd $srcdir/../lib ; pwd)` BINDIR=`(cd $srcdir/../bin ; pwd)` BUILDDIR=`pwd` AC_SUBST(LIBDIR) AC_SUBST(BINDIR) AC_SUBST(BUILDDIR) ############################################################################# if test "x$enable_binary" != "xno"; then # The following tests are only relevant if we intend to build binaries.
6900981999-05-07Fredrik Hübinette (Hubbe) ############################################################################# AC_CHECK_HEADERS(fnord/fnord/fnord.h)
54be211999-05-12Henrik Grubbström (Grubba) AC_MSG_CHECKING([if CHECK_HEADERS works])
6900981999-05-07Fredrik Hübinette (Hubbe) if test "x$ac_cv_header_fnord_fnord_fnord_h" = xyes ; then
54be211999-05-12Henrik Grubbström (Grubba)  AC_MSG_RESULT(no)
6900981999-05-07Fredrik Hübinette (Hubbe)  exit 1 fi
54be211999-05-12Henrik Grubbström (Grubba) AC_MSG_RESULT(yes)
613bc52000-08-28Henrik Grubbström (Grubba)  #############################################################################
8cf37d1997-01-27Per Hedbor 
8421612001-06-29Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(if we can allocate large auto variables) AC_CACHE_VAL(pike_cv_C_supports_large_auto, [ AC_TRY_LINK([ #include <stdio.h> int eat_stack(int foo) { char large_array[131072] = ""; int i, sum = 0; for (i = 0; i < foo; i++) { /* Make sure the compiler doesn't optimize away the array. */ large_array[i] = sum; sum += foo; } for (i = 0; i < foo; i++) { sum += large_array[i] - large_array[foo-1-i]; } return sum; } ], [ return !eat_stack(4711); ], [ pike_cv_C_supports_large_auto=yes ], [ pike_cv_C_supports_large_auto=no ]) ]) if test "$pike_cv_C_supports_large_auto" = "yes"; then AC_MSG_RESULT([yes - good]) else AC_MSG_RESULT([no]) AC_MSG_CHECKING([if we can make a workaround by defining _chkstk to call __chkstk]) AC_CACHE_VAL([pike_cv_kludge__chkstk], [ AC_TRY_LINK([ #include <stdio.h> int eat_stack(int foo) { char large_array[131072] = ""; int i, sum = 0; for (i = 0; i < foo; i++) { /* Make sure the compiler doesn't optimize away the array. */ large_array[i] = sum; sum += foo; } for (i = 0; i < foo; i++) { sum += large_array[i] - large_array[foo-1-i]; } return sum; } extern size_t __chkstk(); size_t _chkstk() { return __chkstk(); } ], [ return !eat_stack(4711); ], [ pike_cv_kludge__chkstk=yes ], [ pike_cv_kludge__chkstk=no ]) ]) if test "$pike_cv_kludge__chkstk" = "yes"; then AC_MSG_RESULT([yes - applying workaround]) AC_DEFINE(HAVE_BROKEN_CHKSTK) else AC_MSG_RESULT([no]) AC_ERROR([Your C compiler does not link code that uses large auto variables. Please check config.log, and fix the problem.]) exit 1 fi fi #############################################################################
e48c381998-07-29Marcus Comstedt if test $ac_cv_prog_gcc = yes; then AC_MSG_CHECKING(for libgcc file name) AC_CACHE_VAL(pike_cv_libgcc_filename, [ pike_cv_libgcc_filename="`${CC-cc} -print-libgcc-file-name`" if test -z "$pike_cv_libgcc_filename"; then pike_cv_libgcc_filename=no else if test -f "$pike_cv_libgcc_filename"; then : else pike_cv_libgcc_filename=no fi fi ]) AC_MSG_RESULT($pike_cv_libgcc_filename) if test x"$pike_cv_libgcc_filename" = xno; then LIBGCC="" else LIBGCC="$pike_cv_libgcc_filename" fi else LIBGCC="" fi AC_SUBST(LIBGCC)
2565f41997-02-26Fredrik Hübinette (Hubbe) #############################################################################
d1e3fe1999-03-06Henrik Grubbström (Grubba) ## Build smartlink
af5ef81999-05-28Henrik Grubbström (Grubba) AC_CHECK_HEADERS(stdlib.h string.h unistd.h sys/stat.h sys/types.h sys/errno.h)
d1e3fe1999-03-06Henrik Grubbström (Grubba)  if test -x /usr/bin/uname 2>/dev/null; then UNAME=`/usr/bin/uname -sr` elif test -x /bin/uname 2>/dev/null; then UNAME=`/bin/uname -sr` else UNAME=unknown fi
613bc52000-08-28Henrik Grubbström (Grubba) # We need some special hacks when running slowaris AC_PATH_PROG(uname_prog,uname,no) AC_MSG_CHECKING(operating system) AC_CACHE_VAL(pike_cv_sys_os, [ if test "$uname_prog" != "no"; then
7cfebe2001-09-23Marcus Comstedt  # uname on UNICOS doesn't work like other people's uname... if getconf CRAY_RELEASE >/dev/null 2>&1; then pike_cv_sys_os="UNICOS" else pike_cv_sys_os="`uname`" fi
613bc52000-08-28Henrik Grubbström (Grubba)  case "$pike_cv_sys_os" in SunOS) case "`uname -r`" in 5.*) pike_cv_sys_os="Solaris" ;; esac ;;
dc83082000-09-15Henrik Grubbström (Grubba)  Monterey64) # According to the release notes, the string "Monterey64" # will be changed to "AIX" in the final release. # (Monterey 64 is also known as AIX 5L). pike_cv_sys_os="AIX" ;;
613bc52000-08-28Henrik Grubbström (Grubba)  esac else pike_cv_sys_os="Not Solaris" fi ]) AC_MSG_RESULT($pike_cv_sys_os) if test "$GCC" = "yes"; then :; else # # Special hack for HP-UX stupid cc # if test "$pike_cv_sys_os" = "HP-UX"; then AC_TRY_COMPILE([int foo(int bar);],[],[], [ OLD_CC="${CC-cc}" OLD_CFLAGS="$CFLAGS" case "/$CC" in */smartlink\ cc) if test -x /usr/bin/cc; then CC="`echo $CC|sed -e 's/ cc/ \/usr\/bin\/cc/`" else : ; fi ;; esac CFLAGS="-Ae +Olibcalls $CFLAGS" AC_TRY_COMPILE([int foo(int bar);],[],[],[ CC="$OLD_CC" CFLAGS="$OLD_CFLAGS" ]) pike_cv_prog_CC="${CC}" ]) fi fi if test "$pike_cv_sys_os" = "Solaris" ; then AC_DEFINE(SOLARIS) else : fi
9041271999-03-06Henrik Grubbström (Grubba) # FIXME: Add proper tests
d1e3fe1999-03-06Henrik Grubbström (Grubba) case "$UNAME" in OSF1\ V4.*) AC_DEFINE(USE_RPATH) ;;
108dde2000-10-31Henrik Grubbström (Grubba)  HPUX\ 11.*) AC_DEFINE(USE_PLUS_b) ;;
d1e3fe1999-03-06Henrik Grubbström (Grubba)  IRIX\ 6.*) AC_DEFINE(USE_RPATH) ;; IRIX\ 5.*) AC_DEFINE(USE_RPATH) ;; SunOS\ 5.*)
f2e4c51999-05-12Henrik Grubbström (Grubba)  if test "$TCC" = "yes"; then # tcc doesn't know about -R AC_DEFINE(USE_Wl_R) else AC_DEFINE(USE_R) fi
d1e3fe1999-03-06Henrik Grubbström (Grubba)  ;; Linux\ 2.*) AC_DEFINE(USE_Wl) ;;
bcb5382001-08-23Boyd Lynn Gerber  UnixWare\ 7.*|OpenUNIX\ 8.*)
b6c28f2000-06-16Henrik Grubbström (Grubba)  if test "$ac_cv_prog_gcc" = "yes"; then AC_DEFINE(USE_XLINKER_YP_) else AC_DEFINE(USE_YP_) fi
ed7aeb2000-06-16Henrik Grubbström (Grubba)  ;;
d1e3fe1999-03-06Henrik Grubbström (Grubba)  *) AC_DEFINE(USE_LD_LIBRARY_PATH) ;;
2565f41997-02-26Fredrik Hübinette (Hubbe) esac
d1e3fe1999-03-06Henrik Grubbström (Grubba) # Strip smartlink from $CC REALCC="`echo $CC|sed -e 's/.*smartlink //'`" # Fix a smartlink SMARTLINK="$BUILDDIR/smartlink"
9041271999-03-06Henrik Grubbström (Grubba) AC_MSG_CHECKING(if $SMARTLINK exists is up to date and works)
ba012d1999-04-25Henrik Grubbström (Grubba) if ls -1tr "$SMARTLINK${ac_exeext}" "$srcdir/smartlink.$ac_ext" 2>/dev/null | head -1 | grep "smartlink.$ac_ext" >/dev/null 2>&5 && "$SMARTLINK" -v >/dev/null 2>&5; then
d1e3fe1999-03-06Henrik Grubbström (Grubba)  AC_MSG_RESULT(yes) else AC_MSG_RESULT(no)
7e4d4e2000-12-13Fredrik Hübinette (Hubbe)  SMARTBUILDCC="${REALCC-cc}"
d1e3fe1999-03-06Henrik Grubbström (Grubba) 
9f85232000-11-26Henrik Grubbström (Grubba)  if echo foo "$CC" | egrep 'rntc.|rnt.cl' >/dev/null; then
cf39902001-01-19Henrik Grubbström (Grubba)  AC_MSG_WARN([rntcc/rntcl/rnticl/rntecl detected.])
7e4d4e2000-12-13Fredrik Hübinette (Hubbe)  AC_PATH_PROGS(SMARTBUILDCC,gcc cc egcs,gcc, $PATH:$EXTRA_PATH) echo Using $SMARTBUILDCC to compile smartlink.
cf39902001-01-19Henrik Grubbström (Grubba)  else
325c1f2001-01-19Henrik Grubbström (Grubba)  if test "x$ac_cv_prog_cc_cross" = "xyes"; then
cf39902001-01-19Henrik Grubbström (Grubba)  AC_MSG_WARN([Crosscompiler detected.]) AC_PATH_PROGS(SMARTBUILDCC, gcc cc egcs, gcc, /usr/bin:/bin/:/usr/ccs/bin:/usr/local/bin:$PATH:$EXTRA_PATH) echo Using $SMARTBUILDCC to compile smartlink. fi
7e4d4e2000-12-13Fredrik Hübinette (Hubbe)  fi
d1e3fe1999-03-06Henrik Grubbström (Grubba) 
7e4d4e2000-12-13Fredrik Hübinette (Hubbe)  rm -f "$SMARTLINK"
d1e3fe1999-03-06Henrik Grubbström (Grubba) 
7e4d4e2000-12-13Fredrik Hübinette (Hubbe)  AC_MSG_CHECKING(whether smartlink compiles)
d1e3fe1999-03-06Henrik Grubbström (Grubba) 
7e4d4e2000-12-13Fredrik Hübinette (Hubbe)  link_cmd='${SMARTBUILDCC-cc} -o smartlink${ac_exeext} $CFLAGS -I. $CPPFLAGS $LDFLAGS $srcdir/smartlink.$ac_ext $LIBS 2>&5' if { (eval echo Compiling smartlink: \"$link_cmd\") 1>&5; (eval $link_cmd) 2>&5; } && "$BUILDDIR/smartlink" -v >/dev/null 2>&5; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no - use the sh script) SMARTLINK="$BINDIR/smartlink"
d1e3fe1999-03-06Henrik Grubbström (Grubba)  fi fi CC="$SMARTLINK $REALCC" pike_cv_prog_CC="$CC"
d5efba1998-01-23Henrik Grubbström (Grubba) 
424d9c1999-05-02Fredrik Hübinette (Hubbe) AC_SUBST(SMARTLINK) AC_SUBST(REALCC)
d5efba1998-01-23Henrik Grubbström (Grubba) export REALCC SMARTLINK
d166d62000-08-06Henrik Grubbström (Grubba) AC_MSG_CHECKING([for a fallback compiler]) # Strip smartlink from $FALLBACK_CC FALLBACK_CC="`echo $FALLBACK_CC|sed -e 's/.*smartlink //'`" if test "x$FALLBACK_CC" = "x"; then AC_MSG_RESULT(no) else FALLBACK_CC="$SMARTLINK $FALLBACK_CC" AC_MSG_RESULT($FALLBACK_CC) fi AC_SUBST(FALLBACK_CC) export FALLBACK_CC
2565f41997-02-26Fredrik Hübinette (Hubbe) #############################################################################
1acce82001-01-27Martin Stjernholm fi #if test "x$enable_binary" != "xno" #############################################################################
2565f41997-02-26Fredrik Hübinette (Hubbe) 
de575a1999-05-29Henrik Grubbström (Grubba) 
613bc52000-08-28Henrik Grubbström (Grubba) if test "$GCC" = "yes"; then
dc83082000-09-15Henrik Grubbström (Grubba)  if test "$cflags_is_set" = "no"; then
613bc52000-08-28Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-pipe, pipe, CFLAGS) fi
5c8e891995-10-29Fredrik Hübinette (Hubbe) fi
2901d31998-08-05Fredrik Hübinette (Hubbe) LD='$(CC) $(CFLAGS)'
37428e2001-10-05Fredrik Hübinette (Hubbe) LC_REQ="-lc"
0809711998-02-27Marcus Comstedt 
de16081997-06-03Fredrik Hübinette (Hubbe) case "$pike_cv_sys_os" in SCO*)
77b2821997-10-04Henrik Grubbström (Grubba)  case "$CFLAGS" in
2a7fc81999-11-29Boyd Lynn Gerber  *-belf*) AC_SYS_COMPILER_FLAG(-belf,sco_belf_option,CFLAGS,[],[ case "$LDFLAGS" in *-belf*) ;; *) echo "Adding -belf option to ldflags." LDFLAGS="$LDFLAGS -belf" ;; esac ]) ;;
de16081997-06-03Fredrik Hübinette (Hubbe)  *)
2a7fc81999-11-29Boyd Lynn Gerber  AC_SYS_COMPILER_FLAG(-belf,belf,CFLAGS)
77b2821997-10-04Henrik Grubbström (Grubba)  ;; esac case "$LDFLAGS" in *-belf*) ;; *)
dda9061999-08-15Boyd Lynn Gerber  AC_SYS_COMPILER_FLAG(-belf,belf,LDFLAGS)
de16081997-06-03Fredrik Hübinette (Hubbe)  ;; esac ;;
2b49031998-03-05Henrik Grubbström (Grubba)  SunOS*) # gcc on SunOS 4 forgets to define this: echo "SunOS. Adding -D__USE_FIXED_PROTOTYPES__" CFLAGS="$CFLAGS -D__USE_FIXED_PROTOTYPES__" ;;
0809711998-02-27Marcus Comstedt  BSD/OS*)
1807bd2000-11-28Fredrik Hübinette (Hubbe)  case "`uname -r`" in
e9e9d82001-09-22Henrik Grubbström (Grubba)  [4-9].*) ;;
1807bd2000-11-28Fredrik Hübinette (Hubbe)  *) LD="$BINDIR/smartlink shlicc";; esac
0809711998-02-27Marcus Comstedt  ;;
bcb5382001-08-23Boyd Lynn Gerber  UnixWare*|OpenUNIX*)
2a7fc81999-11-29Boyd Lynn Gerber  case "$CFLAGS" in *-Kalloca*) ;; *) if test "$GCC" != "yes"; then # We are using built-in inline function CFLAGS="$CFLAGS -Kalloca" CXX="$CXX -DNO_CPLUSPLUS_ALLOCA"
37428e2001-10-05Fredrik Hübinette (Hubbe)  LC_REQ=""
2a7fc81999-11-29Boyd Lynn Gerber  fi ;; esac
9ab4461998-11-06Honza Petrous  ;;
de16081997-06-03Fredrik Hübinette (Hubbe) esac
dcad551996-08-03Fredrik Hübinette (Hubbe) 
0809711998-02-27Marcus Comstedt AC_SUBST(LD)
37428e2001-10-05Fredrik Hübinette (Hubbe) AC_SUBST(LC_REQ)
0809711998-02-27Marcus Comstedt 
de16081997-06-03Fredrik Hübinette (Hubbe) #############################################################################
f6c3371998-09-29Henrik Grubbström (Grubba) 
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(patch_gcc, MY_DESCR([--with-patch-gcc], [attempt to patch the UA32 relocation bug.]), [], [with_patch_gcc=no])
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba) AC_ARG_WITH(force_ua32, MY_DESCR([--with-force-ua32], [ignore the UA32 relocation bug.]), [], [with_force_ua32=no])
348fca1999-05-29Henrik Grubbström (Grubba) # Some sanity checks.
4313c92000-01-15Fredrik Hübinette (Hubbe) if test "$GCC" = "yes" -a "$pike_cv_sys_os" = "Solaris" && test "`uname -p`" = "sparc"; then
348fca1999-05-29Henrik Grubbström (Grubba)  # Solaris/sparc: # Check that gnu ld isn't used. # It's usually hidden in $prefix/sparc-sun-solaris2.?/bin/. # NOTE: M4 uses [] as quotes. gcc_ld_path="`$CC -v 2>&1 | sed -e '1,1s/[[^\/]]*\(\/.*\/\)[[^\/]]*$/\1/p;d' | sed -e '/lib\/gcc-lib\//s/lib\/gcc-lib\///;s/\/[[0-9]]*\.[[0-9]]*\.[[0-9]]*\/$/\/bin/'`" if test "x$gcc_ld_path" = "x"; then :; else
4d012e2000-01-19Wilhelm Köhler  if test -d "$gcc_ld_path/."; then if "$gcc_ld_path/ld" -v 2>&1 | grep -i GNU >/dev/null; then AC_MSG_WARN([GNU ld found on Solaris sparc system ($gcc_ld_path/ld).]) AC_MSG_WARN([This may cause the dynamic module support to fail.]) else :; fi
348fca1999-05-29Henrik Grubbström (Grubba)  else :; fi fi unset gcc_ld_path
9998151999-05-30Henrik Grubbström (Grubba)  # Watch out for gcc-2.8.1 on Solaris 7 sparc machines. It generates # assembler code which contains .uaword directives, which in turn # generates code with R_SPARC_UA32 relocations, which /usr/bin/ld.so # has buggy support for (it doesn't relocate the MSB). # Check that gcc doesn't generate uaword opcodes AC_MSG_CHECKING(if your gcc generates uaword opcodes) AC_CACHE_VAL(pike_cv_gcc_uaword, [ cat > conftest.c <<EOF char *foo[[]] = { "bar" }; EOF pike_compile='${CC-cc} -S $CFLAGS $CPPFLAGS conftest.c 1>&5' pike_cv_gcc_uaword=no if { (eval echo configure: \"$pike_compile\") >&5; (eval $pike_compile) 2>&5; }; then if grep ".uaword" conftest.s 2>&5 >/dev/null; then echo "configure: result contains .uaword:" >&5 cat conftest.s >&5 pike_cv_gcc_uaword=yes else :; fi else echo "configure: failed program was:" >&5 cat conftest.c >&5 fi rm -rf conftest.* ])
cfd7c91999-05-30Henrik Grubbström (Grubba)  AC_MSG_RESULT($pike_cv_gcc_uaword)
9998151999-05-30Henrik Grubbström (Grubba)  # Check if as generates R_SPARC_UA32 relocations from .uaword. if test "$pike_cv_gcc_uaword" = "yes"; then AC_MSG_CHECKING([if your as generates R_SPARC_UA32 relocations]) AC_CACHE_VAL(pike_cv_as_r_sparc_ua32, [ AC_TRY_ASSEMBLE([ .section ".rodata" .align 8 .STRING: .asciz "String" .section ".data" .align 4 .type string,#object .size string,4 string: .uaword .STRING ],[ if /usr/ccs/bin/elfdump -r conftest.o | grep -i R_SPARC_UA32 >/dev/null 2>&AC_FD_CC; then pike_cv_ac_r_sparc_ua32=yes else pike_cv_ac_r_sparc_ua32=no fi ],[ pike_cv_ac_r_sparc_ua32=no ]) ]) AC_MSG_RESULT($pike_cv_ac_r_sparc_ua32) if test "$pike_cv_ac_r_sparc_ua32" = "yes"; then
f594b71999-05-30Henrik Grubbström (Grubba)  AC_MSG_WARN([Your gcc/as combo may generate R_SPARC_UA32 relocations.]) AC_MSG_WARN([R_SPARC_UA32 relocations are unsupported in Solaris >= 2.3,]) AC_MSG_WARN([and have broken support in Solaris 7.])
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  if test "x$with_patch_gcc$with_force_ua32" = "xnono"; then
b09bef2001-01-25Henrik Grubbström (Grubba)  if test -d "/var/sadm/patch/107058-01/."; then AC_MSG_WARN([Back out patch 107058-01, or]) AC_MSG_WARN([recompile gcc with a modified config/sparc/sol2.h.]) else AC_MSG_WARN([Recompile gcc with a modified config/sparc/sol2.h.]) fi AC_MSG_WARN([]) AC_MSG_WARN([You may want to try binary patching gcc.]) AC_MSG_WARN([In that case rerun configure with --with-patch-gcc.]) AC_MSG_WARN([NOTE: Binary patching is highly experimental and risky,]) AC_MSG_WARN([ and may break your existing gcc even more.])
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_WARN([]) AC_MSG_WARN([R_SPARC_UA32 relocations are supported on some versions]) AC_MSG_WARN([of Solaris. If you want to try a binary with R_SPARC_UA32]) AC_MSG_WARN([relocations, rerun configure with --with-force-ua32.]) AC_MSG_WARN([])
b09bef2001-01-25Henrik Grubbström (Grubba)  exit 1 fi
ac61a22001-12-06Henrik Grubbström (Grubba)  if test "x$with_path_gcc" = "xno"; then :; else AC_MSG_WARN([Will attempt to patch gcc.])
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_CHECKING([for cc1]) if test "x$with_patch_gcc" = "xyes"; then cc1="`$CC -v 2>&1|sed -e '/\//s!^[[^/]]*\(/.*\)/specs$!\1/cc1!p' -ed`" else cc1="$with_patch_gcc"; fi if test -f "$cc1"; then AC_MSG_RESULT($cc1) else AC_MSG_RESULT(not found. Tried $cc1) exit 1 fi
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_CHECKING(if $cc1 looks unpatched) if /usr/bin/strings "$cc1" | grep uaword >/dev/null 2>&1; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no -- strange) exit 1 fi
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_CHECKING(if patch_cc1 compiles) link_cmd='${CC-cc} -o patch_cc1${ac_exeext} $CFLAGS -I. $CPPFLAGS $LDFLAGS $srcdir/patch_cc1.$ac_ext $LIBS 2>&5' if { (eval echo Compiling patch_cc1: \"$link_cmd\") 1>&5; (eval $link_cmd) 2>&5; } && "$BUILDDIR/patch_cc1" -v >/dev/null 2>&5; then AC_MSG_RESULT(yes)
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  if test -f "$cc1.patched"; then AC_MSG_ERROR([$cc1.patched already exists.
2c2ffa2001-01-26Henrik Grubbström (Grubba) Please move it out of the way.])
ac61a22001-12-06Henrik Grubbström (Grubba)  exit 1; fi
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  if test -f "$cc1.orig"; then AC_MSG_ERROR([$cc1.orig already exists.
2c2ffa2001-01-26Henrik Grubbström (Grubba) Please move it out of the way.])
ac61a22001-12-06Henrik Grubbström (Grubba)  exit 1; fi
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_CHECKING(if patch_cc1 works) if ./patch_cc1 "$cc1" 2>&5 >"$cc1.patched"; then if test -f "$cc1.patched"; then :; else AC_MSG_RESULT(no - failed to create $cc1.patched) exit 1
b09bef2001-01-25Henrik Grubbström (Grubba)  fi
ac61a22001-12-06Henrik Grubbström (Grubba)  if chmod 755 "$cc1.patched"; then :; else AC_MSG_RESULT(no - failed to set permission to 755 on $cc1.patched)
b09bef2001-01-25Henrik Grubbström (Grubba)  exit 1 fi
ac61a22001-12-06Henrik Grubbström (Grubba)  if test "`/bin/ls -l \"$cc1\"|awk '{print $5}'`" = "`/bin/ls -l \"$cc1.patched\"|awk '{print $5}'`"; then if /usr/bin/strings "$cc1.patched" | grep uaword >/dev/null 2>&1; then rm -f "$cc1.patched" AC_MSG_RESULT(no -- patching failed) exit 1 fi
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  if "$cc1.patched" --help >/dev/null 2>&1; then :; else AC_MSG_RESULT(no -- the patched binary does not seem to work) exit 1 fi
1d5a7b2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_RESULT(yes)
1d5a7b2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_WARN(Activating the patched cc1.) AC_MSG_WARN(NOTE: Entering critical section.) AC_MSG_WARN(If configure fails at this point a broken gcc my result.) if /usr/bin/mv -f "$cc1" "$cc1.orig"; then
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_WARN(Moved $cc1 to $cc1.orig.)
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  if /usr/bin/mv -f "$cc1.patched" "$cc1"; then AC_MSG_WARN(Patching seems to have succeeded.) AC_MSG_WARN(Please rerun configure.) exit 1 fi
b09bef2001-01-25Henrik Grubbström (Grubba) 
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_WARN(Moving the patched cc1 into place failed.) AC_MSG_WARN(Will try to restore the old cc1.) if /usr/bin/mv -f "$cc1.orig" "$cc1"; then AC_MSG_WARN(The old cc1 has been restored.) exit 1 fi AC_MSG_ERROR([Restoring the old cc1 failed.
2c2ffa2001-01-26Henrik Grubbström (Grubba) Your installation of gcc is most likely broken now. Sorry, you will have to restore it yourself. Please move $cc1.orig to $cc1.])
ac61a22001-12-06Henrik Grubbström (Grubba)  exit 1 else AC_MSG_ERROR([Failed to move the old cc1 to safety.
2c2ffa2001-01-26Henrik Grubbström (Grubba) Please replace $cc1 with $cc1.patched by hand.])
ac61a22001-12-06Henrik Grubbström (Grubba)  exit 1 fi else rm -f "$cc1.patched" AC_MSG_ERROR([The size has changed. You need to patch cc1 by hand.])
b09bef2001-01-25Henrik Grubbström (Grubba)  exit 1 fi else
ac61a22001-12-06Henrik Grubbström (Grubba)  AC_MSG_RESULT(no -- you need to patch cc1 by hand)
b09bef2001-01-25Henrik Grubbström (Grubba)  exit 1 fi
ac61a22001-12-06Henrik Grubbström (Grubba)  else AC_MSG_RESULT(no -- you need to patch cc1 by hand) exit 1 fi
193c741999-05-31Henrik Grubbström (Grubba)  fi
9998151999-05-30Henrik Grubbström (Grubba)  else :; fi else :; fi
348fca1999-05-29Henrik Grubbström (Grubba) else :; fi #############################################################################
f6c3371998-09-29Henrik Grubbström (Grubba) 
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(root, MY_DESCR([--with-root=path], [specify a cross-compilation root-directory]),[
cf39902001-01-19Henrik Grubbström (Grubba)  case "$with_root" in /) with_root="" ;; /*) ;; no) with_root="" ;; *) AC_MSG_WARN([Root path $with_root is not absolute. Ignored.]) with_root="" ;; esac ],[with_root=""])
a1c5022001-10-06Henrik Grubbström (Grubba) MY_AC_ARG_WITH(relocatable_dumped_modules, MY_DESCR([--with-relocatable-dumped-modules], [make dumped modules relocatable]), [with_relocatable_dumped_modules=yes]) AC_ARG_WITH(dynamic_modules, MY_DESCR([--without-dynamic-modules], [link modules statically])) MY_AC_ARG_WITH(static_linking, MY_DESCR([--with-static-linking], [link statically, if possible]), [with_static_linking=yes]) AC_ARG_WITH(include-path, MY_DESCR([--with-include-path], [a list of paths to search for include files.])) AC_ARG_WITH(lib-path, MY_DESCR([--with-lib-path], [a list of paths to search for libraries.])) MY_AC_ARG_WITH(double-precision, MY_DESCR([--with-double-precision], [use double precision floats]), [ AC_DEFINE(WITH_DOUBLE_PRECISION_SVALUE) ]) MY_AC_ARG_WITH(long-double-precision, MY_DESCR([--with-long-double-precision], [use long double precision floats]), [ AC_DEFINE(WITH_LONG_DOUBLE_PRECISION_SVALUE) ]) MY_AC_ARG_WITH(long-int, MY_DESCR([--with-long-int], [use long native type int (EXPERIMENTAL)]), [ AC_DEFINE(WITH_LONG_INT) ]) MY_AC_ARG_WITH(long-long-int, MY_DESCR([--with-long-long-int], [use long long native type int (EXPERIMENTAL)]), [ AC_DEFINE(WITH_LONG_LONG_INT) ]) MY_AC_ARG_WITH(short-int, MY_DESCR([--with-short-int], [use short native type int (EXPERIMENTAL)]), [ AC_DEFINE(WITH_SHORT_INT) ]) MY_AC_ARG_WITH(int-int, MY_DESCR([--with-int-int], [use int native type int (EXPERIMENTAL)]), [ AC_DEFINE(WITH_INT_INT) ]) AC_ARG_WITH(gdbm, MY_DESCR([--without-gdbm],[no GNU database manager support])) AC_ARG_WITH(gmp, MY_DESCR([--without-gmp],[no support for Gmp bignums])) MY_AC_ARG_WITH(dmalloc, MY_DESCR([--with-dmalloc],[enable memory-leak tests]), [with_debug="yes" AC_DEFINE(DEBUG_MALLOC,10)]) MY_AC_ARG_WITH(dmalloc-malloc, MY_DESCR([--without-dmalloc-malloc], [Disable overloading malloc(3)]), [],[ AC_DEFINE(ENCAPSULATE_MALLOC,1) ]) MY_AC_ARG_WITH(dmalloc-malloc-leaks, MY_DESCR([--with-malloc-leaks], [Report memory allocated by malloc(3) as leaks.]), [ AC_DEFINE(REPORT_ENCAPSULATED_MALLOC,1) ]) MY_AC_ARG_WITH(dmalloc-trace, MY_DESCR([--with-dmalloc-trace], [enable tracepoints]), [with_dmalloc_trace="yes" AC_DEFINE(DMALLOC_TRACE,10)]) AC_ARG_WITH(debug, MY_DESCR([--without-debug],[disable run debugging]), [],[with_debug=]) AC_ARG_WITH(rtldebug, MY_DESCR([--with-rtldebug],[enable run time self tests]), [],[with_rtldebug=]) AC_ARG_WITH(cdebug, MY_DESCR([--without-cdebug],[disable -g]),[],[
aa38a81999-11-29Henrik Grubbström (Grubba)  case "$pike_cv_sys_os:$GCC" in Solaris:no) # Solaris/cc has problems with combining optimizations and debuginfo. AC_MSG_WARN([Defaulting to --without-cdebug since the OS is Solaris,
81e6432000-01-03Martin Stjernholm and gcc is not being used.])
aa38a81999-11-29Henrik Grubbström (Grubba)  with_cdebug=no ;; *) with_cdebug= ;; esac ])
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(copt, MY_DESCR([--without-copt], [disable -O2]), [], [with_copt=]) AC_ARG_WITH(threads, MY_DESCR([--without-threads], [disable threads support]), [],[
2f04112000-02-03Fredrik Hübinette (Hubbe)  case "x$pike_cv_sys_os" in xFreeBSD*)
0b620a2001-01-21Henrik Grubbström (Grubba)  if test "`uname -r|sed -e 's/\([[0-9]]*\).*/\1/'`" -lt 4; then
2f04112000-02-03Fredrik Hübinette (Hubbe)  AC_MSG_WARN([ FreeBSD <= 3.x detected, disabling threads. Use --with-threads to force threads support. ]) with_threads=no fi ;; esac
cd57482000-02-03Henrik Grubbström (Grubba)  if test "x${with_threads-}" = x; then
2f04112000-02-03Fredrik Hübinette (Hubbe)  with_threads=yes fi ])
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(zlib, MY_DESCR([--without-zlib],[disable gz compression support]), [],[with_zlib=yes]) AC_ARG_WITH(ssleay, MY_DESCR([--with-ssleay], [support for the secure socket protocol (OBSOLETE)]), [],[with_ssleay=no]) AC_ARG_WITH(mysql, MY_DESCR([--without-mysql], [disable support for the Mysql database]), [],[with_mysql=yes]) AC_ARG_WITH(gif-rle, MY_DESCR([--with-gif-rle], [use kind-of-rle packing instead of lzw])) AC_ARG_WITH(rsaref, MY_DESCR([--with-rsaref=path],[Support for RSAREF])) AC_ARG_WITH(checker, MY_DESCR([--with-checker], [add extra memory checking overhead (Purify)])) MY_AC_ARG_WITH(profiling, MY_DESCR([--with-profiling], [add code used to profile pike code]), [AC_DEFINE(PROFILING)]) MY_AC_ARG_WITH(pg, MY_DESCR([--with-pg],[use the gcc -pg option]), [PROFIL=-pg]) AC_ARG_WITH(poll, MY_DESCR([--with-poll], [use poll instead of select]), [], [
78a69c1998-09-29Henrik Grubbström (Grubba)  # Neither --with-poll nor --without-poll was specified case "$pike_cv_sys_os" in
bcb5382001-08-23Boyd Lynn Gerber  Solaris|HP-UX|OSF1|IRIX|Linux|Darwin|UnixWare|OpenUNIX)
d7bcfd1998-09-29Henrik Grubbström (Grubba)  AC_MSG_WARN([Defaulting to --with-poll since the OS is $pike_cv_sys_os.]) with_poll=yes
f6c3371998-09-29Henrik Grubbström (Grubba)  ;;
d0be141999-05-27Fredrik Hübinette (Hubbe)  AIX)
085ac61999-05-27Henrik Grubbström (Grubba)  # poll(2) is broken on AIX 4.1 and earlier.
d0be141999-05-27Fredrik Hübinette (Hubbe)  if test "`uname -r`" -ge 2 -a "`uname -v`" -ge 4 ; then with_poll=yes
085ac61999-05-27Henrik Grubbström (Grubba)  else if test "`uname -v`" -gt 4 ; then
d5614e1999-05-27Henrik Grubbström (Grubba)  with_poll=yes else :; fi fi
085ac61999-05-27Henrik Grubbström (Grubba)  if test "$with_poll" = "yes" ; then
54108f2000-03-26Henrik Grubbström (Grubba)  AC_MSG_WARN([Defaulting to --with-poll since the OS is AIX 4.2 or later.])
085ac61999-05-27Henrik Grubbström (Grubba)  else :; fi
d0be141999-05-27Fredrik Hübinette (Hubbe)  ;;
f6c3371998-09-29Henrik Grubbström (Grubba)  esac ])
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(max-fd, MY_DESCR([--with-max-fd=X], [set how many filedescriptors can be used at once]), [pike_cv_max_open_fd=$withval]) MY_AC_ARG_WITH(oob, MY_DESCR([--without-oob], [disable out-of-band data handling]),[],[
17afa22001-06-13Henrik Grubbström (Grubba)  if test "$pike_cv_sys_os" = "Windows_NT"; then
a1c5022001-10-06Henrik Grubbström (Grubba)  AC_MSG_ERROR([Support for out of band data is mandatory on NT.])
17afa22001-06-13Henrik Grubbström (Grubba)  else :; fi ],[with_oob=yes])
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(thread-trace, MY_DESCR([--without-thread-trace], [disable individual tracing of threads]), [],[with_thread_trace=yes]) MY_AC_ARG_WITH(compiler-trace, MY_DESCR([--with-compiler-trace], [enable tracing of the compiler]), [AC_DEFINE(YYDEBUG)]) AC_ARG_WITH(security, MY_DESCR([--with-security], [enable internal pike security system]), [AC_DEFINE(PIKE_SECURITY)]) AC_ARG_WITH(bignums, MY_DESCR([--without-bignums], [disable internal conversion to bignums]), [],[with_bignums=yes]) AC_ARG_WITH(shared-nodes, MY_DESCR([--without-shared-nodes], [disable the SHARED_NODES mode of the optimizer]), [],[with_shared_nodes=yes]) AC_ARG_WITH(computed-goto, MY_DESCR([--with-computed-goto], [enable use of gcc-style computed goto (EXPERIMENTAL).]), [], [with_computed_goto=no]) AC_ARG_WITH(machine-code, MY_DESCR([--with-machine-code],
9489742001-11-08Fredrik Hübinette (Hubbe)  [enable use of machine code.]))
a1c5022001-10-06Henrik Grubbström (Grubba)  MY_AC_ARG_WITH(keypair-loop, MY_DESCR([--with-keypair-loop], [enable use of keypair mapping loop method (EXPERIMENTAL).]), [AC_DEFINE(PIKE_MAPPING_KEYPAIR_LOOP)]) MY_AC_ARG_WITH(lock, MY_DESCR([--without-lock], [enable experimental code for multicpu machines (EXPERIMENTAL).]), [],[AC_DEFINE(PIKE_RUN_UNLOCKED)])
e83eb92001-03-22Fredrik Hübinette (Hubbe) 
02abea2000-03-31Fredrik Hübinette (Hubbe) # This makes configure default to --without-Perl # Remove this when the Perl module stops crashing and hanging. -Hubbe
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(perl, MY_DESCR([--with-perl], [enable the embedded Perl module (EXPERIMENTAL)]), [],
381c482000-04-19Henrik Grubbström (Grubba) [ac_configure_args="$ac_configure_args --without-perl" with_perl="no"
a1c5022001-10-06Henrik Grubbström (Grubba) ])
02abea2000-03-31Fredrik Hübinette (Hubbe) 
a1c5022001-10-06Henrik Grubbström (Grubba) AC_ARG_WITH(pike-type, MY_DESCR([--without-pike-type], [disable struct pike_type.]))
6cb70d2001-02-21Henrik Grubbström (Grubba) 
769d1c2001-03-27Henrik Grubbström (Grubba) if test "x$with_pike_type" = "xno"; then :; else echo 'Enabling the USE_PIKE_TYPE mode of the compiler.' AC_DEFINE(USE_PIKE_TYPE) fi
6cb70d2001-02-21Henrik Grubbström (Grubba) 
769d1c2001-03-27Henrik Grubbström (Grubba) if test "x$with_oob" = "xno"; then :; else
653f322000-06-28Fredrik Hübinette (Hubbe)  AC_DEFINE(WITH_OOB) fi
011ad31999-10-22Fredrik Hübinette (Hubbe) if test "x$with_bignums" = xyes; then AC_DEFINE(AUTO_BIGNUM)
4900161999-10-23Fredrik Noring  if test "x$with_gmp" = xno; then
5435a72000-05-04Fredrik Hübinette (Hubbe)  AC_MSG_ERROR([Cannot compile --with-bignums without the GMP library It is highly recommended that you install a working GMP library on your system as that will add features to Pike
cab7ce2001-08-29Martin Stjernholm required by many applications (such as Roxen). However,
5435a72000-05-04Fredrik Hübinette (Hubbe) if you know that you do not need GMP, you may re-run configure with the option --without-bignums instead.
011ad31999-10-22Fredrik Hübinette (Hubbe) ]) else :; fi else :; fi
f6c3371998-09-29Henrik Grubbström (Grubba) 
a4e8132000-06-17Henrik Grubbström (Grubba) if test "x$with_shared_nodes" != xno; then
769d1c2001-03-27Henrik Grubbström (Grubba)  echo 'Enabling the SHARED_NODES mode of the optimizer.'
de28961999-11-13Henrik Grubbström (Grubba)  AC_DEFINE(SHARED_NODES) else :; fi
f6c3371998-09-29Henrik Grubbström (Grubba) if test "x$with_poll" = "xyes"; then AC_DEFINE(HAVE_AND_USE_POLL) else :; fi
bf61b91999-02-06Henrik Grubbström (Grubba) if test "x$with_checker" = "xyes"; then AC_DEFINE(__CHECKER__) else :; fi
72f0cb2000-03-06Martin Stjernholm if test "x$with_thread_trace" = "xyes"; then AC_DEFINE(THREAD_TRACE) else :; fi
4839dd2001-09-02Marcus Comstedt if test "x$with_relocatable_dumped_modules" = xyes; then PIKE_MODULE_RELOC=1 else PIKE_MODULE_RELOC="" fi AC_SUBST(PIKE_MODULE_RELOC)
4b8d502000-12-19Henrik Grubbström (Grubba) 
f6c3371998-09-29Henrik Grubbström (Grubba) # # Allow --with(out)-debug to toggle both cdebug and rtldebug, but # let --with(out)-{c,rtl}debug take precedence. # if test "x$with_cdebug" = x ; then with_cdebug="$with_debug" fi if test "x$with_rtldebug" = x ; then with_rtldebug="$with_debug" fi
4b8d502000-12-19Henrik Grubbström (Grubba) # # --with-dmalloc requires --with-rtldebug # if test "x$with_dmalloc" = "x"; then :; else if test "x$with_rtldebug" = "xyes"; then :; else AC_MSG_WARN([Debug malloc requires rtldebug. Enabling rtldebug.])
32ead52000-12-19Henrik Grubbström (Grubba)  with_rtldebug=yes
4b8d502000-12-19Henrik Grubbström (Grubba)  fi fi
f6c3371998-09-29Henrik Grubbström (Grubba) # # Defaults for cdebug and rtldebug here: # if test "x$with_cdebug" = x ; then with_cdebug=yes fi if test "x$with_rtldebug" = x ; then
88b2682000-12-17Henrik Grubbström (Grubba)  with_rtldebug=no # with_rtldebug=yes
f6c3371998-09-29Henrik Grubbström (Grubba) fi if test "x$with_rtldebug" = xyes ; then
71f3a21998-11-22Fredrik Hübinette (Hubbe)  AC_DEFINE(PIKE_DEBUG)
f6c3371998-09-29Henrik Grubbström (Grubba) fi #############################################################################
48ae531996-10-09Fredrik Hübinette (Hubbe) 
8cf37d1997-01-27Per Hedbor  WARN=""
8a5cd32001-06-07Fredrik Hübinette (Hubbe) OPTIMIZE="${OPTFLAGS-}"
8cf37d1997-01-27Per Hedbor 
dc83082000-09-15Henrik Grubbström (Grubba) if test "$cflags_is_set" = "no"; then
2901d31998-08-05Fredrik Hübinette (Hubbe)  if test "x$with_cdebug" = "xno" ; then CFLAGS=`echo " $CFLAGS " | sed -e 's@ -g @ @g'` else :
f41e0d1999-10-19Henrik Grubbström (Grubba)  fi
2901d31998-08-05Fredrik Hübinette (Hubbe) 
8cf37d1997-01-27Per Hedbor  if test "x${GCC-}" = xyes ; then
2e96cd2000-08-12Per Hedbor  # Do not use -Wall, since that produces a lot of warnings that are not
3d6e5c2000-08-17Henrik Grubbström (Grubba)  # really interresting (such as the warning for if( ... ) ... if(
2e96cd2000-08-12Per Hedbor  # ... ) .... else
5591962000-12-05Marcus Comstedt  AC_SYS_COMPILER_FLAG(-W,W,WARN) AC_SYS_COMPILER_FLAG(-Wall,Wall,WARN) AC_SYS_COMPILER_FLAG(-Wno-unused,Wno_unused,WARN) AC_SYS_COMPILER_FLAG(-Wcomment,Wcomment,WARN) AC_SYS_COMPILER_FLAG(-Wformat,Wformat,WARN) AC_SYS_COMPILER_FLAG(-Wimplicit-function-declaration,Wimplicit_function_declaration,WARN) AC_SYS_COMPILER_FLAG(-Wmultichar,Wmultichar,WARN) AC_SYS_COMPILER_FLAG(-Wswitch,Wswitch,WARN) AC_SYS_COMPILER_FLAG(-Wuninitialized,Wuninitialized,WARN) AC_SYS_COMPILER_FLAG(-Wpointer-arith,Wpointer_arith,WARN) AC_SYS_COMPILER_FLAG(-Wchar-subscripts,Wchar_subscripts,WARN) AC_SYS_COMPILER_FLAG(-Wno-long-long,Wno_long_long,WARN)
9c5a5e1997-12-20Henrik Grubbström (Grubba) 
34251a1999-02-05Martin Stjernholm  if test "x${with_static_linking-}" = "xyes" ; then
8334e31999-01-29Fredrik Hübinette (Hubbe)  AC_SYS_COMPILER_FLAG(-static,link_static,CFLAGS) else : fi
989adb1998-12-20Fredrik Hübinette (Hubbe)  ## ## -fomit-frame-pointer does not work with egcs 1.1.1 ## /Hubbe 1998-12-20 ## #if test "x$with_cdebug" = "xno" ; then # AC_SYS_COMPILER_FLAG(-fomit-frame-pointer,fomit_frame_pointer,OPTIMIZE) #else # : #fi
9c5a5e1997-12-20Henrik Grubbström (Grubba) 
8cf37d1997-01-27Per Hedbor ### Optimize for different SUN machines. If there is no working 'uname' ### no extra optimization will be done, but nothing should break either.
50adc31998-04-17Fredrik Hübinette (Hubbe)  case "`uname -m 2>/dev/null`" in sun4c)
769d1c2001-03-27Henrik Grubbström (Grubba)  # The -msparclite option seems to generate assembler that /bin/as doesn't
e65d8d1998-07-17Henrik Grubbström (Grubba)  # understand. /grubba 1998-07-17
7e83af2001-03-23Henrik Grubbström (Grubba)  # AC_SYS_COMPILER_FLAG(-msparclite,sparclite,CFLAGS)
50adc31998-04-17Fredrik Hübinette (Hubbe)  ;; sun4m)
7e83af2001-03-23Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-mv8,microsparc,CFLAGS)
50adc31998-04-17Fredrik Hübinette (Hubbe)  ;; sun4d)
7e83af2001-03-23Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-msupersparc,supersparc,CFLAGS)
50adc31998-04-17Fredrik Hübinette (Hubbe)  ;; sun4u)
7e83af2001-03-23Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-mcpu=ultrasparc,mcpu_ultrasparc,CFLAGS,[ AC_SYS_COMPILER_FLAG(-msupersparc,supersparc,CFLAGS)
d769bf2001-03-23Henrik Grubbström (Grubba)  ])
50adc31998-04-17Fredrik Hübinette (Hubbe)  ;; i586)
7e83af2001-03-23Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-mpentium,pentium,CFLAGS)
50adc31998-04-17Fredrik Hübinette (Hubbe)  ;; i686)
7e83af2001-03-23Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-mcpu=i686,mcpu_i686,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mpentiumpro,pentiumpro,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mpentium,pentium,CFLAGS)
aa29dd2001-03-19Mirar (Pontus Hagland)  ])
50adc31998-04-17Fredrik Hübinette (Hubbe)  ])
43594f2001-09-18Fredrik Hübinette (Hubbe) # AC_SYS_COMPILER_FLAG(-march=i686,march_i686,CFLAGS)
50adc31998-04-17Fredrik Hübinette (Hubbe)  ;;
2e96cd2000-08-12Per Hedbor  i86pc) case "`isalist 2>/dev/null`" in *pentium_pro*)
7e83af2001-03-23Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-mcpu=i686,mcpu_i686,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mpentiumpro,pentiumpro,CFLAGS,[ AC_SYS_COMPILER_FLAG(-mpentium,pentium,CFLAGS)
61fb902001-03-19Mirar (Pontus Hagland)  ]) ])
43594f2001-09-18Fredrik Hübinette (Hubbe) # AC_SYS_COMPILER_FLAG(-march=i686,march_i686,CFLAGS)
2e96cd2000-08-12Per Hedbor  ;; *pentium*)
7e83af2001-03-23Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-mcpu=pentium,pentium,CFLAGS,[ AC_SYS_COMPILER_FLAG(-m486,486,CFLAGS)
2e96cd2000-08-12Per Hedbor  ]) ;; esac ;;
50adc31998-04-17Fredrik Hübinette (Hubbe)  esac
b7c2ef1999-08-08Henrik Grubbström (Grubba)  # AIX DO_IF_OS(AIX, [ # Tell the linker to generate a large toc if needed
6d50892001-07-12Henrik Grubbström (Grubba)  # # This option is not needed on AIX 5L/ia64. if test "x`uname -p`" = "xia64"; then :; else AC_SYS_COMPILER_FLAG(-bbigtoc,bbigtoc,LDFLAGS) AC_SYS_COMPILER_FLAG([-Wl,-bbigtoc],Wlbbigtoc,LDFLAGS) fi
05cd672000-09-28Henrik Grubbström (Grubba)  ])
ce3dcd2001-11-02Jonas Wallden  DO_IF_OS(Darwin, [ # aka MacOS X. # Foundation framework needed by JavaVM.framework. The OS X 10.1 linker # no longer includes indirect dependencies so we need to add them here. AC_SYS_COMPILER_FLAG(-framework Foundation, framework_Foundation, LDFLAGS) # -flat_namespace only needed for linking with libMallocDebug # AC_SYS_COMPILER_FLAG(-flat_namespace, flat_namespace, LDFLAGS) ])
5866e01999-04-25Henrik Grubbström (Grubba)  else if test "x${TCC-}" = xyes ; then # Yikes! We're using the TenDRA compiler! # Make sure we can use the system headerfiles...
76e3a72000-07-11Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-Ysystem, ysystem, CPPFLAGS)
5866e01999-04-25Henrik Grubbström (Grubba)  # Use lenient ANSI compliance...
5fdd8c2000-08-02Henrik Grubbström (Grubba)  #AC_SYS_COMPILER_FLAG(-Xa, xa, CFLAGS)
5866e01999-04-25Henrik Grubbström (Grubba) 
6077101999-05-15Henrik Grubbström (Grubba)  # Find out where libtdf.a is hidden. AC_MSG_CHECKING(for machine dependant library directory) AC_CACHE_VAL(pike_cv_tcc_lib_path, [
4d5d021999-05-15Henrik Grubbström (Grubba)  pike_cv_tcc_lib_path="`${CC-cc} -dry conftest.c -i 2>&1 | sed -e '/tdfc/s/bin\/tdfc.*/lib\/sys/p' -ed| head -1`"
6077101999-05-15Henrik Grubbström (Grubba)  if test -d "$pike_cv_tcc_lib_path/." ; then :; else # Failed. pike_cv_tcc_lib_path="no" fi ]) AC_MSG_RESULT($pike_cv_tcc_lib_path) if test "$pike_cv_tcc_lib_path" = "no" ; then :; else LDFLAGS="$LDFLAGS -L$pike_cv_tcc_lib_path" # This library is needed for 64bit support on 32bit machines/OS's. AC_CHECK_LIB(tdf, __TDFUnot) fi
8cf37d1997-01-27Per Hedbor  else
5866e01999-04-25Henrik Grubbström (Grubba)  # Assume system compiler "cc".
8334e31999-01-29Fredrik Hübinette (Hubbe) 
34251a1999-02-05Martin Stjernholm  if test "x${with_static_linking-}" = "xyes" ; then
8334e31999-01-29Fredrik Hübinette (Hubbe)  DO_IF_OS(AIX, [
5866e01999-04-25Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG([-Wl,-bstatic],wl_link_static,CFLAGS)
8334e31999-01-29Fredrik Hübinette (Hubbe)  LD_FALLBACK_FLAGS="${LD_FALLBACK_FLAGS} -bstatic" ]) DO_IF_OS(OSF1, [ AC_SYS_COMPILER_FLAG(-non_shared,non_shared,CFLAGS) LD_FALLBACK_FLAGS="${LD_FALLBACK_FLAGS} -non_shared" ]) DO_IF_OS(IRIX, [ AC_SYS_COMPILER_FLAG(-non_shared,non_shared,CFLAGS) LD_FALLBACK_FLAGS="${LD_FALLBACK_FLAGS} -B static" ]) # how do you link statically on HP-UX ? else : fi
8cf37d1997-01-27Per Hedbor ### Non-gcc thingies. This should probably be enhanced...
fde5a61997-09-05Henrik Grubbström (Grubba) 
d93ff51997-11-02Henrik Grubbström (Grubba)  # Solaris
8334e31999-01-29Fredrik Hübinette (Hubbe)  DO_IF_OS(Solaris, [ AC_SYS_COMPILER_FLAG(-fast,fast,OPTIMIZE) AC_SYS_COMPILER_FLAG(-xdepend,xdepend,OPTIMIZE) AC_SYS_COMPILER_FLAG(-xs,xs,CFLAGS) # Causes __STDC__ to be 1 which causes several headerfiles to behave # differently. # AC_SYS_OS_COMPILER_FLAG(-Xc,Xc,WARN) ])
d93ff51997-11-02Henrik Grubbström (Grubba) 
de386f1998-08-06Henrik Grubbström (Grubba)  # AIX
8334e31999-01-29Fredrik Hübinette (Hubbe)  DO_IF_OS(AIX, [ # This one is needed to get the compiler to fail on errors,
c744782001-06-29Henrik Grubbström (Grubba)  # which is needed for several configure-tests.
8334e31999-01-29Fredrik Hübinette (Hubbe)  AC_SYS_COMPILER_FLAG(-qhalt=e,qhalt_e,CFLAGS) AC_SYS_COMPILER_FLAG(-qro,qro,OPTIMIZE)
dc83082000-09-15Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-qfold,qfold,OPTIMIZE) AC_SYS_COMPILER_FLAG(-qwarn64,qwarn64,WARN)
e7c34a2000-09-17Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-qflag=w:w,qflag_w_w,WARN)
dc83082000-09-15Henrik Grubbström (Grubba)  AC_DEFUN(AC_SYS_COMPILER_FLAG_QINFO, [ AC_SYS_COMPILER_FLAG(-qinfo=$1,qinfo_$1,WARN) ]) AC_SYS_COMPILER_FLAG_QINFO(cmp) AC_SYS_COMPILER_FLAG_QINFO(cnd) AC_SYS_COMPILER_FLAG_QINFO(cns) AC_SYS_COMPILER_FLAG_QINFO(cnv) AC_SYS_COMPILER_FLAG_QINFO(dcl) AC_SYS_COMPILER_FLAG_QINFO(eff) AC_SYS_COMPILER_FLAG_QINFO(enu) AC_SYS_COMPILER_FLAG_QINFO(ext) AC_SYS_COMPILER_FLAG_QINFO(gen) AC_SYS_COMPILER_FLAG_QINFO(gnr) AC_SYS_COMPILER_FLAG_QINFO(got) AC_SYS_COMPILER_FLAG_QINFO(ini) AC_SYS_COMPILER_FLAG_QINFO(inl) AC_SYS_COMPILER_FLAG_QINFO(lan) AC_SYS_COMPILER_FLAG_QINFO(obs) AC_SYS_COMPILER_FLAG_QINFO(ord) AC_SYS_COMPILER_FLAG_QINFO(par) AC_SYS_COMPILER_FLAG_QINFO(por)
e7c34a2000-09-17Henrik Grubbström (Grubba)  # ppc disabled since it complains about the system header files. # AC_SYS_COMPILER_FLAG_QINFO(ppc) # ppt disabled since tracing the preprocessor isn't interresting. # AC_SYS_COMPILER_FLAG_QINFO(ppt)
dc83082000-09-15Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG_QINFO(pro) AC_SYS_COMPILER_FLAG_QINFO(rea) AC_SYS_COMPILER_FLAG_QINFO(ret)
e7c34a2000-09-17Henrik Grubbström (Grubba)  # trd disabled, since it adds extra errors (in particular 1506-419). # AC_SYS_COMPILER_FLAG_QINFO(trd)
dc83082000-09-15Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG_QINFO(tru) AC_SYS_COMPILER_FLAG_QINFO(uni) AC_SYS_COMPILER_FLAG_QINFO(use) # AC_SYS_COMPILER_FLAG(-qalias=addr,qalias_addr,OPTIMIZE) # AC_SYS_COMPILER_FLAG(-qlibansi,qlibansi,OPTIMIZE)
b7c2ef1999-08-08Henrik Grubbström (Grubba)  # Tell the linker to generate a large toc if needed
9773532001-07-12Henrik Grubbström (Grubba)  # Tell the linker to generate a large toc if needed # # This option is not needed on AIX 5L/ia64. if test "x`uname -p`" = "xia64"; then :; else AC_SYS_COMPILER_FLAG(-bbigtoc,bbigtoc,LDFLAGS) fi
8334e31999-01-29Fredrik Hübinette (Hubbe)  ])
de386f1998-08-06Henrik Grubbström (Grubba) 
fde5a61997-09-05Henrik Grubbström (Grubba)  # HP-UX
8334e31999-01-29Fredrik Hübinette (Hubbe)  DO_IF_OS(HP-UX, [ AC_SYS_COMPILER_FLAG(-D__STDC_EXT__,stdc_ext,CFLAGS)
6df22d1999-08-27Fredrik Hübinette (Hubbe)  AC_SYS_COMPILER_FLAG([-Wp,-H50000],cpp_buffer_size,CFLAGS)
8334e31999-01-29Fredrik Hübinette (Hubbe)  AC_SYS_COMPILER_FLAG(+ESlit,plus_ESlit,OPTIMIZE) AC_SYS_COMPILER_FLAG(+Odataprefetch,plus_Odataprefetch,OPTIMIZE) AC_SYS_COMPILER_FLAG(+Ofailsafe,plus_Ofailsafe,OPTIMIZE) AC_SYS_COMPILER_FLAG(+O3,plus_O3,OPTIMIZE) # Ignore the following warnings if you enable +w1 # 414 Optimization reduced to +O2 for compatibility with Debug. # 530 Casting from loose to strict alignment # 558 Empty declaration. # AC_SYS_COMPILER_FLAG(+w1,plus_w1,WARN) ])
fde5a61997-09-05Henrik Grubbström (Grubba)  # OSF/1
8334e31999-01-29Fredrik Hübinette (Hubbe)  DO_IF_OS(OSF1, [ AC_SYS_COMPILER_FLAG(-fast,fast,OPTIMIZE) # The need for -ieee is not detected properly by the FPE tests below. # AC_SYS_COMPILER_FLAG(-ieee,ieee,CFLAGS) AC_SYS_COMPILER_FLAG(-readonly_strings,readonly_strings,OPTIMIZE) AC_SYS_COMPILER_FLAG(-assume trusted_short_alignment, assume_trusted_short_alignment,OPTIMIZE) AC_SYS_COMPILER_FLAG(-assume aligned_objects, assume_aligned_objects,OPTIMIZE) AC_SYS_COMPILER_FLAG(-no_misalign,no_misalign,OPTIMIZE) if test "x$with_cdebug" = "xyes" ; then # FIXME: # Maybe should remove the -g flag if this succeeds.
7e83af2001-03-23Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-g3,g3,CFLAGS)
8334e31999-01-29Fredrik Hübinette (Hubbe)  AC_SYS_COMPILER_FLAG(-trapuv,trapuv,WARN) fi AC_SYS_COMPILER_FLAG(-host,host,OPTIMIZE)
633b031998-07-16Fredrik Hübinette (Hubbe) 
8334e31999-01-29Fredrik Hübinette (Hubbe)  # Flags that cause errors or change compiler behaviour # must go in CFLAGS, they can not go in WARN # /Hubbe AC_SYS_COMPILER_FLAG(-std1,std1,CFLAGS) AC_SYS_COMPILER_FLAG(-warnprotos,warnprotos,WARN) ])
a897001997-04-10Fredrik Hübinette (Hubbe) 
fde5a61997-09-05Henrik Grubbström (Grubba)  # IRIX
8334e31999-01-29Fredrik Hübinette (Hubbe)  DO_IF_OS(IRIX, [ # sopt disabled since it takes too long time on interpret.c (>45min on an O²) # AC_SYS_COMPILER_FLAG(-sopt,sopt,OPTIMIZE) # -n32 moved to smartlink so it will affekt cc as well as linker # this way the user can override it by setting LDFLAGS and/or CFLAGS # AC_SYS_COMPILER_FLAG(-n32,n32,CFLAGS) AC_SYS_COMPILER_FLAG(-fullwarn,fullwarn,WARN)
c4c6c72000-03-27Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-woff 1209,woff_1209,WARN)
8334e31999-01-29Fredrik Hübinette (Hubbe)  if test x$with_cdebug = xyes ; then
7e83af2001-03-23Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-g3,g3,CFLAGS)
8334e31999-01-29Fredrik Hübinette (Hubbe)  fi if test x$with_rtldebug = xyes ; then AC_SYS_COMPILER_FLAG(-trapuw,trapuw,WARN) fi ])
fde5a61997-09-05Henrik Grubbström (Grubba) 
a747c42000-05-01Henrik Grubbström (Grubba)  # Windows NT DO_IF_OS(Windows_NT, [ # FIXME: The test below probably doesn't work.
69bae82000-08-20Henrik Grubbström (Grubba)  if echo "x$CC" | grep "rntecl" >/dev/null 2>&1; then
a747c42000-05-01Henrik Grubbström (Grubba)  # Some options used by ecl (Intel's IA64 compiler). # We want threads, and link libc statically. AC_SYS_COMPILER_FLAG(-MT,MT,LDFLAGS) # Interprocedural optimizations.
2e8e8f2000-08-21Henrik Grubbström (Grubba)  # For some reason this seems to cause the error: # dynamic_buffer.obj : error LNK2001: unresolved external symbol "[Entry] ?1memcpy" (.?1memcpy) # AC_SYS_COMPILER_FLAG(-Qip,Qip,OPTIMIZE)
a747c42000-05-01Henrik Grubbström (Grubba)  # More warnings.
69bae82000-08-20Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-W3,W3,WARN)
a747c42000-05-01Henrik Grubbström (Grubba) 
6a20892000-05-01Henrik Grubbström (Grubba)  if test x$with_rtldebug = xyes ; then
a747c42000-05-01Henrik Grubbström (Grubba)  # Initialize auto variables to 0xcc. # (Only if optimizations are turned off with -Od). AC_SYS_COMPILER_FLAG(-GZ,GZ,WARN) fi else :; fi
1f21332000-07-28Fredrik Hübinette (Hubbe) 
9b15e02000-12-22Fredrik Hübinette (Hubbe)  # Only do this explicitly for now
82d9092000-12-14Martin Nilsson  if test x$with_dynamic_modules = xyes ; then
1807bd2000-11-28Fredrik Hübinette (Hubbe)  AC_MSG_WARN([Enabling dynamic modules for Win32])
9b15e02000-12-22Fredrik Hübinette (Hubbe) # EXTRA_MODULE_REQUIREMENTS="${EXTRA_MODULE_REQUIREMENTS} import_functions.h" EXTRA_OBJS="${EXTRA_OBJS} dlopen.o"
1807bd2000-11-28Fredrik Hübinette (Hubbe)  pike_cv_sys_dynamic_loading=yes with_dynamic_modules=yes
9b15e02000-12-22Fredrik Hübinette (Hubbe)  AC_DEFINE(USE_MY_WIN32_DLOPEN)
1807bd2000-11-28Fredrik Hübinette (Hubbe)  fi
a747c42000-05-01Henrik Grubbström (Grubba)  ])
a897001997-04-10Fredrik Hübinette (Hubbe) dnl
a9d05c1997-04-10Fredrik Hübinette (Hubbe) dnl This does not work with Digital UNIX cc/ld (cc thinks it is ok, ld does not)
a897001997-04-10Fredrik Hübinette (Hubbe) dnl
e8ab9c1997-11-03Henrik Grubbström (Grubba) dnl AC_SYS_COMPILER_FLAG(-native,native,OPTIMIZE)
a9d05c1997-04-10Fredrik Hübinette (Hubbe) dnl
300af11997-04-15Fredrik Hübinette (Hubbe) 
a9d05c1997-04-10Fredrik Hübinette (Hubbe) dnl ### Ok. This is for apcc...
300af11997-04-15Fredrik Hübinette (Hubbe) case "$CC" in *apcc)
e8ab9c1997-11-03Henrik Grubbström (Grubba)  AC_SYS_COMPILER_FLAG(-XO=5,apcc_opt,OPTIMIZE) AC_SYS_COMPILER_FLAG(-Xcallmod=2,apcc_opt_2,OPTIMIZE)
300af11997-04-15Fredrik Hübinette (Hubbe)  ;; esac
8cf37d1997-01-27Per Hedbor 
b582fe1997-11-23Per Hedbor # Old cc for solaris. # AC_SYS_CPU_COMPILER_FLAG(sun4m,-Xpipe=micro,microsparc,OPTIMIZE) # AC_SYS_CPU_COMPILER_FLAG(sun4d,-Xpipe=super,supersparc,OPTIMIZE) # AC_SYS_CPU_COMPILER_FLAG(sun4u,-Xpipe=super,ultrasparc,OPTIMIZE)
8cf37d1997-01-27Per Hedbor 
fde5a61997-09-05Henrik Grubbström (Grubba)  case "${CFLAGS-} $OPTIMIZE" in
2a7fc81999-11-29Boyd Lynn Gerber  *-O*) ;; *+O*) ;; *-fast*) ;; *) case "$pike_cv_sys_os:$GCC" in
bcb5382001-08-23Boyd Lynn Gerber  UnixWare*:no|OpenUNIX*:no)
2a7fc81999-11-29Boyd Lynn Gerber  OPTIMIZE="" ;; *) AC_SYS_COMPILER_FLAG(-O2,O2,OPTIMIZE) if test "x$pike_cv_option_O2" != "xyes"; then AC_SYS_COMPILER_FLAG(-O,O,OPTIMIZE) fi ;; esac ;;
8cf37d1997-01-27Per Hedbor  esac
9925681996-10-11Fredrik Hübinette (Hubbe)  fi
7e663c1999-04-25Henrik Grubbström (Grubba)  fi
c744782001-06-29Henrik Grubbström (Grubba) else # CFLAGS has already been set by the user. # Avoid adding anything that isn't essential. DO_IF_OS(AIX, [ # This one is needed to get the compiler to fail on errors, # which is needed for several configure-tests. AC_SYS_COMPILER_FLAG(-qhalt=e,qhalt_e,CFLAGS) ])
5267b71995-08-09Fredrik Hübinette (Hubbe) fi
bcb5382001-08-23Boyd Lynn Gerber ############################################################################# ## Check if we should default to --with-machine-code ############################################################################# if test "$with_machine_code" = "no"; then :; else if test "x${GCC-}" = xyes ; then case "`uname -p 2>/dev/null || echo unknown`" in
9489742001-11-08Fredrik Hübinette (Hubbe)  powerpc|sparc|ia32|i?86)
bcb5382001-08-23Boyd Lynn Gerber  with_machine_code="yes" ;; unknown) case "`uname -m`" in
9489742001-11-08Fredrik Hübinette (Hubbe)  powerpc|sparc|ia32|i?86) with_machine_code="yes" ;;
bcb5382001-08-23Boyd Lynn Gerber  ia64) # with_machine_code="yes" ;; esac ;; esac else :; fi
9489742001-11-08Fredrik Hübinette (Hubbe) 
bcb5382001-08-23Boyd Lynn Gerber  if test "$with_machine_code" = "yes"; then
9489742001-11-08Fredrik Hübinette (Hubbe)  echo 'Enabling machine-code interpreter.'
bcb5382001-08-23Boyd Lynn Gerber  AC_DEFINE(PIKE_USE_MACHINE_CODE) else :; fi fi
5c8e891995-10-29Fredrik Hübinette (Hubbe) 
2565f41997-02-26Fredrik Hübinette (Hubbe) if test ! -d modules/. ; then
cb728c1997-01-12Henrik Grubbström (Grubba)  mkdir modules fi
c0911b1997-10-03Henrik Grubbström (Grubba)  ############################################################################# ## Search for some popular places where libraries may be hidden. #############################################################################
08af092000-04-12Marcus Comstedt if test x$"pike_cv_sys_os" != xWindows_NT ; then
a12f271998-01-10Fredrik Hübinette (Hubbe) 
d93ff51997-11-02Henrik Grubbström (Grubba) echo Searching for include-file directories...
8a947f1998-09-01Fredrik Hübinette (Hubbe) 
c0911b1997-10-03Henrik Grubbström (Grubba) if test $cppflags_is_set = no -a x${C_INCLUDE_PATH-} = x ; then
8a947f1998-09-01Fredrik Hübinette (Hubbe)  real_include_dirs=''
c96ea21998-04-04Henrik Grubbström (Grubba)  for d in `echo ${with_include_path} | sed 's/:/ /g'` \
cf39902001-01-19Henrik Grubbström (Grubba)  `echo $prefix | sed "s@^NONE@$with_root$ac_default_prefix@g"`/include \ $with_root/usr/local/include $with_root/sw/local/include \ $with_root/usr/gnu/include $with_root/opt/gnu/include \ $with_root/sw/gnu/include $with_root/sw/include \ $with_root/usr/freeware/include $with_root/usr/pkg/include \ `echo $with_root/usr/X11*/include | sort -r` $srcdir `pwd`
900def1997-01-12Henrik Grubbström (Grubba)  do
04a9251998-03-21Fredrik Hübinette (Hubbe)  AC_MSG_CHECKING($d)
d3e25e1998-07-15Fredrik Hübinette (Hubbe)  case x$d in x/usr/include | x/usr//include) ;; *) if test -d "$d/." ; then
8a947f1998-09-01Fredrik Hübinette (Hubbe)  REALDIR="`cd $d/. ; /bin/pwd`" if test "x$REALDIR" = x ; then REALDIR=UNKNOWN else : fi case " $CPPFLAGS $real_include_dirs " in *\ -I$d\ * | *\ -I$REALDIR\ *) AC_MSG_RESULT(already added) ;; *) AC_MSG_RESULT(added) CPPFLAGS="${CPPFLAGS} -I$d" if test "x$REALDIR" != xUNKNOWN; then real_include_dirs="${real_include_dirs} -I$REALDIR" else : fi ;; esac
d3e25e1998-07-15Fredrik Hübinette (Hubbe)  else AC_MSG_RESULT(no) fi ;; esac
900def1997-01-12Henrik Grubbström (Grubba)  done
cb728c1997-01-12Henrik Grubbström (Grubba) else :
900def1997-01-12Henrik Grubbström (Grubba) fi
d93ff51997-11-02Henrik Grubbström (Grubba) 
8a947f1998-09-01Fredrik Hübinette (Hubbe) #CPPFLAGS="${CPPFLAGS} -I$srcdir -I`pwd`"
0c73e91998-05-22Henrik Grubbström (Grubba) 
d93ff51997-11-02Henrik Grubbström (Grubba) echo Searching for library directories...
c0911b1997-10-03Henrik Grubbström (Grubba) if test $ldflags_is_set = no ; then
22f9511998-04-04Henrik Grubbström (Grubba)  for d in `echo ${with_lib_path} | sed 's/:/ /g'` \
cf39902001-01-19Henrik Grubbström (Grubba)  `echo $exec_prefix | sed "s@^NONE@$prefix/lib@g" | sed "s@^NONE@$with_root$ac_default_prefix/lib@g"` \ $with_root/usr/local/lib $with_root/sw/local/lib $with_root/sw/lib \ $with_root/usr/gnu/lib $with_root/opt/gnu/lib $with_root/sw/gnu/lib \ $with_root/usr/freeware/lib $with_root/usr/pkg/lib \ `echo $with_root/usr/X11*/lib | sort -r`
c0911b1997-10-03Henrik Grubbström (Grubba)  do
04a9251998-03-21Fredrik Hübinette (Hubbe)  AC_MSG_CHECKING($d) if test -d "$d/." ; then
8a947f1998-09-01Fredrik Hübinette (Hubbe)  case " $LDFLAGS " in *\ -L$d\ -R$d\ * | *\ -R$d\ -L$d\ *) AC_MSG_RESULT(already added) ;; *) AC_MSG_RESULT(added) LDFLAGS="${LDFLAGS} -R$d -L$d" ;; esac
c0911b1997-10-03Henrik Grubbström (Grubba)  else
6fa2281997-11-04Henrik Grubbström (Grubba)  AC_MSG_RESULT(no)
c0911b1997-10-03Henrik Grubbström (Grubba)  fi done else : fi
c67b691996-11-16Fredrik Hübinette (Hubbe) 
6fa2281997-11-04Henrik Grubbström (Grubba) echo Searching for binary directories...
cf39902001-01-19Henrik Grubbström (Grubba) for d in `echo $exec_prefix | sed "s@^NONE@$prefix@g" | sed "s@^NONE@$with_root$ac_default_prefix@g"` \ "$with_root" $with_root/usr $with_root/usr/ccs $with_root/usr/vac \ $with_root/usr/local $with_root/sw/local $with_root/usr/gnu \ $with_root/opt/gnu $with_root/sw/gnu $with_root/sw \ $with_root/usr/freeware $with_root/usr/pkg
6fa2281997-11-04Henrik Grubbström (Grubba) do AC_MSG_CHECKING($d/bin) if test -d "$d/bin/." ; then AC_MSG_RESULT(added) EXTRA_PATH="${EXTRA_PATH}:$d/bin" else AC_MSG_RESULT(no) fi done export EXTRA_PATH
a12f271998-01-10Fredrik Hübinette (Hubbe) else
d4f9e92000-05-19Martin Stjernholm  # We are running NT CPPFLAGS="${CPPFLAGS} -I$srcdir -I`pwd`"
a12f271998-01-10Fredrik Hübinette (Hubbe) fi
dcad551996-08-03Fredrik Hübinette (Hubbe) #############################################################################
bf622c1997-09-19Henrik Grubbström (Grubba) ## At this point we have at last initialized the compiler! #############################################################################
c411dc1997-04-21Fredrik Hübinette (Hubbe) if test ! -f confdefs.h ; then AC_MSG_WARN([Warning, lost confdefs.h, testing will be flawed!! You might need to use bash instead of /bin/sh to get correct results. To do this, please type the following at an sh prompt: \$ rm ./config.cache \$ CONFIG_SHELL=/path/to/bash \$ export CONFIG_SHELL \$ $CONFIG_SHELL ./configure ]) fi #############################################################################
99ed771997-06-03Fredrik Hübinette (Hubbe) AC_DEFINE(POSIX_SOURCE)
1acce82001-01-27Martin Stjernholm if test "x$enable_binary" != "xno"; then
5267b71995-08-09Fredrik Hübinette (Hubbe) 
1acce82001-01-27Martin Stjernholm  AC_MSG_CHECKING(ansi prototype capability) AC_CACHE_VAL(pike_cv_sys_ansi_prototypes, [ AC_TRY_COMPILE([int foo(int bar);],[], [pike_cv_sys_ansi_prototypes=yes], [pike_cv_sys_ansi_prototypes=no]) ])
5267b71995-08-09Fredrik Hübinette (Hubbe) 
1acce82001-01-27Martin Stjernholm  if test "$pike_cv_sys_ansi_prototypes" = "yes"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no, giving up...) exit 1 fi fi
9925681996-10-11Fredrik Hübinette (Hubbe) 
dcad551996-08-03Fredrik Hübinette (Hubbe) #############################################################################
7ac9c11998-12-03Henrik Grubbström (Grubba) # The AC_PROG_INSTALL test is broken if $INSTALL is specified by hand. # The FreeBSD ports system does this... # Workaround: if test "x$INSTALL" = "x"; then :; else # $INSTALL overrides ac_cv_path_install anyway... ac_cv_path_install="$INSTALL" fi
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_PROG_INSTALL AC_PROG_CPP AC_PROG_RANLIB
02c9642000-12-18Fredrik Hübinette (Hubbe) if test "x${AR-}" = x ; then AC_PATH_PROG(AR, ar, ar, $PATH:$EXTRA_PATH) export AR fi
6fa2281997-11-04Henrik Grubbström (Grubba) AC_SUBST(AR)
dcad551996-08-03Fredrik Hübinette (Hubbe) #############################################################################
9fe0a01997-08-16Henrik Grubbström (Grubba) # installbsd seems to be broken on some versions of AIX # # /grubba 1997-08-16 case "$ac_cv_path_install" in *installbsd*) AC_MSG_CHECKING(if $ac_cv_path_install works) AC_CACHE_VAL(pike_cv_install_works, [ if $ac_cv_path_install "$srcdir/configure.in" ./conftest >/dev/null 2>&1 then if cmp "$srcdir/configure.in" ./conftest >/dev/null 2>&1; then pike_cv_install_works=yes; else pike_cv_install_works=no; fi else pike_cv_install_works=no; fi if test -f ./conftest; then rm -f ./conftest fi ]) AC_MSG_RESULT($pike_cv_install_works) if test "$pike_cv_install_works" = "no"; then echo "Warning: Falling back to $ac_install_sh" INSTALL="$ac_install_sh" fi ;; esac #############################################################################
bfd5a52001-02-17Henrik Grubbström (Grubba) 
26e7e71996-04-23Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(for yacc clone that handles %pure_parser)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_prog_working_yacc,
26e7e71996-04-23Fredrik Hübinette (Hubbe) [
4e2e071998-11-16Fredrik Hübinette (Hubbe) for YACC in pyacc byacc "bison -y" yacc "None"; do
26e7e71996-04-23Fredrik Hübinette (Hubbe)  set dummy $YACC; ac_word=$2 has_it=no IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" for ac_dir in $PATH; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/$ac_word; then has_it="yes" break
8f42881996-03-01Fredrik Hübinette (Hubbe)  fi
26e7e71996-04-23Fredrik Hübinette (Hubbe)  done IFS="$ac_save_ifs" if test "$has_it" = "yes"; then cat >conftest.y<<\EOF %pure_parser %{ void parse(); void yyerror(char *); %} %% all: foo bar foo: 'f' 'o' 'o' { parse(); } ; bar: 'b' 'a' 'r' ; %% int context;
8f42881996-03-01Fredrik Hübinette (Hubbe) 
26e7e71996-04-23Fredrik Hübinette (Hubbe) int yylex(YYSTYPE *yylval) { switch(context++) { case 0: return 'f'; case 1: return 'o'; case 2: return 'o'; case 3: return 'b'; case 4: return 'a'; case 5: return 'r'; default: return 0; } } int depth=0; void parse() { int tmp; if(depth++>5) return; tmp=context; context=0; yyparse(); context=tmp; } int errors=0; void yyerror(char *fel) { errors++; } int main() { parse(); exit(errors); } EOF if $YACC -d conftest.y 1>&5 2>&5; then
1acce82001-01-27Martin Stjernholm  if test "x$enable_binary" = "xno"; then break else AC_TRY_RUN([
26e7e71996-04-23Fredrik Hübinette (Hubbe) #include "y.tab.c"
75920f1997-12-28Fredrik Hübinette (Hubbe) ],pure_parser_works=yes,pure_parser_works=no,pure_parser_works=no)
1acce82001-01-27Martin Stjernholm  if test "$pure_parser_works" = "yes"; then break fi
26e7e71996-04-23Fredrik Hübinette (Hubbe)  fi fi
8f42881996-03-01Fredrik Hübinette (Hubbe)  fi
26e7e71996-04-23Fredrik Hübinette (Hubbe) done
06983f1996-09-22Fredrik Hübinette (Hubbe) pike_cv_prog_working_yacc="$YACC"
26e7e71996-04-23Fredrik Hübinette (Hubbe) ])
06983f1996-09-22Fredrik Hübinette (Hubbe) YACC="$pike_cv_prog_working_yacc"
4943ca1997-04-21Fredrik Hübinette (Hubbe)  if test "x$YACC" = "xNone" ; then
1acce82001-01-27Martin Stjernholm  AC_MSG_RESULT([Get bison if you want to do "make export"])
4943ca1997-04-21Fredrik Hübinette (Hubbe)  YACC="bison -y" else AC_MSG_RESULT($YACC) fi
5267b71995-08-09Fredrik Hübinette (Hubbe) 
4174542001-01-26Martin Stjernholm #############################################################################
f5d7042001-01-20Henrik Grubbström (Grubba) AC_MSG_CHECKING(for the type of the last argument to __yy_memcpy) AC_CACHE_VAL(pike_cv___yy_memcpy_count_type, [ pike_cv___yy_memcpy_count_type=unknown
4865232001-01-20Henrik Grubbström (Grubba)  for count_type in "unsigned int" "size_t" "unsigned long" "int"; do
a8adfd2001-01-20Henrik Grubbström (Grubba)  cat >conftest.y <<EOF
f5d7042001-01-20Henrik Grubbström (Grubba) %pure_parser %{ #include <stdio.h> #ifndef __GNUC__ #ifndef __cplusplus static void __yy_memcpy(char *to, char *from, $count_type count); #endif /* !__cplusplus */ #endif /* !__GNUC__ */
4865232001-01-20Henrik Grubbström (Grubba)  void yyerror(char *); int yylex(void *);
f5d7042001-01-20Henrik Grubbström (Grubba) %} %% all: foo bar
a8adfd2001-01-20Henrik Grubbström (Grubba) foo: 'f' 'o' 'o' { fprintf(stderr, "foo\\n"); } ;
f5d7042001-01-20Henrik Grubbström (Grubba) bar: 'b' 'a' 'r' ; %%
4865232001-01-20Henrik Grubbström (Grubba) int yylex(void *yylval) { return 'f'; }
a8adfd2001-01-20Henrik Grubbström (Grubba) void yyerror(char *err) { fprintf(stderr, "ERR: %s\\n", err); }
f5d7042001-01-20Henrik Grubbström (Grubba) EOF
4865232001-01-20Henrik Grubbström (Grubba)  echo conftest.y: 1>&5 cat conftest.y 1>&5
f5d7042001-01-20Henrik Grubbström (Grubba)  if $YACC -d conftest.y 1>&5 2>&5; then AC_TRY_LINK([ #include "y.tab.c" ], [ yyparse(); exit(0); ], [ pike_cv___yy_memcpy_count_type=$count_type break ]) fi done ]) AC_MSG_RESULT($pike_cv___yy_memcpy_count_type) if test "x$pike_cv___yy_memcpy_count_type" = "xunknown"; then AC_MSG_WARN([Defaulting to unsigned int.])
6ded522001-07-13Henrik Grubbström (Grubba)  YY_COUNT_TYPE="unsigned int"
f5d7042001-01-20Henrik Grubbström (Grubba) else
6ded522001-07-13Henrik Grubbström (Grubba)  YY_COUNT_TYPE="$pike_cv___yy_memcpy_count_type"
f5d7042001-01-20Henrik Grubbström (Grubba) fi
6ded522001-07-13Henrik Grubbström (Grubba) AC_SUBST(YY_COUNT_TYPE)
f5d7042001-01-20Henrik Grubbström (Grubba) 
dcad551996-08-03Fredrik Hübinette (Hubbe) #############################################################################
bf622c1997-09-19Henrik Grubbström (Grubba) ## At this point we have found all binaries we are going to use. ############################################################################# AC_C_CONST
3bb83a1997-09-22Henrik Grubbström (Grubba) # The above doesn't find IBM C's buggy const. if test "$ac_cv_c_const" = "yes"; then AC_MSG_CHECKING(if const really does work)
8976531997-12-22Fredrik Hübinette (Hubbe)  AC_CACHE_VAL(pike_cv_c_really_const,[ AC_TRY_COMPILE([
3bb83a1997-09-22Henrik Grubbström (Grubba) const int foo(int bar) { return bar; }
8976531997-12-22Fredrik Hübinette (Hubbe)  ], [ return bar(0); ], [ pike_cv_c_really_const=yes ], [ pike_cv_c_really_const=no ])
3bb83a1997-09-22Henrik Grubbström (Grubba)  ])
8976531997-12-22Fredrik Hübinette (Hubbe)  AC_MSG_RESULT($pike_cv_c_really_const) if test "x$pike_cv_c_really_const" = xno ; then AC_DEFINE(const, []) else : fi
3bb83a1997-09-22Henrik Grubbström (Grubba) fi
82c04f1999-04-25Henrik Grubbström (Grubba) AC_MSG_CHECKING(if we can cast void * to a function pointer) AC_CACHE_VAL(pike_cv_function_cast, [ AC_TRY_COMPILE([ void *foo = 0; ],[ void (*bar)(void) = (void (*)(void)) foo; ],[ pike_cv_function_cast="yes" ], [ pike_cv_function_cast="no" ]) ]) if test "$pike_cv_function_cast" = "yes"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_DEFINE(NO_CAST_TO_FUN) fi
bf622c1997-09-19Henrik Grubbström (Grubba) #############################################################################
6930181996-02-25Fredrik Hübinette (Hubbe) AC_HEADER_TIME AC_HEADER_STDC
5ebdb51996-09-22Fredrik Hübinette (Hubbe) AC_CHECK_HEADERS(sys/rusage.h time.h sys/time.h sys/types.h unistd.h stdlib.h \
d4debf1997-05-19Henrik Grubbström (Grubba) memory.h values.h string.h strings.h fcntl.h sys/filio.h sys/sockio.h crypt.h \
7cccc52000-12-27Mirar (Pontus Hagland) locale.h sys/select.h net/socket.h sys/mman.h setjmp.h \
ecf1552001-09-10Henrik Grubbström (Grubba) limits.h pthread.h crt/signal.h sys/id.h mach-o/dyld.h \
4238391998-07-09Francesco Chemolli thread.h dlfcn.h dld.h dl.h sys/times.h sched.h sys/procfs.h sys/param.h \ winsock.h sys/ioct.h sys/socket.h malloc.h netinet/in.h sys/wait.h winbase.h \ grp.h pwd.h passwd.h group.h winsock2.h signal.h sys/file.h poll.h sys/poll.h \
3adb2f2000-08-28Fredrik Hübinette (Hubbe) socket.h ieeefp.h fp_class.h floatingpoint.h sys/priocntl.h sys/sched.h \
c3d1032001-06-12Henrik Grubbström (Grubba) windows.h float.h errno.h stddef.h mmx.h)
5267b71995-08-09Fredrik Hübinette (Hubbe) 
7cccc52000-12-27Mirar (Pontus Hagland) # some Linux systems have a broken resource.h that compiles anyway /Mirar
c5cbce2000-12-27Mirar (Pontus Hagland) AC_MSG_CHECKING([for sys/resource.h])
4492cc2000-12-28Henrik Grubbström (Grubba) AC_CACHE_VAL(pike_cv_sys_resource_h, [ AC_TRY_COMPILE([ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif /* HAVE_SYS_TYPES_H */
b5fac72000-12-28Henrik Grubbström (Grubba) #ifdef HAVE_TIME_H #include <time.h> #endif /* HAVE_TIME_H */ #ifdef HAVE_SYS_TIME_H #include <sys/time.h> #endif /* HAVE_SYS_TIME_H */
4492cc2000-12-28Henrik Grubbström (Grubba)  #include <sys/resource.h> ],[], [pike_cv_sys_resource_h=yes], [pike_cv_sys_resource_h=no]) ])
c5cbce2000-12-27Mirar (Pontus Hagland) if test "x$pike_cv_sys_resource_h" = "xyes"; then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_SYS_RESOURCE_H) else AC_MSG_RESULT(no) fi
7cccc52000-12-27Mirar (Pontus Hagland) 
75920f1997-12-28Fredrik Hübinette (Hubbe) AC_CHECK_SIZEOF(char *,4)
d0d62b2000-08-18Henrik Grubbström (Grubba) AC_CHECK_SIZEOF(int, 4) AC_CHECK_SIZEOF(short, 2) AC_CHECK_SIZEOF(float, 4) AC_CHECK_SIZEOF(double, 8) AC_CHECK_SIZEOF(long, 4) AC_CHECK_SIZEOF(long long, 8) AC_CHECK_SIZEOF(__int64, 8)
5267b71995-08-09Fredrik Hübinette (Hubbe) 
6f7df82000-06-29Henrik Grubbström (Grubba) AC_MY_CHECK_TYPE(size_t,unsigned long) AC_MY_CHECK_TYPE(ptrdiff_t,long)
1e577b1999-07-15Fredrik Hübinette (Hubbe) AC_MY_CHECK_TYPE(off_t,long) AC_MY_CHECK_TYPE(pid_t,int) AC_MY_CHECK_TYPE(uid_t,int) AC_MY_CHECK_TYPE(gid_t,int) AC_MY_CHECK_TYPE(time_t,INT32) AC_MY_CHECK_TYPE(pri_t, short)
6930181996-02-25Fredrik Hübinette (Hubbe) AC_TYPE_SIGNAL
5267b71995-08-09Fredrik Hübinette (Hubbe) 
dcad551996-08-03Fredrik Hübinette (Hubbe) dnl AC_CHECK_LIB(PW, alloca)
b04d5f1996-07-08Fredrik Hübinette (Hubbe) 
5c8e891995-10-29Fredrik Hübinette (Hubbe) AC_CHECK_LIB(m, floor)
dc5da71997-11-03Henrik Grubbström (Grubba)  AC_CHECK_LIB(socket, socket)
a12f271998-01-10Fredrik Hübinette (Hubbe) 
08af092000-04-12Marcus Comstedt if test x"$pike_cv_sys_os" = xWindows_NT ; then
d87ab42000-08-17Henrik Grubbström (Grubba)  AC_MSG_CHECKING(if we should use the 64 bit API) AC_CACHE_VAL(pike_cv_sys_win64, [ AC_EGREP_CPP(yes, [ #if defined(_WIN64) || defined(__WIN64__) yes #else no #endif ], [ pike_cv_sys_win64=yes ], [ pike_cv_sys_win64=no ]) ]) if test "x$pike_cv_sys_win64" = "xyes"; then AC_MSG_RESULT(yes)
e718852000-08-18Henrik Grubbström (Grubba)  # Apparently the libraries are stilled named *32... # LIBS="-lkernel64 -lws2_64 -ladvapi64 $LIBS"
bcb5382001-08-23Boyd Lynn Gerber  LIBS="-lshell32 -lkernel32 -lws2_32 -ladvapi32 $LIBS"
d87ab42000-08-17Henrik Grubbström (Grubba)  else AC_MSG_RESULT(no)
bcb5382001-08-23Boyd Lynn Gerber  LIBS="-lshell32 -lkernel32 -lws2_32 -ladvapi32 $LIBS"
d87ab42000-08-17Henrik Grubbström (Grubba)  fi
a12f271998-01-10Fredrik Hübinette (Hubbe) fi
dc5da71997-11-03Henrik Grubbström (Grubba) AC_CHECK_LIB(nsl, gethostbyname)
dac6371999-10-17Mirar (Pontus Hagland) AC_CHECK_LIB(rt, nanosleep)
dc5da71997-11-03Henrik Grubbström (Grubba) 
ca74dd1996-10-08Fredrik Hübinette (Hubbe) AC_CHECK_LIB(dl, dlopen)
4238391998-07-09Francesco Chemolli AC_CHECK_LIB(dld, shl_load)
59bc1b1997-01-22Bernhard Fastenrath AC_CHECK_LIB(dld, dld_link)
07513e1996-10-04Fredrik Hübinette (Hubbe) 
d98e0d1997-01-15Fredrik Hübinette (Hubbe)  if test "${pike_cv_sys_os}" = "Linux"; then
7b39411997-02-06Fredrik Hübinette (Hubbe)  if test "${ac_cv_lib_m_floor}" = "no"; then
d98e0d1997-01-15Fredrik Hübinette (Hubbe)  AC_MSG_WARN(I will compensate for this by adding -lc -lm) LIBS="${LIBS} -lc -lm" fi
f8663d1997-09-16Henrik Grubbström (Grubba)  if test "$ac_cv_header_sched_h" = "yes"; then AC_MSG_CHECKING(if sched.h has a typo) AC_CACHE_VAL(pike_cv_broken_sched_h, [ AC_TRY_COMPILE([ #include <sched.h> ],[ ],[ pike_cv_broken_shed_h=no ], [ OLDCPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -D_P=__P" AC_TRY_COMPILE([ #include <sched.h> ],[ ],[ pike_cv_broken_sched_h=yes ],[ pike_cv_broken_sched_h="very broken" ]) CPPFLAGS="$OLDCPPFLAGS" ]) ]) AC_MSG_RESULT($pike_cv_broken_sched_h) if test "$pike_cv_broken_sched_h" = "yes"; then AC_MSG_WARN(Applying workaround) CPPFLAGS="$CPPFLAGS -D_P=__P" fi fi
d10ed51995-11-15Fredrik Hübinette (Hubbe) fi
5c8e891995-10-29Fredrik Hübinette (Hubbe) 
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
e45ef22001-02-14Mirar (Pontus Hagland) using_threads="no (forced)"
eec1371996-11-02Fredrik Hübinette (Hubbe) if test x$with_threads = xyes ; then
e45ef22001-02-14Mirar (Pontus Hagland)  using_threads="no (no known threads found)"
50b0391997-01-27Henrik Grubbström (Grubba)  OLDLIBS="$LIBS"
284e061998-11-09Fredrik Hübinette (Hubbe)  OLDCFLAGS="$CFLAGS"
07513e1996-10-04Fredrik Hübinette (Hubbe) 
b1f4eb1998-01-13Fredrik Hübinette (Hubbe) if test "x$pike_cv_sys_os" = "xWindows_NT" ; then # NT has threads... AC_DEFINE(_REENTRANT) AC_DEFINE(_THREAD_SAFE) AC_DEFINE(_UNIX_THREADS) AC_DEFINE(NT_THREADS)
67bbf01999-08-10Henrik Grubbström (Grubba)  AC_DEFINE(PIKE_THREADS)
e45ef22001-02-14Mirar (Pontus Hagland)  using_threads="yes (nt)"
b1f4eb1998-01-13Fredrik Hübinette (Hubbe)  else
9ab4461998-11-06Honza Petrous  # Test for POSIX threads
50b0391997-01-27Henrik Grubbström (Grubba)  case "x$pike_cv_sys_os" in
3724261999-08-25Henrik Grubbström (Grubba)  xOSF1*)
d4ac012000-03-29Fredrik Hübinette (Hubbe) # LIBS="${OLDLIBS} -lpthread -lmach -lexc -lc" LIBS="${OLDLIBS} -lpthread -lmach -lexc"
9ab4461998-11-06Honza Petrous  ;; xBSD/OS*) LIBS="${OLDLIBS}" ;;
bcb5382001-08-23Boyd Lynn Gerber  xUnixWare*|xOpenUNIX*)
9022241998-08-27Honza Petrous  if test "$GCC" = yes ; then
0d51112000-04-10Boyd Lynn Gerber  CFLAGS="${CFLAGS} -pthread"
9022241998-08-27Honza Petrous  else
9ab4461998-11-06Honza Petrous  CFLAGS="${CFLAGS} -Kthread"
9022241998-08-27Honza Petrous  fi
50b0391997-01-27Henrik Grubbström (Grubba)  ;;
0809711998-02-27Marcus Comstedt 
9ab4461998-11-06Honza Petrous  xFreeBSD*) # Threads on FreeBSD earlier than 1998-06-07 are broken. LIBS="${OLDLIBS}" AC_MSG_CHECKING(if this version of FreeBSD may have working threads) AC_CACHE_VAL(pike_cv_freebsd_threads, [ AC_TRY_RUN([
54905d1998-06-16Henrik Grubbström (Grubba) #include <osreldate.h> int main(int argc, char **argv) {
fc84cc1998-12-03Henrik Grubbström (Grubba)  /* FreeBSD before 228000 and 300000 - 300005 have broken threads.
8e48421998-06-17Henrik Grubbström (Grubba)  */
fc84cc1998-12-03Henrik Grubbström (Grubba)  if (__FreeBSD_version < 228000)
54905d1998-06-16Henrik Grubbström (Grubba)  return(1); if (__FreeBSD_version < 300000) return(0);
fc84cc1998-12-03Henrik Grubbström (Grubba)  if (__FreeBSD_version < 300006)
54905d1998-06-16Henrik Grubbström (Grubba)  return(1); return(0); }
9ab4461998-11-06Honza Petrous  ], pike_cv_freebsd_threads=yes, pike_cv_freebsd_threads=no, pike_cv_freebsd_threads=yes) ]) if test "x$pike_cv_freebsd_threads" = "xno"; then AC_MSG_RESULT(no) else AC_MSG_RESULT(yes)
e45ef22001-02-14Mirar (Pontus Hagland)  using_threads="yes (freebsd)"
f369dd2000-03-26Fredrik Hübinette (Hubbe)  AC_PATH_PROG(PTHREAD_CONFIG,pthread-config,no)
95013b2000-03-27Dan Nelson  if test "x$PTHREAD_CONFIG" = xno ; then
f369dd2000-03-26Fredrik Hübinette (Hubbe)  CFLAGS="${CFLAGS} -pthread" LD_FALLBACK_FLAGS="${LD_FALLBACK_FLAGS-} -lc_r"
fcf0732000-03-28Fredrik Hübinette (Hubbe)  AC_MSG_CHECKING(Initial stack limit) AC_CACHE_VAL(pike_cv_initial_stack_size,[ AC_TRY_RUN([ #include <stdio.h> static int depth=0; FILE *f; void save_depth(void); void use_stack(void *page) { void *X[8190]; X[0]=page; save_depth(); use_stack(&X); } void save_depth(void) { depth+=sizeof(void *)*8192; fprintf(f,"%d\n",depth); fflush(f); if(depth>0x80000000) exit(0); } int main(int argc) { f=fopen("confdefs.out.2","w"); /* weird filename to circumvent configure weirdness */ save_depth(); use_stack(0); } ], pike_cv_initial_stack_size='', while read x; do pike_cv_initial_stack_size=$x ; done <confdefs.out.2) rm confdefs.out.2 >/dev/null 2>/dev/null || : ]) if test x$pike_cv_initial_stack_size = x ; then AC_MSG_RESULT(unlimited) else AC_MSG_RESULT($pike_cv_initial_stack_size) AC_DEFINE_UNQUOTED(Pike_INITIAL_STACK_SIZE,$pike_cv_initial_stack_size) fi
f369dd2000-03-26Fredrik Hübinette (Hubbe)  else CFLAGS="$CFLAGS `pthread-config --cflags`" LIBS="$LIBS `pthread-config --libs`" LDFLAGS="$CFLAGS `pthread-config --ldflags`" fi
9ab4461998-11-06Honza Petrous  fi ;;
c371d41998-06-07Simon Coggins 
9ab4461998-11-06Honza Petrous  xAIX*)
ea63a72000-12-19Henrik Grubbström (Grubba)  if test "`uname -v`" -gt 4 ; then LIBS="${OLDLIBS} -lpthread" else LIBS="${OLDLIBS} -lpthreads -lc_r" fi
9ab4461998-11-06Honza Petrous  ;;
b1335c1998-07-03Francesco Chemolli 
73ea7f2000-07-09Henrik Grubbström (Grubba)  xSolaris*) # Some versions of Solaris 2.5.1 require linking with -lthread too. LIBS="${OLDLIBS} -lpthread -lthread" ;;
66a3742000-10-02Jonas Wallden  xDarwin*) LIBS="${OLDLIBS}" ;;
9ab4461998-11-06Honza Petrous  *) LIBS="${OLDLIBS} -lpthread" ;; esac
50b0391997-01-27Henrik Grubbström (Grubba) 
e5f9822000-10-03Henrik Grubbström (Grubba)  AC_CHECK_FUNCS(pthread_init pthread_mutexattr_init pthread_kill)
8b14071997-10-03Henrik Grubbström (Grubba) 
9ab4461998-11-06Honza Petrous  AC_MSG_CHECKING(posix threads)
b27ea31997-10-25Henrik Grubbström (Grubba) 
9ab4461998-11-06Honza Petrous  AC_CACHE_VAL(pike_cv_posix_threads, [ AC_TRY_RUN([
aeafe11997-01-26Per Hedbor #define _REENTRANT #define _THREAD_SAFE
f147421997-03-12Fredrik Hübinette (Hubbe) #define _MIT_POSIX_THREADS 1
aeafe11997-01-26Per Hedbor 
07513e1996-10-04Fredrik Hübinette (Hubbe) #include <pthread.h>
eea7c21997-09-11Henrik Grubbström (Grubba) void *foo(void *bar) { pthread_exit(0); return 0; }
158e9f1997-03-10Henrik Grubbström (Grubba) pthread_mutexattr_t attr;
07513e1996-10-04Fredrik Hübinette (Hubbe) pthread_mutex_t tmp; pthread_t gazonk; int main() { void *sune;
8b14071997-10-03Henrik Grubbström (Grubba) #ifdef HAVE_PTHREAD_INIT pthread_init(); #endif /* HAVE_PTHREAD_INIT */
0809711998-02-27Marcus Comstedt #ifdef HAVE_PTHREAD_MUTEXATTR_INIT
158e9f1997-03-10Henrik Grubbström (Grubba)  pthread_mutexattr_init(&attr);
0809711998-02-27Marcus Comstedt #else memset(&attr, 0, sizeof(attr));
f601ac1998-03-06Francesco Chemolli #endif /* HAVE_PTHREAD_MUTEXATTR_INIT */
158e9f1997-03-10Henrik Grubbström (Grubba)  pthread_mutex_init(&tmp, &attr); pthread_mutex_lock(&tmp);
07513e1996-10-04Fredrik Hübinette (Hubbe)  pthread_create(&gazonk,0,foo,0); pthread_join(gazonk,&sune); exit(0); }
6b15b72001-01-19Henrik Grubbström (Grubba)  ], [ pike_cv_posix_threads=yes ], [ pike_cv_posix_threads=no ], [ AC_TRY_LINK([ #define _REENTRANT #define _THREAD_SAFE #define _MIT_POSIX_THREADS 1 #include <pthread.h> void *foo(void *bar) { pthread_exit(0); return 0; } pthread_mutexattr_t attr; pthread_mutex_t tmp; pthread_t gazonk; ], [ { void *sune; #ifdef HAVE_PTHREAD_INIT pthread_init(); #endif /* HAVE_PTHREAD_INIT */ #ifdef HAVE_PTHREAD_MUTEXATTR_INIT pthread_mutexattr_init(&attr); #else memset(&attr, 0, sizeof(attr)); #endif /* HAVE_PTHREAD_MUTEXATTR_INIT */ pthread_mutex_init(&tmp, &attr); pthread_mutex_lock(&tmp); pthread_create(&gazonk,0,foo,0); pthread_join(gazonk,&sune); exit(0); } ], [ pike_cv_posix_threads=yes ], [ pike_cv_posix_threads=no ]) ])
9ab4461998-11-06Honza Petrous  ])
07513e1996-10-04Fredrik Hübinette (Hubbe) 
9ab4461998-11-06Honza Petrous  if test $pike_cv_posix_threads = yes ; then AC_MSG_RESULT(yes) AC_DEFINE(_REENTRANT) AC_DEFINE(_THREAD_SAFE) AC_DEFINE(_MIT_POSIX_THREADS,1)
67bbf01999-08-10Henrik Grubbström (Grubba)  AC_DEFINE(PIKE_THREADS)
e45ef22001-02-14Mirar (Pontus Hagland)  using_threads="yes (posix)"
9ab4461998-11-06Honza Petrous 
71ac9e1999-08-29Fredrik Hübinette (Hubbe) ##########################################################################
9ab4461998-11-06Honza Petrous  AC_MSG_CHECKING(for pthread_attr_setstacksize) AC_CACHE_VAL(pike_cv_have_pthread_attr_setstacksize,[ AC_TRY_LINK([#include <pthread.h> void foo(pthread_attr_t*x) { pthread_attr_setstacksize(x, 1024*1024); } ],[],[ pike_cv_have_pthread_attr_setstacksize=yes ],[ pike_cv_have_pthread_attr_setstacksize=no
8d4ce81997-04-10Fredrik Hübinette (Hubbe)  ])
9ab4461998-11-06Honza Petrous  ]) AC_MSG_RESULT($pike_cv_have_pthread_attr_setstacksize) if test x$pike_cv_have_pthread_attr_setstacksize = xyes ; then AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE) else : fi
8d4ce81997-04-10Fredrik Hübinette (Hubbe) 
71ac9e1999-08-29Fredrik Hübinette (Hubbe) ########################################################################## AC_MSG_CHECKING(for pthread_atfork) AC_CACHE_VAL(pike_cv_have_pthread_atfork,[ AC_TRY_LINK([#include <pthread.h> void foo(void) { pthread_atfork(0,0,0); } ],[],[ pike_cv_have_pthread_atfork=yes ],[ pike_cv_have_pthread_atfork=no ]) ])
d201871999-08-30Fredrik Hübinette (Hubbe)  if test x$pike_cv_have_pthread_atfork = xyes ; then
71ac9e1999-08-29Fredrik Hübinette (Hubbe)  AC_MSG_RESULT(yes) AC_DEFINE(HAVE_PTHREAD_ATFORK) else AC_MSG_RESULT([no - FreeBSD?]) fi ##########################################################################
9ab4461998-11-06Honza Petrous  AC_MSG_CHECKING(for pthread_yield) AC_CACHE_VAL(pike_cv_have_pthread_yield,[ AC_TRY_LINK([#include <pthread.h> void foo(void) { pthread_yield(); } ],[],[ pike_cv_have_pthread_yield=yes ],[ pike_cv_have_pthread_yield=no
8d4ce81997-04-10Fredrik Hübinette (Hubbe)  ])
9ab4461998-11-06Honza Petrous  ]) AC_MSG_RESULT($pike_cv_have_pthread_yield) if test x$pike_cv_have_pthread_yield = xyes ; then AC_DEFINE(HAVE_PTHREAD_YIELD) else : fi
8d4ce81997-04-10Fredrik Hübinette (Hubbe) 
71ac9e1999-08-29Fredrik Hübinette (Hubbe) ##########################################################################
9ab4461998-11-06Honza Petrous  AC_MSG_CHECKING(for pthread_cond_init) AC_CACHE_VAL(pike_cv_have_pthread_cond_init,[ AC_TRY_LINK([#include <pthread.h> void foo(pthread_cond_t*x, pthread_condattr_t*y) { pthread_cond_init(x,y); } ],[],[ pike_cv_have_pthread_cond_init=yes ],[ pike_cv_have_pthread_cond_init=no
8d4ce81997-04-10Fredrik Hübinette (Hubbe)  ])
9ab4461998-11-06Honza Petrous  ]) AC_MSG_RESULT($pike_cv_have_pthread_cond_init) if test x$pike_cv_have_pthread_cond_init = xyes ; then AC_DEFINE(HAVE_PTHREAD_COND_INIT) else : fi
0a40e91997-04-10Fredrik Hübinette (Hubbe) 
71ac9e1999-08-29Fredrik Hübinette (Hubbe) ##########################################################################
9ab4461998-11-06Honza Petrous  AC_MSG_CHECKING(if pthread_condattr_default is defined) AC_CACHE_VAL(pike_cv_have_pthread_condattr_default,[ AC_TRY_LINK([#include <pthread.h> void foo(pthread_cond_t *bar) { pthread_cond_init(bar, pthread_condattr_default); } ],[],[ pike_cv_have_pthread_condattr_default=yes ],[ pike_cv_have_pthread_condattr_default=no
5377b91997-02-01Henrik Grubbström (Grubba)  ])
9ab4461998-11-06Honza Petrous  ])
5377b91997-02-01Henrik Grubbström (Grubba) 
9ab4461998-11-06Honza Petrous  AC_MSG_RESULT($pike_cv_have_pthread_condattr_default)
5377b91997-02-01Henrik Grubbström (Grubba) 
9ab4461998-11-06Honza Petrous  if test x$pike_cv_have_pthread_condattr_default = xyes ; then AC_DEFINE(HAVE_PTHREAD_CONDATTR_DEFAULT) else : fi
afbcda1998-08-31Henrik Grubbström (Grubba) 
752e101999-04-30Fredrik Hübinette (Hubbe) 
9ab4461998-11-06Honza Petrous  # # FreeBSD doesn't like the &, while AIX requires it... # AC_MSG_CHECKING(if pthread_condattr_default is needs an & (AIX)) AC_CACHE_VAL(pike_cv_have_pthread_condattr_default_aix,[ AC_TRY_LINK([#include <pthread.h> void foo(pthread_cond_t *bar) { pthread_cond_init(bar, &pthread_condattr_default); } ],[],[ pike_cv_have_pthread_condattr_default_aix=yes ],[ pike_cv_have_pthread_condattr_default_aix=no
afbcda1998-08-31Henrik Grubbström (Grubba)  ])
9ab4461998-11-06Honza Petrous  ])
afbcda1998-08-31Henrik Grubbström (Grubba) 
9ab4461998-11-06Honza Petrous  AC_MSG_RESULT($pike_cv_have_pthread_condattr_default_aix)
afbcda1998-08-31Henrik Grubbström (Grubba) 
9ab4461998-11-06Honza Petrous  if test x$pike_cv_have_pthread_condattr_default_aix = xyes ; then AC_DEFINE(HAVE_PTHREAD_CONDATTR_DEFAULT_AIX) else : fi
afbcda1998-08-31Henrik Grubbström (Grubba) 
71ac9e1999-08-29Fredrik Hübinette (Hubbe) ##########################################################################
752e101999-04-30Fredrik Hübinette (Hubbe)  AC_MSG_CHECKING(for __pthread_initial_thread_bos) AC_CACHE_VAL(pike_cv_have_pthread_initial_thread_bos,[ AC_TRY_LINK([#include <pthread.h> char *foo(void) { extern char *__pthread_initial_thread_bos; return __pthread_initial_thread_bos; } ],[],[ pike_cv_have_pthread_initial_thread_bos=yes ],[ pike_cv_have_pthread_initial_thread_bos=no ]) ]) AC_MSG_RESULT($pike_cv_have_pthread_initial_thread_bos) if test x$pike_cv_have_pthread_initial_thread_bos = xyes ; then AC_DEFINE(HAVE_PTHREAD_INITIAL_THREAD_BOS) else : fi
d0cb8d2000-05-20Henrik Grubbström (Grubba) ########################################################################## # On Linux the threads don't inherit euid & egid from the main thread. # FIXME: Add a real test here! if test "x$pike_cv_sys_os" = "xLinux"; then AC_DEFINE(HAVE_BROKEN_LINUX_THREAD_EUID) else :; fi
752e101999-04-30Fredrik Hübinette (Hubbe) 
9ab4461998-11-06Honza Petrous  else AC_MSG_RESULT(no) LIBS="$OLDLIBS"
284e061998-11-09Fredrik Hübinette (Hubbe)  CFLAGS="$OLDCFLAGS"
9ab4461998-11-06Honza Petrous  # No POSIX threads. # Try UNIX threads instead AC_MSG_CHECKING(unix threads) case "x$pike_cv_sys_os" in
bcb5382001-08-23Boyd Lynn Gerber  xUnixWare*|xOpenUNIX*)
9ab4461998-11-06Honza Petrous  if test "$GCC" = yes ; then
0d51112000-04-10Boyd Lynn Gerber  CFLAGS="${CFLAGS} -pthread"
9ab4461998-11-06Honza Petrous  else CFLAGS="${CFLAGS} -Kthread" fi CFLAGS="${CFLAGS} -D_UNIXWARE_THREADS_" ;; *) LIBS="${LIBS} -lthread" ;; esac AC_CACHE_VAL(pike_cv_unix_threads, [ AC_TRY_RUN([ #define _REENTRANT #define _THREAD_SAFE #define _MIT_POSIX_THREADS 1 #include <thread.h> #ifdef _UNIXWARE_THREADS_ #include <synch.h> #endif void *foo(void *bar) { thr_exit(0); return 0; } mutex_t tmp; thread_t gazonk; int main() { void *sune; mutex_lock(& tmp); thr_create(0,0,foo,0,0,&gazonk); thr_join(gazonk,0,&sune); exit(0); } ],pike_cv_unix_threads=yes,pike_cv_unix_threads=no,pike_cv_unix_threads=no) ]) if test x$pike_cv_unix_threads = xyes ; then AC_MSG_RESULT(yes) AC_DEFINE(_REENTRANT) AC_DEFINE(_THREAD_SAFE) AC_DEFINE(_UNIX_THREADS)
67bbf01999-08-10Henrik Grubbström (Grubba)  AC_DEFINE(PIKE_THREADS)
e45ef22001-02-14Mirar (Pontus Hagland)  using_threads="yes (unix)"
50b0391997-01-27Henrik Grubbström (Grubba)  else AC_MSG_RESULT(no) LIBS="$OLDLIBS"
284e061998-11-09Fredrik Hübinette (Hubbe)  CFLAGS="$OLDCFLAGS"
07513e1996-10-04Fredrik Hübinette (Hubbe) 
50b0391997-01-27Henrik Grubbström (Grubba)  # Now we've sunk really low -- test for proprietary threads # SGI old-style shared group processes
43032e1997-10-09Henrik Grubbström (Grubba)  # AC_CHECK_FUNCS(sproc oserror) # # AC_MSG_CHECKING(Fallback to sproc) # # if test x$ac_cv_func_sproc$ac_cv_func_oserror = xyesyes; then # AC_MSG_RESULT(yes) # AC_DEFINE(_REENTRANT) # AC_DEFINE(_THREAD_SAFE) # AC_DEFINE(_SGI_SPROC_THREADS) # AC_DEFINE(_SGI_MP_SOURCE)
e45ef22001-02-14Mirar (Pontus Hagland)  # using_threads="yes (sgi)"
43032e1997-10-09Henrik Grubbström (Grubba)  # else # AC_MSG_RESULT(no) # : # fi
9ab4461998-11-06Honza Petrous  fi # UNIX threads fi # POSIX threads
b1f4eb1998-01-13Fredrik Hübinette (Hubbe) fi # NT
50b0391997-01-27Henrik Grubbström (Grubba) else # Without threads :
eec1371996-11-02Fredrik Hübinette (Hubbe) fi
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
5267b71995-08-09Fredrik Hübinette (Hubbe) 
a888ce2000-12-23Henrik Grubbström (Grubba) # NOTE: The following test is hardcoded to fail when crosscompiling # It also clobbers $LIBOBJS. OLD_LIBOBJS="${LIBOBJS}"
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_FUNC_MEMCMP
a888ce2000-12-23Henrik Grubbström (Grubba) if test "x$ac_cv_func_memcmp_clean" = "xyes"; then
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_DEFINE(HAVE_MEMCMP) fi LIBOBJS="${OLD_LIBOBJS}"
a888ce2000-12-23Henrik Grubbström (Grubba) ########################################################################
dcad551996-08-03Fredrik Hübinette (Hubbe) AC_FUNC_MMAP
6930181996-02-25Fredrik Hübinette (Hubbe) 
75920f1997-12-28Fredrik Hübinette (Hubbe) AC_CHECK_FUNCS( \
cb22561995-10-11Fredrik Hübinette (Hubbe)  _crypt \
063fe31998-03-10Per Hedbor  poll \
cb22561995-10-11Fredrik Hübinette (Hubbe)  bcopy \ bzero \ clock \ crypt \ fchmod \
9548a81997-05-07Per Hedbor  gethrtime \ gethrvtime \
cb22561995-10-11Fredrik Hübinette (Hubbe)  getenv \ getrlimit \ getrusage \
067bc11996-06-21Fredrik Hübinette (Hubbe)  gettimeofday \
cb22561995-10-11Fredrik Hübinette (Hubbe)  index \
dcad551996-08-03Fredrik Hübinette (Hubbe)  localtime \
fe91501998-07-26Peter J. Holzer  gmtime \
cb22561995-10-11Fredrik Hübinette (Hubbe)  memchr \
565c361997-01-27Fredrik Hübinette (Hubbe)  mktime \
5539c51998-06-08Henrik Grubbström (Grubba)  perror \
cb22561995-10-11Fredrik Hübinette (Hubbe)  rindex \
d9c7172001-03-23Henrik Grubbström (Grubba)  setbuf \
cb22561995-10-11Fredrik Hübinette (Hubbe)  setlocale \ setrlimit \
3605b81998-09-18Peter J. Holzer  setresuid \
d9c7172001-03-23Henrik Grubbström (Grubba)  setvbuf \
93b8081995-11-02Fredrik Hübinette (Hubbe)  sigaction \
5740881998-01-01Fredrik Hübinette (Hubbe)  sigblock \ sigprocmask \
93b8081995-11-02Fredrik Hübinette (Hubbe)  sigvec \
cb22561995-10-11Fredrik Hübinette (Hubbe)  strcasecmp \
9b15e02000-12-22Fredrik Hübinette (Hubbe)  strnlen \ strncmp \
cb22561995-10-11Fredrik Hübinette (Hubbe)  strchr \ strcspn \
2b25831997-01-31Fredrik Hübinette (Hubbe)  strerror \
cb22561995-10-11Fredrik Hübinette (Hubbe)  strrchr \ strtod \ strtok \ strtol \
5740881998-01-01Fredrik Hübinette (Hubbe)  time \
cb22561995-10-11Fredrik Hübinette (Hubbe)  times \ vfprintf \ vsprintf \
cd96811998-05-15Henrik Grubbström (Grubba)  vsnprintf \
6930181996-02-25Fredrik Hübinette (Hubbe)  wait3 \
65887d1995-11-15Fredrik Hübinette (Hubbe)  wait4 \ waitpid \
dcad551996-08-03Fredrik Hübinette (Hubbe)  munmap \
4238391998-07-09Francesco Chemolli  shl_load \
59bc1b1997-01-22Bernhard Fastenrath  dld_link \ dld_get_func \
3e84d61997-04-16Fredrik Hübinette (Hubbe)  pipe \
75920f1997-12-28Fredrik Hübinette (Hubbe)  strdup \
f196ef1999-08-31Fredrik Hübinette (Hubbe)  strstr \
75920f1997-12-28Fredrik Hübinette (Hubbe)  kill \ alarm \
85f59e1998-01-08Fredrik Hübinette (Hubbe)  fork1 \
d386e61998-03-20Fredrik Hübinette (Hubbe)  flock \
e6f98c1998-05-22David Hedbor  lockf \
0d52dd1998-01-16Fredrik Hübinette (Hubbe)  setuid getuid seteuid geteuid \ setgid getgid setegid getegid \
f087c41998-02-04Fredrik Hübinette (Hubbe)  getpwent getpwnam getpwuid \ getgrent getgrnam \
8f63852000-09-16Mirar (Pontus Hagland)  setsid setpgrp getpgrp setpgid getpgid \
d386e61998-03-20Fredrik Hübinette (Hubbe)  initgroups setgroups \
9c50201998-03-26Fredrik Hübinette (Hubbe)  socketpair \
5ff14f1998-05-25Marcus Comstedt  fpclass \ fp_class_d \ isinf \ isnan \ iszero \ finite \ signbit \
1b28b82001-05-28Marcus Comstedt  nan \
70c9c11998-05-05Fredrik Hübinette (Hubbe)  nice \
ea959d1999-02-01Per Hedbor  __priocntl \ sched_setscheduler \ setpriority \
dac6371999-10-17Mirar (Pontus Hagland)  usleep \ nanosleep \
a85ac52001-08-23Per Hedbor  thr_yield \
cb22561995-10-11Fredrik Hübinette (Hubbe) )
5267b71995-08-09Fredrik Hübinette (Hubbe) 
6cefa12000-09-27Henrik Grubbström (Grubba) AC_MSG_CHECKING(for the type of the last argument to accept)
11ceb01998-08-07Henrik Grubbström (Grubba) AC_CACHE_VAL(pike_cv_accept_size_t, [
6cefa12000-09-27Henrik Grubbström (Grubba)  for t in socklen_t size_t int; do AC_TRY_COMPILE([ #ifndef _LARGEFILE_SOURCE # define _FILE_OFFSET_BITS 64 # define _LARGEFILE_SOURCE # define _LARGEFILE64_SOURCE 1 #endif /* HPUX needs these too... */ #ifndef __STDC_EXT__ # define __STDC_EXT__ #endif /* !__STDC_EXT__ */ #include <sys/types.h> #ifdef HAVE_UNISTD_H #include <unistd.h> #endif #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif /* NT */ #ifdef HAVE_WINSOCK_H #include <winsock.h> #endif /* Here's the actual test: */ int accept(int, struct sockaddr *, $t *); ], [ /* EMPTY */ ], [ pike_cv_accept_size_t=$t break ], [ AC_TRY_COMPILE([
11ceb01998-08-07Henrik Grubbström (Grubba) #ifndef _LARGEFILE_SOURCE # define _FILE_OFFSET_BITS 64 # define _LARGEFILE_SOURCE # define _LARGEFILE64_SOURCE 1 #endif /* HPUX needs these too... */ #ifndef __STDC_EXT__ # define __STDC_EXT__ #endif /* !__STDC_EXT__ */ #include <sys/types.h> #ifdef HAVE_UNISTD_H #include <unistd.h> #endif #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif
3e82a71998-09-01Fredrik Hübinette (Hubbe) /* NT */ #ifdef HAVE_WINSOCK_H #include <winsock.h> #endif
11ceb01998-08-07Henrik Grubbström (Grubba) /* Here's the actual test: */
6cefa12000-09-27Henrik Grubbström (Grubba) SOCKET accept(SOCKET, struct sockaddr *, $t *); ], [ /* EMPTY */ ], [ pike_cv_accept_size_t=$t break ], []) ]) done if test "x$pike_cv_accept_size_t" = "x"; then # Check if it could be a Psocklen_t # Psocklen_t is a stupid typedef of socklen_t *.
69bae82000-08-20Henrik Grubbström (Grubba)  AC_TRY_COMPILE([ #ifndef _LARGEFILE_SOURCE # define _FILE_OFFSET_BITS 64 # define _LARGEFILE_SOURCE # define _LARGEFILE64_SOURCE 1 #endif /* HPUX needs these too... */ #ifndef __STDC_EXT__ # define __STDC_EXT__ #endif /* !__STDC_EXT__ */ #include <sys/types.h> #ifdef HAVE_UNISTD_H #include <unistd.h> #endif #ifdef HAVE_SYS_SOCKET_H #include <sys/socket.h> #endif /* NT */ #ifdef HAVE_WINSOCK_H #include <winsock.h> #endif /* Here's the actual test: */
6cefa12000-09-27Henrik Grubbström (Grubba) int accept(int, struct sockaddr *, Psocklen_t);
69bae82000-08-20Henrik Grubbström (Grubba)  ], [ /* EMPTY */
6cefa12000-09-27Henrik Grubbström (Grubba)  ], [ pike_cv_accept_size_t=socklen_t ], [ # FIXME: Should probably have a warning here. # FIXME: Should we check if socklen_t exists, and use that? pike_cv_accept_size_t=int ]) fi
11ceb01998-08-07Henrik Grubbström (Grubba) ])
6cefa12000-09-27Henrik Grubbström (Grubba) AC_MSG_RESULT($pike_cv_accept_size_t *)
11ceb01998-08-07Henrik Grubbström (Grubba) AC_DEFINE_UNQUOTED(ACCEPT_SIZE_T, $pike_cv_accept_size_t)
08af092000-04-12Marcus Comstedt if test x"$pike_cv_sys_os" = xWindows_NT ; then
9649491998-02-27Fredrik Hübinette (Hubbe)  AC_DEFINE(HAVE_LOADLIBRARY) AC_DEFINE(HAVE_FREELIBRARY) AC_DEFINE(HAVE_GETPROCADDRESS) AC_DEFINE(DL_EXPORT, _dlspec(export)) else AC_DEFINE(DL_EXPORT, []) fi
e78abd1996-11-21Fredrik Hübinette (Hubbe) if test $ac_cv_func_crypt$ac_cv_func__crypt = nono ; then
905bb11998-01-31Fredrik Hübinette (Hubbe)  AC_CHECK_LIB(crypt,crypt,[LIBS="${LIBS} -lcrypt" ; AC_DEFINE(HAVE_CRYPT)], [ if test -f "$srcdir/crypt.c"; then AC_MSG_RESULT(Using crypt.c for BSD style crypt()) EXTRA_OBJS="${EXTRA_OBJS} crypt.o" AC_DEFINE(HAVE_CRYPT)
a680662000-08-20Henrik Grubbström (Grubba)  AC_DEFINE(USE_CRYPT_C)
905bb11998-01-31Fredrik Hübinette (Hubbe)  else : fi ])
e78abd1996-11-21Fredrik Hübinette (Hubbe) fi
1b28b82001-05-28Marcus Comstedt ############################################################################# MY_CHECK_FUNCTION(infnan, [ #include <errno.h> #include <math.h> ], [ double pinf = infnan(ERANGE); double ninf = infnan(-ERANGE); double nan = infnan(EDOM); exit(!(isinf(pinf)>0 && isinf(ninf)<0 && isnan(nan))); ])
5539c51998-06-08Henrik Grubbström (Grubba) #############################################################################
c3d1032001-06-12Henrik Grubbström (Grubba) MY_CHECK_FUNCTION(_isnan, [ #include <float.h> ], [ exit(_isnan(0.0)); ]) #############################################################################
5539c51998-06-08Henrik Grubbström (Grubba)  # FreeBSD 3.0 has broken F_SETFD when running with threads. AC_MSG_CHECKING(whether F_SETFD exists and works) AC_CACHE_VAL(pike_cv_broken_f_setfd, [ AC_TRY_RUN([ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif /* HAVE_SYS_TYPES_H */ #include <sys/stat.h> #ifdef HAVE_FCNTL_H #include <fcntl.h> #endif /* HAVE_FCNTL_H */ #include <stdio.h> #ifndef FD_CLOEXEC #define FD_CLOEXEC 1 #endif /* FD_CLOEXEC */ int main(int argc, char **argv) { int fd = 0; if (fcntl(fd, F_SETFD, FD_CLOEXEC) < 0) { exit(1); } if (fcntl(fd, F_GETFD) != FD_CLOEXEC) { exit(1); } exit(0); } ], pike_cv_broken_f_setfd=no, pike_cv_broken_f_setfd=yes,
56d1c02000-06-29Henrik Grubbström (Grubba)  pike_cv_broken_f_setfd=yes)
5539c51998-06-08Henrik Grubbström (Grubba) ]) if test "x$pike_cv_broken_f_setfd" = "xyes"; then AC_MSG_RESULT(no) AC_DEFINE(HAVE_BROKEN_F_SETFD) else AC_MSG_RESULT(yes) fi #############################################################################
067bc11996-06-21Fredrik Hübinette (Hubbe) AC_STRUCT_TM
dcad551996-08-03Fredrik Hübinette (Hubbe) #############################################################################
067bc11996-06-21Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(extern int timezone)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_has_external_timezone,[
067bc11996-06-21Fredrik Hübinette (Hubbe) AC_TRY_LINK([ #include <time.h> ],[ int _tz; _tz=timezone;
a05f921998-05-05Fredrik Hübinette (Hubbe)  timezone=_tz;
06983f1996-09-22Fredrik Hübinette (Hubbe) ],pike_cv_has_external_timezone=yes,pike_cv_has_external_timezone=no)
067bc11996-06-21Fredrik Hübinette (Hubbe) ])
06983f1996-09-22Fredrik Hübinette (Hubbe) if test "$pike_cv_has_external_timezone" = "yes"; then
067bc11996-06-21Fredrik Hübinette (Hubbe)  AC_DEFINE(HAVE_EXTERNAL_TIMEZONE) fi
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_MSG_RESULT($pike_cv_has_external_timezone)
dcad551996-08-03Fredrik Hübinette (Hubbe)  #############################################################################
e0b9561996-07-02Fredrik Hübinette (Hubbe) # No test for this yet... AC_DEFINE(HAVE_STRUCT_TIMEVAL)
dcad551996-08-03Fredrik Hübinette (Hubbe) #############################################################################
067bc11996-06-21Fredrik Hübinette (Hubbe) 
63a6e01998-05-29Henrik Grubbström (Grubba) if test "x$ac_cv_func_strtol" = "xyes"; then AC_MSG_CHECKING(if strtol works for large hexadecimal constants) AC_CACHE_VAL(pike_cv_func_strtol_works, [ AC_TRY_RUN([ #include <stdlib.h> int main(int argc, char **argv) { /* On some OS's strtol() rounds this to 0x7fffffff. */ return(strtol("0xffffffff", NULL, 0) != 0xffffffff); } ], pike_cv_func_strtol_works=yes, pike_cv_func_strtol_works=no, pike_cv_func_strtol_works=no) ]) AC_MSG_RESULT($pike_cv_func_strtol_works) if test "x$pike_cv_func_strtol_works" = "xyes"; then AC_DEFINE(HAVE_WORKING_STRTOL) else :; fi else :; fi #############################################################################
e0b9561996-07-02Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(if gettimeofday takes two arguments)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_func_gettimeofday_has_two_args,
e0b9561996-07-02Fredrik Hübinette (Hubbe) [
6b15b72001-01-19Henrik Grubbström (Grubba)  AC_TRY_RUN([
e0b9561996-07-02Fredrik Hübinette (Hubbe) #if TIME_WITH_SYS_TIME # include <sys/time.h> # include <time.h> #else # if HAVE_SYS_TIME_H # include <sys/time.h> # else # if HAVE_TIME_H # include <time.h> # endif # endif #endif #ifndef HAVE_STRUCT_TIMEVAL struct timeval { long tv_sec; long tv_usec; }; #endif int main() { struct timeval tv; gettimeofday(&tv,(void *)0); exit(0); }
6b15b72001-01-19Henrik Grubbström (Grubba)  ], [ pike_cv_func_gettimeofday_has_two_args=yes ], [ pike_cv_func_gettimeofday_has_two_args=no ], [ AC_TRY_LINK([ #if TIME_WITH_SYS_TIME # include <sys/time.h> # include <time.h> #else # if HAVE_SYS_TIME_H # include <sys/time.h> # else # if HAVE_TIME_H # include <time.h> # endif # endif #endif #ifndef HAVE_STRUCT_TIMEVAL struct timeval { long tv_sec; long tv_usec; }; #endif ], [ { struct timeval tv; gettimeofday(&tv,(void *)0); exit(0); } ], [ pike_cv_func_gettimeofday_has_two_args=yes ], [pike_cv_func_gettimeofday_has_two_args=no]) ]) ])
e0b9561996-07-02Fredrik Hübinette (Hubbe) 
06983f1996-09-22Fredrik Hübinette (Hubbe) if test $pike_cv_func_gettimeofday_has_two_args = yes; then
e0b9561996-07-02Fredrik Hübinette (Hubbe)  AC_DEFINE(GETTIMEOFDAY_TAKES_TWO_ARGS) fi
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_MSG_RESULT($pike_cv_func_gettimeofday_has_two_args)
067bc11996-06-21Fredrik Hübinette (Hubbe) 
9aae7e2001-06-20Per Hedbor # if test "x$ac_cv_func_gethrtime" != "xyes"; then # AC_MSG_CHECKING(if we can make gethrtime by the RDTSC instruction) # AC_CACHE_VAL(pike_cv_own_gethrtime_rdtsc, [ # AC_TRY_RUN([ # #include <unistd.h> # #include <stdio.h> # #include <sys/time.h> # # static long long hrtime_rtsc_zero; # static long long hrtime_rtsc_last; # static long long hrtime_max; # static struct timeval hrtime_timeval_zero; # static long double hrtime_conv=0.0; # # #define GETTIMEOFDAY(PTR) gettimeofday(PTR,NULL) # # #define RTSC(x) \ # __asm__ __volatile__ ( "rdtsc" \ # :"=a" (((unsigned long*)&x)[0]), \ # "=d" (((unsigned long*)&x)[1])) # # void own_gethrtime_init() # { # GETTIMEOFDAY(&hrtime_timeval_zero); # RTSC(hrtime_rtsc_zero); # hrtime_rtsc_last=hrtime_rtsc_zero; # hrtime_max=0; # } # # int own_gethrtime_update(struct timeval *ptr) # { # long long td,t,now; # GETTIMEOFDAY(ptr); # RTSC(now); # td=((long long)ptr->tv_sec-hrtime_timeval_zero.tv_sec)*1000000000+ # ((long long)ptr->tv_usec-hrtime_timeval_zero.tv_usec)*1000; # # hrtime_rtsc_last=now; # t=now-hrtime_rtsc_zero; # if (t) hrtime_conv=((long double)td)/t; # # return 1; # } # # /* this is very sensitive to the compiler; keep all crap */ # # long long gethrtime() # { # long long now; # struct timeval tv; # # if (hrtime_conv==0.0) # { # if (!own_gethrtime_update(&tv)) /* not calibrated yet */ # { # return # hrtime_max= # ((long long)tv.tv_sec-hrtime_timeval_zero.tv_sec)*1000000000+ # ((long long)tv.tv_usec-hrtime_timeval_zero.tv_usec)*1000; # } # } # # RTSC(now); # # if (now-hrtime_rtsc_last > 2000000000) # { # own_gethrtime_update(&tv); # return gethrtime(); # } # # now = (long long) ( (long double)(now-hrtime_rtsc_zero) * hrtime_conv ); # # if (now<hrtime_max) now=hrtime_max; # return hrtime_max=now; # } # # #include <stdio.h> # # int main() # { # struct timeval tv1,tv2; # long long td,t1,t2; # own_gethrtime_init(); # # usleep(10); # own_gethrtime_update(&tv2); # # t1=gethrtime(); # # gettimeofday(&tv1,NULL); # for (;;) /* busy loop */ # { # GETTIMEOFDAY(&tv2); # td=((long long)tv2.tv_sec-tv1.tv_sec)*1000000000+ # ((long long)tv2.tv_usec-tv1.tv_usec)*1000; # if (td>1000000) break; # } # t2=gethrtime(); # # /* printf("t2-t1=%lld\n",t2-t1); */ # # if (t2==hrtime_rtsc_zero || # t2-t1>1100000 || # t2-t1<900000) return 1; # # return 0; # }], pike_cv_own_gethrtime_rdtsc=yes, # pike_cv_own_gethrtime_rdtsc=no, pike_cv_own_gethrtime_rdtsc=no) # ]) # if test "x$pike_cv_own_gethrtime_rdtsc" = "xyes"; then # AC_MSG_RESULT(yes) # AC_DEFINE(OWN_GETHRTIME) # AC_DEFINE(OWN_GETHRTIME_RDTSC) # AC_DEFINE(HAVE_GETHRTIME) # else # AC_MSG_RESULT([no]) # fi # fi #
067bc11996-06-21Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(if struct tm has tm_gmtoff)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_struct_tm_has_gmtoff,[
658f1a1997-01-26Fredrik Hübinette (Hubbe) AC_TRY_COMPILE([
067bc11996-06-21Fredrik Hübinette (Hubbe) #ifdef TM_IN_SYS_TIME #include <sys/time.h> #else
a285921998-09-27Henrik Grubbström (Grubba) #include <time.h> #endif
067bc11996-06-21Fredrik Hübinette (Hubbe) ],[ int _tz; struct tm foo;
647f5d2001-12-03Xavier Beaudouin  _tz=foo.tm_gmtoff;
06983f1996-09-22Fredrik Hübinette (Hubbe) ],pike_cv_struct_tm_has_gmtoff=yes,pike_cv_struct_tm_has_gmtoff=no)
067bc11996-06-21Fredrik Hübinette (Hubbe) ])
06983f1996-09-22Fredrik Hübinette (Hubbe) if test "$pike_cv_struct_tm_has_gmtoff" = "yes"; then
067bc11996-06-21Fredrik Hübinette (Hubbe)  AC_DEFINE(STRUCT_TM_HAS_GMTOFF) fi
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_MSG_RESULT($pike_cv_struct_tm_has_gmtoff)
067bc11996-06-21Fredrik Hübinette (Hubbe) 
c69eb51996-09-29Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(for USHRT_MAX definition) AC_CACHE_VAL(pike_cv_ushrt_max_is_defined,[ AC_EGREP_CPP(yes,[ #include <limits.h> #ifdef USHRT_MAX yes #endif ],pike_cv_ushrt_max_is_defined=yes,pike_cv_ushrt_max_is_defined=no) ]) if test "$pike_cv_ushrt_max_is_defined" = "no" ; then AC_DEFINE(USHRT_MAX,65535) fi AC_MSG_RESULT($pike_cv_ushrt_max_is_defined)
067bc11996-06-21Fredrik Hübinette (Hubbe) 
5267b71995-08-09Fredrik Hübinette (Hubbe) define(MY_CHECK_HEADERS, [ AC_MSG_CHECKING(for $1 declaration)
06983f1996-09-22Fredrik Hübinette (Hubbe)  AC_CACHE_VAL(pike_cv_decl_$1,
5267b71995-08-09Fredrik Hübinette (Hubbe)  [
06983f1996-09-22Fredrik Hübinette (Hubbe)  pike_cv_decl_$1=nonexistant
5267b71995-08-09Fredrik Hübinette (Hubbe)  for a in $2 do
9af34a1997-11-30Henrik Grubbström (Grubba)  AC_EGREP_HEADER($1,$a,[ pike_cv_decl_$1=existant; break ])
5267b71995-08-09Fredrik Hübinette (Hubbe)  done ])
06983f1996-09-22Fredrik Hübinette (Hubbe)  AC_MSG_RESULT($pike_cv_decl_$1) if test "$pike_cv_decl_$1" = nonexistant; then
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_DEFINE(translit($1,[a-z],[A-Z])[]_DECL_MISSING) fi ]) MY_CHECK_HEADERS(strchr,string.h unistd.h stdlib.h) MY_CHECK_HEADERS(malloc,memory.h unistd.h stdlib.h)
2043ba1998-02-10Fredrik Hübinette (Hubbe) MY_CHECK_HEADERS(getpeername,sys/socket.h sys/socketvar.h sys/socketio.h winsock.h winsock2.h)
5267b71995-08-09Fredrik Hübinette (Hubbe) MY_CHECK_HEADERS(popen,stdio.h unistd.h) MY_CHECK_HEADERS(getenv,unistd.h stdlib.h)
2043ba1998-02-10Fredrik Hübinette (Hubbe) MY_CHECK_HEADERS(gethostname,unistd.h netdb.h winsock.h winsock2.h)
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_ALLOCA
6930181996-02-25Fredrik Hübinette (Hubbe) AC_C_CONST AC_C_INLINE
5267b71995-08-09Fredrik Hübinette (Hubbe) 
9b372f1998-09-05Henrik Grubbström (Grubba) AC_CHECK_FUNCS(ualarm setitimer)
5267b71995-08-09Fredrik Hübinette (Hubbe) 
9b372f1998-09-05Henrik Grubbström (Grubba) if test "x$ac_cv_func_ualarm" = "xyes"; then AC_MSG_CHECKING(no of arguments to ualarm) AC_CACHE_VAL(pike_cv_ualarm_takes_two_args, [ AC_TRY_COMPILE([ #ifdef HAVE_UNISTD_H #include <unistd.h> #endif /* HAVE_UNISTD_H */ ],[
e16ff51996-12-05Fredrik Hübinette (Hubbe)  ualarm(0,0);
9b372f1998-09-05Henrik Grubbström (Grubba)  ],pike_cv_ualarm_takes_two_args=yes,pike_cv_ualarm_takes_two_args=no) ]) if test "$pike_cv_ualarm_takes_two_args" = yes; then AC_MSG_RESULT(2) AC_DEFINE(UALARM_TAKES_TWO_ARGS) else AC_MSG_RESULT(1) fi fi
5267b71995-08-09Fredrik Hübinette (Hubbe) 
d7be5b1997-01-28Fredrik Hübinette (Hubbe) ########################################################################
2ee6691999-01-07Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(stack direction) AC_CACHE_VAL(pike_cv_hardware_stack_direction, [
6b15b72001-01-19Henrik Grubbström (Grubba)  AC_TRY_RUN([
46d5c52000-02-03Henrik Grubbström (Grubba) #include <stdio.h>
2ee6691999-01-07Fredrik Hübinette (Hubbe) static int find_stack_direction(void *foo) { if (((void *)&foo) > foo) { return 1; } else { return -1; } }
46d5c52000-02-03Henrik Grubbström (Grubba) int main() { void *bar; exit( find_stack_direction(&bar) > 0); }
6b15b72001-01-19Henrik Grubbström (Grubba)  ], [ pike_cv_hardware_stack_direction=down ], [ pike_cv_hardware_stack_direction=up ], [ AC_MSG_WARN([defaulting to down.]) pike_cv_hardware_stack_direction=down ])
2ee6691999-01-07Fredrik Hübinette (Hubbe) ]) AC_MSG_RESULT($pike_cv_hardware_stack_direction) if grep STACK_DIRECTION confdefs.h >/dev/null 2>&1; then : else if test "x$pike_cv_hardware_stack_direction" = "xup" ; then AC_DEFINE(STACK_DIRECTION, 1) else AC_DEFINE(STACK_DIRECTION, -1) fi fi
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(byteorder)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_hardware_byteorder,
5267b71995-08-09Fredrik Hübinette (Hubbe) [ AC_TRY_RUN([ #include <stdio.h> int main() {
5c8e891995-10-29Fredrik Hübinette (Hubbe) #if SIZEOF_INT == 4
5267b71995-08-09Fredrik Hübinette (Hubbe) #define T int #else #define T long #endif FILE *f; T a; int e; for(e=0;e<sizeof(T);e++) ((char *)&a)[e]=(e+1) % 10; f=fopen("conftest.out.2","w"); for(e=0;e<sizeof(T);e++) { fprintf(f,"%d",(int)(a & 255)); a>>=8; } fprintf(f,"\n"); fclose(f); return 0; }],
06983f1996-09-22Fredrik Hübinette (Hubbe) pike_cv_hardware_byteorder=`cat conftest.out.2`
5267b71995-08-09Fredrik Hübinette (Hubbe) ,
06983f1996-09-22Fredrik Hübinette (Hubbe) pike_cv_hardware_byteorder=0
75920f1997-12-28Fredrik Hübinette (Hubbe) , pike_cv_hardware_byteorder=0
5267b71995-08-09Fredrik Hübinette (Hubbe) )])
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_MSG_RESULT($pike_cv_hardware_byteorder)
71f3a21998-11-22Fredrik Hübinette (Hubbe) AC_DEFINE_UNQUOTED(PIKE_BYTEORDER,$pike_cv_hardware_byteorder)
5267b71995-08-09Fredrik Hübinette (Hubbe) 
6a36472000-12-19Marcus Comstedt ######################################################################## AC_MSG_CHECKING(INT32 alignment) AC_CACHE_VAL(pike_cv_hardware_alignment, [ AC_TRY_RUN([ #include <stdio.h> #if SIZEOF_SHORT >= 4 #define INT32 short #else #if SIZEOF_INT >= 4 #define INT32 int #else #define INT32 long #endif #endif struct x { char a; INT32 b; }; int main(int argc, char *argv[]) { FILE f; struct x x; if(!(f=fopen("conftest.out.2","w"))) return 1; fprintf(f, "%u\n", (unsigned int)(((char *)&x.b)-((char*)&x))); fclose(f); return 0; }], pike_cv_hardware_alignment=`cat conftest.out.2`, pike_cv_hardware_alignment=4, pike_cv_hardware_alignment=4 )]) AC_MSG_RESULT($pike_cv_hardware_alignment) AC_DEFINE_UNQUOTED(PIKE_INT32_ALIGNMENT,$pike_cv_hardware_alignment)
7a64042001-08-15Marcus Comstedt ######################################################################## if test yes = "$with_machine_code"; then AC_MSG_CHECKING(register name convention) AC_CACHE_VAL(pike_cv_cpu_reg_prefix, [ for pike_cv_cpu_reg_prefix in "default" "" "r" "%%" "%%r" "unknown"; do AC_TRY_COMPILE([ #define REGPREFIX "$pike_cv_cpu_reg_prefix" ], [ #if defined(__ppc__) || defined(_POWER) __asm__ __volatile__(" li "REGPREFIX"11,1"); #else ; /* Don't need to find out */ #endif ],[break]) done ]) case "$pike_cv_cpu_reg_prefix" in default|unknown) AC_MSG_RESULT($pike_cv_cpu_reg_prefix);; *) AC_MSG_RESULT(${pike_cv_cpu_reg_prefix}0) AC_DEFINE_UNQUOTED(PIKE_CPU_REG_PREFIX,"$pike_cv_cpu_reg_prefix");; esac else :; fi
05030b1998-11-18Marcus Comstedt ######################################################################## MY_CHECK_FUNCTION(fork, [ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif #ifdef HAVE_UNISTD_H #include <unistd.h> #endif
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
05030b1998-11-18Marcus Comstedt  exit(fork()==-1);
1a3f882000-08-21Henrik Grubbström (Grubba) ])
a3c9a72000-10-13Fredrik Hübinette (Hubbe)  ######################################################################## MY_CHECK_FUNCTION(PTHREAD_MUTEX_RECURSIVE, [ #include <pthread.h> ], [ PTHREAD_MUTEX_RECURSIVE; exit(0); ]) ######################################################################## MY_CHECK_FUNCTION(PTHREAD_MUTEX_RECURSIVE_NP, [ #include <pthread.h> ], [ PTHREAD_MUTEX_RECURSIVE_NP; exit(0); ])
4bcc441998-07-22Fredrik Hübinette (Hubbe) ######################################################################## MY_CHECK_FUNCTION(fpsetmask, [ #include <math.h> #ifdef HAVE_FLOATINGPOINT_H #include <floatingpoint.h> #endif #ifdef HAVE_IEEEFP_H #include <ieeefp.h> #endif
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
4bcc441998-07-22Fredrik Hübinette (Hubbe)  fpsetmask(0); exit(0);
1a3f882000-08-21Henrik Grubbström (Grubba) ])
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
b36a452000-03-28Henrik Grubbström (Grubba) MY_CHECK_FUNCTION(fpsetround, [ #include <math.h> #ifdef HAVE_FLOATINGPOINT_H #include <floatingpoint.h> #endif #ifdef HAVE_IEEEFP_H #include <ieeefp.h> #endif #ifndef FP_RN #define FP_RN 0 #endif /* FP_RN */
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
b36a452000-03-28Henrik Grubbström (Grubba)  fpsetround(FP_RN); exit(0);
1a3f882000-08-21Henrik Grubbström (Grubba) ])
b36a452000-03-28Henrik Grubbström (Grubba) ########################################################################
e1184f2001-01-24Marcus Comstedt MY_CHECK_FUNCTION(isless, [ #include <math.h> #ifdef HAVE_FLOATINGPOINT_H #include <floatingpoint.h> #endif #ifdef HAVE_IEEEFP_H #include <ieeefp.h> #endif ], [ int t = isless(0.0, 0.0); exit(0); ]) ########################################################################
07513e1996-10-04Fredrik Hübinette (Hubbe) 
de16081997-06-03Fredrik Hübinette (Hubbe) MY_CHECK_FUNCTION(dlopen, [ #include <dlfcn.h>
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
de16081997-06-03Fredrik Hübinette (Hubbe)  dlopen(0, 0); exit(0);
1a3f882000-08-21Henrik Grubbström (Grubba) ])
4bcc441998-07-22Fredrik Hübinette (Hubbe) ########################################################################
de16081997-06-03Fredrik Hübinette (Hubbe) 
c411dc1997-04-21Fredrik Hübinette (Hubbe) MY_CHECK_FUNCTION(ldexp, [ #include <math.h>
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
c411dc1997-04-21Fredrik Hübinette (Hubbe)  double x; int p; for(x=0.0;x<2.0;x+=1.0/64.0) for(p=-6;p<7;p++) if(ldexp(x,p) != x*pow(2.0, (double)p)) exit(1); exit(0);
1a3f882000-08-21Henrik Grubbström (Grubba) ])
c411dc1997-04-21Fredrik Hübinette (Hubbe) 
22c21e1999-06-19Fredrik Hübinette (Hubbe) ######################################################################## MY_CHECK_FUNCTION(rint, [ #include <math.h>
b36a452000-03-28Henrik Grubbström (Grubba) #ifdef HAVE_FLOATINGPOINT_H #include <floatingpoint.h> #endif #ifdef HAVE_IEEEFP_H #include <ieeefp.h> #endif /* HAVE_IEEEFP_H */
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
b36a452000-03-28Henrik Grubbström (Grubba) #ifdef HAVE_FPSETROUND /* Round to nearest */ #ifndef FP_RN #define FP_RN 0 #endif /* FP_RN */ fpsetround(FP_RN); #endif /* HAVE_FPSETROUND */
22c21e1999-06-19Fredrik Hübinette (Hubbe)  if(rint(0.1) != 0.0 || rint(0.6) != 1.0) exit(1); exit(0);
1a3f882000-08-21Henrik Grubbström (Grubba) ])
22c21e1999-06-19Fredrik Hübinette (Hubbe) 
c411dc1997-04-21Fredrik Hübinette (Hubbe) ######################################################################## MY_CHECK_FUNCTION(frexp, [ #include <math.h>
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
c411dc1997-04-21Fredrik Hübinette (Hubbe)  double x,y;
1a631e1997-04-22Fredrik Hübinette (Hubbe)  int p,e;
c411dc1997-04-21Fredrik Hübinette (Hubbe) 
1a631e1997-04-22Fredrik Hübinette (Hubbe)  x=frexp(1.0, &e);
3b7ea31998-07-22Fredrik Hübinette (Hubbe)  if(x * pow(2.0,(double)e) != 1.0) exit(3);
1a631e1997-04-22Fredrik Hübinette (Hubbe)  p=-7;
c411dc1997-04-21Fredrik Hübinette (Hubbe)  for(x=3.0/4.0*pow(2.0,(double)p);x<50000.0;x*=2.0,p++) { if(frexp(x, &e)!=3.0/4.0) exit(1);
1a631e1997-04-22Fredrik Hübinette (Hubbe)  if(e!=p) exit(2);
c411dc1997-04-21Fredrik Hübinette (Hubbe)  } exit(0);
1a3f882000-08-21Henrik Grubbström (Grubba) ])
c411dc1997-04-21Fredrik Hübinette (Hubbe) 
9649491998-02-27Fredrik Hübinette (Hubbe) ############################################################################# MY_CHECK_FUNCTION(GetSystemTimeAsFileTime, [ #include <windows.h> #include <winbase.h>
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
9649491998-02-27Fredrik Hübinette (Hubbe)  FILETIME f; GetSystemTimeAsFileTime(&f); exit(0); ]) ############################################################################# MY_CHECK_FUNCTION(gethostname, [ #ifdef HAVE_UNISTD_H #include <unistd.h> #endif #ifdef HAVE_WINSOCK_H #include <winsock.h> #endif
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
9649491998-02-27Fredrik Hübinette (Hubbe)  char buffer[10000]; char *x=gethostname(buffer,sizeof(buffer)); exit(0); ]) ############################################################################# MY_CHECK_FUNCTION(strcoll, [ #include <string.h> #include <locale.h>
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
9649491998-02-27Fredrik Hübinette (Hubbe)  setlocale(LC_CTYPE, "ISO-8859-1"); exit(strcoll("abc", "def") >= 0 || strcoll("ABC", "DEF") >= 0 || strcoll("ABC", "ABCD") >= 0 || strcoll("ABCD", "ABC") <= 0 || strcoll("*^#", "*^#") != 0 || strcoll("123", "456") >= 0); ])
c411dc1997-04-21Fredrik Hübinette (Hubbe) ######################################################################## MY_CHECK_FUNCTION(memmem,
5267b71995-08-09Fredrik Hübinette (Hubbe) [ #include <string.h> char *a="foo bar gazonk"; char *b="foo"; char *c="bar"; char *d="gazonk";
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
c463961998-09-27Henrik Grubbström (Grubba)  if(((char *)memmem(b,strlen(b),a,strlen(a)))!=a || ((char *)memmem(c,strlen(c),a,strlen(a)))!=(a+4) || ((char *)memmem(d,strlen(d),a,strlen(a)))!=(a+8) || ((char *)memmem(d,0,a,strlen(a)))!=a ||
5267b71995-08-09Fredrik Hübinette (Hubbe)  memmem(d,strlen(d)+1,a,strlen(a))!=0) exit(1); exit(0);
c411dc1997-04-21Fredrik Hübinette (Hubbe) ])
5267b71995-08-09Fredrik Hübinette (Hubbe) 
c411dc1997-04-21Fredrik Hübinette (Hubbe) ########################################################################
5267b71995-08-09Fredrik Hübinette (Hubbe) 
7a5e471999-11-22Fredrik Hübinette (Hubbe) MY_CHECK_FUNCTION(memcpy, [ #include <string.h> char *a="foo bar gazonk"; char foo[23];
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
7a5e471999-11-22Fredrik Hübinette (Hubbe)  memcpy(foo, a, strlen(a)+1); memcpy(foo, a+4, 3); if(strcmp(foo,"bar bar gazonk")) exit(1); exit(0); ]) ######################################################################## MY_CHECK_FUNCTION(memset, [
c4dc222000-11-25Henrik Grubbström (Grubba) #ifdef HAVE_STDDEF_H #include <stddef.h> #endif /* HAVE_STDDEF_H */ #ifdef HAVE_SYS_TYPES_H #include <sys/types.h> #endif /* HAVE_SYS_TYPES_H */
5a469f2001-04-20Henrik Grubbström (Grubba) #ifdef HAVE_STDLIB_H #include <stdlib.h> #endif /* HAVE_STDLIB_H */
c4dc222000-11-25Henrik Grubbström (Grubba) #include <stdio.h>
7a5e471999-11-22Fredrik Hübinette (Hubbe) #include <string.h> char foo[23];
0e85fb2000-08-28Henrik Grubbström (Grubba)  struct pike_string { int refs; int size_shift; ptrdiff_t len; size_t hval; struct pike_string *next; char str[1]; }; struct pike_string *begin_shared_string(int len) {
1bc8c32001-04-17Henrik Grubbström (Grubba)  return (struct pike_string *)malloc(sizeof(struct pike_string) + len);
0e85fb2000-08-28Henrik Grubbström (Grubba) }
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
5341702000-08-28Henrik Grubbström (Grubba)  int i;
0e85fb2000-08-28Henrik Grubbström (Grubba)  struct pike_string *str;
c4dc222000-11-25Henrik Grubbström (Grubba)  ptrdiff_t len;
0e85fb2000-08-28Henrik Grubbström (Grubba) 
7a5e471999-11-22Fredrik Hübinette (Hubbe)  memset(foo, 0, 11); memset(foo, 'a', 10); memset(foo, 'b', 5);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "1\n");
c4dc222000-11-25Henrik Grubbström (Grubba)  if(strcmp(foo,"bbbbbaaaaa")) { exit(1); }
5341702000-08-28Henrik Grubbström (Grubba)  memset(foo, 0, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "2\n");
5341702000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i]) { exit(1); }
5341702000-08-28Henrik Grubbström (Grubba)  }
08d51f2000-08-28Henrik Grubbström (Grubba)  memset(foo+1, 1, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "3\n");
08d51f2000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i+1] != 1) { exit(1); }
08d51f2000-08-28Henrik Grubbström (Grubba)  } memset(foo+2, 0, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "4\n");
08d51f2000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i+2]) { exit(1); }
08d51f2000-08-28Henrik Grubbström (Grubba)  } memset(foo+3, 1, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "5\n");
08d51f2000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i+3] != 1) { exit(1); }
08d51f2000-08-28Henrik Grubbström (Grubba)  }
d21a452000-08-28Henrik Grubbström (Grubba)  memset(foo+4, 0, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "6\n");
d21a452000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i+4]) { exit(1); }
d21a452000-08-28Henrik Grubbström (Grubba)  } memset(foo+5, 1, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "7\n");
d21a452000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i+5] != 1) { exit(1); }
d21a452000-08-28Henrik Grubbström (Grubba)  } memset(foo+6, 0, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "8\n");
d21a452000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i+6]) { exit(1); }
d21a452000-08-28Henrik Grubbström (Grubba)  } memset(foo+7, 1, 6);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "9\n");
d21a452000-08-28Henrik Grubbström (Grubba)  for (i=6; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (foo[i+7] != 1) { exit(1); }
d21a452000-08-28Henrik Grubbström (Grubba)  }
0e85fb2000-08-28Henrik Grubbström (Grubba)  len = 6; str = begin_shared_string(len);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "string start\n");
0e85fb2000-08-28Henrik Grubbström (Grubba)  if (!str) exit(1); for (i=len; i--;) { str->str[i] = ~0; }
c4dc222000-11-25Henrik Grubbström (Grubba)  memset(str->str, 0, len);
1bc8c32001-04-17Henrik Grubbström (Grubba)  fprintf(stderr, "string end\n");
0e85fb2000-08-28Henrik Grubbström (Grubba)  for (i = len; i--;) {
c4dc222000-11-25Henrik Grubbström (Grubba)  if (str->str[i]) { exit(1); }
0e85fb2000-08-28Henrik Grubbström (Grubba)  } free(str);
7a5e471999-11-22Fredrik Hübinette (Hubbe)  exit(0); ]) ########################################################################
c411dc1997-04-21Fredrik Hübinette (Hubbe) MY_CHECK_FUNCTION(memmove,
5267b71995-08-09Fredrik Hübinette (Hubbe) [ #include <string.h> char buf[100];
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
5267b71995-08-09Fredrik Hübinette (Hubbe)  strcpy(buf,"foo bar gazonk elefantsnabel."); if(strcmp(buf,"foo bar gazonk elefantsnabel.")) exit(1);
cb22561995-10-11Fredrik Hübinette (Hubbe)  memmove(buf,buf+1,7);
5267b71995-08-09Fredrik Hübinette (Hubbe)  if(strcmp(buf,"oo bar gazonk elefantsnabel.")) exit(1); memmove(buf+1,buf+1,9); if(strcmp(buf,"oo bar gazonk elefantsnabel.")) exit(1); memmove(buf+1,buf,11); if(strcmp(buf,"ooo bar gaznk elefantsnabel.")) exit(1); exit(0);
c411dc1997-04-21Fredrik Hübinette (Hubbe) ])
5267b71995-08-09Fredrik Hübinette (Hubbe) 
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
c411dc1997-04-21Fredrik Hübinette (Hubbe) MY_CHECK_FUNCTION(isspace, [ #include <ctype.h>
1a3f882000-08-21Henrik Grubbström (Grubba) ], [
c411dc1997-04-21Fredrik Hübinette (Hubbe)  if(isspace(' ')) exit(0); exit(1); ]) #############################################################################
85f59e1998-01-08Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(if we can declare environ) AC_CACHE_VAL(pike_cv_declare_environ,[ AC_TRY_COMPILE([ #include <stdlib.h> ],[ extern char **environ; exit(0); ],pike_cv_declare_environ=yes,pike_cv_declare_environ=no,pike_cv_declare_environ=yes) ]) AC_MSG_RESULT($pike_cv_declare_environ) if test "x$pike_cv_declare_environ" = xyes ; then AC_DEFINE(DECLARE_ENVIRON) fi #############################################################################
c411dc1997-04-21Fredrik Hübinette (Hubbe) 
9dd2201998-05-17Henrik Grubbström (Grubba) AC_MSG_CHECKING([for union wait (old BSD convention)]) AC_CACHE_VAL(pike_cv_union_wait, [ AC_TRY_COMPILE([ #ifdef HAVE_SYS_WAIT_H #include <sys/wait.h>
d6980f1998-05-17Henrik Grubbström (Grubba) #endif /* HAVE_SYS_WAIT_H */
9dd2201998-05-17Henrik Grubbström (Grubba) ], [ union wait status; exit(0); ], pike_cv_union_wait=yes, pike_cv_union_wait=no) ]) AC_MSG_RESULT($pike_cv_union_wait) if test "x$pike_cv_union_wait" = "xyes" ; then
f376171998-05-22Henrik Grubbström (Grubba)  AC_MSG_CHECKING([whether union wait is really needed]) AC_CACHE_VAL(pike_cv_union_wait_needed, [ AC_TRY_COMPILE([ #ifdef HAVE_SYS_WAIT_H #include <sys/wait.h> #endif /* HAVE_SYS_WAIT_H */ ], [ int status; return WIFEXITED(status) || 0; ], pike_cv_union_wait_needed=no, pike_cv_union_wait_needed=yes) ])
efad7a1998-10-28Henrik Grubbström (Grubba)  AC_MSG_RESULT($pike_cv_union_wait_needed)
f376171998-05-22Henrik Grubbström (Grubba)  if test "x$pike_cv_union_wait_needed" = "xyes" ; then AC_DEFINE(HAVE_UNION_WAIT) else :; fi else :; fi
9dd2201998-05-17Henrik Grubbström (Grubba)  #############################################################################
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(how to extract an unsigned char)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_method_extract_uchar,
5267b71995-08-09Fredrik Hübinette (Hubbe) [ AC_TRY_RUN([
cb22561995-10-11Fredrik Hübinette (Hubbe) int main()
5267b71995-08-09Fredrik Hübinette (Hubbe) { char i,*p; i=-10; p=&i; if(*(unsigned char *)(p)!= 0x100 - 10) exit(1); exit(0); }
06983f1996-09-22Fredrik Hübinette (Hubbe) ],pike_cv_method_extract_uchar=by_cast,
75920f1997-12-28Fredrik Hübinette (Hubbe) pike_cv_method_extract_uchar=not_by_cast,
06983f1996-09-22Fredrik Hübinette (Hubbe) pike_cv_method_extract_uchar=not_by_cast)])
5267b71995-08-09Fredrik Hübinette (Hubbe) 
06983f1996-09-22Fredrik Hübinette (Hubbe) if test "$pike_cv_method_extract_uchar" = by_cast; then
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_MSG_RESULT(by cast) AC_DEFINE(EXTRACT_UCHAR_BY_CAST) else AC_MSG_RESULT(not by cast) fi
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(how to extract a signed char)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_method_extract_char,
5267b71995-08-09Fredrik Hübinette (Hubbe) [ AC_TRY_RUN([
cb22561995-10-11Fredrik Hübinette (Hubbe) int main()
5267b71995-08-09Fredrik Hübinette (Hubbe) { char i,*p; i=-10; p=&i; if(*(signed char *)(p)!= -10) exit(1); exit(0); }
06983f1996-09-22Fredrik Hübinette (Hubbe) ],pike_cv_method_extract_char=by_cast,
75920f1997-12-28Fredrik Hübinette (Hubbe) pike_cv_method_extract_char=not_by_cast,
06983f1996-09-22Fredrik Hübinette (Hubbe) pike_cv_method_extract_char=not_by_cast)])
5267b71995-08-09Fredrik Hübinette (Hubbe) 
06983f1996-09-22Fredrik Hübinette (Hubbe) if test "$pike_cv_method_extract_char" = by_cast; then
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_MSG_RESULT(by cast) AC_DEFINE(EXTRACT_CHAR_BY_CAST) else AC_MSG_RESULT(not by cast) fi
9debfa1999-08-11Fredrik Hübinette (Hubbe) #############################################################################
ec29312001-03-19Mirar (Pontus Hagland) mmx_reason=' (no mmx.h found)'
b5cef82001-03-19Mirar (Pontus Hagland) if test "x$ac_cv_header_mmx_h" = xyes; then
27da5c1999-09-23Fredrik Noring  AC_MSG_CHECKING(for working MMX)
ec29312001-03-19Mirar (Pontus Hagland)  mmx_reason=' (mmx.h found, but mmx operations failed)'
9debfa1999-08-11Fredrik Hübinette (Hubbe) 
c724c41999-08-12Henrik Grubbström (Grubba)  AC_CACHE_VAL(pike_cv_sys_has_working_mmx, [ AC_TRY_LINK([
ec29312001-03-19Mirar (Pontus Hagland) #ifdef HAVE_MMX_H
9debfa1999-08-11Fredrik Hübinette (Hubbe) #include <mmx.h>
ec29312001-03-19Mirar (Pontus Hagland) #endif
c724c41999-08-12Henrik Grubbström (Grubba)  ],[ {
27da5c1999-09-23Fredrik Noring  int try_use_mmx;
dd50741999-10-25Per Hedbor  char a[8]; movq_m2r( *a, mm0 ); paddb_r2r( mm0, mm0 ); movq_r2m( mm0, *a );
27da5c1999-09-23Fredrik Noring  try_use_mmx=mmx_ok();
c724c41999-08-12Henrik Grubbström (Grubba)  }
ec29312001-03-19Mirar (Pontus Hagland)  ],pike_cv_sys_has_working_mmx=yes,pike_cv_sys_has_working_mmx=no)
c724c41999-08-12Henrik Grubbström (Grubba)  ])
9debfa1999-08-11Fredrik Hübinette (Hubbe) 
c724c41999-08-12Henrik Grubbström (Grubba)  AC_MSG_RESULT($pike_cv_sys_has_working_mmx)
9debfa1999-08-11Fredrik Hübinette (Hubbe) 
e8f42f1999-08-12Henrik Grubbström (Grubba)  if test "x$pike_cv_sys_has_working_mmx" = xyes ; then AC_DEFINE(TRY_USE_MMX)
ec29312001-03-19Mirar (Pontus Hagland)  mmx_reason=''
e8f42f1999-08-12Henrik Grubbström (Grubba)  else :; fi else :; fi
9debfa1999-08-11Fredrik Hübinette (Hubbe) 
d300821998-02-27Marcus Comstedt #############################################################################
71b44e1998-06-05Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(if float conversion can cause SIGFPE) AC_CACHE_VAL(pike_cv_sys_idiot_sigfpe, [ AC_TRY_RUN([ #include <math.h>
3b7ea31998-07-22Fredrik Hübinette (Hubbe) #ifdef HAVE_FLOATINGPOINT_H #include <floatingpoint.h> #endif #ifdef HAVE_IEEEFP_H #include <ieeefp.h> #endif
c371d41998-06-07Simon Coggins float foo_float = 0.0;
71b44e1998-06-05Fredrik Hübinette (Hubbe) int main(int argc, char **argv) {
c371d41998-06-07Simon Coggins  float x=2.0, y=-128.0;
3b7ea31998-07-22Fredrik Hübinette (Hubbe) #ifdef HAVE_FPSETMASK fpsetmask(0); #endif
c371d41998-06-07Simon Coggins  x = pow(2.0, -128.0); foo_float = x; if (x == 2.0) exit(1); x = pow(2.0, 1024.0); foo_float = x; if(x == 2.0) exit(1);
71b44e1998-06-05Fredrik Hübinette (Hubbe)  exit(0); }
e33f4c1998-06-28Henrik Grubbström (Grubba) ],pike_cv_sys_idiot_sigfpe=no,pike_cv_sys_idiot_sigfpe=yes, pike_cv_sys_idiot_sigfpe=yes)
71b44e1998-06-05Fredrik Hübinette (Hubbe) ]) if test $pike_cv_sys_idiot_sigfpe = yes ; then AC_MSG_RESULT(yes)
c371d41998-06-07Simon Coggins  IEEE_FLAG=no if test "x${GCC-}" = xyes ; then
71b44e1998-06-05Fredrik Hübinette (Hubbe)  AC_SYS_COMPILER_FLAG(-mieee, mieee, CFLAGS,[],IEEE_FLAG=yes)
c371d41998-06-07Simon Coggins  else
71b44e1998-06-05Fredrik Hübinette (Hubbe)  AC_SYS_COMPILER_FLAG(-ieee, ieee, CFLAGS,[],IEEE_FLAG=yes)
c371d41998-06-07Simon Coggins  fi TEST_IGNORE_SIGFPE=yes
71b44e1998-06-05Fredrik Hübinette (Hubbe) 
c371d41998-06-07Simon Coggins  if test $IEEE_FLAG = yes; then AC_MSG_CHECKING(if float conversion is still broken) AC_CACHE_VAL(pike_cv_sys_idiot_sigfpe_with_ieee,
71b44e1998-06-05Fredrik Hübinette (Hubbe) [
8aa31a1998-06-07Henrik Grubbström (Grubba)  OLD_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $OPTIMIZE"
71b44e1998-06-05Fredrik Hübinette (Hubbe)  AC_TRY_RUN([ #include <math.h>
c371d41998-06-07Simon Coggins 
3b7ea31998-07-22Fredrik Hübinette (Hubbe) #ifdef HAVE_FLOATINGPOINT_H #include <floatingpoint.h> #endif #ifdef HAVE_IEEEFP_H #include <ieeefp.h> #endif
c371d41998-06-07Simon Coggins float foo_float = 0.0;
71b44e1998-06-05Fredrik Hübinette (Hubbe) int main(int argc, char **argv) {
c371d41998-06-07Simon Coggins  float x=2.0, y=-128.0;
3b7ea31998-07-22Fredrik Hübinette (Hubbe) #ifdef HAVE_FPSETMASK fpsetmask(0); #endif
c371d41998-06-07Simon Coggins  x = pow(2.0, -128.0); foo_float = x; if (x == 2.0) exit(1); x = pow(2.0, 1024.0); foo_float = x; if(x == 2.0) exit(1);
71b44e1998-06-05Fredrik Hübinette (Hubbe)  exit(0); }
e33f4c1998-06-28Henrik Grubbström (Grubba) ],pike_cv_sys_idiot_sigfpe_with_ieee=no,pike_cv_sys_idiot_sigfpe_with_ieee=yes, pike_cv_sys_idiot_sigfpe_with_ieee=yes)
8aa31a1998-06-07Henrik Grubbström (Grubba)  CFLAGS="$OLD_CFLAGS"
71b44e1998-06-05Fredrik Hübinette (Hubbe) ])
c371d41998-06-07Simon Coggins  if test $pike_cv_sys_idiot_sigfpe_with_ieee = yes ; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) TEST_IGNORE_SIGFPE=no fi
71b44e1998-06-05Fredrik Hübinette (Hubbe) fi # IEEE_FLAG if test $TEST_IGNORE_SIGFPE = yes; then AC_MSG_CHECKING(if ignoring SIGFPE helps) AC_CACHE_VAL(pike_cv_sys_ignore_sigfpe, [
8aa31a1998-06-07Henrik Grubbström (Grubba)  OLD_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $OPTIMIZE"
71b44e1998-06-05Fredrik Hübinette (Hubbe) AC_TRY_RUN([
8aa31a1998-06-07Henrik Grubbström (Grubba) #include <signal.h>
71b44e1998-06-05Fredrik Hübinette (Hubbe) #include <math.h> int counter=0; RETSIGTYPE func(void) { if(counter++>10) exit(7); signal(SIGFPE,func); }
c371d41998-06-07Simon Coggins float foo_float = 0.0;
71b44e1998-06-05Fredrik Hübinette (Hubbe) int main(int argc, char **argv) {
c371d41998-06-07Simon Coggins  float x=2.0, y=-128.0;
71b44e1998-06-05Fredrik Hübinette (Hubbe)  signal(SIGFPE,func);
c371d41998-06-07Simon Coggins  x = pow(2.0, -128.0); foo_float = x; if (x == 2.0) exit(1); x = pow(2.0, 1024.0); foo_float = x; if(x == 2.0) exit(1);
71b44e1998-06-05Fredrik Hübinette (Hubbe)  exit(0); }
e33f4c1998-06-28Henrik Grubbström (Grubba) ],pike_cv_sys_ignore_sigfpe=yes,pike_cv_sys_ignore_sigfpe=no, pike_cv_sys_ignore_sigfpe=yes)
8aa31a1998-06-07Henrik Grubbström (Grubba)  CFLAGS="$OLD_CFLAGS"
71b44e1998-06-05Fredrik Hübinette (Hubbe) ]) if test "$pike_cv_sys_ignore_sigfpe" = yes; then AC_MSG_RESULT(yes) AC_DEFINE(IGNORE_SIGFPE) else AC_MSG_RESULT(no) fi fi # TEST_IGNORE_SIGFPE else AC_MSG_RESULT(no) fi # pike_cv_sys_idiot_sigfpe #############################################################################
5ff14f1998-05-25Marcus Comstedt define(float_check, [[ #include <math.h> #define TY $1 #define TEST_$1 #define TEST_$2 #define EXPECTED_SIZE_float 4 #define EXPECTED_SIZE_double 8 void check(TY n, char *pf, char *pd) { int i; char *p, *p2 = (char*)&n; #ifdef TEST_float p = pf; #else p = pd; #endif for(i=0; i<sizeof(TY); i++) #ifdef TEST_BIG if(p[i] != p2[i]) exit(1); #else if(p[i] != p2[sizeof(TY)-i-1]) exit(1); #endif } int main() { if(sizeof(TY)!=EXPECTED_SIZE_$1) exit(1); check((TY)0.0, "\000\000\000\000", "\000\000\000\000\000\000\000\000"); check((TY)1.0, "\077\200\000\000", "\077\360\000\000\000\000\000\000"); check((TY)-1.0, "\277\200\000\000", "\277\360\000\000\000\000\000\000"); check((TY)2.0, "\100\000\000\000", "\100\000\000\000\000\000\000\000"); check((TY)1.5, "\077\300\000\000", "\077\370\000\000\000\000\000\000"); check((TY)0.032999999821186065673828125, "\075\007\053\002", "\077\240\345\140\100\000\000\000"); exit(0); } ]]) AC_MSG_CHECKING(for type of float)
32cf262000-08-20Henrik Grubbström (Grubba) AC_CACHE_VAL(pike_cv_float_type, [ AC_TRY_RUN(float_check(float,BIG), pike_cv_float_type=ieee_big, [ AC_TRY_RUN(float_check(float,LITTLE), pike_cv_float_type=ieee_little, pike_cv_float_type=not_ieee, pike_cv_float_type=not_ieee) ], [
1f958f2000-08-21Henrik Grubbström (Grubba)  echo $ac_n "crosscompiling... $ac_c" 1>&6
32cf262000-08-20Henrik Grubbström (Grubba)  # Use some magical constants... cat > conftest.$ac_ext <<EOF dnl This sometimes fails to find confdefs.h, for some reason. dnl [#]line __oline__ "[$]0" [#]line __oline__ "configure" #include "confdefs.h" #include <stdio.h> float float_info[[]] = { 0.0, 14914788644012054221422592.0, 16305677175569252352.0, 0.0 }; EOF if AC_TRY_EVAL(ac_compile); then if test -f "conftest.$ac_objext"; then if strings "conftest.$ac_objext" | grep "iEeE_bIg" >/dev/null; then pike_cv_float_type=ieee_big else if strings "conftest.$ac_objext" | grep "EeEigIb_" >/dev/null; then pike_cv_float_type=ieee_little else pike_cv_float_type=not_ieee fi fi else AC_MSG_WARN([Object file not found.]) pike_cv_float_type=not_ieee fi else pike_cv_float_type=not_ieee fi
fdb6982000-08-20Henrik Grubbström (Grubba)  rm -rf conftest*
32cf262000-08-20Henrik Grubbström (Grubba)  ]) ])
5ff14f1998-05-25Marcus Comstedt if test "$pike_cv_float_type" = ieee_big; then AC_MSG_RESULT(IEEE big endian) AC_DEFINE(FLOAT_IS_IEEE_BIG) else if test "$pike_cv_float_type" = ieee_little; then AC_MSG_RESULT(IEEE little endian) AC_DEFINE(FLOAT_IS_IEEE_LITTLE) else AC_MSG_RESULT(not IEEE) fi fi AC_MSG_CHECKING(for type of double)
32cf262000-08-20Henrik Grubbström (Grubba) AC_CACHE_VAL(pike_cv_double_type, [ AC_TRY_RUN(float_check(double,BIG), pike_cv_double_type=ieee_big, [ AC_TRY_RUN(float_check(double,LITTLE), pike_cv_double_type=ieee_little, pike_cv_double_type=not_ieee, pike_cv_double_type=not_ieee) ], [
1f958f2000-08-21Henrik Grubbström (Grubba)  echo $ac_n "crosscompiling... $ac_c" 1>&6
32cf262000-08-20Henrik Grubbström (Grubba)  # Use some magical constants... cat > conftest.$ac_ext <<EOF dnl This sometimes fails to find confdefs.h, for some reason. dnl [#]line __oline__ "[$]0" [#]line __oline__ "configure" #include "confdefs.h" #include <stdio.h> double double_info[[]] = { 0.0, 12794738495187527498222028847205909954314554441725728393516969126669975252147490126864122090122288822751876426313291683594796075946303753742007913302630260537160845833197547903208108732031187791380480.0, 0.0 }; EOF if AC_TRY_EVAL(ac_compile); then if test -f "conftest.$ac_objext"; then if strings "conftest.$ac_objext" | grep "iEeE_bIg" >/dev/null; then pike_cv_double_type=ieee_big else if strings "conftest.$ac_objext" | grep "gIb_EeEi" >/dev/null; then pike_cv_double_type=ieee_little else pike_cv_double_type=not_ieee fi fi else AC_MSG_WARN([Object file not found.]) pike_cv_float_type=not_ieee fi else pike_cv_float_type=not_ieee fi
fdb6982000-08-20Henrik Grubbström (Grubba)  rm -rf conftest*
32cf262000-08-20Henrik Grubbström (Grubba)  ]) ])
5ff14f1998-05-25Marcus Comstedt if test "$pike_cv_double_type" = ieee_big; then AC_MSG_RESULT(IEEE big endian) AC_DEFINE(DOUBLE_IS_IEEE_BIG) else if test "$pike_cv_double_type" = ieee_little; then AC_MSG_RESULT(IEEE little endian) AC_DEFINE(DOUBLE_IS_IEEE_LITTLE) else AC_MSG_RESULT(not IEEE) fi fi #############################################################################
d300821998-02-27Marcus Comstedt AC_MSG_CHECKING(for volatile) AC_CACHE_VAL(pike_cv_volatile, [ AC_TRY_COMPILE([],[ volatile int foo=1;], pike_cv_volatile=yes,pike_cv_volatile=no) ]) if test "$pike_cv_volatile" = yes; then AC_MSG_RESULT(yes) AC_DEFINE(VOLATILE,volatile) else AC_MSG_RESULT(no) AC_DEFINE(VOLATILE,) fi
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
93b8081995-11-02Fredrik Hübinette (Hubbe) 
61d3cf1998-02-27Marcus Comstedt AC_MSG_CHECKING(for sig_atomic_t) AC_CACHE_VAL(ac_cv_type_sig_atomic_t, [ AC_EGREP_CPP(sig_atomic_t, [ #ifdef HAVE_SIGNAL_H #include <signal.h> #endif
9c9bf22000-08-04Henrik Grubbström (Grubba) #ifdef HAVE_CRT_SIGNAL_H #include <crt/signal.h> #endif
61d3cf1998-02-27Marcus Comstedt #include <sys/types.h> #if STDC_HEADERS #include <stdlib.h> #include <stddef.h> #endif], ac_cv_type_sig_atomic_t=yes, ac_cv_type_sig_atomic_t=no)]) AC_MSG_RESULT($ac_cv_type_sig_atomic_t) if test x"$ac_cv_type_sig_atomic_t" = xno; then AC_DEFINE(sig_atomic_t, int) else : fi
c8a4ce1995-11-20Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(if signal handlers reset automatically)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_sys_signal_oneshot,
93b8081995-11-02Fredrik Hübinette (Hubbe) [ AC_TRY_RUN([
61d3cf1998-02-27Marcus Comstedt #ifdef HAVE_SIGNAL_H
93b8081995-11-02Fredrik Hübinette (Hubbe) #include <signal.h>
61d3cf1998-02-27Marcus Comstedt #endif #include <sys/types.h> #if STDC_HEADERS #include <stdlib.h> #include <stddef.h> #endif
450e9d2001-05-08Henrik Grubbström (Grubba) VOLATILE sig_atomic_t sigrun[2]= { 0, 0 };
6077101999-05-15Henrik Grubbström (Grubba) RETSIGTYPE func(int sig) { write(2, "func called\n", sizeof("func called\n") - sizeof(""));
450e9d2001-05-08Henrik Grubbström (Grubba)  sigrun[0] = -1;
6077101999-05-15Henrik Grubbström (Grubba) }
93b8081995-11-02Fredrik Hübinette (Hubbe)  int main() { #define sig SIGSEGV #ifdef HAVE_SIGACTION { struct sigaction action; action.sa_handler= func; sigfillset(&action.sa_mask); #ifdef SA_INTERRUPT action.sa_flags=SA_INTERRUPT; #endif sigaction(sig,&action,0); } #else #ifdef HAVE_SIGVEC { struct sigvec action; action.sv_handler= func; action.sv_mask=-1; #ifdef SV_INTERRUPT action.sv_flags=SV_INTERRUPT; #endif sigvec(sig,&action,0); } #else signal(sig, func); #endif #endif kill(getpid(), sig);
a3c9a72000-10-13Fredrik Hübinette (Hubbe) #ifdef HAVE_POLL
450e9d2001-05-08Henrik Grubbström (Grubba)  while(!strlen((char *)sigrun)) poll(0,0,100);
a3c9a72000-10-13Fredrik Hübinette (Hubbe) #else
450e9d2001-05-08Henrik Grubbström (Grubba)  while(!strlen((char *)sigrun)) sleep(1);
a3c9a72000-10-13Fredrik Hübinette (Hubbe) #endif
450e9d2001-05-08Henrik Grubbström (Grubba)  sigrun[0]=0;
93b8081995-11-02Fredrik Hübinette (Hubbe)  kill(getpid(), sig);
a3c9a72000-10-13Fredrik Hübinette (Hubbe) #ifdef HAVE_POLL
450e9d2001-05-08Henrik Grubbström (Grubba)  while(!strlen((char *)sigrun)) poll(0,0,100);
a3c9a72000-10-13Fredrik Hübinette (Hubbe) #else
450e9d2001-05-08Henrik Grubbström (Grubba)  while(!strlen((char *)sigrun)) sleep(1);
a3c9a72000-10-13Fredrik Hübinette (Hubbe) #endif
450e9d2001-05-08Henrik Grubbström (Grubba)  sigrun[0]=0;
93b8081995-11-02Fredrik Hübinette (Hubbe)  exit(0); }
75920f1997-12-28Fredrik Hübinette (Hubbe) ],pike_cv_sys_signal_oneshot=no,pike_cv_sys_signal_oneshot=yes,pike_cv_sys_signal_oneshot=yes)])
93b8081995-11-02Fredrik Hübinette (Hubbe) 
06983f1996-09-22Fredrik Hübinette (Hubbe) if test "$pike_cv_sys_signal_oneshot" = yes; then
93b8081995-11-02Fredrik Hübinette (Hubbe)  AC_MSG_RESULT(yes) AC_DEFINE(SIGNAL_ONESHOT) else AC_MSG_RESULT(no) fi
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
93b8081995-11-02Fredrik Hübinette (Hubbe) 
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(available file descriptors)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_max_open_fd,
5267b71995-08-09Fredrik Hübinette (Hubbe) [ AC_TRY_RUN([ #include <stdio.h> #ifdef HAVE_SYS_TIME_H #include <sys/time.h> #endif #ifdef HAVE_SYS_RESOURCE_H #include <sys/resource.h> #endif #ifndef MAX_FD
c0d65d2000-05-20Per Hedbor #define MAX_FD 65536
5267b71995-08-09Fredrik Hübinette (Hubbe) #endif int main() { FILE *f;
f90e541995-08-17Fredrik Hübinette (Hubbe)  long limit;
5c8e891995-10-29Fredrik Hübinette (Hubbe) 
2a50961995-08-23Fredrik Hübinette (Hubbe) #if !defined(RLIMIT_NOFILE) && defined(RLIMIT_OFILE)
f90e541995-08-17Fredrik Hübinette (Hubbe) #define RLIMIT_NOFILE RLIMIT_OFILE #endif
5c8e891995-10-29Fredrik Hübinette (Hubbe) 
cb22561995-10-11Fredrik Hübinette (Hubbe) #if defined(HAVE_SETRLIMIT) && defined(RLIMIT_NOFILE)
5267b71995-08-09Fredrik Hübinette (Hubbe)  struct rlimit lim; if(getrlimit(RLIMIT_NOFILE,&lim)) { limit = MAX_FD; }else{
f90e541995-08-17Fredrik Hübinette (Hubbe)  if(lim.rlim_max == RLIM_INFINITY) {
c0d65d2000-05-20Per Hedbor  limit = 1024 * 1024 * 2; /* Noone needs more :-) */
f90e541995-08-17Fredrik Hübinette (Hubbe)  }else{ limit=lim.rlim_max;
c0d65d2000-05-20Per Hedbor  if(limit > 1024 * 1024 * 2) limit= 1024 * 1024 * 2;
f90e541995-08-17Fredrik Hübinette (Hubbe)  }
5267b71995-08-09Fredrik Hübinette (Hubbe)  } #else limit = MAX_FD; #endif f=fopen("conftest.out.2","w");
f90e541995-08-17Fredrik Hübinette (Hubbe)  fprintf(f,"%ld\n",(long)limit);
5267b71995-08-09Fredrik Hübinette (Hubbe)  fclose(f); return 0; } ],
06983f1996-09-22Fredrik Hübinette (Hubbe) pike_cv_max_open_fd=`cat conftest.out.2`
5267b71995-08-09Fredrik Hübinette (Hubbe) ,
06983f1996-09-22Fredrik Hübinette (Hubbe) pike_cv_max_open_fd=256
75920f1997-12-28Fredrik Hübinette (Hubbe) , pike_cv_max_open_fd=256
5267b71995-08-09Fredrik Hübinette (Hubbe) )])
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_MSG_RESULT($pike_cv_max_open_fd) AC_DEFINE_UNQUOTED(MAX_OPEN_FILEDESCRIPTORS,$pike_cv_max_open_fd)
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_MSG_CHECKING(full availability of struct rusage members)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_func_getrusage_full,
5267b71995-08-09Fredrik Hübinette (Hubbe) [ AC_TRY_LINK([ #include <sys/time.h> #ifdef HAVE_SYS_RUSAGE_H #include <sys/rusage.h> #endif #include <sys/resource.h> #ifndef RUSAGE_SELF #define RUSAGE_SELF 0 #endif ],[ struct rusage rus; long *v = (long *)main; getrusage(RUSAGE_SELF, &rus); *v++ = rus.ru_maxrss; *v++ = rus.ru_ixrss; *v++ = rus.ru_idrss; *v++ = rus.ru_isrss; *v++ = rus.ru_minflt; *v++ = rus.ru_majflt; *v++ = rus.ru_nswap; *v++ = rus.ru_inblock; *v++ = rus.ru_oublock; *v++ = rus.ru_msgsnd; *v++ = rus.ru_msgrcv; *v++ = rus.ru_nsignals; *v++ = rus.ru_nvcsw; *v++ = rus.ru_nivcsw; ],
06983f1996-09-22Fredrik Hübinette (Hubbe)  pike_cv_func_getrusage_full=yes
5267b71995-08-09Fredrik Hübinette (Hubbe) ,
06983f1996-09-22Fredrik Hübinette (Hubbe)  pike_cv_func_getrusage_full=no
5267b71995-08-09Fredrik Hübinette (Hubbe) )])
06983f1996-09-22Fredrik Hübinette (Hubbe) if test "$pike_cv_func_getrusage_full" = yes; then
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_MSG_RESULT(all there) else AC_MSG_RESULT(getrusage is restricted) AC_DEFINE(GETRUSAGE_RESTRICTED) fi
07513e1996-10-04Fredrik Hübinette (Hubbe) ########################################################################
d203541998-06-10Fredrik Hübinette (Hubbe) # # IRIX also has procfs support, but it it different, a separate test # should be made. /Hubbe #
07513e1996-10-04Fredrik Hübinette (Hubbe) 
2213471997-09-16Henrik Grubbström (Grubba) if test "$ac_cv_header_sys_procfs_h" = "yes"; then AC_MSG_CHECKING(getrusage() through procfs) AC_CACHE_VAL(pike_cv_getrusage_procfs, [ AC_TRY_COMPILE([
c5f17c1998-06-04Henrik Grubbström (Grubba) #ifndef _LARGEFILE_SOURCE # define _FILE_OFFSET_BITS 64 # define _LARGEFILE_SOURCE # define _LARGEFILE64_SOURCE 1 #endif
5267b71995-08-09Fredrik Hübinette (Hubbe) #include <sys/procfs.h> #include <sys/fcntl.h> int proc_fd;
d203541998-06-10Fredrik Hübinette (Hubbe) long tmp;
5267b71995-08-09Fredrik Hübinette (Hubbe) char proc_name[20];
c5f17c1998-06-04Henrik Grubbström (Grubba) prusage_t pru;
2213471997-09-16Henrik Grubbström (Grubba)  ],[ sprintf(proc_name, "/proc/%05d", getpid()); proc_fd = open(proc_name, O_RDONLY); ioctl(proc_fd, PIOCUSAGE, &pru);
d203541998-06-10Fredrik Hübinette (Hubbe)  tmp=pru.pr_utime.tv_sec;
2213471997-09-16Henrik Grubbström (Grubba)  ], pike_cv_getrusage_procfs=yes , pike_cv_getrusage_procfs=no ) ])
5267b71995-08-09Fredrik Hübinette (Hubbe) 
eb42e81997-09-16Henrik Grubbström (Grubba)  if test "$pike_cv_getrusage_procfs" = yes; then AC_MSG_RESULT(yes) AC_DEFINE(GETRUSAGE_THROUGH_PROCFS) else AC_MSG_RESULT(no) fi
5267b71995-08-09Fredrik Hübinette (Hubbe) fi
c411dc1997-04-21Fredrik Hübinette (Hubbe) #############################################################################
bdb5091996-09-25Fredrik Hübinette (Hubbe) 
76aa1f2000-03-25Fredrik Hübinette (Hubbe) if test "$ac_cv_getrusage_procfs" = "yes"; then AC_MSG_CHECKING(prstatus_t contains pr_brksize and pr_stksize) AC_CACHE_VAL(pike_cv_getrusage_procfs_prs, [ AC_TRY_COMPILE([ #ifndef _LARGEFILE_SOURCE # define _FILE_OFFSET_BITS 64 # define _LARGEFILE_SOURCE # define _LARGEFILE64_SOURCE 1 #endif #include <sys/procfs.h> #include <sys/fcntl.h> int proc_fd; long tmp; char proc_name[20]; prstatus_t prs; ],[ sprintf(proc_name, "/proc/%05d", getpid()); proc_fd = open(proc_name, O_RDONLY); ioctl(proc_fd, PIOCSTATUS, &prs); tmp=prs.pr_brksize + prs.pr_stksize; ], pike_cv_getrusage_procfs_prs=yes , pike_cv_getrusage_procfs_prs=no ) ]) if test "$pike_cv_getrusage_procfs_prs" = yes; then AC_MSG_RESULT(yes) AC_DEFINE(GETRUSAGE_THROUGH_PROCFS_PRS) else AC_MSG_RESULT(no) fi fi #############################################################################
3711761998-05-18Henrik Grubbström (Grubba) AC_MSG_CHECKING(for isgraph)
b2018d1998-10-23Henrik Grubbström (Grubba) AC_CACHE_VAL(pike_cv_func_isgraph, [ AC_TRY_LINK([
3711761998-05-18Henrik Grubbström (Grubba) #include <ctype.h> ], [ return(!isgraph('A')); ], pike_cv_func_isgraph=yes, pike_cv_func_isgraph=no) ]) AC_MSG_RESULT($pike_cv_func_isgraph) if test "x$pike_cv_func_isgraph" = "xyes" ; then AC_DEFINE(HAVE_ISGRAPH) else :; fi
94cf721998-07-11Henrik Grubbström (Grubba) ############################################################################# # # __func__ is new in ISO C 9x # # It should expand to the name of the current function, and is # useful for debug. AC_MSG_CHECKING(if __func__ exists and works) AC_CACHE_VAL(pike_cv_have_working___func__, [ AC_TRY_RUN([ #ifdef HAVE_STRING_H #include <string.h> #else /* !HAVE_STRING_H */ #ifdef HAVE_STRINGS_H #include <strings.h> #endif /* HAVE_STRIGNS_H */ #endif /* HAVE_STRING_H */ int main() { exit(strcmp("main", __func__)); } ], pike_cv_have_working___func__=yes, pike_cv_have_working___func__=no, pike_cv_have_working___func__=no) ]) AC_MSG_RESULT($pike_cv_have_working___func__) if test "$pike_cv_have_working___func__" = yes; then AC_DEFINE(HAVE_WORKING___FUNC__) else :; fi
7f41951998-07-11Henrik Grubbström (Grubba) # gcc has __FUNCTION__ instead. AC_MSG_CHECKING(if __FUNCTION__ exists and works) AC_CACHE_VAL(pike_cv_have_working___FUNCTION__, [ AC_TRY_RUN([ #ifdef HAVE_STRING_H #include <string.h> #else /* !HAVE_STRING_H */ #ifdef HAVE_STRINGS_H #include <strings.h> #endif /* HAVE_STRIGNS_H */ #endif /* HAVE_STRING_H */ int main() { exit(strcmp("main", __FUNCTION__)); } ], pike_cv_have_working___FUNCTION__=yes, pike_cv_have_working___FUNCTION__=no, pike_cv_have_working___FUNCTION__=no) ]) AC_MSG_RESULT($pike_cv_have_working___FUNCTION__) if test "$pike_cv_have_working___FUNCTION__" = yes; then AC_DEFINE(HAVE_WORKING___FUNCTION__) else :; fi
3711761998-05-18Henrik Grubbström (Grubba) #############################################################################
7e2ee22001-07-08Henrik Grubbström (Grubba)  if test "x$with_computed_goto" = "xyes"; then AC_MSG_CHECKING(for gcc-style computed goto) AC_CACHE_VAL(pike_cv_gcc_computed_goto, [ AC_TRY_COMPILE([], [ void *skip = &&label; goto *skip; return 1; label: return 0; ], [ pike_cv_gcc_computed_goto=yes ], [ pike_cv_gcc_computed_goto=no ])
0341d02001-07-08Henrik Grubbström (Grubba)  ])
cf99452001-07-08Henrik Grubbström (Grubba)  AC_MSG_RESULT($pike_cv_gcc_computed_goto)
7e2ee22001-07-08Henrik Grubbström (Grubba)  if test "x$pike_cv_gcc_computed_goto" = "xyes"; then AC_MSG_WARN([Enabling computed goto (EXPERIMENTAL).]) AC_DEFINE(HAVE_COMPUTED_GOTO) else :; fi else :; fi #############################################################################
3711761998-05-18Henrik Grubbström (Grubba) 
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(for gcc function attributes)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_gcc_attributes,
5267b71995-08-09Fredrik Hübinette (Hubbe) [ AC_TRY_RUN([ #include <stdarg.h> void fatal(char *foo,...) __attribute__ ((noreturn,format (printf,1,2))); int sqr(int x) __attribute__ ((const)); int sqr(int x) { return x*x; } void fatal(char *foo,...) { va_list args; va_start(foo,args); printf(foo,args); va_end(args); exit(2); }
efad7a1998-10-28Henrik Grubbström (Grubba)  int main() { exit(0); }
5267b71995-08-09Fredrik Hübinette (Hubbe) 
75920f1997-12-28Fredrik Hübinette (Hubbe) ], pike_cv_gcc_attributes=yes, pike_cv_gcc_attributes=no, pike_cv_gcc_attributes=no)])
5267b71995-08-09Fredrik Hübinette (Hubbe) 
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_MSG_RESULT($pike_cv_gcc_attributes) if test "$pike_cv_gcc_attributes" = yes; then
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_DEFINE(HAVE_FUNCTION_ATTRIBUTES) fi
f968662000-08-21Henrik Grubbström (Grubba) AC_MSG_CHECKING(for lc __declspec) AC_CACHE_VAL(pike_cv_lc___declspec, [ AC_TRY_RUN([ #include <stdarg.h> __declspec(noreturn) void fatal(char *foo,...); __declspec(noreturn) void fatal(char *foo,...) { va_list args; va_start(foo,args); printf(foo,args); va_end(args); exit(2); } int main() { exit(0); } ], pike_cv_lc___declspec=yes, pike_cv_lc___declspec=no, [ echo $ac_n "crosscompiling... $ac_c" 1>&6 AC_TRY_LINK([ #include <stdarg.h> __declspec(noreturn) void fatal(char *foo,...); __declspec(noreturn) void fatal(char *foo,...) { va_list args; va_start(foo,args); printf(foo,args); va_end(args); exit(2); } ], [ exit(0); ], pike_cv_lc___declspec=yes, pike_cv_lc___declspec=no) ]) ]) AC_MSG_RESULT($pike_cv_lc___declspec) if test "$pike_cv_lc___declspec" = yes; then AC_DEFINE(HAVE_DECLSPEC) fi
7a5e471999-11-22Fredrik Hübinette (Hubbe) #############################################################################
68debd1997-09-12Henrik Grubbström (Grubba) AC_MSG_CHECKING(how to concatenate two symbols) AC_CACHE_VAL(pike_cv_cpp_symbol_concat, [ AC_TRY_COMPILE([
8976531997-12-22Fredrik Hübinette (Hubbe) int AABB=0;
68debd1997-09-12Henrik Grubbström (Grubba) #define CONCAT(X,Y) X##Y ], [ return CONCAT(AA,BB); ], pike_cv_cpp_symbol_concat=ANSI, [ AC_TRY_COMPILE([
8976531997-12-22Fredrik Hübinette (Hubbe) int AABB=0;
68debd1997-09-12Henrik Grubbström (Grubba) #define CONCAT(X,Y) X/**/Y ], [ return CONCAT(AA,BB); ], pike_cv_cpp_symbol_concat=KR, [ pike_cv_cpp_symbol_concat=Unknown ]) ]) ]) AC_MSG_RESULT($pike_cv_cpp_symbol_concat) case "$pike_cv_cpp_symbol_concat" in "ANSI") AC_DEFINE(HAVE_ANSI_CONCAT) ;; "KR") AC_DEFINE(HAVE_KR_CONCAT) ;; esac
c411dc1997-04-21Fredrik Hübinette (Hubbe) #############################################################################
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(how to set things nonblocking)
06983f1996-09-22Fredrik Hübinette (Hubbe) AC_CACHE_VAL(pike_cv_sys_nonblock,
5267b71995-08-09Fredrik Hübinette (Hubbe) [
59bc1b1997-01-22Bernhard Fastenrath  # Kludge needed for AmigaOS
092a0e1997-03-05Henrik Grubbström (Grubba)  if test "$pike_cv_sys_os" = "AmigaOS" ; then
59bc1b1997-01-22Bernhard Fastenrath  pike_cv_sys_nonblock=USE_FCNTL_O_NONBLOCK else
ed7aeb2000-06-16Henrik Grubbström (Grubba)  OCPPFLAGS="$CPPFLAGS"
a09e4f2001-01-21Henrik Grubbström (Grubba)  pike_cv_sys_nonblock=UNKNOWN for method in USE_FCNTL_FNDELAY USE_FCNTL_O_NDELAY USE_FCNTL_O_NONBLOCK \ USE_IOCTL_FIONBIO USE_IOCTLSOCKET_FIONBIO; do # Make sure we can run configure in a separate directory, # and set the method to try. CPPFLAGS="-I$srcdir $OCPPFLAGS -D$method" AC_TRY_RUN([
5267b71995-08-09Fredrik Hübinette (Hubbe) #define TESTING
d4f9e92000-05-19Martin Stjernholm #include "fd_control.c"
a09e4f2001-01-21Henrik Grubbström (Grubba)  ], [ pike_cv_sys_nonblock=$method break; ], [], [ AC_TRY_LINK([
bdfb861997-12-22Fredrik Hübinette (Hubbe) #define TESTING
d4f9e92000-05-19Martin Stjernholm #include "fd_control.c"
a09e4f2001-01-21Henrik Grubbström (Grubba) #define main dummy_main ], [], [ pike_cv_sys_nonblock=$method break; ]) ]) done
ed7aeb2000-06-16Henrik Grubbström (Grubba)  # Restore CPPFLAGS CPPFLAGS="$OCPPFLAGS"
59bc1b1997-01-22Bernhard Fastenrath  fi ])
5267b71995-08-09Fredrik Hübinette (Hubbe) 
a09e4f2001-01-21Henrik Grubbström (Grubba) if test "${pike_cv_sys_nonblock}" = "UNKNOWN"; then
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_MSG_RESULT(none found) else
06983f1996-09-22Fredrik Hübinette (Hubbe)  AC_MSG_RESULT($pike_cv_sys_nonblock) AC_DEFINE_UNQUOTED($pike_cv_sys_nonblock)
5267b71995-08-09Fredrik Hübinette (Hubbe) fi rm -f core
bcf9461998-01-27Fredrik Hübinette (Hubbe) ##########################################################################
29c1832001-02-02Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(how well OOB handling works) AC_CACHE_VAL(pike_cv_system_oob_working,[ OCPPFLAGS="$CPPFLAGS" CPPFLAGS="-I. -I../.. -I$srcdir -I$srcdir/../.." AC_TRY_RUN([ #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <errno.h> #include <fcntl.h> #include <signal.h> #include <sys/stat.h> #ifdef HAVE_NETINET_IN_H #include <netinet/in.h> #endif #ifdef HAVE_SYS_POLL_H #include <sys/poll.h> #endif #include <fcntl.h> #ifdef HAVE_SYS_FILE_H #include <sys/file.h> #endif #define SP_DEBUG(X) fprintf X #ifndef POLLRDNORM #define POLLRDNORM POLLIN #endif #ifndef POLLRDBAND #define POLLRDBAND POLLPRI #endif #ifndef POLLWRBAND #define POLLWRBAND POLLOUT #endif int set_nonblocking(int fd,int which) { int ret; do { #if defined(USE_IOCTL_FIONBIO) || defined(__NT__) ret=ioctl(fd, FIONBIO, &which); #else #ifdef USE_FCNTL_O_NDELAY ret=fcntl(fd, F_SETFL, which?O_NDELAY:0); #else #ifdef USE_FCNTL_O_NONBLOCK ret=fcntl(fd, F_SETFL, which?O_NONBLOCK:0); #else #ifdef USE_FCNTL_FNDELAY ret=fcntl(fd, F_SETFL, which?FNDELAY:0); #else #error Do not know how to set your filedescriptors nonblocking. #endif #endif #endif #endif } while(ret <0 && errno==EINTR); return ret; } static int socketpair_fd = -1; int my_socketpair(int family, int type, int protocol, int sv[2]) { static struct sockaddr_in my_addr; struct sockaddr_in addr,addr2; int retries=0; ACCEPT_SIZE_T len; memset((char *)&addr,0,sizeof(struct sockaddr_in)); if(socketpair_fd==-1) { if((socketpair_fd=socket(AF_INET, SOCK_STREAM, 0)) < 0) { SP_DEBUG((stderr, "my_socketpair:socket() failed, errno:%d\n", errno)); return -1; } memset((char *)&my_addr,0,sizeof(struct sockaddr_in)); my_addr.sin_family=AF_INET; my_addr.sin_addr.s_addr=htonl(INADDR_ANY); my_addr.sin_port=htons(0); if(bind(socketpair_fd, (struct sockaddr *)&my_addr, sizeof(addr)) < 0) { SP_DEBUG((stderr, "my_socketpair:bind() failed, errno:%d\n", errno)); close(socketpair_fd); socketpair_fd=-1; return -1; } len = sizeof(my_addr); if(getsockname(socketpair_fd,(struct sockaddr *)&my_addr,&len) < 0) { SP_DEBUG((stderr, "my_socketpair:getsockname() failed, errno:%d\n", errno)); close(socketpair_fd); socketpair_fd=-1; return -1; } if(listen(socketpair_fd, 5) < 0) { SP_DEBUG((stderr, "my_socketpair:listen() failed, errno:%d\n", errno)); close(socketpair_fd); socketpair_fd=-1; return -1; } set_nonblocking(socketpair_fd, 1); my_addr.sin_addr.s_addr=inet_addr("127.0.0.1"); } if((sv[1]=socket(AF_INET, SOCK_STREAM, 0)) <0) { SP_DEBUG((stderr, "my_socketpair:socket() failed, errno:%d (2)\n", errno)); return -1; } retry_connect: retries++; if(connect(sv[1], (struct sockaddr *)&my_addr, sizeof(addr)) < 0) { SP_DEBUG((stderr, "my_socketpair:connect() failed, errno:%d (%d)\n", errno, EWOULDBLOCK)); if(errno != EWOULDBLOCK) { int tmp2; for(tmp2=0;tmp2<20;tmp2++) { int tmp; ACCEPT_SIZE_T len2; len2=sizeof(addr); tmp=accept(socketpair_fd,(struct sockaddr *)&addr,&len2); if(tmp!=-1) { SP_DEBUG((stderr, "my_socketpair:accept() failed, errno:%d\n", errno)); close(tmp); } else break; } if(retries > 20) return -1; goto retry_connect; } } do { ACCEPT_SIZE_T len3; len3=sizeof(addr); retry_accept: sv[0]=accept(socketpair_fd,(struct sockaddr *)&addr,&len3); if(sv[0] < 0) { SP_DEBUG((stderr, "my_socketpair:accept() failed, errno:%d (2)\n", errno)); if(errno==EINTR) goto retry_accept; close(sv[1]); return -1; } set_nonblocking(sv[0],0); len=sizeof(addr); if(getpeername(sv[0], (struct sockaddr *)&addr,&len)) { SP_DEBUG((stderr, "my_socketpair:getpeername() failed, errno:%d\n", errno)); return -1; } len=sizeof(addr); if(getsockname(sv[1],(struct sockaddr *)&addr2,&len) < 0) { SP_DEBUG((stderr, "my_socketpair:getsockname() failed, errno:%d\n", errno)); return -1; } }while(len < (int)sizeof(addr) || addr2.sin_addr.s_addr != addr.sin_addr.s_addr || addr2.sin_port != addr.sin_port); SP_DEBUG((stderr, "my_socketpair: succeeded\n", errno)); return 0; } int socketpair_ultra(int family, int type, int protocol, int sv[2]) { int retries=0; while(1) { int ret=my_socketpair(family, type, protocol, sv); if(ret>=0) return ret; switch(errno) { case EAGAIN: break; case EADDRINUSE: if(retries++ > 10) return ret; break; default: return ret; } } } FILE *output; struct pollfd pollset[2]; int fds[2]; static int sent=0; int xcalls=0; int ping(int fd) { int r; sent++; if(sent > 10000) { fprintf(output,xcalls ? "SEMIWORKING" : "WORKING"); exit(0); } do { r=send(fds[fd],"x",1,MSG_OOB); }while(r < 0 && errno==EINTR); if(r!=1) { fprintf(output,"XBYTES\n"); exit(0); } pollset[fd].events &=~ POLLWRBAND; pollset[!fd].events |= POLLRDBAND; } int pong(int fd) { char foo[2]; int r; do { r=recv(fds[fd], &foo, 2, MSG_OOB); }while(r < 0 && errno==EINTR); if(r!=1) { fprintf(output,"XBYTES\n"); exit(0); } pollset[fd].events &=~ POLLRDBAND; pollset[fd].events |= POLLWRBAND; } void pang(int fd) { char foo[2]; int r; xcalls++; do { r=recv(fds[fd], &foo, 2, 0); }while(r < 0 && errno==EINTR); if(r<0 && errno==EAGAIN) return; fprintf(output,"INLINED\n"); exit(0); } int main(int argc, char **argv) { int e; output=fopen("conftest.out.2","w"); socketpair_ultra(AF_UNIX, SOCK_STREAM, 0, fds); #define INIT(X) do {\ set_nonblocking(fds[X],1); \ pollset[X].fd=fds[X]; \ pollset[X].events=POLLIN; \ }while(0); INIT(0); INIT(1); ping(0); while(1) { if(!poll(pollset, 2, 10000)) { fprintf(output,sent>1 ? "WORKS_A_LITTLE\n" : "TIMEOUT\n"); exit(0); } for(e=0;e<2;e++) { if(pollset[e].revents & POLLRDBAND) pong(e); if(pollset[e].revents & POLLWRBAND) ping(e); if(pollset[e].revents & POLLIN) pang(e); } } } ], pike_cv_system_oob_working="`cat conftest.out.2`", pike_cv_system_oob_working=UNKNOWN, pike_cv_system_oob_working=UNKNOWN) CPPFLAGS="$OCPPFLAGS" rm conftest.out.2 >/dev/null 2>/dev/null || : ]) AC_MSG_RESULT($pike_cv_system_oob_working) case "x$pike_cv_system_oob_working" in xWORKING) AC_DEFINE_UNQUOTED(PIKE_OOB_WORKS,3) ;; xSEMIWORKING) AC_DEFINE_UNQUOTED(PIKE_OOB_WORKS,2) ;; xINLINED) AC_DEFINE_UNQUOTED(PIKE_OOB_WORKS,1) ;; xWORKS_A_LITTLE) AC_DEFINE_UNQUOTED(PIKE_OOB_WORKS,1) ;; xXBYTES) AC_DEFINE_UNQUOTED(PIKE_OOB_WORKS,0) ;; xTIMEOUT) AC_DEFINE_UNQUOTED(PIKE_OOB_WORKS,0) ;; *) AC_DEFINE_UNQUOTED(PIKE_OOB_WORKS,-1) ;; #unknown esac
18099a2001-03-04Mirar (Pontus Hagland)  #######################################################################
de9dbe2001-07-01Martin Stjernholm AC_MSG_CHECKING(how to printf size_t) AC_CACHE_VAL(pike_cv_printf_size_t, [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; if (sizeof(size_t)>4) { sprintf(buf,"%llu,%d",((size_t)4711)<<32,17); return !!strcmp("20233590931456,17",buf); } else { sprintf(buf,"%llu,%d",(size_t)4711,17); return !!strcmp("4711,17",buf); } }], [pike_cv_printf_size_t="ll"], [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; if (sizeof(size_t)>4) { sprintf(buf,"%u,%d",((size_t)4711)<<32,17); return !!strcmp("20233590931456,17",buf); } else { sprintf(buf,"%u,%d",(size_t)4711,17); return !!strcmp("4711,17",buf); } }], [pike_cv_printf_size_t=""], [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; if (sizeof(size_t)>4) { sprintf(buf,"%Lu,%d",((size_t)4711)<<32,17); return !!strcmp("20233590931456,17",buf); } else { sprintf(buf,"%Lu,%d",(size_t)4711,17); return !!strcmp("4711,17",buf); } }], [pike_cv_printf_size_t="L"], [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; if (sizeof(size_t)>4) { sprintf(buf,"%lu,%d",((size_t)4711)<<32,17); return !!strcmp("20233590931456,17",buf); } else { sprintf(buf,"%lu,%d",(size_t)4711,17); return !!strcmp("4711,17",buf); } }], [pike_cv_printf_size_t="l"], [AC_MSG_CHECKING([(none found?)]) pike_cv_printf_size_t=""], [?])], [?])], [?])], [?]) ]) AC_MSG_RESULT([%${pike_cv_printf_size_t}u, %${pike_cv_printf_size_t}x]) AC_DEFINE_UNQUOTED(PRINTSIZET,"$pike_cv_printf_size_t") AC_MSG_CHECKING(how to printf ptrdiff_t) AC_CACHE_VAL(pike_cv_printf_ptrdiff_t, [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; if (sizeof(ptrdiff_t)>4) { sprintf(buf,"%lld,%d",((ptrdiff_t)4711)<<32,17); return !!strcmp("20233590931456,17",buf); } else { sprintf(buf,"%lld,%d",(ptrdiff_t)4711,17); return !!strcmp("4711,17",buf); } }], [pike_cv_printf_ptrdiff_t="ll"], [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; if (sizeof(ptrdiff_t)>4) { sprintf(buf,"%d,%d",((ptrdiff_t)4711)<<32,17); return !!strcmp("20233590931456,17",buf); } else { sprintf(buf,"%d,%d",(ptrdiff_t)4711,17); return !!strcmp("4711,17",buf); } }], [pike_cv_printf_ptrdiff_t=""], [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; if (sizeof(ptrdiff_t)>4) { sprintf(buf,"%Ld,%d",((ptrdiff_t)4711)<<32,17); return !!strcmp("20233590931456,17",buf); } else { sprintf(buf,"%Ld,%d",(ptrdiff_t)4711,17); return !!strcmp("4711,17",buf); } }], [pike_cv_printf_ptrdiff_t="L"], [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; if (sizeof(ptrdiff_t)>4) { sprintf(buf,"%ld,%d",((ptrdiff_t)4711)<<32,17); return !!strcmp("20233590931456,17",buf); } else { sprintf(buf,"%ld,%d",(ptrdiff_t)4711,17); return !!strcmp("4711,17",buf); } }], [pike_cv_printf_ptrdiff_t="l"], [AC_MSG_CHECKING([(none found?)]) pike_cv_printf_ptrdiff_t=""], [?])], [?])], [?])], [?]) ]) AC_MSG_RESULT([%${pike_cv_printf_ptrdiff_t}d, %${pike_cv_printf_ptrdiff_t}x]) AC_DEFINE_UNQUOTED(PRINTPTRDIFFT,"$pike_cv_printf_ptrdiff_t")
18099a2001-03-04Mirar (Pontus Hagland) AC_MSG_CHECKING(how to printf INT_TYPE) AC_CACHE_VAL(pike_cv_printf_int_type, [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; if (sizeof(INT_TYPE)>4) { sprintf(buf,"%lld,%d",((INT_TYPE)4711)<<32,17); return !!strcmp("20233590931456,17",buf); } else { sprintf(buf,"%lld,%d",(INT_TYPE)4711,17); return !!strcmp("4711,17",buf); } }], [pike_cv_printf_int_type="ll"], [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; if (sizeof(INT_TYPE)>4) { sprintf(buf,"%d,%d",((INT_TYPE)4711)<<32,17); return !!strcmp("20233590931456,17",buf); } else { sprintf(buf,"%d,%d",(INT_TYPE)4711,17); return !!strcmp("4711,17",buf); } }], [pike_cv_printf_int_type=""], [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; if (sizeof(INT_TYPE)>4) { sprintf(buf,"%Ld,%d",((INT_TYPE)4711)<<32,17); return !!strcmp("20233590931456,17",buf); } else { sprintf(buf,"%Ld,%d",(INT_TYPE)4711,17); return !!strcmp("4711,17",buf); } }], [pike_cv_printf_int_type="L"], [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; if (sizeof(INT_TYPE)>4) { sprintf(buf,"%ld,%d",((INT_TYPE)4711)<<32,17); return !!strcmp("20233590931456,17",buf); } else { sprintf(buf,"%ld,%d",(INT_TYPE)4711,17); return !!strcmp("4711,17",buf); } }], [pike_cv_printf_int_type="l"], [AC_MSG_CHECKING([(none found?)]) pike_cv_printf_int_type=""], [?])], [?])], [?])], [?]) ]) AC_MSG_RESULT([%${pike_cv_printf_int_type}d, %${pike_cv_printf_int_type}x]) AC_DEFINE_UNQUOTED(PRINTPIKEINT,"$pike_cv_printf_int_type") AC_MSG_CHECKING(how to printf FLOAT_TYPE) AC_CACHE_VAL(pike_cv_printf_float_type, [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; sprintf(buf,"%4.1f,%d",(FLOAT_TYPE)17.0,17); return !!strcmp("17.0,17",buf); }], [pike_cv_printf_float_type=""], [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; sprintf(buf,"%L4.1f,%d",(FLOAT_TYPE)17.0,17); return !!strcmp("17.0,17",buf); }], [pike_cv_printf_float_type="L"], [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; sprintf(buf,"%ll4.1f,%d",(FLOAT_TYPE)17.0,17); return !!strcmp("17.0,17",buf); }], [pike_cv_printf_float_type="ll"], [AC_TRY_RUN([#include <stdio.h> #include "global.h" int main() { char buf[32]; sprintf(buf,"%l4.1f,%d",(FLOAT_TYPE)17.0,17); return !!strcmp("17.0,17",buf); }], [pike_cv_printf_float_type="l"], [AC_MSG_CHECKING([(none found?)]) pike_cv_printf_float_type=""], [?])], [?])], [?])], [?]) ]) AC_MSG_RESULT([%${pike_cv_printf_float_type}g, %${pike_cv_printf_float_type}f]) AC_DEFINE_UNQUOTED(PRINTPIKEFLOAT,"$pike_cv_printf_float_type")
29c1832001-02-02Fredrik Hübinette (Hubbe) #######################################################################
7b39411997-02-06Fredrik Hübinette (Hubbe) 
2fbeae2001-07-01Martin Stjernholm AC_MSG_CHECKING(if union initialization works) AC_CACHE_VAL(pike_cv_have_union_init, [
4046ee2001-07-20Martin Stjernholm  AC_TRY_RUN([ struct foo {int a;}; struct bar {char b[2];};
2fbeae2001-07-01Martin Stjernholm  union anything {
21a6252001-07-20Martin Stjernholm  struct foo foo; struct bar bar;
2fbeae2001-07-01Martin Stjernholm  }; struct svalue { unsigned type; unsigned subtype; union anything u; };
4046ee2001-07-20Martin Stjernholm  struct svalue my_svalue = {0, 0, {{4711}}}; int main() { return !(my_svalue.u.foo.a == 4711); } ], pike_cv_have_union_init=yes, pike_cv_have_union_init=no, pike_cv_have_union_init=no)])
2fbeae2001-07-01Martin Stjernholm AC_MSG_RESULT($pike_cv_have_union_init) if test "$pike_cv_have_union_init" = yes; then AC_DEFINE(HAVE_UNION_INIT) fi #######################################################################
7b39411997-02-06Fredrik Hübinette (Hubbe) # Set info about shared libraries. AC_SUBST(SO) AC_SUBST(LDSHARED) AC_SUBST(CCSHARED) AC_SUBST(LINKFORSHARED) # SO is the extension of shared libraries
e1195f1997-03-23Fredrik Hübinette (Hubbe) # -- usually so, sl on HP-UX
7b39411997-02-06Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(SO) if test -z "$SO" then
092a0e1997-03-05Henrik Grubbström (Grubba)  case "$pike_cv_sys_os" in
7b39411997-02-06Fredrik Hübinette (Hubbe)  hp*|HP*) SO=sl;; *) SO=so;; esac fi AC_MSG_RESULT($SO) # LDSHARED is the ld *command* used to create shared library # -- "ld" on SunOS 4.x.x, "ld -G" on SunOS 5.x, "ld -shared" on IRIX 5 AC_MSG_CHECKING(LDSHARED)
9ab4461998-11-06Honza Petrous if test -z "$LDSHARED" ; then case "$pike_cv_sys_os" in AIX*) if test "$GCC" = yes ; then
05ca9b2000-12-18Henrik Grubbström (Grubba)  if test "`uname -r`" -ge 2 -a "`uname -v`" -eq 4 ; then
9ab4461998-11-06Honza Petrous  LDSHARED="ld -G -bexpall" else if test "`uname -v`" -gt 4 ; then
05ca9b2000-12-18Henrik Grubbström (Grubba)  # AIX 5L+ LDSHARED="ld -G"
e0a6aa1997-12-12Henrik Grubbström (Grubba)  else
9ab4461998-11-06Honza Petrous  # AIX 4.1 and earlier don't have/have unreliable # handling of dlopen et al. # # Even AIX 4.2.1 has buggy dlopen -- NEVER attempt # to dlopen a file that hasn't been linked with -G. pike_cv_sys_dynamic_loading=no LDSHARED="ld"
e0a6aa1997-12-12Henrik Grubbström (Grubba)  fi
9ab4461998-11-06Honza Petrous  fi else
05ca9b2000-12-18Henrik Grubbström (Grubba)  if test "`uname -r`" -ge 3 -a "`uname -v`" -eq 4 ; then
2a50542000-10-24Henrik Grubbström (Grubba)  LDSHARED="ld -G -bexpall" else if test "`uname -v`" -gt 4 ; then
05ca9b2000-12-18Henrik Grubbström (Grubba)  # AIX 5L+ LDSHARED="ld -G"
2a50542000-10-24Henrik Grubbström (Grubba)  else # AIX 4.1 and earlier don't have/have unreliable # handling of dlopen et al. # # Even AIX 4.2.1 has buggy dlopen -- NEVER attempt # to dlopen a file that hasn't been linked with -G. pike_cv_sys_dynamic_loading=no LDSHARED="ld" fi fi
9ab4461998-11-06Honza Petrous  fi ;;
ecf1552001-09-10Henrik Grubbström (Grubba)  Darwin*)
7535572001-09-17Henrik Grubbström (Grubba)  LDSHARED="ld -bundle -bind_at_load -undefined suppress -lbundle1.o"
ecf1552001-09-10Henrik Grubbström (Grubba)  ;;
9ab4461998-11-06Honza Petrous  IRIX*) if test "$GCC" = yes ; then # egcs defaults to building -n32 objects LDSHARED="ld -shared -n32" else LDSHARED="ld -shared" fi # -woff isn't understood by ld on Irix 5. if test "`uname -r`" -ge 6 ; then LDSHARED="$LDSHARED -woff 84,85,134" else :; fi ;; SunOS*) LDSHARED="ld";; Solaris) LDSHARED="/usr/ccs/bin/ld -G";; hp*|HP*) LDSHARED="ld -b";; OSF*) LDSHARED="ld -expect_unresolved '*' -shared -msym -O3";; DYNIX/ptx*) LDSHARED="ld -G";;
3724261999-08-25Henrik Grubbström (Grubba)  next*) LDSHARED="$CC $CFLAGS -nostdlib -r";;
9ab4461998-11-06Honza Petrous  Linux*) LDSHARED="$CC -shared";; GNU*) LDSHARED="ld -Bshareable";;
6da30c2000-02-19Fredrik Hübinette (Hubbe)  FreeBSD*) LDSHARED="$CC -Wl,-Bshareable";;
3724261999-08-25Henrik Grubbström (Grubba)  NetBSD*) LDSHARED="ld -Bshareable";;
9ab4461998-11-06Honza Petrous  OpenBSD*) LDSHARED="ld -Bshareable";;
1807bd2000-11-28Fredrik Hübinette (Hubbe)  BSD/OS*) case "`uname -r`" in
e9e9d82001-09-22Henrik Grubbström (Grubba)  [4-9].*) LDSHARED="$CC -shared";;
1807bd2000-11-28Fredrik Hübinette (Hubbe)  *) LDSHARED="shlicc -r";; esac ;;
e984b12001-02-20Boyd Lynn Gerber  SCO_SV*) LDSHARED="$CC -G -KPIC -Wl,-Bexport";;
3724261999-08-25Henrik Grubbström (Grubba)  UNIX_SV*) LDSHARED="ld -G";;
bcb5382001-08-23Boyd Lynn Gerber  UnixWare*|OpenUNIX*)
9ab4461998-11-06Honza Petrous  if test "$GCC" = yes ; then
d1afeb2001-02-27Boyd Lynn Gerber  LDSHARED="$CC -G -fPIC"
9ab4461998-11-06Honza Petrous  else
e984b12001-02-20Boyd Lynn Gerber  LDSHARED="$CC -G -KPIC -Wl,-Bexport"
9ab4461998-11-06Honza Petrous  fi ;;
9b15e02000-12-22Fredrik Hübinette (Hubbe)  Windows_NT*) LDSHARED="pntld" ;;
9ab4461998-11-06Honza Petrous  *) LDSHARED="ld";; esac
7b39411997-02-06Fredrik Hübinette (Hubbe) fi AC_MSG_RESULT($LDSHARED) # CCSHARED are the C *flags* used to create objects to go into a shared # library -- this is only needed for a few systems AC_MSG_CHECKING(CCSHARED)
371f751999-04-29Martin Stjernholm AC_CACHE_VAL(pike_cv_sys_ccshared,[ if test -z "$CCSHARED" ; then if test "$GCC" = yes ; then
08af092000-04-12Marcus Comstedt  case "$pike_cv_sys_os" in
371f751999-04-29Martin Stjernholm  BSD/OS*)
1807bd2000-11-28Fredrik Hübinette (Hubbe)  case "`uname -r`" in 4.*) CCSHARED="-fPIC";; *) CCSHARED="";; esac
371f751999-04-29Martin Stjernholm  ;;
ecf1552001-09-10Henrik Grubbström (Grubba)  Darwin*) CCSHARED="-fPIC" ;;
371f751999-04-29Martin Stjernholm  Solaris*) # The Image module runs out of symbol reference space unless we # use the large PIC model: # ld: fatal: too many symbols require `small' PIC references: # have 2205, maximum 2048 -- recompile some modules -K PIC. CCSHARED="-fPIC" ;; *)
34e2912000-08-29Fredrik Hübinette (Hubbe)  CCSHARED="-fPIC"
371f751999-04-29Martin Stjernholm  ;; esac else
08af092000-04-12Marcus Comstedt  case "$pike_cv_sys_os" in
ecf1552001-09-10Henrik Grubbström (Grubba)  Darwin*) CCSHARED="-fPIC" ;;
fcf0732000-03-28Fredrik Hübinette (Hubbe)  IRIX*) AC_SYS_COMPILER_FLAG(-share,cc_shared,CCSHARED) ;;
371f751999-04-29Martin Stjernholm  hp*|HP*) CCSHARED="+z"; ;; FreeBSD*) CCSHARED="-fpic";; SCO_SV*) CCSHARED="-KPIC -dy -Bdynamic";;
bcb5382001-08-23Boyd Lynn Gerber  UnixWare*|OpenUNIX*) CCSHARED="-KPIC -dy -Bdynamic";;
371f751999-04-29Martin Stjernholm  Solaris*) CCSHARED="-KPIC -Bdynamic";; Windows_NT*) CCSHARED="-shared" ;; esac fi
7b39411997-02-06Fredrik Hübinette (Hubbe)  fi
371f751999-04-29Martin Stjernholm  OLD_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $CCSHARED"
05ca9b2000-12-18Henrik Grubbström (Grubba)  AC_TRY_COMPILE([], [exit(0);],
371f751999-04-29Martin Stjernholm  pike_cv_sys_ccshared="$CCSHARED", pike_cv_sys_ccshared='') CFLAGS="$OLD_CFLAGS" ]) CCSHARED="$pike_cv_sys_ccshared"
7b39411997-02-06Fredrik Hübinette (Hubbe) AC_MSG_RESULT($CCSHARED)
334e3d1997-04-16Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(LINKFORSHARED) AC_CACHE_VAL(pike_cv_sys_linkforshared,[
7b39411997-02-06Fredrik Hübinette (Hubbe) # LINKFORSHARED are the flags passed to the $(CC) command that links
e1195f1997-03-23Fredrik Hübinette (Hubbe) # the pike executable -- this is only needed for a few systems
7b39411997-02-06Fredrik Hübinette (Hubbe) if test -z "$LINKFORSHARED" then
9649491998-02-27Fredrik Hübinette (Hubbe)  LINKFORSHARED=""
bb55f81997-03-16Fredrik Hübinette (Hubbe)  if test "$GCC" = yes ; then
08af092000-04-12Marcus Comstedt  case "$pike_cv_sys_os" in
05ca9b2000-12-18Henrik Grubbström (Grubba)  AIX*) if test "`uname -v`" -gt 4 ; then # This is probably wrong, but I don't have a man page for ld yet. LINKFORSHARED="" else LINKFORSHARED="-Wl,-bexpall -Wl,-brtl" fi ;;
ecf1552001-09-10Henrik Grubbström (Grubba)  Darwin*) LINKFORSHARED="-dynamic";;
9ab4461998-11-06Honza Petrous  hp*|HP*) LINKFORSHARED="-Wl,-E";; Linux*) LINKFORSHARED="-rdynamic";;
1807bd2000-11-28Fredrik Hübinette (Hubbe)  BSD/OS*) case "`uname -r`" in 4.*) LINKFORSHARED="-rdynamic";; esac ;; BSD/OS*) case "`uname -r`" in 4.*) LINKFORSHARED="-rdynamic";; esac ;;
9ab4461998-11-06Honza Petrous  GNU*) LINKFORSHARED="-rdynamic";;
cc32e02001-04-10Marcus Comstedt  NetBSD*) LINKFORSHARED="-Wl,-E";;
3724261999-08-25Henrik Grubbström (Grubba)  next*) LINKFORSHARED="-u libsys_s";;
9ab4461998-11-06Honza Petrous  SCO_SV*) LINKFORSHARED="-fpic -Wl,-Bexport";; # What about UNIX_SV?
bcb5382001-08-23Boyd Lynn Gerber  UnixWare*|OpenUNIX*) LINKFORSHARED="-fpic -Wl,-Bexport";;
9ab4461998-11-06Honza Petrous 
3724261999-08-25Henrik Grubbström (Grubba)  FreeBSD*)
9ab4461998-11-06Honza Petrous  AC_TRY_RUN([int main(){exit(
9db92d1998-11-06Fredrik Hübinette (Hubbe) #ifdef __ELF__ 0 #else 1 #endif );}
9ab4461998-11-06Honza Petrous  ],LINKFORSHARED=-rdynamic) ;;
bb55f81997-03-16Fredrik Hübinette (Hubbe)  esac else
08af092000-04-12Marcus Comstedt  case "$pike_cv_sys_os" in
05ca9b2000-12-18Henrik Grubbström (Grubba)  AIX*) if test "`uname -v`" -gt 4 ; then LINKFORSHARED="-Bexport" else LINKFORSHARED="-Wl,-bexpall -Wl,-brtl" fi ;;
ecf1552001-09-10Henrik Grubbström (Grubba)  Darwin*) LINKFORSHARED="-dynamic";;
9ab4461998-11-06Honza Petrous  hp*|HP*) LINKFORSHARED="-Wl,-E";; Linux*) LINKFORSHARED="-rdynamic";; GNU*) LINKFORSHARED="-rdynamic";;
3724261999-08-25Henrik Grubbström (Grubba)  next*) LINKFORSHARED="-u libsys_s";;
9ab4461998-11-06Honza Petrous  SCO_SV*) LINKFORSHARED="-Bdynamic -dy -Wl,-Bexport";; # What about UNIX_SV?
bcb5382001-08-23Boyd Lynn Gerber  UnixWare*|OpenUNIX*) LINKFORSHARED="-Bdynamic -dy -Wl,-Bexport";;
7b39411997-02-06Fredrik Hübinette (Hubbe)  esac
bb55f81997-03-16Fredrik Hübinette (Hubbe)  fi
7b39411997-02-06Fredrik Hübinette (Hubbe) fi
334e3d1997-04-16Fredrik Hübinette (Hubbe)  OLD_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $LINKFORSHARED"
b298e01997-04-16Fredrik Hübinette (Hubbe)  AC_TRY_RUN([int main() { exit(0); }],
75920f1997-12-28Fredrik Hübinette (Hubbe)  pike_cv_sys_linkforshared="$LINKFORSHARED", pike_cv_sys_linkforshared='', pike_cv_sys_linkforshared='')
334e3d1997-04-16Fredrik Hübinette (Hubbe)  CFLAGS="$OLD_CFLAGS" ]) LINKFORSHARED="$pike_cv_sys_linkforshared"
7b39411997-02-06Fredrik Hübinette (Hubbe) AC_MSG_RESULT($LINKFORSHARED) #############################################################################
e1195f1997-03-23Fredrik Hübinette (Hubbe) cat >conftest.c <<EOF
a991451997-07-08Fredrik Hübinette (Hubbe) #include <stdio.h>
5591962000-12-05Marcus Comstedt #include <stdlib.h>
a991451997-07-08Fredrik Hübinette (Hubbe) void testfunc(void) { fprintf(stderr,"Calling testfunc2\n"); testfunc2(); fprintf(stderr,"testfunc2 returned!\n"); exit(1); }
e1195f1997-03-23Fredrik Hübinette (Hubbe) EOF AC_MSG_CHECKING(if dynamic loading works) AC_CACHE_VAL(pike_cv_sys_dynamic_loading, [
334e3d1997-04-16Fredrik Hübinette (Hubbe)  echo $CC -c $CFLAGS $CCSHARED conftest.c -o conftest.o 1>&5 $CC -c $CFLAGS $CCSHARED conftest.c -o conftest.o 1>&5 2>&5 echo $BINDIR/smartlink $LDSHARED $LDFLAGS conftest.o -o conftest.$SO 1>&5 $BINDIR/smartlink $LDSHARED $LDFLAGS conftest.o -o conftest.$SO 1>&5 2>&5 if test -f conftest.$SO ; then mv conftest.$SO myconftest.so OLD_CFLAGS="$CFLAGS"
1938512001-01-31Fredrik Hübinette (Hubbe)  OLD_CPPFLAGS="$CPPFLAGS" CPPFLAGS="-I$srcdir $OLD_CPPFLAGS"
334e3d1997-04-16Fredrik Hübinette (Hubbe)  CFLAGS="$CFLAGS $LINKFORSHARED"
0809711998-02-27Marcus Comstedt  OLD_CC="$CC" case "$LD" in
633b031998-07-16Fredrik Hübinette (Hubbe)  *shlicc) CC="$BINDIR/smartlink shlicc" ;;
0809711998-02-27Marcus Comstedt  esac
e1195f1997-03-23Fredrik Hübinette (Hubbe)  AC_TRY_RUN([ #define TESTING
d4f9e92000-05-19Martin Stjernholm #include "dynamic_load.c"
b298e01997-04-16Fredrik Hübinette (Hubbe) void testfunc2(void) { exit(0); }
75920f1997-12-28Fredrik Hübinette (Hubbe) ], pike_cv_sys_dynamic_loading=yes, pike_cv_sys_dynamic_loading=no, pike_cv_sys_dynamic_loading=no)
334e3d1997-04-16Fredrik Hübinette (Hubbe)  CFLAGS="$OLD_CFLAGS"
1938512001-01-31Fredrik Hübinette (Hubbe)  CPPFLAGS="${OLD_CPPFLAGS}"
0809711998-02-27Marcus Comstedt  CC="$OLD_CC"
633b031998-07-16Fredrik Hübinette (Hubbe)  else
75920f1997-12-28Fredrik Hübinette (Hubbe)  pike_cv_sys_dynamic_loading=no
334e3d1997-04-16Fredrik Hübinette (Hubbe)  fi rm -f myconftest.so >/dev/null 2>/dev/null
e1195f1997-03-23Fredrik Hübinette (Hubbe) ]) AC_MSG_RESULT($pike_cv_sys_dynamic_loading)
1f21332000-07-28Fredrik Hübinette (Hubbe) 
5f951c2001-01-30Fredrik Hübinette (Hubbe) if test "x$with_dynamic_modules" != "xno" ; then
1f21332000-07-28Fredrik Hübinette (Hubbe)  if test x$pike_cv_sys_dynamic_loading = xno ; then with_dynamic_modules=no else with_dynamic_modules=yes if test x$pike_cv_func_dlopen$ac_cv_func_dld_link$ac_cv_func_shl_load = xnonono; then
1807bd2000-11-28Fredrik Hübinette (Hubbe) # Dynamic loading is now WORKING (maybe)
b806a52001-09-14Marcus Comstedt  if test x"$pike_cv_sys_os" = xWindows_NT ; then LINKFORSHARED="${LINKFORSHARED} -rdynamic" else
1f21332000-07-28Fredrik Hübinette (Hubbe)  with_dynamic_modules=no
e1a8e52001-09-12Marcus Comstedt  fi
1f21332000-07-28Fredrik Hübinette (Hubbe)  fi fi
e1195f1997-03-23Fredrik Hübinette (Hubbe) fi
f038d31999-10-03Fredrik Hübinette (Hubbe) #######################################################################
284e061998-11-09Fredrik Hübinette (Hubbe) # Since configure doesn't always know if we will be linking with ld or cc, # We use this little code snippet to add flags to ld that would otherwise # be given automatically by $(CC) $(CFLAGS) # /Hubbe #
7e4d4e2000-12-13Fredrik Hübinette (Hubbe) if test "$ldflags_is_set" = no ; then case "x$LD $LDFLAGS" in *\$\(CFLAGS\)*)
284e061998-11-09Fredrik Hübinette (Hubbe)  # Options in CFLAGS, no stuff needs to be added ;;
7e4d4e2000-12-13Fredrik Hübinette (Hubbe)  x$CC*|x\$\(CC\)*) LD="$LD \$(CFLAGS)" ;; *) LD="$LD ${LD_FALLBACK_FLAGS-}" ;; esac case "x$LDSHARED $LDFLAGS" in *\$\(CFLAGS\)*)
b1466e2000-03-26Fredrik Hübinette (Hubbe)  # Options in CFLAGS, no stuff needs to be added ;;
7e4d4e2000-12-13Fredrik Hübinette (Hubbe)  x$CC*|x\$\(CC\)*) LDSHARED="$LDSHARED \$(CFLAGS)" ;;
284e061998-11-09Fredrik Hübinette (Hubbe)  *)
7e4d4e2000-12-13Fredrik Hübinette (Hubbe)  LDSHARED="$LDSHARED ${LD_FALLBACK_FLAGS-}"
284e061998-11-09Fredrik Hübinette (Hubbe)  ;; esac
7e4d4e2000-12-13Fredrik Hübinette (Hubbe) fi
284e061998-11-09Fredrik Hübinette (Hubbe) 
f038d31999-10-03Fredrik Hübinette (Hubbe) ####################################################################### # Since all $OPTIMIZE flags have to be automatically included in $CFLAGS # (because otherwise the tests will not be accurate) we have to remove all # OPTIMIZE flags from the regular CFLAGS... NEW_CFLAGS= for opt in ${CFLAGS-} do case " $OPTIMIZE " in *\ $opt\ *) ;; *) case "$opt" in -O2|-pipe) OPTIMIZE="${OPTIMIZE-} $opt" ;; *) NEW_CFLAGS="$NEW_CFLAGS $opt" ;; esac ;; esac done CFLAGS="$NEW_CFLAGS" ##########################################################################
1192761999-05-26Fredrik Hübinette (Hubbe) case "x$pike_cv_sys_os" in
7535572001-09-17Henrik Grubbström (Grubba)  xSolaris | xAIX | xDarwin)
22c21e1999-06-19Fredrik Hübinette (Hubbe)  if grep _REENTRANT confdefs.h >/dev/null 2>&1; then AC_DEFINE(USE_WAIT_THREAD) else AC_DEFINE(USE_SIGCHILD) fi
1192761999-05-26Fredrik Hübinette (Hubbe)  ;;
d0be141999-05-27Fredrik Hübinette (Hubbe)  xWindows_NT)
1192761999-05-26Fredrik Hübinette (Hubbe)  ;; *) AC_DEFINE(USE_SIGCHILD) ;; esac
284e061998-11-09Fredrik Hübinette (Hubbe) 
43a6c81999-11-24Fredrik Hübinette (Hubbe) ############################################################################# if test "x$with_copt" = xno ; then OPTIMIZE=
2f92542001-01-18Fredrik Hübinette (Hubbe)  dnl The unused code below can be used to implement a good/bad-list dnl to determine when to zap the -O2 for buggy gccs... dnl dnl else dnl dnl if test "x$GCC" = xyes; then dnl BAD=unknown dnl case `gcc -v 2>&1` in dnl */i?86-*/2.95.3/*19991030*) BAD=no ;; dnl esac dnl fi
43a6c81999-11-24Fredrik Hübinette (Hubbe) fi
1f21332000-07-28Fredrik Hübinette (Hubbe) 
1acce82001-01-27Martin Stjernholm ############################################################################# if test "x$enable_binary" != "xno"; then
1f21332000-07-28Fredrik Hübinette (Hubbe) ############################################################################# if test x$with_dynamic_modules = xyes ; then dmmsrc="modules/dynamic_module_makefile.in" CCSHARED="${CCSHARED} -DDYNAMIC_MODULE" else dmmsrc="modules/static_module_makefile.in" fi
6052f61998-06-06Henrik Grubbström (Grubba) ############################################################################# echo echo "Compiler summary:" echo echo "C Compiler: $CC" echo "Linker: $LD" echo "Shared linker: $LDSHARED" echo echo "Shared object extension: $SO"
1f21332000-07-28Fredrik Hübinette (Hubbe) echo "Dynamic modules: $with_dynamic_modules"
6052f61998-06-06Henrik Grubbström (Grubba) echo echo "CPPFLAGS: $CPPFLAGS" echo "CFLAGS: $CFLAGS" echo "CCSHARED: $CCSHARED" echo "LINKFORSHARED: $LINKFORSHARED"
e48c381998-07-29Marcus Comstedt echo "LIBGCC: $LIBGCC"
6052f61998-06-06Henrik Grubbström (Grubba) echo "WARN: $WARN"
91006b2000-03-21Fredrik Hübinette (Hubbe) echo "PROFIL: $PROFIL"
6052f61998-06-06Henrik Grubbström (Grubba) echo "OPTIMIZE: $OPTIMIZE" echo "LDFLAGS: $LDFLAGS"
c371d41998-06-07Simon Coggins echo "LIBS: $LIBS"
ab0bfa1998-07-06Martin Stjernholm echo "prefix: $prefix"
6052f61998-06-06Henrik Grubbström (Grubba) echo
e1195f1997-03-23Fredrik Hübinette (Hubbe) #############################################################################
5267b71995-08-09Fredrik Hübinette (Hubbe) 
f2328f1997-09-17Henrik Grubbström (Grubba) export LDFLAGS CFLAGS CPPFLAGS LIBS
2e99df1999-06-24Fredrik Hübinette (Hubbe) export prefix exec_prefix OTHERFLAGS export TMP_BINDIR DEFINES INSTALL
b5d9291997-01-30Henrik Grubbström (Grubba) 
c37c7e1999-03-26Fredrik Hübinette (Hubbe) default_master=$prefix/pike/%d.%d.%d/lib/master.pike
af56471996-12-03Fredrik Hübinette (Hubbe) AC_DEFINE_UNQUOTED(DEFAULT_MASTER,"$default_master")
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_SUBST(WARN)
91006b2000-03-21Fredrik Hübinette (Hubbe) AC_SUBST(PROFIL)
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_SUBST(OPTIMIZE) AC_SUBST(EXTRA_OBJS) AC_SUBST(RANLIB)
51bd9e1996-10-09Fredrik Hübinette (Hubbe) AC_SUBST(DEBUGDEF)
1f21332000-07-28Fredrik Hübinette (Hubbe) AC_SUBST(EXTRA_MODULE_REQUIREMENTS)
4174542001-01-26Martin Stjernholm 
8334e31999-01-29Fredrik Hübinette (Hubbe) pike_cv_prog_CC="${CC}"
5267b71995-08-09Fredrik Hübinette (Hubbe) 
4174542001-01-26Martin Stjernholm ############################################################################# else #if test "x$enable_binary" != "xno" dmmsrc="modules/static_module_makefile.in" fi #############################################################################
1acce82001-01-27Martin Stjernholm AC_CONFIG_SUBDIRS(modules post_modules)
4174542001-01-26Martin Stjernholm AC_SUBST_FILE(dependencies) dependencies=$srcdir/dependencies AC_SUBST(YACC) AC_SUBST(INSTALL) AC_SUBST(ac_configure_args)
6fa2281997-11-04Henrik Grubbström (Grubba) AC_SUBST(dmmsrc)
3a5b1d2000-05-24Fredrik Hübinette (Hubbe) AC_OUTPUT(Makefile modules/static_module_makefile post_modules/static_module_makefile:modules/static_module_makefile.in modules/dynamic_module_makefile:$dmmsrc post_modules/dynamic_module_makefile:$dmmsrc precompile.sh,[echo foo >stamp-h ; chmod +x precompile.sh])
5267b71995-08-09Fredrik Hübinette (Hubbe) 
f655492001-02-13Mirar (Pontus Hagland) # NOTE: M4 uses [] as quotes.
896b182001-02-14Mirar (Pontus Hagland) PIKE_VERSION="`sed -n -e 's/^.*PIKE_MAJOR_VERSION[[ \t]]*\([[^ \t]]*\)/\1/p' <$srcdir/version.h`.`sed -n -e 's/^.*PIKE_MINOR_VERSION[[ \t]]*\([[^ \t]]*\)/\1/p' <$srcdir/version.h`.`sed -n -e 's/^.*PIKE_BUILD_VERSION[[ \t]]*\([[^ \t]]*\)/\1/p' <$srcdir/version.h`" PIKE_VERSION_LONG="Pike v`sed -n -e 's/^.*PIKE_MAJOR_VERSION[[ \t]]*\([[^ \t]]*\)/\1/p' <$srcdir/version.h`.`sed -n -e 's/^.*PIKE_MINOR_VERSION[[ \t]]*\([[^ \t]]*\)/\1/p' <$srcdir/version.h` release `sed -n -e 's/^.*PIKE_BUILD_VERSION[[ \t]]*\([[^ \t]]*\)/\1/p' <$srcdir/version.h`"
f655492001-02-13Mirar (Pontus Hagland) 
6844352001-02-14Mirar (Pontus Hagland)  cat >conftest.c <<EOF #include "global.h" -- FLOAT_TYPE INT_TYPE EOF
48e8c52001-02-14Mirar (Pontus Hagland) $CPP -I. -I$srcdir conftest.c > conftest.cpp
6844352001-02-14Mirar (Pontus Hagland) sed <conftest.cpp >conftypes.txt '1,/^--$/d'
e45ef22001-02-14Mirar (Pontus Hagland) if test "x$with_debug" = x; then with_debug=no fi if test "x$with_rtldebug" = x; then with_rtldebug=no fi if test "x$with_dmalloc" = x; then with_dmalloc=no fi
ec29312001-03-19Mirar (Pontus Hagland) with_mmx=$pike_cv_sys_has_working_mmx if test "x$with_mmx" = x; then with_mmx=no fi
0361cf2001-02-16Henrik Grubbström (Grubba)  rm config.info 2>/dev/null cat >>config.info <<EOF ========================================================= $PIKE_VERSION_LONG configuration summary
7d30462001-02-16Henrik Grubbström (Grubba) install information:
0361cf2001-02-16Henrik Grubbström (Grubba) prefix........ $prefix pike binary... $prefix/bin/pike
f5a2272001-02-20Mirar (Pontus Hagland) pike library.. $prefix/pike/${PIKE_VERSION}/lib
0361cf2001-02-16Henrik Grubbström (Grubba) 
7d8a1b2001-02-18Mirar (Pontus Hagland) system information: system.... $UNAME`echo $pike_cv_libgcc_filename | sed -n -e 's+^.*gcc-lib/\([[^/]]*\)/.*$+ (\1)+p'`
0361cf2001-02-16Henrik Grubbström (Grubba) EOF
7d8a1b2001-02-18Mirar (Pontus Hagland) uname -a >/dev/null 2>/dev/null && echo "uname..... `uname -a`" >>config.info hostname >/dev/null 2>/dev/null && echo "hostname.. `hostname`" >>config.info whoami >/dev/null 2>/dev/null && echo "user...... `whoami`" >>config.info # too many dots makes too long lines, keep them as short as possible # inside each section
0361cf2001-02-16Henrik Grubbström (Grubba)  cat >>config.info <<EOF
7d8a1b2001-02-18Mirar (Pontus Hagland)  build information: source path..... $srcdir build path...... $BUILDDIR cpp............. $CPP cc.............. $CC ld.............. $LD cc shared....... $CCSHARED ld shared....... $LINKFORSHARED pike............ $PIKE install......... $INSTALL shared object... .$SO libs............ $LIBS optimize........ $OPTIMIZE cross-compiled.. $cross_compiling
0361cf2001-02-16Henrik Grubbström (Grubba)  features:
7d8a1b2001-02-18Mirar (Pontus Hagland) PAD_FEATURE([dynamic loading])$pike_cv_sys_dynamic_loading PAD_FEATURE([threads])$using_threads PAD_FEATURE([debug])$with_debug PAD_FEATURE([dmalloc])$with_dmalloc PAD_FEATURE([rtldebug])$with_rtldebug
ec29312001-03-19Mirar (Pontus Hagland) PAD_FEATURE([mmx])$with_mmx$mmx_reason
4839dd2001-09-02Marcus Comstedt PAD_FEATURE([module reloc])${with_relocatable_dumped_modules:-no}
0361cf2001-02-16Henrik Grubbström (Grubba) EOF
f655492001-02-13Mirar (Pontus Hagland) 
bc74ca2001-02-15Mirar (Pontus Hagland) touch confdefs.h 2>/dev/null
6844352001-02-14Mirar (Pontus Hagland) AC_TRY_RUN([ #include "global.h" #include "svalue.h" int main() {
0361cf2001-02-16Henrik Grubbström (Grubba)  FILE *fp, *out; char float_type[80] = "?"; char int_type[80] = "?";
6844352001-02-14Mirar (Pontus Hagland)  char *s; struct svalue sval;
0361cf2001-02-16Henrik Grubbström (Grubba)  out=fopen("config.info", "a");
37ad402001-02-15Mirar (Pontus Hagland)  if (!out) return 1;
0361cf2001-02-16Henrik Grubbström (Grubba)  fp=fopen("conftypes.txt", "r");
7d8a1b2001-02-18Mirar (Pontus Hagland)  if (fp)
48e8c52001-02-14Mirar (Pontus Hagland)  {
0361cf2001-02-16Henrik Grubbström (Grubba)  fgets(float_type, 79, fp); fgets(int_type, 79, fp);
48e8c52001-02-14Mirar (Pontus Hagland)  s=float_type; while (*s && *s!='\n' && *s!='\r') s++; *s=0; s=int_type; while (*s && *s!='\n' && *s!='\r') s++; *s=0;
7d8a1b2001-02-18Mirar (Pontus Hagland)  fprintf(out,"]PAD_FEATURE([float type])[%s (%d bytes)\n", float_type, sizeof(FLOAT_TYPE)); fprintf(out,"]PAD_FEATURE([int type])[%s (%d bytes)\n", int_type, sizeof(INT_TYPE));
6844352001-02-14Mirar (Pontus Hagland) 
48e8c52001-02-14Mirar (Pontus Hagland)  fclose(fp); }
7d8a1b2001-02-18Mirar (Pontus Hagland)  fprintf(out,"]PAD_FEATURE([pointer size])[%d bytes\n", sizeof(void*)); fprintf(out,"]PAD_FEATURE([svalue size])[%d bytes (%d+%d+%d)\n", sizeof(sval), sizeof(sval.type), sizeof(sval.subtype), sizeof(sval.u));
6844352001-02-14Mirar (Pontus Hagland) 
37ad402001-02-15Mirar (Pontus Hagland)  fclose(out);
6844352001-02-14Mirar (Pontus Hagland)  return 0; }
0361cf2001-02-16Henrik Grubbström (Grubba) ],[],[],[:])
6844352001-02-14Mirar (Pontus Hagland) rm conftypes.txt 2>/dev/null
e45ef22001-02-14Mirar (Pontus Hagland) echo >>config.info
f655492001-02-13Mirar (Pontus Hagland) ls -1 pike_*.feature 2>/dev/null | xargs cat | sort >>config.info
8c885e2001-02-13Mirar (Pontus Hagland) ls -1 post_modules/*/pike_*.feature modules/*/pike_*.feature 2>/dev/null | xargs cat | sort >>config.info
f655492001-02-13Mirar (Pontus Hagland)  echo "=========================================================" >>config.info cat config.info
5267b71995-08-09Fredrik Hübinette (Hubbe)