1cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#! /bin/sh
2cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# ylwrap - wrapper for lex/yacc invocations.
3cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
405436638acc7c010349a69c3395f1a57c642dc62Ying Wangscriptversion=2012-10-08.07; # UTC
5cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
605436638acc7c010349a69c3395f1a57c642dc62Ying Wang# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005,
705436638acc7c010349a69c3395f1a57c642dc62Ying Wang# 2007, 2009, 2010, 2011 Free Software Foundation, Inc.
8cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#
9cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# Written by Tom Tromey <tromey@cygnus.com>.
10cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#
11cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# This program is free software; you can redistribute it and/or modify
12cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# it under the terms of the GNU General Public License as published by
13cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# the Free Software Foundation; either version 2, or (at your option)
14cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# any later version.
15cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#
16cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# This program is distributed in the hope that it will be useful,
17cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# but WITHOUT ANY WARRANTY; without even the implied warranty of
18cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# GNU General Public License for more details.
20cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project#
21cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# You should have received a copy of the GNU General Public License
2205436638acc7c010349a69c3395f1a57c642dc62Ying Wang# along with this program.  If not, see <http://www.gnu.org/licenses/>.
23cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
24cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# As a special exception to the GNU General Public License, if you
25cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# distribute this file as part of a program that contains a
26cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# configuration script generated by Autoconf, you may include it under
27cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# the same distribution terms that you use for the rest of that program.
28cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
29cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# This file is maintained in Automake, please report
30cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# bugs to <bug-automake@gnu.org> or send patches to
31cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# <automake-patches@gnu.org>.
32cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
33cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase "$1" in
34cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  '')
35cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    echo "$0: No files given.  Try \`$0 --help' for more information." 1>&2
36cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    exit 1
37cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    ;;
38cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  --basedir)
39cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    basedir=$2
40cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    shift 2
41cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    ;;
42cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  -h|--h*)
43cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    cat <<\EOF
44cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectUsage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
45cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
46cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectWrapper for lex/yacc invocations, renaming files as desired.
47cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
48cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  INPUT is the input file
49cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  OUTPUT is one file PROG generates
50cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  DESIRED is the file we actually want instead of OUTPUT
51cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  PROGRAM is program to run
52cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ARGS are passed to PROG
53cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
54cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectAny number of OUTPUT,DESIRED pairs may be used.
55cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
56cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectReport bugs to <bug-automake@gnu.org>.
57cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source ProjectEOF
58cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    exit $?
59cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    ;;
60cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  -v|--v*)
61cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    echo "ylwrap $scriptversion"
62cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    exit $?
63cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    ;;
64cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectesac
65cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
66cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
67cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# The input.
68cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectinput="$1"
69cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectshift
70cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase "$input" in
71cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  [\\/]* | ?:[\\/]*)
72cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    # Absolute path; do nothing.
73cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    ;;
74cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  *)
75cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    # Relative path.  Make it absolute.
76cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    input="`pwd`/$input"
77cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    ;;
78cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectesac
79cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
80cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectpairlist=
81cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectwhile test "$#" -ne 0; do
82cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if test "$1" = "--"; then
83cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    shift
84cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    break
85cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  fi
86cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  pairlist="$pairlist $1"
87cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  shift
88cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectdone
89cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
90cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# The program to run.
91cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectprog="$1"
92cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectshift
93cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# Make any relative path in $prog absolute.
94cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase "$prog" in
95cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  [\\/]* | ?:[\\/]*) ;;
96cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  *[\\/]*) prog="`pwd`/$prog" ;;
97cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectesac
98cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
99cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# FIXME: add hostname here for parallel makes that run commands on
100cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# other machines.  But that might take us over the 14-char limit.
101cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectdirname=ylwrap$$
10205436638acc7c010349a69c3395f1a57c642dc62Ying Wangdo_exit="cd '`pwd`' && rm -rf $dirname > /dev/null 2>&1;"' (exit $ret); exit $ret'
10305436638acc7c010349a69c3395f1a57c642dc62Ying Wangtrap "ret=129; $do_exit" 1
10405436638acc7c010349a69c3395f1a57c642dc62Ying Wangtrap "ret=130; $do_exit" 2
10505436638acc7c010349a69c3395f1a57c642dc62Ying Wangtrap "ret=141; $do_exit" 13
10605436638acc7c010349a69c3395f1a57c642dc62Ying Wangtrap "ret=143; $do_exit" 15
107cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectmkdir $dirname || exit 1
108cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
109cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcd $dirname
110cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
111cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcase $# in
11205436638acc7c010349a69c3395f1a57c642dc62Ying Wang  0) "$prog" "$input" ;;
11305436638acc7c010349a69c3395f1a57c642dc62Ying Wang  *) "$prog" "$@" "$input" ;;
114cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectesac
115cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectret=$?
116cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
117cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectif test $ret -eq 0; then
118cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  set X $pairlist
119cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  shift
120cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  first=yes
121cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  # Since DOS filename conventions don't allow two dots,
122cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  # the DOS version of Bison writes out y_tab.c instead of y.tab.c
123cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  # and y_tab.h instead of y.tab.h. Test to see if this is the case.
124cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  y_tab_nodot="no"
125cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  if test -f y_tab.c || test -f y_tab.h; then
126cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    y_tab_nodot="yes"
127cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  fi
128cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
129cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  # The directory holding the input.
130cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
131cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  # Quote $INPUT_DIR so we can use it in a regexp.
132cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  # FIXME: really we should care about more than `.' and `\'.
133cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
134cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
135cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  while test "$#" -ne 0; do
136cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    from="$1"
137cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    # Handle y_tab.c and y_tab.h output by DOS
138cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    if test $y_tab_nodot = "yes"; then
139cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      if test $from = "y.tab.c"; then
14005436638acc7c010349a69c3395f1a57c642dc62Ying Wang        from="y_tab.c"
141cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      else
14205436638acc7c010349a69c3395f1a57c642dc62Ying Wang        if test $from = "y.tab.h"; then
14305436638acc7c010349a69c3395f1a57c642dc62Ying Wang          from="y_tab.h"
14405436638acc7c010349a69c3395f1a57c642dc62Ying Wang        fi
145cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      fi
146cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    fi
147cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    if test -f "$from"; then
148cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # If $2 is an absolute path name, then just use that,
149cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # otherwise prepend `../'.
150cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      case "$2" in
15105436638acc7c010349a69c3395f1a57c642dc62Ying Wang        [\\/]* | ?:[\\/]*) target="$2";;
15205436638acc7c010349a69c3395f1a57c642dc62Ying Wang        *) target="../$2";;
153cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      esac
154cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
155cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # We do not want to overwrite a header file if it hasn't
156cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # changed.  This avoid useless recompilations.  However the
157cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # parser itself (the first file) should always be updated,
158cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # because it is the destination of the .y.c rule in the
159cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # Makefile.  Divert the output of all other files to a temporary
160cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # file so we can compare them to existing versions.
161cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      if test $first = no; then
16205436638acc7c010349a69c3395f1a57c642dc62Ying Wang        realtarget="$target"
16305436638acc7c010349a69c3395f1a57c642dc62Ying Wang        target="tmp-`echo $target | sed s/.*[\\/]//g`"
164cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      fi
165cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # Edit out `#line' or `#' directives.
166cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      #
167cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # We don't want the resulting debug information to point at
168cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # an absolute srcdir; it is better for it to just mention the
169cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # .y file with no path.
170cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      #
171cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # We want to use the real output file name, not yy.lex.c for
172cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # instance.
173cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      #
174cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # We want the include guards to be adjusted too.
175cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      FROM=`echo "$from" | sed \
176cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project            -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
177cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project            -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
178cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      TARGET=`echo "$2" | sed \
179cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project            -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
180cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project            -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
181cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
182cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \
183cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project          -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$?
184cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
185cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # Check whether header files must be updated.
186cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      if test $first = no; then
18705436638acc7c010349a69c3395f1a57c642dc62Ying Wang        if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
18805436638acc7c010349a69c3395f1a57c642dc62Ying Wang          echo "$2" is unchanged
18905436638acc7c010349a69c3395f1a57c642dc62Ying Wang          rm -f "$target"
19005436638acc7c010349a69c3395f1a57c642dc62Ying Wang        else
191cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project          echo updating "$2"
192cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project          mv -f "$target" "$realtarget"
193cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        fi
194cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      fi
195cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    else
196cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # A missing file is only an error for the first file.  This
197cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # is a blatant hack to let us support using "yacc -d".  If -d
198cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # is not specified, we don't want an error when the header
199cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      # file is "missing".
200cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      if test $first = yes; then
201cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project        ret=1
202cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project      fi
203cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    fi
204cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    shift
205cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    shift
206cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project    first=no
207cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  done
208cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectelse
209cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project  ret=$?
210cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectfi
211cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
212cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# Remove the directory.
213cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectcd ..
214cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectrm -rf $dirname
215cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
216cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Projectexit $ret
217cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project
218cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# Local Variables:
219cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# mode: shell-script
220cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# sh-indentation: 2
221cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# eval: (add-hook 'write-file-hooks 'time-stamp)
222cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# time-stamp-start: "scriptversion="
223cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# time-stamp-format: "%:y-%02m-%02d.%02H"
22405436638acc7c010349a69c3395f1a57c642dc62Ying Wang# time-stamp-time-zone: "UTC"
22505436638acc7c010349a69c3395f1a57c642dc62Ying Wang# time-stamp-end: "; # UTC"
226cea198a11f15a2eb071d98491ca9a8bc8cebfbc4The Android Open Source Project# End:
227