xref: /aosp_15_r20/external/libpcap/build_common.sh (revision 8b26181f966a6af5cf6981a6f474313de533bb28)
1*8b26181fSAndroid Build Coastguard Worker#!/bin/sh -e
2*8b26181fSAndroid Build Coastguard Worker
3*8b26181fSAndroid Build Coastguard Worker# The only purpose of the above shebang is to orient shellcheck right.
4*8b26181fSAndroid Build Coastguard Worker# To make CI scripts maintenance simpler, copies of this file in the
5*8b26181fSAndroid Build Coastguard Worker# libpcap, tcpdump and tcpslice git repositories should be identical.
6*8b26181fSAndroid Build Coastguard Worker# Please mind that Solaris /bin/sh before 11 does not support the $()
7*8b26181fSAndroid Build Coastguard Worker# command substitution syntax, hence the "-e SC2006" flag in Makefile.
8*8b26181fSAndroid Build Coastguard Worker
9*8b26181fSAndroid Build Coastguard Worker# A poor man's mktemp(1) for OSes that don't have one (e.g. AIX 7, Solaris 9).
10*8b26181fSAndroid Build Coastguard Workermktempdir_diy() {
11*8b26181fSAndroid Build Coastguard Worker    while true; do
12*8b26181fSAndroid Build Coastguard Worker        # /bin/sh implements $RANDOM in AIX 7, but not in Solaris before 11,
13*8b26181fSAndroid Build Coastguard Worker        # thus use dd and od instead.
14*8b26181fSAndroid Build Coastguard Worker        mktempdir_diy_suffix=`dd if=/dev/urandom bs=4 count=1 2>/dev/null | od -t x -A n | head -1 | tr -d '\t '`
15*8b26181fSAndroid Build Coastguard Worker        [ -z "$mktempdir_diy_suffix" ] && return 1
16*8b26181fSAndroid Build Coastguard Worker        mktempdir_diy_path="${TMPDIR:-/tmp}/${1:?}.${mktempdir_diy_suffix}"
17*8b26181fSAndroid Build Coastguard Worker        # "test -e" would be more appropriate, but it is not available in
18*8b26181fSAndroid Build Coastguard Worker        # Solaris /bin/sh before 11.
19*8b26181fSAndroid Build Coastguard Worker        if [ ! -d "$mktempdir_diy_path" ]; then
20*8b26181fSAndroid Build Coastguard Worker            mkdir "$mktempdir_diy_path"
21*8b26181fSAndroid Build Coastguard Worker            chmod go= "$mktempdir_diy_path"
22*8b26181fSAndroid Build Coastguard Worker            echo "$mktempdir_diy_path"
23*8b26181fSAndroid Build Coastguard Worker            break
24*8b26181fSAndroid Build Coastguard Worker        fi
25*8b26181fSAndroid Build Coastguard Worker        # Try again (very unlikely, just in case).
26*8b26181fSAndroid Build Coastguard Worker    done
27*8b26181fSAndroid Build Coastguard Worker}
28*8b26181fSAndroid Build Coastguard Worker
29*8b26181fSAndroid Build Coastguard Workermktempdir() {
30*8b26181fSAndroid Build Coastguard Worker    mktempdir_prefix=${1:-tmp}
31*8b26181fSAndroid Build Coastguard Worker    case `os_id` in
32*8b26181fSAndroid Build Coastguard Worker    Darwin-*|FreeBSD-*|NetBSD-*)
33*8b26181fSAndroid Build Coastguard Worker        # In these operating systems mktemp(1) always appends an implicit
34*8b26181fSAndroid Build Coastguard Worker        # ".XXXXXXXX" suffix to the requested template when creating a
35*8b26181fSAndroid Build Coastguard Worker        # temporary directory.
36*8b26181fSAndroid Build Coastguard Worker        mktemp -d -t "$mktempdir_prefix"
37*8b26181fSAndroid Build Coastguard Worker        ;;
38*8b26181fSAndroid Build Coastguard Worker    SunOS-5.10|SunOS-5.11)
39*8b26181fSAndroid Build Coastguard Worker        # Although the suffix is optional, specify it for consistent results.
40*8b26181fSAndroid Build Coastguard Worker        mktemp -d -t "${mktempdir_prefix}.XXXXXXXX"
41*8b26181fSAndroid Build Coastguard Worker        ;;
42*8b26181fSAndroid Build Coastguard Worker    SunOS-*|AIX-*)
43*8b26181fSAndroid Build Coastguard Worker        mktempdir_diy "$mktempdir_prefix"
44*8b26181fSAndroid Build Coastguard Worker        ;;
45*8b26181fSAndroid Build Coastguard Worker    *)
46*8b26181fSAndroid Build Coastguard Worker        # At least Haiku, Linux and OpenBSD implementations require explicit
47*8b26181fSAndroid Build Coastguard Worker        # trailing X'es in the template, so make it the same suffix as above.
48*8b26181fSAndroid Build Coastguard Worker        mktemp -d -t "${mktempdir_prefix}.XXXXXXXX"
49*8b26181fSAndroid Build Coastguard Worker        ;;
50*8b26181fSAndroid Build Coastguard Worker    esac
51*8b26181fSAndroid Build Coastguard Worker}
52*8b26181fSAndroid Build Coastguard Worker
53*8b26181fSAndroid Build Coastguard Workerprint_sysinfo() {
54*8b26181fSAndroid Build Coastguard Worker    uname -a
55*8b26181fSAndroid Build Coastguard Worker    printf 'OS identification: '
56*8b26181fSAndroid Build Coastguard Worker    os_id
57*8b26181fSAndroid Build Coastguard Worker    date
58*8b26181fSAndroid Build Coastguard Worker}
59*8b26181fSAndroid Build Coastguard Worker
60*8b26181fSAndroid Build Coastguard Worker# Try to make the current C compiler print its version information (usually
61*8b26181fSAndroid Build Coastguard Worker# multi-line) to stdout.
62*8b26181fSAndroid Build Coastguard Workercc_version_nocache() {
63*8b26181fSAndroid Build Coastguard Worker    : "${CC:?}"
64*8b26181fSAndroid Build Coastguard Worker    case `basename "$CC"` in
65*8b26181fSAndroid Build Coastguard Worker    gcc*|egcc*|clang*)
66*8b26181fSAndroid Build Coastguard Worker        # GCC and Clang recognize --version, print to stdout and exit with 0.
67*8b26181fSAndroid Build Coastguard Worker        "$CC" --version
68*8b26181fSAndroid Build Coastguard Worker        ;;
69*8b26181fSAndroid Build Coastguard Worker    xl*)
70*8b26181fSAndroid Build Coastguard Worker        # XL C 12.1 and 13.1 recognize "-qversion", print to stdout and exit
71*8b26181fSAndroid Build Coastguard Worker        # with 0. XL C 12.1 on an unknown command-line flag displays its man
72*8b26181fSAndroid Build Coastguard Worker        # page and waits.
73*8b26181fSAndroid Build Coastguard Worker        # XL C 16.1 recognizes "-qversion" and "--version", prints to stdout
74*8b26181fSAndroid Build Coastguard Worker        # and exits with 0. Community Edition also prints a banner to stderr.
75*8b26181fSAndroid Build Coastguard Worker        "$CC" -qversion 2>/dev/null
76*8b26181fSAndroid Build Coastguard Worker        ;;
77*8b26181fSAndroid Build Coastguard Worker    sun*)
78*8b26181fSAndroid Build Coastguard Worker        # Sun compilers recognize -V, print to stderr and exit with an error.
79*8b26181fSAndroid Build Coastguard Worker        "$CC" -V 2>&1 || :
80*8b26181fSAndroid Build Coastguard Worker        ;;
81*8b26181fSAndroid Build Coastguard Worker    cc)
82*8b26181fSAndroid Build Coastguard Worker        case `os_id` in
83*8b26181fSAndroid Build Coastguard Worker        SunOS-*)
84*8b26181fSAndroid Build Coastguard Worker            # Most likely Sun C.
85*8b26181fSAndroid Build Coastguard Worker            "$CC" -V 2>&1 || :
86*8b26181fSAndroid Build Coastguard Worker            ;;
87*8b26181fSAndroid Build Coastguard Worker        Darwin-*)
88*8b26181fSAndroid Build Coastguard Worker            # Most likely Clang.
89*8b26181fSAndroid Build Coastguard Worker            "$CC" --version
90*8b26181fSAndroid Build Coastguard Worker            ;;
91*8b26181fSAndroid Build Coastguard Worker        Linux-*|FreeBSD-*|NetBSD-*|OpenBSD-*)
92*8b26181fSAndroid Build Coastguard Worker            # Most likely Clang or GCC.
93*8b26181fSAndroid Build Coastguard Worker            "$CC" --version
94*8b26181fSAndroid Build Coastguard Worker            ;;
95*8b26181fSAndroid Build Coastguard Worker        esac
96*8b26181fSAndroid Build Coastguard Worker        ;;
97*8b26181fSAndroid Build Coastguard Worker    *)
98*8b26181fSAndroid Build Coastguard Worker        "$CC" --version || "$CC" -V || :
99*8b26181fSAndroid Build Coastguard Worker        ;;
100*8b26181fSAndroid Build Coastguard Worker    esac
101*8b26181fSAndroid Build Coastguard Worker}
102*8b26181fSAndroid Build Coastguard Worker
103*8b26181fSAndroid Build Coastguard Workercc_version() {
104*8b26181fSAndroid Build Coastguard Worker    echo "${cc_version_cached:=`cc_version_nocache`}"
105*8b26181fSAndroid Build Coastguard Worker}
106*8b26181fSAndroid Build Coastguard Worker
107*8b26181fSAndroid Build Coastguard Workerprint_cc_version() {
108*8b26181fSAndroid Build Coastguard Worker    cc_version
109*8b26181fSAndroid Build Coastguard Worker    printf 'Compiler identification: '
110*8b26181fSAndroid Build Coastguard Worker    cc_id
111*8b26181fSAndroid Build Coastguard Worker}
112*8b26181fSAndroid Build Coastguard Worker
113*8b26181fSAndroid Build Coastguard Worker# For the current C compiler try to print a short and uniform identification
114*8b26181fSAndroid Build Coastguard Worker# string (such as "gcc-9.3.0") that is convenient to use in a case statement.
115*8b26181fSAndroid Build Coastguard Workercc_id_nocache() {
116*8b26181fSAndroid Build Coastguard Worker    cc_id_firstline=`cc_version | head -1`
117*8b26181fSAndroid Build Coastguard Worker    : "${cc_id_firstline:?}"
118*8b26181fSAndroid Build Coastguard Worker
119*8b26181fSAndroid Build Coastguard Worker    cc_id_guessed=`echo "$cc_id_firstline" | sed 's/^.*clang version \([0-9\.]*\).*$/clang-\1/'`
120*8b26181fSAndroid Build Coastguard Worker    if [ "$cc_id_firstline" != "$cc_id_guessed" ]; then
121*8b26181fSAndroid Build Coastguard Worker        echo "$cc_id_guessed"
122*8b26181fSAndroid Build Coastguard Worker        return
123*8b26181fSAndroid Build Coastguard Worker    fi
124*8b26181fSAndroid Build Coastguard Worker
125*8b26181fSAndroid Build Coastguard Worker    cc_id_guessed=`echo "$cc_id_firstline" | sed 's/^IBM XL C.*, V\([0-9\.]*\).*$/xlc-\1/'`
126*8b26181fSAndroid Build Coastguard Worker    if [ "$cc_id_firstline" != "$cc_id_guessed" ]; then
127*8b26181fSAndroid Build Coastguard Worker        echo "$cc_id_guessed"
128*8b26181fSAndroid Build Coastguard Worker        return
129*8b26181fSAndroid Build Coastguard Worker    fi
130*8b26181fSAndroid Build Coastguard Worker
131*8b26181fSAndroid Build Coastguard Worker    cc_id_guessed=`echo "$cc_id_firstline" | sed 's/^.* Sun C \([0-9\.]*\) .*$/suncc-\1/'`
132*8b26181fSAndroid Build Coastguard Worker    if [ "$cc_id_firstline" != "$cc_id_guessed" ]; then
133*8b26181fSAndroid Build Coastguard Worker        echo "$cc_id_guessed"
134*8b26181fSAndroid Build Coastguard Worker        return
135*8b26181fSAndroid Build Coastguard Worker    fi
136*8b26181fSAndroid Build Coastguard Worker
137*8b26181fSAndroid Build Coastguard Worker    # OpenBSD default GCC:
138*8b26181fSAndroid Build Coastguard Worker    # "gcc (GCC) 4.2.1 20070719"
139*8b26181fSAndroid Build Coastguard Worker    # RedHat GCC:
140*8b26181fSAndroid Build Coastguard Worker    # "gcc (GCC) 8.3.1 20190223 (Red Hat 8.3.1-2)"
141*8b26181fSAndroid Build Coastguard Worker    # "gcc (GCC) 10.3.1 20210422 (Red Hat 10.3.1-1)"
142*8b26181fSAndroid Build Coastguard Worker    # other GCC packages:
143*8b26181fSAndroid Build Coastguard Worker    # "sparc-sun-solaris2.9-gcc (GCC) 4.2.0 (gccfss)"
144*8b26181fSAndroid Build Coastguard Worker    # "gcc (GCC) 5.5.0"
145*8b26181fSAndroid Build Coastguard Worker    # "gcc (nb4 20200810) 7.5.0"
146*8b26181fSAndroid Build Coastguard Worker    # "gcc (OpenIndiana 7.5.0-il-0) 7.5.0"
147*8b26181fSAndroid Build Coastguard Worker    # "gcc (Debian 8.3.0-6) 8.3.0"
148*8b26181fSAndroid Build Coastguard Worker    # "gcc (Raspbian 8.3.0-6+rpi1) 8.3.0"
149*8b26181fSAndroid Build Coastguard Worker    # "egcc (GCC) 8.4.0"
150*8b26181fSAndroid Build Coastguard Worker    # "gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0"
151*8b26181fSAndroid Build Coastguard Worker    # "gcc (FreeBSD Ports Collection) 10.3.0"
152*8b26181fSAndroid Build Coastguard Worker    cc_id_guessed=`echo "$cc_id_firstline" | sed 's/^.* (.*) \([0-9\.]*\).*$/gcc-\1/'`
153*8b26181fSAndroid Build Coastguard Worker    if [ "$cc_id_firstline" != "$cc_id_guessed" ]; then
154*8b26181fSAndroid Build Coastguard Worker        echo "$cc_id_guessed"
155*8b26181fSAndroid Build Coastguard Worker        return
156*8b26181fSAndroid Build Coastguard Worker    fi
157*8b26181fSAndroid Build Coastguard Worker}
158*8b26181fSAndroid Build Coastguard Worker
159*8b26181fSAndroid Build Coastguard Workercc_id() {
160*8b26181fSAndroid Build Coastguard Worker    echo "${cc_id_cached:=`cc_id_nocache`}"
161*8b26181fSAndroid Build Coastguard Worker}
162*8b26181fSAndroid Build Coastguard Worker
163*8b26181fSAndroid Build Coastguard Worker# Call this function each time CC has changed.
164*8b26181fSAndroid Build Coastguard Workerdiscard_cc_cache() {
165*8b26181fSAndroid Build Coastguard Worker    cc_version_cached=
166*8b26181fSAndroid Build Coastguard Worker    cc_id_cached=
167*8b26181fSAndroid Build Coastguard Worker}
168*8b26181fSAndroid Build Coastguard Worker
169*8b26181fSAndroid Build Coastguard Worker# For the current C compiler try to print CFLAGS value that tells to treat
170*8b26181fSAndroid Build Coastguard Worker# warnings as errors.
171*8b26181fSAndroid Build Coastguard Workercc_werr_cflags() {
172*8b26181fSAndroid Build Coastguard Worker    case `cc_id` in
173*8b26181fSAndroid Build Coastguard Worker    gcc-*|clang-*)
174*8b26181fSAndroid Build Coastguard Worker        echo '-Werror'
175*8b26181fSAndroid Build Coastguard Worker        ;;
176*8b26181fSAndroid Build Coastguard Worker    xlc-*)
177*8b26181fSAndroid Build Coastguard Worker        # XL C 12.1 and 13.1 recognize "-qhalt=w". XL C 16.1 recognizes that
178*8b26181fSAndroid Build Coastguard Worker        # and "-Werror".
179*8b26181fSAndroid Build Coastguard Worker        echo '-qhalt=w'
180*8b26181fSAndroid Build Coastguard Worker        ;;
181*8b26181fSAndroid Build Coastguard Worker    suncc-*)
182*8b26181fSAndroid Build Coastguard Worker        echo '-errwarn=%all'
183*8b26181fSAndroid Build Coastguard Worker        ;;
184*8b26181fSAndroid Build Coastguard Worker    esac
185*8b26181fSAndroid Build Coastguard Worker}
186*8b26181fSAndroid Build Coastguard Worker
187*8b26181fSAndroid Build Coastguard Worker# Tell whether "gcc" is a symlink to Clang (this is the case on macOS).
188*8b26181fSAndroid Build Coastguard Workergcc_is_clang_in_disguise() {
189*8b26181fSAndroid Build Coastguard Worker    case `cc_id`/`basename "${CC:?}"` in
190*8b26181fSAndroid Build Coastguard Worker    clang-*/gcc)
191*8b26181fSAndroid Build Coastguard Worker        return 0
192*8b26181fSAndroid Build Coastguard Worker        ;;
193*8b26181fSAndroid Build Coastguard Worker    esac
194*8b26181fSAndroid Build Coastguard Worker    return 1
195*8b26181fSAndroid Build Coastguard Worker}
196*8b26181fSAndroid Build Coastguard Worker
197*8b26181fSAndroid Build Coastguard Workeros_id() {
198*8b26181fSAndroid Build Coastguard Worker    # OS does not change between builds or in the middle of a build, so it is
199*8b26181fSAndroid Build Coastguard Worker    # fine to cache uname output.
200*8b26181fSAndroid Build Coastguard Worker    : "${os_id_sysname:=`uname -s`}"
201*8b26181fSAndroid Build Coastguard Worker    printf '%s-' "$os_id_sysname"
202*8b26181fSAndroid Build Coastguard Worker    : "${os_id_release:=`uname -r`}"
203*8b26181fSAndroid Build Coastguard Worker    case "$os_id_sysname" in
204*8b26181fSAndroid Build Coastguard Worker    AIX)
205*8b26181fSAndroid Build Coastguard Worker        : "${os_id_version:=`uname -v`}"
206*8b26181fSAndroid Build Coastguard Worker        echo "${os_id_version}.${os_id_release}"
207*8b26181fSAndroid Build Coastguard Worker        ;;
208*8b26181fSAndroid Build Coastguard Worker    Darwin|NetBSD|OpenBSD|SunOS)
209*8b26181fSAndroid Build Coastguard Worker        echo "$os_id_release"
210*8b26181fSAndroid Build Coastguard Worker        ;;
211*8b26181fSAndroid Build Coastguard Worker    FreeBSD|Linux)
212*8b26181fSAndroid Build Coastguard Worker        # Meaningful version is usually the substring before the first dash.
213*8b26181fSAndroid Build Coastguard Worker        echo "$os_id_release" | sed 's/^\([0-9\.]*\).*$/\1/'
214*8b26181fSAndroid Build Coastguard Worker        ;;
215*8b26181fSAndroid Build Coastguard Worker    Haiku)
216*8b26181fSAndroid Build Coastguard Worker        # Meaningful version is the substring before the plus sign.
217*8b26181fSAndroid Build Coastguard Worker        # "hrev55181" stands for "R1/beta3".
218*8b26181fSAndroid Build Coastguard Worker        # "hrev54154" stands for "R1/beta2".
219*8b26181fSAndroid Build Coastguard Worker        : "${os_id_version:=`uname -v`}"
220*8b26181fSAndroid Build Coastguard Worker        echo "$os_id_version" | sed 's/^\(hrev.*\)+.*$/\1/'
221*8b26181fSAndroid Build Coastguard Worker        ;;
222*8b26181fSAndroid Build Coastguard Worker    *)
223*8b26181fSAndroid Build Coastguard Worker        echo 'UNKNOWN'
224*8b26181fSAndroid Build Coastguard Worker        ;;
225*8b26181fSAndroid Build Coastguard Worker    esac
226*8b26181fSAndroid Build Coastguard Worker}
227*8b26181fSAndroid Build Coastguard Worker
228*8b26181fSAndroid Build Coastguard Workerincrement() {
229*8b26181fSAndroid Build Coastguard Worker    # No arithmetic expansion in Solaris /bin/sh before 11.
230*8b26181fSAndroid Build Coastguard Worker    echo "${1:?} + 1" | bc
231*8b26181fSAndroid Build Coastguard Worker}
232*8b26181fSAndroid Build Coastguard Worker
233*8b26181fSAndroid Build Coastguard Worker# Display text in magenta.
234*8b26181fSAndroid Build Coastguard Workerecho_magenta() {
235*8b26181fSAndroid Build Coastguard Worker    # ANSI magenta, the imploded text, ANSI reset, newline.
236*8b26181fSAndroid Build Coastguard Worker    printf '\033[35;1m%s\033[0m\n' "$*"
237*8b26181fSAndroid Build Coastguard Worker}
238*8b26181fSAndroid Build Coastguard Worker
239*8b26181fSAndroid Build Coastguard Worker# Run a command after displaying it.
240*8b26181fSAndroid Build Coastguard Workerrun_after_echo() {
241*8b26181fSAndroid Build Coastguard Worker    : "${1:?}" # Require at least one argument.
242*8b26181fSAndroid Build Coastguard Worker    printf '$ %s\n' "$*"
243*8b26181fSAndroid Build Coastguard Worker    "$@"
244*8b26181fSAndroid Build Coastguard Worker}
245*8b26181fSAndroid Build Coastguard Worker
246*8b26181fSAndroid Build Coastguard Workerprint_so_deps() {
247*8b26181fSAndroid Build Coastguard Worker    case `os_id` in
248*8b26181fSAndroid Build Coastguard Worker    Darwin-*)
249*8b26181fSAndroid Build Coastguard Worker        run_after_echo otool -L "${1:?}"
250*8b26181fSAndroid Build Coastguard Worker        ;;
251*8b26181fSAndroid Build Coastguard Worker    *)
252*8b26181fSAndroid Build Coastguard Worker        run_after_echo ldd "${1:?}"
253*8b26181fSAndroid Build Coastguard Worker        ;;
254*8b26181fSAndroid Build Coastguard Worker    esac
255*8b26181fSAndroid Build Coastguard Worker}
256*8b26181fSAndroid Build Coastguard Worker
257*8b26181fSAndroid Build Coastguard Worker# Beware that setting MATRIX_DEBUG for tcpdump or tcpslice will produce A LOT
258*8b26181fSAndroid Build Coastguard Worker# of additional output there and in any nested libpcap builds. Multiplied by
259*8b26181fSAndroid Build Coastguard Worker# the matrix size, the full output log size might exceed limits of some CI
260*8b26181fSAndroid Build Coastguard Worker# systems (as it had previously happened with Travis CI). Use with caution on
261*8b26181fSAndroid Build Coastguard Worker# a reduced matrix.
262*8b26181fSAndroid Build Coastguard Workerhandle_matrix_debug() {
263*8b26181fSAndroid Build Coastguard Worker    [ "$MATRIX_DEBUG" != yes ] && return
264*8b26181fSAndroid Build Coastguard Worker    echo '$ cat Makefile [...]'
265*8b26181fSAndroid Build Coastguard Worker    sed '/^# DO NOT DELETE THIS LINE -- mkdep uses it.$/q' <Makefile
266*8b26181fSAndroid Build Coastguard Worker    run_after_echo cat config.h
267*8b26181fSAndroid Build Coastguard Worker    [ "$CMAKE" = yes ] || run_after_echo cat config.log
268*8b26181fSAndroid Build Coastguard Worker}
269*8b26181fSAndroid Build Coastguard Worker
270*8b26181fSAndroid Build Coastguard Workerpurge_directory() {
271*8b26181fSAndroid Build Coastguard Worker    if [ "`os_id`" = SunOS-5.11 ]; then
272*8b26181fSAndroid Build Coastguard Worker        # In Solaris 11 /bin/sh the pathname expansion of "*" always includes
273*8b26181fSAndroid Build Coastguard Worker        # "." and "..", so the straightforward rm would always fail.
274*8b26181fSAndroid Build Coastguard Worker        (
275*8b26181fSAndroid Build Coastguard Worker            cd "${1:?}"
276*8b26181fSAndroid Build Coastguard Worker            for pd_each in *; do
277*8b26181fSAndroid Build Coastguard Worker                if [ "$pd_each" != . ] && [ "$pd_each" != .. ]; then
278*8b26181fSAndroid Build Coastguard Worker                    rm -rf "$pd_each"
279*8b26181fSAndroid Build Coastguard Worker                fi
280*8b26181fSAndroid Build Coastguard Worker            done
281*8b26181fSAndroid Build Coastguard Worker        )
282*8b26181fSAndroid Build Coastguard Worker    else
283*8b26181fSAndroid Build Coastguard Worker        rm -rf "${1:?}"/*
284*8b26181fSAndroid Build Coastguard Worker    fi
285*8b26181fSAndroid Build Coastguard Worker}
286*8b26181fSAndroid Build Coastguard Worker
287*8b26181fSAndroid Build Coastguard Worker# vi: set tabstop=4 softtabstop=0 expandtab shiftwidth=4 smarttab autoindent :
288