Hex Artifact Content

Artifact ff2696802079cf434755fa5bfedd37935eeff03e:


0000: 41 43 5f 49 4e 49 54 28 63 61 63 6b 65 79 2c 20  AC_INIT(cackey, 
0010: 30 2e 37 2e 34 29 20 0a 41 43 5f 43 4f 4e 46 49  0.7.4) .AC_CONFI
0020: 47 5f 48 45 41 44 45 52 53 28 63 6f 6e 66 69 67  G_HEADERS(config
0030: 2e 68 29 0a 0a 64 6e 6c 20 4c 6f 63 61 74 65 20  .h)..dnl Locate 
0040: 73 74 61 6e 64 61 72 64 20 74 6f 6f 6c 73 0a 41  standard tools.A
0050: 43 5f 50 52 4f 47 5f 43 43 0a 41 43 5f 50 52 4f  C_PROG_CC.AC_PRO
0060: 47 5f 4d 41 4b 45 5f 53 45 54 0a 41 43 5f 50 52  G_MAKE_SET.AC_PR
0070: 4f 47 5f 49 4e 53 54 41 4c 4c 0a 41 43 5f 41 49  OG_INSTALL.AC_AI
0080: 58 0a 41 43 5f 4c 41 4e 47 28 43 29 0a 0a 64 6e  X.AC_LANG(C)..dn
0090: 6c 20 44 65 74 65 72 6d 69 6e 65 20 74 68 69 73  l Determine this
00a0: 20 70 6c 61 74 66 6f 72 6d 0a 44 43 5f 43 48 4b   platform.DC_CHK
00b0: 5f 4f 53 5f 49 4e 46 4f 0a 0a 64 6e 6c 20 44 65  _OS_INFO..dnl De
00c0: 74 65 72 6d 69 6e 65 20 68 6f 77 20 74 6f 20 63  termine how to c
00d0: 72 65 61 74 65 20 73 68 61 72 65 64 20 6f 62 6a  reate shared obj
00e0: 65 63 74 73 20 6f 6e 20 74 68 69 73 20 70 6c 61  ects on this pla
00f0: 74 66 6f 72 6d 0a 44 43 5f 47 45 54 5f 53 48 4f  tform.DC_GET_SHO
0100: 42 4a 46 4c 41 47 53 0a 0a 41 43 58 5f 50 54 48  BJFLAGS..ACX_PTH
0110: 52 45 41 44 28 2c 20 5b 0a 09 41 43 5f 4d 53 47  READ(, [..AC_MSG
0120: 5f 57 41 52 4e 28 5b 43 61 6e 20 6e 6f 74 20 66  _WARN([Can not f
0130: 69 67 75 72 65 20 6f 75 74 20 68 6f 77 20 74 6f  igure out how to
0140: 20 63 6f 6d 70 69 6c 65 20 77 69 74 68 20 70 74   compile with pt
0150: 68 72 65 61 64 73 20 73 75 70 70 6f 72 74 2c 20  hreads support, 
0160: 72 75 6e 2d 74 69 6d 65 20 77 69 6c 6c 20 6c 69  run-time will li
0170: 6b 65 6c 79 20 66 61 69 6c 2e 5d 29 0a 5d 29 0a  kely fail.]).]).
0180: 0a 64 6e 6c 20 44 65 74 65 72 6d 69 6e 65 20 68  .dnl Determine h
0190: 6f 77 20 74 6f 20 63 72 65 61 74 65 20 73 74 61  ow to create sta
01a0: 74 69 63 20 61 72 63 68 69 76 65 73 20 6f 6e 20  tic archives on 
01b0: 74 68 69 73 20 70 6c 61 74 66 6f 72 6d 0a 41 43  this platform.AC
01c0: 5f 43 48 45 43 4b 5f 54 4f 4f 4c 28 41 52 2c 20  _CHECK_TOOL(AR, 
01d0: 61 72 29 0a 41 43 5f 43 48 45 43 4b 5f 54 4f 4f  ar).AC_CHECK_TOO
01e0: 4c 28 52 41 4e 4c 49 42 2c 20 72 61 6e 6c 69 62  L(RANLIB, ranlib
01f0: 29 0a 0a 64 6e 6c 20 44 65 74 65 72 6d 69 6e 65  )..dnl Determine
0200: 20 68 6f 77 20 74 6f 20 73 74 72 69 70 20 65 78   how to strip ex
0210: 65 63 75 74 61 62 6c 65 73 20 61 6e 64 20 72 65  ecutables and re
0220: 6d 6f 76 65 20 73 79 6d 62 6f 6c 73 0a 44 43 5f  move symbols.DC_
0230: 46 49 4e 44 5f 53 54 52 49 50 5f 41 4e 44 5f 52  FIND_STRIP_AND_R
0240: 45 4d 4f 56 45 53 59 4d 53 28 6c 69 62 63 61 63  EMOVESYMS(libcac
0250: 6b 65 79 2e 73 79 6d 73 29 0a 0a 64 6e 6c 20 43  key.syms)..dnl C
0260: 68 65 63 6b 20 66 6f 72 20 61 6c 6c 20 72 65 71  heck for all req
0270: 75 69 72 65 64 20 68 65 61 64 65 72 73 0a 41 43  uired headers.AC
0280: 5f 43 48 45 43 4b 5f 48 45 41 44 45 52 53 28 61  _CHECK_HEADERS(a
0290: 72 70 61 2f 69 6e 65 74 2e 68 20 69 6e 74 74 79  rpa/inet.h intty
02a0: 70 65 73 2e 68 20 73 74 64 61 72 67 2e 68 20 73  pes.h stdarg.h s
02b0: 74 64 69 6e 74 2e 68 20 73 74 64 69 6f 2e 68 20  tdint.h stdio.h 
02c0: 73 74 64 6c 69 62 2e 68 20 73 74 72 69 6e 67 2e  stdlib.h string.
02d0: 68 20 73 79 73 2f 73 6f 63 6b 65 74 2e 68 20 73  h sys/socket.h s
02e0: 79 73 2f 74 79 70 65 73 2e 68 20 73 79 73 2f 75  ys/types.h sys/u
02f0: 6e 2e 68 20 74 69 6d 65 2e 68 20 75 6e 69 73 74  n.h time.h unist
0300: 64 2e 68 20 70 74 68 72 65 61 64 2e 68 20 7a 6c  d.h pthread.h zl
0310: 69 62 2e 68 20 6c 69 6d 69 74 73 2e 68 2c 2c 5b  ib.h limits.h,,[
0320: 0a 09 41 43 5f 57 41 52 4e 28 5b 52 65 71 75 69  ..AC_WARN([Requi
0330: 72 65 64 20 68 65 61 64 65 72 20 6d 69 73 73 69  red header missi
0340: 6e 67 2c 20 63 6f 6d 70 69 6c 61 74 69 6f 6e 20  ng, compilation 
0350: 77 69 6c 6c 20 6c 69 6b 65 6c 79 20 66 61 69 6c  will likely fail
0360: 2e 5d 29 0a 5d 2c 20 5b 0a 23 69 66 64 65 66 20  .]).], [.#ifdef 
0370: 48 41 56 45 5f 41 52 50 41 5f 49 4e 45 54 5f 48  HAVE_ARPA_INET_H
0380: 0a 23 20 20 69 6e 63 6c 75 64 65 20 3c 61 72 70  .#  include <arp
0390: 61 2f 69 6e 65 74 2e 68 3e 0a 23 65 6e 64 69 66  a/inet.h>.#endif
03a0: 0a 23 69 66 64 65 66 20 48 41 56 45 5f 49 4e 54  .#ifdef HAVE_INT
03b0: 54 59 50 45 53 5f 48 0a 23 20 20 69 6e 63 6c 75  TYPES_H.#  inclu
03c0: 64 65 20 3c 69 6e 74 74 79 70 65 73 2e 68 3e 0a  de <inttypes.h>.
03d0: 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20 48 41  #endif.#ifdef HA
03e0: 56 45 5f 53 54 44 41 52 47 5f 48 0a 23 20 20 69  VE_STDARG_H.#  i
03f0: 6e 63 6c 75 64 65 20 3c 73 74 64 61 72 67 2e 68  nclude <stdarg.h
0400: 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20  >.#endif.#ifdef 
0410: 48 41 56 45 5f 53 54 44 49 4e 54 5f 48 0a 23 20  HAVE_STDINT_H.# 
0420: 20 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6e 74   include <stdint
0430: 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65  .h>.#endif.#ifde
0440: 66 20 48 41 56 45 5f 53 54 44 49 4f 5f 48 0a 23  f HAVE_STDIO_H.#
0450: 20 20 69 6e 63 6c 75 64 65 20 3c 73 74 64 69 6f    include <stdio
0460: 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65  .h>.#endif.#ifde
0470: 66 20 48 41 56 45 5f 53 54 44 4c 49 42 5f 48 0a  f HAVE_STDLIB_H.
0480: 23 20 20 69 6e 63 6c 75 64 65 20 3c 73 74 64 6c  #  include <stdl
0490: 69 62 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66  ib.h>.#endif.#if
04a0: 64 65 66 20 48 41 56 45 5f 53 54 52 49 4e 47 5f  def HAVE_STRING_
04b0: 48 0a 23 20 20 69 6e 63 6c 75 64 65 20 3c 73 74  H.#  include <st
04c0: 72 69 6e 67 2e 68 3e 0a 23 65 6e 64 69 66 0a 23  ring.h>.#endif.#
04d0: 69 66 64 65 66 20 48 41 56 45 5f 53 59 53 5f 53  ifdef HAVE_SYS_S
04e0: 4f 43 4b 45 54 5f 48 0a 23 20 20 69 6e 63 6c 75  OCKET_H.#  inclu
04f0: 64 65 20 3c 73 79 73 2f 73 6f 63 6b 65 74 2e 68  de <sys/socket.h
0500: 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20  >.#endif.#ifdef 
0510: 48 41 56 45 5f 53 59 53 5f 54 59 50 45 53 5f 48  HAVE_SYS_TYPES_H
0520: 0a 23 20 20 69 6e 63 6c 75 64 65 20 3c 73 79 73  .#  include <sys
0530: 2f 74 79 70 65 73 2e 68 3e 0a 23 65 6e 64 69 66  /types.h>.#endif
0540: 0a 23 69 66 64 65 66 20 48 41 56 45 5f 53 59 53  .#ifdef HAVE_SYS
0550: 5f 55 4e 5f 48 0a 23 20 20 69 6e 63 6c 75 64 65  _UN_H.#  include
0560: 20 3c 73 79 73 2f 75 6e 2e 68 3e 0a 23 65 6e 64   <sys/un.h>.#end
0570: 69 66 0a 23 69 66 64 65 66 20 48 41 56 45 5f 55  if.#ifdef HAVE_U
0580: 4e 49 53 54 44 5f 48 0a 23 20 20 69 6e 63 6c 75  NISTD_H.#  inclu
0590: 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 0a 23 65  de <unistd.h>.#e
05a0: 6e 64 69 66 0a 23 69 66 64 65 66 20 48 41 56 45  ndif.#ifdef HAVE
05b0: 5f 54 49 4d 45 5f 48 0a 23 20 20 69 6e 63 6c 75  _TIME_H.#  inclu
05c0: 64 65 20 3c 74 69 6d 65 2e 68 3e 0a 23 65 6e 64  de <time.h>.#end
05d0: 69 66 0a 23 69 66 64 65 66 20 48 41 56 45 5f 50  if.#ifdef HAVE_P
05e0: 54 48 52 45 41 44 5f 48 0a 23 20 20 69 6e 63 6c  THREAD_H.#  incl
05f0: 75 64 65 20 3c 70 74 68 72 65 61 64 2e 68 3e 0a  ude <pthread.h>.
0600: 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20 48 41  #endif.#ifdef HA
0610: 56 45 5f 4c 49 4d 49 54 53 5f 48 0a 23 20 20 69  VE_LIMITS_H.#  i
0620: 6e 63 6c 75 64 65 20 3c 6c 69 6d 69 74 73 2e 68  nclude <limits.h
0630: 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20  >.#endif.#ifdef 
0640: 48 41 56 45 5f 5a 4c 49 42 5f 48 0a 23 20 20 69  HAVE_ZLIB_H.#  i
0650: 6e 63 6c 75 64 65 20 3c 7a 6c 69 62 2e 68 3e 0a  nclude <zlib.h>.
0660: 23 65 6e 64 69 66 0a 5d 29 0a 0a 64 6e 6c 20 43  #endif.])..dnl C
0670: 68 65 63 6b 20 66 6f 72 20 50 43 2f 53 43 20 68  heck for PC/SC h
0680: 65 61 64 65 72 73 20 61 6e 64 20 6c 69 62 72 61  eaders and libra
0690: 72 69 65 73 0a 44 43 5f 50 43 53 43 0a 0a 64 6e  ries.DC_PCSC..dn
06a0: 6c 20 43 68 65 63 6b 20 66 6f 72 20 5a 4c 49 42  l Check for ZLIB
06b0: 20 6c 69 62 72 61 72 69 65 73 0a 41 43 5f 43 48   libraries.AC_CH
06c0: 45 43 4b 5f 4c 49 42 28 7a 2c 20 75 6e 63 6f 6d  ECK_LIB(z, uncom
06d0: 70 72 65 73 73 29 0a 0a 64 6e 6c 20 56 65 72 69  press)..dnl Veri
06e0: 66 79 20 74 68 61 74 20 61 20 62 61 73 69 63 20  fy that a basic 
06f0: 70 72 6f 67 72 61 6d 20 77 69 6c 6c 20 63 6f 6d  program will com
0700: 70 69 6c 65 0a 41 43 5f 4d 53 47 5f 43 48 45 43  pile.AC_MSG_CHEC
0710: 4b 49 4e 47 28 5b 69 66 20 62 61 73 69 63 20 50  KING([if basic P
0720: 43 2f 53 43 20 70 72 6f 67 72 61 6d 20 77 6f 72  C/SC program wor
0730: 6b 73 5d 29 0a 41 43 5f 4c 49 4e 4b 5f 49 46 45  ks]).AC_LINK_IFE
0740: 4c 53 45 28 0a 09 41 43 5f 4c 41 4e 47 5f 50 52  LSE(..AC_LANG_PR
0750: 4f 47 52 41 4d 28 5b 5b 0a 23 69 66 64 65 66 20  OGRAM([[.#ifdef 
0760: 48 41 56 45 5f 57 49 4e 54 59 50 45 53 5f 48 0a  HAVE_WINTYPES_H.
0770: 23 20 20 69 6e 63 6c 75 64 65 20 3c 77 69 6e 74  #  include <wint
0780: 79 70 65 73 2e 68 3e 0a 23 65 6e 64 69 66 0a 23  ypes.h>.#endif.#
0790: 69 66 64 65 66 20 48 41 56 45 5f 50 43 53 43 4c  ifdef HAVE_PCSCL
07a0: 49 54 45 5f 48 0a 23 20 20 69 6e 63 6c 75 64 65  ITE_H.#  include
07b0: 20 3c 70 63 73 63 6c 69 74 65 2e 68 3e 0a 23 65   <pcsclite.h>.#e
07c0: 6e 64 69 66 0a 23 69 66 64 65 66 20 48 41 56 45  ndif.#ifdef HAVE
07d0: 5f 57 49 4e 53 43 41 52 44 5f 48 0a 23 20 20 69  _WINSCARD_H.#  i
07e0: 6e 63 6c 75 64 65 20 3c 77 69 6e 73 63 61 72 64  nclude <winscard
07f0: 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65  .h>.#endif.#ifde
0800: 66 20 48 41 56 45 5f 53 54 44 49 4e 54 5f 48 0a  f HAVE_STDINT_H.
0810: 23 20 20 69 6e 63 6c 75 64 65 20 3c 73 74 64 69  #  include <stdi
0820: 6e 74 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66  nt.h>.#endif.#if
0830: 64 65 66 20 48 41 56 45 5f 49 4e 54 54 59 50 45  def HAVE_INTTYPE
0840: 53 5f 48 0a 23 20 20 69 6e 63 6c 75 64 65 20 3c  S_H.#  include <
0850: 69 6e 74 74 79 70 65 73 2e 68 3e 0a 23 65 6e 64  inttypes.h>.#end
0860: 69 66 0a 23 69 66 64 65 66 20 48 41 56 45 5f 53  if.#ifdef HAVE_S
0870: 54 44 4c 49 42 5f 48 0a 23 20 20 69 6e 63 6c 75  TDLIB_H.#  inclu
0880: 64 65 20 3c 73 74 64 6c 69 62 2e 68 3e 0a 23 65  de <stdlib.h>.#e
0890: 6e 64 69 66 0a 23 69 66 64 65 66 20 48 41 56 45  ndif.#ifdef HAVE
08a0: 5f 55 4e 49 53 54 44 5f 48 0a 23 20 20 69 6e 63  _UNISTD_H.#  inc
08b0: 6c 75 64 65 20 3c 75 6e 69 73 74 64 2e 68 3e 0a  lude <unistd.h>.
08c0: 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20 48 41  #endif.#ifdef HA
08d0: 56 45 5f 53 54 52 49 4e 47 5f 48 0a 23 20 20 69  VE_STRING_H.#  i
08e0: 6e 63 6c 75 64 65 20 3c 73 74 72 69 6e 67 2e 68  nclude <string.h
08f0: 3e 0a 23 65 6e 64 69 66 0a 23 69 66 64 65 66 20  >.#endif.#ifdef 
0900: 48 41 56 45 5f 50 54 48 52 45 41 44 5f 48 0a 23  HAVE_PTHREAD_H.#
0910: 20 20 69 6e 63 6c 75 64 65 20 3c 70 74 68 72 65    include <pthre
0920: 61 64 2e 68 3e 0a 23 65 6e 64 69 66 0a 23 69 66  ad.h>.#endif.#if
0930: 64 65 66 20 48 41 56 45 5f 4c 49 4d 49 54 53 5f  def HAVE_LIMITS_
0940: 48 0a 23 20 20 69 6e 63 6c 75 64 65 20 3c 6c 69  H.#  include <li
0950: 6d 69 74 73 2e 68 3e 0a 23 65 6e 64 69 66 0a 23  mits.h>.#endif.#
0960: 69 66 64 65 66 20 48 41 56 45 5f 53 54 44 49 4f  ifdef HAVE_STDIO
0970: 5f 48 0a 23 20 20 69 6e 63 6c 75 64 65 20 3c 73  _H.#  include <s
0980: 74 64 69 6f 2e 68 3e 0a 23 65 6e 64 69 66 0a 23  tdio.h>.#endif.#
0990: 69 66 64 65 66 20 48 41 56 45 5f 5a 4c 49 42 5f  ifdef HAVE_ZLIB_
09a0: 48 0a 23 20 20 69 66 64 65 66 20 48 41 56 45 5f  H.#  ifdef HAVE_
09b0: 4c 49 42 5a 0a 23 20 20 20 20 69 6e 63 6c 75 64  LIBZ.#    includ
09c0: 65 20 3c 7a 6c 69 62 2e 68 3e 0a 23 20 20 65 6e  e <zlib.h>.#  en
09d0: 64 69 66 0a 23 65 6e 64 69 66 0a 09 5d 5d 2c 20  dif.#endif..]], 
09e0: 5b 5b 0a 09 09 4c 50 53 43 41 52 44 48 41 4e 44  [[...LPSCARDHAND
09f0: 4c 45 20 68 43 61 72 64 3b 0a 09 09 53 43 41 52  LE hCard;...SCAR
0a00: 44 43 4f 4e 54 45 58 54 20 68 43 6f 6e 74 65 78  DCONTEXT hContex
0a10: 74 3b 0a 09 09 44 57 4f 52 44 20 64 77 41 63 74  t;...DWORD dwAct
0a20: 69 76 65 50 72 6f 74 6f 63 6f 6c 3b 0a 09 09 4c  iveProtocol;...L
0a30: 4f 4e 47 20 73 63 61 72 64 5f 63 6f 6e 6e 5f 72  ONG scard_conn_r
0a40: 65 74 2c 20 73 63 61 72 64 5f 65 73 74 5f 63 6f  et, scard_est_co
0a50: 6e 74 65 78 74 5f 72 65 74 3b 0a 0a 09 09 73 63  ntext_ret;....sc
0a60: 61 72 64 5f 65 73 74 5f 63 6f 6e 74 65 78 74 5f  ard_est_context_
0a70: 72 65 74 20 3d 20 53 43 61 72 64 45 73 74 61 62  ret = SCardEstab
0a80: 6c 69 73 68 43 6f 6e 74 65 78 74 28 53 43 41 52  lishContext(SCAR
0a90: 44 5f 53 43 4f 50 45 5f 53 59 53 54 45 4d 2c 20  D_SCOPE_SYSTEM, 
0aa0: 4e 55 4c 4c 2c 20 4e 55 4c 4c 2c 20 26 68 43 6f  NULL, NULL, &hCo
0ab0: 6e 74 65 78 74 29 3b 0a 0a 09 09 68 43 61 72 64  ntext);....hCard
0ac0: 20 3d 20 4e 55 4c 4c 3b 0a 09 09 73 63 61 72 64   = NULL;...scard
0ad0: 5f 63 6f 6e 6e 5f 72 65 74 20 3d 20 53 43 61 72  _conn_ret = SCar
0ae0: 64 43 6f 6e 6e 65 63 74 28 68 43 6f 6e 74 65 78  dConnect(hContex
0af0: 74 2c 20 22 52 65 61 64 65 72 20 58 22 2c 20 53  t, "Reader X", S
0b00: 43 41 52 44 5f 53 48 41 52 45 5f 53 48 41 52 45  CARD_SHARE_SHARE
0b10: 44 2c 20 53 43 41 52 44 5f 50 52 4f 54 4f 43 4f  D, SCARD_PROTOCO
0b20: 4c 5f 54 30 2c 20 68 43 61 72 64 2c 20 26 64 77  L_T0, hCard, &dw
0b30: 41 63 74 69 76 65 50 72 6f 74 6f 63 6f 6c 29 3b  ActiveProtocol);
0b40: 0a 09 5d 5d 29 2c 20 5b 0a 09 09 41 43 5f 4d 53  ..]]), [...AC_MS
0b50: 47 5f 52 45 53 55 4c 54 28 6f 6b 61 79 29 0a 09  G_RESULT(okay)..
0b60: 5d 2c 20 5b 0a 09 09 41 43 5f 4d 53 47 5f 52 45  ], [...AC_MSG_RE
0b70: 53 55 4c 54 28 66 61 69 6c 65 64 29 0a 0a 09 09  SULT(failed)....
0b80: 41 43 5f 4d 53 47 5f 46 41 49 4c 55 52 45 28 5b  AC_MSG_FAILURE([
0b90: 73 69 6d 70 6c 65 20 50 43 2f 53 43 20 70 72 6f  simple PC/SC pro
0ba0: 67 72 61 6d 20 66 61 69 6c 65 64 5d 29 0a 09 5d  gram failed])..]
0bb0: 0a 29 0a 0a 64 6e 6c 20 4f 70 74 69 6f 6e 20 74  .)..dnl Option t
0bc0: 6f 20 65 6e 61 62 6c 65 20 44 6f 44 20 63 65 72  o enable DoD cer
0bd0: 74 73 20 6f 6e 20 68 61 72 64 77 61 72 65 20 73  ts on hardware s
0be0: 6c 6f 74 0a 41 43 5f 41 52 47 5f 45 4e 41 42 4c  lot.AC_ARG_ENABL
0bf0: 45 28 64 6f 64 2d 63 65 72 74 73 2d 6f 6e 2d 68  E(dod-certs-on-h
0c00: 77 2d 73 6c 6f 74 73 2c 20 41 43 5f 48 45 4c 50  w-slots, AC_HELP
0c10: 5f 53 54 52 49 4e 47 28 5b 2d 2d 65 6e 61 62 6c  _STRING([--enabl
0c20: 65 2d 64 6f 64 2d 63 65 72 74 73 2d 6f 6e 2d 68  e-dod-certs-on-h
0c30: 77 2d 73 6c 6f 74 73 5d 2c 20 5b 53 70 65 63 69  w-slots], [Speci
0c40: 66 79 20 74 68 61 74 20 44 6f 44 20 63 65 72 74  fy that DoD cert
0c50: 69 66 69 63 61 74 65 73 20 73 68 6f 75 6c 64 20  ificates should 
0c60: 62 65 20 6d 61 64 65 20 61 76 61 69 6c 61 62 6c  be made availabl
0c70: 65 20 6f 6e 20 68 61 72 64 77 61 72 65 20 74 6f  e on hardware to
0c80: 6b 65 6e 20 73 6c 6f 74 73 5d 29 2c 20 5b 0a 09  ken slots]), [..
0c90: 64 6f 64 63 65 72 74 73 6f 6e 68 77 73 6c 6f 74  dodcertsonhwslot
0ca0: 73 3d 24 65 6e 61 62 6c 65 76 61 6c 0a 5d 2c 20  s=$enableval.], 
0cb0: 5b 0a 09 64 6f 64 63 65 72 74 73 6f 6e 68 77 73  [..dodcertsonhws
0cc0: 6c 6f 74 73 3d 6e 6f 0a 5d 29 0a 0a 69 66 20 21  lots=no.])..if !
0cd0: 20 74 65 73 74 20 22 24 7b 64 6f 64 63 65 72 74   test "${dodcert
0ce0: 73 6f 6e 68 77 73 6c 6f 74 73 7d 22 20 3d 20 27  sonhwslots}" = '
0cf0: 6e 6f 27 3b 20 74 68 65 6e 0a 09 41 43 5f 44 45  no'; then..AC_DE
0d00: 46 49 4e 45 28 43 41 43 4b 45 59 5f 43 41 52 44  FINE(CACKEY_CARD
0d10: 5f 53 4c 4f 54 5f 49 4e 43 4c 55 44 45 5f 45 58  _SLOT_INCLUDE_EX
0d20: 54 52 41 5f 43 45 52 54 53 2c 20 5b 31 5d 2c 20  TRA_CERTS, [1], 
0d30: 5b 53 70 65 63 69 66 79 20 74 68 61 74 20 44 6f  [Specify that Do
0d40: 44 20 63 65 72 74 69 66 69 63 61 74 65 73 20 73  D certificates s
0d50: 68 6f 75 6c 64 20 62 65 20 6d 61 64 65 20 61 76  hould be made av
0d60: 61 69 6c 61 62 6c 65 20 6f 6e 20 68 61 72 64 77  ailable on hardw
0d70: 61 72 65 20 74 6f 6b 65 6e 20 73 6c 6f 74 73 5d  are token slots]
0d80: 29 0a 66 69 0a 0a 64 6e 6c 20 4f 70 74 69 6f 6e  ).fi..dnl Option
0d90: 20 74 6f 20 64 69 73 61 62 6c 65 20 44 6f 44 20   to disable DoD 
0da0: 63 65 72 74 73 20 65 6e 74 69 72 65 6c 79 0a 41  certs entirely.A
0db0: 43 5f 41 52 47 5f 45 4e 41 42 4c 45 28 64 6f 64  C_ARG_ENABLE(dod
0dc0: 2d 63 65 72 74 73 2c 20 41 43 5f 48 45 4c 50 5f  -certs, AC_HELP_
0dd0: 53 54 52 49 4e 47 28 5b 2d 2d 64 69 73 61 62 6c  STRING([--disabl
0de0: 65 2d 64 6f 64 2d 63 65 72 74 73 5d 2c 20 5b 44  e-dod-certs], [D
0df0: 69 73 61 62 6c 65 20 69 6e 63 6c 75 64 69 6e 67  isable including
0e00: 20 44 6f 44 20 63 65 72 74 73 20 65 6e 74 69 72   DoD certs entir
0e10: 65 6c 79 2e 20 20 54 68 65 20 75 73 65 72 20 6d  ely.  The user m
0e20: 61 79 20 6f 76 65 72 72 69 64 65 20 74 68 69 73  ay override this
0e30: 20 77 69 74 68 20 74 68 65 20 43 41 43 4b 45 59   with the CACKEY
0e40: 5f 45 58 54 52 41 5f 43 45 52 54 53 20 65 6e 76  _EXTRA_CERTS env
0e50: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c  ironment variabl
0e60: 65 2e 5d 29 2c 20 5b 0a 09 64 6f 64 63 65 72 74  e.]), [..dodcert
0e70: 73 3d 24 65 6e 61 62 6c 65 76 61 6c 0a 5d 2c 20  s=$enableval.], 
0e80: 5b 0a 09 64 6f 64 63 65 72 74 73 3d 79 65 73 0a  [..dodcerts=yes.
0e90: 5d 29 0a 0a 69 66 20 74 65 73 74 20 22 24 7b 64  ])..if test "${d
0ea0: 6f 64 63 65 72 74 73 7d 22 20 3d 20 27 6e 6f 27  odcerts}" = 'no'
0eb0: 3b 20 74 68 65 6e 0a 09 41 43 5f 44 45 46 49 4e  ; then..AC_DEFIN
0ec0: 45 28 43 41 43 4b 45 59 5f 4e 4f 5f 45 58 54 52  E(CACKEY_NO_EXTR
0ed0: 41 5f 43 45 52 54 53 2c 20 5b 31 5d 2c 20 5b 53  A_CERTS, [1], [S
0ee0: 70 65 63 69 66 79 20 74 68 61 74 20 44 6f 44 20  pecify that DoD 
0ef0: 63 65 72 74 69 66 69 63 61 74 65 73 20 73 68 6f  certificates sho
0f00: 75 6c 64 20 6e 6f 74 20 62 65 20 6d 61 64 65 20  uld not be made 
0f10: 61 76 61 69 6c 61 62 6c 65 5d 29 0a 66 69 0a 0a  available]).fi..
0f20: 64 6e 6c 20 4f 70 74 69 6f 6e 20 74 6f 20 68 61  dnl Option to ha
0f30: 72 64 2d 63 6f 64 65 20 61 20 63 6f 6d 6d 61 6e  rd-code a comman
0f40: 64 20 74 6f 20 72 75 6e 20 74 6f 20 72 65 71 75  d to run to requ
0f50: 65 73 74 20 61 20 50 49 4e 20 28 65 6e 61 62 6c  est a PIN (enabl
0f60: 69 6e 67 20 70 72 6f 74 65 63 74 65 64 20 61 75  ing protected au
0f70: 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 70 61 74  thentication pat
0f80: 68 29 0a 41 43 5f 41 52 47 5f 57 49 54 48 28 70  h).AC_ARG_WITH(p
0f90: 69 6e 2d 63 6f 6d 6d 61 6e 64 2c 20 41 43 5f 48  in-command, AC_H
0fa0: 45 4c 50 5f 53 54 52 49 4e 47 28 5b 2d 2d 77 69  ELP_STRING([--wi
0fb0: 74 68 2d 70 69 6e 2d 63 6f 6d 6d 61 6e 64 3d 3c  th-pin-command=<
0fc0: 63 6f 6d 6d 61 6e 64 3e 5d 2c 20 5b 53 70 65 63  command>], [Spec
0fd0: 69 66 79 20 61 20 63 6f 6d 6d 61 6e 64 20 74 6f  ify a command to
0fe0: 20 72 75 6e 20 74 6f 20 72 65 71 75 65 73 74 20   run to request 
0ff0: 61 20 50 49 4e 20 66 72 6f 6d 20 74 68 65 20 75  a PIN from the u
1000: 73 65 72 2e 20 20 54 68 65 20 75 73 65 72 20 6d  ser.  The user m
1010: 61 79 20 6f 76 65 72 72 69 64 65 20 74 68 69 73  ay override this
1020: 20 77 69 74 68 20 74 68 65 20 43 41 43 4b 45 59   with the CACKEY
1030: 5f 50 49 4e 5f 43 4f 4d 4d 41 4e 44 20 65 6e 76  _PIN_COMMAND env
1040: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c  ironment variabl
1050: 65 2e 5d 29 2c 20 5b 0a 09 70 69 6e 63 6f 6d 6d  e.]), [..pincomm
1060: 61 6e 64 3d 22 24 7b 77 69 74 68 76 61 6c 7d 22  and="${withval}"
1070: 0a 5d 2c 20 5b 0a 09 70 69 6e 63 6f 6d 6d 61 6e  .], [..pincomman
1080: 64 3d 22 6e 6f 22 0a 5d 29 0a 0a 41 43 5f 41 52  d="no".])..AC_AR
1090: 47 5f 57 49 54 48 28 70 69 6e 2d 63 6f 6d 6d 61  G_WITH(pin-comma
10a0: 6e 64 2d 78 2c 20 41 43 5f 48 45 4c 50 5f 53 54  nd-x, AC_HELP_ST
10b0: 52 49 4e 47 28 5b 2d 2d 77 69 74 68 2d 70 69 6e  RING([--with-pin
10c0: 2d 63 6f 6d 6d 61 6e 64 2d 78 3d 3c 63 6f 6d 6d  -command-x=<comm
10d0: 61 6e 64 3e 5d 2c 20 5b 53 61 6d 65 20 61 73 20  and>], [Same as 
10e0: 2d 2d 77 69 74 68 2d 70 69 6e 2d 63 6f 6d 6d 61  --with-pin-comma
10f0: 6e 64 2c 20 62 75 74 20 6f 6e 6c 79 20 73 65 74  nd, but only set
1100: 73 20 50 72 6f 74 65 63 74 65 64 20 41 75 74 68  s Protected Auth
1110: 65 6e 74 69 63 61 74 69 6f 6e 20 50 61 74 68 20  entication Path 
1120: 69 66 20 74 68 65 20 44 49 53 50 4c 41 59 20 65  if the DISPLAY e
1130: 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61  nvironment varia
1140: 62 6c 65 20 69 73 20 73 65 74 5d 29 2c 20 5b 0a  ble is set]), [.
1150: 09 70 69 6e 63 6f 6d 6d 61 6e 64 78 6f 6e 6c 79  .pincommandxonly
1160: 3d 22 24 7b 77 69 74 68 76 61 6c 7d 22 0a 5d 2c  ="${withval}".],
1170: 20 5b 0a 09 70 69 6e 63 6f 6d 6d 61 6e 64 78 6f   [..pincommandxo
1180: 6e 6c 79 3d 22 6e 6f 22 0a 5d 29 0a 0a 69 66 20  nly="no".])..if 
1190: 21 20 74 65 73 74 20 22 24 7b 70 69 6e 63 6f 6d  ! test "${pincom
11a0: 6d 61 6e 64 7d 22 20 3d 20 27 6e 6f 27 3b 20 74  mand}" = 'no'; t
11b0: 68 65 6e 0a 09 41 43 5f 44 45 46 49 4e 45 5f 55  hen..AC_DEFINE_U
11c0: 4e 51 55 4f 54 45 44 28 43 41 43 4b 45 59 5f 50  NQUOTED(CACKEY_P
11d0: 49 4e 5f 43 4f 4d 4d 41 4e 44 5f 44 45 46 41 55  IN_COMMAND_DEFAU
11e0: 4c 54 2c 20 5b 24 70 69 6e 63 6f 6d 6d 61 6e 64  LT, [$pincommand
11f0: 5d 2c 20 5b 43 6f 6d 6d 61 6e 64 20 74 6f 20 72  ], [Command to r
1200: 75 6e 20 74 6f 20 70 72 6f 6d 70 74 20 75 73 65  un to prompt use
1210: 72 20 66 6f 72 20 50 49 4e 5d 29 0a 66 69 0a 0a  r for PIN]).fi..
1220: 69 66 20 21 20 74 65 73 74 20 22 24 7b 70 69 6e  if ! test "${pin
1230: 63 6f 6d 6d 61 6e 64 78 6f 6e 6c 79 7d 22 20 3d  commandxonly}" =
1240: 20 27 6e 6f 27 3b 20 74 68 65 6e 0a 09 41 43 5f   'no'; then..AC_
1250: 44 45 46 49 4e 45 5f 55 4e 51 55 4f 54 45 44 28  DEFINE_UNQUOTED(
1260: 43 41 43 4b 45 59 5f 50 49 4e 5f 43 4f 4d 4d 41  CACKEY_PIN_COMMA
1270: 4e 44 5f 58 4f 4e 4c 59 5f 44 45 46 41 55 4c 54  ND_XONLY_DEFAULT
1280: 2c 20 5b 24 70 69 6e 63 6f 6d 6d 61 6e 64 78 6f  , [$pincommandxo
1290: 6e 6c 79 5d 2c 20 5b 43 6f 6d 6d 61 6e 64 20 74  nly], [Command t
12a0: 6f 20 72 75 6e 20 74 6f 20 70 72 6f 6d 70 74 20  o run to prompt 
12b0: 75 73 65 72 20 66 6f 72 20 50 49 4e 20 6f 6e 6c  user for PIN onl
12c0: 79 20 69 66 20 44 49 53 50 4c 41 59 20 65 6e 76  y if DISPLAY env
12d0: 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c  ironment variabl
12e0: 65 20 69 73 20 73 65 74 5d 29 0a 66 69 0a 0a 64  e is set]).fi..d
12f0: 6e 6c 20 53 65 74 20 76 65 72 73 69 6f 6e 20 73  nl Set version s
1300: 63 72 69 70 74 2c 20 74 6f 20 6c 69 6d 69 74 20  cript, to limit 
1310: 74 68 65 20 73 63 6f 70 65 20 6f 66 20 73 79 6d  the scope of sym
1320: 62 6f 6c 73 0a 44 43 5f 53 45 54 56 45 52 53 49  bols.DC_SETVERSI
1330: 4f 4e 53 43 52 49 50 54 28 6c 69 62 63 61 63 6b  ONSCRIPT(libcack
1340: 65 79 2e 76 65 72 73 2c 20 6c 69 62 63 61 63 6b  ey.vers, libcack
1350: 65 79 2e 73 79 6d 73 29 0a 0a 64 6e 6c 20 55 70  ey.syms)..dnl Up
1360: 61 74 65 20 4c 44 46 4c 41 47 53 20 74 6f 20 69  ate LDFLAGS to i
1370: 6e 63 6c 75 64 65 20 73 65 74 74 69 6e 67 20 74  nclude setting t
1380: 68 65 20 72 75 6e 2d 74 69 6d 65 20 6c 69 6e 6b  he run-time link
1390: 65 72 20 70 61 74 68 20 74 6f 20 74 68 65 20 73  er path to the s
13a0: 61 6d 65 20 61 73 20 6f 75 72 20 63 6f 6d 70 69  ame as our compi
13b0: 6c 65 2d 74 69 6d 65 20 6c 69 6e 6b 65 72 0a 44  le-time linker.D
13c0: 43 5f 53 59 4e 43 5f 52 50 41 54 48 0a 0a 64 6e  C_SYNC_RPATH..dn
13d0: 6c 20 49 66 20 77 65 20 75 70 64 61 74 65 64 20  l If we updated 
13e0: 4c 49 42 4f 42 4a 53 2c 20 75 70 64 61 74 65 20  LIBOBJS, update 
13f0: 53 48 4c 49 42 4f 42 4a 53 20 2d 2d 20 6d 75 73  SHLIBOBJS -- mus
1400: 74 20 62 65 20 6c 61 73 74 2e 0a 44 43 5f 53 59  t be last..DC_SY
1410: 4e 43 5f 53 48 4c 49 42 4f 42 4a 53 0a 0a 64 6e  NC_SHLIBOBJS..dn
1420: 6c 20 50 72 6f 64 75 63 65 20 4d 61 6b 65 66 69  l Produce Makefi
1430: 6c 65 0a 41 43 5f 4f 55 54 50 55 54 28 4d 61 6b  le.AC_OUTPUT(Mak
1440: 65 66 69 6c 65 20 6c 69 62 63 61 63 6b 65 79 2e  efile libcackey.
1450: 73 79 6d 73 29 0a                                syms).