Hex Artifact Content

Artifact e14d0ef841578016afdd8ff9dcba62248674e0e40abb035e12d316976410c3a7:


0000: 23 0a 23 20 49 6e 63 6c 75 64 65 20 74 68 65 20  #.# Include the 
0010: 54 45 41 20 73 74 61 6e 64 61 72 64 20 6d 61 63  TEA standard mac
0020: 72 6f 20 73 65 74 0a 23 0a 0a 62 75 69 6c 74 69  ro set.#..builti
0030: 6e 28 69 6e 63 6c 75 64 65 2c 74 63 6c 63 6f 6e  n(include,tclcon
0040: 66 69 67 2f 74 63 6c 2e 6d 34 29 0a 0a 23 0a 23  fig/tcl.m4)..#.#
0050: 20 41 64 64 20 68 65 72 65 20 77 68 61 74 65 76   Add here whatev
0060: 65 72 20 6d 34 20 6d 61 63 72 6f 73 20 79 6f 75  er m4 macros you
0070: 20 77 61 6e 74 20 74 6f 20 64 65 66 69 6e 65 20   want to define 
0080: 66 6f 72 20 79 6f 75 72 20 70 61 63 6b 61 67 65  for your package
0090: 0a 23 0a 0a 64 6e 6c 20 24 31 20 3d 20 44 65 73  .#..dnl $1 = Des
00a0: 63 72 69 70 74 69 6f 6e 20 74 6f 20 73 68 6f 77  cription to show
00b0: 20 75 73 65 72 0a 64 6e 6c 20 24 32 20 3d 20 4c   user.dnl $2 = L
00c0: 69 62 72 61 72 69 65 73 20 74 6f 20 6c 69 6e 6b  ibraries to link
00d0: 20 74 6f 0a 64 6e 6c 20 24 33 20 3d 20 56 61 72   to.dnl $3 = Var
00e0: 69 61 62 6c 65 20 74 6f 20 75 70 64 61 74 65 20  iable to update 
00f0: 28 6f 70 74 69 6f 6e 61 6c 3b 20 64 65 66 61 75  (optional; defau
0100: 6c 74 20 4c 49 42 53 29 0a 64 6e 6c 20 24 34 20  lt LIBS).dnl $4 
0110: 3d 20 41 63 74 69 6f 6e 20 74 6f 20 72 75 6e 20  = Action to run 
0120: 69 66 20 66 6f 75 6e 64 0a 64 6e 6c 20 24 35 20  if found.dnl $5 
0130: 3d 20 41 63 74 69 6f 6e 20 74 6f 20 72 75 6e 20  = Action to run 
0140: 69 66 20 6e 6f 74 20 66 6f 75 6e 64 0a 41 43 5f  if not found.AC_
0150: 44 45 46 55 4e 28 5b 53 48 4f 42 4a 5f 44 4f 5f  DEFUN([SHOBJ_DO_
0160: 53 54 41 54 49 43 5f 4c 49 4e 4b 5f 4c 49 42 5d  STATIC_LINK_LIB]
0170: 2c 20 5b 0a 20 20 20 20 20 20 20 20 69 66 65 6c  , [.        ifel
0180: 73 65 28 24 33 2c 20 5b 5d 2c 20 5b 0a 20 20 20  se($3, [], [.   
0190: 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66               def
01a0: 69 6e 65 28 5b 56 41 52 5f 54 4f 5f 55 50 44 41  ine([VAR_TO_UPDA
01b0: 54 45 5d 2c 20 5b 4c 49 42 53 5d 29 0a 20 20 20  TE], [LIBS]).   
01c0: 20 20 20 20 20 5d 2c 20 5b 0a 20 20 20 20 20 20       ], [.      
01d0: 20 20 20 20 20 20 20 20 20 20 64 65 66 69 6e 65            define
01e0: 28 5b 56 41 52 5f 54 4f 5f 55 50 44 41 54 45 5d  ([VAR_TO_UPDATE]
01f0: 2c 20 5b 24 33 5d 29 0a 20 20 20 20 20 20 20 20  , [$3]).        
0200: 5d 29 0a 0a 09 41 43 5f 4d 53 47 5f 43 48 45 43  ])...AC_MSG_CHEC
0210: 4b 49 4e 47 28 5b 66 6f 72 20 68 6f 77 20 74 6f  KING([for how to
0220: 20 73 74 61 74 69 63 61 6c 6c 79 20 6c 69 6e 6b   statically link
0230: 20 74 6f 20 24 31 5d 29 0a 0a 09 74 72 79 6c 69   to $1])...tryli
0240: 6e 6b 5f 41 44 44 5f 4c 44 46 4c 41 47 53 3d 27  nk_ADD_LDFLAGS='
0250: 27 0a 09 66 6f 72 20 61 72 67 20 69 6e 20 24 56  '..for arg in $V
0260: 41 52 5f 54 4f 5f 55 50 44 41 54 45 3b 20 64 6f  AR_TO_UPDATE; do
0270: 0a 09 09 63 61 73 65 20 22 24 7b 61 72 67 7d 22  ...case "${arg}"
0280: 20 69 6e 0a 09 09 09 2d 4c 2a 29 0a 09 09 09 09   in....-L*).....
0290: 74 72 79 6c 69 6e 6b 5f 41 44 44 5f 4c 44 46 4c  trylink_ADD_LDFL
02a0: 41 47 53 3d 22 24 7b 61 72 67 7d 22 0a 09 09 09  AGS="${arg}"....
02b0: 09 3b 3b 0a 09 09 65 73 61 63 0a 09 64 6f 6e 65  .;;...esac..done
02c0: 0a 0a 09 53 41 56 45 4c 49 42 53 3d 22 24 4c 49  ...SAVELIBS="$LI
02d0: 42 53 22 0a 09 73 74 61 74 69 63 6c 69 62 3d 22  BS"..staticlib="
02e0: 22 0a 09 66 6f 75 6e 64 3d 22 30 22 0a 09 64 6e  "..found="0"..dn
02f0: 6c 20 48 50 2f 55 58 20 75 73 65 73 20 2d 57 6c  l HP/UX uses -Wl
0300: 2c 2d 61 2c 61 72 63 68 69 76 65 20 2e 2e 2e 20  ,-a,archive ... 
0310: 2d 57 6c 2c 2d 61 2c 73 68 61 72 65 64 5f 61 72  -Wl,-a,shared_ar
0320: 63 68 69 76 65 0a 09 64 6e 6c 20 4c 69 6e 75 78  chive..dnl Linux
0330: 20 61 6e 64 20 53 6f 6c 61 72 69 73 20 75 73 20   and Solaris us 
0340: 2d 57 6c 2c 2d 42 73 74 61 74 69 63 20 2e 2e 2e  -Wl,-Bstatic ...
0350: 20 2d 57 6c 2c 2d 42 64 79 6e 61 6d 69 63 0a 09   -Wl,-Bdynamic..
0360: 41 43 5f 4c 41 4e 47 5f 50 55 53 48 28 5b 43 5d  AC_LANG_PUSH([C]
0370: 29 0a 09 66 6f 72 20 74 72 79 6c 69 6e 6b 20 69  )..for trylink i
0380: 6e 20 22 2d 57 6c 2c 2d 61 2c 61 72 63 68 69 76  n "-Wl,-a,archiv
0390: 65 20 24 32 20 2d 57 6c 2c 2d 61 2c 73 68 61 72  e $2 -Wl,-a,shar
03a0: 65 64 5f 61 72 63 68 69 76 65 22 20 22 2d 57 6c  ed_archive" "-Wl
03b0: 2c 2d 42 73 74 61 74 69 63 20 24 32 20 2d 57 6c  ,-Bstatic $2 -Wl
03c0: 2c 2d 42 64 79 6e 61 6d 69 63 22 20 22 24 32 22  ,-Bdynamic" "$2"
03d0: 3b 20 64 6f 0a 09 09 69 66 20 65 63 68 6f 20 22  ; do...if echo "
03e0: 20 24 7b 4c 44 46 4c 41 47 53 7d 20 22 20 7c 20   ${LDFLAGS} " | 
03f0: 67 72 65 70 20 27 20 2d 73 74 61 74 69 63 20 27  grep ' -static '
0400: 20 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 20 74 68 65   >/dev/null; the
0410: 6e 0a 09 09 09 69 66 20 74 65 73 74 20 22 24 7b  n....if test "${
0420: 74 72 79 6c 69 6e 6b 7d 22 20 21 3d 20 22 24 32  trylink}" != "$2
0430: 22 3b 20 74 68 65 6e 0a 09 09 09 09 63 6f 6e 74  "; then.....cont
0440: 69 6e 75 65 0a 09 09 09 66 69 0a 09 09 66 69 0a  inue....fi...fi.
0450: 0a 09 09 4c 49 42 53 3d 22 24 7b 53 41 56 45 4c  ...LIBS="${SAVEL
0460: 49 42 53 7d 20 24 7b 74 72 79 6c 69 6e 6b 5f 41  IBS} ${trylink_A
0470: 44 44 5f 4c 44 46 4c 41 47 53 7d 20 24 7b 74 72  DD_LDFLAGS} ${tr
0480: 79 6c 69 6e 6b 7d 22 0a 0a 09 09 41 43 5f 4c 49  ylink}"....AC_LI
0490: 4e 4b 5f 49 46 45 4c 53 45 28 5b 41 43 5f 4c 41  NK_IFELSE([AC_LA
04a0: 4e 47 5f 50 52 4f 47 52 41 4d 28 5b 5d 2c 20 5b  NG_PROGRAM([], [
04b0: 5d 29 5d 2c 20 5b 0a 09 09 09 73 74 61 74 69 63  ])], [....static
04c0: 6c 69 62 3d 22 24 7b 74 72 79 6c 69 6e 6b 7d 22  lib="${trylink}"
04d0: 0a 09 09 09 66 6f 75 6e 64 3d 22 31 22 0a 0a 09  ....found="1"...
04e0: 09 09 62 72 65 61 6b 0a 09 09 5d 29 0a 09 64 6f  ..break...])..do
04f0: 6e 65 0a 09 41 43 5f 4c 41 4e 47 5f 50 4f 50 28  ne..AC_LANG_POP(
0500: 5b 43 5d 29 0a 09 4c 49 42 53 3d 22 24 7b 53 41  [C])..LIBS="${SA
0510: 56 45 4c 49 42 53 7d 22 0a 0a 09 69 66 20 74 65  VELIBS}"...if te
0520: 73 74 20 22 24 7b 66 6f 75 6e 64 7d 22 20 3d 20  st "${found}" = 
0530: 22 31 22 3b 20 74 68 65 6e 0a 09 09 6e 65 77 5f  "1"; then...new_
0540: 52 45 53 55 4c 54 3d 27 27 0a 09 09 53 41 56 45  RESULT=''...SAVE
0550: 52 45 53 55 4c 54 3d 22 24 56 41 52 5f 54 4f 5f  RESULT="$VAR_TO_
0560: 55 50 44 41 54 45 22 0a 09 09 66 6f 72 20 6c 69  UPDATE"...for li
0570: 62 20 69 6e 20 24 7b 53 41 56 45 52 45 53 55 4c  b in ${SAVERESUL
0580: 54 7d 3b 20 64 6f 0a 09 09 09 61 64 64 6c 69 62  T}; do....addlib
0590: 3d 27 31 27 0a 09 09 09 66 6f 72 20 72 65 6d 6f  ='1'....for remo
05a0: 76 65 6c 69 62 20 69 6e 20 24 32 3b 20 64 6f 0a  velib in $2; do.
05b0: 09 09 09 09 69 66 20 74 65 73 74 20 22 24 7b 6c  ....if test "${l
05c0: 69 62 7d 22 20 3d 20 22 24 7b 72 65 6d 6f 76 65  ib}" = "${remove
05d0: 6c 69 62 7d 22 3b 20 74 68 65 6e 0a 09 09 09 09  lib}"; then.....
05e0: 09 61 64 64 6c 69 62 3d 27 30 27 0a 09 09 09 09  .addlib='0'.....
05f0: 09 62 72 65 61 6b 0a 09 09 09 09 66 69 0a 09 09  .break.....fi...
0600: 09 64 6f 6e 65 0a 0a 09 09 09 69 66 20 74 65 73  .done.....if tes
0610: 74 20 22 24 61 64 64 6c 69 62 22 20 3d 20 27 31  t "$addlib" = '1
0620: 27 3b 20 74 68 65 6e 0a 09 09 09 09 6e 65 77 5f  '; then.....new_
0630: 52 45 53 55 4c 54 3d 22 24 7b 6e 65 77 5f 52 45  RESULT="${new_RE
0640: 53 55 4c 54 7d 20 24 7b 6c 69 62 7d 22 0a 09 09  SULT} ${lib}"...
0650: 09 66 69 0a 09 09 64 6f 6e 65 0a 09 09 56 41 52  .fi...done...VAR
0660: 5f 54 4f 5f 55 50 44 41 54 45 3d 22 24 7b 6e 65  _TO_UPDATE="${ne
0670: 77 5f 52 45 53 55 4c 54 7d 20 24 7b 73 74 61 74  w_RESULT} ${stat
0680: 69 63 6c 69 62 7d 22 0a 0a 09 09 41 43 5f 4d 53  iclib}"....AC_MS
0690: 47 5f 52 45 53 55 4c 54 28 5b 24 7b 73 74 61 74  G_RESULT([${stat
06a0: 69 63 6c 69 62 7d 5d 29 0a 0a 09 09 24 34 0a 09  iclib}])....$4..
06b0: 65 6c 73 65 0a 09 09 41 43 5f 4d 53 47 5f 52 45  else...AC_MSG_RE
06c0: 53 55 4c 54 28 5b 63 61 6e 74 5d 29 0a 0a 09 09  SULT([cant])....
06d0: 24 35 0a 09 66 69 0a 5d 29 0a 0a 41 43 5f 44 45  $5..fi.])..AC_DE
06e0: 46 55 4e 28 5b 54 43 4c 54 4c 53 5f 53 53 4c 5f  FUN([TCLTLS_SSL_
06f0: 4f 50 45 4e 53 53 4c 5f 43 48 45 43 4b 5f 50 52  OPENSSL_CHECK_PR
0700: 4f 54 4f 5f 56 45 52 5d 2c 20 5b 0a 09 64 6e 6c  OTO_VER], [..dnl
0710: 20 44 65 74 65 72 6d 69 6e 65 20 69 66 20 70 61   Determine if pa
0720: 72 74 69 63 75 6c 61 72 20 53 53 4c 20 76 65 72  rticular SSL ver
0730: 73 69 6f 6e 20 69 73 20 65 6e 61 62 6c 65 64 0a  sion is enabled.
0740: 09 69 66 20 74 65 73 74 20 22 5b 24 5d 24 31 22  .if test "[$]$1"
0750: 20 3d 20 22 74 72 75 65 22 20 2d 6f 20 22 5b 24   = "true" -o "[$
0760: 5d 24 31 22 20 3d 20 22 66 6f 72 63 65 22 3b 20  ]$1" = "force"; 
0770: 74 68 65 6e 0a 09 09 70 72 6f 74 6f 5f 63 68 65  then...proto_che
0780: 63 6b 3d 27 74 72 75 65 27 0a 09 09 69 66 65 6c  ck='true'...ifel
0790: 73 65 28 24 35 2c 2c 20 5b 0a 09 09 09 41 43 5f  se($5,, [....AC_
07a0: 43 48 45 43 4b 5f 46 55 4e 43 28 24 32 2c 2c 20  CHECK_FUNC($2,, 
07b0: 5b 0a 09 09 09 09 70 72 6f 74 6f 5f 63 68 65 63  [.....proto_chec
07c0: 6b 3d 27 66 61 6c 73 65 27 0a 09 09 09 5d 29 0a  k='false'....]).
07d0: 09 09 5d 2c 20 5b 0a 09 09 09 41 43 5f 4c 41 4e  ..], [....AC_LAN
07e0: 47 5f 50 55 53 48 28 43 29 0a 09 09 09 41 43 5f  G_PUSH(C)....AC_
07f0: 4d 53 47 5f 43 48 45 43 4b 49 4e 47 28 5b 66 6f  MSG_CHECKING([fo
0800: 72 20 24 33 20 70 72 6f 74 6f 63 6f 6c 20 73 75  r $3 protocol su
0810: 70 70 6f 72 74 5d 29 0a 09 09 09 41 43 5f 43 4f  pport])....AC_CO
0820: 4d 50 49 4c 45 5f 49 46 45 4c 53 45 28 5b 41 43  MPILE_IFELSE([AC
0830: 5f 4c 41 4e 47 5f 50 52 4f 47 52 41 4d 28 5b 0a  _LANG_PROGRAM([.
0840: 23 69 6e 63 6c 75 64 65 20 3c 6f 70 65 6e 73 73  #include <openss
0850: 6c 2f 73 73 6c 2e 68 3e 0a 23 69 6e 63 6c 75 64  l/ssl.h>.#includ
0860: 65 20 3c 6f 70 65 6e 73 73 6c 2f 6f 70 65 6e 73  e <openssl/opens
0870: 73 6c 76 2e 68 3e 0a 23 69 66 20 28 53 53 4c 45  slv.h>.#if (SSLE
0880: 41 59 5f 56 45 52 53 49 4f 4e 5f 4e 55 4d 42 45  AY_VERSION_NUMBE
0890: 52 20 3e 3d 20 30 78 30 39 30 37 30 30 30 4c 29  R >= 0x0907000L)
08a0: 0a 23 20 69 6e 63 6c 75 64 65 20 3c 6f 70 65 6e  .# include <open
08b0: 73 73 6c 2f 63 6f 6e 66 2e 68 3e 0a 23 65 6e 64  ssl/conf.h>.#end
08c0: 69 66 0a 09 09 09 5d 2c 20 5b 0a 69 6e 74 20 78  if....], [.int x
08d0: 20 3d 20 24 35 3b 0a 09 09 09 5d 29 5d 2c 20 5b   = $5;....])], [
08e0: 0a 09 09 09 09 41 43 5f 4d 53 47 5f 52 45 53 55  .....AC_MSG_RESU
08f0: 4c 54 28 5b 79 65 73 5d 29 0a 09 09 09 5d 2c 20  LT([yes])....], 
0900: 5b 0a 09 09 09 09 41 43 5f 4d 53 47 5f 52 45 53  [.....AC_MSG_RES
0910: 55 4c 54 28 5b 6e 6f 5d 29 0a 0a 09 09 09 09 70  ULT([no])......p
0920: 72 6f 74 6f 5f 63 68 65 63 6b 3d 27 66 61 6c 73  roto_check='fals
0930: 65 27 0a 09 09 09 5d 29 0a 09 09 09 41 43 5f 4c  e'....])....AC_L
0940: 41 4e 47 5f 50 4f 50 28 5b 43 5d 29 0a 09 09 5d  ANG_POP([C])...]
0950: 29 0a 0a 09 09 69 66 20 74 65 73 74 20 22 24 70  )....if test "$p
0960: 72 6f 74 6f 5f 63 68 65 63 6b 22 20 3d 20 27 66  roto_check" = 'f
0970: 61 6c 73 65 27 3b 20 74 68 65 6e 0a 09 09 09 69  alse'; then....i
0980: 66 20 74 65 73 74 20 22 5b 24 5d 24 31 22 20 3d  f test "[$]$1" =
0990: 20 22 66 6f 72 63 65 22 3b 20 74 68 65 6e 0a 09   "force"; then..
09a0: 09 09 09 41 43 5f 4d 53 47 5f 45 52 52 4f 52 28  ...AC_MSG_ERROR(
09b0: 5b 55 6e 61 62 6c 65 20 74 6f 20 65 6e 61 62 6c  [Unable to enabl
09c0: 65 20 24 33 5d 29 0a 09 09 09 66 69 0a 0a 09 09  e $3])....fi....
09d0: 09 24 31 3d 27 66 61 6c 73 65 27 0a 09 09 66 69  .$1='false'...fi
09e0: 0a 09 66 69 0a 0a 09 69 66 20 74 65 73 74 20 22  ..fi...if test "
09f0: 5b 24 5d 24 31 22 20 3d 20 22 66 61 6c 73 65 22  [$]$1" = "false"
0a00: 3b 20 74 68 65 6e 0a 09 09 41 43 5f 44 45 46 49  ; then...AC_DEFI
0a10: 4e 45 28 24 34 2c 20 5b 31 5d 2c 20 5b 44 65 66  NE($4, [1], [Def
0a20: 69 6e 65 20 74 68 69 73 20 74 6f 20 64 69 73 61  ine this to disa
0a30: 62 6c 65 20 24 33 20 69 6e 20 4f 70 65 6e 53 53  ble $3 in OpenSS
0a40: 4c 20 73 75 70 70 6f 72 74 5d 29 0a 09 66 69 0a  L support])..fi.
0a50: 0a 5d 29 0a 0a 41 43 5f 44 45 46 55 4e 28 5b 54  .])..AC_DEFUN([T
0a60: 43 4c 54 4c 53 5f 53 53 4c 5f 4f 50 45 4e 53 53  CLTLS_SSL_OPENSS
0a70: 4c 5d 2c 20 5b 0a 09 6f 70 65 6e 73 73 6c 64 69  L], [..openssldi
0a80: 72 3d 27 27 0a 09 6f 70 65 6e 73 73 6c 70 6b 67  r=''..opensslpkg
0a90: 63 6f 6e 66 69 67 64 69 72 3d 27 27 0a 09 41 43  configdir=''..AC
0aa0: 5f 41 52 47 5f 57 49 54 48 28 5b 6f 70 65 6e 73  _ARG_WITH([opens
0ab0: 73 6c 2d 64 69 72 5d 2c 0a 09 09 41 53 5f 48 45  sl-dir],...AS_HE
0ac0: 4c 50 5f 53 54 52 49 4e 47 28 0a 09 09 09 5b 2d  LP_STRING(....[-
0ad0: 2d 77 69 74 68 2d 6f 70 65 6e 73 73 6c 2d 64 69  -with-openssl-di
0ae0: 72 3d 3c 64 69 72 3e 5d 2c 0a 09 09 09 5b 70 61  r=<dir>],....[pa
0af0: 74 68 20 74 6f 20 72 6f 6f 74 20 64 69 72 65 63  th to root direc
0b00: 74 6f 72 79 20 6f 66 20 4f 70 65 6e 53 53 4c 20  tory of OpenSSL 
0b10: 6f 72 20 4c 69 62 72 65 53 53 4c 20 69 6e 73 74  or LibreSSL inst
0b20: 61 6c 6c 61 74 69 6f 6e 5d 0a 09 09 29 2c 20 5b  allation]...), [
0b30: 0a 09 09 09 6f 70 65 6e 73 73 6c 64 69 72 3d 22  ....openssldir="
0b40: 24 77 69 74 68 76 61 6c 22 0a 09 09 5d 0a 09 29  $withval"...]..)
0b50: 0a 09 41 43 5f 41 52 47 5f 57 49 54 48 28 5b 6f  ..AC_ARG_WITH([o
0b60: 70 65 6e 73 73 6c 2d 70 6b 67 63 6f 6e 66 69 67  penssl-pkgconfig
0b70: 5d 2c 0a 09 09 41 53 5f 48 45 4c 50 5f 53 54 52  ],...AS_HELP_STR
0b80: 49 4e 47 28 0a 09 09 09 5b 2d 2d 77 69 74 68 2d  ING(....[--with-
0b90: 6f 70 65 6e 73 73 6c 2d 70 6b 67 63 6f 6e 66 69  openssl-pkgconfi
0ba0: 67 3d 3c 64 69 72 3e 5d 2c 0a 09 09 09 5b 70 61  g=<dir>],....[pa
0bb0: 74 68 20 74 6f 20 72 6f 6f 74 20 64 69 72 65 63  th to root direc
0bc0: 74 6f 72 79 20 6f 66 20 4f 70 65 6e 53 53 4c 20  tory of OpenSSL 
0bd0: 6f 72 20 4c 69 62 72 65 53 53 4c 20 70 6b 67 63  or LibreSSL pkgc
0be0: 6f 6e 66 69 67 64 69 72 5d 0a 09 09 29 2c 20 5b  onfigdir]...), [
0bf0: 0a 09 09 09 6f 70 65 6e 73 73 6c 70 6b 67 63 6f  ....opensslpkgco
0c00: 6e 66 69 67 64 69 72 3d 22 24 77 69 74 68 76 61  nfigdir="$withva
0c10: 6c 22 0a 09 09 5d 0a 09 29 0a 0a 09 69 66 20 74  l"...]..)...if t
0c20: 65 73 74 20 2d 6e 20 22 24 6f 70 65 6e 73 73 6c  est -n "$openssl
0c30: 64 69 72 22 3b 20 74 68 65 6e 0a 09 09 69 66 20  dir"; then...if 
0c40: 74 65 73 74 20 2d 65 20 22 24 6f 70 65 6e 73 73  test -e "$openss
0c50: 6c 64 69 72 2f 6c 69 62 73 73 6c 2e 24 53 48 4f  ldir/libssl.$SHO
0c60: 42 4a 45 58 54 22 3b 20 74 68 65 6e 0a 09 09 09  BJEXT"; then....
0c70: 54 43 4c 54 4c 53 5f 53 53 4c 5f 4c 49 42 53 3d  TCLTLS_SSL_LIBS=
0c80: 22 2d 4c 24 6f 70 65 6e 73 73 6c 64 69 72 20 2d  "-L$openssldir -
0c90: 6c 73 73 6c 20 2d 6c 63 72 79 70 74 6f 22 0a 09  lssl -lcrypto"..
0ca0: 09 09 6f 70 65 6e 73 73 6c 64 69 72 3d 22 60 41  ..openssldir="`A
0cb0: 53 5f 44 49 52 4e 41 4d 45 28 5b 22 24 6f 70 65  S_DIRNAME(["$ope
0cc0: 6e 73 73 6c 64 69 72 22 5d 29 60 22 0a 09 09 65  nssldir"])`"...e
0cd0: 6c 73 65 0a 09 09 09 54 43 4c 54 4c 53 5f 53 53  lse....TCLTLS_SS
0ce0: 4c 5f 4c 49 42 53 3d 22 2d 4c 24 6f 70 65 6e 73  L_LIBS="-L$opens
0cf0: 73 6c 64 69 72 2f 6c 69 62 20 2d 6c 73 73 6c 20  sldir/lib -lssl 
0d00: 2d 6c 63 72 79 70 74 6f 22 0a 09 09 66 69 0a 09  -lcrypto"...fi..
0d10: 09 54 43 4c 54 4c 53 5f 53 53 4c 5f 43 46 4c 41  .TCLTLS_SSL_CFLA
0d20: 47 53 3d 22 2d 49 24 6f 70 65 6e 73 73 6c 64 69  GS="-I$openssldi
0d30: 72 2f 69 6e 63 6c 75 64 65 22 0a 09 09 54 43 4c  r/include"...TCL
0d40: 54 4c 53 5f 53 53 4c 5f 43 50 50 46 4c 41 47 53  TLS_SSL_CPPFLAGS
0d50: 3d 22 2d 49 24 6f 70 65 6e 73 73 6c 64 69 72 2f  ="-I$openssldir/
0d60: 69 6e 63 6c 75 64 65 22 0a 09 66 69 0a 0a 09 70  include"..fi...p
0d70: 6b 67 43 6f 6e 66 69 67 45 78 74 72 61 41 72 67  kgConfigExtraArg
0d80: 73 3d 27 27 0a 09 69 66 20 74 65 73 74 20 22 24  s=''..if test "$
0d90: 54 43 4c 45 58 54 5f 42 55 49 4c 44 22 20 3d 20  TCLEXT_BUILD" = 
0da0: 22 73 74 61 74 69 63 22 20 2d 6f 20 22 24 54 43  "static" -o "$TC
0db0: 4c 45 58 54 5f 54 4c 53 5f 53 54 41 54 49 43 5f  LEXT_TLS_STATIC_
0dc0: 53 53 4c 22 20 3d 20 27 79 65 73 27 3b 20 74 68  SSL" = 'yes'; th
0dd0: 65 6e 0a 09 09 70 6b 67 43 6f 6e 66 69 67 45 78  en...pkgConfigEx
0de0: 74 72 61 41 72 67 73 3d 27 2d 2d 73 74 61 74 69  traArgs='--stati
0df0: 63 27 0a 09 66 69 0a 0a 09 64 6e 6c 20 55 73 65  c'..fi...dnl Use
0e00: 20 70 6b 67 2d 63 6f 6e 66 69 67 20 74 6f 20 66   pkg-config to f
0e10: 69 6e 64 20 74 68 65 20 6c 69 62 72 61 72 69 65  ind the librarie
0e20: 73 0a 09 64 6e 6c 20 54 65 6d 70 6f 72 61 72 69  s..dnl Temporari
0e30: 6c 79 20 75 70 64 61 74 65 20 50 4b 47 5f 43 4f  ly update PKG_CO
0e40: 4e 46 49 47 5f 50 41 54 48 0a 09 50 4b 47 5f 43  NFIG_PATH..PKG_C
0e50: 4f 4e 46 49 47 5f 50 41 54 48 5f 53 41 56 45 3d  ONFIG_PATH_SAVE=
0e60: 22 24 7b 50 4b 47 5f 43 4f 4e 46 49 47 5f 50 41  "${PKG_CONFIG_PA
0e70: 54 48 7d 22 0a 09 69 66 20 74 65 73 74 20 2d 6e  TH}"..if test -n
0e80: 20 22 24 7b 6f 70 65 6e 73 73 6c 70 6b 67 63 6f   "${opensslpkgco
0e90: 6e 66 69 67 64 69 72 7d 22 3b 20 74 68 65 6e 0a  nfigdir}"; then.
0ea0: 09 09 69 66 20 21 20 74 65 73 74 20 2d 66 20 22  ..if ! test -f "
0eb0: 24 7b 6f 70 65 6e 73 73 6c 70 6b 67 63 6f 6e 66  ${opensslpkgconf
0ec0: 69 67 64 69 72 7d 2f 6f 70 65 6e 73 73 6c 2e 70  igdir}/openssl.p
0ed0: 63 22 3b 20 74 68 65 6e 0a 09 09 09 41 43 5f 4d  c"; then....AC_M
0ee0: 53 47 5f 45 52 52 4f 52 28 5b 55 6e 61 62 6c 65  SG_ERROR([Unable
0ef0: 20 74 6f 20 6c 6f 63 61 74 65 20 24 7b 6f 70 65   to locate ${ope
0f00: 6e 73 73 6c 70 6b 67 63 6f 6e 66 69 67 64 69 72  nsslpkgconfigdir
0f10: 7d 2f 6f 70 65 6e 73 73 6c 2e 70 63 5d 29 0a 09  }/openssl.pc])..
0f20: 09 66 69 0a 0a 09 09 50 4b 47 5f 43 4f 4e 46 49  .fi....PKG_CONFI
0f30: 47 5f 50 41 54 48 3d 22 24 7b 6f 70 65 6e 73 73  G_PATH="${openss
0f40: 6c 70 6b 67 63 6f 6e 66 69 67 64 69 72 7d 24 7b  lpkgconfigdir}${
0f50: 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 7d 24  PATH_SEPARATOR}$
0f60: 7b 50 4b 47 5f 43 4f 4e 46 49 47 5f 50 41 54 48  {PKG_CONFIG_PATH
0f70: 7d 22 0a 09 09 65 78 70 6f 72 74 20 50 4b 47 5f  }"...export PKG_
0f80: 43 4f 4e 46 49 47 5f 50 41 54 48 0a 09 66 69 0a  CONFIG_PATH..fi.
0f90: 0a 09 41 43 5f 41 52 47 5f 56 41 52 28 5b 54 43  ..AC_ARG_VAR([TC
0fa0: 4c 54 4c 53 5f 53 53 4c 5f 4c 49 42 53 5d 2c 20  LTLS_SSL_LIBS], 
0fb0: 5b 6c 69 62 72 61 72 69 65 73 20 74 6f 20 70 61  [libraries to pa
0fc0: 73 73 20 74 6f 20 74 68 65 20 6c 69 6e 6b 65 72  ss to the linker
0fd0: 20 66 6f 72 20 4f 70 65 6e 53 53 4c 20 6f 72 20   for OpenSSL or 
0fe0: 4c 69 62 72 65 53 53 4c 5d 29 0a 09 41 43 5f 41  LibreSSL])..AC_A
0ff0: 52 47 5f 56 41 52 28 5b 54 43 4c 54 4c 53 5f 53  RG_VAR([TCLTLS_S
1000: 53 4c 5f 43 46 4c 41 47 53 5d 2c 20 5b 43 20 63  SL_CFLAGS], [C c
1010: 6f 6d 70 69 6c 65 72 20 66 6c 61 67 73 20 66 6f  ompiler flags fo
1020: 72 20 4f 70 65 6e 53 53 4c 20 6f 72 20 4c 69 62  r OpenSSL or Lib
1030: 72 65 53 53 4c 5d 29 0a 09 41 43 5f 41 52 47 5f  reSSL])..AC_ARG_
1040: 56 41 52 28 5b 54 43 4c 54 4c 53 5f 53 53 4c 5f  VAR([TCLTLS_SSL_
1050: 43 50 50 46 4c 41 47 53 5d 2c 20 5b 43 20 70 72  CPPFLAGS], [C pr
1060: 65 70 72 6f 63 65 73 73 6f 72 20 66 6c 61 67 73  eprocessor flags
1070: 20 66 6f 72 20 4f 70 65 6e 53 53 4c 20 6f 72 20   for OpenSSL or 
1080: 4c 69 62 72 65 53 53 4c 5d 29 0a 09 69 66 20 74  LibreSSL])..if t
1090: 65 73 74 20 2d 7a 20 22 24 54 43 4c 54 4c 53 5f  est -z "$TCLTLS_
10a0: 53 53 4c 5f 4c 49 42 53 22 3b 20 74 68 65 6e 0a  SSL_LIBS"; then.
10b0: 09 09 54 43 4c 54 4c 53 5f 53 53 4c 5f 4c 49 42  ..TCLTLS_SSL_LIB
10c0: 53 3d 22 60 22 24 7b 50 4b 47 43 4f 4e 46 49 47  S="`"${PKGCONFIG
10d0: 7d 22 20 6f 70 65 6e 73 73 6c 20 2d 2d 6c 69 62  }" openssl --lib
10e0: 73 20 24 70 6b 67 43 6f 6e 66 69 67 45 78 74 72  s $pkgConfigExtr
10f0: 61 41 72 67 73 60 22 20 7c 7c 20 41 43 5f 4d 53  aArgs`" || AC_MS
1100: 47 5f 45 52 52 4f 52 28 5b 55 6e 61 62 6c 65 20  G_ERROR([Unable 
1110: 74 6f 20 67 65 74 20 4f 70 65 6e 53 53 4c 20 43  to get OpenSSL C
1120: 6f 6e 66 69 67 75 72 61 74 69 6f 6e 5d 29 0a 09  onfiguration])..
1130: 66 69 0a 09 69 66 20 74 65 73 74 20 2d 7a 20 22  fi..if test -z "
1140: 24 54 43 4c 54 4c 53 5f 53 53 4c 5f 43 46 4c 41  $TCLTLS_SSL_CFLA
1150: 47 53 22 3b 20 74 68 65 6e 0a 09 09 54 43 4c 54  GS"; then...TCLT
1160: 4c 53 5f 53 53 4c 5f 43 46 4c 41 47 53 3d 22 60  LS_SSL_CFLAGS="`
1170: 22 24 7b 50 4b 47 43 4f 4e 46 49 47 7d 22 20 6f  "${PKGCONFIG}" o
1180: 70 65 6e 73 73 6c 20 2d 2d 63 66 6c 61 67 73 2d  penssl --cflags-
1190: 6f 6e 6c 79 2d 6f 74 68 65 72 20 24 70 6b 67 43  only-other $pkgC
11a0: 6f 6e 66 69 67 45 78 74 72 61 41 72 67 73 60 22  onfigExtraArgs`"
11b0: 20 7c 7c 20 41 43 5f 4d 53 47 5f 45 52 52 4f 52   || AC_MSG_ERROR
11c0: 28 5b 55 6e 61 62 6c 65 20 74 6f 20 67 65 74 20  ([Unable to get 
11d0: 4f 70 65 6e 53 53 4c 20 43 6f 6e 66 69 67 75 72  OpenSSL Configur
11e0: 61 74 69 6f 6e 5d 29 0a 09 66 69 0a 09 69 66 20  ation])..fi..if 
11f0: 74 65 73 74 20 2d 7a 20 22 24 54 43 4c 54 4c 53  test -z "$TCLTLS
1200: 5f 53 53 4c 5f 43 50 50 46 4c 41 47 53 22 3b 20  _SSL_CPPFLAGS"; 
1210: 74 68 65 6e 0a 09 09 54 43 4c 54 4c 53 5f 53 53  then...TCLTLS_SS
1220: 4c 5f 43 50 50 46 4c 41 47 53 3d 22 60 22 24 7b  L_CPPFLAGS="`"${
1230: 50 4b 47 43 4f 4e 46 49 47 7d 22 20 6f 70 65 6e  PKGCONFIG}" open
1240: 73 73 6c 20 2d 2d 63 66 6c 61 67 73 2d 6f 6e 6c  ssl --cflags-onl
1250: 79 2d 49 20 24 70 6b 67 43 6f 6e 66 69 67 45 78  y-I $pkgConfigEx
1260: 74 72 61 41 72 67 73 60 22 20 7c 7c 20 41 43 5f  traArgs`" || AC_
1270: 4d 53 47 5f 45 52 52 4f 52 28 5b 55 6e 61 62 6c  MSG_ERROR([Unabl
1280: 65 20 74 6f 20 67 65 74 20 4f 70 65 6e 53 53 4c  e to get OpenSSL
1290: 20 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 5d 29   Configuration])
12a0: 0a 09 66 69 0a 09 50 4b 47 5f 43 4f 4e 46 49 47  ..fi..PKG_CONFIG
12b0: 5f 50 41 54 48 3d 22 24 7b 50 4b 47 5f 43 4f 4e  _PATH="${PKG_CON
12c0: 46 49 47 5f 50 41 54 48 5f 53 41 56 45 7d 22 0a  FIG_PATH_SAVE}".
12d0: 0a 09 69 66 20 74 65 73 74 20 22 24 54 43 4c 45  ..if test "$TCLE
12e0: 58 54 5f 42 55 49 4c 44 22 20 3d 20 22 73 74 61  XT_BUILD" = "sta
12f0: 74 69 63 22 3b 20 74 68 65 6e 0a 09 09 64 6e 6c  tic"; then...dnl
1300: 20 49 66 20 77 65 20 61 72 65 20 64 6f 69 6e 67   If we are doing
1310: 20 61 20 73 74 61 74 69 63 20 62 75 69 6c 64 2c   a static build,
1320: 20 73 61 76 65 20 74 68 65 20 6c 69 6e 6b 65 72   save the linker
1330: 20 66 6c 61 67 73 20 66 6f 72 20 6f 74 68 65 72   flags for other
1340: 20 70 72 6f 67 72 61 6d 73 20 74 6f 20 63 6f 6e   programs to con
1350: 73 75 6d 65 0a 09 09 72 6d 20 2d 66 20 74 63 6c  sume...rm -f tcl
1360: 74 6c 73 2e 24 7b 41 52 45 58 54 7d 2e 6c 69 6e  tls.${AREXT}.lin
1370: 6b 61 64 64 0a 09 09 41 53 5f 45 43 48 4f 28 5b  kadd...AS_ECHO([
1380: 22 24 54 43 4c 54 4c 53 5f 53 53 4c 5f 4c 49 42  "$TCLTLS_SSL_LIB
1390: 53 22 5d 29 20 3e 20 74 63 6c 74 6c 73 2e 24 7b  S"]) > tcltls.${
13a0: 41 52 45 58 54 7d 2e 6c 69 6e 6b 61 64 64 0a 09  AREXT}.linkadd..
13b0: 66 69 0a 0a 09 64 6e 6c 20 49 66 20 77 65 20 68  fi...dnl If we h
13c0: 61 76 65 20 62 65 65 6e 20 61 73 6b 65 64 20 74  ave been asked t
13d0: 6f 20 73 74 61 74 69 63 61 6c 6c 79 20 6c 69 6e  o statically lin
13e0: 6b 20 74 6f 20 74 68 65 20 53 53 4c 20 6c 69 62  k to the SSL lib
13f0: 72 61 72 79 2c 20 73 70 65 63 69 66 69 63 61 6c  rary, specifical
1400: 6c 79 20 74 65 6c 6c 20 74 68 65 20 6c 69 6e 6b  ly tell the link
1410: 65 72 20 74 6f 20 64 6f 20 73 6f 0a 09 69 66 20  er to do so..if 
1420: 74 65 73 74 20 22 24 54 43 4c 45 58 54 5f 54 4c  test "$TCLEXT_TL
1430: 53 5f 53 54 41 54 49 43 5f 53 53 4c 22 20 3d 20  S_STATIC_SSL" = 
1440: 27 79 65 73 27 3b 20 74 68 65 6e 0a 09 09 64 6e  'yes'; then...dn
1450: 6c 20 44 6f 6e 27 74 20 62 6f 74 68 65 72 20 64  l Don't bother d
1460: 6f 69 6e 67 20 74 68 69 73 20 69 66 20 77 65 20  oing this if we 
1470: 61 72 65 6e 27 74 20 61 63 74 75 61 6c 6c 79 20  aren't actually 
1480: 64 6f 69 6e 67 20 74 68 65 20 72 75 6e 74 69 6d  doing the runtim
1490: 65 20 6c 69 6e 6b 69 6e 67 0a 09 09 69 66 20 74  e linking...if t
14a0: 65 73 74 20 22 24 54 43 4c 45 58 54 5f 42 55 49  est "$TCLEXT_BUI
14b0: 4c 44 22 20 21 3d 20 22 73 74 61 74 69 63 22 3b  LD" != "static";
14c0: 20 74 68 65 6e 0a 09 09 09 64 6e 6c 20 53 70 6c   then....dnl Spl
14d0: 69 74 20 74 68 65 20 6c 69 62 72 61 72 69 65 73  it the libraries
14e0: 20 69 6e 74 6f 20 53 53 4c 20 61 6e 64 20 6e 6f   into SSL and no
14f0: 6e 2d 53 53 4c 20 6c 69 62 72 61 72 69 65 73 0a  n-SSL libraries.
1500: 09 09 09 6e 65 77 5f 54 43 4c 54 4c 53 5f 53 53  ...new_TCLTLS_SS
1510: 4c 5f 4c 49 42 53 5f 6e 6f 72 6d 61 6c 3d 27 27  L_LIBS_normal=''
1520: 0a 09 09 09 6e 65 77 5f 54 43 4c 54 4c 53 5f 53  ....new_TCLTLS_S
1530: 53 4c 5f 4c 49 42 53 5f 73 74 61 74 69 63 3d 27  SL_LIBS_static='
1540: 27 0a 09 09 09 66 6f 72 20 61 72 67 20 69 6e 20  '....for arg in 
1550: 24 54 43 4c 54 4c 53 5f 53 53 4c 5f 4c 49 42 53  $TCLTLS_SSL_LIBS
1560: 3b 20 64 6f 0a 09 09 09 09 63 61 73 65 20 22 24  ; do.....case "$
1570: 7b 61 72 67 7d 22 20 69 6e 0a 09 09 09 09 09 2d  {arg}" in......-
1580: 4c 2a 29 0a 09 09 09 09 09 09 6e 65 77 5f 54 43  L*).......new_TC
1590: 4c 54 4c 53 5f 53 53 4c 5f 4c 49 42 53 5f 6e 6f  LTLS_SSL_LIBS_no
15a0: 72 6d 61 6c 3d 22 24 7b 6e 65 77 5f 54 43 4c 54  rmal="${new_TCLT
15b0: 4c 53 5f 53 53 4c 5f 4c 49 42 53 5f 6e 6f 72 6d  LS_SSL_LIBS_norm
15c0: 61 6c 7d 20 24 7b 61 72 67 7d 22 0a 09 09 09 09  al} ${arg}".....
15d0: 09 09 6e 65 77 5f 54 43 4c 54 4c 53 5f 53 53 4c  ..new_TCLTLS_SSL
15e0: 5f 4c 49 42 53 5f 73 74 61 74 69 63 3d 22 24 7b  _LIBS_static="${
15f0: 6e 65 77 5f 54 43 4c 54 4c 53 5f 53 53 4c 5f 4c  new_TCLTLS_SSL_L
1600: 49 42 53 5f 73 74 61 74 69 63 7d 20 24 7b 61 72  IBS_static} ${ar
1610: 67 7d 22 0a 09 09 09 09 09 09 3b 3b 0a 09 09 09  g}".......;;....
1620: 09 09 2d 6c 64 6c 7c 2d 6c 72 74 7c 2d 6c 63 7c  ..-ldl|-lrt|-lc|
1630: 2d 6c 70 74 68 72 65 61 64 7c 2d 6c 6d 7c 2d 6c  -lpthread|-lm|-l
1640: 63 72 79 70 74 7c 2d 6c 69 64 6e 7c 2d 6c 72 65  crypt|-lidn|-lre
1650: 73 6f 6c 76 7c 2d 6c 67 63 63 7c 2d 6c 67 63 63  solv|-lgcc|-lgcc
1660: 5f 73 29 0a 09 09 09 09 09 09 6e 65 77 5f 54 43  _s).......new_TC
1670: 4c 54 4c 53 5f 53 53 4c 5f 4c 49 42 53 5f 6e 6f  LTLS_SSL_LIBS_no
1680: 72 6d 61 6c 3d 22 24 7b 6e 65 77 5f 54 43 4c 54  rmal="${new_TCLT
1690: 4c 53 5f 53 53 4c 5f 4c 49 42 53 5f 6e 6f 72 6d  LS_SSL_LIBS_norm
16a0: 61 6c 7d 20 24 7b 61 72 67 7d 22 0a 09 09 09 09  al} ${arg}".....
16b0: 09 09 3b 3b 0a 09 09 09 09 09 2d 6c 2a 29 0a 09  ..;;......-l*)..
16c0: 09 09 09 09 09 6e 65 77 5f 54 43 4c 54 4c 53 5f  .....new_TCLTLS_
16d0: 53 53 4c 5f 4c 49 42 53 5f 73 74 61 74 69 63 3d  SSL_LIBS_static=
16e0: 22 24 7b 6e 65 77 5f 54 43 4c 54 4c 53 5f 53 53  "${new_TCLTLS_SS
16f0: 4c 5f 4c 49 42 53 5f 73 74 61 74 69 63 7d 20 24  L_LIBS_static} $
1700: 7b 61 72 67 7d 22 0a 09 09 09 09 09 09 3b 3b 0a  {arg}".......;;.
1710: 09 09 09 09 09 2a 29 0a 09 09 09 09 09 09 6e 65  .....*).......ne
1720: 77 5f 54 43 4c 54 4c 53 5f 53 53 4c 5f 4c 49 42  w_TCLTLS_SSL_LIB
1730: 53 5f 6e 6f 72 6d 61 6c 3d 22 24 7b 6e 65 77 5f  S_normal="${new_
1740: 54 43 4c 54 4c 53 5f 53 53 4c 5f 4c 49 42 53 5f  TCLTLS_SSL_LIBS_
1750: 6e 6f 72 6d 61 6c 7d 20 24 7b 61 72 67 7d 22 0a  normal} ${arg}".
1760: 09 09 09 09 09 09 3b 3b 0a 09 09 09 09 65 73 61  ......;;.....esa
1770: 63 0a 09 09 09 64 6f 6e 65 0a 09 09 09 53 48 4f  c....done....SHO
1780: 42 4a 5f 44 4f 5f 53 54 41 54 49 43 5f 4c 49 4e  BJ_DO_STATIC_LIN
1790: 4b 5f 4c 49 42 28 5b 4f 70 65 6e 53 53 4c 5d 2c  K_LIB([OpenSSL],
17a0: 20 5b 24 6e 65 77 5f 54 43 4c 54 4c 53 5f 53 53   [$new_TCLTLS_SS
17b0: 4c 5f 4c 49 42 53 5f 73 74 61 74 69 63 5d 2c 20  L_LIBS_static], 
17c0: 5b 6e 65 77 5f 54 43 4c 54 4c 53 5f 53 53 4c 5f  [new_TCLTLS_SSL_
17d0: 4c 49 42 53 5f 73 74 61 74 69 63 5d 29 0a 09 09  LIBS_static])...
17e0: 09 54 43 4c 54 4c 53 5f 53 53 4c 5f 4c 49 42 53  .TCLTLS_SSL_LIBS
17f0: 3d 22 24 7b 6e 65 77 5f 54 43 4c 54 4c 53 5f 53  ="${new_TCLTLS_S
1800: 53 4c 5f 4c 49 42 53 5f 6e 6f 72 6d 61 6c 7d 20  SL_LIBS_normal} 
1810: 24 7b 6e 65 77 5f 54 43 4c 54 4c 53 5f 53 53 4c  ${new_TCLTLS_SSL
1820: 5f 4c 49 42 53 5f 73 74 61 74 69 63 7d 22 0a 09  _LIBS_static}"..
1830: 09 66 69 0a 09 66 69 0a 0a 09 64 6e 6c 20 53 61  .fi..fi...dnl Sa
1840: 76 65 20 63 6f 6d 70 69 6c 65 2d 61 6c 74 65 72  ve compile-alter
1850: 69 6e 67 20 76 61 72 69 61 62 6c 65 73 20 77 65  ing variables we
1860: 20 61 72 65 20 63 68 61 6e 67 69 6e 67 0a 09 53   are changing..S
1870: 41 56 45 5f 4c 49 42 53 3d 22 24 7b 4c 49 42 53  AVE_LIBS="${LIBS
1880: 7d 22 0a 09 53 41 56 45 5f 43 46 4c 41 47 53 3d  }"..SAVE_CFLAGS=
1890: 22 24 7b 43 46 4c 41 47 53 7d 22 0a 09 53 41 56  "${CFLAGS}"..SAV
18a0: 45 5f 43 50 50 46 4c 41 47 53 3d 22 24 7b 43 50  E_CPPFLAGS="${CP
18b0: 50 46 4c 41 47 53 7d 22 0a 0a 09 64 6e 6c 20 55  PFLAGS}"...dnl U
18c0: 70 64 61 74 65 20 63 6f 6d 70 69 6c 65 2d 61 6c  pdate compile-al
18d0: 74 65 72 69 6e 67 20 76 61 72 69 61 62 6c 65 73  tering variables
18e0: 20 74 6f 20 69 6e 63 6c 75 64 65 20 74 68 65 20   to include the 
18f0: 4f 70 65 6e 53 53 4c 20 6c 69 62 72 61 72 69 65  OpenSSL librarie
1900: 73 0a 09 4c 49 42 53 3d 22 24 7b 54 43 4c 54 4c  s..LIBS="${TCLTL
1910: 53 5f 53 53 4c 5f 4c 49 42 53 7d 20 24 7b 53 41  S_SSL_LIBS} ${SA
1920: 56 45 5f 4c 49 42 53 7d 20 24 7b 54 43 4c 54 4c  VE_LIBS} ${TCLTL
1930: 53 5f 53 53 4c 5f 4c 49 42 53 7d 22 0a 09 43 46  S_SSL_LIBS}"..CF
1940: 4c 41 47 53 3d 22 24 7b 54 43 4c 54 4c 53 5f 53  LAGS="${TCLTLS_S
1950: 53 4c 5f 43 46 4c 41 47 53 7d 20 24 7b 53 41 56  SL_CFLAGS} ${SAV
1960: 45 5f 43 46 4c 41 47 53 7d 20 24 7b 54 43 4c 54  E_CFLAGS} ${TCLT
1970: 4c 53 5f 53 53 4c 5f 43 46 4c 41 47 53 7d 22 0a  LS_SSL_CFLAGS}".
1980: 09 43 50 50 46 4c 41 47 53 3d 22 24 7b 54 43 4c  .CPPFLAGS="${TCL
1990: 54 4c 53 5f 53 53 4c 5f 43 50 50 46 4c 41 47 53  TLS_SSL_CPPFLAGS
19a0: 7d 20 24 7b 53 41 56 45 5f 43 50 50 46 4c 41 47  } ${SAVE_CPPFLAG
19b0: 53 7d 20 24 7b 54 43 4c 54 4c 53 5f 53 53 4c 5f  S} ${TCLTLS_SSL_
19c0: 43 50 50 46 4c 41 47 53 7d 22 0a 0a 09 64 6e 6c  CPPFLAGS}"...dnl
19d0: 20 56 65 72 69 66 79 20 74 68 61 74 20 62 61 73   Verify that bas
19e0: 69 63 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79  ic functionality
19f0: 20 69 73 20 74 68 65 72 65 0a 09 41 43 5f 4c 41   is there..AC_LA
1a00: 4e 47 5f 50 55 53 48 28 43 29 0a 09 41 43 5f 4d  NG_PUSH(C)..AC_M
1a10: 53 47 5f 43 48 45 43 4b 49 4e 47 28 5b 69 66 20  SG_CHECKING([if 
1a20: 61 20 62 61 73 69 63 20 4f 70 65 6e 53 53 4c 20  a basic OpenSSL 
1a30: 70 72 6f 67 72 61 6d 20 77 6f 72 6b 73 5d 29 0a  program works]).
1a40: 09 41 43 5f 4c 49 4e 4b 5f 49 46 45 4c 53 45 28  .AC_LINK_IFELSE(
1a50: 5b 41 43 5f 4c 41 4e 47 5f 50 52 4f 47 52 41 4d  [AC_LANG_PROGRAM
1a60: 28 5b 0a 23 69 6e 63 6c 75 64 65 20 3c 6f 70 65  ([.#include <ope
1a70: 6e 73 73 6c 2f 73 73 6c 2e 68 3e 0a 23 69 6e 63  nssl/ssl.h>.#inc
1a80: 6c 75 64 65 20 3c 6f 70 65 6e 73 73 6c 2f 6f 70  lude <openssl/op
1a90: 65 6e 73 73 6c 76 2e 68 3e 0a 23 69 6e 63 6c 75  ensslv.h>.#inclu
1aa0: 64 65 20 3c 6f 70 65 6e 73 73 6c 2f 63 6f 6e 66  de <openssl/conf
1ab0: 2e 68 3e 0a 09 09 5d 2c 20 5b 0a 20 20 53 53 4c  .h>...], [.  SSL
1ac0: 5f 6c 69 62 72 61 72 79 5f 69 6e 69 74 28 29 3b  _library_init();
1ad0: 0a 20 20 53 53 4c 5f 6c 6f 61 64 5f 65 72 72 6f  .  SSL_load_erro
1ae0: 72 5f 73 74 72 69 6e 67 73 28 29 3b 0a 09 09 5d  r_strings();...]
1af0: 29 5d 2c 20 5b 0a 09 09 41 43 5f 4d 53 47 5f 52  )], [...AC_MSG_R
1b00: 45 53 55 4c 54 28 5b 79 65 73 5d 29 0a 09 5d 2c  ESULT([yes])..],
1b10: 20 5b 0a 09 09 41 43 5f 4d 53 47 5f 52 45 53 55   [...AC_MSG_RESU
1b20: 4c 54 28 5b 6e 6f 5d 29 0a 09 09 41 43 5f 4d 53  LT([no])...AC_MS
1b30: 47 5f 45 52 52 4f 52 28 5b 55 6e 61 62 6c 65 20  G_ERROR([Unable 
1b40: 74 6f 20 63 6f 6d 70 69 6c 65 20 61 20 62 61 73  to compile a bas
1b50: 69 63 20 70 72 6f 67 72 61 6d 20 75 73 69 6e 67  ic program using
1b60: 20 4f 70 65 6e 53 53 4c 5d 29 0a 09 5d 29 0a 09   OpenSSL])..])..
1b70: 41 43 5f 4c 41 4e 47 5f 50 4f 50 28 5b 43 5d 29  AC_LANG_POP([C])
1b80: 0a 0a 09 41 43 5f 43 48 45 43 4b 5f 46 55 4e 43  ...AC_CHECK_FUNC
1b90: 53 28 5b 54 4c 53 5f 6d 65 74 68 6f 64 5d 29 0a  S([TLS_method]).
1ba0: 09 54 43 4c 54 4c 53 5f 53 53 4c 5f 4f 50 45 4e  .TCLTLS_SSL_OPEN
1bb0: 53 53 4c 5f 43 48 45 43 4b 5f 50 52 4f 54 4f 5f  SSL_CHECK_PROTO_
1bc0: 56 45 52 28 5b 74 63 6c 74 6c 73 5f 73 73 6c 5f  VER([tcltls_ssl_
1bd0: 73 73 6c 32 5d 2c 20 5b 53 53 4c 76 32 5f 6d 65  ssl2], [SSLv2_me
1be0: 74 68 6f 64 5d 2c 20 5b 73 73 6c 76 32 5d 2c 20  thod], [sslv2], 
1bf0: 5b 4e 4f 5f 53 53 4c 32 5d 29 0a 09 54 43 4c 54  [NO_SSL2])..TCLT
1c00: 4c 53 5f 53 53 4c 5f 4f 50 45 4e 53 53 4c 5f 43  LS_SSL_OPENSSL_C
1c10: 48 45 43 4b 5f 50 52 4f 54 4f 5f 56 45 52 28 5b  HECK_PROTO_VER([
1c20: 74 63 6c 74 6c 73 5f 73 73 6c 5f 73 73 6c 33 5d  tcltls_ssl_ssl3]
1c30: 2c 20 5b 53 53 4c 76 33 5f 6d 65 74 68 6f 64 5d  , [SSLv3_method]
1c40: 2c 20 5b 73 73 6c 76 33 5d 2c 20 5b 4e 4f 5f 53  , [sslv3], [NO_S
1c50: 53 4c 33 5d 29 0a 09 54 43 4c 54 4c 53 5f 53 53  SL3])..TCLTLS_SS
1c60: 4c 5f 4f 50 45 4e 53 53 4c 5f 43 48 45 43 4b 5f  L_OPENSSL_CHECK_
1c70: 50 52 4f 54 4f 5f 56 45 52 28 5b 74 63 6c 74 6c  PROTO_VER([tcltl
1c80: 73 5f 73 73 6c 5f 74 6c 73 31 5f 30 5d 2c 20 5b  s_ssl_tls1_0], [
1c90: 54 4c 53 76 31 5f 6d 65 74 68 6f 64 5d 2c 20 5b  TLSv1_method], [
1ca0: 74 6c 73 76 31 2e 30 5d 2c 20 5b 4e 4f 5f 54 4c  tlsv1.0], [NO_TL
1cb0: 53 31 5d 29 0a 09 54 43 4c 54 4c 53 5f 53 53 4c  S1])..TCLTLS_SSL
1cc0: 5f 4f 50 45 4e 53 53 4c 5f 43 48 45 43 4b 5f 50  _OPENSSL_CHECK_P
1cd0: 52 4f 54 4f 5f 56 45 52 28 5b 74 63 6c 74 6c 73  ROTO_VER([tcltls
1ce0: 5f 73 73 6c 5f 74 6c 73 31 5f 31 5d 2c 20 5b 54  _ssl_tls1_1], [T
1cf0: 4c 53 76 31 5f 31 5f 6d 65 74 68 6f 64 5d 2c 20  LSv1_1_method], 
1d00: 5b 74 6c 73 76 31 2e 31 5d 2c 20 5b 4e 4f 5f 54  [tlsv1.1], [NO_T
1d10: 4c 53 31 5f 31 5d 29 0a 09 54 43 4c 54 4c 53 5f  LS1_1])..TCLTLS_
1d20: 53 53 4c 5f 4f 50 45 4e 53 53 4c 5f 43 48 45 43  SSL_OPENSSL_CHEC
1d30: 4b 5f 50 52 4f 54 4f 5f 56 45 52 28 5b 74 63 6c  K_PROTO_VER([tcl
1d40: 74 6c 73 5f 73 73 6c 5f 74 6c 73 31 5f 32 5d 2c  tls_ssl_tls1_2],
1d50: 20 5b 54 4c 53 76 31 5f 32 5f 6d 65 74 68 6f 64   [TLSv1_2_method
1d60: 5d 2c 20 5b 74 6c 73 76 31 2e 32 5d 2c 20 5b 4e  ], [tlsv1.2], [N
1d70: 4f 5f 54 4c 53 31 5f 32 5d 29 0a 09 54 43 4c 54  O_TLS1_2])..TCLT
1d80: 4c 53 5f 53 53 4c 5f 4f 50 45 4e 53 53 4c 5f 43  LS_SSL_OPENSSL_C
1d90: 48 45 43 4b 5f 50 52 4f 54 4f 5f 56 45 52 28 5b  HECK_PROTO_VER([
1da0: 74 63 6c 74 6c 73 5f 73 73 6c 5f 74 6c 73 31 5f  tcltls_ssl_tls1_
1db0: 33 5d 2c 20 5b 5d 2c 20 5b 74 6c 73 76 31 2e 33  3], [], [tlsv1.3
1dc0: 5d 2c 20 5b 4e 4f 5f 54 4c 53 31 5f 33 5d 2c 20  ], [NO_TLS1_3], 
1dd0: 5b 53 53 4c 5f 4f 50 5f 4e 4f 5f 54 4c 53 76 31  [SSL_OP_NO_TLSv1
1de0: 5f 33 5d 29 0a 0a 09 41 43 5f 43 41 43 48 45 5f  _3])...AC_CACHE_
1df0: 56 41 4c 28 5b 74 63 6c 74 6c 73 5f 63 76 5f 66  VAL([tcltls_cv_f
1e00: 75 6e 63 5f 74 6c 73 65 78 74 5f 68 6f 73 74 6e  unc_tlsext_hostn
1e10: 61 6d 65 5d 2c 20 5b 0a 09 09 41 43 5f 4c 41 4e  ame], [...AC_LAN
1e20: 47 5f 50 55 53 48 28 43 29 0a 09 09 41 43 5f 4d  G_PUSH(C)...AC_M
1e30: 53 47 5f 43 48 45 43 4b 49 4e 47 28 5b 66 6f 72  SG_CHECKING([for
1e40: 20 53 53 4c 5f 73 65 74 5f 74 6c 73 65 78 74 5f   SSL_set_tlsext_
1e50: 68 6f 73 74 5f 6e 61 6d 65 5d 29 0a 09 09 41 43  host_name])...AC
1e60: 5f 4c 49 4e 4b 5f 49 46 45 4c 53 45 28 5b 41 43  _LINK_IFELSE([AC
1e70: 5f 4c 41 4e 47 5f 50 52 4f 47 52 41 4d 28 5b 0a  _LANG_PROGRAM([.
1e80: 23 69 6e 63 6c 75 64 65 20 3c 6f 70 65 6e 73 73  #include <openss
1e90: 6c 2f 73 73 6c 2e 68 3e 0a 23 69 6e 63 6c 75 64  l/ssl.h>.#includ
1ea0: 65 20 3c 6f 70 65 6e 73 73 6c 2f 63 6f 6e 66 2e  e <openssl/conf.
1eb0: 68 3e 0a 09 09 09 5d 2c 20 5b 0a 20 20 28 76 6f  h>....], [.  (vo
1ec0: 69 64 29 53 53 4c 5f 73 65 74 5f 74 6c 73 65 78  id)SSL_set_tlsex
1ed0: 74 5f 68 6f 73 74 5f 6e 61 6d 65 28 28 76 6f 69  t_host_name((voi
1ee0: 64 20 2a 29 20 30 2c 20 28 76 6f 69 64 20 2a 29  d *) 0, (void *)
1ef0: 20 30 29 3b 0a 09 09 09 5d 29 5d 2c 20 5b 0a 09   0);....])], [..
1f00: 09 09 41 43 5f 4d 53 47 5f 52 45 53 55 4c 54 28  ..AC_MSG_RESULT(
1f10: 5b 79 65 73 5d 29 0a 09 09 09 74 63 6c 74 6c 73  [yes])....tcltls
1f20: 5f 63 76 5f 66 75 6e 63 5f 74 6c 73 65 78 74 5f  _cv_func_tlsext_
1f30: 68 6f 73 74 6e 61 6d 65 3d 27 79 65 73 27 0a 09  hostname='yes'..
1f40: 09 5d 2c 20 5b 0a 09 09 09 41 43 5f 4d 53 47 5f  .], [....AC_MSG_
1f50: 52 45 53 55 4c 54 28 5b 6e 6f 5d 29 0a 09 09 09  RESULT([no])....
1f60: 74 63 6c 74 6c 73 5f 63 76 5f 66 75 6e 63 5f 74  tcltls_cv_func_t
1f70: 6c 73 65 78 74 5f 68 6f 73 74 6e 61 6d 65 3d 27  lsext_hostname='
1f80: 6e 6f 27 0a 09 09 5d 29 0a 09 09 41 43 5f 4c 41  no'...])...AC_LA
1f90: 4e 47 5f 50 4f 50 28 5b 43 5d 29 0a 09 5d 29 0a  NG_POP([C])..]).
1fa0: 0a 09 69 66 20 74 65 73 74 20 22 24 74 63 6c 74  ..if test "$tclt
1fb0: 6c 73 5f 63 76 5f 66 75 6e 63 5f 74 6c 73 65 78  ls_cv_func_tlsex
1fc0: 74 5f 68 6f 73 74 6e 61 6d 65 22 20 3d 20 27 6e  t_hostname" = 'n
1fd0: 6f 27 3b 20 74 68 65 6e 0a 09 09 41 43 5f 44 45  o'; then...AC_DE
1fe0: 46 49 4e 45 28 5b 4f 50 45 4e 53 53 4c 5f 4e 4f  FINE([OPENSSL_NO
1ff0: 5f 54 4c 53 45 58 54 5d 2c 20 5b 31 5d 2c 20 5b  _TLSEXT], [1], [
2000: 44 65 66 69 6e 65 20 74 68 69 73 20 69 66 20 79  Define this if y
2010: 6f 75 72 20 4f 70 65 6e 53 53 4c 20 64 6f 65 73  our OpenSSL does
2020: 20 6e 6f 74 20 73 75 70 70 6f 72 74 20 74 68 65   not support the
2030: 20 54 4c 53 20 45 78 74 65 6e 73 69 6f 6e 20 66   TLS Extension f
2040: 6f 72 20 53 4e 49 5d 29 0a 09 66 69 0a 0a 09 64  or SNI])..fi...d
2050: 6e 6c 20 52 65 73 74 6f 72 65 20 63 6f 6d 70 69  nl Restore compi
2060: 6c 65 2d 61 6c 74 65 72 69 6e 67 20 76 61 72 69  le-altering vari
2070: 61 62 6c 65 73 0a 09 4c 49 42 53 3d 22 24 7b 53  ables..LIBS="${S
2080: 41 56 45 5f 4c 49 42 53 7d 22 0a 09 43 46 4c 41  AVE_LIBS}"..CFLA
2090: 47 53 3d 22 24 7b 53 41 56 45 5f 43 46 4c 41 47  GS="${SAVE_CFLAG
20a0: 53 7d 22 0a 09 43 50 50 46 4c 41 47 53 3d 22 24  S}"..CPPFLAGS="$
20b0: 7b 53 41 56 45 5f 43 50 50 46 4c 41 47 53 7d 22  {SAVE_CPPFLAGS}"
20c0: 0a 5d 29 0a                                      .]).