Changes to support ELF strip and objcopy on dynamically linked
[binutils-gdb.git] / configure
index 73f2ccbcdc5345c1e518af4c33731f384b516f7f..db0c290ab4988e00e779d41b2a2b94bd8300868a 100755 (executable)
--- a/configure
+++ b/configure
@@ -141,7 +141,7 @@ do
                ;;
 # These options have mandatory values.  Since we didn't find an = sign,
 # the value must be in the next argument
-       --b* | --ex* | --ho* | --pre* | --program-p* | --program-s* | --program-t* | --si* | --sr* | --ta* | --tm*)
+       --b* | --ex* | --ho* | --pre* | --program-p* | --program-s* | --program-t* | --si* | --sr* | --ta* | --tm* | --x-*)
                optarg=$1
                shift
                ;;
@@ -158,6 +158,11 @@ do
                   ;;
                esac
                ;;
+       --disable-*)
+               enableopt=`echo ${option} | sed 's:^--disable-:enable_:;s:-:_:g'`
+               eval $enableopt=no
+               disableoptions="$disableoptions $option"
+               ;;
        --enable-*)
                case "$option" in
                *=*)    ;;
@@ -207,20 +212,24 @@ do
        --program-transform-name* | --program-t*)
                # Double any backslashes or dollar signs in the argument
                program_transform_name="${program_transform_name} -e `echo ${optarg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`"
-               program_transform_nameoption="--program-transform-nameoption='$optarg'"
+               program_transform_nameoption="${program_transform_nameoption} --program-transform-name='$optarg'"
                ;;
        --rm)
                removing=--rm
                ;;
-       --site* | --si*)
+       --silent | --sil* | --quiet | --q*)
+               redirect=">/dev/null"
+               verbose=--silent
+               ;;
+       --site* | --sit*)
                site=$optarg
                site_option="--site=$optarg"
                ;;
        --srcdir*/ | --sr*/)
                 # Remove trailing slashes.  Otherwise, when the file name gets
-                # bolted into an object file as debug info, it has two slashes in
-                # it.  Ordinarily this is ok, but emacs takes double slash to
-                # mean "forget the first part".
+                # bolted into an object file as debug info, it has two slashes
+                # in it.  Ordinarily this is ok, but emacs takes double slash
+                # to mean "forget the first part".
                srcdir=`echo $optarg | sed -e 's:/$::'`
                ;;
        --srcdir* | --sr*)
@@ -257,18 +266,18 @@ do
                withoptions="$withoptions $option"
                ;;
        --without-*)
-               withopt=`echo ${option} | sed 's:^--::;s:out::;s:-:_:g'`                
+               withopt=`echo ${option} | sed 's:^--::;s:out::;s:-:_:g'`
                eval $withopt=no
                withoutoptions="$withoutoptions $option"
                ;;
        --x)    with_x=yes
                withoptions="$withoptions --with-x"
                ;;
+       --x-i* | --x-l*) other_options="$other_options $orig_option"
+               ;;
        --*)
-               echo "Warning: Unrecognized option: \"$orig_option\"". >&2
-               # Pass the option to any configure scripts in subdirectories
-               # in case they recognize it.
-               other_options="$other_options $orig_option"
+               echo "configure: Unrecognized option: \"$orig_option\"; use --help for usage." >&2
+               exit 1
                ;;
        *)
                case $undefs in
@@ -319,6 +328,30 @@ case "${fatal}" in
                        guesssys=`echo ${progname} | sed 's/configure$/config.guess/'`
                        if host_alias=`${guesssys}`
                        then
+                               # If the string we are going to use for
+                               # the target is a prefix of the string
+                               # we just guessed for the host, then
+                               # assume we are running native, and force
+                               # the same string for both target and host.
+                               case $target_alias in
+                               NOTARGET)
+                                       case $undefs in
+                                       NOUNDEFS) ;;
+                                       *)
+                                           if expr $host_alias : $undefs >/dev/null
+                                           then
+                                               host_alias=$undefs
+                                           fi
+                                           ;;
+                                       esac
+                                       ;;
+                               *)
+                                       if expr $host_alias : $target_alias >/dev/null
+                                       then
+                                               host_alias=$target_alias
+                                       fi
+                                       ;;
+                               esac
                                echo "Configuring for a ${host_alias} host." 1>&2
                                arguments="--host=$host_alias $arguments"
                        else
@@ -351,7 +384,7 @@ esac
 
 if [ -n "${fatal}" -o "${host_alias}" = "help" ] ; then
        exec 1>&2
-       echo Usage: configure HOST
+       echo Usage: configure [OPTIONS] HOST
        echo
        echo Options: [defaults in brackets]
        echo ' --prefix=MYDIR            configure for installation of host independent files into MYDIR. ["/usr/local"]'
@@ -371,8 +404,9 @@ if [ -n "${fatal}" -o "${host_alias}" = "help" ] ; then
        echo ' --with-FOO, --with-FOO=BAR package FOO is available (parameter BAR)'
        echo ' --without-FOO             package FOO is NOT available'
        echo ' --enable-FOO, --enable-FOO=BAR include feature FOO (parameter BAR)'
+       echo ' --disable-FOO             do not include feature FOO'
        echo
-       echo 'Where HOST and TARGET are something like "vax", "sun3", "encore", etc.'
+       echo 'Where HOST and TARGET are something like "sun4", "decstation", "encore", etc.'
        echo
        if [ -r config.status ] ; then
                cat config.status
@@ -622,9 +656,15 @@ for subdir in . ${subdirs} ; do
                 fi
 
                 ${remove} -f ${link}
-                # Make a symlink if possible, otherwise try a hard link
-                ${symbolic_link} ${srcdir}/${file} ${link} 2>/dev/null || ${hard_link} ${srcdir}/${file} ${link}
-
+               # Make a symlink if possible, otherwise try a hard link
+               if ${symbolic_link} ${srcdir}/${file} ${link} >/dev/null 2>&1 ; then
+                       true
+               else
+                       # We need to re-remove the file because Lynx leaves a 
+                       # very strange directory there when it fails an NFS symlink.
+                       ${remove} -r -f ${link}
+                       ${hard_link} ${srcdir}/${file} ${link}
+               fi
                 if [ ! -r ${link} ] ; then
                         echo '***' "${progname}: unable to link \"${link}\" to \"${srcdir}/${file}\"." 1>&2
                         exit 1
@@ -931,7 +971,7 @@ if [ -z "${norecursion}" -a -n "${configdirs}" ] ; then
                        if [ ! -z "${recprog}" ] ; then
                                if eval ${config_shell} ${recprog} ${verbose} ${buildopt} --host=${host_alias} --target=${target_alias} \
                                        ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \
-                                       ${srcdiroption} ${program_prefixoption} ${program_suffixoption} ${program_transform_nameoption} ${site_option} ${withoptions} ${withoutoptions} ${enableoptions} ${removing} ${other_options} ${redirect} ; then
+                                       ${srcdiroption} ${program_prefixoption} ${program_suffixoption} ${program_transform_nameoption} ${site_option} ${withoptions} ${withoutoptions} ${enableoptions} ${disableoptions} ${removing} ${other_options} ${redirect} ; then
                                        true
                                else
                                        echo Configure in `pwd` failed, exiting. 1>&2