Hex Artifact Content
Bounty program for improvements to Tcl and certain Tcl packages.

Artifact 825e8c0a234dca8ef69270660f3805d16546ff643ab8b615190ecf0739d610d5:


0000: 23 21 20 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20  #! /usr/bin/env 
0010: 62 61 73 68 0a 0a 75 70 64 61 74 65 3d 27 30 27  bash..update='0'
0020: 0a 69 66 20 5b 20 22 24 31 22 20 3d 20 27 2d 75  .if [ "$1" = '-u
0030: 70 64 61 74 65 27 20 5d 3b 20 74 68 65 6e 0a 09  pdate' ]; then..
0040: 75 70 64 61 74 65 3d 27 31 27 0a 66 69 0a 0a 63  update='1'.fi..c
0050: 6f 6d 6d 61 6e 64 73 3d 28 0a 09 63 75 72 6c 20  ommands=(..curl 
0060: 64 69 66 66 20 63 61 74 20 6d 6b 64 69 72 20 72  diff cat mkdir r
0070: 6d 20 6d 76 20 61 75 74 6f 6d 61 6b 65 20 61 75  m mv automake au
0080: 74 6f 63 6f 6e 66 0a 29 0a 0a 75 72 6c 73 3d 28  toconf.)..urls=(
0090: 0a 09 68 74 74 70 3a 2f 2f 63 68 69 73 65 6c 61  ..http://chisela
00a0: 70 70 2e 63 6f 6d 2f 75 73 65 72 2f 72 6b 65 65  pp.com/user/rkee
00b0: 6e 65 2f 72 65 70 6f 73 69 74 6f 72 79 2f 61 75  ne/repository/au
00c0: 74 6f 63 6f 6e 66 2f 64 6f 63 2f 74 72 75 6e 6b  toconf/doc/trunk
00d0: 2f 74 63 6c 2e 6d 34 0a 09 68 74 74 70 3a 2f 2f  /tcl.m4..http://
00e0: 63 68 69 73 65 6c 61 70 70 2e 63 6f 6d 2f 75 73  chiselapp.com/us
00f0: 65 72 2f 72 6b 65 65 6e 65 2f 72 65 70 6f 73 69  er/rkeene/reposi
0100: 74 6f 72 79 2f 61 75 74 6f 63 6f 6e 66 2f 64 6f  tory/autoconf/do
0110: 63 2f 74 72 75 6e 6b 2f 73 68 6f 62 6a 2e 6d 34  c/trunk/shobj.m4
0120: 0a 09 68 74 74 70 3a 2f 2f 63 68 69 73 65 6c 61  ..http://chisela
0130: 70 70 2e 63 6f 6d 2f 75 73 65 72 2f 72 6b 65 65  pp.com/user/rkee
0140: 6e 65 2f 72 65 70 6f 73 69 74 6f 72 79 2f 61 75  ne/repository/au
0150: 74 6f 63 6f 6e 66 2f 64 6f 63 2f 74 72 75 6e 6b  toconf/doc/trunk
0160: 2f 76 65 72 73 69 6f 6e 73 63 72 69 70 74 2e 6d  /versionscript.m
0170: 34 0a 09 27 68 74 74 70 3a 2f 2f 67 69 74 2e 73  4..'http://git.s
0180: 61 76 61 6e 6e 61 68 2e 67 6e 75 2e 6f 72 67 2f  avannah.gnu.org/
0190: 67 69 74 77 65 62 2f 3f 70 3d 61 75 74 6f 63 6f  gitweb/?p=autoco
01a0: 6e 66 2d 61 72 63 68 69 76 65 2e 67 69 74 3b 61  nf-archive.git;a
01b0: 3d 62 6c 6f 62 5f 70 6c 61 69 6e 3b 66 3d 6d 34  =blob_plain;f=m4
01c0: 2f 61 78 5f 63 68 65 63 6b 5f 63 6f 6d 70 69 6c  /ax_check_compil
01d0: 65 5f 66 6c 61 67 2e 6d 34 27 0a 29 0a 0a 6c 6f  e_flag.m4'.)..lo
01e0: 63 61 6c 46 69 6c 65 73 3d 28 0a 09 61 63 6c 6f  calFiles=(..aclo
01f0: 63 61 6c 2f 74 63 6c 74 6c 73 5f 6f 70 65 6e 73  cal/tcltls_opens
0200: 73 6c 2e 6d 34 0a 29 0a 0a 66 61 69 6c 65 64 3d  sl.m4.)..failed=
0210: 27 30 27 0a 66 6f 72 20 63 6f 6d 6d 61 6e 64 20  '0'.for command 
0220: 69 6e 20 22 24 7b 63 6f 6d 6d 61 6e 64 73 5b 40  in "${commands[@
0230: 5d 7d 22 3b 20 64 6f 0a 09 69 66 20 5b 20 21 20  ]}"; do..if [ ! 
0240: 2d 66 20 22 24 28 77 68 69 63 68 20 22 24 7b 63  -f "$(which "${c
0250: 6f 6d 6d 61 6e 64 7d 22 20 32 3e 2f 64 65 76 2f  ommand}" 2>/dev/
0260: 6e 75 6c 6c 29 22 20 5d 3b 20 74 68 65 6e 0a 09  null)" ]; then..
0270: 09 65 63 68 6f 20 22 65 72 72 6f 72 3a 20 55 6e  .echo "error: Un
0280: 61 62 6c 65 20 74 6f 20 6c 6f 63 61 74 65 20 24  able to locate $
0290: 7b 63 6f 6d 6d 61 6e 64 7d 22 20 3e 26 32 0a 09  {command}" >&2..
02a0: 09 66 61 69 6c 65 64 3d 27 31 27 0a 09 66 69 0a  .failed='1'..fi.
02b0: 64 6f 6e 65 0a 69 66 20 5b 20 22 24 7b 66 61 69  done.if [ "${fai
02c0: 6c 65 64 7d 22 20 3d 20 27 31 27 20 5d 3b 20 74  led}" = '1' ]; t
02d0: 68 65 6e 0a 09 65 78 69 74 20 31 0a 66 69 0a 0a  hen..exit 1.fi..
02e0: 63 64 20 22 24 28 64 69 72 6e 61 6d 65 20 22 24  cd "$(dirname "$
02f0: 28 77 68 69 63 68 20 22 24 30 22 29 22 29 22 20  (which "$0")")" 
0300: 7c 7c 20 65 78 69 74 20 31 0a 0a 6d 6b 64 69 72  || exit 1..mkdir
0310: 20 61 63 6c 6f 63 61 6c 20 3e 2f 64 65 76 2f 6e   aclocal >/dev/n
0320: 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 0a  ull 2>/dev/null.
0330: 0a 66 69 6c 65 73 3d 28 29 0a 0a 66 6f 72 20 75  .files=()..for u
0340: 72 6c 20 69 6e 20 22 24 7b 75 72 6c 73 5b 40 5d  rl in "${urls[@]
0350: 7d 22 3b 20 64 6f 0a 09 66 69 6c 65 3d 22 61 63  }"; do..file="ac
0360: 6c 6f 63 61 6c 2f 24 28 65 63 68 6f 20 22 24 7b  local/$(echo "${
0370: 75 72 6c 7d 22 20 7c 20 73 65 64 20 27 73 40 5e  url}" | sed '[email protected]^
0380: 2e 2a 2f 40 40 27 29 22 0a 0a 09 69 66 20 5b 20  .*/@@')"...if [ 
0390: 2d 66 20 22 24 7b 66 69 6c 65 7d 22 20 5d 3b 20  -f "${file}" ]; 
03a0: 74 68 65 6e 0a 09 09 69 66 20 5b 20 22 24 7b 75  then...if [ "${u
03b0: 70 64 61 74 65 7d 22 20 3d 20 27 30 27 20 5d 3b  pdate}" = '0' ];
03c0: 20 74 68 65 6e 0a 09 09 09 66 69 6c 65 73 3d 28   then....files=(
03d0: 22 24 7b 66 69 6c 65 73 5b 40 5d 7d 22 20 22 24  "${files[@]}" "$
03e0: 7b 66 69 6c 65 7d 22 29 0a 0a 09 09 09 63 6f 6e  {file}").....con
03f0: 74 69 6e 75 65 0a 09 09 66 69 0a 09 66 69 0a 0a  tinue...fi..fi..
0400: 09 63 75 72 6c 20 2d 6c 73 53 20 22 24 7b 75 72  .curl -lsS "${ur
0410: 6c 7d 22 20 3e 20 22 24 7b 66 69 6c 65 7d 2e 6e  l}" > "${file}.n
0420: 65 77 22 20 7c 7c 20 65 78 69 74 20 31 0a 09 69  ew" || exit 1..i
0430: 66 20 64 69 66 66 20 22 24 7b 66 69 6c 65 7d 2e  f diff "${file}.
0440: 6e 65 77 22 20 22 24 7b 66 69 6c 65 7d 22 20 3e  new" "${file}" >
0450: 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76  /dev/null 2>/dev
0460: 2f 6e 75 6c 6c 3b 20 74 68 65 6e 0a 09 09 72 6d  /null; then...rm
0470: 20 2d 66 20 22 24 7b 66 69 6c 65 7d 2e 6e 65 77   -f "${file}.new
0480: 22 0a 09 65 6c 73 65 0a 09 09 6d 76 20 22 24 7b  "..else...mv "${
0490: 66 69 6c 65 7d 2e 6e 65 77 22 20 22 24 7b 66 69  file}.new" "${fi
04a0: 6c 65 7d 22 0a 09 66 69 0a 0a 09 66 69 6c 65 73  le}"..fi...files
04b0: 3d 28 22 24 7b 66 69 6c 65 73 5b 40 5d 7d 22 20  =("${files[@]}" 
04c0: 22 24 7b 66 69 6c 65 7d 22 29 0a 64 6f 6e 65 0a  "${file}").done.
04d0: 0a 66 6f 72 20 66 69 6c 65 20 69 6e 20 22 24 7b  .for file in "${
04e0: 66 69 6c 65 73 5b 40 5d 7d 22 20 22 24 7b 6c 6f  files[@]}" "${lo
04f0: 63 61 6c 46 69 6c 65 73 5b 40 5d 7d 22 3b 20 64  calFiles[@]}"; d
0500: 6f 0a 09 63 61 74 20 22 24 7b 66 69 6c 65 7d 22  o..cat "${file}"
0510: 0a 64 6f 6e 65 20 3e 20 61 63 6c 6f 63 61 6c 2e  .done > aclocal.
0520: 6d 34 2e 6e 65 77 0a 0a 69 66 20 64 69 66 66 20  m4.new..if diff 
0530: 61 63 6c 6f 63 61 6c 2e 6d 34 2e 6e 65 77 20 61  aclocal.m4.new a
0540: 63 6c 6f 63 61 6c 2e 6d 34 20 3e 2f 64 65 76 2f  clocal.m4 >/dev/
0550: 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c  null 2>/dev/null
0560: 3b 20 74 68 65 6e 0a 09 72 6d 20 2d 66 20 61 63  ; then..rm -f ac
0570: 6c 6f 63 61 6c 2e 6d 34 2e 6e 65 77 0a 65 6c 73  local.m4.new.els
0580: 65 0a 09 6d 76 20 61 63 6c 6f 63 61 6c 2e 6d 34  e..mv aclocal.m4
0590: 2e 6e 65 77 20 61 63 6c 6f 63 61 6c 2e 6d 34 0a  .new aclocal.m4.
05a0: 66 69 0a 0a 61 75 74 6f 6d 61 6b 65 20 2d 2d 61  fi..automake --a
05b0: 64 64 2d 6d 69 73 73 69 6e 67 20 2d 2d 63 6f 70  dd-missing --cop
05c0: 79 20 2d 2d 66 6f 72 63 65 2d 6d 69 73 73 69 6e  y --force-missin
05d0: 67 20 3e 2f 64 65 76 2f 6e 75 6c 6c 20 32 3e 2f  g >/dev/null 2>/
05e0: 64 65 76 2f 6e 75 6c 6c 0a 69 66 20 21 20 5b 20  dev/null.if ! [ 
05f0: 2d 66 20 69 6e 73 74 61 6c 6c 2d 73 68 20 2d 6f  -f install-sh -o
0600: 20 2d 66 20 69 6e 73 74 61 6c 6c 2e 73 68 20 2d   -f install.sh -
0610: 6f 20 2d 66 20 73 68 74 6f 6f 6c 20 5d 3b 20 74  o -f shtool ]; t
0620: 68 65 6e 0a 09 65 63 68 6f 20 22 61 75 74 6f 6d  hen..echo "autom
0630: 61 6b 65 20 66 61 69 6c 65 64 22 20 3e 26 32 0a  ake failed" >&2.
0640: 09 65 78 69 74 20 31 0a 66 69 0a 0a 61 75 74 6f  .exit 1.fi..auto
0650: 63 6f 6e 66 0a 0a 69 66 20 67 72 65 70 20 41 43  conf..if grep AC
0660: 5f 43 4f 4d 50 49 4c 45 5f 49 46 45 4c 53 45 20  _COMPILE_IFELSE 
0670: 61 63 6c 6f 63 61 6c 2f 61 78 5f 63 68 65 63 6b  aclocal/ax_check
0680: 5f 63 6f 6d 70 69 6c 65 5f 66 6c 61 67 2e 6d 34  _compile_flag.m4
0690: 20 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 20 74 68 65   >/dev/null; the
06a0: 6e 0a 09 73 65 64 20 27 73 40 41 43 5f 43 4f 4d  n..sed '[email protected]_COM
06b0: 50 49 4c 45 5f 49 46 45 4c 53 45 40 41 43 5f 4c  [email protected]_L
06c0: 49 4e 4b 5f 49 46 45 4c 53 45 40 67 27 20 61 63  [email protected]' ac
06d0: 6c 6f 63 61 6c 2f 61 78 5f 63 68 65 63 6b 5f 63  local/ax_check_c
06e0: 6f 6d 70 69 6c 65 5f 66 6c 61 67 2e 6d 34 20 3e  ompile_flag.m4 >
06f0: 20 61 63 6c 6f 63 61 6c 2f 61 78 5f 63 68 65 63   aclocal/ax_chec
0700: 6b 5f 63 6f 6d 70 69 6c 65 5f 66 6c 61 67 2e 6d  k_compile_flag.m
0710: 34 2e 6e 65 77 0a 09 6d 76 20 61 63 6c 6f 63 61  4.new..mv acloca
0720: 6c 2f 61 78 5f 63 68 65 63 6b 5f 63 6f 6d 70 69  l/ax_check_compi
0730: 6c 65 5f 66 6c 61 67 2e 6d 34 2e 6e 65 77 20 61  le_flag.m4.new a
0740: 63 6c 6f 63 61 6c 2f 61 78 5f 63 68 65 63 6b 5f  clocal/ax_check_
0750: 63 6f 6d 70 69 6c 65 5f 66 6c 61 67 2e 6d 34 0a  compile_flag.m4.
0760: 66 69 0a 0a 72 6d 20 2d 72 66 20 61 75 74 6f 6d  fi..rm -rf autom
0770: 34 74 65 2e 63 61 63 68 65 0a                    4te.cache.