diff options
author | neroden <neroden@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-04-09 13:13:09 +0000 |
---|---|---|
committer | neroden <neroden@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-04-09 13:13:09 +0000 |
commit | 4330fb65cd18f937a05d2f1a90f1b46ff6cac8b5 (patch) | |
tree | 162f92720536267ef048f09f640a78394d99d393 /libobjc/configure.ac | |
parent | 7fc7cb7398f4e6a96264eac3fe6ff457279ba9c1 (diff) |
(libobjc)
* configure.in: Rename to configure.ac.
* Makefile.in: Update to match.
(contrib)
* gcc_update (files_and_dependencies): libobjc/configure now
depends on configure.ac, not configure.in.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@80555 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libobjc/configure.ac')
-rw-r--r-- | libobjc/configure.ac | 235 |
1 files changed, 235 insertions, 0 deletions
diff --git a/libobjc/configure.ac b/libobjc/configure.ac new file mode 100644 index 00000000000..6f7e765b55f --- /dev/null +++ b/libobjc/configure.ac @@ -0,0 +1,235 @@ +# Process this file with autoconf to produce a configure script. +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004 +# Free Software Foundation, Inc. +# Originally contributed by Dave Love (d.love@dl.ac.uk). +# +#This file is part of GCC. +# +#GCC 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. +# +#GCC 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 GCC; 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.59) +AC_INIT +AC_CONFIG_SRCDIR([objc/objc.h]) + +# We need the following definitions because AC_PROG_LIBTOOL relies on them +PACKAGE=libobjc +# Version is pulled out to make it a bit easier to change using sed. +VERSION=1:0:0 +AC_SUBST(VERSION) + +# 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 + +# ------- +# Options +# ------- + +# Default to --enable-multilib +AC_ARG_ENABLE(multilib, + [ --enable-multilib build hella library versions (default)], + [case "${enableval}" in + yes) multilib=yes ;; + no) multilib=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for multilib option) ;; + esac], + [multilib=yes]) + +# We use these options to decide which functions to include. +AC_ARG_WITH(target-subdir, +[ --with-target-subdir=SUBDIR + configuring in a subdirectory]) +AC_ARG_WITH(cross-host, +[ --with-cross-host=HOST configuring with a cross compiler]) + +AC_MSG_CHECKING([for --enable-version-specific-runtime-libs]) +AC_ARG_ENABLE(version-specific-runtime-libs, +[ --enable-version-specific-runtime-libs Specify that runtime libraries should be installed in a compiler-specific directory ], +[case "$enableval" in + yes) version_specific_libs=yes ;; + no) version_specific_libs=no ;; + *) AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);; + esac], +[version_specific_libs=no]) +AC_MSG_RESULT($version_specific_libs) + +AC_ARG_ENABLE(objc-gc, +[ --enable-objc-gc enable the use of Boehm's garbage collector with + the GNU Objective-C runtime.], +[case $enable_objc_gc in + no) OBJC_BOEHM_GC='' ;; + *) OBJC_BOEHM_GC=libobjc_gc.la ;; +esac], +[OBJC_BOEHM_GC='']) +AC_SUBST(OBJC_BOEHM_GC) + +# ----------- +# Directories +# ----------- + +# When building with srcdir == objdir, links to the source files will +# be created in directories within the target_subdir. We have to +# adjust toplevel_srcdir accordingly, so that configure finds +# install-sh and other auxiliary files that live in the top-level +# source directory. +if test "${srcdir}" = "."; then + if test -z "${with_target_subdir}"; then + toprel=".." + else + if test "${with_target_subdir}" != "."; then + toprel="${with_multisrctop}../.." + else + toprel="${with_multisrctop}.." + fi + fi +else + toprel=".." +fi +AC_CONFIG_AUX_DIR(${srcdir}/$toprel) +toplevel_srcdir=\${srcdir}/$toprel +AC_SUBST(toplevel_srcdir) + +AC_CANONICAL_SYSTEM +_GCC_TOPLEV_NONCANONICAL_TARGET +AC_SUBST(target_noncanonical) + +# Export source directory. +# These need to be absolute paths, yet at the same time need to +# canonicalize only relative paths, because then amd will not unmount +# drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. +case $srcdir in + [\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;; + *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; +esac +AC_SUBST(glibcpp_srcdir) + +# Process the option "--enable-version-specific-runtime-libs" +gcc_version_trigger=${srcdir}/../gcc/version.c +gcc_version_full=`grep version_string ${gcc_version_trigger} | sed -e 's/.*\"\([[^ \"]]*\)[[ \"]].*/\1/'` +gcc_version=`echo ${gcc_version_full} | sed -e 's/\([^ ]*\) .*/\1/'` +AC_SUBST(gcc_version) + +# Calculate toolexeclibdir +case ${version_specific_libs} in + yes) + # Need the gcc compiler version to know where to install libraries + # and header files if --enable-version-specific-runtime-libs option + # is selected. + toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)' + ;; + no) + if test -n "$with_cross_host" && + test x"$with_cross_host" != x"no"; then + # Install a library built with a cross compiler in tooldir, not libdir. + toolexeclibdir='$(toolexecdir)/lib' + else + toolexeclibdir='$(libdir)' + fi + multi_os_directory=`$CC -print-multi-os-directory` + case $multi_os_directory in + .) ;; # Avoid trailing /. + *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;; + esac + ;; +esac +AC_SUBST(toolexeclibdir) + +glibcpp_prefixdir=${prefix} +AC_SUBST(glibcpp_prefixdir) + +# -------- +# Programs +# -------- + +GCC_NO_EXECUTABLES +AC_PROG_CC + +AC_CHECK_TOOL(AS, as) +AC_CHECK_TOOL(AR, ar) +AC_CHECK_TOOL(RANLIB, ranlib, :) +AC_PROG_INSTALL + +# Disable shared libs by default +AC_DISABLE_SHARED +# Enable Win32 DLL on MS Windows - FIXME +AC_LIBTOOL_WIN32_DLL + +AC_PROG_LIBTOOL + +AC_PROG_MAKE_SET + +# ------- +# Headers +# ------- + +# 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) + +# ----------- +# Miscellanea +# ----------- + +# Determine CFLAGS for gthread. +# FIXME: the current implementation is dependent on the 'r' variable +# passed down from the top level +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) + +# ------ +# Output +# ------ + +AC_CONFIG_FILES([Makefile]) + +AC_CONFIG_COMMANDS([default], +[[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}" +]]) + +AC_OUTPUT |