*** 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(compiler.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 case "$host_cpu" in
15 alpha* )
16         SYSDEP_DIR="alpha" 
17         CFLAGS="-ieee -O2 -g3"
18         COMPILER_SOURCES="compiler.h compiler.c" 
19         COMPILER_OBJECTS="compiler.o"
20         AC_DEFINE(OLD_COMPILER)
21         ;;
22
23 mips* )
24         SYSDEP_DIR="mips" 
25         CFLAGS="-64 -g -DMAP_ANONYMOUS=0 -woff 1048,1110,1164,1515"
26         LIBS="-lelfutil" 
27         COMPILER_SOURCES=""
28         COMPILER_OBJECTS=""
29         ;;
30
31 sparc* | powerpc* | ppc* | * )
32         AC_MSG_ERROR($host-cpu systems are not supported at this time) ;;
33
34 esac
35
36 AC_SUBST(COMPILER_SOURCES)
37 AC_SUBST(COMPILER_OBJECTS)
38
39 AC_DEFINE_UNQUOTED(SYSDEP_DIR, "$SYSDEP_DIR")
40 AC_SUBST(SYSDEP_DIR)
41
42 dnl Checks for programs.
43 AC_PROG_CC
44 AC_PROG_RANLIB
45
46 dnl Checks for libraries.
47 AC_CHECK_LIB(m, sin)
48
49 dnl Checks for header files.
50 AC_HEADER_DIRENT
51 AC_HEADER_STDC
52 AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h)
53
54 dnl Checks for typedefs, structures, and compiler characteristics.
55 AC_C_CONST
56 AC_C_INLINE
57 AC_TYPE_OFF_T
58 AC_TYPE_SIZE_T
59 AC_HEADER_TIME
60 AC_STRUCT_TM
61
62 dnl Checks for library functions.
63 AC_PROG_GCC_TRADITIONAL
64 AC_FUNC_MEMCMP
65 AC_FUNC_MMAP
66 AC_TYPE_SIGNAL
67 AC_CHECK_FUNCS(getcwd gettimeofday mkdir mktime select socket)
68
69 dnl Check for mmap header anomalies (missing MAP_FAILED, etc.)
70 if test $ac_cv_func_mmap_fixed_mapped = yes; then
71         AC_CACHE_CHECK(whether MAP_FAILED is defined,
72                        ac_cv_map_failed,
73                        AC_EGREP_CPP(yes, 
74                                     [#include <sys/mman.h>
75                                      #ifdef MAP_FAILED
76                                         yes
77                                      #endif],
78                                     ac_cv_map_failed=yes,
79                                     ac_cv_map_failed=no))
80
81         AC_CACHE_CHECK(whether MAP_ANONYMOUS is defined,
82                        ac_cv_map_anonymous,
83                        AC_EGREP_CPP(yes, 
84                                     [#include <sys/mman.h>
85                                      #ifdef MAP_ANONYMOUS
86                                         yes
87                                      #endif],
88                                     ac_cv_map_anonymous=yes,
89                                     ac_cv_map_anonymous=no))
90
91         if test $ac_cv_map_failed = yes; then
92                 AC_DEFINE(HAVE_MAP_FAILED) 
93         fi
94
95         if test $ac_cv_map_anonymous = yes; then
96                 AC_DEFINE(HAVE_MAP_ANONYMOUS) 
97         fi
98 fi
99
100
101 dnl Features
102
103 dnl check arguments
104 AC_ARG_ENABLE(threads, [  --enable-threads        enable threads support])
105 AC_ARG_ENABLE(gc2, [  --enable-gc2            enable new garbage collector])
106
107 dnl threads
108 AC_MSG_CHECKING(whether to include threads support)
109 if test x"$enable_threads" = "xno"; then
110         AC_MSG_RESULT(no)
111 else
112         AC_MSG_RESULT(yes)
113
114         AC_DEFINE(USE_THREADS)
115         AC_DEFINE(EXTERNAL_OVERFLOW)
116         AC_DEFINE(DONT_FREE_FIRST)
117
118         LIBTHREAD="libthreads.a"
119         THREAD_OBJ="threads/libthreads.a"
120         AC_SUBST(LIBTHREAD)
121         AC_SUBST(THREAD_OBJ)
122 fi
123
124 dnl garbage collector version
125 AC_MSG_CHECKING(which garbage collector to use)
126 if test x"$enable_gc2" = "xno"; then
127         AC_MSG_RESULT(old garbage collector)
128         GC_OBJ="mm/libmm_old.a"
129 else
130         AC_MSG_RESULT(new garbage collector)
131         GC_OBJ="mm/libmm_new.a"
132 fi
133 AC_SUBST(GC_OBJ)
134
135
136 AC_OUTPUT(Makefile \
137           toolbox/Makefile \
138           mm/Makefile \
139           threads/Makefile \
140           jit/Makefile \
141           alpha/Makefile \
142           mips/Makefile \
143           nat/Makefile \
144           doc/Makefile \
145           comp/Makefile \
146           narray/Makefile \
147           tst/Makefile )