5267b71995-08-09Fredrik Hübinette (Hubbe) AC_INIT(interpret.c) AC_PROG_CC
26e7e71996-04-23Fredrik Hübinette (Hubbe) AC_C_CROSS
5267b71995-08-09Fredrik Hübinette (Hubbe) 
5c8e891995-10-29Fredrik Hübinette (Hubbe) # We need some special hacks when running slowaris AC_PATH_PROG(uname_prog,uname,no) AC_MSG_CHECKING(operating system) AC_CACHE_VAL(lpc_cv_sys_os, [ if test "$uname_prog" != "no"; then lpc_cv_sys_os="`uname`" if test "$lpc_cv_sys_os" = "SunOS"; then case "`uname -r`" in 5.*) lpc_cv_sys_os="Solaris"; esac fi else lpc_cv_sys_os="Not Solaris" fi ]) AC_MSG_RESULT($lpc_cv_sys_os) dnl dnl This enables a mutex lock around accept() unfortunately dnl accept bangs out every 20000th time or so when linked dnl with libthreads. Solaris... dnl dnl if test "$lpc_cv_sys_os" = "Solaris"; then dnl AC_DEFINE(SOLARIS) dnl LIBS="$LIBS -lthread" dnl fi dnl
5267b71995-08-09Fredrik Hübinette (Hubbe) OLD_CFLAGS="$CFLAGS" OPTIMIZE=""; AC_MSG_CHECKING(-O) AC_CACHE_VAL(lpc_cv_option_opt, [ CFLAGS="$OLD_CFLAGS -O" AC_TRY_LINK([],[ exit(0); ],lpc_cv_option_opt=yes,lpc_cv_option_opt=no) ]) if test "$lpc_cv_option_opt" = "yes" ; then CFLAGS="$OLD_CFLAGS -O" OPTIMIZE="$OPTIMIZE -O" AC_MSG_RESULT(-O found) else AC_MSG_RESULT(-O not found) fi
5c8e891995-10-29Fredrik Hübinette (Hubbe) CFLAGS="$OLD_CFLAGS" if test "$GCC" = "yes"; then
7cfda71996-05-13Fredrik Hübinette (Hubbe)  WARN="-g -W -Wformat"
d10ed51995-11-15Fredrik Hübinette (Hubbe)  AC_MSG_CHECKING(-pipe) AC_CACHE_VAL(lpc_cv_option_pipe, [ CFLAGS="$OLD_CFLAGS -pipe" AC_TRY_LINK([],[ exit(0); ],lpc_cv_option_pipe=yes,lpc_cv_option_pipe=no) ]) if test "$lpc_cv_option_pipe" = "yes" ; then CFLAGS="$OLD_CFLAGS -pipe" OPTIMIZE="$OPTIMIZE -pipe" AC_MSG_RESULT(-pipe found) else AC_MSG_RESULT(-pipe not found) CFLAGS="$OLD_CFLAGS" fi
5c8e891995-10-29Fredrik Hübinette (Hubbe) else WARN="" # # Special hack for HP-UX stupid cc # if test "$lpc_cv_sys_os" = "HP-UX"; then OLD_CC="${CC-cc}" CC="$CC -Aa -D_HPUX_SOURCE +Olibcalls" AC_TRY_LINK([int foo(int bar);],[ exit(0); ],[],[CC="$OLD_CC"]) fi fi AC_MSG_CHECKING(ansi prototype capability) AC_CACHE_VAL(lpc_cv_sys_ansi_prototypes,
5267b71995-08-09Fredrik Hübinette (Hubbe) [
5c8e891995-10-29Fredrik Hübinette (Hubbe)  AC_TRY_LINK([int foo(int bar);],[ exit(0); ], [lpc_cv_sys_ansi_prototypes=yes], [lpc_cv_sys_ansi_prototypes=no])
5267b71995-08-09Fredrik Hübinette (Hubbe) ])
5c8e891995-10-29Fredrik Hübinette (Hubbe) if test "$lpc_cv_sys_ansi_prototypes" = "yes"; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no, giving up...) exit 1 fi
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_CONFIG_HEADER(machine.h) AC_PROG_INSTALL AC_PROG_CPP AC_PROG_RANLIB AC_SET_MAKE
8f42881996-03-01Fredrik Hübinette (Hubbe) 
26e7e71996-04-23Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(for yacc clone that handles %pure_parser) AC_CACHE_VAL(lpc_cv_prog_working_yacc, [ for YACC in byacc "bison -y" yacc "echo Get bison if you want to make export" ; do 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 AC_TRY_RUN([ #include "y.tab.c" ],pure_parser_works=yes,pure_parser_works=no) if test "$pure_parser_works" = "yes"; then break fi fi
8f42881996-03-01Fredrik Hübinette (Hubbe)  fi
26e7e71996-04-23Fredrik Hübinette (Hubbe) done lpc_cv_prog_working_yacc="$YACC" ]) YACC="$lpc_cv_prog_working_yacc" AC_MSG_RESULT($YACC)
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_MSG_CHECKING(first yacc define) AC_CACHE_VAL(lpc_cv_yacc_first, [ cat >conftest.y <<\EOF %token GURKA %% all: GURKA %% EOF lpc_cv_yacc_first=257;
26e7e71996-04-23Fredrik Hübinette (Hubbe) if $YACC -d conftest.y 1>&5 2>&5; then
5267b71995-08-09Fredrik Hübinette (Hubbe)  if test -f y.tab.h; then lpc_cv_yacc_first=`egrep GURKA y.tab.h | sed 's/^#[^0-9]*\([0-9]*\)[^0-9]*$/\1/'` echo $lpc_cv_yacc_first >conftest.out if egrep '^(0|1|2|3|4|5|6|7|8|9)+$' conftest.out >/dev/null 2>&1; then echo >/dev/null else lpc_cv_yacc_first=257 fi fi fi ]) AC_MSG_RESULT($lpc_cv_yacc_first) AC_DEFINE_UNQUOTED(F_OFFSET,$lpc_cv_yacc_first) rm -rf conftest.y y.tab.c y.tab.h conftest.out
6930181996-02-25Fredrik Hübinette (Hubbe) AC_HEADER_TIME AC_HEADER_STDC AC_CHECK_HEADERS(sys/rusage.h time.h sys/time.h unistd.h stdlib.h memory.h \ values.h string.h fcntl.h sys/filio.h sys/sockio.h crypt.h locale.h \ sys/resource.h sys/select.h netdb.h)
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_SIZEOF_TYPE(char *) AC_SIZEOF_TYPE(long) AC_SIZEOF_TYPE(int) AC_SIZEOF_TYPE(short) AC_SIZEOF_TYPE(float) AC_SIZEOF_TYPE(double)
6930181996-02-25Fredrik Hübinette (Hubbe) AC_TYPE_SIZE_T AC_TYPE_PID_T AC_TYPE_UID_T AC_TYPE_SIGNAL
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_CHECK_TYPE(time_t,INT32)
5c8e891995-10-29Fredrik Hübinette (Hubbe) AC_CHECK_LIB(PW, alloca)
7cfda71996-05-13Fredrik Hübinette (Hubbe) AC_CHECK_LIB(crypt, crypt)
5c8e891995-10-29Fredrik Hübinette (Hubbe) AC_CHECK_LIB(m, floor)
d10ed51995-11-15Fredrik Hübinette (Hubbe) if test "${ac_cv_lib_m}" = "no" -a "${lpc_cv_sys_os}" = "Linux"; then AC_MSG_WARN(I will compensate for this by adding -lc -lm) LIBS="${LIBS} -lc -lm" fi
5c8e891995-10-29Fredrik Hübinette (Hubbe) 
549f8b1996-05-02Fredrik Hübinette (Hubbe) AC_CHECK_LIB(crypt, crypt)
5c8e891995-10-29Fredrik Hübinette (Hubbe) 
5267b71995-08-09Fredrik Hübinette (Hubbe) OLD_LIBOBJS="${LIBOBJS}" AC_FUNC_MEMCMP if test "${OLD_LIBOBJS}" = "${LIBOBJS}" ; then AC_DEFINE(HAVE_MEMCMP) fi LIBOBJS="${OLD_LIBOBJS}"
6930181996-02-25Fredrik Hübinette (Hubbe) AC_FUNC_STRCOLL AC_CHECK_FUNCS(
cb22561995-10-11Fredrik Hübinette (Hubbe)  _crypt \ bcopy \ bzero \ clock \ crypt \ fchmod \ getenv \ getrlimit \ getrusage \ index \ memchr \ memcpy \ memset \ rindex \ setlocale \ setrlimit \
93b8081995-11-02Fredrik Hübinette (Hubbe)  sigaction \ sigvec \
cb22561995-10-11Fredrik Hübinette (Hubbe)  strcasecmp \ strchr \ strcspn \ strrchr \ strtod \ strtok \ strtol \ times \ vfprintf \ vsprintf \
6930181996-02-25Fredrik Hübinette (Hubbe)  wait3 \
65887d1995-11-15Fredrik Hübinette (Hubbe)  wait4 \ waitpid \
cb22561995-10-11Fredrik Hübinette (Hubbe) )
5267b71995-08-09Fredrik Hübinette (Hubbe)  define(MY_CHECK_HEADERS, [ AC_MSG_CHECKING(for $1 declaration) AC_CACHE_VAL(lpc_cv_decl_$1, [ lpc_cv_decl_$1=nonexistant for a in $2 do
6930181996-02-25Fredrik Hübinette (Hubbe)  AC_EGREP_HEADER($1,$a,lpc_cv_decl_$1=existant; break)
5267b71995-08-09Fredrik Hübinette (Hubbe)  done ]) AC_MSG_RESULT($lpc_cv_decl_$1) if test "$lpc_cv_decl_$1" = nonexistant; then 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) MY_CHECK_HEADERS(getpeername,sys/socket.h sys/socketvar.h sys/socketio.h) MY_CHECK_HEADERS(popen,stdio.h unistd.h) MY_CHECK_HEADERS(getenv,unistd.h stdlib.h) MY_CHECK_HEADERS(gethostname,unistd.h) AC_MSG_CHECKING(return type of free) AC_CACHE_VAL(lpc_cv_sys_free_return, [AC_TRY_LINK([ #ifdef HAVE_STDLIB_H #include <stdlib.h> #endif #ifdef HAVE_UNISTD_H #include <unistd.h> #endif #if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H) #include <memory.h> #endif void free(); ], [], lpc_cv_sys_free_return='char *' , lpc_cv_sys_free_return='void' )]) if test "$lpc_cv_sys_free_return" = void; then AC_DEFINE(FREE_RETURNS_VOID) AC_MSG_RESULT([void]); else AC_MSG_RESULT([not void]) fi AC_MSG_CHECKING([void* or char* from malloc]) AC_CACHE_VAL(lpc_cv_sys_malloc_return, [ AC_TRY_LINK([ #include <sys/types.h> #ifdef HAVE_STDLIB_H #include <stdlib.h> #endif #ifdef HAVE_UNISTD_H #include <unistd.h> #endif #if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H) #include <memory.h> #endif #define POINTER void * POINTER malloc(size_t); #ifdef FREE_RETURNS_VOID void free(POINTER); #else int free(POINTER); #endif ], [], lpc_cv_sys_malloc_return="void *" , lpc_cv_sys_malloc_return="char *" )]) AC_MSG_RESULT($lpc_cv_sys_malloc_return) AC_DEFINE_UNQUOTED(POINTER,$lpc_cv_sys_malloc_return)
5c8e891995-10-29Fredrik Hübinette (Hubbe) 
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)  AC_REPLACE_FUNCS(ualarm) case "$LIBOBJS" in *ualarm.o*) ;; *) AC_DEFINE(HAVE_UALARM) ;; esac AC_MSG_CHECKING(byteorder) AC_CACHE_VAL(lpc_cv_hardware_byteorder, [ 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; }], lpc_cv_hardware_byteorder=`cat conftest.out.2` , lpc_cv_hardware_byteorder=0 )]) AC_MSG_RESULT($lpc_cv_hardware_byteorder) AC_DEFINE_UNQUOTED(BYTEORDER,$lpc_cv_hardware_byteorder) AC_MSG_CHECKING(for working memmem) AC_CACHE_VAL(lpc_cv_func_memmem, [ AC_TRY_RUN([ #include <string.h> char *a="foo bar gazonk"; char *b="foo"; char *c="bar"; char *d="gazonk";
cb22561995-10-11Fredrik Hübinette (Hubbe) int main()
5267b71995-08-09Fredrik Hübinette (Hubbe) { if(memmem(b,strlen(b),a,strlen(a))!=a || memmem(c,strlen(c),a,strlen(a))!=(a+4) || memmem(d,strlen(d),a,strlen(a))!=(a+8) || memmem(d,0,a,strlen(a))!=a || memmem(d,strlen(d)+1,a,strlen(a))!=0) exit(1); exit(0); } ],lpc_cv_func_memmem=yes,lpc_cv_func_memmem=no)]) if test "$lpc_cv_func_memmem" = yes; then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_MEMMEM) else AC_MSG_RESULT(no) fi AC_MSG_CHECKING(for working memmove) AC_CACHE_VAL(lpc_cv_func_memmove, [ AC_TRY_RUN([ #include <string.h> char buf[100];
cb22561995-10-11Fredrik Hübinette (Hubbe) int main()
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); } ],lpc_cv_func_memmove=yes,lpc_cv_func_memmove=no)]) if test "$lpc_cv_func_memmove" = yes; then AC_MSG_RESULT(yes) AC_DEFINE(HAVE_MEMMOVE) else AC_MSG_RESULT(no) fi AC_MSG_CHECKING(how to extract an unsigned char) AC_CACHE_VAL(lpc_cv_method_extract_uchar, [ 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); } ],lpc_cv_method_extract_uchar=by_cast, lpc_cv_method_extract_uchar=not_by_cast)]) if test "$lpc_cv_method_extract_uchar" = by_cast; then AC_MSG_RESULT(by cast) AC_DEFINE(EXTRACT_UCHAR_BY_CAST) else AC_MSG_RESULT(not by cast) fi AC_MSG_CHECKING(how to extract a signed char) AC_CACHE_VAL(lpc_cv_method_extract_char, [ 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); } ],lpc_cv_method_extract_char=by_cast, lpc_cv_method_extract_char=not_by_cast)]) if test "$lpc_cv_method_extract_char" = by_cast; then AC_MSG_RESULT(by cast) AC_DEFINE(EXTRACT_CHAR_BY_CAST) else AC_MSG_RESULT(not by cast) fi
93b8081995-11-02Fredrik Hübinette (Hubbe) 
c8a4ce1995-11-20Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(if signal handlers reset automatically)
d10ed51995-11-15Fredrik Hübinette (Hubbe) AC_CACHE_VAL(lpc_cv_sys_signal_oneshot,
93b8081995-11-02Fredrik Hübinette (Hubbe) [ AC_TRY_RUN([ #include <signal.h> char sigrun=0; RETSIGTYPE func(int sig) { sigrun=1; } 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); while(!sigrun) sleep(1); sigrun=0; kill(getpid(), sig); while(!sigrun) sleep(1); sigrun=0; exit(0); }
d10ed51995-11-15Fredrik Hübinette (Hubbe) ],lpc_cv_sys_signal_oneshot=no,lpc_cv_sys_signal_oneshot=yes)])
93b8081995-11-02Fredrik Hübinette (Hubbe) 
d10ed51995-11-15Fredrik Hübinette (Hubbe) if test "$lpc_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
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_MSG_CHECKING(available file descriptors) AC_CACHE_VAL(lpc_cv_max_open_fd, [ 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 #define MAX_FD 256 #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) {
5267b71995-08-09Fredrik Hübinette (Hubbe)  limit=16384; /* noone needs more */
f90e541995-08-17Fredrik Hübinette (Hubbe)  }else{ limit=lim.rlim_max; if(limit > 16384) limit=16384; }
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; } ], lpc_cv_max_open_fd=`cat conftest.out.2` , lpc_cv_max_open_fd=256 )]) AC_MSG_RESULT($lpc_cv_max_open_fd) AC_DEFINE_UNQUOTED(MAX_OPEN_FILEDESCRIPTORS,$lpc_cv_max_open_fd) if test "$ac_cv_func_getrusage" = "yes"; then AC_MSG_CHECKING(full availability of struct rusage members) AC_CACHE_VAL(lpc_cv_func_getrusage_full, [ 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; ], lpc_cv_func_getrusage_full=yes , lpc_cv_func_getrusage_full=no )]) if test "$lpc_cv_func_getrusage_full" = yes; then AC_MSG_RESULT(all there) else AC_MSG_RESULT(getrusage is restricted) AC_DEFINE(GETRUSAGE_RESTRICTED) fi else AC_MSG_CHECKING(getrusage() through procfs) AC_CACHE_VAL(lpc_cv_getrusage_procfs, [ AC_TRY_LINK([ #include <sys/procfs.h> #include <sys/fcntl.h> int proc_fd; char proc_name[20]; ],[ sprintf(proc_name, "/proc/%05d", getpid()); proc_fd = open(proc_name, O_RDONLY); ], lpc_cv_getrusage_procfs=yes , lpc_cv_getrusage_procfs=no )]) if test "$lpc_cv_getrusage_procfs" = yes; then AC_MSG_RESULT(yes) AC_DEFINE(GETRUSAGE_THROUGH_PROCFS) else AC_MSG_RESULT(no) fi fi AC_MSG_CHECKING(checking for volatile) AC_CACHE_VAL(lpc_cv_volatile, [ AC_TRY_LINK([],[ volatile int foo=1;], lpc_cv_volatile=yes,lpc_cv_volatile=no) ]) if test "$lpc_cv_volatile" = yes; then AC_MSG_RESULT(yes) AC_DEFINE(VOLATILE,volatile) else AC_MSG_RESULT(no) AC_DEFINE(VOLATILE,) fi AC_MSG_CHECKING(for gcc function attributes) AC_CACHE_VAL(lpc_cv_gcc_attributes, [ 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); } main() { exit(0); } ], lpc_cv_gcc_attributes=yes, lpc_cv_gcc_attributes=no)]) AC_MSG_RESULT($lpc_cv_gcc_attributes) if test "$lpc_cv_gcc_attributes" = yes; then AC_DEFINE(HAVE_FUNCTION_ATTRIBUTES) fi AC_MSG_CHECKING(how to set things nonblocking) AC_CACHE_VAL(lpc_cv_sys_nonblock, [ AC_TRY_RUN([ #define TESTING #define USE_FCNTL_FNDELAY #include "$srcdir/fd_control.c" ],lpc_cv_sys_nonblock=USE_FCNTL_FNDELAY, AC_TRY_RUN([ #define TESTING #define USE_FCNTL_O_NDELAY #include "$srcdir/fd_control.c" ],lpc_cv_sys_nonblock=USE_FCNTL_O_NDELAY, AC_TRY_RUN([ #define TESTING #define USE_FCNTL_O_NONBLOCK #include "$srcdir/fd_control.c" ],lpc_cv_sys_nonblock=USE_FCNTL_O_NONBLOCK, AC_TRY_RUN([ #define TESTING #define USE_IOCTL_FIONBIO #include "$srcdir/fd_control.c" ],lpc_cv_sys_nonblock=USE_IOCTL_FIONBIO, unset lpc_cv_sys_nonblock ))))]) if test "${lpc_cv_sys_nonblock}" = ""; then AC_MSG_RESULT(none found) else AC_MSG_RESULT($lpc_cv_sys_nonblock) AC_DEFINE_UNQUOTED($lpc_cv_sys_nonblock) fi rm -f core dirs= MODULE_OBJS= module_names= for a in `(cd $srcdir/modules ; echo *)` do
cb22561995-10-11Fredrik Hübinette (Hubbe)  if test "$a" != "CVS" -a "$a" != "RCS" ; then
5c8e891995-10-29Fredrik Hübinette (Hubbe)  if test -d "$srcdir/modules/$a" ; then
5267b71995-08-09Fredrik Hübinette (Hubbe)  dirs="$dirs modules/$a" MODULE_OBJS="$MODULE_OBJS modules/$a/$a.a" module_names="$module_names $a" fi fi done
5c8e891995-10-29Fredrik Hübinette (Hubbe) LIBDIR=`(cd $srcdir/../lib ; pwd)` BINDIR=`(cd $srcdir/../bin ; pwd)`
5683de1995-11-06Fredrik Hübinette (Hubbe) DOCDIR=`(cd $srcdir/../doc ; pwd)`
5c8e891995-10-29Fredrik Hübinette (Hubbe) BUILDDIR=`pwd`
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_CONFIG_SUBDIRS($dirs)
26e7e71996-04-23Fredrik Hübinette (Hubbe) AC_SUBST(YACC)
5267b71995-08-09Fredrik Hübinette (Hubbe) AC_SUBST(MODULE_OBJS) AC_SUBST(INSTALL) AC_SUBST(WARN) AC_SUBST(OPTIMIZE) AC_SUBST(EXTRA_OBJS) AC_SUBST(RANLIB)
5c8e891995-10-29Fredrik Hübinette (Hubbe) AC_SUBST(LIBDIR) AC_SUBST(BINDIR) AC_SUBST(BUILDDIR)
5683de1995-11-06Fredrik Hübinette (Hubbe) AC_SUBST(DOCDIR)
5267b71995-08-09Fredrik Hübinette (Hubbe)  AC_OUTPUT(Makefile, [ echo "FOO" >stamp-h if test ! -d ./modules ; then mkdir modules fi
549f8b1996-05-02Fredrik Hübinette (Hubbe) echo creating modlist.h
5267b71995-08-09Fredrik Hübinette (Hubbe) echo "void init_main_efuns(void);" >modlist.h echo "void init_main_programs(void);" >>modlist.h echo "void exit_main(void);" >>modlist.h for a in $dirs do echo "void init_"$a"_efuns(void);" >>modlist.h echo "void init_"$a"_programs(void);" >>modlist.h echo "void exit_"$a"(void);" >>modlist.h done echo "" >>modlist.h echo "struct module module_list UGLY_WORKAROUND={" >>modlist.h echo " { \"main\", init_main_efuns, init_main_programs, exit_main, 0 }" >>modlist.h for a in $dirs do echo " ,{ \"$a\", init_"$a"_efuns, init_"$a"_programs, exit_$a, 0 }" >>modlist.h done echo "};" >>modlist.h ] , dirs="$module_names" )