Artifact 73b14e71ab5e5231b8b16a2e475452810c2a4118:
0000: 23 21 20 2f 62 69 6e 2f 62 61 73 68 0a 0a 69 66 #! /bin/bash..if
0010: 20 5b 20 21 20 2d 78 20 22 2e 2f 70 6c 61 74 66 [ ! -x "./platf
0020: 6f 72 6d 22 20 5d 3b 20 74 68 65 6e 0a 09 65 63 orm" ]; then..ec
0030: 68 6f 20 27 45 52 52 4f 52 3a 20 50 6c 61 74 66 ho 'ERROR: Platf
0040: 6f 72 6d 20 73 63 72 69 70 74 20 6e 6f 74 20 66 orm script not f
0050: 6f 75 6e 64 3a 20 2e 2f 70 6c 61 74 66 6f 72 6d ound: ./platform
0060: 27 20 3e 26 32 0a 0a 09 65 78 69 74 20 31 0a 66 ' >&2...exit 1.f
0070: 69 0a 0a 43 4c 45 41 4e 4f 4e 4c 59 3d 30 0a 44 i..CLEANONLY=0.D
0080: 49 53 54 43 4c 45 41 4e 3d 30 0a 69 66 20 5b 20 ISTCLEAN=0.if [
0090: 22 24 31 22 20 3d 20 22 63 6c 65 61 6e 22 20 5d "$1" = "clean" ]
00a0: 3b 20 74 68 65 6e 0a 09 43 4c 45 41 4e 4f 4e 4c ; then..CLEANONL
00b0: 59 3d 31 0a 66 69 0a 69 66 20 5b 20 22 24 31 22 Y=1.fi.if [ "$1"
00c0: 20 3d 20 22 64 69 73 74 63 6c 65 61 6e 22 20 5d = "distclean" ]
00d0: 3b 20 74 68 65 6e 0a 09 43 4c 45 41 4e 4f 4e 4c ; then..CLEANONL
00e0: 59 3d 31 0a 09 44 49 53 54 43 4c 45 41 4e 3d 31 Y=1..DISTCLEAN=1
00f0: 0a 66 69 0a 65 78 70 6f 72 74 20 43 4c 45 41 4e .fi.export CLEAN
0100: 4f 4e 4c 59 20 44 49 53 54 43 4c 45 41 4e 0a 0a ONLY DISTCLEAN..
0110: 23 20 44 65 74 65 72 6d 69 6e 65 20 70 61 74 68 # Determine path
0120: 20 74 6f 20 22 74 63 6c 43 6f 6e 66 69 67 2e 73 to "tclConfig.s
0130: 68 22 0a 54 43 4c 43 4f 4e 46 49 47 44 49 52 3d h".TCLCONFIGDIR=
0140: 24 28 0a 09 28 0a 09 09 65 63 68 6f 20 22 24 7b $(..(...echo "${
0150: 4c 44 5f 4c 49 42 52 41 52 59 5f 50 41 54 48 7d LD_LIBRARY_PATH}
0160: 22 20 7c 20 74 72 20 27 3a 27 20 22 5c 6e 22 0a " | tr ':' "\n".
0170: 09 09 63 61 74 20 2f 65 74 63 2f 6c 64 2e 73 6f ..cat /etc/ld.so
0180: 2e 63 6f 6e 66 20 32 3e 2f 64 65 76 2f 6e 75 6c .conf 2>/dev/nul
0190: 6c 0a 09 09 63 72 6c 65 20 32 3e 2f 64 65 76 2f l...crle 2>/dev/
01a0: 6e 75 6c 6c 20 7c 20 67 72 65 70 20 27 5e 20 2a null | grep '^ *
01b0: 44 65 66 61 75 6c 74 20 4c 69 62 72 61 72 79 20 Default Library
01c0: 50 61 74 68 27 20 7c 20 73 65 64 20 27 73 40 5e Path' | sed 's@^
01d0: 20 2a 44 65 66 61 75 6c 74 20 4c 69 62 72 61 72 *Default Librar
01e0: 79 20 50 61 74 68 5b 5e 3a 5d 2a 3a 5b 5e 3a 5d y Path[^:]*:[^:]
01f0: 2a 2f 40 2f 40 27 20 7c 20 74 72 20 27 3a 27 20 */@/@' | tr ':'
0200: 22 5c 6e 22 0a 09 29 20 7c 20 67 72 65 70 20 27 "\n"..) | grep '
0210: 5e 2f 27 20 7c 20 77 68 69 6c 65 20 72 65 61 64 ^/' | while read
0220: 20 63 68 6b 6c 69 62 64 69 72 3b 20 64 6f 0a 09 chklibdir; do..
0230: 09 69 66 20 5b 20 2d 66 20 22 24 7b 63 68 6b 6c .if [ -f "${chkl
0240: 69 62 64 69 72 7d 2f 74 63 6c 43 6f 6e 66 69 67 ibdir}/tclConfig
0250: 2e 73 68 22 20 5d 3b 20 74 68 65 6e 0a 09 09 09 .sh" ]; then....
0260: 65 63 68 6f 20 22 24 7b 63 68 6b 6c 69 62 64 69 echo "${chklibdi
0270: 72 7d 22 0a 09 09 09 62 72 65 61 6b 0a 09 09 66 r}"....break...f
0280: 69 0a 09 64 6f 6e 65 0a 29 0a 69 66 20 5b 20 2d i..done.).if [ -
0290: 7a 20 22 24 7b 54 43 4c 43 4f 4e 46 49 47 44 49 z "${TCLCONFIGDI
02a0: 52 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 54 43 4c R}" ]; then..TCL
02b0: 43 4f 4e 46 49 47 44 49 52 3d 22 2f 75 73 72 2f CONFIGDIR="/usr/
02c0: 6c 69 62 22 0a 66 69 0a 65 78 70 6f 72 74 20 54 lib".fi.export T
02d0: 43 4c 43 4f 4e 46 49 47 44 49 52 0a 0a 23 20 44 CLCONFIGDIR..# D
02e0: 65 74 65 72 6d 69 6e 65 20 70 6c 61 74 66 6f 72 etermine platfor
02f0: 6d 0a 50 4c 41 54 46 4f 52 4d 3d 22 24 28 2e 2f m.PLATFORM="$(./
0300: 70 6c 61 74 66 6f 72 6d 29 22 0a 65 78 70 6f 72 platform)".expor
0310: 74 20 50 4c 41 54 46 4f 52 4d 0a 0a 23 20 42 75 t PLATFORM..# Bu
0320: 69 6c 64 20 61 6c 6c 20 61 70 70 72 6f 70 72 69 ild all appropri
0330: 61 74 65 20 64 69 72 65 63 74 6f 72 69 65 73 0a ate directories.
0340: 66 61 69 6c 65 64 64 69 72 73 3d 22 22 0a 66 6f faileddirs="".fo
0350: 72 20 64 69 72 20 69 6e 20 2a 2f 3b 20 64 6f 0a r dir in */; do.
0360: 09 65 78 70 6f 72 74 20 64 69 72 0a 0a 09 69 66 .export dir...if
0370: 20 5b 20 21 20 2d 66 20 22 24 7b 64 69 72 7d 2f [ ! -f "${dir}/
0380: 62 75 69 6c 64 2e 73 68 22 20 5d 3b 20 74 68 65 build.sh" ]; the
0390: 6e 0a 09 09 63 6f 6e 74 69 6e 75 65 0a 09 66 69 n...continue..fi
03a0: 0a 0a 09 66 61 69 6c 65 64 3d 30 0a 09 28 0a 09 ...failed=0..(..
03b0: 09 63 64 20 22 24 7b 64 69 72 7d 22 20 7c 7c 20 .cd "${dir}" ||
03c0: 65 78 69 74 20 31 0a 0a 09 09 72 6d 20 2d 72 66 exit 1....rm -rf
03d0: 20 22 62 75 69 6c 64 22 20 22 6f 75 74 22 0a 09 "build" "out"..
03e0: 09 72 6d 20 2d 66 20 66 61 69 6c 65 64 2d 2a 2e .rm -f failed-*.
03f0: 6c 6f 67 0a 09 09 69 66 20 5b 20 22 24 7b 44 49 log...if [ "${DI
0400: 53 54 43 4c 45 41 4e 7d 22 20 3d 20 22 31 22 20 STCLEAN}" = "1"
0410: 5d 3b 20 74 68 65 6e 0a 09 09 09 72 6d 20 2d 72 ]; then....rm -r
0420: 66 20 22 73 72 63 22 0a 09 09 66 69 0a 09 09 69 f "src"...fi...i
0430: 66 20 5b 20 22 24 7b 43 4c 45 41 4e 4f 4e 4c 59 f [ "${CLEANONLY
0440: 7d 22 20 3d 20 22 31 22 20 5d 3b 20 74 68 65 6e }" = "1" ]; then
0450: 0a 09 09 09 65 78 69 74 20 30 0a 09 09 66 69 0a ....exit 0...fi.
0460: 0a 09 09 6d 6b 64 69 72 20 2d 70 20 22 6f 75 74 ...mkdir -p "out
0470: 2f 24 7b 50 4c 41 54 46 4f 52 4d 7d 22 20 3e 2f /${PLATFORM}" >/
0480: 64 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f dev/null 2>/dev/
0490: 6e 75 6c 6c 0a 0a 09 09 2e 2f 62 75 69 6c 64 2e null...../build.
04a0: 73 68 20 3e 20 22 6f 75 74 2f 24 7b 50 4c 41 54 sh > "out/${PLAT
04b0: 46 4f 52 4d 7d 2f 62 75 69 6c 64 2e 6c 6f 67 22 FORM}/build.log"
04c0: 20 32 3e 26 31 20 7c 7c 20 65 78 69 74 20 31 0a 2>&1 || exit 1.
04d0: 09 29 20 7c 7c 20 66 61 69 6c 65 64 3d 31 0a 0a .) || failed=1..
04e0: 09 69 66 20 5b 20 22 24 7b 43 4c 45 41 4e 4f 4e .if [ "${CLEANON
04f0: 4c 59 7d 22 20 3d 20 22 30 22 20 5d 3b 20 74 68 LY}" = "0" ]; th
0500: 65 6e 0a 09 09 65 63 68 6f 20 22 42 75 69 6c 64 en...echo "Build
0510: 69 6e 67 20 24 7b 64 69 72 7d 22 0a 09 66 69 0a ing ${dir}"..fi.
0520: 0a 09 69 66 20 5b 20 22 24 7b 66 61 69 6c 65 64 ..if [ "${failed
0530: 7d 22 20 3d 20 22 31 22 20 5d 3b 20 74 68 65 6e }" = "1" ]; then
0540: 0a 09 09 63 70 20 22 24 7b 64 69 72 7d 2f 6f 75 ...cp "${dir}/ou
0550: 74 2f 24 7b 50 4c 41 54 46 4f 52 4d 7d 2f 62 75 t/${PLATFORM}/bu
0560: 69 6c 64 2e 6c 6f 67 22 20 22 24 7b 64 69 72 7d ild.log" "${dir}
0570: 2f 66 61 69 6c 65 64 2d 24 7b 50 4c 41 54 46 4f /failed-${PLATFO
0580: 52 4d 7d 2d 60 68 6f 73 74 6e 61 6d 65 60 2e 6c RM}-`hostname`.l
0590: 6f 67 22 0a 0a 09 09 72 6d 20 2d 72 66 20 22 24 og"....rm -rf "$
05a0: 7b 64 69 72 7d 2f 6f 75 74 22 0a 09 09 66 61 69 {dir}/out"...fai
05b0: 6c 65 64 64 69 72 73 3d 22 24 7b 66 61 69 6c 65 leddirs="${faile
05c0: 64 64 69 72 73 7d 20 24 7b 64 69 72 7d 22 0a 09 ddirs} ${dir}"..
05d0: 09 65 63 68 6f 20 22 46 61 69 6c 65 64 20 74 6f .echo "Failed to
05e0: 20 62 75 69 6c 64 20 24 7b 64 69 72 7d 22 0a 09 build ${dir}"..
05f0: 66 69 0a 64 6f 6e 65 0a 0a 23 20 43 6c 65 61 6e fi.done..# Clean
0600: 75 70 20 69 73 20 64 6f 6e 65 20 61 74 20 74 68 up is done at th
0610: 69 73 20 70 6f 69 6e 74 0a 69 66 20 5b 20 22 24 is point.if [ "$
0620: 7b 43 4c 45 41 4e 4f 4e 4c 59 7d 22 20 3d 20 22 {CLEANONLY}" = "
0630: 31 22 20 5d 3b 20 74 68 65 6e 0a 09 65 78 69 74 1" ]; then..exit
0640: 20 30 0a 66 69 0a 0a 23 20 4c 65 74 20 74 68 65 0.fi..# Let the
0650: 20 75 73 65 72 20 6b 6e 6f 77 20 77 68 61 74 20 user know what
0660: 66 61 69 6c 65 64 20 74 6f 20 62 75 69 6c 64 0a failed to build.
0670: 69 66 20 5b 20 2d 6e 20 22 24 7b 66 61 69 6c 65 if [ -n "${faile
0680: 64 64 69 72 73 7d 22 20 5d 3b 20 74 68 65 6e 0a ddirs}" ]; then.
0690: 09 65 63 68 6f 20 22 54 68 65 20 66 6f 6c 6c 6f .echo "The follo
06a0: 77 69 6e 67 20 66 61 69 6c 65 64 20 74 6f 20 62 wing failed to b
06b0: 75 69 6c 64 3a 24 7b 66 61 69 6c 65 64 64 69 72 uild:${faileddir
06c0: 73 7d 22 0a 66 69 0a 0a 23 20 43 72 65 61 74 65 s}".fi..# Create
06d0: 20 74 61 72 66 69 6c 65 20 6f 66 20 62 75 69 6c tarfile of buil
06e0: 74 20 70 61 63 6b 61 67 65 73 0a 50 4c 41 54 46 t packages.PLATF
06f0: 4f 52 4d 3d 22 24 28 2e 2f 70 6c 61 74 66 6f 72 ORM="$(./platfor
0700: 6d 29 22 0a 44 41 54 45 43 4f 44 45 3d 22 24 28 m)".DATECODE="$(
0710: 64 61 74 65 20 2b 25 59 25 6d 25 64 25 48 25 4d date +%Y%m%d%H%M
0720: 29 22 0a 4f 55 54 46 49 4c 45 42 41 53 45 3d 22 )".OUTFILEBASE="
0730: 74 63 6c 70 6b 67 73 2d 24 7b 50 4c 41 54 46 4f tclpkgs-${PLATFO
0740: 52 4d 7d 2d 24 7b 44 41 54 45 43 4f 44 45 7d 22 RM}-${DATECODE}"
0750: 0a 74 61 72 20 2d 63 66 20 2d 20 2a 2f 6f 75 74 .tar -cf - */out
0760: 20 7c 20 62 7a 69 70 32 20 2d 39 63 20 3e 20 22 | bzip2 -9c > "
0770: 24 7b 4f 55 54 46 49 4c 45 42 41 53 45 7d 2e 74 ${OUTFILEBASE}.t
0780: 61 72 2e 62 7a 32 22 0a 0a 65 78 69 74 20 30 0a ar.bz2"..exit 0.