#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)
+AC_PREREQ(2.59)
+AC_INIT
+AC_CONFIG_SRCDIR([objc/objc.h])
-dnl We need the following definitions because AC_PROG_LIBTOOL relies on them
+# We need the following definitions because AC_PROG_LIBTOOL relies on them
PACKAGE=libobjc
-dnl Version is pulled out to make it a bit easier to change using sed.
+# Version is pulled out to make it a bit easier to change using sed.
VERSION=1:0:0
AC_SUBST(VERSION)
# exported.
ORIGINAL_LD_FOR_MULTILIBS=$LD
-dnl Default to --enable-multilib
+# -------
+# 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])dnl
+ 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
toprel=".."
fi
AC_CONFIG_AUX_DIR(${srcdir}/$toprel)
-toplevel_srcdir=\${top_srcdir}/$toprel
+toplevel_srcdir=\${srcdir}/$toprel
AC_SUBST(toplevel_srcdir)
AC_CANONICAL_SYSTEM
_GCC_TOPLEV_NONCANONICAL_TARGET
AC_SUBST(target_noncanonical)
-# Export build and source directories.
+# 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.
-glibcpp_builddir=`${PWDCMD-pwd}`
case $srcdir in
-[\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;;
-*) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;;
+ [\\/$]* | ?:[\\/]*) glibcpp_srcdir=${srcdir} ;;
+ *) glibcpp_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;;
esac
-AC_SUBST(glibcpp_builddir)
AC_SUBST(glibcpp_srcdir)
-# 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])
-
- # Never versions of autoconf add an underscore to these functions.
- # Prevent future problems ...
- ifdef([AC_PROG_CC_G],[],[define([AC_PROG_CC_G],defn([_AC_PROG_CC_G]))])
- ifdef([AC_PROG_CC_GNU],[],[define([AC_PROG_CC_GNU],defn([_AC_PROG_CC_GNU]))])
- ifdef([AC_PROG_CXX_G],[],[define([AC_PROG_CXX_G],defn([_AC_PROG_CXX_G]))])
- ifdef([AC_PROG_CXX_GNU],[],[define([AC_PROG_CXX_GNU],defn([_AC_PROG_CXX_GNU]))])
-
-# AC_PROG_CC
-
-# FIXME: We temporarily define our own version of AC_PROG_CC. This is
-# copied from autoconf 2.12, but does not call AC_PROG_CC_WORKS. We
-# are probably using a cross compiler, which will not be able to fully
-# link an executable. This should really be fixed in autoconf
-# itself.
-
-AC_DEFUN(LIB_AC_PROG_CC,
-[AC_BEFORE([$0], [AC_PROG_CPP])dnl
-dnl Fool anybody using AC_PROG_CC.
-AC_PROVIDE([AC_PROG_CC])
-AC_CHECK_PROG(CC, gcc, gcc)
-if test -z "$CC"; then
- AC_CHECK_PROG(CC, cc, cc, , , /usr/ucb/cc)
- test -z "$CC" && AC_MSG_ERROR([no acceptable cc found in \$PATH])
-fi
-
-AC_PROG_CC_GNU
-
-if test $ac_cv_prog_gcc = yes; then
- GCC=yes
-dnl Check whether -g works, even if CFLAGS is set, in case the package
-dnl plays around with CFLAGS (such as to build both debugging and
-dnl normal versions of a library), tasteless as that idea is.
- ac_test_CFLAGS="${CFLAGS+set}"
- ac_save_CFLAGS="$CFLAGS"
- CFLAGS=
- AC_PROG_CC_G
- if test "$ac_test_CFLAGS" = set; then
- CFLAGS="$ac_save_CFLAGS"
- elif test $ac_cv_prog_cc_g = yes; then
- CFLAGS="-g -O2"
- else
- CFLAGS="-O2"
- fi
-else
- GCC=
- test "${CFLAGS+set}" = set || CFLAGS="-g"
-fi
-])
-
-LIB_AC_PROG_CC
-
-AC_CHECK_TOOL(AS, as)
-AC_CHECK_TOOL(AR, ar)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-AC_PROG_INSTALL
-
-
# Process the option "--enable-version-specific-runtime-libs"
-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])
-# Option set, now we can test it.
-AC_MSG_RESULT($version_specific_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)
-AC_SUBST(gcc_version_trigger)
-# Calculate glibcpp_toolexecdir, glibcpp_toolexeclibdir
+# 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.
- glibcpp_toolexecdir='$(libdir)/gcc/$(target_noncanonical)'
- glibcpp_toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)'
+ toolexeclibdir='$(toolexecdir)/'${gcc_version}'$(MULTISUBDIR)'
;;
no)
if test -n "$with_cross_host" &&
test x"$with_cross_host" != x"no"; then
- glibcpp_toolexecdir='$(exec_prefix)/$(target_noncanonical)'
- glibcpp_toolexeclibdir='$(toolexecdir)/lib'
- else
# Install a library built with a cross compiler in tooldir, not libdir.
- glibcpp_toolexecdir='$(libdir)/gcc-lib/$(target_noncanonical)'
- glibcpp_toolexeclibdir='$(libdir)'
+ toolexeclibdir='$(toolexecdir)/lib'
+ else
+ toolexeclibdir='$(libdir)'
fi
multi_os_directory=`$CC -print-multi-os-directory`
case $multi_os_directory in
.) ;; # Avoid trailing /.
- *) glibcpp_toolexeclibdir=$glibcpp_toolexeclibdir/$multi_os_directory ;;
+ *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
esac
;;
esac
-AC_SUBST(glibcpp_toolexecdir)
-AC_SUBST(glibcpp_toolexeclibdir)
+AC_SUBST(toolexeclibdir)
glibcpp_prefixdir=${prefix}
AC_SUBST(glibcpp_prefixdir)
-dnl Checks for programs.
+# --------
+# 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
AC_PROG_MAKE_SET
-dnl Checks for header files.
+# -------
+# Headers
+# -------
+
# Sanity check for the cross-compilation case:
AC_CHECK_HEADER(stdio.h,:,
[AC_MSG_ERROR([Can't find stdio.h.
AC_CHECK_HEADERS(sched.h)
-# Determine CFLAGS for gthread.
+# -----------
+# 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
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)
+# ------
+# Output
+# ------
+AC_CONFIG_FILES([Makefile])
-# 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
+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}
+fi]],
+[[srcdir=${srcdir}
host=${host}
target=${target}
with_target_subdir=${with_target_subdir}
toplevel_srcdir=${toplevel_srcdir}
CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
ORIGINAL_LD_FOR_MULTILIBS="${ORIGINAL_LD_FOR_MULTILIBS}"
-)
+]])
+
+AC_OUTPUT