OSDN Git Service

2001-08-02 David Billinghurst <David.Billinghurst>
[pf3gnuchains/gcc-fork.git] / libobjc / configure.in
1 # Process this file with autoconf to produce a configure script.
2 #   Copyright (C) 1995, 1997, 1998, 1999 Free Software Foundation, Inc.
3 #   Contributed by Dave Love (d.love@dl.ac.uk).
4 #
5 #This file is part of GNU Objective C.
6 #
7 #GNU Objective C is free software; you can redistribute it and/or modify
8 #it under the terms of the GNU General Public License as published by
9 #the Free Software Foundation; either version 2, or (at your option)
10 #any later version.
11 #
12 #GNU Objective C is distributed in the hope that it will be useful,
13 #but WITHOUT ANY WARRANTY; without even the implied warranty of
14 #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 #GNU General Public License for more details.
16 #
17 #You should have received a copy of the GNU General Public License
18 #along with GNU Objective C; see the file COPYING.  If not, write to
19 #the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
20 #02111-1307, USA.
21
22 AC_PREREQ(2.13)
23 AC_INIT(objc/objc.h)
24 AC_CONFIG_HEADER(config.h)
25
26 if test "${srcdir}" = "." ; then
27   if test "${with_target_subdir}" != "." ; then
28     topsrcdir=${with_multisrctop}../..
29   else
30     topsrcdir=${with_multisrctop}..
31   fi
32 else
33   topsrcdir=${srcdir}/..
34 fi
35 dnl This is needed for a multilibbed build in the source tree so
36 dnl that install-sh and config.sub get found.
37 AC_CONFIG_AUX_DIR($topsrcdir)
38
39 # If the language specific compiler does not exist, but the "gcc" directory 
40 # does, we do not build anything. Note, $r is set by the top-level Makefile.
41 # Note that when we look for the compiler, we search both with and without
42 # extension to handle cross and canadian cross builds. 
43 compiler_name=cc1obj
44 rm -f skip-this-dir
45 AC_MSG_CHECKING(if compiler $compiler_name has been built)
46 AC_CACHE_VAL(objc_cv_compiler_exists,
47 [objc_cv_compiler_exists=yes
48 if test -n "$r"; then
49   if test -d "$r"/gcc; then
50     if test -f "$r"/gcc/$compiler_name \
51        || test -f "$r"/gcc/$compiler_name.exe; then
52       true
53     else
54       objc_cv_compiler_exists=no
55       echo "rm -f config.cache config.log multilib.out" > skip-this-dir
56     fi
57   fi
58 fi
59 ])
60 AC_MSG_RESULT($objc_cv_compiler_exists)
61 if test x$objc_cv_compiler_exists = xno
62 then
63   rm -f Makefile conftest* confdefs* core
64   exit 0
65 fi
66
67 dnl Checks for programs.
68
69 dnl FIXME AC_PROG_CC wants CC to be able to link things, but it may
70 dnl not be able to.
71 define([AC_PROG_CC_WORKS],[])
72
73 # For ObjC we'll set CC to point at the built gcc, but this will get it into
74 # the makefiles
75 AC_PROG_CC
76
77 test "$AR" || AR=ar
78 AC_SUBST(AR)
79 if test "$RANLIB"; then :
80   AC_SUBST(RANLIB)
81 else
82   AC_PROG_RANLIB
83 fi
84 AC_PROG_INSTALL
85
86 # We need AC_EXEEXT to keep automake happy in cygnus mode.  However,
87 # at least currently, we never actually build a program, so we never
88 # need to use $(EXEEXT).  Moreover, the test for EXEEXT normally
89 # fails, because we are probably configuring with a cross compiler
90 # which cant create executables.  So we include AC_EXEEXT to keep
91 # automake happy, but we dont execute it, since we dont care about
92 # the result.
93 if false; then
94   # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands
95   # to nothing, so nothing would remain between `then' and `fi' if it
96   # were not for the `:' below.
97   :
98   AC_EXEEXT
99 fi
100
101 dnl Checks for libraries.
102
103 dnl Checks for header files.
104 # Sanity check for the cross-compilation case:
105 AC_CHECK_HEADER(stdio.h,:,
106   [AC_MSG_ERROR([Can't find stdio.h.
107 You must have a usable C system for the target already installed, at least
108 including headers and, preferably, the library, before you can configure
109 the Objective C runtime system.  If necessary, install gcc now with 
110 \`LANGUAGES=c', then the target library, then build with \`LANGUAGES=objc'.])])
111
112 AC_HEADER_STDC
113
114 AC_CHECK_HEADERS(sched.h)
115
116 # Determine CFLAGS for gthread.
117
118 AC_CACHE_CHECK([for gthread cflags],objc_cv_gthread_flags,
119 [if test -f "$r"/gcc/Makefile
120 then
121   objc_cv_gthread_flags=`grep \^GTHREAD_FLAGS "$r"/gcc/Makefile | awk -F= '{ print $2 }'`
122 else
123   AC_MSG_ERROR([not found])
124 fi])
125 GTHREAD_FLAGS=$objc_cv_gthread_flags
126 AC_SUBST(GTHREAD_FLAGS)
127
128 # Disable shared libs by default
129 AC_DISABLE_SHARED
130 # Enable Win32 DLL on MS Windows - FIXME 
131 AC_LIBTOOL_WIN32_DLL 
132 # Use libtool
133 AC_PROG_LIBTOOL
134
135 AC_ARG_ENABLE(objc-gc,
136 [  --enable-objc-gc       enable the use of Boehm's garbage collector with
137                           the GNU Objective-C runtime.],
138 if [[[ x$enable_objc_gc = xno ]]]; then
139         OBJC_BOEHM_GC=''
140 else
141         OBJC_BOEHM_GC=libobjc_gc.la
142 fi,
143 OBJC_BOEHM_GC='')
144 AC_SUBST(OBJC_BOEHM_GC)
145
146
147 # We need multilib support, but only if configuring for the target.
148 AC_OUTPUT(Makefile,
149 [test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
150 if test -n "$CONFIG_FILES"; then
151   if test -n "${with_target_subdir}"; then
152     # FIXME: We shouldn't need to set ac_file
153     ac_file=Makefile
154     . ${topsrcdir}/config-ml.in
155   fi
156 fi],
157 srcdir=${srcdir}
158 host=${host}
159 target=${target}
160 with_target_subdir=${with_target_subdir}
161 with_multisubdir=${with_multisubdir}
162 ac_configure_args="--enable-multilib ${ac_configure_args}"
163 CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
164 topsrcdir=${topsrcdir}
165 )
166
167 dnl Local Variables:
168 dnl comment-start: "dnl "
169 dnl comment-end: ""
170 dnl comment-start-skip: "\\bdnl\\b\\s *"
171 dnl End: