Subversion Repositories DevTools

Rev

Rev 6114 | Rev 6601 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6114 Rev 6152
Line 1... Line 1...
1
################################################################################
1
################################################################################
2
# Copyright (c) VIX TECHNOLOGY (AUST) LTD
2
# COPYRIGHT - VIX IP PTY LTD ("VIX"). ALL RIGHTS RESERVED.
3
#
3
#
4
#   NOTE:
4
#   NOTE:
5
#   This script will be run under a simple 'sh'
5
#   This script will be run under a simple 'sh'
6
#   Jats will run .sh files under .sh. This is script to JATS and not
6
#   Jats will run .sh files under .sh. 
7
#   a stand alone program.
7
#   This is a script to JATS and not a stand alone program.
8
#
8
#
9
#   NOTE: sh under RHEL4 is more forgiving than under UBUNTU and SOLARIS
9
#   NOTE: sh under RHEL4 is more forgiving than under UBUNTU and SOLARIS
10
#         Test on multiple platforms.
10
#         Test on multiple platforms.
11
#
11
#
12
################################################################################
12
################################################################################
13
 
13
 
14
#
14
#
15
# Force failed command to exit this shell - all commands must report success
15
# Force failed command to exit this shell - all commands must report success
16
set -e
16
set -e
17
echo
-
 
18
echo
-
 
19
 
-
 
20
 
17
 
21
#------------------------------------------------------------------------------
18
#------------------------------------------------------------------------------
22
# Takes $1 and removes all relative paths (. and ..) from it.  The cleaned up
19
# Takes $1 and removes all relative paths (. and ..) from it.  The cleaned up
23
# directory is written to stdout.
20
# directory is written to stdout.
24
#------------------------------------------------------------------------------
21
#------------------------------------------------------------------------------
Line 39... Line 36...
39
    done
36
    done
40
    
37
    
41
    echo ${CLEANUP_DIR}
38
    echo ${CLEANUP_DIR}
42
} 
39
} 
43
 
40
 
-
 
41
#----------------------------------------------------------------------------
-
 
42
#   Print a pretty banner
-
 
43
#----------------------------------------------------------------------------
-
 
44
banner()
-
 
45
{
-
 
46
    printf '\n%.80s\n' "===== ${1} =========================================================================" 
-
 
47
}
44
 
48
 
-
 
49
#----------------------------------------------------------------------------
-
 
50
#   Print a pretty printers
-
 
51
#   pitem   - print item and value ( if value is not empty )
-
 
52
#   pitem3  - print item and value ( if item3 is not empty )
-
 
53
#   plist   - print item and list of values
-
 
54
#----------------------------------------------------------------------------
-
 
55
pitem ()
-
 
56
{
-
 
57
    if [ -n "$2" ]; then 
-
 
58
        printf ' %-15s = %s\n' "$1" "$2"
-
 
59
    fi
-
 
60
}
-
 
61
 
-
 
62
pitem3 ()
-
 
63
{
-
 
64
    if [ -n "$3" ]; then 
-
 
65
        printf ' %-15s = %s\n' "$1" "$2"
-
 
66
    fi
-
 
67
}
-
 
68
 
-
 
69
plist ()
-
 
70
{
-
 
71
    TITLE=` printf ' %-15s =' "$1"`
-
 
72
    shift
-
 
73
    for INC in $*; do
-
 
74
        echo "${TITLE} ${INC}"
-
 
75
        TITLE="                  "
-
 
76
    done
-
 
77
}
45
 
78
 
46
 
79
 
47
#------------------------------------------------------------------------------
80
#------------------------------------------------------------------------------
48
# Extract arguments - order not important except that the first argument is
81
# Extract arguments - order not important except that the first argument is
49
# the launch script
82
# the launch script
Line 120... Line 153...
120
fi
153
fi
121
 
154
 
122
#------------------------------------------------------------------------------
155
#------------------------------------------------------------------------------
123
# Dump JATS information for debugging purposes
156
# Dump JATS information for debugging purposes
124
#------------------------------------------------------------------------------
157
#------------------------------------------------------------------------------
125
echo "="
-
 
126
echo "   JATS SUPPLIED FIELDS"
158
banner "JATS SUPPLIED FIELDS"
127
echo "="
-
 
128
echo " ShellBuild     = ${SHELL_BUILD}"
159
pitem "ShellBuild" "${SHELL_BUILD}"
129
echo " BuildName      = ${BUILD_NAME} ${BUILD_VERSION}"
160
pitem "BuildName" "${BUILD_NAME} ${BUILD_VERSION}"
130
echo " Platform       = ${PLATFORM}"
161
pitem "Platform" "${PLATFORM}"
131
echo " Type           = ${TYPE}"
162
pitem "Type" "${TYPE}"
132
echo " Arch           = ${ARCH}"
163
pitem "Arch" "${ARCH}"
133
echo " MachType       = ${MACHTYPE}"
164
pitem "MachType" "${MACHTYPE}"
134
echo " BuildRoot      = ${BUILD_ROOT}"
165
pitem "BuildRoot" "${BUILD_ROOT}"
135
echo " InterfaceDir   = ${INTERFACE_DIR}"
166
pitem "InterfaceDir" "${INTERFACE_DIR}"
136
echo " LocalDir       = ${LOCAL_DIR}"
167
pitem "LocalDir" "${LOCAL_DIR}"
137
if [ ${DOWNLOAD_PKG} ]; then
-
 
138
    echo " DownloadPkg    = ${DOWNLOAD_PKG}"
168
pitem "DownloadPkg" "${DOWNLOAD_PKG}"
139
fi    
-
 
140
echo " BinDir         = ${BIN_DIR}"
169
pitem "BinDir" "${BIN_DIR}"
141
echo " LibDir         = ${LIB_DIR}"
170
pitem "LibDir" "${LIB_DIR}"
142
echo " ObjDir         = ${OBJ_DIR}"
171
pitem "ObjDir" "${OBJ_DIR}"
143
echo " PkgDir         = ${PKG_DIR}"
172
pitem "PkgDir" "${PKG_DIR}"
144
echo " PackageBinDir  = ${PKG_BIN_DIR}"
173
pitem "PackageBinDir" "${PKG_BIN_DIR}"
145
echo " PackageIncDir  = ${PKG_INC_DIR}"
174
pitem "PackageIncDir" "${PKG_INC_DIR}"
146
echo " PackageLibDir  = ${PKG_LIB_DIR}"
175
pitem "PackageLibDir" "${PKG_LIB_DIR}"
147
echo " PackagePkgDir  = ${PKG_PKG_DIR}"
176
pitem "PackagePkgDir" "${PKG_PKG_DIR}"
148
echo " CompilerDir    = ${COMPILER_DIR}"
177
pitem "CompilerDir" "${COMPILER_DIR}"
149
echo " PatchDir       = ${PATCHES_DIR}"
178
pitem "PatchDir" "${PATCHES_DIR}"
-
 
179
 
-
 
180
pitem "WorkDir" "${WORK_DIR_NAME}"
-
 
181
pitem "WorkDirSuffix" "${WORK_DIR_SUFFIX}"
150
 
182
 
151
if [ ${ISA_TOOLSET} ]; then
183
if [ ${ISA_TOOLSET} ]; then
152
    echo " Toolset Packaging Support"
184
    echo " Toolset Packaging Support"
153
    echo " PackageToolDir     = ${PKG_TOOL_DIR}"
185
    pitem "PackageToolDir" "${PKG_TOOL_DIR}"
154
    echo " PackageToolBin     = ${PKG_TOOL_BIN_DIR}"
186
    pitem "PackageToolBin" "${PKG_TOOL_BIN_DIR}"
155
    echo " PackageToolScript  = ${PKG_TOOL_SCRIPT_DIR}"
187
    pitem "PackageToolScript" "${PKG_TOOL_SCRIPT_DIR}"
156
fi    
188
fi    
157
 
189
 
158
echo "="
-
 
159
echo
-
 
160
echo
-
 
161
 
-
 
162
 
-
 
163
#------------------------------------------------------------------------------
190
#------------------------------------------------------------------------------
164
# Determine host and build environments
191
# Determine host and build environments
165
#------------------------------------------------------------------------------
192
#------------------------------------------------------------------------------
166
case ${MACHTYPE} in
193
case ${MACHTYPE} in
167
    linux_i386)  
194
    linux_i386)     COMPILE_BUILD="i386-cross-linux-gnu" ;;
168
        COMPILE_BUILD="i386-cross-linux-gnu"
195
    linux_x64)      COMPILE_BUILD="x86_64-linux-gnu" ;;
169
        ;;
196
    linux_el7_x64)  COMPILE_BUILD="x86_64-linux-gnu" ;;
170
 
197
 
171
	linux_x64)
-
 
172
        COMPILE_BUILD="x86_64-linux-gnu"
-
 
173
        ;;
-
 
174
 
-
 
175
    *)      
-
 
176
        echo "Unknown MACHTYPE=${MACHTYPE}"
198
    *)  echo "Unknown MACHTYPE=${MACHTYPE}"
177
        exit 1
199
        exit 1
178
        ;;
200
        ;;
179
esac
201
esac
180
 
202
 
181
case ${ARCH} in
203
case ${ARCH} in
Line 353... Line 375...
353
    fi
375
    fi
354
    if [ "${TAR_DECOMP_ARG}" = "" ]; then
376
    if [ "${TAR_DECOMP_ARG}" = "" ]; then
355
        echo "Could not find download file ${DOWNLOAD_PKG}.<tar.gz|tar.bz2|tgz|zip> in any of { ${DOWNLOAD_DIRS} }"
377
        echo "Could not find download file ${DOWNLOAD_PKG}.<tar.gz|tar.bz2|tgz|zip> in any of { ${DOWNLOAD_DIRS} }"
356
        exit 1
378
        exit 1
357
    fi
379
    fi
-
 
380
    if [ -n "${WORK_DIR_NAME}" ] ; then
-
 
381
        UNTAR_DIR=${LCL_SRC_DIR}/${WORK_DIR_NAME}
-
 
382
    else
358
    UNTAR_DIR=${LCL_SRC_DIR}/${DOWNLOAD_PKG}
383
        UNTAR_DIR=${LCL_SRC_DIR}/${DOWNLOAD_PKG}
-
 
384
    fi
359
    WORK_DIR=${UNTAR_DIR}.${PLATFORM}${TYPE}
385
    WORK_DIR=${UNTAR_DIR}.${PLATFORM}${TYPE}
360
else
386
else
361
    WORK_DIR=${LCL_SRC_DIR}
387
    WORK_DIR=${LCL_SRC_DIR}
-
 
388
    if [ ${WORK_DIR_NAME} ]; then
-
 
389
        WORK_DIR=${LCL_SRC_DIR}/${WORK_DIR_NAME}
-
 
390
    fi
362
fi
391
fi
363
 
392
 
364
#
393
#
365
#   Setup WORK_DIR
-
 
366
#   This can be deduced from the tar-file, but in some cases the name
394
#   Suffix allows the package to be built multiple times for the one target
367
#   must be specified
-
 
368
#
-
 
369
if [ ${WORK_DIR_NAME} ]; then
-
 
370
    WORK_DIR=${LCL_SRC_DIR}/${WORK_DIR_NAME}
395
#   Example: Client/Server or Natve/Host or Static/Dynamic ...
371
fi
396
#   
372
if [ ${WORK_DIR_SUFFIX} ]; then
397
if [ ${WORK_DIR_SUFFIX} ]; then
373
    WORK_DIR=${WORK_DIR}${WORK_DIR_SUFFIX}
398
    WORK_DIR=${WORK_DIR}${WORK_DIR_SUFFIX}
374
fi    
399
fi    
375
 
400
 
376
#
401
#
Line 428... Line 453...
428
done
453
done
429
 
454
 
430
 
455
 
431
 
456
 
432
# Dump configuration
457
# Dump configuration
433
echo "="
-
 
434
echo "   BUILD CONFIGURATION"
458
banner "BUILD CONFIGURATION"
435
echo "="
-
 
436
echo " Compile Host   = ${COMPILE_HOST}"
459
pitem "Compile Host"    "${COMPILE_HOST}"
437
echo " Compile Build  = ${COMPILE_BUILD}"
460
pitem "Compile Build"   "${COMPILE_BUILD}"
438
echo " XGCC Base Dir  = ${XGCC_BASE_DIR}"
461
pitem "XGCC Base Dir"   "${XGCC_BASE_DIR}"
439
echo " Base Dir       = ${BASE_DIR}"
462
pitem "Base Dir"        "${BASE_DIR}"
440
 
-
 
441
if [ ${WORK_DIR_NAME} ]; then
-
 
442
    echo " Work Dir Name  = ${WORK_DIR_NAME}"
463
pitem "Work Dir Name"   "${WORK_DIR_NAME}"
443
fi  
-
 
444
 
464
 
445
if [ ${DOWNLOAD_PKG} ]; then
465
if [ ${DOWNLOAD_PKG} ]; then
446
    echo " Tarball File   = ${TARBALL_FILE}"
466
    pitem  "Tarball File" "${TARBALL_FILE}"
-
 
467
    pitem3 "UnTar Dir" "${UNTAR_DIR}" "${WORK_DIR_NAME}"
447
    echo " Working Dir    = ${WORK_DIR}"
468
    pitem  "Working Dir" "${WORK_DIR}"
448
fi
469
fi
449
 
470
 
450
TITLE="Includes       ="
471
plist "Includes" ${INCLUDE}
451
for INC in ${INCLUDE}; do
-
 
452
        echo " ${TITLE} ${INC}"
-
 
453
        TITLE="                "
-
 
454
done
-
 
455
 
-
 
456
TITLE="Library Path   ="
472
plist "Library Path" ${LIBPATH}
457
for LIB in ${LIBPATH}; do
-
 
458
        echo " ${TITLE} ${LIB}"
-
 
459
        TITLE="                "
-
 
460
done
-
 
461
 
-
 
462
echo " Debian Package = ${DEB_PKG_DIR}"
473
pitem "Debian Package"  "${DEB_PKG_DIR}"
463
    
-
 
464
echo " Launch Script  = ${LAUNCH_SCRIPT}"
474
pitem "Launch Script"   "${LAUNCH_SCRIPT}"
465
echo "="
-
 
466
echo
-
 
467
echo
-
 
468
 
475
 
-
 
476
banner "Package Build"
469
# Prepare the environment
477
# Prepare the environment
470
echo " --> Preparing environment"
478
echo " --> Preparing environment"
471
 
479
 
472
LIBTOOL=${XGCC_BASE_DIR}/bin/${COMPILE_HOST}-libtool
480
LIBTOOL=${XGCC_BASE_DIR}/bin/${COMPILE_HOST}-libtool
473
if [ -e ${LIBTOOL} ]; then
481
if [ -e ${LIBTOOL} ]; then
Line 616... Line 624...
616
        if [ "${TAR_DECOMP_ARG}" = "unzip" ]; then
624
        if [ "${TAR_DECOMP_ARG}" = "unzip" ]; then
617
            unzip ${TARBALL_FILE}
625
            unzip ${TARBALL_FILE}
618
        else
626
        else
619
            tar -x${TAR_DECOMP_ARG}pf ${TARBALL_FILE}
627
            tar -x${TAR_DECOMP_ARG}pf ${TARBALL_FILE}
620
        fi
628
        fi
621
        
629
       
-
 
630
        if [ ! -d ${UNTAR_DIR} ] ; then
-
 
631
            echo "Error: Tar file did not extract into the expected directory"
-
 
632
            echo "       Expected: ${UNTAR_DIR}"
-
 
633
            exit 1
-
 
634
        fi
-
 
635
 
622
        cd ${UNTAR_DIR}
636
        cd ${UNTAR_DIR}
623
        PATCHES_DIR=${SHARE_BASE_DIR}/${PATCHES_DIR}
637
        PATCHES_DIR=${SHARE_BASE_DIR}/${PATCHES_DIR}
624
        if [ -d ${PATCHES_DIR} ]; then
638
        if [ -d ${PATCHES_DIR} ]; then
625
            PATCHES=`cd ${PATCHES_DIR} && find . -name "*.patch" | sort`
639
            PATCHES=`cd ${PATCHES_DIR} && find . -name "*.patch" | sort`
626
            if [ "${PATCHES}" != "" ]; then
640
            if [ "${PATCHES}" != "" ]; then
627
                echo " --> Apply external patches"
641
                echo " --> Apply external patches"
628
                for PATCH in ${PATCHES}; do
642
                for PATCH in ${PATCHES}; do
629
                    if patch -p1 < ${PATCHES_DIR}/${PATCH}; then
643
                    if patch -t -p1 < ${PATCHES_DIR}/${PATCH}; then
-
 
644
                        echo "Applied patch ${PATCH}"
-
 
645
                        echo ""
-
 
646
                    else
-
 
647
                        if [ "${IGNORE_PATH_ERR}" = "1" ]; then
-
 
648
                            echo "Patch ${PATCH} errors ignored"
-
 
649
                        else 
-
 
650
                            echo "Patch ${PATCH} failed"
-
 
651
                            exit 1
-
 
652
                        fi
-
 
653
                    fi
-
 
654
                done    
-
 
655
            fi
-
 
656
        fi
-
 
657
        PATCHES_DIR=${PATCHES_DIR}.${PLATFORM}
-
 
658
        if [ -d ${PATCHES_DIR} ]; then
-
 
659
            PATCHES=`cd ${PATCHES_DIR} && find . -name "*.patch" | sort`
-
 
660
            if [ "${PATCHES}" != "" ]; then
-
 
661
                echo " --> Apply external patches for ${PLATFORM}"
-
 
662
                for PATCH in ${PATCHES}; do
-
 
663
                    if patch -t -p1 < ${PATCHES_DIR}/${PATCH}; then
630
                        echo "Applied patch ${PATCH}"
664
                        echo "Applied patch ${PATCH}"
631
                        echo ""
665
                        echo ""
632
                    else
666
                    else
633
                        if [ "${IGNORE_PATH_ERR}" = "1" ]; then
667
                        if [ "${IGNORE_PATH_ERR}" = "1" ]; then
634
                            echo "Patch ${PATCH} errors ignored"
668
                            echo "Patch ${PATCH} errors ignored"