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