fixed hash return
[cacao.git] / configure.in
1 dnl autoconf; autoheader; automake
2
3 dnl Process this file with autoconf to produce a configure script.
4 AC_INIT(jit.c)
5 AC_CANONICAL_HOST
6
7 AM_INIT_AUTOMAKE(cacao, 0.40)
8 AM_CONFIG_HEADER(config.h)
9
10 AC_PREFIX_DEFAULT(/usr/local/cacao)
11
12 dnl system type
13
14 ASMPART="asmpart.S"
15 case "$host_cpu" in
16 alpha* )
17         SYSDEP_DIR="alpha"
18         CFLAGS="-ieee -O2 -g3"
19         COMPILER_SOURCES="compiler.h compiler.c"
20         COMPILER_OBJECTS="compiler.o"
21         AC_DEFINE(OLD_COMPILER)
22         AC_DEFINE(TRACE_ARGS_NUM, 6)
23         AC_DEFINE(USE_CODEMMAP)
24         ;;
25
26 mips* )
27         SYSDEP_DIR="mips"
28         ASMPART="asmpart.s"
29         CFLAGS="-64 -g -DMAP_ANONYMOUS=0 -woff 1048,1110,1164,1515"
30         LIBS="-lelfutil"
31         COMPILER_SOURCES=""
32         COMPILER_OBJECTS=""
33         AC_DEFINE(TRACE_ARGS_NUM, 8)
34         ;;
35
36 i386* | i486* | i586* | i686* )
37         SYSDEP_DIR="i386"
38         CFLAGS="-O0 -g3 -D__I386__"
39         COMPILER_SOURCES=""
40         COMPILER_OBJECTS="i386/libdisass.a"
41         AC_DEFINE(TRACE_ARGS_NUM, 6)
42         AC_DEFINE(USE_CODEMMAP)
43         ;;
44
45 sparc* | powerpc* | ppc* | * )
46         AC_MSG_ERROR($host-cpu systems are not supported at this time) ;;
47
48 esac
49
50 AC_SUBST(COMPILER_SOURCES)
51 AC_SUBST(COMPILER_OBJECTS)
52 AC_SUBST(ASMPART)
53
54 AC_DEFINE_UNQUOTED(SYSDEP_DIR, "$SYSDEP_DIR")
55 AC_SUBST(SYSDEP_DIR)
56
57 dnl Checks for programs.
58 AC_PROG_CC
59 AC_PROG_RANLIB
60 AC_PROG_MAKE_SET
61
62 dnl Checks for libraries.
63 AC_CHECK_LIB(m, sin)
64
65 dnl Checks for header files.
66 AC_HEADER_DIRENT
67 AC_HEADER_STDC
68 AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h)
69
70 dnl Checks for typedefs, structures, and compiler characteristics.
71 AC_C_CONST
72 AC_C_INLINE
73 AC_TYPE_OFF_T
74 AC_TYPE_SIZE_T
75 AC_HEADER_TIME
76 AC_STRUCT_TM
77
78 dnl Checks for library functions.
79 AC_PROG_GCC_TRADITIONAL
80 AC_FUNC_MEMCMP
81 AC_FUNC_MMAP
82 AC_TYPE_SIGNAL
83 AC_CHECK_FUNCS(getcwd gettimeofday mkdir mktime select socket)
84
85 dnl Check for mmap header anomalies (missing MAP_FAILED, etc.)
86 if test $ac_cv_func_mmap_fixed_mapped = yes; then
87         AC_CACHE_CHECK(whether MAP_FAILED is defined,
88                        ac_cv_map_failed,
89                        AC_EGREP_CPP(yes, 
90                                     [#include <sys/mman.h>
91                                      #ifdef MAP_FAILED
92                                         yes
93                                      #endif],
94                                     ac_cv_map_failed=yes,
95                                     ac_cv_map_failed=no))
96
97         AC_CACHE_CHECK(whether MAP_ANONYMOUS is defined,
98                        ac_cv_map_anonymous,
99                        AC_EGREP_CPP(yes, 
100                                     [#include <sys/mman.h>
101                                      #ifdef MAP_ANONYMOUS
102                                         yes
103                                      #endif],
104                                     ac_cv_map_anonymous=yes,
105                                     ac_cv_map_anonymous=no))
106
107         if test $ac_cv_map_failed = yes; then
108                 AC_DEFINE(HAVE_MAP_FAILED) 
109         fi
110
111         if test $ac_cv_map_anonymous = yes; then
112                 AC_DEFINE(HAVE_MAP_ANONYMOUS) 
113         fi
114 fi
115
116
117 dnl Features
118
119 dnl check arguments
120 AC_ARG_ENABLE(threads, [  --enable-threads        enable threads support])
121 AC_ARG_WITH(gc, [  --with-gc[=ARG]         use garbage collector [gc2,gc1,boehm]])
122
123 dnl threads
124 AC_MSG_CHECKING(whether to include threads support)
125 if test x"$enable_threads" = "xno"; then
126         AC_MSG_RESULT(no)
127 else
128         AC_MSG_RESULT(yes)
129
130         AC_DEFINE(USE_THREADS)
131         AC_DEFINE(EXTERNAL_OVERFLOW)
132         AC_DEFINE(DONT_FREE_FIRST)
133
134         LIBTHREAD="libthreads.a"
135         THREAD_OBJ="threads/libthreads.a"
136         AC_SUBST(LIBTHREAD)
137         AC_SUBST(THREAD_OBJ)
138 fi
139
140 dnl garbage collector version
141 AC_MSG_CHECKING(which garbage collector to use)
142 case "$with_gc" in
143 boehm )
144         AC_MSG_RESULT(Boehm garbage collector)
145         GC_OBJ="mm/libboehm.a libgc.a"
146         if test ! -e libgc.a; then
147                 AC_MSG_ERROR([libgc.a not found, see README.boehm])
148         fi
149         AC_DEFINE(USE_BOEHM)
150         BOEHM_LIB=libboehm.a
151         ;;
152 gc1 )
153         AC_MSG_RESULT(old garbage collector)
154         GC_OBJ="mm/libmm_old.a"
155         ;;
156 gc2 | "" )
157         AC_MSG_RESULT(new garbage collector)
158         GC_OBJ="mm/libmm_new.a"
159         ;;
160 * )
161         AC_MSG_ERROR(Invalid GC)
162         ;;
163 esac
164 AC_SUBST(GC_OBJ)
165 AC_SUBST(BOEHM_LIB)
166
167 AC_OUTPUT(Makefile \
168           toolbox/Makefile \
169           mm/Makefile \
170           threads/Makefile \
171           jit/Makefile \
172           alpha/Makefile \
173           mips/Makefile \
174           i386/Makefile \
175           nat/Makefile \
176           doc/Makefile \
177           comp/Makefile \
178           narray/Makefile \
179           tst/Makefile \
180           jvmtst/Makefile )