summaryrefslogtreecommitdiff
path: root/configure.in
blob: 13468317bab824aa353873ff2b775ff43e0cf98a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
dnl Process this file with autoconf to produce a configure script.
AC_INIT(ruby.h)
PROGS="ruby"
AC_SUBST(PROGS)dnl
AC_PROG_CC
AC_PROG_GCC_TRADITIONAL
AC_PROG_YACC
AC_PROG_INSTALL
AC_CHECK_HEADERS(unistd.h stdlib.h syscall.h a.out.h dirent.h\
		string.h utime.h)
AC_HEADER_DIRENT
AC_TYPE_GETGROUPS
AC_TYPE_SIGNAL
AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"])
AC_CHECK_LIB(dbm, dbm_open, AC_DEFINE(HAVE_LIBDBM))
AC_CHECK_LIB(socket, socket, AC_DEFINE(HAVE_LIBSOKCET))
AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt"])
AC_FUNC_VFORK
AC_REPLACE_FUNCS(memmove mkdir strerror strftime\
		 strstr strtoul strdup)
AC_CHECK_FUNCS(fmod killpg socket random wait4 waitpid syscall getcwd\
	      setruid seteuid setreuid setrgid setegid setregid\
	      getpriority sigprocmask dlopen utimes)
AC_CHECK_FUNC(setenv, [], AC_CHECK_FUNCS(putenv))
if test $ac_cv_func strftime = no; then
    AC_STRUCT_TIMEZONE
    AC_TRY_LINK([],
	 [extern int daylight; int i = daylight;], AC_DEFINE(HAVE_DAYLIGHT))
fi

AC_FUNC_ALLOCA
AC_C_BIGENDIAN
AC_STRUCT_ST_BLKSIZE
AC_STRUCT_ST_BLOCKS
AC_STRUCT_ST_RDEV
AC_MSG_CHECKING(std stdio)
AC_CACHE_VAL(rb_cv_stdstdio,
[AC_TRY_COMPILE([#include <stdio.h>], 
	        [stdin->_cnt > 0;], 
	        rb_cv_stdstdio=yes,
	        rb_cv_stdstdio=no)])
AC_MSG_RESULT($rb_cv_stdstdio)
if test $rb_cv_stdstdio = yes; then
  AC_DEFINE(STDSTDIO)
fi
AC_MSG_CHECKING(struct passwd)
AC_EGREP_HEADER(pw_change, pwd.h, AC_DEFINE(PW_CHANGE))
AC_EGREP_HEADER(pw_quota, pwd.h, AC_DEFINE(PW_QUOTA))
AC_EGREP_HEADER(pw_age, pwd.h, AC_DEFINE(PW_AGE))
AC_EGREP_HEADER(pw_class, pwd.h, AC_DEFINE(PW_CLASS))
AC_EGREP_HEADER(pw_comment, pwd.h, AC_DEFINE(PW_COMMENT))
AC_EGREP_HEADER(pw_expire, pwd.h, AC_DEFINE(PW_EXPIRE))
AC_MSG_RESULT(done)
AC_MSG_CHECKING(whether matz's dln works)
cp confdefs.h config.h
if test $ac_cv_header_a_out_h = yes; then
 AC_CACHE_VAL(rb_cv_mydln,
 [AC_TRY_COMPILE([
#define USE_MY_DLN
#include "dln.c"
],
	        [], 
	        rb_cv_mydln=yes,
	        rb_cv_mydln=no)])
 AC_MSG_RESULT($rb_cv_mydln)
 if test $rb_cv_mydln = yes; then
   AC_DEFINE(USE_MY_DLN)
 fi
fi

AC_SUBST(STATIC)dnl
AC_SUBST(CCDLFLAGS)dnl
AC_SUBST(EXT)dnl
AC_SUBST(EXTMAKE)dnl

EXTMAKE=
STATIC=

if test $ac_cv_func_dlopen = yes -o $rb_cv_mydln = yes; then
  EXTMAKE=extmake
  if test "$rb_cv_mydln" = yes; then
    if test "$HOSTTYPE" = sparc; then
      if test $ac_cv_prog_CC = gcc; then
        STATIC=-static
      else
        STATIC=-Bstatic
      fi
    fi
    EXT=o
    CCDLFLAGS=
    LDCMD=
  else
    EXT=so
    if test $ac_cv_prog_CC = gcc; then
      CCDLFLAGS=-fpic
    else
      CCDLFLAGS=-pic
    fi
  fi
fi

cp confdefs.h config.h
AC_OUTPUT(Makefile ext/Makefile)