blob: 86a8d92374a3f4a47d0027048f4ddd87cd6a081c [file] [log] [blame]
Ben Ellistonbce1b481998-09-30 02:13:15 +00001# Process this file with autoconf to produce a configure script.
Mumit Khanda4b1921999-03-24 14:46:41 -07002# Copyright (C) 1995, 1997, 1998, 1999 Free Software Foundation, Inc.
Ben Ellistonbce1b481998-09-30 02:13:15 +00003# 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
Mumit Khanda4b1921999-03-24 14:46:41 -070022AC_PREREQ(2.13)
Jeffrey A Law789eb4f1998-09-30 08:17:56 +000023AC_INIT(objc/objc.h)
Ovidiu Predescud972a4c2000-08-15 07:38:04 +000024AC_CONFIG_HEADER(config.h)
Ben Ellistonbce1b481998-09-30 02:13:15 +000025
26if test "${srcdir}" = "." ; then
27 if test "${with_target_subdir}" != "." ; then
28 topsrcdir=${with_multisrctop}../..
29 else
30 topsrcdir=${with_multisrctop}..
31 fi
32else
33 topsrcdir=${srcdir}/..
34fi
Kaveh R. Ghazi8a829fd1998-10-22 11:39:46 +000035dnl This is needed for a multilibbed build in the source tree so
36dnl that install-sh and config.sub get found.
37AC_CONFIG_AUX_DIR($topsrcdir)
Ben Ellistonbce1b481998-09-30 02:13:15 +000038
Mumit Khanda4b1921999-03-24 14:46:41 -070039# 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.
Manfred Hollstein71205e01998-11-26 01:48:34 +000043compiler_name=cc1obj
44rm -f skip-this-dir
45AC_MSG_CHECKING(if compiler $compiler_name has been built)
46AC_CACHE_VAL(objc_cv_compiler_exists,
Mumit Khanda4b1921999-03-24 14:46:41 -070047[objc_cv_compiler_exists=yes
48if test -n "$r"; then
49 if test -d "$r"/gcc; then
50 if test -f "$r"/gcc/$compiler_name \
Jeff Law6de94851999-05-19 20:27:28 -060051 || test -f "$r"/gcc/$compiler_name.exe; then
Mumit Khanda4b1921999-03-24 14:46:41 -070052 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
58fi
59])
Manfred Hollstein71205e01998-11-26 01:48:34 +000060AC_MSG_RESULT($objc_cv_compiler_exists)
61if test x$objc_cv_compiler_exists = xno
62then
Mumit Khanda4b1921999-03-24 14:46:41 -070063 rm -f Makefile conftest* confdefs* core
64 exit 0
Manfred Hollstein71205e01998-11-26 01:48:34 +000065fi
66
Ben Ellistonbce1b481998-09-30 02:13:15 +000067dnl Checks for programs.
Geoffrey Keating7c6b0e92001-02-09 07:14:35 +000068
69dnl FIXME AC_PROG_CC wants CC to be able to link things, but it may
70dnl not be able to.
71define([AC_PROG_CC_WORKS],[])
72
Ben Ellistonbce1b481998-09-30 02:13:15 +000073# For ObjC we'll set CC to point at the built gcc, but this will get it into
74# the makefiles
75AC_PROG_CC
76
77test "$AR" || AR=ar
78AC_SUBST(AR)
79if test "$RANLIB"; then :
80 AC_SUBST(RANLIB)
81else
82 AC_PROG_RANLIB
83fi
84AC_PROG_INSTALL
85
Geoffrey Keating7c6b0e92001-02-09 07:14:35 +000086# 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.
93if false; then
Alexandre Oliva4173be72001-06-09 20:32:56 +000094 # 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 :
Geoffrey Keating7c6b0e92001-02-09 07:14:35 +000098 AC_EXEEXT
99fi
100
Ben Ellistonbce1b481998-09-30 02:13:15 +0000101dnl Checks for libraries.
102
103dnl Checks for header files.
104# Sanity check for the cross-compilation case:
105AC_CHECK_HEADER(stdio.h,:,
106 [AC_MSG_ERROR([Can't find stdio.h.
107You must have a usable C system for the target already installed, at least
108including headers and, preferably, the library, before you can configure
109the Objective C runtime system. If necessary, install gcc now with
110\`LANGUAGES=c', then the target library, then build with \`LANGUAGES=objc'.])])
111
112AC_HEADER_STDC
113
Ovidiu Predescud972a4c2000-08-15 07:38:04 +0000114AC_CHECK_HEADERS(sched.h)
115
H.J. Lu15794a92000-07-20 07:27:26 +0000116# Determine CFLAGS for gthread.
Ben Ellistonbce1b481998-09-30 02:13:15 +0000117
H.J. Lu15794a92000-07-20 07:27:26 +0000118AC_CACHE_CHECK([for gthread cflags],objc_cv_gthread_flags,
Jeffrey A Law79014e61999-01-05 00:40:22 +0000119[if test -f "$r"/gcc/Makefile
Ben Ellistonbce1b481998-09-30 02:13:15 +0000120then
H.J. Lu15794a92000-07-20 07:27:26 +0000121 objc_cv_gthread_flags=`grep \^GTHREAD_FLAGS "$r"/gcc/Makefile | awk -F= '{ print $2 }'`
Ben Ellistonbce1b481998-09-30 02:13:15 +0000122else
123 AC_MSG_ERROR([not found])
124fi])
H.J. Lu15794a92000-07-20 07:27:26 +0000125GTHREAD_FLAGS=$objc_cv_gthread_flags
126AC_SUBST(GTHREAD_FLAGS)
Ben Ellistonbce1b481998-09-30 02:13:15 +0000127
Nicola Peroc161c992000-07-29 19:19:43 +0000128# Disable shared libs by default
129AC_DISABLE_SHARED
130# Enable Win32 DLL on MS Windows - FIXME
131AC_LIBTOOL_WIN32_DLL
132# Use libtool
133AC_PROG_LIBTOOL
134
Ben Ellistonbce1b481998-09-30 02:13:15 +0000135AC_ARG_ENABLE(objc-gc,
136[ --enable-objc-gc enable the use of Boehm's garbage collector with
137 the GNU Objective-C runtime.],
138if [[[ x$enable_objc_gc = xno ]]]; then
139 OBJC_BOEHM_GC=''
140else
Nicola Peroc161c992000-07-29 19:19:43 +0000141 OBJC_BOEHM_GC=libobjc_gc.la
Ben Ellistonbce1b481998-09-30 02:13:15 +0000142fi,
143OBJC_BOEHM_GC='')
144AC_SUBST(OBJC_BOEHM_GC)
145
146
147# We need multilib support, but only if configuring for the target.
148AC_OUTPUT(Makefile,
149[test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
150if 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
156fi],
157srcdir=${srcdir}
158host=${host}
159target=${target}
160with_target_subdir=${with_target_subdir}
161with_multisubdir=${with_multisubdir}
162ac_configure_args="--enable-multilib ${ac_configure_args}"
163CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
164topsrcdir=${topsrcdir}
165)
166
167dnl Local Variables:
168dnl comment-start: "dnl "
169dnl comment-end: ""
170dnl comment-start-skip: "\\bdnl\\b\\s *"
171dnl End: