bfin-xxx-gcc-4.3.1中config.status的生成及运行(2):Shell检测

快乐虾

http://blog.csdn.net/lights_joy/

[email protected]

   

 

本文适用于

gcc- 4.3.1

Blackfin系列DSP

Visual Studio 2005

   

欢迎转载,但请保留作者信息

 

 

 

这段输出的代码较长,但是无非是在检测不同bash之间的一些差异,没什么实质性的内容。

cat >>$CONFIG_STATUS <</_ACEOF

## --------------------- ##

## M4sh Initialization.  ##

## --------------------- ##

 

# Be Bourne compatible

if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then

  emulate sh

  NULLCMD=:

  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which

  # is contrary to our usage.  Disable this feature.

  alias -g '${1+"$@"}'='"$@"'

elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then

  set -o posix

fi

DUALCASE=1; export DUALCASE # for MKS sh

 

# Support unset when possible.

if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then

  as_unset=unset

else

  as_unset=false

fi

 

 

# Work around bugs in pre-3.0 UWIN ksh.

$as_unset ENV MAIL MAILPATH

PS1='$ '

PS2='> '

PS4='+ '

 

# NLS nuisances.

# 动态设置一些全局变量的值为C

for as_var in /

  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION /

  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER /

  LC_TELEPHONE LC_TIME

do

  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then

    eval $as_var=C; export $as_var

  else

    $as_unset $as_var

  fi

done

 

# Required to use basename.

# 测试是否支持expr命令,在cygwin下为expr

if expr a : '/(a/)' >/dev/null 2>&1; then

  as_expr=expr

else

  as_expr=false

fi

 

# 测试是否支持basename命令,在此认为支持。

if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then

  as_basename=basename

else

  as_basename=false

fi

 

 

# Name of the executable.

as_me=`$as_basename "$0" ||

$as_expr X/"$0" : '.*//([^/][^/]*/)/*$' /| /

      X"$0" : 'X/(///)$' /| /

      X"$0" : 'X/(//)$' /| /

      .     : '/(./)' 2>/dev/null ||

echo X/"$0" |

    sed '/^.*///([^/][^/]*/)//*$/{ s///1/; q; }

       /^X///(/////)$/{ s///1/; q; }

       /^X///(///).*/{ s///1/; q; }

       s/.*/./; q'`

 

 

# PATH needs CR, and LINENO needs CR and PATH.

# Avoid depending upon Character Ranges .

as_cr_letters='abcdefghijklmnopqrstuvwxyz'

as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'

as_cr_Letters=$as_cr_letters$as_cr_LETTERS

as_cr_digits='0123456789'

as_cr_alnum=$as_cr_Letters$as_cr_digits

 

# The user is always right.

# 设置PATH_SEPARATOR变量,最后它的值为冒号:

if test "${PATH_SEPARATOR+set}" != set; then

  echo "#! /bin/sh" >conf$$.sh

  echo  "exit 0"   >>conf$$.sh

  chmod +x conf$$.sh

  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then

    PATH_SEPARATOR=';'

  else

    PATH_SEPARATOR=:

  fi

  rm -f conf$$.sh

fi

 

 

  as_lineno_1=$LINENO

  as_lineno_2=$LINENO

  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`

  test "x$as_lineno_1" != "x$as_lineno_2" &&

  test "x$as_lineno_3"  = "x$as_lineno_2"  || {

  # Find who we are.  Look in the path if we contain no path at all

  # relative or not.

  case $ 0 in

    *[///]* ) as_myself=$0 ;;

    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR

for as_dir in $PATH

do

  IFS=$as_save_IFS

  test -z "$as_dir" && as_dir=.

  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break

done

 

       ;;

  Esac

 

  # We did not find ourselves, most probably we were run as `sh COMMAND'

  # in which case we are not to be found in the path.

  if test "x$as_myself" = x; then

    as_myself=$0

  fi

  if test ! -f "$as_myself"; then

    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5

echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}

   { (exit 1); exit 1; }; }

  fi

  case $CONFIG_SHELL in

  '')

    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR

for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH

do

  IFS=$as_save_IFS

  test -z "$as_dir" && as_dir=.

  for as_base in sh bash ksh sh5; do

      case $as_dir in

      /*)

        if ("$as_dir/$as_base" -c '

  as_lineno_1=$LINENO

  as_lineno_2=$LINENO

  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`

  test "x$as_lineno_1" != "x$as_lineno_2" &&

  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then

          $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }

          $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }

          CONFIG_SHELL=$as_dir/$as_base

          export CONFIG_SHELL

          exec "$CONFIG_SHELL" "$0" ${1+"$@"}

        fi;;

      esac

       done

done

;;

  esac

 

  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO

  # uniformly replaced by the line number.  The first 'sed' inserts a

  # line-number line before each line; the second 'sed' does the real

  # work.  The second script uses 'N' to pair each line-number line

  # with the numbered line, and appends trailing '-' during

  # substitution so that $LINENO is not a special case at line end.

  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the

  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)

  sed '=' <$as_myself |

    sed '

      N

      s,$,-,

      : loop

      s,^/(['$as_cr_digits']*/)/(.*/)[$]LINENO/([^'$as_cr_alnum'_]/),/1/2/1/3,

      t loop

      s,-$,,

      s,^['$as_cr_digits']*/n,,

    ' >$as_me.lineno &&

  chmod +x $as_me.lineno ||

    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5

echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}

   { (exit 1); exit 1; }; }

 

  # Don't try to exec as it changes $[0], causing all sort of problems

  # (the dirname of $[0] is not the place where we might find the

  # original and so on.  Autoconf is especially sensible to this).

  . ./$as_me.lineno

  # Exit status is that of the last command.

  exit

}

 

 

case `echo "testing/c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in

  *c*,-n*) ECHO_N= ECHO_C='

' ECHO_T='    ' ;;

  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;

  *)       ECHO_N= ECHO_C='/c' ECHO_T= ;;

esac

 

if expr a : '/(a/)' >/dev/null 2>&1; then

  as_expr=expr

else

  as_expr=false

fi

 

rm -f conf$$ conf$$.exe conf$$.file

echo >conf$$.file

if ln -s conf$$.file conf$$ 2>/dev/null; then

  # We could just check for DJGPP; but this test a) works b) is more generic

  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).

  if test -f conf$$.exe; then

    # Don't use ln at all; we don't have any links

    as_ln_s='cp -p'

  else

    as_ln_s='ln -s'

  fi

elif ln conf$$.file conf$$ 2>/dev/null; then

  as_ln_s=ln

else

  as_ln_s='cp -p'

fi

rm -f conf$$ conf$$.exe conf$$.file

 

if mkdir -p . 2>/dev/null; then

  as_mkdir_p=:

else

  test -d ./-p && rmdir ./-p

  as_mkdir_p=false

fi

 

as_executable_p="test -f"

 

# Sed expression to map a string onto a valid CPP name.

as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"

 

# Sed expression to map a string onto a valid variable name.

as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"

 

 

# IFS

# We need space, tab and new line, in precisely that order.

as_nl='

'

IFS="    $as_nl"

 

# CDPATH.

$as_unset CDPATH

 

exec 6>&1

 

# Open the log real soon, to keep /$[0] and so on meaningful, and to

# report actual input values of CONFIG_FILES etc. instead of their

# values after options handling.  Logging --version etc. is OK.

exec 5>>config.log

{

  echo

  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX

## Running $as_me. ##

_ASBOX

} >&5

cat >&5 <<_CSEOF

 

This file was extended by $as_me, which was

generated by GNU Autoconf 2.59.  Invocation command line was

 

  CONFIG_FILES    = $CONFIG_FILES

  CONFIG_HEADERS  = $CONFIG_HEADERS

  CONFIG_LINKS    = $CONFIG_LINKS

  CONFIG_COMMANDS = $CONFIG_COMMANDS

  $ $0 $@

 

_CSEOF

echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5

echo >&5

_ACEOF

在这段脚本的末尾,输出了一段信息到config.log文件中,但是对几个变量进行了替换,所以最终输出到config.log中的信息就变成了:

This file contains any messages produced by compilers while

running configure, to aid debugging if configure makes a mistake.

 

It was created by configure, which was

generated by GNU Autoconf 2.59.  Invocation command line was

 

  $ ./configure --target=bfin-gnu-linux target_alias=bfin-gnu-linux --no-create --no-recursion

 

 

参考资料

bfin-gcc-4.3.1config.h的生成( 2008-8-5 )

bfin-xxx-gcc-4.3.1config.status的生成及运行(1):输出注释( 2008-8-5 )

 

 

 

 

 

 

 

你可能感兴趣的:(bfin-xxx-gcc-4.3.1中config.status的生成及运行(2):Shell检测)