Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1467 alewis 1
# Force failed command to exit this shell - all commands must report success
2
set -e
3
echo
4
echo
5
 
6
 
7
 
8
#------------------------------------------------------------------------------
9
# Takes $1 and removes all relative paths (. and ..) from it.  The cleaned up
10
# directory is written to stdout.
11
#------------------------------------------------------------------------------
12
function cleanup_dir
13
{
14
    DIR_PARTS=`echo $1 | sed "s|/| |g"`
15
 
16
    CLEANUP_DIR=""
17
    for PART in ${DIR_PARTS}; do
18
        if [ "${PART}" != "." ]; then
19
 
20
            if [ "${PART}" == ".." ]; then
21
                CLEANUP_DIR=`echo "${CLEANUP_DIR}" | sed "s|/[^/]*$||"`
22
            else
23
                CLEANUP_DIR="${CLEANUP_DIR}/${PART}"
24
            fi
25
        fi
26
    done
27
 
28
    echo ${CLEANUP_DIR}
29
} 
30
 
31
 
32
 
33
 
34
#------------------------------------------------------------------------------
35
# Extract arguments - order not important except that the first argument is
36
# the launch script
37
#------------------------------------------------------------------------------
38
unset CLEAN
39
unset DOWNLOAD_PKG
40
unset DOWNLOAD_PKG_AUTO
41
unset XGCC_IN_PATH
42
unset DEBIAN_PACKAGE
43
unset APPLY_PATCHES
44
unset APPLY_MODS
1469 alewis 45
unset CONFIG_VARIENT
1477 dpurdie 46
unset WORK_DIR_NAME
1467 alewis 47
for arg in "$@" ; do
48
    val=${arg##*=}
49
    tag=${arg%%=*}
50
    case $tag in
51
        -clean)                 CLEAN=1;;
52
        -XGccInPath)            XGCC_IN_PATH=1;;
53
        -ShellBuild)            SHELL_BUILD="$val";;
54
        -BuildName)             BUILD_NAME=$val;;
55
        -BuildVersion)          BUILD_VERSION=$val;;
56
        -Platform)              PLATFORM=$val;;
57
        -Type)                  TYPE=$val;;
58
        -Arch)                  ARCH=$val;;
59
        -MachType)              MACHTYPE=$val;;
60
        -BuildRoot)             BUILD_ROOT=$val;;
1475 dpurdie 61
        -InterfaceDir)          INTERFACE_DIR=$val;;
62
        -LocalDir)              LOCAL_DIR=$val;;
1477 dpurdie 63
        -LocalIncDir)           LOCAL_INC_DIR=$val;;
64
        -LocalBinDir)           LOCAL_BIN_DIR=$val;;
65
        -LocalLibDir)           LOCAL_LIB_DIR=$val;;
1469 alewis 66
        -BinDir)                BIN_DIR=$val;;
67
        -LibDir)                LIB_DIR=$val;;
68
        -ObjDir)                OBJ_DIR=$val;;
1467 alewis 69
        -PackageBinDir)         PKG_BIN_DIR=$val;;
70
        -PackageIncDir)         PKG_INC_DIR=$val;;
71
        -PackageLibDir)         PKG_LIB_DIR=$val;;
72
        -PackagePkgDir)         PKG_PKG_DIR=$val;;
73
        -PackageToolDir)        PKG_TOOL_DIR=$val;;
74
        -PackageToolBin)        PKG_TOOL_BIN_DIR=$val;;
75
        -PackageToolScript)     PKG_TOOL_SCRIPT_DIR=$val;;
76
        -PackageDir)            PKG_DIR=$val;;
77
        -CompilerPath)          COMPILER_DIR="$val";;
78
        -DownloadPkg)           DOWNLOAD_PKG="$val";;
1475 dpurdie 79
        -DebianPackage)         DEBIAN_PACKAGE=$val;;
1467 alewis 80
        -ApplyPatches)          APPLY_PATCHES=1;;
81
        -ApplyMods)             APPLY_MODS=1;;
1469 alewis 82
        -ConfigVarient)         CONFIG_VARIENT=$val;;
1477 dpurdie 83
        -WorkDir)               WORK_DIR_NAME=$val;;
1467 alewis 84
        *)                      echo "Unknown tag: $tag=$val"
85
    esac
86
done
87
 
88
if [ "${DOWNLOAD_PKG}" == "-DownloadPkg" ]; then
89
    DOWNLOAD_PKG_NAME=${BUILD_NAME}
90
    DOWNLOAD_PKG_VER=`echo ${BUILD_VERSION} | sed "s|\.[0-9]\+\.cots||"`
91
    DOWNLOAD_PKG=${DOWNLOAD_PKG_NAME}-${DOWNLOAD_PKG_VER}
92
else
93
    DOWNLOAD_PKG_VER=`echo ${DOWNLOAD_PKG} | sed "s|.*-||"`    
94
    DOWNLOAD_PKG_NAME=`echo ${DOWNLOAD_PKG} | sed "s|-${DOWNLOAD_PKG_VER}||"`    
95
fi
96
 
97
 
98
#------------------------------------------------------------------------------
99
# Dump JATS information for debugging purposes
100
#------------------------------------------------------------------------------
101
echo "================================================================================"
102
echo "   JATS SUPPLIED FIELDS"
103
echo "================================================================================"
104
echo " ShellBuild     = ${SHELL_BUILD}"
105
echo " BuildName      = ${BUILD_NAME} ${BUILD_VERSION}"
106
echo " Platform       = ${PLATFORM}"
107
echo " Type           = ${TYPE}"
108
echo " Arch           = ${ARCH}"
109
echo " MachType       = ${MACHTYPE}"
110
echo " BuildRoot      = ${BUILD_ROOT}"
1475 dpurdie 111
#echo " InterfaceDir   = ${INTERFACE_DIR}"
112
#echo " LocalDir       = ${LOCAL_DIR}"
1467 alewis 113
if [ ${DOWNLOAD_PKG} ]; then
114
    echo " DownloadPkg    = ${DOWNLOAD_PKG}"
115
fi    
1469 alewis 116
echo " BinDir         = ${BIN_DIR}"
117
echo " LibDir         = ${LIB_DIR}"
118
echo " ObjDir         = ${OBJ_DIR}"
1475 dpurdie 119
echo " PkgDir         = ${PKG_DIR}"
1467 alewis 120
echo " PackageBinDir  = ${PKG_BIN_DIR}"
121
echo " PackageIncDir  = ${PKG_INC_DIR}"
122
echo " PackageLibDir  = ${PKG_LIB_DIR}"
123
echo " PackagePkgDir  = ${PKG_PKG_DIR}"
124
echo " CompilerDir    = ${COMPILER_DIR}"
125
echo "================================================================================"
126
echo
127
echo
128
 
129
 
130
#------------------------------------------------------------------------------
131
# Determine host and build environments
132
#------------------------------------------------------------------------------
133
case ${MACHTYPE} in
134
    linux_i386)  
135
        COMPILE_BUILD="i386-cross-linux-gnu"
136
        ;;
137
    *)      
138
        echo "Unknown MACHTYPE=${MACHTYPE}"
139
        exit 1
140
        ;;
141
esac
142
 
143
case ${ARCH} in
144
    *603E*|*powerpc*)  
145
        COMPILE_HOST="powerpc-603e-linux-gnu"
146
        LINUX_HOST_ARCH=powerpc
147
        ;;
148
 
1469 alewis 149
    ARMV9*)  
150
        COMPILE_HOST="arm-9tdmi-linux-gnu"
151
        ;;
152
 
1467 alewis 153
    *I386*)
1469 alewis 154
        if [ "${PLATFORM}" == "LINUX_I386" ]; then
155
            COMPILE_HOST="i386-cross-linux-gnu"
156
        else
157
            COMPILE_HOST="i586-unknown-linux-gnu"
158
        fi
1467 alewis 159
        LINUX_HOST_ARCH=x86
160
        ;;
161
 
1477 dpurdie 162
    *)
1467 alewis 163
        echo "Unknown ARCH=${ARCH}"
164
        exit 1
165
        ;;
166
esac
167
 
168
# Setup the location of the cross compiler
1469 alewis 169
if [ "${COMPILE_HOST}" == "i386-redhat-linux" ] || [ "${COMPILER_DIR}" == "gcc" ]; then
1467 alewis 170
    XGCC_BASE_DIR=
171
    XGCC_DIR=
172
    XGCC=gcc
173
else
174
    XGCC_BASE_DIR=`echo ${COMPILER_DIR} | sed 's|/[^/]*/[^/]*$||'`
175
    XGCC_BASE_DIR=`cleanup_dir ${XGCC_BASE_DIR}`
176
    XGCC_DIR=${XGCC_BASE_DIR}/${COMPILE_HOST}
177
    XGCC=${XGCC_DIR}/bin/gcc
178
fi
179
 
180
# Determine the location of the generated files
181
CWD=`pwd`
1469 alewis 182
BIN_DIR=`cleanup_dir ${CWD}/${BIN_DIR}`
183
LIB_DIR=`cleanup_dir ${CWD}/${LIB_DIR}`
184
OBJ_DIR=`cleanup_dir ${CWD}/${OBJ_DIR}`
1475 dpurdie 185
PKG_DIR=`cleanup_dir ${CWD}/${PKG_DIR}`
1467 alewis 186
PKG_BIN_DIR=`cleanup_dir ${CWD}/${PKG_BIN_DIR}`
187
PKG_INC_DIR=`cleanup_dir ${CWD}/${PKG_INC_DIR}`
188
PKG_LIB_DIR=`cleanup_dir ${CWD}/${PKG_LIB_DIR}`
189
PKG_PKG_DIR=`cleanup_dir ${CWD}/${PKG_PKG_DIR}`
190
 
191
PKG_TOOL_DIR=`cleanup_dir ${CWD}/${PKG_TOOL_DIR}`
192
PKG_TOOL_BIN_DIR=`cleanup_dir ${CWD}/${PKG_TOOL_BIN_DIR}`
193
PKG_TOOL_SCRIPT_DIR=`cleanup_dir ${CWD}/${PKG_TOOL_SCRIPT_DIR}`
194
 
195
BASE_DIR=`cleanup_dir ${CWD}/${BUILD_ROOT}`
1475 dpurdie 196
INTERFACE_DIR=`cleanup_dir ${CWD}/${INTERFACE_DIR}`
197
LOCAL_DIR=`cleanup_dir ${CWD}/${LOCAL_DIR}`
1477 dpurdie 198
LOCAL_INC_DIR=`cleanup_dir ${CWD}/${LOCAL_INC_DIR}`
199
LOCAL_BIN_DIR=`cleanup_dir ${CWD}/${LOCAL_BIN_DIR}`
200
LOCAL_LIB_DIR=`cleanup_dir ${CWD}/${LOCAL_LIB_DIR}`
1469 alewis 201
LCL_SRC_DIR=${BASE_DIR}/src
202
SHARE_SRC_DIR=${LCL_SRC_DIR}
203
SHARE_BASE_DIR=${BASE_DIR}
1467 alewis 204
 
1469 alewis 205
DEB_PKG_DIR=${LIB_DIR}
206
AFC_DIR=${DEB_PKG_DIR}/afc
207
AFC_BIN_DIR=${AFC_DIR}/bin
208
AFC_LIB_DIR=${AFC_DIR}/lib
209
AFC_SHARE_DIR=${AFC_DIR}/share
210
 
1475 dpurdie 211
DEB_DIR=`cleanup_dir ${CWD}/${DEBIAN_PACKAGE}`
1469 alewis 212
 
1467 alewis 213
# Find the launch script
1469 alewis 214
LAUNCH_SCRIPT=`cleanup_dir ${LCL_SRC_DIR}/${SHELL_BUILD}`
1467 alewis 215
 
216
if [ ! -f ${LAUNCH_SCRIPT} ]; then
217
    echo "Specified shell build script ${LAUNCH_SCRIPT} does not exist."
218
    exit 1
219
fi
220
 
221
if [ ${DOWNLOAD_PKG} ]; then
1469 alewis 222
 
223
    # This is the set of available download directories, consisting of downloads/
224
    # and a download directory that is offset from the location of the build
225
    # script src directory.
226
    unset TAR_DECOMP_ARG
227
    TMP=`echo ${SHELL_BUILD} | sed "s|/src/.*||"`
228
    TMP=`cleanup_dir ${CWD}/${TMP}`
229
    DOWNLOAD_DIRS="${TMP} ${BASE_DIR}"
230
    for DDIR in ${DOWNLOAD_DIRS}; do
231
        TMP=${DDIR}/downloads/${DOWNLOAD_PKG}.tar.bz2
232
        if [ -e ${TMP} ]; then
233
            TARBALL_FILE=${TMP}
234
            SHARE_SRC_DIR=${DDIR}/src
235
            SHARE_BASE_DIR=${DDIR}
236
            TAR_DECOMP_ARG=j
1467 alewis 237
        else
1469 alewis 238
            TMP=${DDIR}/downloads/${DOWNLOAD_PKG}.tar.gz
239
            if [ -e ${TMP} ]; then
240
                TARBALL_FILE=${TMP}
241
                SHARE_SRC_DIR=${DDIR}/src
242
                SHARE_BASE_DIR=${DDIR}
1467 alewis 243
                TAR_DECOMP_ARG=z
244
            else
1469 alewis 245
                TMP=${DDIR}/downloads/${DOWNLOAD_PKG}.tgz
246
                if [ -e ${TMP} ]; then
247
                    TARBALL_FILE=${TMP}
248
                    SHARE_SRC_DIR=${DDIR}/src
249
                    SHARE_BASE_DIR=${DDIR}
250
                    TAR_DECOMP_ARG=z
251
                fi
1467 alewis 252
            fi
1469 alewis 253
        fi    
254
    done
255
    if [ "${TAR_DECOMP_ARG}" == "" ]; then
256
        echo "Could not find download file ${DOWNLOAD_PKG}.<tar.gz|tar.bz2|tgz> in any of { ${DOWNLOAD_DIRS} }"
257
        exit 1
258
    fi
259
    WORK_DIR=${LCL_SRC_DIR}/${DOWNLOAD_PKG}
1467 alewis 260
else
1469 alewis 261
    WORK_DIR=${LCL_SRC_DIR}/work
1467 alewis 262
fi
263
 
1475 dpurdie 264
#
1477 dpurdie 265
#   Setup WORK_DIR
266
#   This can be deduced from the tar-file, but in some cases the name
267
#   must be specified
268
#
269
if [ ${WORK_DIR_NAME} ]; then
270
    WORK_DIR=${LCL_SRC_DIR}/${WORK_DIR_NAME}
271
fi
272
 
273
#
1475 dpurdie 274
#   Extend compiler and linker search paths to access data within
275
#   packages imported via BuildPkgArchive
276
#
277
#   Include the packageing directory - its used for builds that
278
#   build multiple packages.
279
#
280
#   Only include paths that exist
281
#
282
INCLUDE=
283
LIBPATH=
1467 alewis 284
 
1475 dpurdie 285
DJOIN=""
286
DLIST="
287
${PKG_INC_DIR}
288
${LOCAL_DIR}/inc
289
${INTERFACE_DIR}/include/${PLATFORM}
290
${INTERFACE_DIR}/include
291
"
292
for dtest in ${DLIST} ; do
293
    if [ -d $dtest ] ; then
294
        INCLUDE="${INCLUDE}${DJOIN}-I$dtest"
295
        DJOIN=" "
296
    fi
297
done
1467 alewis 298
 
1475 dpurdie 299
DJOIN=""
300
DLIST="
301
${PKG_LIB_DIR}
302
${LOCAL_DIR}/lib/${PLATFORM}
303
${INTERFACE_DIR}/lib/${PLATFORM}
304
"
305
for dtest in ${DLIST} ; do
306
    if [ -d $dtest ] ; then
307
        LIBPATH="${LIBPATH}${DJOIN}-L$dtest"
308
        DJOIN=" "
309
    fi
310
done
1467 alewis 311
 
312
# Dump configuration
313
echo "================================================================================"
314
echo "   BUILD CONFIGURATION"
315
echo "================================================================================"
316
echo " Compile Host   = ${COMPILE_HOST}"
317
echo " Compile Build  = ${COMPILE_BUILD}"
318
echo " XGCC Base Dir  = ${XGCC_BASE_DIR}"
319
echo " XGCC Dir       = ${XGCC_DIR}"
320
echo " XGCC           = ${XGCC}"
321
echo " Base Dir       = ${BASE_DIR}"
1477 dpurdie 322
 
323
if [ ${WORK_DIR_NAME} ]; then
324
    echo " Work Dir Name  = ${WORK_DIR_NAME}"
325
fi  
326
 
1467 alewis 327
if [ ${DOWNLOAD_PKG} ]; then
328
    echo " Tarball File   = ${TARBALL_FILE}"
329
    echo " Working Dir    = ${WORK_DIR}"
1477 dpurdie 330
fi
331
 
332
TITLE="Includes       ="
1475 dpurdie 333
for INC in ${INCLUDE}; do
1477 dpurdie 334
        echo " ${TITLE} ${INC}"
335
        TITLE="                "
1469 alewis 336
done
1477 dpurdie 337
 
338
TITLE="Library Path   ="
339
for INC in ${LIBPATH}; do
340
        echo " ${TITLE} ${LIB}"
341
        TITLE="                "
1469 alewis 342
done
1477 dpurdie 343
 
344
if [ ${DEBIAN_PACKAGE} ]; then
345
    echo " Debian Package = ${DEB_PKG_DIR}"
346
fi
347
 
1467 alewis 348
echo " Launch Script  = ${LAUNCH_SCRIPT}"
349
echo "================================================================================"
350
echo
351
echo
352
 
353
# Prepare the environment
354
echo " --> Preparing environment"
355
 
356
LIBTOOL=libtool
357
export LIBTOOL
358
 
1473 dpurdie 359
unset CC
360
unset CXX
361
unset CPP
362
unset CPPFLAGS
363
unset LD_LIBRARY_PATH
364
export CC CXX CPP CPPFLAGS LD_LIBRARY_PATH
365
 
1467 alewis 366
unset MAKE
367
unset MAKEFLAGS
368
unset MAKEOVERRIDES
369
unset MAKELEVEL
1473 dpurdie 370
export CFLAGS="${CFLAGS} ${INCLUDE}"
1475 dpurdie 371
export CXXFLAGS="${CXXFLAGS} ${INCLUDE}"
1473 dpurdie 372
export CCFLAGS="${CCFLAGS} ${INCLUDE}"
1467 alewis 373
export LDFLAGS="${LDFLAGS} ${LIBPATH}"
374
 
375
if [ ${XGCC_IN_PATH} ]; then
376
    export PATH="${XGCC_DIR}/bin:${PATH}"
1469 alewis 377
else
378
    export PATH="${XGCC_BASE_DIR}/bin:${PATH}"
1467 alewis 379
fi
380
 
1475 dpurdie 381
 
382
#
383
#   Clean up request
384
#   No building - just a clean of previous builds
385
#
1467 alewis 386
if [ ${CLEAN} ]; then
387
    if [ ${DOWNLOAD_PKG} ]; then
388
        echo " --> Cleaning generated files"
389
        cd ${BASE_DIR}
390
        rm -fr ${WORK_DIR}
391
    fi        
1469 alewis 392
 
393
    echo " --> Deleting binary, object, and library directories"
394
    rm -fr ${BIN_DIR}
395
    rm -fr ${LIB_DIR}
396
    rm -fr ${OBJ_DIR}
1475 dpurdie 397
 
398
    if [ ${DEBIAN_PACKAGE} ]; then
399
        echo " --> Deleting Debian Build Files "
400
        rm -fr ${DEB_DIR}
401
    fi
1469 alewis 402
 
1467 alewis 403
    exit 0
404
fi
405
 
406
 
407
if [ ${DOWNLOAD_PKG} ]; then
408
    echo " --> Deleting existing build objects directory"
409
    rm -fr ${WORK_DIR}
410
fi    
411
 
412
 
413
echo " --> Creating package directories"
414
mkdir -p ${PKG_BIN_DIR}
415
mkdir -p ${PKG_INC_DIR}
416
mkdir -p ${PKG_LIB_DIR}
417
mkdir -p ${PKG_PKG_DIR}
418
mkdir -p ${AFC_DIR}
419
mkdir -p ${AFC_BIN_DIR}
420
mkdir -p ${AFC_LIB_DIR}
421
mkdir -p ${AFC_SHARE_DIR}
422
mkdir -p ${PKG_TOOL_DIR}
423
mkdir -p ${PKG_TOOL_BIN_DIR}
424
mkdir -p ${PKG_TOOL_SCRIPT_DIR}
425
 
426
 
427
if [ ${DOWNLOAD_PKG} ]; then
428
    echo " --> Extracting ${DOWNLOAD_PKG}"
1469 alewis 429
    cd ${LCL_SRC_DIR}
1467 alewis 430
    tar -x${TAR_DECOMP_ARG}pf ${TARBALL_FILE}
431
 
432
    cd ${WORK_DIR}
1469 alewis 433
    PATCHES_DIR=${SHARE_BASE_DIR}/patches
1467 alewis 434
    if [ -d ${PATCHES_DIR} ]; then
1471 alewis 435
        PATCHES=`cd ${PATCHES_DIR} && find . -name "*.patch" | sort`
1467 alewis 436
        if [ "${PATCHES}" != "" ]; then
437
            echo " --> Apply external patches"
438
            for PATCH in ${PATCHES}; do
1471 alewis 439
                if patch -p1 < ${PATCHES_DIR}/${PATCH}; then
1467 alewis 440
                    echo "Applied patch ${PATCH}"
441
                    echo ""
442
                else
443
                    echo "Patch ${PATCH} failed"
444
                    exit 1
445
                fi
446
            done    
447
        fi
448
    fi
449
 
450
    cd ${WORK_DIR}
1469 alewis 451
    MODS_DIR=${SHARE_BASE_DIR}/${DOWNLOAD_PKG_NAME}_${DOWNLOAD_PKG_VER}_mods
1467 alewis 452
    if [ -d ${MODS_DIR} ]; then
453
        echo " --> Applying modifications"
454
        cp -fr ${MODS_DIR}/* .
455
        ERG_CONFIG=${MODS_DIR}/ERG.config
456
        if [ -f ${ERG_CONFIG} ]; then
457
            cp -fr ${ERG_CONFIG} .config
458
        fi
459
    fi
460
 
461
    cd ${WORK_DIR}
1475 dpurdie 462
fi
1467 alewis 463
 
1475 dpurdie 464
#
465
#   Source the users script
466
#   This is processed in the context of this script
467
#
1467 alewis 468
source ${LAUNCH_SCRIPT}
469
 
470
 
471
if [ ${DEBIAN_PACKAGE} ]; then 
472
    echo " --> Creating Debian packaging scripts"
473
    unset TOOL_DIR
474
    for DIR in `echo ${PATH} | sed "s|\:| |g"`; do
475
        if [ -f ${DIR}/debbuild.pl ]; then
476
            TOOL_DIR=`cleanup_dir ${DIR}`
477
        fi
478
    done
479
    if [ ${TOOL_DIR} ]; then
480
        DEBBUILD_PL=${TOOL_DIR}/debbuild.pl
1469 alewis 481
        echo "      - Found ${DEBBUILD_PL}"
1467 alewis 482
 
483
        rm -fr ${DEB_DIR}
484
        mkdir -p ${DEB_DIR}
1475 dpurdie 485
 
486
        # Replace TAGS in the debbuild.pl file
1467 alewis 487
        DEB_DESC="${BUILD_NAME} ${BUILD_VERSION} for ${PLATFORM}"
1475 dpurdie 488
        cat ${DEBBUILD_PL} | sed "-es|TAG_DESCRIPTION|${DEB_DESC}|" "-es|TAG_POSTINSTALL|${DEB_DIR}/postinstall|" > ${DEB_DIR}/debbuild.pl
1467 alewis 489
        cp ${TOOL_DIR}/postinstall ${DEB_DIR}/postinstall
490
    else
491
        echo "ERROR: Cannot find debbuild.pl in the PATH"
492
        exit 1
493
    fi
494
fi    
495
 
1469 alewis 496
echo " --> Removing unnecesary files resulting from the make install"
1477 dpurdie 497
if [ -d ${PKG_LIB_DIR} ] ; then
498
    DEL_FILES=`find ${PKG_LIB_DIR} -type f -name '*.la'`
499
    for FILE in ${DEL_FILES}; do
500
            echo "      - Deleting ${FILE}"
501
            rm -f ${FILE}
502
    done
503
fi
1469 alewis 504
 
505
echo " --> Cleaning up empty directories"
506
# Deletes directory $1 if it does not contain any other files or directories
507
function rmdir_empty()
508
{
1477 dpurdie 509
    if [ -d "$1" ] ; then
510
        # -A = do not list . and ..
511
        # -Q = enclose entry names in double quotes
512
        # -l = list one file per line
513
        # -F = appends each directory with a '/' 
514
        DIRS=`ls -A -Q -l -F "$1" | grep "\".*\"\/" | sed "s|.* \"||" | sed "s|\"\/||"`
515
        for DIR in ${DIRS}; do
516
            rmdir_empty $1/${DIR}
517
        done
1469 alewis 518
 
1477 dpurdie 519
        LS=`ls -A -Q -l -F "$1" | grep "\"" | sed "s|^.* \"||" | sed "s|\".*||"`
520
        if [ "${LS}" == "" ]; then
521
            rmdir $1
522
        fi
1469 alewis 523
    fi
524
}
1477 dpurdie 525
 
1469 alewis 526
rmdir_empty ${DEB_PKG_DIR}
527
rmdir_empty ${BASE_DIR}/pkg
528
 
1473 dpurdie 529
echo " --> End of ShellBuild"
1469 alewis 530