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 .]).