diff options
author | Ian Lance Taylor <ian@airs.com> | 1995-10-04 16:22:37 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1995-10-04 16:22:37 +0000 |
commit | ca2ce3b317d2a38bfacca0de136ab4d776448230 (patch) | |
tree | f504d7ff8bdcb3fa7aed0bb0c1571adbb9ce0b9b /configure.in | |
parent | 243b35d7a17bda288ac7dadfcbbddf1dbdf299c5 (diff) | |
download | gdb-ca2ce3b317d2a38bfacca0de136ab4d776448230.zip gdb-ca2ce3b317d2a38bfacca0de136ab4d776448230.tar.gz gdb-ca2ce3b317d2a38bfacca0de136ab4d776448230.tar.bz2 |
* configure: If CC and CXX are not set in the environment, set
them, based on either an existing Makefile or on searching for gcc
in PATH. Substitute for CC and CXX in Makefile.
* configure.in: Remove libm from target_libs. Separate
target_configdirs from configdirs. If CC is not set in
environment, try to get it from a host Makefile fragment. Rewrite
changes of configdirs to use skipdirs instead. A few minor
tweaks. Take directories out of target_configdirs as they are
taken out of configdirs. Remove existing Makefile files from
subdirectories. Substitute for TARGET_CONFIGDIRS and
CONFIG_ARGUMENTS in Makefile.
* Makefile.in (TARGET_CONFIGDIRS): New variable, automatically set
by configure.in.
(CONFIG_ARGUMENTS): Likewise.
(CONFIGURE_TARGET_MODULES): New variable.
($(DO_X)): Loop over TARGET_CONFIGDIRS as well as SUBDIRS.
($(CONFIGURE_TARGET_MODULES)): New target.
(configure-libg++, configure-libio): New targets.
(all-libg++): Depend upon configure-libg++.
(all-libio): Depend upon configure-libio.
(configure-libgloss, all-libgloss): New targets.
(configure-libstdc++): New target.
(all-libstdc++): Depend upon configure-libstdc++.
(configure-librx, all-librx): New targets.
(configure-newlib): New target.
(all-newlib): Depend upon configure-newlib
(configure-xiberty): New target.
(all-xiberty): Depend upon configure-xiberty.
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 96 |
1 files changed, 71 insertions, 25 deletions
diff --git a/configure.in b/configure.in index 7ab4a8b..7fa4d7c 100644 --- a/configure.in +++ b/configure.in @@ -42,7 +42,7 @@ host_tools="texinfo byacc flex bison binutils ld gas gcc gdb make patch # 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="libm xiberty libgloss newlib libio librx libstdc++ libg++" +target_libs="xiberty libgloss newlib libio librx libstdc++ libg++" # these tools are built using the target libs, and are intended to run only @@ -75,8 +75,11 @@ cross_only="xiberty libgloss newlib" ## 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_libs} ${target_tools}` +configdirs=`echo ${host_libs} ${host_tools}` +target_configdirs=`echo ${target_libs} ${target_tools}` ################################################################################ @@ -128,6 +131,13 @@ case "${host}" in esac fi +# See if we can extract a definition of CC from the fragment. +if [ -z "${CC}" ]; then + if [ -n "${host_makefile_frag}" -a -f ${host_makefile_frag} ]; then + CC=`sed -n -e 's/CC[ ]*=[ ]*\(.*\)$/\1/p' < ${host_makefile_frag}` + fi +fi + # The Solaris /usr/ucb/cc compiler does not appear to work. case "${host}" in sparc-sun-solaris2*) @@ -191,6 +201,7 @@ case "${target}" in powerpc-*-netware*) target_makefile_frag=config/mt-netware ;; esac +skipdirs= gasdir=gas use_gnu_ld= use_gnu_as= @@ -202,7 +213,7 @@ case ${with_x} in yes | "") # the default value for this tree is that X11 is available ;; no) - configdirs=`echo " ${configdirs} " | sed -e 's/ tk / /;/ gash / /'` + skipdirs="${skipdirs} tk gash" ;; *) echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2 @@ -219,16 +230,12 @@ is_cross_compiler= if [ x"${host}" = x"${target}" ] ; then # when doing a native toolchain, don't build the targets # that are in the 'cross only' list - for i in ${cross_only} ; do - configdirs=`echo " ${configdirs} " | sed -e "s/ $i / /"` - done + skipdirs="${skipdirs} ${cross_only}" is_cross_compiler=no else # similarly, don't build the targets in the 'native only' # list when building a cross compiler - for i in ${native_only} ; do - configdirs=`echo " ${configdirs} " | sed -e "s/ $i / /"` - done + skipdirs="${skipdirs} ${native_only}" is_cross_compiler=yes fi @@ -276,10 +283,9 @@ fi # Recognize --with-newlib/--without-newlib. if [ x${with_newlib} = xno ]; then - configdirs=`echo " ${configdirs} " | sed -e 's/ newlib / /'` + skipdirs="${skipdirs} newlib" elif [ x${with_newlib} = xyes ]; then - configdirs=`echo " ${configdirs} " | sed -e 's/ newlib / /'` - configdirs="${configdirs} newlib" + skipdirs=`echo " ${skipdirs} " | sed -e 's/ newlib / /'` fi # Handle ${copy_dirs} @@ -386,9 +392,7 @@ case "${target}" in noconfigdirs="$noconfigdirs ld shellutils" ;; i[345]86-*-go32) - # add the go32 support tools to the list # but don't build gdb - configdirs=`echo go32 ${configdirs}` noconfigdirs="$noconfigdirs gdb libg++ libstdc++ libio librx" ;; @@ -396,7 +400,7 @@ case "${target}" in # Can't build gdb for win32 target noconfigdirs="$noconfigdirs gdb tk" # but put newlib back - configdirs="$configdirs newlib" + skipdirs=`echo " ${skipdirs} " | sed -e 's/ newlib / /'` ;; i[345]86-*-pe) noconfigdirs="$noconfigdirs libg++ libstdc++ libio librx" @@ -459,14 +463,13 @@ case "${target}" in noconfigdirs="$noconfigdirs gprof" ;; romp-*-*) - noconfigdirs="bfd binutils ld gas opcodes" + noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes" ;; sh-*-*) case "${host}" in i[345]86-*-vsta) ;; # don't add gprof back in - *) configdirs=`echo gprof ${configdirs}` ;; i[345]86-*-go32) ;; # don't add gprof back in - *) configdirs=`echo gprof ${configdirs}` ;; + *) skipdirs=`echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;; esac ;; sparc-*-sunos4*) @@ -491,18 +494,42 @@ case "${target}" in ;; esac -# Remove the entries in $noconfigdirs from $configdirs. If we have the -# source for them, add them to $notsupp. +# Remove the entries in $skipdirs and $noconfigdirs from $configdirs and +# $target_configdirs. +# If we have the source for $noconfigdirs entries, add them to $notsupp. notsupp="" -for dir in . $noconfigdirs ; do +for dir in . $skipdirs $noconfigdirs ; do if [ $dir != . ] && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then configdirs=`echo " ${configdirs} " | sed -e "s/ ${dir} / /"` if [ -r $srcdir/$dir/configure ] || [ -r $srcdir/$dir/configure.in ]; then - notsupp="$notsupp $dir" + if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then + true + else + notsupp="$notsupp $dir" + fi + fi + fi + if [ $dir != . ] && echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then + target_configdirs=`echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"` + if [ -r $srcdir/$dir/configure ] || [ -r $srcdir/$dir/configure.in ]; then + if echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then + true + else + notsupp="$notsupp $dir" + fi fi fi done +# Deconfigure all subdirectories, in case we are changing the +# configuration from one where a subdirectory is supported to one where it +# is not. +if [ -z "${norecursion}" ]; then + for i in ${configdirs} ${target_configdirs}; do + rm -f $i/Makefile + done +fi + # Produce a warning message for the subdirs we can't configure. # This isn't especially interesting in the Cygnus tree, but in the individual # FSF releases, it's important to let people know when their machine isn't @@ -515,9 +542,15 @@ if [ -n "${notsupp}" ] && [ -z "${norecursion}" ]; then # pretend that all is well.) if [ -n "$appdirs" ]; then for dir in $appdirs ; do - if [ -r $dir/Makefile.in ] && echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1 ; then - appdirs="" - break + if [ -r $dir/Makefile.in ]; then + if echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then + appdirs="" + break + fi + if echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then + appdirs="" + break + fi fi done if [ -n "$appdirs" ]; then @@ -567,6 +600,19 @@ if [ x${enable_shared} = xyes ]; then esac fi +# post-target: + +# Record target_configdirs and the configure arguments in Makefile. +targargs=`echo "${arguments}" | \ + sed -e 's/--*norecursion//' \ + -e 's/--*cache[a-z-]*=[^ ]*//' \ + -e 's/--*cache[a-z-]*[ ][ ]*[^ ]*//'` +sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \ + -e "s%^CONFIG_ARGUMENTS[ ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \ + Makefile > Makefile.tem +rm -f Makefile +mv -f Makefile.tem Makefile + # # Local Variables: # fill-column: 131 |