Hex Artifact Content

Artifact eaa77b3a1b9b358254349d20906a93261a27adc2:


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 69 66 20 5b 20 21 20 2d 66 20  bash..if [ ! -f 
0020: 27 62 75 69 6c 64 2e 73 68 27 20 5d 3b 20 74 68  'build.sh' ]; th
0030: 65 6e 0a 09 65 63 68 6f 20 27 45 52 52 4f 52 3a  en..echo 'ERROR:
0040: 20 54 68 69 73 20 73 63 72 69 70 74 20 6d 75 73   This script mus
0050: 74 20 62 65 20 72 75 6e 20 66 72 6f 6d 20 74 68  t be run from th
0060: 65 20 64 69 72 65 63 74 6f 72 79 20 69 74 20 69  e directory it i
0070: 73 20 69 6e 27 20 3e 26 32 0a 0a 09 65 78 69 74  s in' >&2...exit
0080: 20 31 0a 66 69 0a 69 66 20 5b 20 2d 7a 20 22 24   1.fi.if [ -z "$
0090: 7b 54 43 4c 56 45 52 53 7d 22 20 5d 3b 20 74 68  {TCLVERS}" ]; th
00a0: 65 6e 0a 09 65 63 68 6f 20 27 45 52 52 4f 52 3a  en..echo 'ERROR:
00b0: 20 54 68 65 20 54 43 4c 56 45 52 53 20 65 6e 76   The TCLVERS env
00c0: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c  ironment variabl
00d0: 65 20 69 73 20 6e 6f 74 20 73 65 74 27 20 3e 26  e is not set' >&
00e0: 32 0a 0a 09 65 78 69 74 20 31 0a 66 69 0a 0a 54  2...exit 1.fi..T
00f0: 4c 53 56 45 52 53 3d 22 31 2e 36 2e 37 22 0a 53  LSVERS="1.6.7".S
0100: 52 43 3d 22 73 72 63 2f 74 6c 73 2d 24 7b 54 4c  RC="src/tls-${TL
0110: 53 56 45 52 53 7d 2e 74 61 72 2e 67 7a 22 0a 53  SVERS}.tar.gz".S
0120: 52 43 55 52 4c 3d 22 68 74 74 70 3a 2f 2f 73 6f  RCURL="http://so
0130: 75 72 63 65 66 6f 72 67 65 2e 6e 65 74 2f 70 72  urceforge.net/pr
0140: 6f 6a 65 63 74 73 2f 74 6c 73 2f 66 69 6c 65 73  ojects/tls/files
0150: 2f 74 6c 73 2f 24 7b 54 4c 53 56 45 52 53 7d 2f  /tls/${TLSVERS}/
0160: 74 6c 73 24 7b 54 4c 53 56 45 52 53 7d 2d 73 72  tls${TLSVERS}-sr
0170: 63 2e 74 61 72 2e 67 7a 22 0a 42 55 49 4c 44 44  c.tar.gz".BUILDD
0180: 49 52 3d 22 24 28 70 77 64 29 2f 62 75 69 6c 64  IR="$(pwd)/build
0190: 2f 74 6c 73 24 7b 54 4c 53 56 45 52 53 7d 22 0a  /tls${TLSVERS}".
01a0: 4f 55 54 44 49 52 3d 22 24 28 70 77 64 29 2f 6f  OUTDIR="$(pwd)/o
01b0: 75 74 22 0a 49 4e 53 54 44 49 52 3d 22 24 28 70  ut".INSTDIR="$(p
01c0: 77 64 29 2f 69 6e 73 74 22 0a 50 41 54 43 48 44  wd)/inst".PATCHD
01d0: 49 52 3d 22 24 28 70 77 64 29 2f 70 61 74 63 68  IR="$(pwd)/patch
01e0: 65 73 22 0a 65 78 70 6f 72 74 20 54 4c 53 56 45  es".export TLSVE
01f0: 52 53 20 53 52 43 20 53 52 43 55 52 4c 20 42 55  RS SRC SRCURL BU
0200: 49 4c 44 44 49 52 20 4f 55 54 44 49 52 20 49 4e  ILDDIR OUTDIR IN
0210: 53 54 44 49 52 20 50 41 54 43 48 44 49 52 0a 0a  STDIR PATCHDIR..
0220: 23 20 53 65 74 20 63 6f 6e 66 69 67 75 72 65 20  # Set configure 
0230: 6f 70 74 69 6f 6e 73 20 66 6f 72 20 74 68 69 73  options for this
0240: 20 73 75 62 2d 70 72 6f 6a 65 63 74 0a 4c 44 46   sub-project.LDF
0250: 4c 41 47 53 3d 22 24 7b 4c 44 46 4c 41 47 53 7d  LAGS="${LDFLAGS}
0260: 20 24 7b 4b 43 5f 54 4c 53 5f 4c 44 46 4c 41 47   ${KC_TLS_LDFLAG
0270: 53 7d 22 0a 43 46 4c 41 47 53 3d 22 24 7b 43 46  S}".CFLAGS="${CF
0280: 4c 41 47 53 7d 20 24 7b 4b 43 5f 54 4c 53 5f 43  LAGS} ${KC_TLS_C
0290: 46 4c 41 47 53 7d 22 0a 43 50 50 46 4c 41 47 53  FLAGS}".CPPFLAGS
02a0: 3d 22 24 7b 43 50 50 46 4c 41 47 53 7d 20 24 7b  ="${CPPFLAGS} ${
02b0: 4b 43 5f 54 4c 53 5f 43 50 50 46 4c 41 47 53 7d  KC_TLS_CPPFLAGS}
02c0: 22 0a 4c 49 42 53 3d 22 24 7b 4c 49 42 53 7d 20  ".LIBS="${LIBS} 
02d0: 24 7b 4b 43 5f 54 4c 53 5f 4c 49 42 53 7d 22 0a  ${KC_TLS_LIBS}".
02e0: 65 78 70 6f 72 74 20 4c 44 46 4c 41 47 53 20 43  export LDFLAGS C
02f0: 46 4c 41 47 53 20 43 50 50 46 4c 41 47 53 20 4c  FLAGS CPPFLAGS L
0300: 49 42 53 0a 0a 72 6d 20 2d 72 66 20 27 62 75 69  IBS..rm -rf 'bui
0310: 6c 64 27 20 27 6f 75 74 27 20 27 69 6e 73 74 27  ld' 'out' 'inst'
0320: 0a 6d 6b 64 69 72 20 27 62 75 69 6c 64 27 20 27  .mkdir 'build' '
0330: 6f 75 74 27 20 27 69 6e 73 74 27 20 7c 7c 20 65  out' 'inst' || e
0340: 78 69 74 20 31 0a 0a 54 43 4c 5f 56 45 52 53 49  xit 1..TCL_VERSI
0350: 4f 4e 3d 22 75 6e 6b 6e 6f 77 6e 22 0a 69 66 20  ON="unknown".if 
0360: 5b 20 2d 66 20 22 24 7b 54 43 4c 43 4f 4e 46 49  [ -f "${TCLCONFI
0370: 47 44 49 52 7d 2f 74 63 6c 43 6f 6e 66 69 67 2e  GDIR}/tclConfig.
0380: 73 68 22 20 5d 3b 20 74 68 65 6e 0a 20 20 20 20  sh" ]; then.    
0390: 20 20 20 20 73 6f 75 72 63 65 20 22 24 7b 54 43      source "${TC
03a0: 4c 43 4f 4e 46 49 47 44 49 52 7d 2f 74 63 6c 43  LCONFIGDIR}/tclC
03b0: 6f 6e 66 69 67 2e 73 68 22 0a 66 69 0a 65 78 70  onfig.sh".fi.exp
03c0: 6f 72 74 20 54 43 4c 5f 56 45 52 53 49 4f 4e 0a  ort TCL_VERSION.
03d0: 0a 69 66 20 5b 20 21 20 2d 66 20 22 24 7b 53 52  .if [ ! -f "${SR
03e0: 43 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 6d 6b 64  C}" ]; then..mkd
03f0: 69 72 20 27 73 72 63 27 20 3e 2f 64 65 76 2f 6e  ir 'src' >/dev/n
0400: 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e 75 6c 6c 0a  ull 2>/dev/null.
0410: 0a 09 69 66 20 5b 20 21 20 2d 64 20 27 62 75 69  ..if [ ! -d 'bui
0420: 6c 64 73 72 63 27 20 5d 3b 20 74 68 65 6e 0a 09  ldsrc' ]; then..
0430: 09 72 6d 20 2d 66 20 22 24 7b 53 52 43 7d 2e 74  .rm -f "${SRC}.t
0440: 6d 70 22 0a 09 09 77 67 65 74 20 2d 4f 20 22 24  mp"...wget -O "$
0450: 7b 53 52 43 7d 2e 74 6d 70 22 20 22 24 7b 53 52  {SRC}.tmp" "${SR
0460: 43 55 52 4c 7d 22 20 7c 7c 20 65 78 69 74 20 31  CURL}" || exit 1
0470: 0a 09 09 6d 76 20 22 24 7b 53 52 43 7d 2e 74 6d  ...mv "${SRC}.tm
0480: 70 22 20 22 24 7b 53 52 43 7d 22 0a 09 66 69 0a  p" "${SRC}"..fi.
0490: 66 69 0a 0a 28 0a 09 63 64 20 27 62 75 69 6c 64  fi..(..cd 'build
04a0: 27 20 7c 7c 20 65 78 69 74 20 31 0a 0a 09 69 66  ' || exit 1...if
04b0: 20 5b 20 21 20 2d 64 20 27 2e 2e 2f 62 75 69 6c   [ ! -d '../buil
04c0: 64 73 72 63 27 20 5d 3b 20 74 68 65 6e 0a 09 09  dsrc' ]; then...
04d0: 67 7a 69 70 20 2d 64 63 20 22 2e 2e 2f 24 7b 53  gzip -dc "../${S
04e0: 52 43 7d 22 20 7c 20 74 61 72 20 2d 78 66 20 2d  RC}" | tar -xf -
04f0: 0a 09 65 6c 73 65 20 20 20 20 0a 09 09 63 70 20  ..else    ...cp 
0500: 2d 72 70 20 2e 2e 2f 62 75 69 6c 64 73 72 63 2f  -rp ../buildsrc/
0510: 2a 20 27 2e 2f 27 0a 09 66 69 0a 0a 09 23 20 44  * './'..fi...# D
0520: 65 74 65 72 6d 69 6e 65 20 53 53 4c 20 64 69 72  etermine SSL dir
0530: 65 63 74 6f 72 79 0a 09 69 66 20 5b 20 2d 7a 20  ectory..if [ -z 
0540: 22 24 7b 43 50 50 7d 22 20 5d 3b 20 74 68 65 6e  "${CPP}" ]; then
0550: 0a 09 09 43 50 50 3d 22 24 7b 43 43 7d 20 2d 45  ...CPP="${CC} -E
0560: 22 0a 09 66 69 0a 0a 09 69 66 20 5b 20 2d 6e 20  "..fi...if [ -n 
0570: 22 24 7b 4b 43 5f 54 4c 53 5f 53 53 4c 44 49 52  "${KC_TLS_SSLDIR
0580: 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 09 53 53 4c  }" ]; then...SSL
0590: 44 49 52 3d 22 24 7b 4b 43 5f 54 4c 53 5f 53 53  DIR="${KC_TLS_SS
05a0: 4c 44 49 52 7d 22 0a 09 65 6c 73 65 0a 09 09 53  LDIR}"..else...S
05b0: 53 4c 44 49 52 3d 22 24 28 65 63 68 6f 20 27 23  SLDIR="$(echo '#
05c0: 69 6e 63 6c 75 64 65 20 3c 6f 70 65 6e 73 73 6c  include <openssl
05d0: 2f 73 73 6c 2e 68 3e 27 20 32 3e 2f 64 65 76 2f  /ssl.h>' 2>/dev/
05e0: 6e 75 6c 6c 20 7c 20 24 7b 43 50 50 7d 20 2d 20  null | ${CPP} - 
05f0: 7c 20 61 77 6b 20 27 2f 23 20 31 20 22 5c 2f 2e  | awk '/# 1 "\/.
0600: 2a 5c 2f 73 73 6c 5c 2e 68 2f 7b 20 70 72 69 6e  *\/ssl\.h/{ prin
0610: 74 20 24 33 3b 20 65 78 69 74 20 7d 27 20 7c 20  t $3; exit }' | 
0620: 73 65 64 20 27 73 40 5e 22 40 40 3b 73 40 22 24  sed 's@^"@@;s@"$
0630: 40 40 3b 73 40 2f 69 6e 63 6c 75 64 65 2f 6f 70  @@;s@/include/op
0640: 65 6e 73 73 6c 2f 73 73 6c 5c 2e 68 24 40 40 27  enssl/ssl\.h$@@'
0650: 29 22 0a 09 09 69 66 20 5b 20 2d 7a 20 22 24 7b  )"...if [ -z "${
0660: 53 53 4c 44 49 52 7d 22 20 5d 3b 20 74 68 65 6e  SSLDIR}" ]; then
0670: 0a 09 09 09 65 63 68 6f 20 22 55 6e 61 62 6c 65  ....echo "Unable
0680: 20 74 6f 20 66 69 6e 64 20 4f 70 65 6e 53 53 4c   to find OpenSSL
0690: 2c 20 61 62 6f 72 74 69 6e 67 2e 22 20 3e 26 32  , aborting." >&2
06a0: 0a 0a 09 09 09 65 78 69 74 20 31 0a 09 09 66 69  .....exit 1...fi
06b0: 0a 09 66 69 0a 0a 09 23 20 41 70 70 6c 79 20 72  ..fi...# Apply r
06c0: 65 71 75 69 72 65 64 20 70 61 74 63 68 65 73 0a  equired patches.
06d0: 09 63 64 20 22 24 7b 42 55 49 4c 44 44 49 52 7d  .cd "${BUILDDIR}
06e0: 22 20 7c 7c 20 65 78 69 74 20 31 0a 09 66 6f 72  " || exit 1..for
06f0: 20 70 61 74 63 68 20 69 6e 20 22 24 7b 50 41 54   patch in "${PAT
0700: 43 48 44 49 52 7d 2f 61 6c 6c 22 2f 74 6c 73 2d  CHDIR}/all"/tls-
0710: 24 7b 54 4c 53 56 45 52 53 7d 2d 2a 2e 64 69 66  ${TLSVERS}-*.dif
0720: 66 20 22 24 7b 50 41 54 43 48 44 49 52 7d 2f 24  f "${PATCHDIR}/$
0730: 7b 54 43 4c 5f 56 45 52 53 49 4f 4e 7d 22 2f 74  {TCL_VERSION}"/t
0740: 6c 73 2d 24 7b 54 4c 53 56 45 52 53 7d 2d 2a 2e  ls-${TLSVERS}-*.
0750: 64 69 66 66 3b 20 64 6f 0a 09 09 69 66 20 5b 20  diff; do...if [ 
0760: 21 20 2d 66 20 22 24 7b 70 61 74 63 68 7d 22 20  ! -f "${patch}" 
0770: 5d 3b 20 74 68 65 6e 0a 09 09 09 63 6f 6e 74 69  ]; then....conti
0780: 6e 75 65 0a 09 09 66 69 0a 0a 09 09 65 63 68 6f  nue...fi....echo
0790: 20 22 41 70 70 6c 79 69 6e 67 3a 20 24 7b 70 61   "Applying: ${pa
07a0: 74 63 68 7d 22 0a 09 09 24 7b 50 41 54 43 48 3a  tch}"...${PATCH:
07b0: 2d 70 61 74 63 68 7d 20 2d 70 31 20 3c 20 22 24  -patch} -p1 < "$
07c0: 7b 70 61 74 63 68 7d 22 0a 09 64 6f 6e 65 0a 0a  {patch}"..done..
07d0: 09 63 64 20 22 24 7b 42 55 49 4c 44 44 49 52 7d  .cd "${BUILDDIR}
07e0: 22 20 7c 7c 20 65 78 69 74 20 31 0a 0a 09 23 20  " || exit 1...# 
07f0: 54 72 79 20 74 6f 20 62 75 69 6c 64 20 61 73 20  Try to build as 
0800: 61 20 73 68 61 72 65 64 20 6f 62 6a 65 63 74 20  a shared object 
0810: 69 66 20 72 65 71 75 65 73 74 65 64 0a 09 69 66  if requested..if
0820: 20 5b 20 22 24 7b 53 54 41 54 49 43 54 4c 53 7d   [ "${STATICTLS}
0830: 22 20 3d 20 22 30 22 20 5d 3b 20 74 68 65 6e 0a  " = "0" ]; then.
0840: 09 09 74 72 79 6f 70 74 73 3d 22 2d 2d 65 6e 61  ..tryopts="--ena
0850: 62 6c 65 2d 73 68 61 72 65 64 20 2d 2d 64 69 73  ble-shared --dis
0860: 61 62 6c 65 2d 73 68 61 72 65 64 22 0a 09 65 6c  able-shared"..el
0870: 69 66 20 5b 20 22 24 7b 53 54 41 54 49 43 54 4c  if [ "${STATICTL
0880: 53 7d 22 20 3d 20 22 2d 31 22 20 5d 3b 20 74 68  S}" = "-1" ]; th
0890: 65 6e 0a 09 09 74 72 79 6f 70 74 73 3d 22 2d 2d  en...tryopts="--
08a0: 65 6e 61 62 6c 65 2d 73 68 61 72 65 64 22 0a 09  enable-shared"..
08b0: 65 6c 73 65 0a 09 09 74 72 79 6f 70 74 73 3d 22  else...tryopts="
08c0: 2d 2d 64 69 73 61 62 6c 65 2d 73 68 61 72 65 64  --disable-shared
08d0: 22 0a 09 66 69 0a 0a 09 23 20 44 69 73 61 62 6c  "..fi...# Disabl
08e0: 65 20 53 53 4c 76 32 2c 20 6e 65 77 65 72 20 53  e SSLv2, newer S
08f0: 53 4c 20 6c 69 62 72 61 72 69 65 73 20 64 72 6f  SL libraries dro
0900: 70 20 73 75 70 70 6f 72 74 20 66 6f 72 20 69 74  p support for it
0910: 20 65 6e 74 69 72 65 6c 79 0a 09 43 46 4c 41 47   entirely..CFLAG
0920: 53 3d 22 24 7b 43 46 4c 41 47 53 7d 20 2d 44 4e  S="${CFLAGS} -DN
0930: 4f 5f 53 53 4c 32 3d 31 22 0a 0a 09 53 41 56 45  O_SSL2=1"...SAVE
0940: 5f 43 46 4c 41 47 53 3d 22 24 7b 43 46 4c 41 47  _CFLAGS="${CFLAG
0950: 53 7d 22 0a 09 53 41 56 45 5f 4c 49 42 53 3d 22  S}"..SAVE_LIBS="
0960: 24 7b 4c 49 42 53 7d 22 0a 09 66 6f 72 20 74 72  ${LIBS}"..for tr
0970: 79 6f 70 74 20 69 6e 20 24 74 72 79 6f 70 74 73  yopt in $tryopts
0980: 20 5f 5f 66 61 69 6c 5f 5f 3b 20 64 6f 0a 09 09   __fail__; do...
0990: 43 46 4c 41 47 53 3d 22 24 7b 53 41 56 45 5f 43  CFLAGS="${SAVE_C
09a0: 46 4c 41 47 53 7d 22 0a 09 09 4c 49 42 53 3d 22  FLAGS}"...LIBS="
09b0: 24 7b 53 41 56 45 5f 4c 49 42 53 7d 22 0a 09 09  ${SAVE_LIBS}"...
09c0: 65 78 70 6f 72 74 20 43 46 4c 41 47 53 20 4c 49  export CFLAGS LI
09d0: 42 53 0a 0a 09 09 23 20 43 6c 65 61 6e 20 75 70  BS....# Clean up
09e0: 2c 20 69 66 20 6e 65 65 64 65 64 0a 09 09 6d 61  , if needed...ma
09f0: 6b 65 20 64 69 73 74 63 6c 65 61 6e 20 3e 2f 64  ke distclean >/d
0a00: 65 76 2f 6e 75 6c 6c 20 32 3e 2f 64 65 76 2f 6e  ev/null 2>/dev/n
0a10: 75 6c 6c 0a 09 09 72 6d 20 2d 72 66 20 22 24 7b  ull...rm -rf "${
0a20: 49 4e 53 54 44 49 52 7d 22 0a 09 09 6d 6b 64 69  INSTDIR}"...mkdi
0a30: 72 20 22 24 7b 49 4e 53 54 44 49 52 7d 22 0a 0a  r "${INSTDIR}"..
0a40: 09 09 69 66 20 5b 20 22 24 7b 74 72 79 6f 70 74  ..if [ "${tryopt
0a50: 7d 22 20 3d 20 22 5f 5f 66 61 69 6c 5f 5f 22 20  }" = "__fail__" 
0a60: 5d 3b 20 74 68 65 6e 0a 09 09 09 65 78 69 74 20  ]; then....exit 
0a70: 31 0a 09 09 66 69 0a 0a 09 09 69 66 20 5b 20 22  1...fi....if [ "
0a80: 24 7b 74 72 79 6f 70 74 7d 22 20 3d 3d 20 22 2d  ${tryopt}" == "-
0a90: 2d 65 6e 61 62 6c 65 2d 73 68 61 72 65 64 22 20  -enable-shared" 
0aa0: 5d 3b 20 74 68 65 6e 0a 09 09 09 69 73 73 68 61  ]; then....issha
0ab0: 72 65 64 3d 22 31 22 0a 09 09 65 6c 73 65 0a 09  red="1"...else..
0ac0: 09 09 69 73 73 68 61 72 65 64 3d 22 30 22 0a 09  ..isshared="0"..
0ad0: 09 66 69 0a 0a 09 09 23 20 49 66 20 62 75 69 6c  .fi....# If buil
0ae0: 64 69 6e 67 20 61 20 73 68 61 72 65 64 20 54 4c  ding a shared TL
0af0: 53 2c 20 61 64 64 20 74 68 65 20 4c 49 4e 4b 41  S, add the LINKA
0b00: 44 44 20 6c 69 62 72 61 72 69 65 73 20 68 65 72  DD libraries her
0b10: 65 0a 09 09 69 66 20 5b 20 22 24 7b 69 73 73 68  e...if [ "${issh
0b20: 61 72 65 64 7d 22 20 3d 20 27 31 27 20 5d 3b 20  ared}" = '1' ]; 
0b30: 74 68 65 6e 0a 09 09 09 4c 49 42 53 3d 22 24 7b  then....LIBS="${
0b40: 4c 49 42 53 7d 20 24 7b 4b 43 5f 54 4c 53 5f 4c  LIBS} ${KC_TLS_L
0b50: 49 4e 4b 41 44 44 7d 22 0a 09 09 66 69 0a 0a 09  INKADD}"...fi...
0b60: 09 23 20 49 66 20 62 75 69 6c 64 20 61 20 73 74  .# If build a st
0b70: 61 74 69 63 20 54 4c 53 20 66 6f 72 20 4b 69 74  atic TLS for Kit
0b80: 44 4c 4c 2c 20 65 6e 73 75 72 65 20 74 68 61 74  DLL, ensure that
0b90: 20 77 65 20 75 73 65 20 50 49 43 0a 09 09 23 20   we use PIC...# 
0ba0: 73 6f 20 74 68 61 74 20 69 74 20 63 61 6e 20 62  so that it can b
0bb0: 65 20 6c 69 6e 6b 65 64 20 69 6e 74 6f 20 74 68  e linked into th
0bc0: 65 20 73 68 61 72 65 64 20 6f 62 6a 65 63 74 0a  e shared object.
0bd0: 09 09 69 66 20 5b 20 22 24 7b 69 73 73 68 61 72  ..if [ "${isshar
0be0: 65 64 7d 22 20 3d 20 22 30 22 20 2d 61 20 22 24  ed}" = "0" -a "$
0bf0: 7b 4b 49 54 54 41 52 47 45 54 7d 22 20 3d 20 22  {KITTARGET}" = "
0c00: 6b 69 74 64 6c 6c 22 20 5d 3b 20 74 68 65 6e 0a  kitdll" ]; then.
0c10: 09 09 09 43 46 4c 41 47 53 3d 22 24 7b 43 46 4c  ...CFLAGS="${CFL
0c20: 41 47 53 7d 20 2d 66 50 49 43 22 0a 09 09 66 69  AGS} -fPIC"...fi
0c30: 0a 0a 09 09 69 66 20 5b 20 22 24 7b 69 73 73 68  ....if [ "${issh
0c40: 61 72 65 64 7d 22 20 3d 20 27 30 27 20 5d 3b 20  ared}" = '0' ]; 
0c50: 74 68 65 6e 0a 09 09 09 73 65 64 20 27 73 40 55  then....sed 's@U
0c60: 53 45 5f 54 43 4c 5f 53 54 55 42 53 40 58 58 58  SE_TCL_STUBS@XXX
0c70: 5f 54 43 4c 5f 53 54 55 42 53 40 67 27 20 63 6f  _TCL_STUBS@g' co
0c80: 6e 66 69 67 75 72 65 20 3e 20 63 6f 6e 66 69 67  nfigure > config
0c90: 75 72 65 2e 6e 65 77 0a 09 09 65 6c 73 65 0a 09  ure.new...else..
0ca0: 09 09 73 65 64 20 27 73 40 58 58 58 5f 54 43 4c  ..sed 's@XXX_TCL
0cb0: 5f 53 54 55 42 53 40 55 53 45 5f 54 43 4c 5f 53  _STUBS@USE_TCL_S
0cc0: 54 55 42 53 40 67 27 20 63 6f 6e 66 69 67 75 72  TUBS@g' configur
0cd0: 65 20 3e 20 63 6f 6e 66 69 67 75 72 65 2e 6e 65  e > configure.ne
0ce0: 77 0a 09 09 66 69 0a 09 09 63 61 74 20 63 6f 6e  w...fi...cat con
0cf0: 66 69 67 75 72 65 2e 6e 65 77 20 3e 20 63 6f 6e  figure.new > con
0d00: 66 69 67 75 72 65 0a 09 09 72 6d 20 2d 66 20 63  figure...rm -f c
0d10: 6f 6e 66 69 67 75 72 65 2e 6e 65 77 0a 0a 09 09  onfigure.new....
0d20: 28 0a 09 09 09 65 63 68 6f 20 22 52 75 6e 6e 69  (....echo "Runni
0d30: 6e 67 3a 20 2e 2f 63 6f 6e 66 69 67 75 72 65 20  ng: ./configure 
0d40: 24 74 72 79 6f 70 74 20 2d 2d 70 72 65 66 69 78  $tryopt --prefix
0d50: 3d 5c 22 24 7b 49 4e 53 54 44 49 52 7d 5c 22 20  =\"${INSTDIR}\" 
0d60: 2d 2d 65 78 65 63 2d 70 72 65 66 69 78 3d 5c 22  --exec-prefix=\"
0d70: 24 7b 49 4e 53 54 44 49 52 7d 5c 22 20 2d 2d 6c  ${INSTDIR}\" --l
0d80: 69 62 64 69 72 3d 5c 22 24 7b 49 4e 53 54 44 49  ibdir=\"${INSTDI
0d90: 52 7d 2f 6c 69 62 5c 22 20 2d 2d 77 69 74 68 2d  R}/lib\" --with-
0da0: 74 63 6c 3d 5c 22 24 7b 54 43 4c 43 4f 4e 46 49  tcl=\"${TCLCONFI
0db0: 47 44 49 52 7d 5c 22 20 2d 2d 77 69 74 68 2d 73  GDIR}\" --with-s
0dc0: 73 6c 2d 64 69 72 3d 5c 22 24 7b 53 53 4c 44 49  sl-dir=\"${SSLDI
0dd0: 52 7d 5c 22 20 24 7b 43 4f 4e 46 49 47 55 52 45  R}\" ${CONFIGURE
0de0: 45 58 54 52 41 7d 22 0a 09 09 09 2e 2f 63 6f 6e  EXTRA}"...../con
0df0: 66 69 67 75 72 65 20 24 74 72 79 6f 70 74 20 2d  figure $tryopt -
0e00: 2d 70 72 65 66 69 78 3d 22 24 7b 49 4e 53 54 44  -prefix="${INSTD
0e10: 49 52 7d 22 20 2d 2d 65 78 65 63 2d 70 72 65 66  IR}" --exec-pref
0e20: 69 78 3d 22 24 7b 49 4e 53 54 44 49 52 7d 22 20  ix="${INSTDIR}" 
0e30: 2d 2d 6c 69 62 64 69 72 3d 22 24 7b 49 4e 53 54  --libdir="${INST
0e40: 44 49 52 7d 2f 6c 69 62 22 20 2d 2d 77 69 74 68  DIR}/lib" --with
0e50: 2d 74 63 6c 3d 22 24 7b 54 43 4c 43 4f 4e 46 49  -tcl="${TCLCONFI
0e60: 47 44 49 52 7d 22 20 2d 2d 77 69 74 68 2d 73 73  GDIR}" --with-ss
0e70: 6c 2d 64 69 72 3d 22 24 7b 53 53 4c 44 49 52 7d  l-dir="${SSLDIR}
0e80: 22 20 24 7b 43 4f 4e 46 49 47 55 52 45 45 58 54  " ${CONFIGUREEXT
0e90: 52 41 7d 0a 0a 09 09 09 65 63 68 6f 20 22 52 75  RA}.....echo "Ru
0ea0: 6e 6e 69 6e 67 3a 20 24 7b 4d 41 4b 45 3a 2d 6d  nning: ${MAKE:-m
0eb0: 61 6b 65 7d 20 74 63 6c 6c 69 62 64 69 72 3d 5c  ake} tcllibdir=\
0ec0: 22 24 7b 49 4e 53 54 44 49 52 7d 2f 6c 69 62 5c  "${INSTDIR}/lib\
0ed0: 22 20 41 52 3d 5c 22 24 7b 41 52 3a 2d 61 72 7d  " AR=\"${AR:-ar}
0ee0: 5c 22 20 52 41 4e 4c 49 42 3d 5c 22 24 7b 52 41  \" RANLIB=\"${RA
0ef0: 4e 4c 49 42 3a 2d 72 61 6e 6c 69 62 7d 5c 22 22  NLIB:-ranlib}\""
0f00: 0a 09 09 09 24 7b 4d 41 4b 45 3a 2d 6d 61 6b 65  ....${MAKE:-make
0f10: 7d 20 74 63 6c 6c 69 62 64 69 72 3d 22 24 7b 49  } tcllibdir="${I
0f20: 4e 53 54 44 49 52 7d 2f 6c 69 62 22 20 41 52 3d  NSTDIR}/lib" AR=
0f30: 22 24 7b 41 52 3a 2d 61 72 7d 22 20 52 41 4e 4c  "${AR:-ar}" RANL
0f40: 49 42 3d 22 24 7b 52 41 4e 4c 49 42 3a 2d 72 61  IB="${RANLIB:-ra
0f50: 6e 6c 69 62 7d 22 20 7c 7c 20 65 78 69 74 20 31  nlib}" || exit 1
0f60: 0a 0a 09 09 09 65 63 68 6f 20 22 52 75 6e 6e 69  .....echo "Runni
0f70: 6e 67 3a 20 24 7b 4d 41 4b 45 3a 2d 6d 61 6b 65  ng: ${MAKE:-make
0f80: 7d 20 74 63 6c 6c 69 62 64 69 72 3d 5c 22 24 7b  } tcllibdir=\"${
0f90: 49 4e 53 54 44 49 52 7d 2f 6c 69 62 5c 22 20 41  INSTDIR}/lib\" A
0fa0: 52 3d 5c 22 24 7b 41 52 3a 2d 61 72 7d 5c 22 20  R=\"${AR:-ar}\" 
0fb0: 52 41 4e 4c 49 42 3d 5c 22 24 7b 52 41 4e 4c 49  RANLIB=\"${RANLI
0fc0: 42 3a 2d 72 61 6e 6c 69 62 7d 5c 22 20 69 6e 73  B:-ranlib}\" ins
0fd0: 74 61 6c 6c 22 0a 09 09 09 24 7b 4d 41 4b 45 3a  tall"....${MAKE:
0fe0: 2d 6d 61 6b 65 7d 20 74 63 6c 6c 69 62 64 69 72  -make} tcllibdir
0ff0: 3d 22 24 7b 49 4e 53 54 44 49 52 7d 2f 6c 69 62  ="${INSTDIR}/lib
1000: 22 20 41 52 3d 22 24 7b 41 52 3a 2d 61 72 7d 22  " AR="${AR:-ar}"
1010: 20 52 41 4e 4c 49 42 3d 22 24 7b 52 41 4e 4c 49   RANLIB="${RANLI
1020: 42 3a 2d 72 61 6e 6c 69 62 7d 22 20 69 6e 73 74  B:-ranlib}" inst
1030: 61 6c 6c 20 7c 7c 20 65 78 69 74 20 31 0a 09 09  all || exit 1...
1040: 29 20 7c 7c 20 63 6f 6e 74 69 6e 75 65 0a 0a 09  ) || continue...
1050: 09 23 20 44 65 74 65 72 6d 69 6e 65 20 53 53 4c  .# Determine SSL
1060: 20 6c 69 62 72 61 72 79 20 64 69 72 65 63 74 6f   library directo
1070: 72 79 0a 09 09 53 53 4c 5f 4c 49 42 5f 44 49 52  ry...SSL_LIB_DIR
1080: 3d 22 24 28 24 7b 4d 41 4b 45 3a 2d 6d 61 6b 65  ="$(${MAKE:-make
1090: 7d 20 2d 2d 70 72 69 6e 74 2d 64 61 74 61 2d 62  } --print-data-b
10a0: 61 73 65 20 7c 20 61 77 6b 20 27 2f 5e 53 53 4c  ase | awk '/^SSL
10b0: 5f 4c 49 42 5f 44 49 52 20 3d 20 2f 7b 20 70 72  _LIB_DIR = /{ pr
10c0: 69 6e 74 20 7d 27 20 7c 20 73 65 64 20 27 73 40  int }' | sed 's@
10d0: 5e 53 53 4c 5f 4c 49 42 5f 44 49 52 20 3d 20 2a  ^SSL_LIB_DIR = *
10e0: 40 40 27 29 22 0a 0a 09 09 65 63 68 6f 20 22 53  @@')"....echo "S
10f0: 53 4c 5f 4c 49 42 5f 44 49 52 20 3d 20 24 7b 53  SL_LIB_DIR = ${S
1100: 53 4c 5f 4c 49 42 5f 44 49 52 7d 22 0a 0a 09 09  SL_LIB_DIR}"....
1110: 62 72 65 61 6b 0a 09 64 6f 6e 65 0a 0a 09 23 20  break..done...# 
1120: 43 72 65 61 74 65 20 70 6b 67 49 6e 64 65 78 20  Create pkgIndex 
1130: 69 66 20 6e 65 65 64 65 64 0a 09 69 66 20 5b 20  if needed..if [ 
1140: 21 20 2d 65 20 22 24 7b 49 4e 53 54 44 49 52 7d  ! -e "${INSTDIR}
1150: 2f 6c 69 62 2f 74 6c 73 24 7b 54 4c 53 56 45 52  /lib/tls${TLSVER
1160: 53 7d 2f 70 6b 67 49 6e 64 65 78 2e 74 63 6c 22  S}/pkgIndex.tcl"
1170: 20 5d 3b 20 74 68 65 6e 0a 09 09 63 61 74 20 3c   ]; then...cat <
1180: 3c 20 5f 45 4f 46 5f 20 3e 20 22 24 7b 49 4e 53  < _EOF_ > "${INS
1190: 54 44 49 52 7d 2f 6c 69 62 2f 74 6c 73 24 7b 54  TDIR}/lib/tls${T
11a0: 4c 53 56 45 52 53 7d 2f 70 6b 67 49 6e 64 65 78  LSVERS}/pkgIndex
11b0: 2e 74 63 6c 22 0a 70 61 63 6b 61 67 65 20 69 66  .tcl".package if
11c0: 6e 65 65 64 65 64 20 74 6c 73 20 24 7b 54 4c 53  needed tls ${TLS
11d0: 56 45 52 53 7d 20 5c 0a 20 20 20 20 22 5b 6c 69  VERS} \.    "[li
11e0: 73 74 20 73 6f 75 72 63 65 20 5b 66 69 6c 65 20  st source [file 
11f0: 6a 6f 69 6e 20 5c 24 64 69 72 20 74 6c 73 2e 74  join \$dir tls.t
1200: 63 6c 5d 5d 20 3b 20 5c 0a 20 20 20 20 20 5b 6c  cl]] ; \.     [l
1210: 69 73 74 20 6c 6f 61 64 20 7b 7d 20 74 6c 73 5d  ist load {} tls]
1220: 22 0a 5f 45 4f 46 5f 0a 09 66 69 0a 0a 09 23 20  "._EOF_..fi...# 
1230: 44 65 74 65 72 6d 69 6e 65 20 6e 61 6d 65 20 6f  Determine name o
1240: 66 20 73 74 61 74 69 63 20 6f 62 6a 65 63 74 0a  f static object.
1250: 09 4c 49 4e 4b 41 44 44 46 49 4c 45 3d 22 24 28  .LINKADDFILE="$(
1260: 66 69 6e 64 20 22 24 7b 49 4e 53 54 44 49 52 7d  find "${INSTDIR}
1270: 22 20 2d 6e 61 6d 65 20 27 2a 2e 61 27 20 7c 20  " -name '*.a' | 
1280: 68 65 61 64 20 2d 6e 20 31 29 22 0a 09 69 66 20  head -n 1)"..if 
1290: 5b 20 2d 6e 20 22 24 7b 4c 49 4e 4b 41 44 44 46  [ -n "${LINKADDF
12a0: 49 4c 45 7d 22 20 5d 3b 20 74 68 65 6e 0a 09 09  ILE}" ]; then...
12b0: 4c 49 4e 4b 41 44 44 46 49 4c 45 3d 22 24 7b 4c  LINKADDFILE="${L
12c0: 49 4e 4b 41 44 44 46 49 4c 45 7d 2e 6c 69 6e 6b  INKADDFILE}.link
12d0: 61 64 64 22 0a 0a 09 09 23 23 20 58 58 58 3a 20  add"....## XXX: 
12e0: 54 4f 44 4f 3a 20 44 65 74 65 72 6d 69 6e 65 20  TODO: Determine 
12f0: 77 68 61 74 20 77 65 20 61 63 74 75 61 6c 6c 79  what we actually
1300: 20 6e 65 65 64 20 74 6f 20 6c 69 6e 6b 20 61 67   need to link ag
1310: 61 69 6e 73 74 0a 09 09 61 64 64 6c 69 62 73 3d  ainst...addlibs=
1320: 22 2d 4c 24 7b 53 53 4c 5f 4c 49 42 5f 44 49 52  "-L${SSL_LIB_DIR
1330: 3a 2d 2f 6c 69 62 7d 20 2d 6c 73 73 6c 20 2d 6c  :-/lib} -lssl -l
1340: 63 72 79 70 74 6f 20 24 7b 4b 43 5f 54 4c 53 5f  crypto ${KC_TLS_
1350: 4c 49 4e 4b 41 44 44 7d 22 0a 09 09 61 64 64 6c  LINKADD}"...addl
1360: 69 62 73 5f 73 74 61 74 69 63 4f 6e 6c 79 3d 22  ibs_staticOnly="
1370: 22 0a 09 09 69 66 20 5b 20 22 24 7b 4b 43 5f 54  "...if [ "${KC_T
1380: 4c 53 5f 4c 49 4e 4b 53 53 4c 53 54 41 54 49 43  LS_LINKSSLSTATIC
1390: 7d 22 20 3d 20 27 31 27 20 5d 3b 20 74 68 65 6e  }" = '1' ]; then
13a0: 0a 09 09 09 65 63 68 6f 20 22 2d 57 6c 2c 2d 42  ....echo "-Wl,-B
13b0: 73 74 61 74 69 63 20 24 7b 61 64 64 6c 69 62 73  static ${addlibs
13c0: 7d 20 24 7b 61 64 64 6c 69 62 73 5f 73 74 61 74  } ${addlibs_stat
13d0: 69 63 4f 6e 6c 79 7d 20 2d 57 6c 2c 2d 42 64 79  icOnly} -Wl,-Bdy
13e0: 6e 61 6d 69 63 22 0a 09 09 65 6c 73 65 0a 09 09  namic"...else...
13f0: 09 65 63 68 6f 20 22 24 7b 61 64 64 6c 69 62 73  .echo "${addlibs
1400: 7d 22 0a 09 09 66 69 20 3e 20 22 24 7b 4c 49 4e  }"...fi > "${LIN
1410: 4b 41 44 44 46 49 4c 45 7d 22 0a 09 66 69 0a 0a  KADDFILE}"..fi..
1420: 09 23 20 49 6e 73 74 61 6c 6c 20 66 69 6c 65 73  .# Install files
1430: 20 6e 65 65 64 65 64 20 62 79 20 69 6e 73 74 61   needed by insta
1440: 6c 6c 61 74 69 6f 6e 0a 09 63 70 20 2d 72 20 22  llation..cp -r "
1450: 24 7b 49 4e 53 54 44 49 52 7d 2f 6c 69 62 22 20  ${INSTDIR}/lib" 
1460: 22 24 7b 4f 55 54 44 49 52 7d 22 20 7c 7c 20 65  "${OUTDIR}" || e
1470: 78 69 74 20 31 0a 09 66 69 6e 64 20 22 24 7b 4f  xit 1..find "${O
1480: 55 54 44 49 52 7d 22 20 2d 6e 61 6d 65 20 27 2a  UTDIR}" -name '*
1490: 2e 61 27 20 2d 74 79 70 65 20 66 20 7c 20 78 61  .a' -type f | xa
14a0: 72 67 73 20 2d 6e 20 31 20 72 6d 20 2d 66 20 2d  rgs -n 1 rm -f -
14b0: 2d 0a 0a 09 65 78 69 74 20 30 0a 29 20 7c 7c 20  -...exit 0.) || 
14c0: 65 78 69 74 20 31 0a 0a 65 78 69 74 20 30 0a     exit 1..exit 0.