Skip to content
Snippets Groups Projects
configure.in 52.1 KiB
Newer Older
Jason Merrill's avatar
Jason Merrill committed
#! /bin/bash
##############################################################################

## This file is a shell script fragment that supplies the information
## necessary to tailor a template configure script into the configure
## script appropriate for this directory.  For more information, check
## any existing configure script.  

## Be warned, there are two types of configure.in files.  There are those
## used by Autoconf, which are macros which are expanded into a configure
## script by autoconf.  The other sort, of which this is one, is executed
## by Cygnus configure.  

## For more information on these two systems, check out the documentation
## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi).  

#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998,
#   1999, 2000, 2001, 2002 Free Software Foundation, Inc.
Jason Merrill's avatar
Jason Merrill committed
#
# This file 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 of the License, or
# (at your option) any later version.
#
# This program 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 this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.

##############################################################################

### To add a new directory to the tree, first choose whether it is a target
### or a host dependent tool.  Then put it into the appropriate list
### (library or tools, host or target), doing a dependency sort.  For
### example, gdb requires that byacc (or bison) be built first, so it is in
### the ${host_tools} list after byacc and bison.  


# these libraries are used by various programs built for the host environment
#
host_libs="intl mmalloc libiberty opcodes bfd readline db tcl tk tclX itcl tix libgui zlib"
Jason Merrill's avatar
Jason Merrill committed

Mark Mitchell's avatar
Mark Mitchell committed
libstdcxx_version="target-libstdc++-v3"
Jason Merrill's avatar
Jason Merrill committed
# these tools are built for the host environment
# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
# know that we are building the simulator.
host_tools="texinfo byacc flex bison binutils ld gas gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool grep diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils snavigator libtool gettext zip fastjar"
# libgcj represents the runtime libraries only used by gcj.
libgcj="target-libffi \
	target-boehm-gc \
	target-zlib \
	target-qthreads \
	target-libjava"

Jason Merrill's avatar
Jason Merrill committed
# these libraries are built for the target environment, and are built after
# the host libraries and the host tools (which may be a cross compiler)
#
target_libs="target-libiberty \
		target-libgloss \
		target-newlib \
		${libstdcxx_version} \
		target-libf2c \
		${libgcj}
		target-libobjc"
Jason Merrill's avatar
Jason Merrill committed

# these tools are built using the target libs, and are intended to run only
# in the target environment
#
# note: any program that *uses* libraries that are in the "target_libs"
# list belongs in this list.  those programs are also very likely
# candidates for the "native_only" list which follows
#
target_tools="target-examples target-groff target-gperf"

################################################################################

## These two lists are of directories that are to be removed from the
## ${configdirs} list for either cross-compilations or for native-
## compilations.  For example, it doesn't make that much sense to
## cross-compile Emacs, nor is it terribly useful to compile target-libiberty in
## a native environment.  

# directories to be built in the native environment only
#
# This must be a single line because of the way it is searched by grep in
# the code below.
native_only="autoconf automake libtool fileutils find gawk gettext grep gzip hello indent m4 rcs recode sed shellutils tar textutils uudecode wdiff gprof target-groff guile perl time ash bash bzip2 prms snavigator gnuserv target-gperf"
Jason Merrill's avatar
Jason Merrill committed

# directories to be built in a cross environment only
#
cross_only="target-libgloss target-newlib target-opcodes"
Jason Merrill's avatar
Jason Merrill committed

## All tools belong in one of the four categories, and are assigned above
## We assign ${configdirs} this way to remove all embedded newlines.  This
## is important because configure will choke if they ever get through.
## ${configdirs} is directories we build using the host tools.
## ${target_configdirs} is directories we build using the target tools.
#
configdirs=`echo ${host_libs} ${host_tools}`
target_configdirs=`echo ${target_libs} ${target_tools}`

################################################################################

srctrigger=move-if-change
srcname="gnu development package"

# This gets set non-empty for some net releases of packages.
appdirs=""

# per-host:

# There is no longer anything interesting in the per-host section.

# per-target:

# Define is_cross_compiler to save on calls to 'test'.
is_cross_compiler=
if test x"${host}" = x"${target}" ; then
  is_cross_compiler=no
else
  is_cross_compiler=yes
fi	

# We always want to use the same name for this directory, so that dejagnu
# can reliably find it.
target_subdir=${target_alias}
if test ! -d ${target_subdir} ; then
Jason Merrill's avatar
Jason Merrill committed
  if mkdir ${target_subdir} ; then true
  else
    echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${target_subdir}" 1>&2
Jason Merrill's avatar
Jason Merrill committed
    exit 1
  fi
fi

Zack Weinberg's avatar
Zack Weinberg committed
build_subdir=${build_alias}

if test x"${build_alias}" != x"${host}" ; then
  if test ! -d ${build_subdir} ; then
Zack Weinberg's avatar
Zack Weinberg committed
    if mkdir ${build_subdir} ; then true
    else
      echo "'*** could not make ${PWD=`${PWDCMD-pwd}`}/${build_subdir}" 1>&2
Zack Weinberg's avatar
Zack Weinberg committed
      exit 1
    fi
  fi
fi

# Skipdirs are removed silently.
skipdirs=
# Noconfigdirs are removed loudly.
noconfigdirs=""
Jason Merrill's avatar
Jason Merrill committed

use_gnu_ld=
# Make sure we don't let GNU ld be added if we didn't want it.
if test x$with_gnu_ld = xno ; then
  use_gnu_ld=no
  noconfigdirs="$noconfigdirs ld"
Jason Merrill's avatar
Jason Merrill committed
fi

use_gnu_as=
# Make sure we don't let GNU as be added if we didn't want it.
if test x$with_gnu_as = xno ; then
  use_gnu_as=no
  noconfigdirs="$noconfigdirs gas"
Jason Merrill's avatar
Jason Merrill committed
fi

# some tools are so dependent upon X11 that if we're not building with X, 
# it's not even worth trying to configure, much less build, that tool.
Jason Merrill's avatar
Jason Merrill committed

case ${with_x} in
  yes | "") ;; # the default value for this tree is that X11 is available
  no)
    skipdirs="${skipdirs} tk tix itcl libgui"
    # We won't be able to build gdbtk without X.
    enable_gdbtk=no 
    ;;
  *)  echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 ;;
esac
Jason Merrill's avatar
Jason Merrill committed

# Some tools are only suitable for building in a "native" situation.
# Remove these if host!=target.  Similarly, some are only suitable
# for cross toolchains; remove if host=target.
Jason Merrill's avatar
Jason Merrill committed

case $is_cross_compiler in
  no) skipdirs="${skipdirs} ${cross_only}" ;;
  yes) skipdirs="${skipdirs} ${native_only}" ;;
esac
Jason Merrill's avatar
Jason Merrill committed

# If both --with-headers and --with-libs are specified, default to
# --without-newlib.
if test x"${with_headers}" != x && test x"${with_libs}" != x ; then
  if test x"${with_newlib}" = x ; then
    with_newlib=no
  fi
Loading
Loading full blame...