Subversion Repositories DevTools

Rev

Rev 1481 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1481 Rev 1483
Line 36... Line 36...
36
# the launch script
36
# the launch script
37
#------------------------------------------------------------------------------
37
#------------------------------------------------------------------------------
38
unset CLEAN
38
unset CLEAN
39
unset DOWNLOAD_PKG
39
unset DOWNLOAD_PKG
40
unset DOWNLOAD_PKG_AUTO
40
unset DOWNLOAD_PKG_AUTO
41
unset XGCC_IN_PATH
-
 
42
unset DEBIAN_PACKAGE
41
unset DEBIAN_PACKAGE
43
unset APPLY_PATCHES
42
unset APPLY_PATCHES
44
unset APPLY_MODS
43
unset APPLY_MODS
45
unset CONFIG_VARIENT
44
unset CONFIG_VARIENT
46
unset WORK_DIR_NAME
45
unset WORK_DIR_NAME
-
 
46
unset XGCC_IN_PATH;
47
for arg in "$@" ; do
47
for arg in "$@" ; do
48
    val=${arg##*=}
48
    val=${arg##*=}
49
    tag=${arg%%=*}
49
    tag=${arg%%=*}
50
    case $tag in
50
    case $tag in
-
 
51
        -XGccInPath)            XGCC_IN_PATH=1;;            
51
        -clean)                 CLEAN=1;;
52
        -clean)                 CLEAN=1;;
52
        -XGccInPath)            XGCC_IN_PATH=1;;
-
 
53
        -ShellBuild)            SHELL_BUILD="$val";;
53
        -ShellBuild)            SHELL_BUILD="$val";;
54
        -BuildName)             BUILD_NAME=$val;;
54
        -BuildName)             BUILD_NAME=$val;;
55
        -BuildVersion)          BUILD_VERSION=$val;;
55
        -BuildVersion)          BUILD_VERSION=$val;;
56
        -Platform)              PLATFORM=$val;;
56
        -Platform)              PLATFORM=$val;;
57
        -Type)                  TYPE=$val;;
57
        -Type)                  TYPE=$val;;
Line 106... Line 106...
106
echo " Platform       = ${PLATFORM}"
106
echo " Platform       = ${PLATFORM}"
107
echo " Type           = ${TYPE}"
107
echo " Type           = ${TYPE}"
108
echo " Arch           = ${ARCH}"
108
echo " Arch           = ${ARCH}"
109
echo " MachType       = ${MACHTYPE}"
109
echo " MachType       = ${MACHTYPE}"
110
echo " BuildRoot      = ${BUILD_ROOT}"
110
echo " BuildRoot      = ${BUILD_ROOT}"
111
#echo " InterfaceDir   = ${INTERFACE_DIR}"
111
echo " InterfaceDir   = ${INTERFACE_DIR}"
112
#echo " LocalDir       = ${LOCAL_DIR}"
112
echo " LocalDir       = ${LOCAL_DIR}"
113
if [ ${DOWNLOAD_PKG} ]; then
113
if [ ${DOWNLOAD_PKG} ]; then
114
    echo " DownloadPkg    = ${DOWNLOAD_PKG}"
114
    echo " DownloadPkg    = ${DOWNLOAD_PKG}"
115
fi    
115
fi    
116
echo " BinDir         = ${BIN_DIR}"
116
echo " BinDir         = ${BIN_DIR}"
117
echo " LibDir         = ${LIB_DIR}"
117
echo " LibDir         = ${LIB_DIR}"
Line 148... Line 148...
148
 
148
 
149
    ARMV9*)  
149
    ARMV9*)  
150
        COMPILE_HOST="arm-9tdmi-linux-gnu"
150
        COMPILE_HOST="arm-9tdmi-linux-gnu"
151
        LINUX_HOST_ARCH=arm
151
        LINUX_HOST_ARCH=arm
152
        ;;
152
        ;;
153
 
153
        
154
    ARM926EJS*)  
154
    ARM926EJ*)
155
        COMPILE_HOST="arm-926ejs-linux-gnueabi"
155
        COMPILE_HOST="arm-926ejs-linux-gnueabi"
156
        LINUX_HOST_ARCH=arm
156
        LINUX_HOST_ARCH=arm
-
 
157
        if [ "${XGCC_IN_PATH}" != "" ]; then
-
 
158
            echo "-XGccInPath is *NOT* supported by this platform by this version of ShellBuild"
-
 
159
            echo "Correct your shellbuild script so that it is not required."
-
 
160
            exit 1
-
 
161
        fi
157
        ;;
162
        ;;
158
 
163
 
159
    *I386*)
164
    *I386*)
160
        if [ "${PLATFORM}" == "LINUX_I386" ]; then
165
        if [ "${PLATFORM}" == "LINUX_I386" ]; then
161
            COMPILE_HOST="i386-cross-linux-gnu"
166
            COMPILE_HOST="i386-cross-linux-gnu"
Line 172... Line 177...
172
esac
177
esac
173
 
178
 
174
# Setup the location of the cross compiler
179
# Setup the location of the cross compiler
175
if [ "${COMPILE_HOST}" == "i386-redhat-linux" ] || [ "${COMPILER_DIR}" == "gcc" ]; then
180
if [ "${COMPILE_HOST}" == "i386-redhat-linux" ] || [ "${COMPILER_DIR}" == "gcc" ]; then
176
    XGCC_BASE_DIR=
181
    XGCC_BASE_DIR=
177
    XGCC_DIR=
-
 
178
    XGCC=gcc
-
 
179
else
182
else
180
    XGCC_BASE_DIR=`echo ${COMPILER_DIR} | sed 's|/[^/]*/[^/]*$||'`
183
    XGCC_BASE_DIR=`echo ${COMPILER_DIR} | sed 's|/[^/]*/[^/]*$||'`
181
    XGCC_BASE_DIR=`cleanup_dir ${XGCC_BASE_DIR}`
184
    XGCC_BASE_DIR=`cleanup_dir ${XGCC_BASE_DIR}`
182
    XGCC_DIR=${XGCC_BASE_DIR}/${COMPILE_HOST}
-
 
183
    XGCC=${XGCC_DIR}/bin/gcc
-
 
184
fi
185
fi
185
 
186
 
186
# Determine the location of the generated files
187
# Determine the location of the generated files
187
CWD=`pwd`
188
CWD=`pwd`
188
BIN_DIR=`cleanup_dir ${CWD}/${BIN_DIR}`
189
BIN_DIR=`cleanup_dir ${CWD}/${BIN_DIR}`
Line 260... Line 261...
260
    done
261
    done
261
    if [ "${TAR_DECOMP_ARG}" == "" ]; then
262
    if [ "${TAR_DECOMP_ARG}" == "" ]; then
262
        echo "Could not find download file ${DOWNLOAD_PKG}.<tar.gz|tar.bz2|tgz> in any of { ${DOWNLOAD_DIRS} }"
263
        echo "Could not find download file ${DOWNLOAD_PKG}.<tar.gz|tar.bz2|tgz> in any of { ${DOWNLOAD_DIRS} }"
263
        exit 1
264
        exit 1
264
    fi
265
    fi
265
    WORK_DIR=${LCL_SRC_DIR}/${DOWNLOAD_PKG}
266
    UNTAR_DIR=${LCL_SRC_DIR}/${DOWNLOAD_PKG}
-
 
267
    WORK_DIR=${UNTAR_DIR}.${PLATFORM}${TYPE}
266
else
268
else
267
    WORK_DIR=${LCL_SRC_DIR}/work
269
    WORK_DIR=${LCL_SRC_DIR}/work.${PLATFORM}${TYPE}
268
fi
270
fi
269
 
271
 
270
#
272
#
271
#   Setup WORK_DIR
273
#   Setup WORK_DIR
272
#   This can be deduced from the tar-file, but in some cases the name
274
#   This can be deduced from the tar-file, but in some cases the name
Line 320... Line 322...
320
echo "   BUILD CONFIGURATION"
322
echo "   BUILD CONFIGURATION"
321
echo "================================================================================"
323
echo "================================================================================"
322
echo " Compile Host   = ${COMPILE_HOST}"
324
echo " Compile Host   = ${COMPILE_HOST}"
323
echo " Compile Build  = ${COMPILE_BUILD}"
325
echo " Compile Build  = ${COMPILE_BUILD}"
324
echo " XGCC Base Dir  = ${XGCC_BASE_DIR}"
326
echo " XGCC Base Dir  = ${XGCC_BASE_DIR}"
325
echo " XGCC Dir       = ${XGCC_DIR}"
-
 
326
echo " XGCC           = ${XGCC}"
-
 
327
echo " Base Dir       = ${BASE_DIR}"
327
echo " Base Dir       = ${BASE_DIR}"
328
 
328
 
329
if [ ${WORK_DIR_NAME} ]; then
329
if [ ${WORK_DIR_NAME} ]; then
330
    echo " Work Dir Name  = ${WORK_DIR_NAME}"
330
    echo " Work Dir Name  = ${WORK_DIR_NAME}"
331
fi  
331
fi  
Line 340... Line 340...
340
        echo " ${TITLE} ${INC}"
340
        echo " ${TITLE} ${INC}"
341
        TITLE="                "
341
        TITLE="                "
342
done
342
done
343
 
343
 
344
TITLE="Library Path   ="
344
TITLE="Library Path   ="
345
for INC in ${LIBPATH}; do
345
for LIB in ${LIBPATH}; do
346
        echo " ${TITLE} ${LIB}"
346
        echo " ${TITLE} ${LIB}"
347
        TITLE="                "
347
        TITLE="                "
348
done
348
done
349
 
349
 
350
if [ ${DEBIAN_PACKAGE} ]; then
350
if [ ${DEBIAN_PACKAGE} ]; then
Line 357... Line 357...
357
echo
357
echo
358
 
358
 
359
# Prepare the environment
359
# Prepare the environment
360
echo " --> Preparing environment"
360
echo " --> Preparing environment"
361
 
361
 
-
 
362
LIBTOOL=${XGCC_BASE_DIR}/bin/${COMPILE_HOST}-libtool
-
 
363
if [ -e ${LIBTOOL} ]; then
-
 
364
    echo " --> Using toolchain libtool"
-
 
365
else
-
 
366
    echo " --> Using environment libtool"
362
LIBTOOL=libtool
367
    LIBTOOL=/usr/bin/libtool
-
 
368
fi    
363
export LIBTOOL
369
export LIBTOOL
364
 
370
 
365
unset CC
371
unset CC
366
unset CXX
372
unset CXX
367
unset CPP
373
unset CPP
Line 376... Line 382...
376
export CFLAGS="${CFLAGS} ${INCLUDE}"
382
export CFLAGS="${CFLAGS} ${INCLUDE}"
377
export CXXFLAGS="${CXXFLAGS} ${INCLUDE}"
383
export CXXFLAGS="${CXXFLAGS} ${INCLUDE}"
378
export CCFLAGS="${CCFLAGS} ${INCLUDE}"
384
export CCFLAGS="${CCFLAGS} ${INCLUDE}"
379
export LDFLAGS="${LDFLAGS} ${LIBPATH}"
385
export LDFLAGS="${LDFLAGS} ${LIBPATH}"
380
 
386
 
381
if [ ${XGCC_IN_PATH} ]; then
387
if [ "${XGCC_IN_PATH}" != "" ]; then
382
    export PATH="${XGCC_DIR}/bin:${PATH}"
388
    export PATH="${XGCC_BASE_DIR}/${COMPILE_HOST}/bin:${PATH}"
-
 
389
    XGCC_IN_PATH_PREFIX_DIR=${XGCC_BASE_DIR}/${COMPILE_HOST}
383
else
390
else    
384
    export PATH="${XGCC_BASE_DIR}/bin:${PATH}"
391
    export PATH="${XGCC_BASE_DIR}/bin:${PATH}"
-
 
392
    XGCC_IN_PATH_PREFIX_DIR=/afc
385
fi
393
fi
386
 
394
 
387
 
395
 
388
#
396
#
-
 
397
# Environment - CHOST is used by some packages (e.g., zlib) to set the 
-
 
398
# host environment compiler.
-
 
399
#
-
 
400
export CHOST=${COMPILE_HOST}
-
 
401
 
-
 
402
#
-
 
403
# These are special files used to track completion of tasks allowing for partial
-
 
404
# rebuilds during development.
-
 
405
#
-
 
406
COMPLETE_PREFIX=${LCL_SRC_DIR}/.complete${DOWNLOAD_PKG}.${PLATFORM}${TYPE}.
-
 
407
COMPLETE_DECOMPRESS=${COMPLETE_PREFIX}decompress
-
 
408
COMPLETE_CONFIGURE=${COMPLETE_PREFIX}configure
-
 
409
 
-
 
410
#
389
#   Clean up request
411
#   Clean up request
390
#   No building - just a clean of previous builds
412
#   No building - just a clean of previous builds
391
#
413
#
392
if [ ${CLEAN} ]; then
414
if [ ${CLEAN} ]; then
-
 
415
    echo " --> Removing all completion tags"
-
 
416
    rm -fr ${LCL_SRC_DIR}/.complete.*
-
 
417
 
393
    if [ ${DOWNLOAD_PKG} ]; then
418
    if [ ${DOWNLOAD_PKG} ]; then
394
        echo " --> Cleaning generated files"
419
        echo " --> Cleaning generated files"
395
        cd ${BASE_DIR}
420
        cd ${BASE_DIR}
396
        rm -fr ${WORK_DIR}
421
        rm -fr ${WORK_DIR}
397
    fi        
422
    fi        
Line 408... Line 433...
408
    
433
    
409
    exit 0
434
    exit 0
410
fi
435
fi
411
 
436
 
412
 
437
 
413
if [ ${DOWNLOAD_PKG} ]; then
-
 
414
    echo " --> Deleting existing build objects directory"
-
 
415
    rm -fr ${WORK_DIR}
-
 
416
fi    
-
 
417
 
-
 
418
 
-
 
419
echo " --> Creating package directories"
438
echo " --> Creating package directories"
420
mkdir -p ${PKG_BIN_DIR}
439
mkdir -p ${PKG_BIN_DIR}
421
mkdir -p ${PKG_INC_DIR}
440
mkdir -p ${PKG_INC_DIR}
422
mkdir -p ${PKG_LIB_DIR}
441
mkdir -p ${PKG_LIB_DIR}
423
mkdir -p ${PKG_PKG_DIR}
442
mkdir -p ${PKG_PKG_DIR}
Line 429... Line 448...
429
mkdir -p ${PKG_TOOL_BIN_DIR}
448
mkdir -p ${PKG_TOOL_BIN_DIR}
430
mkdir -p ${PKG_TOOL_SCRIPT_DIR}
449
mkdir -p ${PKG_TOOL_SCRIPT_DIR}
431
 
450
 
432
 
451
 
433
if [ ${DOWNLOAD_PKG} ]; then
452
if [ ${DOWNLOAD_PKG} ]; then
434
    echo " --> Extracting ${DOWNLOAD_PKG}"
-
 
435
    cd ${LCL_SRC_DIR}
-
 
436
    tar -x${TAR_DECOMP_ARG}pf ${TARBALL_FILE}
-
 
437
    
-
 
438
    cd ${WORK_DIR}
-
 
439
    PATCHES_DIR=${SHARE_BASE_DIR}/patches
-
 
440
    if [ -d ${PATCHES_DIR} ]; then
453
    if [ -e ${COMPLETE_DECOMPRESS} ]; then
441
        PATCHES=`cd ${PATCHES_DIR} && find . -name "*.patch" | sort`
-
 
442
        if [ "${PATCHES}" != "" ]; then
-
 
443
            echo " --> Apply external patches"
454
        echo " --> Already extracted ${DOWNLOAD_PKG}"
444
            for PATCH in ${PATCHES}; do
-
 
445
                if patch -p1 < ${PATCHES_DIR}/${PATCH}; then
-
 
446
                    echo "Applied patch ${PATCH}"
-
 
447
                    echo ""
-
 
448
                else
455
    else
449
                    echo "Patch ${PATCH} failed"
456
        echo " --> Deleting existing build objects directory"
450
                    exit 1
457
        rm -fr ${UNTAR_DIR}
451
                fi
-
 
452
            done    
458
        rm -fr ${WORK_DIR}
453
        fi
-
 
454
    fi
-
 
455
    
459
    
-
 
460
        echo " --> Extracting ${DOWNLOAD_PKG}"
-
 
461
        cd ${LCL_SRC_DIR}
-
 
462
        tar -x${TAR_DECOMP_ARG}pf ${TARBALL_FILE}
-
 
463
        
456
    cd ${WORK_DIR}
464
        cd ${UNTAR_DIR}
457
    MODS_DIR=${SHARE_BASE_DIR}/${DOWNLOAD_PKG_NAME}_${DOWNLOAD_PKG_VER}_mods
465
        PATCHES_DIR=${SHARE_BASE_DIR}/patches
458
    if [ -d ${MODS_DIR} ]; then
466
        if [ -d ${PATCHES_DIR} ]; then
-
 
467
            PATCHES=`cd ${PATCHES_DIR} && find . -name "*.patch" | sort`
-
 
468
            if [ "${PATCHES}" != "" ]; then
459
        echo " --> Applying modifications"
469
                echo " --> Apply external patches"
-
 
470
                for PATCH in ${PATCHES}; do
-
 
471
                    if patch -p1 < ${PATCHES_DIR}/${PATCH}; then
-
 
472
                        echo "Applied patch ${PATCH}"
460
        cp -fr ${MODS_DIR}/* .
473
                        echo ""
-
 
474
                    else
461
        ERG_CONFIG=${MODS_DIR}/ERG.config
475
                        echo "Patch ${PATCH} failed"
462
        if [ -f ${ERG_CONFIG} ]; then
476
                        exit 1
463
            cp -fr ${ERG_CONFIG} .config
477
                    fi
-
 
478
                done    
-
 
479
            fi
464
        fi
480
        fi
-
 
481
        
-
 
482
        cd ${UNTAR_DIR}
-
 
483
        MODS_DIR=${SHARE_BASE_DIR}/${DOWNLOAD_PKG_NAME}_${DOWNLOAD_PKG_VER}_mods
-
 
484
        if [ -d ${MODS_DIR} ]; then
-
 
485
            echo " --> Applying modifications"
-
 
486
            cp -fr ${MODS_DIR}/* .
-
 
487
            ERG_CONFIG=${MODS_DIR}/ERG.config
-
 
488
            if [ -f ${ERG_CONFIG} ]; then
-
 
489
                cp -fr ${ERG_CONFIG} .config
-
 
490
            fi
465
        VXP_CONFIG=${MODS_DIR}/VXP.config
491
            VXP_CONFIG=${MODS_DIR}/VXP.config
466
        if [ -f ${VXP_CONFIG} ]; then
492
            if [ -f ${VXP_CONFIG} ]; then
467
            cp -fr ${VXP_CONFIG} .config
493
                cp -fr ${VXP_CONFIG} .config
-
 
494
            fi
468
        fi
495
        fi
469
    fi
-
 
470
 
496
 
471
    cd ${WORK_DIR}
497
        mv ${UNTAR_DIR} ${WORK_DIR} 
-
 
498
        
-
 
499
        touch ${COMPLETE_DECOMPRESS}
-
 
500
    fi        
472
fi
501
fi
473
 
502
 
474
#
503
#
475
#   Source the users script
504
#   Source the users script
476
#   This is processed in the context of this script
505
#   This is processed in the context of this script
477
#
506
#
-
 
507
cd ${WORK_DIR}
478
source ${LAUNCH_SCRIPT}
508
source ${LAUNCH_SCRIPT}
479
 
509
 
480
 
510
 
481
if [ ${DEBIAN_PACKAGE} ]; then 
511
if [ ${DEBIAN_PACKAGE} ]; then 
482
    echo " --> Creating Debian packaging scripts"
512
    echo " --> Creating Debian packaging scripts"