aboutsummaryrefslogtreecommitdiff
path: root/libobjc/configure.in
blob: ac92c4234503fb50891784a388899a0b84899a4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# Process this file with autoconf to produce a configure script.
#   Copyright (C) 1995, 1997, 1998, 1999, 2002, 2003
#   Free Software Foundation, Inc.
#   Contributed by Dave Love (d.love@dl.ac.uk).
#
#This file is part of GNU Objective C.
#
#GNU Objective C is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2, or (at your option)
#any later version.
#
#GNU Objective C is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with GNU Objective C; see the file COPYING.  If not, write to
#the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#02111-1307, USA.

AC_PREREQ(2.13)
AC_INIT(objc/objc.h)
AC_CONFIG_HEADER(config.h)

# This works around the fact that libtool configuration may change LD
# for this particular configuration, but some shells, instead of
# keeping the changes in LD private, export them just because LD is
# exported.
ORIGINAL_LD_FOR_MULTILIBS=$LD

GLIBCPP_TOPREL_CONFIGURE

AC_CANONICAL_SYSTEM
target_alias=${target_alias-$target}
AC_SUBST(target_alias)

GLIBCPP_CONFIGURE(.)
GLIBCPP_EXPORT_INSTALL_INFO

# If the language specific compiler does not exist, but the "gcc" directory 
# does, we do not build anything. Note, $r is set by the top-level Makefile.
# Note that when we look for the compiler, we search both with and without
# extension to handle cross and canadian cross builds. 
compiler_name=cc1obj
rm -f skip-this-dir
AC_MSG_CHECKING(if compiler $compiler_name has been built)
AC_CACHE_VAL(objc_cv_compiler_exists,
[objc_cv_compiler_exists=yes
if test -n "$r"; then
  if test -d "$r"/gcc; then
    if test -f "$r"/gcc/$compiler_name \
       || test -f "$r"/gcc/$compiler_name.exe; then
      true
    else
      objc_cv_compiler_exists=no
      echo "rm -f config.cache config.log multilib.out" > skip-this-dir
    fi
  fi
fi
])
AC_MSG_RESULT($objc_cv_compiler_exists)
if test x$objc_cv_compiler_exists = xno
then
  rm -f Makefile conftest* confdefs* core
  exit 0
fi

dnl Checks for programs.

# Disable shared libs by default
AC_DISABLE_SHARED
# Enable Win32 DLL on MS Windows - FIXME 
AC_LIBTOOL_WIN32_DLL 

AC_PROG_LIBTOOL

dnl These should be inherited in the recursive make, but ensure they are
dnl defined:
test "$AR" || AR=ar
AC_SUBST(AR)
if test "$RANLIB"; then :
  AC_SUBST(RANLIB)
else
  AC_PROG_RANLIB
fi
AC_PROG_INSTALL
AC_PROG_MAKE_SET

dnl Checks for header files.
# Sanity check for the cross-compilation case:
AC_CHECK_HEADER(stdio.h,:,
  [AC_MSG_ERROR([Can't find stdio.h.
You must have a usable C system for the target already installed, at least
including headers and, preferably, the library, before you can configure
the Objective C runtime system.  If necessary, install gcc now with 
\`LANGUAGES=c', then the target library, then build with \`LANGUAGES=objc'.])])

AC_HEADER_STDC

AC_CHECK_HEADERS(sched.h)

# Determine CFLAGS for gthread.

AC_CACHE_CHECK([for gthread cflags],objc_cv_gthread_flags,
[if test -f "$r"/gcc/Makefile
then
  objc_cv_gthread_flags=`grep \^GTHREAD_FLAGS "$r"/gcc/Makefile | awk -F= '{ print $2 }'`
else
  AC_MSG_ERROR([not found])
fi])
GTHREAD_FLAGS=$objc_cv_gthread_flags
AC_SUBST(GTHREAD_FLAGS)

AC_ARG_ENABLE(objc-gc,
[  --enable-objc-gc       enable the use of Boehm's garbage collector with
                          the GNU Objective-C runtime.],
if [[[ x$enable_objc_gc = xno ]]]; then
        OBJC_BOEHM_GC=''
else
        OBJC_BOEHM_GC=libobjc_gc.la
fi,
OBJC_BOEHM_GC='')
AC_SUBST(OBJC_BOEHM_GC)


# We need multilib support, but only if configuring for the target.
AC_OUTPUT(Makefile,
 [test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
if test -n "$CONFIG_FILES"; then
  if test -n "${with_target_subdir}"; then
    # FIXME: We shouldn't need to set ac_file
    ac_file=Makefile
    LD="${ORIGINAL_LD_FOR_MULTILIBS}"
    . ${toplevel_srcdir}/config-ml.in
  fi
fi],
srcdir=${srcdir}
host=${host}
target=${target}
with_target_subdir=${with_target_subdir}
with_multisubdir=${with_multisubdir}
ac_configure_args="--enable-multilib ${ac_configure_args}"
toplevel_srcdir=${toplevel_srcdir}
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
)


dnl Local Variables:
dnl comment-start: "dnl "
dnl comment-end: ""
dnl comment-start-skip: "\\bdnl\\b\\s *"
dnl End: