*** empty log message ***
[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="compiler.h compiler.c" 
40         COMPILER_OBJECTS="compiler.o"
41         ;;
42
43 sparc* | powerpc* | ppc* | * )
44         AC_MSG_ERROR($host-cpu systems are not supported at this time) ;;
45
46 esac
47
48 AC_SUBST(COMPILER_SOURCES)
49 AC_SUBST(COMPILER_OBJECTS)
50 AC_SUBST(ASMPART)
51
52 AC_DEFINE_UNQUOTED(SYSDEP_DIR, "$SYSDEP_DIR")
53 AC_SUBST(SYSDEP_DIR)
54
55 dnl Checks for programs.
56 AC_PROG_CC
57 AC_PROG_RANLIB
58 AC_PROG_MAKE_SET
59
60 dnl Checks for libraries.
61 AC_CHECK_LIB(m, sin)
62
63 dnl Checks for header files.
64 AC_HEADER_DIRENT
65 AC_HEADER_STDC
66 AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h)
67
68 dnl Checks for typedefs, structures, and compiler characteristics.
69 AC_C_CONST
70 AC_C_INLINE
71 AC_TYPE_OFF_T
72 AC_TYPE_SIZE_T
73 AC_HEADER_TIME
74 AC_STRUCT_TM
75
76 dnl Checks for library functions.
77 AC_PROG_GCC_TRADITIONAL
78 AC_FUNC_MEMCMP
79 AC_FUNC_MMAP
80 AC_TYPE_SIGNAL
81 AC_CHECK_FUNCS(getcwd gettimeofday mkdir mktime select socket)
82
83 dnl Check for mmap header anomalies (missing MAP_FAILED, etc.)
84 if test $ac_cv_func_mmap_fixed_mapped = yes; then
85         AC_CACHE_CHECK(whether MAP_FAILED is defined,
86                        ac_cv_map_failed,
87                        AC_EGREP_CPP(yes, 
88                                     [#include <sys/mman.h>
89                                      #ifdef MAP_FAILED
90                                         yes
91                                      #endif],
92                                     ac_cv_map_failed=yes,
93                                     ac_cv_map_failed=no))
94
95         AC_CACHE_CHECK(whether MAP_ANONYMOUS is defined,
96                        ac_cv_map_anonymous,
97                        AC_EGREP_CPP(yes, 
98                                     [#include <sys/mman.h>
99                                      #ifdef MAP_ANONYMOUS
100                                         yes
101                                      #endif],
102                                     ac_cv_map_anonymous=yes,
103                                     ac_cv_map_anonymous=no))
104
105         if test $ac_cv_map_failed = yes; then
106                 AC_DEFINE(HAVE_MAP_FAILED) 
107         fi
108
109         if test $ac_cv_map_anonymous = yes; then
110                 AC_DEFINE(HAVE_MAP_ANONYMOUS) 
111         fi
112 fi
113
114
115 dnl Features
116
117 dnl check arguments
118 AC_ARG_ENABLE(threads, [  --enable-threads        enable threads support])
119 AC_ARG_WITH(gc, [  --with-gc[=ARG]         use garbage collector [gc2,gc1,boehm]])
120
121 dnl threads
122 AC_MSG_CHECKING(whether to include threads support)
123 if test x"$enable_threads" = "xno"; then
124         AC_MSG_RESULT(no)
125 else
126         AC_MSG_RESULT(yes)
127
128         AC_DEFINE(USE_THREADS)
129         AC_DEFINE(EXTERNAL_OVERFLOW)
130         AC_DEFINE(DONT_FREE_FIRST)
131
132         LIBTHREAD="libthreads.a"
133         THREAD_OBJ="threads/libthreads.a"
134         AC_SUBST(LIBTHREAD)
135         AC_SUBST(THREAD_OBJ)
136 fi
137
138 dnl garbage collector version
139 AC_MSG_CHECKING(which garbage collector to use)
140 case "$with_gc" in
141 boehm )
142         AC_MSG_RESULT(Boehm garbage collector)
143         GC_OBJ="mm/libboehm.a libgc.a"
144         if test ! -e libgc.a; then
145                 AC_MSG_ERROR([libgc.a not found, see README.boehm])
146         fi
147         AC_DEFINE(USE_BOEHM)
148         BOEHM_LIB=libboehm.a
149         ;;
150 gc1 )
151         AC_MSG_RESULT(old garbage collector)
152         GC_OBJ="mm/libmm_old.a"
153         ;;
154 gc2 | "" )
155         AC_MSG_RESULT(new garbage collector)
156         GC_OBJ="mm/libmm_new.a"
157         ;;
158 * )
159         AC_MSG_ERROR(Invalid GC)
160         ;;
161 esac
162 AC_SUBST(GC_OBJ)
163 AC_SUBST(BOEHM_LIB)
164
165 AC_OUTPUT(Makefile \
166           toolbox/Makefile \
167           mm/Makefile \
168           threads/Makefile \
169           jit/Makefile \
170           alpha/Makefile \
171           mips/Makefile \
172           i386/Makefile \
173           nat/Makefile \
174           doc/Makefile \
175           comp/Makefile \
176           narray/Makefile \
177           tst/Makefile \
178           jvmtst/Makefile )