| [444] | 1 | #------------------------------------------------------------------------ | 
|---|
 | 2 | # SC_PATH_TCLCONFIG -- | 
|---|
 | 3 | # | 
|---|
 | 4 | #       Locate the tclConfig.sh file and perform a sanity check on | 
|---|
 | 5 | #       the Tcl compile flags | 
|---|
 | 6 | # | 
|---|
 | 7 | # Arguments: | 
|---|
 | 8 | #       none | 
|---|
 | 9 | # | 
|---|
 | 10 | # Results: | 
|---|
 | 11 | # | 
|---|
 | 12 | #       Adds the following arguments to configure: | 
|---|
 | 13 | #               --with-tcl=... | 
|---|
 | 14 | # | 
|---|
 | 15 | #       Defines the following vars: | 
|---|
 | 16 | #               TCL_BIN_DIR     Full path to the directory containing | 
|---|
 | 17 | #                               the tclConfig.sh file | 
|---|
 | 18 | #------------------------------------------------------------------------ | 
|---|
 | 19 |  | 
|---|
 | 20 | AC_DEFUN([SC_PATH_TCLCONFIG], [ | 
|---|
 | 21 |     # | 
|---|
 | 22 |     # Ok, lets find the tcl configuration | 
|---|
 | 23 |     # First, look for one uninstalled. | 
|---|
 | 24 |     # the alternative search directory is invoked by --with-tcl | 
|---|
 | 25 |     # | 
|---|
 | 26 |  | 
|---|
 | 27 |     if test x"${no_tcl}" = x ; then | 
|---|
 | 28 |         # we reset no_tcl in case something fails here | 
|---|
 | 29 |         no_tcl=true | 
|---|
 | 30 |         AC_ARG_WITH(tcl, [  --with-tcl              directory containing tcl configuration (tclConfig.sh)], with_tclconfig=${withval}) | 
|---|
 | 31 |         AC_MSG_CHECKING([for Tcl configuration]) | 
|---|
 | 32 |         AC_CACHE_VAL(ac_cv_c_tclconfig,[ | 
|---|
 | 33 |  | 
|---|
 | 34 |             # First check to see if --with-tcl was specified. | 
|---|
 | 35 |             case "${host}" in | 
|---|
 | 36 |                 *-*-cygwin*) platDir="win" ;; | 
|---|
 | 37 |                 *) platDir="unix" ;; | 
|---|
 | 38 |             esac | 
|---|
 | 39 |             if test x"${with_tclconfig}" != x ; then | 
|---|
 | 40 |                 if test -f "${with_tclconfig}/tclConfig.sh" ; then | 
|---|
 | 41 |                     ac_cv_c_tclconfig=`(cd ${with_tclconfig}; pwd)` | 
|---|
 | 42 |                 else | 
|---|
 | 43 |                     AC_MSG_ERROR([${with_tclconfig} directory doesn't contain tclConfig.sh]) | 
|---|
 | 44 |                 fi | 
|---|
 | 45 |             fi | 
|---|
 | 46 |  | 
|---|
 | 47 |             # then check for a private Tcl installation | 
|---|
 | 48 |             if test x"${ac_cv_c_tclconfig}" = x ; then | 
|---|
 | 49 |                 for i in \ | 
|---|
 | 50 |                         ../tcl \ | 
|---|
 | 51 |                         `ls -dr ../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ | 
|---|
 | 52 |                         `ls -dr ../tcl[[8-9]].[[0-9]] 2>/dev/null` \ | 
|---|
 | 53 |                         `ls -dr ../tcl[[8-9]].[[0-9]]* 2>/dev/null` \ | 
|---|
 | 54 |                         ../../tcl \ | 
|---|
 | 55 |                         `ls -dr ../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ | 
|---|
 | 56 |                         `ls -dr ../../tcl[[8-9]].[[0-9]] 2>/dev/null` \ | 
|---|
 | 57 |                         `ls -dr ../../tcl[[8-9]].[[0-9]]* 2>/dev/null` \ | 
|---|
 | 58 |                         ../../../tcl \ | 
|---|
 | 59 |                         `ls -dr ../../../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ | 
|---|
 | 60 |                         `ls -dr ../../../tcl[[8-9]].[[0-9]] 2>/dev/null` \ | 
|---|
 | 61 |                         `ls -dr ../../../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do | 
|---|
 | 62 |                     if test -f "$i/$platDir/tclConfig.sh" ; then | 
|---|
 | 63 |                         ac_cv_c_tclconfig=`(cd $i/$platDir; pwd)` | 
|---|
 | 64 |                         break | 
|---|
 | 65 |                     fi | 
|---|
 | 66 |                 done | 
|---|
 | 67 |             fi | 
|---|
 | 68 |  | 
|---|
 | 69 |             # on Darwin, check in Framework installation locations | 
|---|
 | 70 |             if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tclconfig}" = x ; then | 
|---|
 | 71 |                 for i in `ls -d ~/Library/Frameworks 2>/dev/null` \ | 
|---|
 | 72 |                         `ls -d /Library/Frameworks 2>/dev/null` \ | 
|---|
 | 73 |                         `ls -d /Network/Library/Frameworks 2>/dev/null` \ | 
|---|
 | 74 |                         `ls -d /System/Library/Frameworks 2>/dev/null` \ | 
|---|
 | 75 |                         ; do | 
|---|
 | 76 |                     if test -f "$i/Tcl.framework/tclConfig.sh" ; then | 
|---|
 | 77 |                         ac_cv_c_tclconfig=`(cd $i/Tcl.framework; pwd)` | 
|---|
 | 78 |                         break | 
|---|
 | 79 |                     fi | 
|---|
 | 80 |                 done | 
|---|
 | 81 |             fi | 
|---|
 | 82 |  | 
|---|
 | 83 |             # check in a few common install locations | 
|---|
 | 84 |             if test x"${ac_cv_c_tclconfig}" = x ; then | 
|---|
 | 85 |                 for i in `ls -d ${libdir} 2>/dev/null` \ | 
|---|
 | 86 |                         `ls -d ${exec_prefix}/lib 2>/dev/null` \ | 
|---|
 | 87 |                         `ls -d ${prefix}/lib 2>/dev/null` \ | 
|---|
 | 88 |                         `ls -d /usr/local/lib 2>/dev/null` \ | 
|---|
 | 89 |                         `ls -d /usr/contrib/lib 2>/dev/null` \ | 
|---|
 | 90 |                         `ls -d /usr/lib 2>/dev/null` \ | 
|---|
 | 91 |                         ; do | 
|---|
 | 92 |                     if test -f "$i/tclConfig.sh" ; then | 
|---|
 | 93 |                         ac_cv_c_tclconfig=`(cd $i; pwd)` | 
|---|
 | 94 |                         break | 
|---|
 | 95 |                     fi | 
|---|
 | 96 |                 done | 
|---|
 | 97 |             fi | 
|---|
 | 98 |  | 
|---|
 | 99 |             # check in a few other private locations | 
|---|
 | 100 |             if test x"${ac_cv_c_tclconfig}" = x ; then | 
|---|
 | 101 |                 for i in \ | 
|---|
 | 102 |                         ${srcdir}/../tcl \ | 
|---|
 | 103 |                         `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ | 
|---|
 | 104 |                         `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]] 2>/dev/null` \ | 
|---|
 | 105 |                         `ls -dr ${srcdir}/../tcl[[8-9]].[[0-9]]* 2>/dev/null` ; do | 
|---|
 | 106 |                     if test -f "$i/$platDir/tclConfig.sh" ; then | 
|---|
 | 107 |                     ac_cv_c_tclconfig=`(cd $i/$platDir; pwd)` | 
|---|
 | 108 |                     break | 
|---|
 | 109 |                 fi | 
|---|
 | 110 |                 done | 
|---|
 | 111 |             fi | 
|---|
 | 112 |         ]) | 
|---|
 | 113 |  | 
|---|
 | 114 |         if test x"${ac_cv_c_tclconfig}" = x ; then | 
|---|
 | 115 |             TCL_BIN_DIR="# no Tcl configs found" | 
|---|
 | 116 |             AC_MSG_WARN([Can't find Tcl configuration definitions]) | 
|---|
 | 117 |         else | 
|---|
 | 118 |             no_tcl= | 
|---|
 | 119 |             TCL_BIN_DIR=${ac_cv_c_tclconfig} | 
|---|
 | 120 |             AC_MSG_RESULT([found ${TCL_BIN_DIR}/tclConfig.sh]) | 
|---|
 | 121 |         fi | 
|---|
 | 122 |     fi | 
|---|
 | 123 | ]) | 
|---|
 | 124 |  | 
|---|
 | 125 | #------------------------------------------------------------------------ | 
|---|
 | 126 | # SC_PATH_TKCONFIG -- | 
|---|
 | 127 | # | 
|---|
 | 128 | #       Locate the tkConfig.sh file | 
|---|
 | 129 | # | 
|---|
 | 130 | # Arguments: | 
|---|
 | 131 | #       none | 
|---|
 | 132 | # | 
|---|
 | 133 | # Results: | 
|---|
 | 134 | # | 
|---|
 | 135 | #       Adds the following arguments to configure: | 
|---|
 | 136 | #               --with-tk=... | 
|---|
 | 137 | # | 
|---|
 | 138 | #       Defines the following vars: | 
|---|
 | 139 | #               TK_BIN_DIR      Full path to the directory containing | 
|---|
 | 140 | #                               the tkConfig.sh file | 
|---|
 | 141 | #------------------------------------------------------------------------ | 
|---|
 | 142 |  | 
|---|
 | 143 | AC_DEFUN([SC_PATH_TKCONFIG], [ | 
|---|
 | 144 |     # | 
|---|
 | 145 |     # Ok, lets find the tk configuration | 
|---|
 | 146 |     # First, look for one uninstalled. | 
|---|
 | 147 |     # the alternative search directory is invoked by --with-tk | 
|---|
 | 148 |     # | 
|---|
 | 149 |  | 
|---|
 | 150 |     if test x"${no_tk}" = x ; then | 
|---|
 | 151 |         # we reset no_tk in case something fails here | 
|---|
 | 152 |         no_tk=true | 
|---|
 | 153 |         AC_ARG_WITH(tk, [  --with-tk               directory containing tk configuration (tkConfig.sh)], with_tkconfig=${withval}) | 
|---|
 | 154 |         AC_MSG_CHECKING([for Tk configuration]) | 
|---|
 | 155 |         AC_CACHE_VAL(ac_cv_c_tkconfig,[ | 
|---|
 | 156 |  | 
|---|
 | 157 |             # First check to see if --with-tkconfig was specified. | 
|---|
 | 158 |             if test x"${with_tkconfig}" != x ; then | 
|---|
 | 159 |                 if test -f "${with_tkconfig}/tkConfig.sh" ; then | 
|---|
 | 160 |                     ac_cv_c_tkconfig=`(cd ${with_tkconfig}; pwd)` | 
|---|
 | 161 |                 else | 
|---|
 | 162 |                     AC_MSG_ERROR([${with_tkconfig} directory doesn't contain tkConfig.sh]) | 
|---|
 | 163 |                 fi | 
|---|
 | 164 |             fi | 
|---|
 | 165 |  | 
|---|
 | 166 |             # then check for a private Tk library | 
|---|
 | 167 |             case "${host}" in | 
|---|
 | 168 |                 *-*-cygwin*) platDir="win" ;; | 
|---|
 | 169 |                 *) platDir="unix" ;; | 
|---|
 | 170 |             esac | 
|---|
 | 171 |             if test x"${ac_cv_c_tkconfig}" = x ; then | 
|---|
 | 172 |                 for i in \ | 
|---|
 | 173 |                         ../tk \ | 
|---|
 | 174 |                         `ls -dr ../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ | 
|---|
 | 175 |                         `ls -dr ../tk[[8-9]].[[0-9]] 2>/dev/null` \ | 
|---|
 | 176 |                         `ls -dr ../tk[[8-9]].[[0-9]]* 2>/dev/null` \ | 
|---|
 | 177 |                         ../../tk \ | 
|---|
 | 178 |                         `ls -dr ../../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ | 
|---|
 | 179 |                         `ls -dr ../../tk[[8-9]].[[0-9]] 2>/dev/null` \ | 
|---|
 | 180 |                         `ls -dr ../../tk[[8-9]].[[0-9]]* 2>/dev/null` \ | 
|---|
 | 181 |                         ../../../tk \ | 
|---|
 | 182 |                         `ls -dr ../../../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ | 
|---|
 | 183 |                         `ls -dr ../../../tk[[8-9]].[[0-9]] 2>/dev/null` \ | 
|---|
 | 184 |                         `ls -dr ../../../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do | 
|---|
 | 185 |                     if test -f "$i/$platDir/tkConfig.sh" ; then | 
|---|
 | 186 |                         ac_cv_c_tkconfig=`(cd $i/$platDir; pwd)` | 
|---|
 | 187 |                         break | 
|---|
 | 188 |                     fi | 
|---|
 | 189 |                 done | 
|---|
 | 190 |             fi | 
|---|
 | 191 |  | 
|---|
 | 192 |             # on Darwin, check in Framework installation locations | 
|---|
 | 193 |             if test "`uname -s`" = "Darwin" -a x"${ac_cv_c_tkconfig}" = x ; then | 
|---|
 | 194 |                 for i in `ls -d ~/Library/Frameworks 2>/dev/null` \ | 
|---|
 | 195 |                         `ls -d /Library/Frameworks 2>/dev/null` \ | 
|---|
 | 196 |                         `ls -d /Network/Library/Frameworks 2>/dev/null` \ | 
|---|
 | 197 |                         `ls -d /System/Library/Frameworks 2>/dev/null` \ | 
|---|
 | 198 |                         ; do | 
|---|
 | 199 |                     if test -f "$i/Tk.framework/tkConfig.sh" ; then | 
|---|
 | 200 |                         ac_cv_c_tkconfig=`(cd $i/Tk.framework; pwd)` | 
|---|
 | 201 |                         break | 
|---|
 | 202 |                     fi | 
|---|
 | 203 |                 done | 
|---|
 | 204 |             fi | 
|---|
 | 205 |  | 
|---|
 | 206 |             # check in a few common install locations | 
|---|
 | 207 |             if test x"${ac_cv_c_tkconfig}" = x ; then | 
|---|
 | 208 |                 for i in `ls -d ${libdir} 2>/dev/null` \ | 
|---|
 | 209 |                         `ls -d ${exec_prefix}/lib 2>/dev/null` \ | 
|---|
 | 210 |                         `ls -d ${prefix}/lib 2>/dev/null` \ | 
|---|
 | 211 |                         `ls -d /usr/local/lib 2>/dev/null` \ | 
|---|
 | 212 |                         `ls -d /usr/contrib/lib 2>/dev/null` \ | 
|---|
 | 213 |                         `ls -d /usr/lib 2>/dev/null` \ | 
|---|
 | 214 |                         ; do | 
|---|
 | 215 |                     if test -f "$i/tkConfig.sh" ; then | 
|---|
 | 216 |                         ac_cv_c_tkconfig=`(cd $i; pwd)` | 
|---|
 | 217 |                         break | 
|---|
 | 218 |                     fi | 
|---|
 | 219 |                 done | 
|---|
 | 220 |             fi | 
|---|
 | 221 |             # check in a few other private locations | 
|---|
 | 222 |             if test x"${ac_cv_c_tkconfig}" = x ; then | 
|---|
 | 223 |                 for i in \ | 
|---|
 | 224 |                         ${srcdir}/../tk \ | 
|---|
 | 225 |                         `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]].[[0-9]]* 2>/dev/null` \ | 
|---|
 | 226 |                         `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]] 2>/dev/null` \ | 
|---|
 | 227 |                         `ls -dr ${srcdir}/../tk[[8-9]].[[0-9]]* 2>/dev/null` ; do | 
|---|
 | 228 |                     if test -f "$i/$platDir/tkConfig.sh" ; then | 
|---|
 | 229 |                         ac_cv_c_tkconfig=`(cd $i/$platDir; pwd)` | 
|---|
 | 230 |                         break | 
|---|
 | 231 |                     fi | 
|---|
 | 232 |                 done | 
|---|
 | 233 |             fi | 
|---|
 | 234 |         ]) | 
|---|
 | 235 |  | 
|---|
 | 236 |         if test x"${ac_cv_c_tkconfig}" = x ; then | 
|---|
 | 237 |             TK_BIN_DIR="# no Tk configs found" | 
|---|
 | 238 |             AC_MSG_WARN([Can't find Tk configuration definitions]) | 
|---|
 | 239 |         else | 
|---|
 | 240 |             no_tk= | 
|---|
 | 241 |             TK_BIN_DIR=${ac_cv_c_tkconfig} | 
|---|
 | 242 |             AC_MSG_RESULT([found ${TK_BIN_DIR}/tkConfig.sh]) | 
|---|
 | 243 |         fi | 
|---|
 | 244 |     fi | 
|---|
 | 245 | ]) | 
|---|
 | 246 |  | 
|---|
 | 247 | #------------------------------------------------------------------------ | 
|---|
 | 248 | # SC_LOAD_TCLCONFIG -- | 
|---|
 | 249 | # | 
|---|
 | 250 | #       Load the tclConfig.sh file | 
|---|
 | 251 | # | 
|---|
 | 252 | # Arguments: | 
|---|
 | 253 | #        | 
|---|
 | 254 | #       Requires the following vars to be set: | 
|---|
 | 255 | #               TCL_BIN_DIR | 
|---|
 | 256 | # | 
|---|
 | 257 | # Results: | 
|---|
 | 258 | # | 
|---|
 | 259 | #       Subst the following vars: | 
|---|
 | 260 | #               TCL_BIN_DIR | 
|---|
 | 261 | #               TCL_SRC_DIR | 
|---|
 | 262 | #               TCL_LIB_FILE | 
|---|
 | 263 | # | 
|---|
 | 264 | #------------------------------------------------------------------------ | 
|---|
 | 265 |  | 
|---|
 | 266 | AC_DEFUN([SC_LOAD_TCLCONFIG], [ | 
|---|
 | 267 |     AC_MSG_CHECKING([for existence of ${TCL_BIN_DIR}/tclConfig.sh]) | 
|---|
 | 268 |  | 
|---|
 | 269 |     if test -f "${TCL_BIN_DIR}/tclConfig.sh" ; then | 
|---|
 | 270 |         AC_MSG_RESULT([loading]) | 
|---|
 | 271 |         . ${TCL_BIN_DIR}/tclConfig.sh | 
|---|
 | 272 |     else | 
|---|
 | 273 |         AC_MSG_RESULT([could not find ${TCL_BIN_DIR}/tclConfig.sh]) | 
|---|
 | 274 |     fi | 
|---|
 | 275 |  | 
|---|
 | 276 |     # eval is required to do the TCL_DBGX substitution | 
|---|
 | 277 |     eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\"" | 
|---|
 | 278 |     eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\"" | 
|---|
 | 279 |  | 
|---|
 | 280 |     # If the TCL_BIN_DIR is the build directory (not the install directory), | 
|---|
 | 281 |     # then set the common variable name to the value of the build variables. | 
|---|
 | 282 |     # For example, the variable TCL_LIB_SPEC will be set to the value | 
|---|
 | 283 |     # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC | 
|---|
 | 284 |     # instead of TCL_BUILD_LIB_SPEC since it will work with both an | 
|---|
 | 285 |     # installed and uninstalled version of Tcl. | 
|---|
 | 286 |     if test -f "${TCL_BIN_DIR}/Makefile" ; then | 
|---|
 | 287 |         TCL_LIB_SPEC=${TCL_BUILD_LIB_SPEC} | 
|---|
 | 288 |         TCL_STUB_LIB_SPEC=${TCL_BUILD_STUB_LIB_SPEC} | 
|---|
 | 289 |         TCL_STUB_LIB_PATH=${TCL_BUILD_STUB_LIB_PATH} | 
|---|
 | 290 |     elif test "`uname -s`" = "Darwin"; then | 
|---|
 | 291 |         # If Tcl was built as a framework, attempt to use the libraries | 
|---|
 | 292 |         # from the framework at the given location so that linking works | 
|---|
 | 293 |         # against Tcl.framework installed in an arbitrary location. | 
|---|
 | 294 |         case ${TCL_DEFS} in | 
|---|
 | 295 |             *TCL_FRAMEWORK*) | 
|---|
 | 296 |                 if test -f "${TCL_BIN_DIR}/${TCL_LIB_FILE}"; then | 
|---|
 | 297 |                     for i in "`cd ${TCL_BIN_DIR}; pwd`" \ | 
|---|
 | 298 |                              "`cd ${TCL_BIN_DIR}/../..; pwd`"; do | 
|---|
 | 299 |                         if test "`basename "$i"`" = "${TCL_LIB_FILE}.framework"; then | 
|---|
 | 300 |                             TCL_LIB_SPEC="-F`dirname "$i"` -framework ${TCL_LIB_FILE}" | 
|---|
 | 301 |                             break | 
|---|
 | 302 |                         fi | 
|---|
 | 303 |                     done | 
|---|
 | 304 |                 fi | 
|---|
 | 305 |                 if test -f "${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}"; then | 
|---|
 | 306 |                     TCL_STUB_LIB_SPEC="-L${TCL_BIN_DIR} ${TCL_STUB_LIB_FLAG}" | 
|---|
 | 307 |                     TCL_STUB_LIB_PATH="${TCL_BIN_DIR}/${TCL_STUB_LIB_FILE}" | 
|---|
 | 308 |                 fi | 
|---|
 | 309 |                 ;; | 
|---|
 | 310 |         esac | 
|---|
 | 311 |     fi | 
|---|
 | 312 |  | 
|---|
 | 313 |     # eval is required to do the TCL_DBGX substitution | 
|---|
 | 314 |     eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\"" | 
|---|
 | 315 |     eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\"" | 
|---|
 | 316 |     eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\"" | 
|---|
 | 317 |     eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\"" | 
|---|
 | 318 |  | 
|---|
 | 319 |     AC_SUBST(TCL_VERSION) | 
|---|
 | 320 |     AC_SUBST(TCL_PATCH_LEVEL) | 
|---|
 | 321 |     AC_SUBST(TCL_BIN_DIR) | 
|---|
 | 322 |     AC_SUBST(TCL_SRC_DIR) | 
|---|
 | 323 |  | 
|---|
 | 324 |     AC_SUBST(TCL_LIB_FILE) | 
|---|
 | 325 |     AC_SUBST(TCL_LIB_FLAG) | 
|---|
 | 326 |     AC_SUBST(TCL_LIB_SPEC) | 
|---|
 | 327 |  | 
|---|
 | 328 |     AC_SUBST(TCL_STUB_LIB_FILE) | 
|---|
 | 329 |     AC_SUBST(TCL_STUB_LIB_FLAG) | 
|---|
 | 330 |     AC_SUBST(TCL_STUB_LIB_SPEC) | 
|---|
 | 331 | ]) | 
|---|
 | 332 |  | 
|---|
 | 333 | #------------------------------------------------------------------------ | 
|---|
 | 334 | # SC_LOAD_TKCONFIG -- | 
|---|
 | 335 | # | 
|---|
 | 336 | #       Load the tkConfig.sh file | 
|---|
 | 337 | # | 
|---|
 | 338 | # Arguments: | 
|---|
 | 339 | #        | 
|---|
 | 340 | #       Requires the following vars to be set: | 
|---|
 | 341 | #               TK_BIN_DIR | 
|---|
 | 342 | # | 
|---|
 | 343 | # Results: | 
|---|
 | 344 | # | 
|---|
 | 345 | #       Sets the following vars that should be in tkConfig.sh: | 
|---|
 | 346 | #               TK_BIN_DIR | 
|---|
 | 347 | #------------------------------------------------------------------------ | 
|---|
 | 348 |  | 
|---|
 | 349 | AC_DEFUN([SC_LOAD_TKCONFIG], [ | 
|---|
 | 350 |     AC_MSG_CHECKING([for existence of ${TK_BIN_DIR}/tkConfig.sh]) | 
|---|
 | 351 |  | 
|---|
 | 352 |     if test -f "${TK_BIN_DIR}/tkConfig.sh" ; then | 
|---|
 | 353 |         AC_MSG_RESULT([loading]) | 
|---|
 | 354 |         . ${TK_BIN_DIR}/tkConfig.sh | 
|---|
 | 355 |     else | 
|---|
 | 356 |         AC_MSG_RESULT([could not find ${TK_BIN_DIR}/tkConfig.sh]) | 
|---|
 | 357 |     fi | 
|---|
 | 358 |  | 
|---|
 | 359 |     # eval is required to do the TK_DBGX substitution | 
|---|
 | 360 |     eval "TK_LIB_FILE=\"${TK_LIB_FILE}\"" | 
|---|
 | 361 |     eval "TK_STUB_LIB_FILE=\"${TK_STUB_LIB_FILE}\"" | 
|---|
 | 362 |  | 
|---|
 | 363 |     # If the TK_BIN_DIR is the build directory (not the install directory), | 
|---|
 | 364 |     # then set the common variable name to the value of the build variables. | 
|---|
 | 365 |     # For example, the variable TK_LIB_SPEC will be set to the value | 
|---|
 | 366 |     # of TK_BUILD_LIB_SPEC. An extension should make use of TK_LIB_SPEC | 
|---|
 | 367 |     # instead of TK_BUILD_LIB_SPEC since it will work with both an | 
|---|
 | 368 |     # installed and uninstalled version of Tcl. | 
|---|
 | 369 |     if test -f "${TK_BIN_DIR}/Makefile" ; then | 
|---|
 | 370 |         TK_LIB_SPEC=${TK_BUILD_LIB_SPEC} | 
|---|
 | 371 |         TK_STUB_LIB_SPEC=${TK_BUILD_STUB_LIB_SPEC} | 
|---|
 | 372 |         TK_STUB_LIB_PATH=${TK_BUILD_STUB_LIB_PATH} | 
|---|
 | 373 |     elif test "`uname -s`" = "Darwin"; then | 
|---|
 | 374 |         # If Tk was built as a framework, attempt to use the libraries | 
|---|
 | 375 |         # from the framework at the given location so that linking works | 
|---|
 | 376 |         # against Tk.framework installed in an arbitrary location. | 
|---|
 | 377 |         case ${TK_DEFS} in | 
|---|
 | 378 |             *TK_FRAMEWORK*) | 
|---|
 | 379 |                 if test -f "${TK_BIN_DIR}/${TK_LIB_FILE}"; then | 
|---|
 | 380 |                     for i in "`cd ${TK_BIN_DIR}; pwd`" \ | 
|---|
 | 381 |                              "`cd ${TK_BIN_DIR}/../..; pwd`"; do | 
|---|
 | 382 |                         if test "`basename "$i"`" = "${TK_LIB_FILE}.framework"; then | 
|---|
 | 383 |                             TK_LIB_SPEC="-F`dirname "$i"` -framework ${TK_LIB_FILE}" | 
|---|
 | 384 |                             break | 
|---|
 | 385 |                         fi | 
|---|
 | 386 |                     done | 
|---|
 | 387 |                 fi | 
|---|
 | 388 |                 if test -f "${TK_BIN_DIR}/${TK_STUB_LIB_FILE}"; then | 
|---|
 | 389 |                     TK_STUB_LIB_SPEC="-L${TK_BIN_DIR} ${TK_STUB_LIB_FLAG}" | 
|---|
 | 390 |                     TK_STUB_LIB_PATH="${TK_BIN_DIR}/${TK_STUB_LIB_FILE}" | 
|---|
 | 391 |                 fi | 
|---|
 | 392 |                 ;; | 
|---|
 | 393 |         esac | 
|---|
 | 394 |     fi | 
|---|
 | 395 |  | 
|---|
 | 396 |     # eval is required to do the TK_DBGX substitution | 
|---|
 | 397 |     eval "TK_LIB_FLAG=\"${TK_LIB_FLAG}\"" | 
|---|
 | 398 |     eval "TK_LIB_SPEC=\"${TK_LIB_SPEC}\"" | 
|---|
 | 399 |     eval "TK_STUB_LIB_FLAG=\"${TK_STUB_LIB_FLAG}\"" | 
|---|
 | 400 |     eval "TK_STUB_LIB_SPEC=\"${TK_STUB_LIB_SPEC}\"" | 
|---|
 | 401 |  | 
|---|
 | 402 |     AC_SUBST(TK_VERSION) | 
|---|
 | 403 |     AC_SUBST(TK_BIN_DIR) | 
|---|
 | 404 |     AC_SUBST(TK_SRC_DIR) | 
|---|
 | 405 |  | 
|---|
 | 406 |     AC_SUBST(TK_LIB_FILE) | 
|---|
 | 407 |     AC_SUBST(TK_LIB_FLAG) | 
|---|
 | 408 |     AC_SUBST(TK_LIB_SPEC) | 
|---|
 | 409 |  | 
|---|
 | 410 |     AC_SUBST(TK_STUB_LIB_FILE) | 
|---|
 | 411 |     AC_SUBST(TK_STUB_LIB_FLAG) | 
|---|
 | 412 |     AC_SUBST(TK_STUB_LIB_SPEC) | 
|---|
 | 413 | ]) | 
|---|
 | 414 |  | 
|---|
 | 415 | #------------------------------------------------------------------------ | 
|---|
 | 416 | # SC_PROG_TCLSH | 
|---|
 | 417 | #       Locate a tclsh shell installed on the system path. This macro | 
|---|
 | 418 | #       will only find a Tcl shell that already exists on the system. | 
|---|
 | 419 | #       It will not find a Tcl shell in the Tcl build directory or | 
|---|
 | 420 | #       a Tcl shell that has been installed from the Tcl build directory. | 
|---|
 | 421 | #       If a Tcl shell can't be located on the PATH, then TCLSH_PROG will | 
|---|
 | 422 | #       be set to "". Extensions should take care not to create Makefile | 
|---|
 | 423 | #       rules that are run by default and depend on TCLSH_PROG. An | 
|---|
 | 424 | #       extension can't assume that an executable Tcl shell exists at | 
|---|
 | 425 | #       build time. | 
|---|
 | 426 | # | 
|---|
 | 427 | # Arguments | 
|---|
 | 428 | #       none | 
|---|
 | 429 | # | 
|---|
 | 430 | # Results | 
|---|
 | 431 | #       Subst's the following values: | 
|---|
 | 432 | #               TCLSH_PROG | 
|---|
 | 433 | #------------------------------------------------------------------------ | 
|---|
 | 434 |  | 
|---|
 | 435 | AC_DEFUN([SC_PROG_TCLSH], [ | 
|---|
 | 436 |     AC_MSG_CHECKING([for tclsh]) | 
|---|
 | 437 |     AC_CACHE_VAL(ac_cv_path_tclsh, [ | 
|---|
 | 438 |         search_path=`echo ${PATH} | sed -e 's/:/ /g'` | 
|---|
 | 439 |         for dir in $search_path ; do | 
|---|
 | 440 |             for j in `ls -r $dir/tclsh[[8-9]]* 2> /dev/null` \ | 
|---|
 | 441 |                     `ls -r $dir/tclsh* 2> /dev/null` ; do | 
|---|
 | 442 |                 if test x"$ac_cv_path_tclsh" = x ; then | 
|---|
 | 443 |                     if test -f "$j" ; then | 
|---|
 | 444 |                         ac_cv_path_tclsh=$j | 
|---|
 | 445 |                         break | 
|---|
 | 446 |                     fi | 
|---|
 | 447 |                 fi | 
|---|
 | 448 |             done | 
|---|
 | 449 |         done | 
|---|
 | 450 |     ]) | 
|---|
 | 451 |  | 
|---|
 | 452 |     if test -f "$ac_cv_path_tclsh" ; then | 
|---|
 | 453 |         TCLSH_PROG="$ac_cv_path_tclsh" | 
|---|
 | 454 |         AC_MSG_RESULT([$TCLSH_PROG]) | 
|---|
 | 455 |     else | 
|---|
 | 456 |         # It is not an error if an installed version of Tcl can't be located. | 
|---|
 | 457 |         TCLSH_PROG="" | 
|---|
 | 458 |         AC_MSG_RESULT([No tclsh found on PATH]) | 
|---|
 | 459 |     fi | 
|---|
 | 460 |     AC_SUBST(TCLSH_PROG) | 
|---|
 | 461 | ]) | 
|---|
 | 462 |  | 
|---|
 | 463 | #------------------------------------------------------------------------ | 
|---|
 | 464 | # SC_BUILD_TCLSH | 
|---|
 | 465 | #       Determine the fully qualified path name of the tclsh executable | 
|---|
 | 466 | #       in the Tcl build directory. This macro will correctly determine | 
|---|
 | 467 | #       the name of the tclsh executable even if tclsh has not yet | 
|---|
 | 468 | #       been built in the build directory. The build tclsh must be used | 
|---|
 | 469 | #       when running tests from an extension build directory. It is not | 
|---|
 | 470 | #       correct to use the TCLSH_PROG in cases like this. | 
|---|
 | 471 | # | 
|---|
 | 472 | # Arguments | 
|---|
 | 473 | #       none | 
|---|
 | 474 | # | 
|---|
 | 475 | # Results | 
|---|
 | 476 | #       Subst's the following values: | 
|---|
 | 477 | #               BUILD_TCLSH | 
|---|
 | 478 | #------------------------------------------------------------------------ | 
|---|
 | 479 |  | 
|---|
 | 480 | AC_DEFUN([SC_BUILD_TCLSH], [ | 
|---|
 | 481 |     AC_MSG_CHECKING([for tclsh in Tcl build directory]) | 
|---|
 | 482 |     BUILD_TCLSH=${TCL_BIN_DIR}/tclsh | 
|---|
 | 483 |     AC_MSG_RESULT([$BUILD_TCLSH]) | 
|---|
 | 484 |     AC_SUBST(BUILD_TCLSH) | 
|---|
 | 485 | ]) | 
|---|
 | 486 |  | 
|---|
 | 487 | #------------------------------------------------------------------------ | 
|---|
 | 488 | # SC_ENABLE_SHARED -- | 
|---|
 | 489 | # | 
|---|
 | 490 | #       Allows the building of shared libraries | 
|---|
 | 491 | # | 
|---|
 | 492 | # Arguments: | 
|---|
 | 493 | #       none | 
|---|
 | 494 | #        | 
|---|
 | 495 | # Results: | 
|---|
 | 496 | # | 
|---|
 | 497 | #       Adds the following arguments to configure: | 
|---|
 | 498 | #               --enable-shared=yes|no | 
|---|
 | 499 | # | 
|---|
 | 500 | #       Defines the following vars: | 
|---|
 | 501 | #               STATIC_BUILD    Used for building import/export libraries | 
|---|
 | 502 | #                               on Windows. | 
|---|
 | 503 | # | 
|---|
 | 504 | #       Sets the following vars: | 
|---|
 | 505 | #               SHARED_BUILD    Value of 1 or 0 | 
|---|
 | 506 | #------------------------------------------------------------------------ | 
|---|
 | 507 |  | 
|---|
 | 508 | AC_DEFUN([SC_ENABLE_SHARED], [ | 
|---|
 | 509 |     AC_MSG_CHECKING([how to build libraries]) | 
|---|
 | 510 |     AC_ARG_ENABLE(shared, | 
|---|
 | 511 |         [  --enable-shared         build and link with shared libraries [--enable-shared]], | 
|---|
 | 512 |         [tcl_ok=$enableval], [tcl_ok=yes]) | 
|---|
 | 513 |  | 
|---|
 | 514 |     if test "${enable_shared+set}" = set; then | 
|---|
 | 515 |         enableval="$enable_shared" | 
|---|
 | 516 |         tcl_ok=$enableval | 
|---|
 | 517 |     else | 
|---|
 | 518 |         tcl_ok=yes | 
|---|
 | 519 |     fi | 
|---|
 | 520 |  | 
|---|
 | 521 |     if test "$tcl_ok" = "yes" ; then | 
|---|
 | 522 |         AC_MSG_RESULT([shared]) | 
|---|
 | 523 |         SHARED_BUILD=1 | 
|---|
 | 524 |     else | 
|---|
 | 525 |         AC_MSG_RESULT([static]) | 
|---|
 | 526 |         SHARED_BUILD=0 | 
|---|
 | 527 |         AC_DEFINE(STATIC_BUILD) | 
|---|
 | 528 |     fi | 
|---|
 | 529 | ]) | 
|---|
 | 530 |  | 
|---|
 | 531 | #------------------------------------------------------------------------ | 
|---|
 | 532 | # SC_ENABLE_FRAMEWORK -- | 
|---|
 | 533 | # | 
|---|
 | 534 | #       Allows the building of shared libraries into frameworks | 
|---|
 | 535 | # | 
|---|
 | 536 | # Arguments: | 
|---|
 | 537 | #       none | 
|---|
 | 538 | #        | 
|---|
 | 539 | # Results: | 
|---|
 | 540 | # | 
|---|
 | 541 | #       Adds the following arguments to configure: | 
|---|
 | 542 | #               --enable-framework=yes|no | 
|---|
 | 543 | # | 
|---|
 | 544 | #       Sets the following vars: | 
|---|
 | 545 | #               FRAMEWORK_BUILD Value of 1 or 0 | 
|---|
 | 546 | #------------------------------------------------------------------------ | 
|---|
 | 547 |  | 
|---|
 | 548 | AC_DEFUN([SC_ENABLE_FRAMEWORK], [ | 
|---|
 | 549 |     if test "`uname -s`" = "Darwin" ; then | 
|---|
 | 550 |         AC_MSG_CHECKING([how to package libraries]) | 
|---|
 | 551 |         AC_ARG_ENABLE(framework, | 
|---|
 | 552 |             [  --enable-framework      package shared libraries in MacOSX frameworks [--disable-framework]], | 
|---|
 | 553 |             [enable_framework=$enableval], [enable_framework=no]) | 
|---|
 | 554 |         if test $enable_framework = yes; then | 
|---|
 | 555 |             if test $SHARED_BUILD = 0; then | 
|---|
 | 556 |                 AC_MSG_WARN([Frameworks can only be built if --enable-shared is yes]) | 
|---|
 | 557 |                 enable_framework=no | 
|---|
 | 558 |             fi | 
|---|
 | 559 |             if test $tcl_corefoundation = no; then | 
|---|
 | 560 |                 AC_MSG_WARN([Frameworks can only be used when CoreFoundation is available]) | 
|---|
 | 561 |                 enable_framework=no | 
|---|
 | 562 |             fi | 
|---|
 | 563 |         fi | 
|---|
 | 564 |         if test $enable_framework = yes; then | 
|---|
 | 565 |             AC_MSG_RESULT([framework]) | 
|---|
 | 566 |             FRAMEWORK_BUILD=1 | 
|---|
 | 567 |         else | 
|---|
 | 568 |             if test $SHARED_BUILD = 1; then | 
|---|
 | 569 |                 AC_MSG_RESULT([shared library]) | 
|---|
 | 570 |             else | 
|---|
 | 571 |                 AC_MSG_RESULT([static library]) | 
|---|
 | 572 |             fi | 
|---|
 | 573 |             FRAMEWORK_BUILD=0 | 
|---|
 | 574 |         fi | 
|---|
 | 575 |     fi | 
|---|
 | 576 | ]) | 
|---|
 | 577 |  | 
|---|
 | 578 | #------------------------------------------------------------------------ | 
|---|
 | 579 | # SC_ENABLE_THREADS -- | 
|---|
 | 580 | # | 
|---|
 | 581 | #       Specify if thread support should be enabled.  TCL_THREADS is | 
|---|
 | 582 | #       checked so that if you are compiling an extension against a | 
|---|
 | 583 | #       threaded core, your extension must be compiled threaded as well. | 
|---|
 | 584 | # | 
|---|
 | 585 | # Arguments: | 
|---|
 | 586 | #       none | 
|---|
 | 587 | #        | 
|---|
 | 588 | # Results: | 
|---|
 | 589 | # | 
|---|
 | 590 | #       Adds the following arguments to configure: | 
|---|
 | 591 | #               --enable-threads | 
|---|
 | 592 | # | 
|---|
 | 593 | #       Sets the following vars: | 
|---|
 | 594 | #               THREADS_LIBS    Thread library(s) | 
|---|
 | 595 | # | 
|---|
 | 596 | #       Defines the following vars: | 
|---|
 | 597 | #               TCL_THREADS | 
|---|
 | 598 | #               _REENTRANT | 
|---|
 | 599 | #               _THREAD_SAFE | 
|---|
 | 600 | # | 
|---|
 | 601 | #------------------------------------------------------------------------ | 
|---|
 | 602 |  | 
|---|
 | 603 | AC_DEFUN([SC_ENABLE_THREADS], [ | 
|---|
 | 604 |     AC_ARG_ENABLE(threads, [  --enable-threads        build with threads], | 
|---|
 | 605 |         [tcl_ok=$enableval], [tcl_ok=no]) | 
|---|
 | 606 |  | 
|---|
 | 607 |     if test "${TCL_THREADS}" = 1; then | 
|---|
 | 608 |         tcl_threaded_core=1; | 
|---|
 | 609 |     fi | 
|---|
 | 610 |  | 
|---|
 | 611 |     if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then | 
|---|
 | 612 |         TCL_THREADS=1 | 
|---|
 | 613 |         # USE_THREAD_ALLOC tells us to try the special thread-based | 
|---|
 | 614 |         # allocator that significantly reduces lock contention | 
|---|
 | 615 |         AC_DEFINE(USE_THREAD_ALLOC) | 
|---|
 | 616 |         AC_DEFINE(_REENTRANT) | 
|---|
 | 617 |         if test "`uname -s`" = "SunOS" ; then | 
|---|
 | 618 |             AC_DEFINE(_POSIX_PTHREAD_SEMANTICS) | 
|---|
 | 619 |         fi | 
|---|
 | 620 |         AC_DEFINE(_THREAD_SAFE) | 
|---|
 | 621 |         AC_CHECK_LIB(pthread,pthread_mutex_init,tcl_ok=yes,tcl_ok=no) | 
|---|
 | 622 |         if test "$tcl_ok" = "no"; then | 
|---|
 | 623 |             # Check a little harder for __pthread_mutex_init in the same | 
|---|
 | 624 |             # library, as some systems hide it there until pthread.h is | 
|---|
 | 625 |             # defined.  We could alternatively do an AC_TRY_COMPILE with | 
|---|
 | 626 |             # pthread.h, but that will work with libpthread really doesn't | 
|---|
 | 627 |             # exist, like AIX 4.2.  [Bug: 4359] | 
|---|
 | 628 |             AC_CHECK_LIB(pthread, __pthread_mutex_init, | 
|---|
 | 629 |                 tcl_ok=yes, tcl_ok=no) | 
|---|
 | 630 |         fi | 
|---|
 | 631 |  | 
|---|
 | 632 |         if test "$tcl_ok" = "yes"; then | 
|---|
 | 633 |             # The space is needed | 
|---|
 | 634 |             THREADS_LIBS=" -lpthread" | 
|---|
 | 635 |         else | 
|---|
 | 636 |             AC_CHECK_LIB(pthreads, pthread_mutex_init, | 
|---|
 | 637 |                 tcl_ok=yes, tcl_ok=no) | 
|---|
 | 638 |             if test "$tcl_ok" = "yes"; then | 
|---|
 | 639 |                 # The space is needed | 
|---|
 | 640 |                 THREADS_LIBS=" -lpthreads" | 
|---|
 | 641 |             else | 
|---|
 | 642 |                 AC_CHECK_LIB(c, pthread_mutex_init, | 
|---|
 | 643 |                     tcl_ok=yes, tcl_ok=no) | 
|---|
 | 644 |                 if test "$tcl_ok" = "no"; then | 
|---|
 | 645 |                     AC_CHECK_LIB(c_r, pthread_mutex_init, | 
|---|
 | 646 |                         tcl_ok=yes, tcl_ok=no) | 
|---|
 | 647 |                     if test "$tcl_ok" = "yes"; then | 
|---|
 | 648 |                         # The space is needed | 
|---|
 | 649 |                         THREADS_LIBS=" -pthread" | 
|---|
 | 650 |                     else | 
|---|
 | 651 |                         TCL_THREADS=0 | 
|---|
 | 652 |                         AC_MSG_WARN([Don't know how to find pthread lib on your system - you must disable thread support or edit the LIBS in the Makefile...]) | 
|---|
 | 653 |                     fi | 
|---|
 | 654 |                 fi | 
|---|
 | 655 |             fi | 
|---|
 | 656 |         fi | 
|---|
 | 657 |  | 
|---|
 | 658 |         # Does the pthread-implementation provide | 
|---|
 | 659 |         # 'pthread_attr_setstacksize' ? | 
|---|
 | 660 |  | 
|---|
 | 661 |         ac_saved_libs=$LIBS | 
|---|
 | 662 |         LIBS="$LIBS $THREADS_LIBS" | 
|---|
 | 663 |         AC_CHECK_FUNCS(pthread_attr_setstacksize) | 
|---|
 | 664 |         AC_CHECK_FUNCS(pthread_atfork) | 
|---|
 | 665 |         LIBS=$ac_saved_libs | 
|---|
 | 666 |     else | 
|---|
 | 667 |         TCL_THREADS=0 | 
|---|
 | 668 |     fi | 
|---|
 | 669 |     # Do checking message here to not mess up interleaved configure output | 
|---|
 | 670 |     AC_MSG_CHECKING([for building with threads]) | 
|---|
 | 671 |     if test "${TCL_THREADS}" = 1; then | 
|---|
 | 672 |         AC_DEFINE(TCL_THREADS, 1, [Are we building with threads enabled?]) | 
|---|
 | 673 |         if test "${tcl_threaded_core}" = 1; then | 
|---|
 | 674 |             AC_MSG_RESULT([yes (threaded core)]) | 
|---|
 | 675 |         else | 
|---|
 | 676 |             AC_MSG_RESULT([yes]) | 
|---|
 | 677 |         fi | 
|---|
 | 678 |     else | 
|---|
 | 679 |         AC_MSG_RESULT([no (default)]) | 
|---|
 | 680 |     fi | 
|---|
 | 681 |  | 
|---|
 | 682 |     AC_SUBST(TCL_THREADS) | 
|---|
 | 683 | ]) | 
|---|
 | 684 |  | 
|---|
 | 685 | #------------------------------------------------------------------------ | 
|---|
 | 686 | # SC_ENABLE_SYMBOLS -- | 
|---|
 | 687 | # | 
|---|
 | 688 | #       Specify if debugging symbols should be used. | 
|---|
 | 689 | #       Memory (TCL_MEM_DEBUG) and compile (TCL_COMPILE_DEBUG) debugging | 
|---|
 | 690 | #       can also be enabled. | 
|---|
 | 691 | # | 
|---|
 | 692 | # Arguments: | 
|---|
 | 693 | #       none | 
|---|
 | 694 | #        | 
|---|
 | 695 | #       Requires the following vars to be set in the Makefile: | 
|---|
 | 696 | #               CFLAGS_DEBUG | 
|---|
 | 697 | #               CFLAGS_OPTIMIZE | 
|---|
 | 698 | #               LDFLAGS_DEBUG | 
|---|
 | 699 | #               LDFLAGS_OPTIMIZE | 
|---|
 | 700 | #        | 
|---|
 | 701 | # Results: | 
|---|
 | 702 | # | 
|---|
 | 703 | #       Adds the following arguments to configure: | 
|---|
 | 704 | #               --enable-symbols | 
|---|
 | 705 | # | 
|---|
 | 706 | #       Defines the following vars: | 
|---|
 | 707 | #               CFLAGS_DEFAULT  Sets to $(CFLAGS_DEBUG) if true | 
|---|
 | 708 | #                               Sets to $(CFLAGS_OPTIMIZE) if false | 
|---|
 | 709 | #               LDFLAGS_DEFAULT Sets to $(LDFLAGS_DEBUG) if true | 
|---|
 | 710 | #                               Sets to $(LDFLAGS_OPTIMIZE) if false | 
|---|
 | 711 | #               DBGX            Debug library extension | 
|---|
 | 712 | # | 
|---|
 | 713 | #------------------------------------------------------------------------ | 
|---|
 | 714 |  | 
|---|
 | 715 | AC_DEFUN([SC_ENABLE_SYMBOLS], [ | 
|---|
 | 716 |     AC_MSG_CHECKING([for build with symbols]) | 
|---|
 | 717 |     AC_ARG_ENABLE(symbols, [  --enable-symbols        build with debugging symbols [--disable-symbols]],    [tcl_ok=$enableval], [tcl_ok=no]) | 
|---|
 | 718 | # FIXME: Currently, LDFLAGS_DEFAULT is not used, it should work like CFLAGS_DEFAULT. | 
|---|
 | 719 |     if test "$tcl_ok" = "no"; then | 
|---|
 | 720 |         CFLAGS_DEFAULT='$(CFLAGS_OPTIMIZE)' | 
|---|
 | 721 |         LDFLAGS_DEFAULT='$(LDFLAGS_OPTIMIZE)' | 
|---|
 | 722 |         DBGX="" | 
|---|
 | 723 |         AC_MSG_RESULT([no]) | 
|---|
 | 724 |     else | 
|---|
 | 725 |         CFLAGS_DEFAULT='$(CFLAGS_DEBUG)' | 
|---|
 | 726 |         LDFLAGS_DEFAULT='$(LDFLAGS_DEBUG)' | 
|---|
 | 727 |         DBGX=g | 
|---|
 | 728 |         if test "$tcl_ok" = "yes"; then | 
|---|
 | 729 |             AC_MSG_RESULT([yes (standard debugging)]) | 
|---|
 | 730 |         fi | 
|---|
 | 731 |     fi | 
|---|
 | 732 |     AC_SUBST(CFLAGS_DEFAULT) | 
|---|
 | 733 |     AC_SUBST(LDFLAGS_DEFAULT) | 
|---|
 | 734 |  | 
|---|
 | 735 |     if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then | 
|---|
 | 736 |         AC_DEFINE(TCL_MEM_DEBUG) | 
|---|
 | 737 |     fi | 
|---|
 | 738 |  | 
|---|
 | 739 |     if test "$tcl_ok" = "compile" -o "$tcl_ok" = "all"; then | 
|---|
 | 740 |         AC_DEFINE(TCL_COMPILE_DEBUG) | 
|---|
 | 741 |         AC_DEFINE(TCL_COMPILE_STATS) | 
|---|
 | 742 |     fi | 
|---|
 | 743 |  | 
|---|
 | 744 |     if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then | 
|---|
 | 745 |         if test "$tcl_ok" = "all"; then | 
|---|
 | 746 |             AC_MSG_RESULT([enabled symbols mem compile debugging]) | 
|---|
 | 747 |         else | 
|---|
 | 748 |             AC_MSG_RESULT([enabled $tcl_ok debugging]) | 
|---|
 | 749 |         fi | 
|---|
 | 750 |     fi | 
|---|
 | 751 | ]) | 
|---|
 | 752 |  | 
|---|
 | 753 | #------------------------------------------------------------------------ | 
|---|
 | 754 | # SC_ENABLE_LANGINFO -- | 
|---|
 | 755 | # | 
|---|
 | 756 | #       Allows use of modern nl_langinfo check for better l10n. | 
|---|
 | 757 | #       This is only relevant for Unix. | 
|---|
 | 758 | # | 
|---|
 | 759 | # Arguments: | 
|---|
 | 760 | #       none | 
|---|
 | 761 | #        | 
|---|
 | 762 | # Results: | 
|---|
 | 763 | # | 
|---|
 | 764 | #       Adds the following arguments to configure: | 
|---|
 | 765 | #               --enable-langinfo=yes|no (default is yes) | 
|---|
 | 766 | # | 
|---|
 | 767 | #       Defines the following vars: | 
|---|
 | 768 | #               HAVE_LANGINFO   Triggers use of nl_langinfo if defined. | 
|---|
 | 769 | # | 
|---|
 | 770 | #------------------------------------------------------------------------ | 
|---|
 | 771 |  | 
|---|
 | 772 | AC_DEFUN([SC_ENABLE_LANGINFO], [ | 
|---|
 | 773 |     AC_ARG_ENABLE(langinfo, | 
|---|
 | 774 |         [  --enable-langinfo      use nl_langinfo if possible to determine | 
|---|
 | 775 |                           encoding at startup, otherwise use old heuristic], | 
|---|
 | 776 |         [langinfo_ok=$enableval], [langinfo_ok=yes]) | 
|---|
 | 777 |  | 
|---|
 | 778 |     HAVE_LANGINFO=0 | 
|---|
 | 779 |     if test "$langinfo_ok" = "yes"; then | 
|---|
 | 780 |         AC_CHECK_HEADER(langinfo.h,[langinfo_ok=yes],[langinfo_ok=no]) | 
|---|
 | 781 |     fi | 
|---|
 | 782 |     AC_MSG_CHECKING([whether to use nl_langinfo]) | 
|---|
 | 783 |     if test "$langinfo_ok" = "yes"; then | 
|---|
 | 784 |         AC_CACHE_VAL(tcl_cv_langinfo_h, [ | 
|---|
 | 785 |             AC_TRY_COMPILE([#include <langinfo.h>], [nl_langinfo(CODESET);], | 
|---|
 | 786 |                     [tcl_cv_langinfo_h=yes],[tcl_cv_langinfo_h=no])]) | 
|---|
 | 787 |         AC_MSG_RESULT([$tcl_cv_langinfo_h]) | 
|---|
 | 788 |         if test $tcl_cv_langinfo_h = yes; then | 
|---|
 | 789 |             AC_DEFINE(HAVE_LANGINFO) | 
|---|
 | 790 |         fi | 
|---|
 | 791 |     else  | 
|---|
 | 792 |         AC_MSG_RESULT([$langinfo_ok]) | 
|---|
 | 793 |     fi | 
|---|
 | 794 | ]) | 
|---|
 | 795 |  | 
|---|
 | 796 | #-------------------------------------------------------------------- | 
|---|
 | 797 | # SC_CONFIG_MANPAGES | 
|---|
 | 798 | #        | 
|---|
 | 799 | #       Decide whether to use symlinks for linking the manpages, | 
|---|
 | 800 | #       whether to compress the manpages after installation, and | 
|---|
 | 801 | #       whether to add a package name suffix to the installed | 
|---|
 | 802 | #       manpages to avoidfile name clashes. | 
|---|
 | 803 | #       If compression is enabled also find out what file name suffix | 
|---|
 | 804 | #       the given compression program is using. | 
|---|
 | 805 | # | 
|---|
 | 806 | # Arguments: | 
|---|
 | 807 | #       none | 
|---|
 | 808 | # | 
|---|
 | 809 | # Results: | 
|---|
 | 810 | # | 
|---|
 | 811 | #       Adds the following arguments to configure: | 
|---|
 | 812 | #               --enable-man-symlinks | 
|---|
 | 813 | #               --enable-man-compression=PROG | 
|---|
 | 814 | #               --enable-man-suffix[=STRING] | 
|---|
 | 815 | # | 
|---|
 | 816 | #       Defines the following variable: | 
|---|
 | 817 | # | 
|---|
 | 818 | #       MAN_FLAGS -     The appropriate flags for installManPage | 
|---|
 | 819 | #                       according to the user's selection. | 
|---|
 | 820 | # | 
|---|
 | 821 | #-------------------------------------------------------------------- | 
|---|
 | 822 |  | 
|---|
 | 823 | AC_DEFUN([SC_CONFIG_MANPAGES], [ | 
|---|
 | 824 |     AC_MSG_CHECKING([whether to use symlinks for manpages]) | 
|---|
 | 825 |     AC_ARG_ENABLE(man-symlinks, | 
|---|
 | 826 |             [  --enable-man-symlinks   use symlinks for the manpages], | 
|---|
 | 827 |         test "$enableval" != "no" && MAN_FLAGS="$MAN_FLAGS --symlinks", | 
|---|
 | 828 |         enableval="no") | 
|---|
 | 829 |     AC_MSG_RESULT([$enableval]) | 
|---|
 | 830 |  | 
|---|
 | 831 |     AC_MSG_CHECKING([whether to compress the manpages]) | 
|---|
 | 832 |     AC_ARG_ENABLE(man-compression, | 
|---|
 | 833 |             [  --enable-man-compression=PROG | 
|---|
 | 834 |                       compress the manpages with PROG], | 
|---|
 | 835 |         [case $enableval in | 
|---|
 | 836 |             yes) AC_MSG_ERROR([missing argument to --enable-man-compression]);; | 
|---|
 | 837 |             no)  ;; | 
|---|
 | 838 |             *)   MAN_FLAGS="$MAN_FLAGS --compress $enableval";; | 
|---|
 | 839 |         esac], | 
|---|
 | 840 |         enableval="no") | 
|---|
 | 841 |     AC_MSG_RESULT([$enableval]) | 
|---|
 | 842 |     if test "$enableval" != "no"; then | 
|---|
 | 843 |         AC_MSG_CHECKING([for compressed file suffix]) | 
|---|
 | 844 |         touch TeST | 
|---|
 | 845 |         $enableval TeST | 
|---|
 | 846 |         Z=`ls TeST* | sed 's/^....//'` | 
|---|
 | 847 |         rm -f TeST* | 
|---|
 | 848 |         MAN_FLAGS="$MAN_FLAGS --extension $Z" | 
|---|
 | 849 |         AC_MSG_RESULT([$Z]) | 
|---|
 | 850 |     fi | 
|---|
 | 851 |  | 
|---|
 | 852 |     AC_MSG_CHECKING([whether to add a package name suffix for the manpages]) | 
|---|
 | 853 |     AC_ARG_ENABLE(man-suffix, | 
|---|
 | 854 |             [  --enable-man-suffix=STRING | 
|---|
 | 855 |                       use STRING as a suffix to manpage file names | 
|---|
 | 856 |                       (default: $1)], | 
|---|
 | 857 |         [case $enableval in | 
|---|
 | 858 |             yes) enableval="$1" MAN_FLAGS="$MAN_FLAGS --suffix $enableval";; | 
|---|
 | 859 |             no)  ;; | 
|---|
 | 860 |             *)   MAN_FLAGS="$MAN_FLAGS --suffix $enableval";; | 
|---|
 | 861 |         esac], | 
|---|
 | 862 |         enableval="no") | 
|---|
 | 863 |     AC_MSG_RESULT([$enableval]) | 
|---|
 | 864 |  | 
|---|
 | 865 |     AC_SUBST(MAN_FLAGS) | 
|---|
 | 866 | ]) | 
|---|
 | 867 |  | 
|---|
 | 868 | #-------------------------------------------------------------------- | 
|---|
 | 869 | # SC_CONFIG_SYSTEM | 
|---|
 | 870 | # | 
|---|
 | 871 | #       Determine what the system is (some things cannot be easily checked | 
|---|
 | 872 | #       on a feature-driven basis, alas). This can usually be done via the | 
|---|
 | 873 | #       "uname" command, but there are a few systems, like Next, where | 
|---|
 | 874 | #       this doesn't work. | 
|---|
 | 875 | # | 
|---|
 | 876 | # Arguments: | 
|---|
 | 877 | #       none | 
|---|
 | 878 | # | 
|---|
 | 879 | # Results: | 
|---|
 | 880 | #       Defines the following var: | 
|---|
 | 881 | # | 
|---|
 | 882 | #       system -        System/platform/version identification code. | 
|---|
 | 883 | # | 
|---|
 | 884 | #-------------------------------------------------------------------- | 
|---|
 | 885 |  | 
|---|
 | 886 | AC_DEFUN([SC_CONFIG_SYSTEM], [ | 
|---|
 | 887 |     AC_CACHE_CHECK([system version], tcl_cv_sys_version, [ | 
|---|
 | 888 |         if test -f /usr/lib/NextStep/software_version; then | 
|---|
 | 889 |             tcl_cv_sys_version=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version` | 
|---|
 | 890 |         else | 
|---|
 | 891 |             tcl_cv_sys_version=`uname -s`-`uname -r` | 
|---|
 | 892 |             if test "$?" -ne 0 ; then | 
|---|
 | 893 |                 AC_MSG_WARN([can't find uname command]) | 
|---|
 | 894 |                 tcl_cv_sys_version=unknown | 
|---|
 | 895 |             else | 
|---|
 | 896 |                 # Special check for weird MP-RAS system (uname returns weird | 
|---|
 | 897 |                 # results, and the version is kept in special file). | 
|---|
 | 898 |  | 
|---|
 | 899 |                 if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then | 
|---|
 | 900 |                     tcl_cv_sys_version=MP-RAS-`awk '{print $[3]}' /etc/.relid` | 
|---|
 | 901 |                 fi | 
|---|
 | 902 |                 if test "`uname -s`" = "AIX" ; then | 
|---|
 | 903 |                     tcl_cv_sys_version=AIX-`uname -v`.`uname -r` | 
|---|
 | 904 |                 fi | 
|---|
 | 905 |             fi | 
|---|
 | 906 |         fi | 
|---|
 | 907 |     ]) | 
|---|
 | 908 |     system=$tcl_cv_sys_version | 
|---|
 | 909 | ]) | 
|---|
 | 910 |  | 
|---|
 | 911 | #-------------------------------------------------------------------- | 
|---|
 | 912 | # SC_CONFIG_CFLAGS | 
|---|
 | 913 | # | 
|---|
 | 914 | #       Try to determine the proper flags to pass to the compiler | 
|---|
 | 915 | #       for building shared libraries and other such nonsense. | 
|---|
 | 916 | # | 
|---|
 | 917 | # Arguments: | 
|---|
 | 918 | #       none | 
|---|
 | 919 | # | 
|---|
 | 920 | # Results: | 
|---|
 | 921 | # | 
|---|
 | 922 | #       Defines and substitutes the following vars: | 
|---|
 | 923 | # | 
|---|
 | 924 | #       DL_OBJS -       Name of the object file that implements dynamic | 
|---|
 | 925 | #                       loading for Tcl on this system. | 
|---|
 | 926 | #       DL_LIBS -       Library file(s) to include in tclsh and other base | 
|---|
 | 927 | #                       applications in order for the "load" command to work. | 
|---|
 | 928 | #       LDFLAGS -      Flags to pass to the compiler when linking object | 
|---|
 | 929 | #                       files into an executable application binary such | 
|---|
 | 930 | #                       as tclsh. | 
|---|
 | 931 | #       LD_SEARCH_FLAGS-Flags to pass to ld, such as "-R /usr/local/tcl/lib", | 
|---|
 | 932 | #                       that tell the run-time dynamic linker where to look | 
|---|
 | 933 | #                       for shared libraries such as libtcl.so.  Depends on | 
|---|
 | 934 | #                       the variable LIB_RUNTIME_DIR in the Makefile. Could | 
|---|
 | 935 | #                       be the same as CC_SEARCH_FLAGS if ${CC} is used to link. | 
|---|
 | 936 | #       CC_SEARCH_FLAGS-Flags to pass to ${CC}, such as "-Wl,-rpath,/usr/local/tcl/lib", | 
|---|
 | 937 | #                       that tell the run-time dynamic linker where to look | 
|---|
 | 938 | #                       for shared libraries such as libtcl.so.  Depends on | 
|---|
 | 939 | #                       the variable LIB_RUNTIME_DIR in the Makefile. | 
|---|
 | 940 | #       MAKE_LIB -      Command to execute to build the a library; | 
|---|
 | 941 | #                       differs when building shared or static. | 
|---|
 | 942 | #       MAKE_STUB_LIB - | 
|---|
 | 943 | #                       Command to execute to build a stub library. | 
|---|
 | 944 | #       INSTALL_LIB -   Command to execute to install a library; | 
|---|
 | 945 | #                       differs when building shared or static. | 
|---|
 | 946 | #       INSTALL_STUB_LIB - | 
|---|
 | 947 | #                       Command to execute to install a stub library. | 
|---|
 | 948 | #       STLIB_LD -      Base command to use for combining object files | 
|---|
 | 949 | #                       into a static library. | 
|---|
 | 950 | #       SHLIB_CFLAGS -  Flags to pass to cc when compiling the components | 
|---|
 | 951 | #                       of a shared library (may request position-independent | 
|---|
 | 952 | #                       code, among other things). | 
|---|
 | 953 | #       SHLIB_LD -      Base command to use for combining object files | 
|---|
 | 954 | #                       into a shared library. | 
|---|
 | 955 | #       SHLIB_LD_LIBS - Dependent libraries for the linker to scan when | 
|---|
 | 956 | #                       creating shared libraries.  This symbol typically | 
|---|
 | 957 | #                       goes at the end of the "ld" commands that build | 
|---|
 | 958 | #                       shared libraries. The value of the symbol is | 
|---|
 | 959 | #                       "${LIBS}" if all of the dependent libraries should | 
|---|
 | 960 | #                       be specified when creating a shared library.  If | 
|---|
 | 961 | #                       dependent libraries should not be specified (as on | 
|---|
 | 962 | #                       SunOS 4.x, where they cause the link to fail, or in | 
|---|
 | 963 | #                       general if Tcl and Tk aren't themselves shared | 
|---|
 | 964 | #                       libraries), then this symbol has an empty string | 
|---|
 | 965 | #                       as its value. | 
|---|
 | 966 | #       SHLIB_SUFFIX -  Suffix to use for the names of dynamically loadable | 
|---|
 | 967 | #                       extensions.  An empty string means we don't know how | 
|---|
 | 968 | #                       to use shared libraries on this platform. | 
|---|
 | 969 | # TCL_SHLIB_LD_EXTRAS - Additional element which are added to SHLIB_LD_LIBS | 
|---|
 | 970 | #  TK_SHLIB_LD_EXTRAS   for the build of Tcl and Tk, but not recorded in the | 
|---|
 | 971 | #                       tclConfig.sh, since they are only used for the build | 
|---|
 | 972 | #                       of Tcl and Tk.  | 
|---|
 | 973 | #                       Examples: MacOS X records the library version and | 
|---|
 | 974 | #                       compatibility version in the shared library.  But | 
|---|
 | 975 | #                       of course the Tcl version of this is only used for Tcl. | 
|---|
 | 976 | #       LIB_SUFFIX -    Specifies everything that comes after the "libfoo" | 
|---|
 | 977 | #                       in a static or shared library name, using the $VERSION variable | 
|---|
 | 978 | #                       to put the version in the right place.  This is used | 
|---|
 | 979 | #                       by platforms that need non-standard library names. | 
|---|
 | 980 | #                       Examples:  ${VERSION}.so.1.1 on NetBSD, since it needs | 
|---|
 | 981 | #                       to have a version after the .so, and ${VERSION}.a | 
|---|
 | 982 | #                       on AIX, since a shared library needs to have | 
|---|
 | 983 | #                       a .a extension whereas shared objects for loadable | 
|---|
 | 984 | #                       extensions have a .so extension.  Defaults to | 
|---|
 | 985 | #                       ${VERSION}${SHLIB_SUFFIX}. | 
|---|
 | 986 | #       TCL_NEEDS_EXP_FILE - | 
|---|
 | 987 | #                       1 means that an export file is needed to link to a | 
|---|
 | 988 | #                       shared library. | 
|---|
 | 989 | #       TCL_EXP_FILE -  The name of the installed export / import file which | 
|---|
 | 990 | #                       should be used to link to the Tcl shared library. | 
|---|
 | 991 | #                       Empty if Tcl is unshared. | 
|---|
 | 992 | #       TCL_BUILD_EXP_FILE - | 
|---|
 | 993 | #                       The name of the built export / import file which | 
|---|
 | 994 | #                       should be used to link to the Tcl shared library. | 
|---|
 | 995 | #                       Empty if Tcl is unshared. | 
|---|
 | 996 | #       CFLAGS_DEBUG - | 
|---|
 | 997 | #                       Flags used when running the compiler in debug mode | 
|---|
 | 998 | #       CFLAGS_OPTIMIZE - | 
|---|
 | 999 | #                       Flags used when running the compiler in optimize mode | 
|---|
 | 1000 | #       CFLAGS -        Additional CFLAGS added as necessary (usually 64-bit) | 
|---|
 | 1001 | # | 
|---|
 | 1002 | #-------------------------------------------------------------------- | 
|---|
 | 1003 |  | 
|---|
 | 1004 | AC_DEFUN([SC_CONFIG_CFLAGS], [ | 
|---|
 | 1005 |  | 
|---|
 | 1006 |     # Step 0.a: Enable 64 bit support? | 
|---|
 | 1007 |  | 
|---|
 | 1008 |     AC_MSG_CHECKING([if 64bit support is requested]) | 
|---|
 | 1009 |     AC_ARG_ENABLE(64bit,[  --enable-64bit          enable 64bit support (where applicable)], | 
|---|
 | 1010 |         [do64bit=$enableval], [do64bit=no]) | 
|---|
 | 1011 |     AC_MSG_RESULT([$do64bit]) | 
|---|
 | 1012 |  | 
|---|
 | 1013 |     # Step 0.b: Enable Solaris 64 bit VIS support? | 
|---|
 | 1014 |  | 
|---|
 | 1015 |     AC_MSG_CHECKING([if 64bit Sparc VIS support is requested]) | 
|---|
 | 1016 |     AC_ARG_ENABLE(64bit-vis,[  --enable-64bit-vis      enable 64bit Sparc VIS support], | 
|---|
 | 1017 |         [do64bitVIS=$enableval], [do64bitVIS=no]) | 
|---|
 | 1018 |     AC_MSG_RESULT([$do64bitVIS]) | 
|---|
 | 1019 |  | 
|---|
 | 1020 |     if test "$do64bitVIS" = "yes"; then | 
|---|
 | 1021 |         # Force 64bit on with VIS | 
|---|
 | 1022 |         do64bit=yes | 
|---|
 | 1023 |     fi | 
|---|
 | 1024 |  | 
|---|
 | 1025 |     # Step 1: set the variable "system" to hold the name and version number | 
|---|
 | 1026 |     # for the system. | 
|---|
 | 1027 |  | 
|---|
 | 1028 |     SC_CONFIG_SYSTEM | 
|---|
 | 1029 |  | 
|---|
 | 1030 |     # Step 2: check for existence of -ldl library.  This is needed because | 
|---|
 | 1031 |     # Linux can use either -ldl or -ldld for dynamic loading. | 
|---|
 | 1032 |  | 
|---|
 | 1033 |     AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no) | 
|---|
 | 1034 |  | 
|---|
 | 1035 |     # Require ranlib early so we can override it in special cases below. | 
|---|
 | 1036 |  | 
|---|
 | 1037 |     AC_REQUIRE([AC_PROG_RANLIB]) | 
|---|
 | 1038 |  | 
|---|
 | 1039 |     # Step 3: set configuration options based on system name and version. | 
|---|
 | 1040 |  | 
|---|
 | 1041 |     do64bit_ok=no | 
|---|
 | 1042 |     LDFLAGS_ORIG="$LDFLAGS" | 
|---|
 | 1043 |     TCL_EXPORT_FILE_SUFFIX="" | 
|---|
 | 1044 |     UNSHARED_LIB_SUFFIX="" | 
|---|
 | 1045 |     TCL_TRIM_DOTS='`echo ${VERSION} | tr -d .`' | 
|---|
 | 1046 |     ECHO_VERSION='`echo ${VERSION}`' | 
|---|
 | 1047 |     TCL_LIB_VERSIONS_OK=ok | 
|---|
 | 1048 |     CFLAGS_DEBUG=-g | 
|---|
 | 1049 |     CFLAGS_OPTIMIZE=-O | 
|---|
 | 1050 |     if test "$GCC" = "yes" ; then | 
|---|
 | 1051 |         CFLAGS_WARNING="-Wall -Wno-implicit-int -fno-strict-aliasing" | 
|---|
 | 1052 |     else | 
|---|
 | 1053 |         CFLAGS_WARNING="" | 
|---|
 | 1054 |     fi | 
|---|
 | 1055 |     TCL_NEEDS_EXP_FILE=0 | 
|---|
 | 1056 |     TCL_BUILD_EXP_FILE="" | 
|---|
 | 1057 |     TCL_EXP_FILE="" | 
|---|
 | 1058 | dnl FIXME: Replace AC_CHECK_PROG with AC_CHECK_TOOL once cross compiling is fixed. | 
|---|
 | 1059 | dnl AC_CHECK_TOOL(AR, ar) | 
|---|
 | 1060 |     AC_CHECK_PROG(AR, ar, ar) | 
|---|
 | 1061 |     if test "${AR}" = "" ; then | 
|---|
 | 1062 |         AC_MSG_ERROR([Required archive tool 'ar' not found on PATH.]) | 
|---|
 | 1063 |     fi | 
|---|
 | 1064 |     STLIB_LD='${AR} cr' | 
|---|
 | 1065 |     LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH" | 
|---|
 | 1066 |     PLAT_OBJS="" | 
|---|
 | 1067 |     PLAT_SRCS="" | 
|---|
 | 1068 |     case $system in | 
|---|
 | 1069 |         AIX-*) | 
|---|
 | 1070 |             if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes" ; then | 
|---|
 | 1071 |                 # AIX requires the _r compiler when gcc isn't being used | 
|---|
 | 1072 |                 case "${CC}" in | 
|---|
 | 1073 |                     *_r) | 
|---|
 | 1074 |                         # ok ... | 
|---|
 | 1075 |                         ;; | 
|---|
 | 1076 |                     *) | 
|---|
 | 1077 |                         CC=${CC}_r | 
|---|
 | 1078 |                         ;; | 
|---|
 | 1079 |                 esac | 
|---|
 | 1080 |                 AC_MSG_RESULT([Using $CC for compiling with threads]) | 
|---|
 | 1081 |             fi | 
|---|
 | 1082 |             LIBS="$LIBS -lc" | 
|---|
 | 1083 |             SHLIB_CFLAGS="" | 
|---|
 | 1084 |             # Note: need the LIBS below, otherwise Tk won't find Tcl's | 
|---|
 | 1085 |             # symbols when dynamically loaded into tclsh. | 
|---|
 | 1086 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1087 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1088 |  | 
|---|
 | 1089 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1090 |             LD_LIBRARY_PATH_VAR="LIBPATH" | 
|---|
 | 1091 |  | 
|---|
 | 1092 |             # Check to enable 64-bit flags for compiler/linker on AIX 4+ | 
|---|
 | 1093 |             if test "$do64bit" = "yes" -a "`uname -v`" -gt "3" ; then | 
|---|
 | 1094 |                 if test "$GCC" = "yes" ; then | 
|---|
 | 1095 |                     AC_MSG_WARN([64bit mode not supported with GCC on $system]) | 
|---|
 | 1096 |                 else  | 
|---|
 | 1097 |                     do64bit_ok=yes | 
|---|
 | 1098 |                     CFLAGS="$CFLAGS -q64" | 
|---|
 | 1099 |                     LDFLAGS="$LDFLAGS -q64" | 
|---|
 | 1100 |                     RANLIB="${RANLIB} -X64" | 
|---|
 | 1101 |                     AR="${AR} -X64" | 
|---|
 | 1102 |                     SHLIB_LD_FLAGS="-b64" | 
|---|
 | 1103 |                 fi | 
|---|
 | 1104 |             fi | 
|---|
 | 1105 |  | 
|---|
 | 1106 |             if test "`uname -m`" = "ia64" ; then | 
|---|
 | 1107 |                 # AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC | 
|---|
 | 1108 |                 SHLIB_LD="/usr/ccs/bin/ld -G -z text" | 
|---|
 | 1109 |                 # AIX-5 has dl* in libc.so | 
|---|
 | 1110 |                 DL_LIBS="" | 
|---|
 | 1111 |                 if test "$GCC" = "yes" ; then | 
|---|
 | 1112 |                     CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' | 
|---|
 | 1113 |                 else | 
|---|
 | 1114 |                     CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}' | 
|---|
 | 1115 |                 fi | 
|---|
 | 1116 |                 LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' | 
|---|
 | 1117 |             else | 
|---|
 | 1118 |                 if test "$GCC" = "yes" ; then | 
|---|
 | 1119 |                     SHLIB_LD="gcc -shared" | 
|---|
 | 1120 |                 else | 
|---|
 | 1121 |                     SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry" | 
|---|
 | 1122 |                 fi | 
|---|
 | 1123 |                 SHLIB_LD="${TCL_SRC_DIR}/unix/ldAix ${SHLIB_LD} ${SHLIB_LD_FLAGS}" | 
|---|
 | 1124 |                 DL_LIBS="-ldl" | 
|---|
 | 1125 |                 CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' | 
|---|
 | 1126 |                 LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} | 
|---|
 | 1127 |                 TCL_NEEDS_EXP_FILE=1 | 
|---|
 | 1128 |                 TCL_EXPORT_FILE_SUFFIX='${VERSION}\$\{DBGX\}.exp' | 
|---|
 | 1129 |             fi | 
|---|
 | 1130 |  | 
|---|
 | 1131 |             # AIX v<=4.1 has some different flags than 4.2+ | 
|---|
 | 1132 |             if test "$system" = "AIX-4.1" -o "`uname -v`" -lt "4" ; then | 
|---|
 | 1133 |                 LIBOBJS="$LIBOBJS tclLoadAix.o" | 
|---|
 | 1134 |                 DL_LIBS="-lld" | 
|---|
 | 1135 |             fi | 
|---|
 | 1136 |  | 
|---|
 | 1137 |             # On AIX <=v4 systems, libbsd.a has to be linked in to support | 
|---|
 | 1138 |             # non-blocking file IO.  This library has to be linked in after | 
|---|
 | 1139 |             # the MATH_LIBS or it breaks the pow() function.  The way to | 
|---|
 | 1140 |             # insure proper sequencing, is to add it to the tail of MATH_LIBS. | 
|---|
 | 1141 |             # This library also supplies gettimeofday. | 
|---|
 | 1142 |             # | 
|---|
 | 1143 |             # AIX does not have a timezone field in struct tm. When the AIX | 
|---|
 | 1144 |             # bsd library is used, the timezone global and the gettimeofday | 
|---|
 | 1145 |             # methods are to be avoided for timezone deduction instead, we | 
|---|
 | 1146 |             # deduce the timezone by comparing the localtime result on a | 
|---|
 | 1147 |             # known GMT value. | 
|---|
 | 1148 |  | 
|---|
 | 1149 |             AC_CHECK_LIB(bsd, gettimeofday, libbsd=yes, libbsd=no) | 
|---|
 | 1150 |             if test $libbsd = yes; then | 
|---|
 | 1151 |                 MATH_LIBS="$MATH_LIBS -lbsd" | 
|---|
 | 1152 |                 AC_DEFINE(USE_DELTA_FOR_TZ) | 
|---|
 | 1153 |             fi | 
|---|
 | 1154 |             ;; | 
|---|
 | 1155 |         BeOS*) | 
|---|
 | 1156 |             SHLIB_CFLAGS="-fPIC" | 
|---|
 | 1157 |             SHLIB_LD="${CC} -nostart" | 
|---|
 | 1158 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1159 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1160 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1161 |             DL_LIBS="-ldl" | 
|---|
 | 1162 |  | 
|---|
 | 1163 |             #----------------------------------------------------------- | 
|---|
 | 1164 |             # Check for inet_ntoa in -lbind, for BeOS (which also needs | 
|---|
 | 1165 |             # -lsocket, even if the network functions are in -lnet which | 
|---|
 | 1166 |             # is always linked to, for compatibility. | 
|---|
 | 1167 |             #----------------------------------------------------------- | 
|---|
 | 1168 |             AC_CHECK_LIB(bind, inet_ntoa, [LIBS="$LIBS -lbind -lsocket"]) | 
|---|
 | 1169 |             ;; | 
|---|
 | 1170 |         BSD/OS-2.1*|BSD/OS-3*) | 
|---|
 | 1171 |             SHLIB_CFLAGS="" | 
|---|
 | 1172 |             SHLIB_LD="shlicc -r" | 
|---|
 | 1173 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1174 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1175 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1176 |             DL_LIBS="-ldl" | 
|---|
 | 1177 |             CC_SEARCH_FLAGS="" | 
|---|
 | 1178 |             LD_SEARCH_FLAGS="" | 
|---|
 | 1179 |             ;; | 
|---|
 | 1180 |         BSD/OS-4.*) | 
|---|
 | 1181 |             SHLIB_CFLAGS="-export-dynamic -fPIC" | 
|---|
 | 1182 |             SHLIB_LD="cc -shared" | 
|---|
 | 1183 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1184 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1185 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1186 |             DL_LIBS="-ldl" | 
|---|
 | 1187 |             LDFLAGS="$LDFLAGS -export-dynamic" | 
|---|
 | 1188 |             CC_SEARCH_FLAGS="" | 
|---|
 | 1189 |             LD_SEARCH_FLAGS="" | 
|---|
 | 1190 |             ;; | 
|---|
 | 1191 |         dgux*) | 
|---|
 | 1192 |             SHLIB_CFLAGS="-K PIC" | 
|---|
 | 1193 |             SHLIB_LD="cc -G" | 
|---|
 | 1194 |             SHLIB_LD_LIBS="" | 
|---|
 | 1195 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1196 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1197 |             DL_LIBS="-ldl" | 
|---|
 | 1198 |             CC_SEARCH_FLAGS="" | 
|---|
 | 1199 |             LD_SEARCH_FLAGS="" | 
|---|
 | 1200 |             ;; | 
|---|
 | 1201 |         HP-UX-*.11.*) | 
|---|
 | 1202 |             # Use updated header definitions where possible | 
|---|
 | 1203 |             AC_DEFINE(_XOPEN_SOURCE)          # Use the XOPEN network library | 
|---|
 | 1204 |             AC_DEFINE(_XOPEN_SOURCE_EXTENDED) # Use the XOPEN network library | 
|---|
 | 1205 |             LIBS="$LIBS -lxnet"               # Use the XOPEN network library | 
|---|
 | 1206 |  | 
|---|
 | 1207 |             if test "`uname -m`" = "ia64" ; then | 
|---|
 | 1208 |                 SHLIB_SUFFIX=".so" | 
|---|
 | 1209 |             else | 
|---|
 | 1210 |                 SHLIB_SUFFIX=".sl" | 
|---|
 | 1211 |             fi | 
|---|
 | 1212 |             AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no) | 
|---|
 | 1213 |             if test "$tcl_ok" = yes; then | 
|---|
 | 1214 |                 SHLIB_CFLAGS="+z" | 
|---|
 | 1215 |                 SHLIB_LD="ld -b" | 
|---|
 | 1216 |                 SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1217 |                 DL_OBJS="tclLoadShl.o" | 
|---|
 | 1218 |                 DL_LIBS="-ldld" | 
|---|
 | 1219 |                 LDFLAGS="$LDFLAGS -Wl,-E" | 
|---|
 | 1220 |                 CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.' | 
|---|
 | 1221 |                 LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.' | 
|---|
 | 1222 |                 LD_LIBRARY_PATH_VAR="SHLIB_PATH" | 
|---|
 | 1223 |             fi | 
|---|
 | 1224 |             if test "$GCC" = "yes" ; then | 
|---|
 | 1225 |                 SHLIB_LD="gcc -shared" | 
|---|
 | 1226 |                 SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1227 |                 LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} | 
|---|
 | 1228 |             fi | 
|---|
 | 1229 |  | 
|---|
 | 1230 |             # Users may want PA-RISC 1.1/2.0 portable code - needs HP cc | 
|---|
 | 1231 |             #CFLAGS="$CFLAGS +DAportable" | 
|---|
 | 1232 |  | 
|---|
 | 1233 |             # Check to enable 64-bit flags for compiler/linker | 
|---|
 | 1234 |             if test "$do64bit" = "yes" ; then | 
|---|
 | 1235 |                 if test "$GCC" = "yes" ; then | 
|---|
 | 1236 |                     hpux_arch=`${CC} -dumpmachine` | 
|---|
 | 1237 |                     case $hpux_arch in | 
|---|
 | 1238 |                         hppa64*) | 
|---|
 | 1239 |                             # 64-bit gcc in use.  Fix flags for GNU ld. | 
|---|
 | 1240 |                             do64bit_ok=yes | 
|---|
 | 1241 |                             SHLIB_LD="${CC} -shared" | 
|---|
 | 1242 |                             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1243 |                             CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' | 
|---|
 | 1244 |                             LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} | 
|---|
 | 1245 |                             ;; | 
|---|
 | 1246 |                         *) | 
|---|
 | 1247 |                             AC_MSG_WARN([64bit mode not supported with GCC on $system]) | 
|---|
 | 1248 |                             ;; | 
|---|
 | 1249 |                     esac | 
|---|
 | 1250 |                 else | 
|---|
 | 1251 |                     do64bit_ok=yes | 
|---|
 | 1252 |                     CFLAGS="$CFLAGS +DD64" | 
|---|
 | 1253 |                     LDFLAGS="$LDFLAGS +DD64" | 
|---|
 | 1254 |                 fi | 
|---|
 | 1255 |             fi | 
|---|
 | 1256 |             ;; | 
|---|
 | 1257 |         HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*) | 
|---|
 | 1258 |             SHLIB_SUFFIX=".sl" | 
|---|
 | 1259 |             AC_CHECK_LIB(dld, shl_load, tcl_ok=yes, tcl_ok=no) | 
|---|
 | 1260 |             if test "$tcl_ok" = yes; then | 
|---|
 | 1261 |                 SHLIB_CFLAGS="+z" | 
|---|
 | 1262 |                 SHLIB_LD="ld -b" | 
|---|
 | 1263 |                 SHLIB_LD_LIBS="" | 
|---|
 | 1264 |                 DL_OBJS="tclLoadShl.o" | 
|---|
 | 1265 |                 DL_LIBS="-ldld" | 
|---|
 | 1266 |                 LDFLAGS="$LDFLAGS -Wl,-E" | 
|---|
 | 1267 |                 CC_SEARCH_FLAGS='-Wl,+s,+b,${LIB_RUNTIME_DIR}:.' | 
|---|
 | 1268 |                 LD_SEARCH_FLAGS='+s +b ${LIB_RUNTIME_DIR}:.' | 
|---|
 | 1269 |                 LD_LIBRARY_PATH_VAR="SHLIB_PATH" | 
|---|
 | 1270 |             fi | 
|---|
 | 1271 |             ;; | 
|---|
 | 1272 |         IRIX-4.*) | 
|---|
 | 1273 |             SHLIB_CFLAGS="-G 0" | 
|---|
 | 1274 |             SHLIB_SUFFIX=".a" | 
|---|
 | 1275 |             SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0" | 
|---|
 | 1276 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1277 |             DL_OBJS="tclLoadAout.o" | 
|---|
 | 1278 |             DL_LIBS="" | 
|---|
 | 1279 |             LDFLAGS="$LDFLAGS -Wl,-D,08000000" | 
|---|
 | 1280 |             CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' | 
|---|
 | 1281 |             LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} | 
|---|
 | 1282 |             SHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}.a' | 
|---|
 | 1283 |             ;; | 
|---|
 | 1284 |         IRIX-5.*) | 
|---|
 | 1285 |             SHLIB_CFLAGS="" | 
|---|
 | 1286 |             SHLIB_LD="ld -shared -rdata_shared" | 
|---|
 | 1287 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1288 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1289 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1290 |             DL_LIBS="" | 
|---|
 | 1291 |             CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' | 
|---|
 | 1292 |             LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' | 
|---|
 | 1293 |             ;; | 
|---|
 | 1294 |         IRIX-6.*) | 
|---|
 | 1295 |             SHLIB_CFLAGS="" | 
|---|
 | 1296 |             SHLIB_LD="ld -n32 -shared -rdata_shared" | 
|---|
 | 1297 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1298 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1299 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1300 |             DL_LIBS="" | 
|---|
 | 1301 |             CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' | 
|---|
 | 1302 |             LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' | 
|---|
 | 1303 |             if test "$GCC" = "yes" ; then | 
|---|
 | 1304 |                 CFLAGS="$CFLAGS -mabi=n32" | 
|---|
 | 1305 |                 LDFLAGS="$LDFLAGS -mabi=n32" | 
|---|
 | 1306 |             else | 
|---|
 | 1307 |                 case $system in | 
|---|
 | 1308 |                     IRIX-6.3) | 
|---|
 | 1309 |                         # Use to build 6.2 compatible binaries on 6.3. | 
|---|
 | 1310 |                         CFLAGS="$CFLAGS -n32 -D_OLD_TERMIOS" | 
|---|
 | 1311 |                         ;; | 
|---|
 | 1312 |                     *) | 
|---|
 | 1313 |                         CFLAGS="$CFLAGS -n32" | 
|---|
 | 1314 |                         ;; | 
|---|
 | 1315 |                 esac | 
|---|
 | 1316 |                 LDFLAGS="$LDFLAGS -n32" | 
|---|
 | 1317 |             fi | 
|---|
 | 1318 |             ;; | 
|---|
 | 1319 |         IRIX64-6.*) | 
|---|
 | 1320 |             SHLIB_CFLAGS="" | 
|---|
 | 1321 |             SHLIB_LD="ld -n32 -shared -rdata_shared" | 
|---|
 | 1322 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1323 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1324 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1325 |             DL_LIBS="" | 
|---|
 | 1326 |             CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' | 
|---|
 | 1327 |             LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' | 
|---|
 | 1328 |  | 
|---|
 | 1329 |             # Check to enable 64-bit flags for compiler/linker | 
|---|
 | 1330 |  | 
|---|
 | 1331 |             if test "$do64bit" = "yes" ; then | 
|---|
 | 1332 |                 if test "$GCC" = "yes" ; then | 
|---|
 | 1333 |                     AC_MSG_WARN([64bit mode not supported by gcc]) | 
|---|
 | 1334 |                 else | 
|---|
 | 1335 |                     do64bit_ok=yes | 
|---|
 | 1336 |                     SHLIB_LD="ld -64 -shared -rdata_shared" | 
|---|
 | 1337 |                     CFLAGS="$CFLAGS -64" | 
|---|
 | 1338 |                     LDFLAGS="$LDFLAGS -64" | 
|---|
 | 1339 |                 fi | 
|---|
 | 1340 |             fi | 
|---|
 | 1341 |             ;; | 
|---|
 | 1342 |         Linux*) | 
|---|
 | 1343 |             SHLIB_CFLAGS="-fPIC" | 
|---|
 | 1344 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1345 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1346 |  | 
|---|
 | 1347 |             CFLAGS_OPTIMIZE=-O2 | 
|---|
 | 1348 |             # egcs-2.91.66 on Redhat Linux 6.0 generates lots of warnings  | 
|---|
 | 1349 |             # when you inline the string and math operations.  Turn this off to | 
|---|
 | 1350 |             # get rid of the warnings. | 
|---|
 | 1351 |             #CFLAGS_OPTIMIZE="${CFLAGS_OPTIMIZE} -D__NO_STRING_INLINES -D__NO_MATH_INLINES" | 
|---|
 | 1352 |  | 
|---|
 | 1353 |             if test "$have_dl" = yes; then | 
|---|
 | 1354 |                 SHLIB_LD='${CC} -shared ${CFLAGS} ${LDFLAGS}' | 
|---|
 | 1355 |                 DL_OBJS="tclLoadDl.o" | 
|---|
 | 1356 |                 DL_LIBS="-ldl" | 
|---|
 | 1357 |                 LDFLAGS="$LDFLAGS -Wl,--export-dynamic" | 
|---|
 | 1358 |                 CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' | 
|---|
 | 1359 |                 LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} | 
|---|
 | 1360 |             else | 
|---|
 | 1361 |                 AC_CHECK_HEADER(dld.h, [ | 
|---|
 | 1362 |                     SHLIB_LD="ld -shared" | 
|---|
 | 1363 |                     DL_OBJS="tclLoadDld.o" | 
|---|
 | 1364 |                     DL_LIBS="-ldld" | 
|---|
 | 1365 |                     CC_SEARCH_FLAGS="" | 
|---|
 | 1366 |                     LD_SEARCH_FLAGS=""]) | 
|---|
 | 1367 |             fi | 
|---|
 | 1368 |             if test "`uname -m`" = "alpha" ; then | 
|---|
 | 1369 |                 CFLAGS="$CFLAGS -mieee" | 
|---|
 | 1370 |             fi | 
|---|
 | 1371 |             if test $do64bit = yes; then | 
|---|
 | 1372 |                 AC_CACHE_CHECK([if compiler accepts -m64 flag], tcl_cv_cc_m64, [ | 
|---|
 | 1373 |                     hold_cflags=$CFLAGS | 
|---|
 | 1374 |                     CFLAGS="$CFLAGS -m64" | 
|---|
 | 1375 |                     AC_TRY_LINK(,, tcl_cv_cc_m64=yes, tcl_cv_cc_m64=no) | 
|---|
 | 1376 |                     CFLAGS=$hold_cflags]) | 
|---|
 | 1377 |                 if test $tcl_cv_cc_m64 = yes; then | 
|---|
 | 1378 |                     CFLAGS="$CFLAGS -m64" | 
|---|
 | 1379 |                     do64bit_ok=yes | 
|---|
 | 1380 |                 fi | 
|---|
 | 1381 |             fi | 
|---|
 | 1382 |  | 
|---|
 | 1383 |             # The combo of gcc + glibc has a bug related | 
|---|
 | 1384 |             # to inlining of functions like strtod(). The | 
|---|
 | 1385 |             # -fno-builtin flag should address this problem | 
|---|
 | 1386 |             # but it does not work. The -fno-inline flag | 
|---|
 | 1387 |             # is kind of overkill but it works. | 
|---|
 | 1388 |             # Disable inlining only when one of the | 
|---|
 | 1389 |             # files in compat/*.c is being linked in. | 
|---|
 | 1390 |             if test x"${LIBOBJS}" != x ; then | 
|---|
 | 1391 |                 CFLAGS="$CFLAGS -fno-inline" | 
|---|
 | 1392 |             fi | 
|---|
 | 1393 |  | 
|---|
 | 1394 |             # XIM peeking works under XFree86. | 
|---|
 | 1395 |             AC_DEFINE(PEEK_XCLOSEIM) | 
|---|
 | 1396 |  | 
|---|
 | 1397 |             ;; | 
|---|
 | 1398 |         GNU*) | 
|---|
 | 1399 |             SHLIB_CFLAGS="-fPIC" | 
|---|
 | 1400 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1401 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1402 |  | 
|---|
 | 1403 |             if test "$have_dl" = yes; then | 
|---|
 | 1404 |                 SHLIB_LD="${CC} -shared" | 
|---|
 | 1405 |                 DL_OBJS="" | 
|---|
 | 1406 |                 DL_LIBS="-ldl" | 
|---|
 | 1407 |                 LDFLAGS="$LDFLAGS -Wl,--export-dynamic" | 
|---|
 | 1408 |                 CC_SEARCH_FLAGS="" | 
|---|
 | 1409 |                 LD_SEARCH_FLAGS="" | 
|---|
 | 1410 |             else | 
|---|
 | 1411 |                 AC_CHECK_HEADER(dld.h, [ | 
|---|
 | 1412 |                     SHLIB_LD="ld -shared" | 
|---|
 | 1413 |                     DL_OBJS="" | 
|---|
 | 1414 |                     DL_LIBS="-ldld" | 
|---|
 | 1415 |                     CC_SEARCH_FLAGS="" | 
|---|
 | 1416 |                     LD_SEARCH_FLAGS=""]) | 
|---|
 | 1417 |             fi | 
|---|
 | 1418 |             if test "`uname -m`" = "alpha" ; then | 
|---|
 | 1419 |                 CFLAGS="$CFLAGS -mieee" | 
|---|
 | 1420 |             fi | 
|---|
 | 1421 |             ;; | 
|---|
 | 1422 |         Lynx*) | 
|---|
 | 1423 |             SHLIB_CFLAGS="-fPIC" | 
|---|
 | 1424 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1425 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1426 |             CFLAGS_OPTIMIZE=-02 | 
|---|
 | 1427 |             SHLIB_LD="${CC} -shared " | 
|---|
 | 1428 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1429 |             DL_LIBS="-mshared -ldl" | 
|---|
 | 1430 |             LD_FLAGS="-Wl,--export-dynamic" | 
|---|
 | 1431 |             CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' | 
|---|
 | 1432 |             LD_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' | 
|---|
 | 1433 |             ;; | 
|---|
 | 1434 |         MP-RAS-02*) | 
|---|
 | 1435 |             SHLIB_CFLAGS="-K PIC" | 
|---|
 | 1436 |             SHLIB_LD="cc -G" | 
|---|
 | 1437 |             SHLIB_LD_LIBS="" | 
|---|
 | 1438 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1439 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1440 |             DL_LIBS="-ldl" | 
|---|
 | 1441 |             CC_SEARCH_FLAGS="" | 
|---|
 | 1442 |             LD_SEARCH_FLAGS="" | 
|---|
 | 1443 |             ;; | 
|---|
 | 1444 |         MP-RAS-*) | 
|---|
 | 1445 |             SHLIB_CFLAGS="-K PIC" | 
|---|
 | 1446 |             SHLIB_LD="cc -G" | 
|---|
 | 1447 |             SHLIB_LD_LIBS="" | 
|---|
 | 1448 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1449 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1450 |             DL_LIBS="-ldl" | 
|---|
 | 1451 |             LDFLAGS="$LDFLAGS -Wl,-Bexport" | 
|---|
 | 1452 |             CC_SEARCH_FLAGS="" | 
|---|
 | 1453 |             LD_SEARCH_FLAGS="" | 
|---|
 | 1454 |             ;; | 
|---|
 | 1455 |         NetBSD-*|FreeBSD-[[1-2]].*) | 
|---|
 | 1456 |             # Not available on all versions:  check for include file. | 
|---|
 | 1457 |             AC_CHECK_HEADER(dlfcn.h, [ | 
|---|
 | 1458 |                 # NetBSD/SPARC needs -fPIC, -fpic will not do. | 
|---|
 | 1459 |                 SHLIB_CFLAGS="-fPIC" | 
|---|
 | 1460 |                 SHLIB_LD="ld -Bshareable -x" | 
|---|
 | 1461 |                 SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1462 |                 SHLIB_SUFFIX=".so" | 
|---|
 | 1463 |                 DL_OBJS="tclLoadDl.o" | 
|---|
 | 1464 |                 DL_LIBS="" | 
|---|
 | 1465 |                 CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' | 
|---|
 | 1466 |                 LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' | 
|---|
 | 1467 |                 AC_CACHE_CHECK([for ELF], tcl_cv_ld_elf, [ | 
|---|
 | 1468 |                     AC_EGREP_CPP(yes, [ | 
|---|
 | 1469 | #ifdef __ELF__ | 
|---|
 | 1470 |         yes | 
|---|
 | 1471 | #endif | 
|---|
 | 1472 |                     ], tcl_cv_ld_elf=yes, tcl_cv_ld_elf=no)]) | 
|---|
 | 1473 |                 if test $tcl_cv_ld_elf = yes; then | 
|---|
 | 1474 |                     SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so' | 
|---|
 | 1475 |                 else | 
|---|
 | 1476 |                     SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0' | 
|---|
 | 1477 |                 fi | 
|---|
 | 1478 |             ], [ | 
|---|
 | 1479 |                 SHLIB_CFLAGS="" | 
|---|
 | 1480 |                 SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r" | 
|---|
 | 1481 |                 SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1482 |                 SHLIB_SUFFIX=".a" | 
|---|
 | 1483 |                 DL_OBJS="tclLoadAout.o" | 
|---|
 | 1484 |                 DL_LIBS="" | 
|---|
 | 1485 |                 CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' | 
|---|
 | 1486 |                 LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} | 
|---|
 | 1487 |                 SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' | 
|---|
 | 1488 |             ]) | 
|---|
 | 1489 |  | 
|---|
 | 1490 |             # FreeBSD doesn't handle version numbers with dots. | 
|---|
 | 1491 |  | 
|---|
 | 1492 |             UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' | 
|---|
 | 1493 |             TCL_LIB_VERSIONS_OK=nodots | 
|---|
 | 1494 |             ;; | 
|---|
 | 1495 |         OpenBSD-*) | 
|---|
 | 1496 |             case `arch -s` in | 
|---|
 | 1497 |             m88k|vax) | 
|---|
 | 1498 |                 SHLIB_CFLAGS="" | 
|---|
 | 1499 |                 SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r" | 
|---|
 | 1500 |                 SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1501 |                 SHLIB_SUFFIX=".a" | 
|---|
 | 1502 |                 DL_OBJS="tclLoadAout.o" | 
|---|
 | 1503 |                 DL_LIBS="" | 
|---|
 | 1504 |                 LDFLAGS="" | 
|---|
 | 1505 |                 CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' | 
|---|
 | 1506 |                 LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} | 
|---|
 | 1507 |                 SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' | 
|---|
 | 1508 |                 ;; | 
|---|
 | 1509 |             *) | 
|---|
 | 1510 |                 # OpenBSD/SPARC[64] needs -fPIC, -fpic will not do. | 
|---|
 | 1511 |                 case `machine` in | 
|---|
 | 1512 |                 sparc|sparc64) | 
|---|
 | 1513 |                     SHLIB_CFLAGS="-fPIC";; | 
|---|
 | 1514 |                 *) | 
|---|
 | 1515 |                     SHLIB_CFLAGS="-fpic";; | 
|---|
 | 1516 |                 esac | 
|---|
 | 1517 |                 SHLIB_LD="${CC} -shared ${SHLIB_CFLAGS}" | 
|---|
 | 1518 |                 SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1519 |                 SHLIB_SUFFIX=".so" | 
|---|
 | 1520 |                 DL_OBJS="tclLoadDl.o" | 
|---|
 | 1521 |                 DL_LIBS="" | 
|---|
 | 1522 |                 CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' | 
|---|
 | 1523 |                 LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} | 
|---|
 | 1524 |                 SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0' | 
|---|
 | 1525 |                 AC_CACHE_CHECK([for ELF], tcl_cv_ld_elf, [ | 
|---|
 | 1526 |                     AC_EGREP_CPP(yes, [ | 
|---|
 | 1527 | #ifdef __ELF__ | 
|---|
 | 1528 |         yes | 
|---|
 | 1529 | #endif | 
|---|
 | 1530 |                     ], tcl_cv_ld_elf=yes, tcl_cv_ld_elf=no)]) | 
|---|
 | 1531 |                 if test $tcl_cv_ld_elf = yes; then | 
|---|
 | 1532 |                     LDFLAGS=-Wl,-export-dynamic | 
|---|
 | 1533 |                 else | 
|---|
 | 1534 |                     LDFLAGS="" | 
|---|
 | 1535 |                 fi | 
|---|
 | 1536 |                 ;; | 
|---|
 | 1537 |             esac | 
|---|
 | 1538 |  | 
|---|
 | 1539 |             # OpenBSD doesn't do version numbers with dots. | 
|---|
 | 1540 |             UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' | 
|---|
 | 1541 |             TCL_LIB_VERSIONS_OK=nodots | 
|---|
 | 1542 |             ;; | 
|---|
 | 1543 |         FreeBSD-*) | 
|---|
 | 1544 |             # FreeBSD 3.* and greater have ELF. | 
|---|
 | 1545 |             SHLIB_CFLAGS="-fPIC" | 
|---|
 | 1546 |             SHLIB_LD="ld -Bshareable -x" | 
|---|
 | 1547 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1548 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1549 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1550 |             DL_LIBS="" | 
|---|
 | 1551 |             LDFLAGS="$LDFLAGS -export-dynamic" | 
|---|
 | 1552 |             CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' | 
|---|
 | 1553 |             LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' | 
|---|
 | 1554 |             if test "${TCL_THREADS}" = "1" ; then | 
|---|
 | 1555 |                 # The -pthread needs to go in the CFLAGS, not LIBS | 
|---|
 | 1556 |                 LIBS=`echo $LIBS | sed s/-pthread//` | 
|---|
 | 1557 |                 CFLAGS="$CFLAGS -pthread" | 
|---|
 | 1558 |                 LDFLAGS="$LDFLAGS -pthread" | 
|---|
 | 1559 |             fi | 
|---|
 | 1560 |             case $system in | 
|---|
 | 1561 |             FreeBSD-3.*) | 
|---|
 | 1562 |                 # FreeBSD-3 doesn't handle version numbers with dots. | 
|---|
 | 1563 |                 UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' | 
|---|
 | 1564 |                 SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so' | 
|---|
 | 1565 |                 TCL_LIB_VERSIONS_OK=nodots | 
|---|
 | 1566 |                 ;; | 
|---|
 | 1567 |             esac | 
|---|
 | 1568 |             ;; | 
|---|
 | 1569 |         Darwin-*) | 
|---|
 | 1570 |             CFLAGS_OPTIMIZE="-Os" | 
|---|
 | 1571 |             SHLIB_CFLAGS="-fno-common" | 
|---|
 | 1572 |             # To avoid discrepancies between what headers configure sees during | 
|---|
 | 1573 |             # preprocessing tests and compiling tests, move any -isysroot and | 
|---|
 | 1574 |             # -mmacosx-version-min flags from CFLAGS to CPPFLAGS: | 
|---|
 | 1575 |             CPPFLAGS="${CPPFLAGS} `echo " ${CFLAGS}" | \ | 
|---|
 | 1576 |                 awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ | 
|---|
 | 1577 |                 if ([$]i~/^(isysroot|mmacosx-version-min)/) print "-"[$]i}'`" | 
|---|
 | 1578 |             CFLAGS="`echo " ${CFLAGS}" | \ | 
|---|
 | 1579 |                 awk 'BEGIN {FS=" +-";ORS=" "}; {for (i=2;i<=NF;i++) \ | 
|---|
 | 1580 |                 if (!([$]i~/^(isysroot|mmacosx-version-min)/)) print "-"[$]i}'`" | 
|---|
 | 1581 |             if test $do64bit = yes; then | 
|---|
 | 1582 |                 case `arch` in | 
|---|
 | 1583 |                     ppc) | 
|---|
 | 1584 |                         AC_CACHE_CHECK([if compiler accepts -arch ppc64 flag], | 
|---|
 | 1585 |                                 tcl_cv_cc_arch_ppc64, [ | 
|---|
 | 1586 |                             hold_cflags=$CFLAGS | 
|---|
 | 1587 |                             CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" | 
|---|
 | 1588 |                             AC_TRY_LINK(,, tcl_cv_cc_arch_ppc64=yes, | 
|---|
 | 1589 |                                     tcl_cv_cc_arch_ppc64=no) | 
|---|
 | 1590 |                             CFLAGS=$hold_cflags]) | 
|---|
 | 1591 |                         if test $tcl_cv_cc_arch_ppc64 = yes; then | 
|---|
 | 1592 |                             CFLAGS="$CFLAGS -arch ppc64 -mpowerpc64 -mcpu=G5" | 
|---|
 | 1593 |                             do64bit_ok=yes | 
|---|
 | 1594 |                         fi;; | 
|---|
 | 1595 |                     i386) | 
|---|
 | 1596 |                         AC_CACHE_CHECK([if compiler accepts -arch x86_64 flag], | 
|---|
 | 1597 |                                 tcl_cv_cc_arch_x86_64, [ | 
|---|
 | 1598 |                             hold_cflags=$CFLAGS | 
|---|
 | 1599 |                             CFLAGS="$CFLAGS -arch x86_64" | 
|---|
 | 1600 |                             AC_TRY_LINK(,, tcl_cv_cc_arch_x86_64=yes, | 
|---|
 | 1601 |                                     tcl_cv_cc_arch_x86_64=no) | 
|---|
 | 1602 |                             CFLAGS=$hold_cflags]) | 
|---|
 | 1603 |                         if test $tcl_cv_cc_arch_x86_64 = yes; then | 
|---|
 | 1604 |                             CFLAGS="$CFLAGS -arch x86_64" | 
|---|
 | 1605 |                             do64bit_ok=yes | 
|---|
 | 1606 |                         fi;; | 
|---|
 | 1607 |                     *) | 
|---|
 | 1608 |                         AC_MSG_WARN([Don't know how enable 64-bit on architecture `arch`]);; | 
|---|
 | 1609 |                 esac | 
|---|
 | 1610 |             else | 
|---|
 | 1611 |                 # Check for combined 32-bit and 64-bit fat build | 
|---|
 | 1612 |                 echo "$CFLAGS " | grep -E -q -- '-arch (ppc64|x86_64) ' && \ | 
|---|
 | 1613 |                     echo "$CFLAGS " | grep -E -q -- '-arch (ppc|i386) ' && \ | 
|---|
 | 1614 |                     fat_32_64=yes | 
|---|
 | 1615 |             fi | 
|---|
 | 1616 |             SHLIB_LD='${CC} -dynamiclib ${CFLAGS} ${LDFLAGS}' | 
|---|
 | 1617 |             AC_CACHE_CHECK([if ld accepts -single_module flag], tcl_cv_ld_single_module, [ | 
|---|
 | 1618 |                 hold_ldflags=$LDFLAGS | 
|---|
 | 1619 |                 LDFLAGS="$LDFLAGS -dynamiclib -Wl,-single_module" | 
|---|
 | 1620 |                 AC_TRY_LINK(, [int i;], tcl_cv_ld_single_module=yes, tcl_cv_ld_single_module=no) | 
|---|
 | 1621 |                 LDFLAGS=$hold_ldflags]) | 
|---|
 | 1622 |             if test $tcl_cv_ld_single_module = yes; then | 
|---|
 | 1623 |                 SHLIB_LD="${SHLIB_LD} -Wl,-single_module" | 
|---|
 | 1624 |             fi | 
|---|
 | 1625 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1626 |             SHLIB_SUFFIX=".dylib" | 
|---|
 | 1627 |             DL_OBJS="tclLoadDyld.o" | 
|---|
 | 1628 |             DL_LIBS="" | 
|---|
 | 1629 |             # Don't use -prebind when building for Mac OS X 10.4 or later only: | 
|---|
 | 1630 |             test "`echo "${MACOSX_DEPLOYMENT_TARGET}" | awk -F '10\\.' '{print int([$]2)}'`" -lt 4 -a \ | 
|---|
 | 1631 |                 "`echo "${CPPFLAGS}" | awk -F '-mmacosx-version-min=10\\.' '{print int([$]2)}'`" -lt 4 && \ | 
|---|
 | 1632 |                 LDFLAGS="$LDFLAGS -prebind" | 
|---|
 | 1633 |             LDFLAGS="$LDFLAGS -headerpad_max_install_names" | 
|---|
 | 1634 |             AC_CACHE_CHECK([if ld accepts -search_paths_first flag], tcl_cv_ld_search_paths_first, [ | 
|---|
 | 1635 |                 hold_ldflags=$LDFLAGS | 
|---|
 | 1636 |                 LDFLAGS="$LDFLAGS -Wl,-search_paths_first" | 
|---|
 | 1637 |                 AC_TRY_LINK(, [int i;], tcl_cv_ld_search_paths_first=yes, tcl_cv_ld_search_paths_first=no) | 
|---|
 | 1638 |                 LDFLAGS=$hold_ldflags]) | 
|---|
 | 1639 |             if test $tcl_cv_ld_search_paths_first = yes; then | 
|---|
 | 1640 |                 LDFLAGS="$LDFLAGS -Wl,-search_paths_first" | 
|---|
 | 1641 |             fi | 
|---|
 | 1642 |             CC_SEARCH_FLAGS="" | 
|---|
 | 1643 |             LD_SEARCH_FLAGS="" | 
|---|
 | 1644 |             LD_LIBRARY_PATH_VAR="DYLD_LIBRARY_PATH" | 
|---|
 | 1645 |             PLAT_OBJS=\$\(MAC\_OSX_OBJS\) | 
|---|
 | 1646 |             PLAT_SRCS=\$\(MAC\_OSX_SRCS\) | 
|---|
 | 1647 |             AC_MSG_CHECKING([whether to use CoreFoundation]) | 
|---|
 | 1648 |             AC_ARG_ENABLE(corefoundation, [  --enable-corefoundation use CoreFoundation API [--enable-corefoundation]], | 
|---|
 | 1649 |                 [tcl_corefoundation=$enableval], [tcl_corefoundation=yes]) | 
|---|
 | 1650 |             AC_MSG_RESULT([$tcl_corefoundation]) | 
|---|
 | 1651 |             if test $tcl_corefoundation = yes; then | 
|---|
 | 1652 |                 AC_CACHE_CHECK([for CoreFoundation.framework], tcl_cv_lib_corefoundation, [ | 
|---|
 | 1653 |                     hold_libs=$LIBS | 
|---|
 | 1654 |                     if test "$fat_32_64" = yes; then for v in CFLAGS CPPFLAGS LDFLAGS; do | 
|---|
 | 1655 |                         # On Tiger there is no 64-bit CF, so remove 64-bit archs | 
|---|
 | 1656 |                         # from CFLAGS et al. while testing for presence of CF. | 
|---|
 | 1657 |                         # 64-bit CF is disabled in tclUnixPort.h if necessary. | 
|---|
 | 1658 |                         eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc64 / /g" -e "s/-arch x86_64 / /g"`"' | 
|---|
 | 1659 |                     done; fi | 
|---|
 | 1660 |                     LIBS="$LIBS -framework CoreFoundation" | 
|---|
 | 1661 |                     AC_TRY_LINK([#include <CoreFoundation/CoreFoundation.h>],  | 
|---|
 | 1662 |                         [CFBundleRef b = CFBundleGetMainBundle();],  | 
|---|
 | 1663 |                         tcl_cv_lib_corefoundation=yes, tcl_cv_lib_corefoundation=no) | 
|---|
 | 1664 |                     if test "$fat_32_64" = yes; then for v in CFLAGS CPPFLAGS LDFLAGS; do | 
|---|
 | 1665 |                         eval $v'="$hold_'$v'"' | 
|---|
 | 1666 |                     done; fi; LIBS=$hold_libs]) | 
|---|
 | 1667 |                 if test $tcl_cv_lib_corefoundation = yes; then | 
|---|
 | 1668 |                     LIBS="$LIBS -framework CoreFoundation" | 
|---|
 | 1669 |                     AC_DEFINE(HAVE_COREFOUNDATION) | 
|---|
 | 1670 |                 else | 
|---|
 | 1671 |                     tcl_corefoundation=no | 
|---|
 | 1672 |                 fi | 
|---|
 | 1673 |                 if test "$fat_32_64" = yes -a $tcl_corefoundation = yes; then | 
|---|
 | 1674 |                     AC_CACHE_CHECK([for 64-bit CoreFoundation], tcl_cv_lib_corefoundation_64, [ | 
|---|
 | 1675 |                         for v in CFLAGS CPPFLAGS LDFLAGS; do | 
|---|
 | 1676 |                             eval 'hold_'$v'="$'$v'";'$v'="`echo "$'$v' "|sed -e "s/-arch ppc / /g" -e "s/-arch i386 / /g"`"' | 
|---|
 | 1677 |                         done | 
|---|
 | 1678 |                         AC_TRY_LINK([#include <CoreFoundation/CoreFoundation.h>],  | 
|---|
 | 1679 |                             [CFBundleRef b = CFBundleGetMainBundle();],  | 
|---|
 | 1680 |                             tcl_cv_lib_corefoundation_64=yes, tcl_cv_lib_corefoundation_64=no) | 
|---|
 | 1681 |                         for v in CFLAGS CPPFLAGS LDFLAGS; do | 
|---|
 | 1682 |                             eval $v'="$hold_'$v'"' | 
|---|
 | 1683 |                         done]) | 
|---|
 | 1684 |                     if test $tcl_cv_lib_corefoundation_64 = no; then | 
|---|
 | 1685 |                         AC_DEFINE(NO_COREFOUNDATION_64) | 
|---|
 | 1686 |                     fi | 
|---|
 | 1687 |                 fi | 
|---|
 | 1688 |             fi | 
|---|
 | 1689 |             AC_DEFINE(MAC_OSX_TCL) | 
|---|
 | 1690 |             ;; | 
|---|
 | 1691 |         NEXTSTEP-*) | 
|---|
 | 1692 |             SHLIB_CFLAGS="" | 
|---|
 | 1693 |             SHLIB_LD="cc -nostdlib -r" | 
|---|
 | 1694 |             SHLIB_LD_LIBS="" | 
|---|
 | 1695 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1696 |             DL_OBJS="tclLoadNext.o" | 
|---|
 | 1697 |             DL_LIBS="" | 
|---|
 | 1698 |             CC_SEARCH_FLAGS="" | 
|---|
 | 1699 |             LD_SEARCH_FLAGS="" | 
|---|
 | 1700 |             ;; | 
|---|
 | 1701 |         OS/390-*) | 
|---|
 | 1702 |             CFLAGS_OPTIMIZE=""          # Optimizer is buggy | 
|---|
 | 1703 |             AC_DEFINE(_OE_SOCKETS)      # needed in sys/socket.h | 
|---|
 | 1704 |             ;;       | 
|---|
 | 1705 |         OSF1-1.0|OSF1-1.1|OSF1-1.2) | 
|---|
 | 1706 |             # OSF/1 1.[012] from OSF, and derivatives, including Paragon OSF/1 | 
|---|
 | 1707 |             SHLIB_CFLAGS="" | 
|---|
 | 1708 |             # Hack: make package name same as library name | 
|---|
 | 1709 |             SHLIB_LD='ld -R -export $@:' | 
|---|
 | 1710 |             SHLIB_LD_LIBS="" | 
|---|
 | 1711 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1712 |             DL_OBJS="tclLoadOSF.o" | 
|---|
 | 1713 |             DL_LIBS="" | 
|---|
 | 1714 |             CC_SEARCH_FLAGS="" | 
|---|
 | 1715 |             LD_SEARCH_FLAGS="" | 
|---|
 | 1716 |             ;; | 
|---|
 | 1717 |         OSF1-1.*) | 
|---|
 | 1718 |             # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2 | 
|---|
 | 1719 |             SHLIB_CFLAGS="-fPIC" | 
|---|
 | 1720 |             if test "$SHARED_BUILD" = "1" ; then | 
|---|
 | 1721 |                 SHLIB_LD="ld -shared" | 
|---|
 | 1722 |             else | 
|---|
 | 1723 |                 SHLIB_LD="ld -non_shared" | 
|---|
 | 1724 |             fi | 
|---|
 | 1725 |             SHLIB_LD_LIBS="" | 
|---|
 | 1726 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1727 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1728 |             DL_LIBS="" | 
|---|
 | 1729 |             CC_SEARCH_FLAGS="" | 
|---|
 | 1730 |             LD_SEARCH_FLAGS="" | 
|---|
 | 1731 |             ;; | 
|---|
 | 1732 |         OSF1-V*) | 
|---|
 | 1733 |             # Digital OSF/1 | 
|---|
 | 1734 |             SHLIB_CFLAGS="" | 
|---|
 | 1735 |             if test "$SHARED_BUILD" = "1" ; then | 
|---|
 | 1736 |                 SHLIB_LD='ld -shared -expect_unresolved "*"' | 
|---|
 | 1737 |             else | 
|---|
 | 1738 |                 SHLIB_LD='ld -non_shared -expect_unresolved "*"' | 
|---|
 | 1739 |             fi | 
|---|
 | 1740 |             SHLIB_LD_LIBS="" | 
|---|
 | 1741 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1742 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1743 |             DL_LIBS="" | 
|---|
 | 1744 |             CC_SEARCH_FLAGS='-Wl,-rpath,${LIB_RUNTIME_DIR}' | 
|---|
 | 1745 |             LD_SEARCH_FLAGS='-rpath ${LIB_RUNTIME_DIR}' | 
|---|
 | 1746 |             if test "$GCC" = "yes" ; then | 
|---|
 | 1747 |                 CFLAGS="$CFLAGS -mieee" | 
|---|
 | 1748 |             else | 
|---|
 | 1749 |                 CFLAGS="$CFLAGS -DHAVE_TZSET -std1 -ieee" | 
|---|
 | 1750 |             fi | 
|---|
 | 1751 |             # see pthread_intro(3) for pthread support on osf1, k.furukawa | 
|---|
 | 1752 |             if test "${TCL_THREADS}" = "1" ; then | 
|---|
 | 1753 |                 CFLAGS="$CFLAGS -DHAVE_PTHREAD_ATTR_SETSTACKSIZE" | 
|---|
 | 1754 |                 CFLAGS="$CFLAGS -DTCL_THREAD_STACK_MIN=PTHREAD_STACK_MIN*64" | 
|---|
 | 1755 |                 LIBS=`echo $LIBS | sed s/-lpthreads//` | 
|---|
 | 1756 |                 if test "$GCC" = "yes" ; then | 
|---|
 | 1757 |                     LIBS="$LIBS -lpthread -lmach -lexc" | 
|---|
 | 1758 |                 else | 
|---|
 | 1759 |                     CFLAGS="$CFLAGS -pthread" | 
|---|
 | 1760 |                     LDFLAGS="$LDFLAGS -pthread" | 
|---|
 | 1761 |                 fi | 
|---|
 | 1762 |             fi | 
|---|
 | 1763 |  | 
|---|
 | 1764 |             ;; | 
|---|
 | 1765 |         QNX-6*) | 
|---|
 | 1766 |             # QNX RTP | 
|---|
 | 1767 |             # This may work for all QNX, but it was only reported for v6. | 
|---|
 | 1768 |             SHLIB_CFLAGS="-fPIC" | 
|---|
 | 1769 |             SHLIB_LD="ld -Bshareable -x" | 
|---|
 | 1770 |             SHLIB_LD_LIBS="" | 
|---|
 | 1771 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1772 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1773 |             # dlopen is in -lc on QNX | 
|---|
 | 1774 |             DL_LIBS="" | 
|---|
 | 1775 |             CC_SEARCH_FLAGS="" | 
|---|
 | 1776 |             LD_SEARCH_FLAGS="" | 
|---|
 | 1777 |             ;; | 
|---|
 | 1778 |         RISCos-*) | 
|---|
 | 1779 |             SHLIB_CFLAGS="-G 0" | 
|---|
 | 1780 |             SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0" | 
|---|
 | 1781 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1782 |             SHLIB_SUFFIX=".a" | 
|---|
 | 1783 |             DL_OBJS="tclLoadAout.o" | 
|---|
 | 1784 |             DL_LIBS="" | 
|---|
 | 1785 |             LDFLAGS="$LDFLAGS -Wl,-D,08000000" | 
|---|
 | 1786 |             CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' | 
|---|
 | 1787 |             LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} | 
|---|
 | 1788 |             ;; | 
|---|
 | 1789 |         SCO_SV-3.2*) | 
|---|
 | 1790 |             # Note, dlopen is available only on SCO 3.2.5 and greater. However, | 
|---|
 | 1791 |             # this test works, since "uname -s" was non-standard in 3.2.4 and | 
|---|
 | 1792 |             # below. | 
|---|
 | 1793 |             if test "$GCC" = "yes" ; then | 
|---|
 | 1794 |                 SHLIB_CFLAGS="-fPIC -melf" | 
|---|
 | 1795 |                 LDFLAGS="$LDFLAGS -melf -Wl,-Bexport" | 
|---|
 | 1796 |             else | 
|---|
 | 1797 |                 SHLIB_CFLAGS="-Kpic -belf" | 
|---|
 | 1798 |                 LDFLAGS="$LDFLAGS -belf -Wl,-Bexport" | 
|---|
 | 1799 |             fi | 
|---|
 | 1800 |             SHLIB_LD="ld -G" | 
|---|
 | 1801 |             SHLIB_LD_LIBS="" | 
|---|
 | 1802 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1803 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1804 |             DL_LIBS="" | 
|---|
 | 1805 |             CC_SEARCH_FLAGS="" | 
|---|
 | 1806 |             LD_SEARCH_FLAGS="" | 
|---|
 | 1807 |             ;; | 
|---|
 | 1808 |         SINIX*5.4*) | 
|---|
 | 1809 |             SHLIB_CFLAGS="-K PIC" | 
|---|
 | 1810 |             SHLIB_LD="cc -G" | 
|---|
 | 1811 |             SHLIB_LD_LIBS="" | 
|---|
 | 1812 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1813 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1814 |             DL_LIBS="-ldl" | 
|---|
 | 1815 |             CC_SEARCH_FLAGS="" | 
|---|
 | 1816 |             LD_SEARCH_FLAGS="" | 
|---|
 | 1817 |             ;; | 
|---|
 | 1818 |         SunOS-4*) | 
|---|
 | 1819 |             SHLIB_CFLAGS="-PIC" | 
|---|
 | 1820 |             SHLIB_LD="ld" | 
|---|
 | 1821 |             SHLIB_LD_LIBS="" | 
|---|
 | 1822 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1823 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1824 |             DL_LIBS="-ldl" | 
|---|
 | 1825 |             CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' | 
|---|
 | 1826 |             LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} | 
|---|
 | 1827 |  | 
|---|
 | 1828 |             # SunOS can't handle version numbers with dots in them in library | 
|---|
 | 1829 |             # specs, like -ltcl7.5, so use -ltcl75 instead.  Also, it | 
|---|
 | 1830 |             # requires an extra version number at the end of .so file names. | 
|---|
 | 1831 |             # So, the library has to have a name like libtcl75.so.1.0 | 
|---|
 | 1832 |  | 
|---|
 | 1833 |             SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.so.1.0' | 
|---|
 | 1834 |             UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}\$\{DBGX\}.a' | 
|---|
 | 1835 |             TCL_LIB_VERSIONS_OK=nodots | 
|---|
 | 1836 |             ;; | 
|---|
 | 1837 |         SunOS-5.[[0-6]]) | 
|---|
 | 1838 |             # Careful to not let 5.10+ fall into this case | 
|---|
 | 1839 |  | 
|---|
 | 1840 |             # Note: If _REENTRANT isn't defined, then Solaris | 
|---|
 | 1841 |             # won't define thread-safe library routines. | 
|---|
 | 1842 |  | 
|---|
 | 1843 |             AC_DEFINE(_REENTRANT) | 
|---|
 | 1844 |             AC_DEFINE(_POSIX_PTHREAD_SEMANTICS) | 
|---|
 | 1845 |  | 
|---|
 | 1846 |             SHLIB_CFLAGS="-KPIC" | 
|---|
 | 1847 |  | 
|---|
 | 1848 |             # Note: need the LIBS below, otherwise Tk won't find Tcl's | 
|---|
 | 1849 |             # symbols when dynamically loaded into tclsh. | 
|---|
 | 1850 |  | 
|---|
 | 1851 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1852 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1853 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1854 |             DL_LIBS="-ldl" | 
|---|
 | 1855 |             if test "$GCC" = "yes" ; then | 
|---|
 | 1856 |                 SHLIB_LD="$CC -shared" | 
|---|
 | 1857 |                 CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' | 
|---|
 | 1858 |                 LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} | 
|---|
 | 1859 |             else | 
|---|
 | 1860 |                 SHLIB_LD="/usr/ccs/bin/ld -G -z text" | 
|---|
 | 1861 |                 CC_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' | 
|---|
 | 1862 |                 LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} | 
|---|
 | 1863 |             fi | 
|---|
 | 1864 |             ;; | 
|---|
 | 1865 |         SunOS-5*) | 
|---|
 | 1866 |             # Note: If _REENTRANT isn't defined, then Solaris | 
|---|
 | 1867 |             # won't define thread-safe library routines. | 
|---|
 | 1868 |  | 
|---|
 | 1869 |             AC_DEFINE(_REENTRANT) | 
|---|
 | 1870 |             AC_DEFINE(_POSIX_PTHREAD_SEMANTICS) | 
|---|
 | 1871 |  | 
|---|
 | 1872 |             SHLIB_CFLAGS="-KPIC" | 
|---|
 | 1873 |  | 
|---|
 | 1874 |             # Check to enable 64-bit flags for compiler/linker | 
|---|
 | 1875 |             if test "$do64bit" = "yes" ; then | 
|---|
 | 1876 |                 arch=`isainfo` | 
|---|
 | 1877 |                 if test "$arch" = "sparcv9 sparc" ; then | 
|---|
 | 1878 |                         if test "$GCC" = "yes" ; then | 
|---|
 | 1879 |                             if test "`gcc -dumpversion | awk -F. '{print [$]1}'`" -lt "3" ; then | 
|---|
 | 1880 |                                 AC_MSG_WARN([64bit mode not supported with GCC < 3.2 on $system]) | 
|---|
 | 1881 |                             else | 
|---|
 | 1882 |                                 do64bit_ok=yes | 
|---|
 | 1883 |                                 CFLAGS="$CFLAGS -m64 -mcpu=v9" | 
|---|
 | 1884 |                                 LDFLAGS="$LDFLAGS -m64 -mcpu=v9" | 
|---|
 | 1885 |                                 SHLIB_CFLAGS="-fPIC" | 
|---|
 | 1886 |                             fi | 
|---|
 | 1887 |                         else | 
|---|
 | 1888 |                             do64bit_ok=yes | 
|---|
 | 1889 |                             if test "$do64bitVIS" = "yes" ; then | 
|---|
 | 1890 |                                 CFLAGS="$CFLAGS -xarch=v9a" | 
|---|
 | 1891 |                                 LDFLAGS="$LDFLAGS -xarch=v9a" | 
|---|
 | 1892 |                             else | 
|---|
 | 1893 |                                 CFLAGS="$CFLAGS -xarch=v9" | 
|---|
 | 1894 |                                 LDFLAGS="$LDFLAGS -xarch=v9" | 
|---|
 | 1895 |                             fi | 
|---|
 | 1896 |                             # Solaris 64 uses this as well | 
|---|
 | 1897 |                             #LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH_64" | 
|---|
 | 1898 |                         fi | 
|---|
 | 1899 |                 elif test "$arch" = "amd64 i386" ; then | 
|---|
 | 1900 |                     if test "$GCC" = "yes" ; then | 
|---|
 | 1901 |                         AC_MSG_WARN([64bit mode not supported with GCC on $system]) | 
|---|
 | 1902 |                     else | 
|---|
 | 1903 |                         do64bit_ok=yes | 
|---|
 | 1904 |                         CFLAGS="$CFLAGS -xarch=amd64" | 
|---|
 | 1905 |                         LDFLAGS="$LDFLAGS -xarch=amd64" | 
|---|
 | 1906 |                     fi | 
|---|
 | 1907 |                 else | 
|---|
 | 1908 |                     AC_MSG_WARN([64bit mode not supported for $arch]) | 
|---|
 | 1909 |                 fi | 
|---|
 | 1910 |             fi | 
|---|
 | 1911 |              | 
|---|
 | 1912 |             # Note: need the LIBS below, otherwise Tk won't find Tcl's | 
|---|
 | 1913 |             # symbols when dynamically loaded into tclsh. | 
|---|
 | 1914 |  | 
|---|
 | 1915 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1916 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1917 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1918 |             DL_LIBS="-ldl" | 
|---|
 | 1919 |             if test "$GCC" = "yes" ; then | 
|---|
 | 1920 |                 SHLIB_LD="$CC -shared" | 
|---|
 | 1921 |                 CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' | 
|---|
 | 1922 |                 LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} | 
|---|
 | 1923 |                 if test "$do64bit_ok" = "yes" ; then | 
|---|
 | 1924 |                     # We need to specify -static-libgcc or we need to | 
|---|
 | 1925 |                     # add the path to the sparv9 libgcc. | 
|---|
 | 1926 |                     SHLIB_LD="$SHLIB_LD -m64 -mcpu=v9 -static-libgcc" | 
|---|
 | 1927 |                     # for finding sparcv9 libgcc, get the regular libgcc | 
|---|
 | 1928 |                     # path, remove so name and append 'sparcv9' | 
|---|
 | 1929 |                     #v9gcclibdir="`gcc -print-file-name=libgcc_s.so` | ..." | 
|---|
 | 1930 |                     #CC_SEARCH_FLAGS="${CC_SEARCH_FLAGS},-R,$v9gcclibdir" | 
|---|
 | 1931 |                 fi | 
|---|
 | 1932 |             else | 
|---|
 | 1933 |                 case $system in | 
|---|
 | 1934 |                     SunOS-5.[[1-9]][[0-9]]*) | 
|---|
 | 1935 |                         SHLIB_LD='${CC} -G -z text';; | 
|---|
 | 1936 |                     *) | 
|---|
 | 1937 |                         SHLIB_LD="/usr/ccs/bin/ld -G -z text";; | 
|---|
 | 1938 |                 esac | 
|---|
 | 1939 |                 CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}' | 
|---|
 | 1940 |                 LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}' | 
|---|
 | 1941 |             fi | 
|---|
 | 1942 |             ;; | 
|---|
 | 1943 |         ULTRIX-4.*) | 
|---|
 | 1944 |             SHLIB_CFLAGS="-G 0" | 
|---|
 | 1945 |             SHLIB_SUFFIX=".a" | 
|---|
 | 1946 |             SHLIB_LD="echo tclLdAout $CC \{$SHLIB_CFLAGS\} | `pwd`/tclsh -r -G 0" | 
|---|
 | 1947 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 1948 |             DL_OBJS="tclLoadAout.o" | 
|---|
 | 1949 |             DL_LIBS="" | 
|---|
 | 1950 |             LDFLAGS="$LDFLAGS -Wl,-D,08000000" | 
|---|
 | 1951 |             CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}' | 
|---|
 | 1952 |             LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS} | 
|---|
 | 1953 |             if test "$GCC" != "yes" ; then | 
|---|
 | 1954 |                 CFLAGS="$CFLAGS -DHAVE_TZSET -std1" | 
|---|
 | 1955 |             fi | 
|---|
 | 1956 |             ;; | 
|---|
 | 1957 |         UNIX_SV* | UnixWare-5*) | 
|---|
 | 1958 |             SHLIB_CFLAGS="-KPIC" | 
|---|
 | 1959 |             SHLIB_LD="cc -G" | 
|---|
 | 1960 |             SHLIB_LD_LIBS="" | 
|---|
 | 1961 |             SHLIB_SUFFIX=".so" | 
|---|
 | 1962 |             DL_OBJS="tclLoadDl.o" | 
|---|
 | 1963 |             DL_LIBS="-ldl" | 
|---|
 | 1964 |             # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers | 
|---|
 | 1965 |             # that don't grok the -Bexport option.  Test that it does. | 
|---|
 | 1966 |             AC_CACHE_CHECK([for ld accepts -Bexport flag], tcl_cv_ld_Bexport, [ | 
|---|
 | 1967 |                 hold_ldflags=$LDFLAGS | 
|---|
 | 1968 |                 LDFLAGS="$LDFLAGS -Wl,-Bexport" | 
|---|
 | 1969 |                 AC_TRY_LINK(, [int i;], tcl_cv_ld_Bexport=yes, tcl_cv_ld_Bexport=no) | 
|---|
 | 1970 |                 LDFLAGS=$hold_ldflags]) | 
|---|
 | 1971 |             if test $tcl_cv_ld_Bexport = yes; then | 
|---|
 | 1972 |                 LDFLAGS="$LDFLAGS -Wl,-Bexport" | 
|---|
 | 1973 |             fi | 
|---|
 | 1974 |             CC_SEARCH_FLAGS="" | 
|---|
 | 1975 |             LD_SEARCH_FLAGS="" | 
|---|
 | 1976 |             ;; | 
|---|
 | 1977 |     esac | 
|---|
 | 1978 |  | 
|---|
 | 1979 |     if test "$do64bit" = "yes" -a "$do64bit_ok" = "no" ; then | 
|---|
 | 1980 |         AC_MSG_WARN([64bit support being disabled -- don't know magic for this platform]) | 
|---|
 | 1981 |     fi | 
|---|
 | 1982 |  | 
|---|
 | 1983 | dnl # Add any CPPFLAGS set in the environment to our CFLAGS, but delay doing so | 
|---|
 | 1984 | dnl # until the end of configure, as configure's compile and link tests use | 
|---|
 | 1985 | dnl # both CPPFLAGS and CFLAGS (unlike our compile and link) but configure's | 
|---|
 | 1986 | dnl # preprocessing tests use only CPPFLAGS. | 
|---|
 | 1987 |     SC_CONFIG_COMMANDS_PRE([CFLAGS="${CFLAGS} ${CPPFLAGS}"; CPPFLAGS=""]) | 
|---|
 | 1988 |  | 
|---|
 | 1989 |     # Step 4: If pseudo-static linking is in use (see K. B. Kenny, "Dynamic | 
|---|
 | 1990 |     # Loading for Tcl -- What Became of It?".  Proc. 2nd Tcl/Tk Workshop, | 
|---|
 | 1991 |     # New Orleans, LA, Computerized Processes Unlimited, 1994), then we need | 
|---|
 | 1992 |     # to determine which of several header files defines the a.out file | 
|---|
 | 1993 |     # format (a.out.h, sys/exec.h, or sys/exec_aout.h).  At present, we | 
|---|
 | 1994 |     # support only a file format that is more or less version-7-compatible.  | 
|---|
 | 1995 |     # In particular, | 
|---|
 | 1996 |     #   - a.out files must begin with `struct exec'. | 
|---|
 | 1997 |     #   - the N_TXTOFF on the `struct exec' must compute the seek address | 
|---|
 | 1998 |     #     of the text segment | 
|---|
 | 1999 |     #   - The `struct exec' must contain a_magic, a_text, a_data, a_bss | 
|---|
 | 2000 |     #     and a_entry fields. | 
|---|
 | 2001 |     # The following compilation should succeed if and only if either sys/exec.h | 
|---|
 | 2002 |     # or a.out.h is usable for the purpose. | 
|---|
 | 2003 |     # | 
|---|
 | 2004 |     # Note that the modified COFF format used on MIPS Ultrix 4.x is usable; the | 
|---|
 | 2005 |     # `struct exec' includes a second header that contains information that | 
|---|
 | 2006 |     # duplicates the v7 fields that are needed. | 
|---|
 | 2007 |  | 
|---|
 | 2008 |     if test "x$DL_OBJS" = "xtclLoadAout.o" ; then | 
|---|
 | 2009 |         AC_CACHE_CHECK([sys/exec.h], tcl_cv_sysexec_h, [ | 
|---|
 | 2010 |         AC_TRY_COMPILE([#include <sys/exec.h>],[ | 
|---|
 | 2011 |             struct exec foo; | 
|---|
 | 2012 |             unsigned long seek; | 
|---|
 | 2013 |             int flag; | 
|---|
 | 2014 | #if defined(__mips) || defined(mips) | 
|---|
 | 2015 |             seek = N_TXTOFF (foo.ex_f, foo.ex_o); | 
|---|
 | 2016 | #else | 
|---|
 | 2017 |             seek = N_TXTOFF (foo); | 
|---|
 | 2018 | #endif | 
|---|
 | 2019 |             flag = (foo.a_magic == OMAGIC); | 
|---|
 | 2020 |             return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry; | 
|---|
 | 2021 |     ], tcl_cv_sysexec_h=usable, tcl_cv_sysexec_h=unusable)]) | 
|---|
 | 2022 |         if test $tcl_cv_sysexec_h = usable; then | 
|---|
 | 2023 |             AC_DEFINE(USE_SYS_EXEC_H) | 
|---|
 | 2024 |         else | 
|---|
 | 2025 |             AC_CACHE_CHECK([a.out.h], tcl_cv_aout_h, [ | 
|---|
 | 2026 |             AC_TRY_COMPILE([#include <a.out.h>],[ | 
|---|
 | 2027 |                 struct exec foo; | 
|---|
 | 2028 |                 unsigned long seek; | 
|---|
 | 2029 |                 int flag; | 
|---|
 | 2030 | #if defined(__mips) || defined(mips) | 
|---|
 | 2031 |                 seek = N_TXTOFF (foo.ex_f, foo.ex_o); | 
|---|
 | 2032 | #else | 
|---|
 | 2033 |                 seek = N_TXTOFF (foo); | 
|---|
 | 2034 | #endif | 
|---|
 | 2035 |                 flag = (foo.a_magic == OMAGIC); | 
|---|
 | 2036 |                 return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry; | 
|---|
 | 2037 |             ], tcl_cv_aout_h=usable, tcl_cv_aout_h=unusable)]) | 
|---|
 | 2038 |             if test $tcl_cv_aout_h = usable; then | 
|---|
 | 2039 |                 AC_DEFINE(USE_A_OUT_H) | 
|---|
 | 2040 |             else | 
|---|
 | 2041 |                 AC_CACHE_CHECK([sys/exec_aout.h], tcl_cv_sysexecaout_h, [ | 
|---|
 | 2042 |                 AC_TRY_COMPILE([#include <sys/exec_aout.h>],[ | 
|---|
 | 2043 |                     struct exec foo; | 
|---|
 | 2044 |                     unsigned long seek; | 
|---|
 | 2045 |                     int flag; | 
|---|
 | 2046 | #if defined(__mips) || defined(mips) | 
|---|
 | 2047 |                     seek = N_TXTOFF (foo.ex_f, foo.ex_o); | 
|---|
 | 2048 | #else | 
|---|
 | 2049 |                     seek = N_TXTOFF (foo); | 
|---|
 | 2050 | #endif | 
|---|
 | 2051 |                     flag = (foo.a_midmag == OMAGIC); | 
|---|
 | 2052 |                     return foo.a_text + foo.a_data + foo.a_bss + foo.a_entry; | 
|---|
 | 2053 |                 ], tcl_cv_sysexecaout_h=usable, tcl_cv_sysexecaout_h=unusable)]) | 
|---|
 | 2054 |                 if test $tcl_cv_sysexecaout_h = usable; then | 
|---|
 | 2055 |                     AC_DEFINE(USE_SYS_EXEC_AOUT_H) | 
|---|
 | 2056 |                 else | 
|---|
 | 2057 |                     DL_OBJS="" | 
|---|
 | 2058 |                 fi | 
|---|
 | 2059 |             fi | 
|---|
 | 2060 |         fi | 
|---|
 | 2061 |     fi | 
|---|
 | 2062 |  | 
|---|
 | 2063 |     # Step 5: disable dynamic loading if requested via a command-line switch. | 
|---|
 | 2064 |  | 
|---|
 | 2065 |     AC_ARG_ENABLE(load, [  --disable-load          disallow dynamic loading and "load" command], | 
|---|
 | 2066 |         [tcl_ok=$enableval], [tcl_ok=yes]) | 
|---|
 | 2067 |     if test "$tcl_ok" = "no"; then | 
|---|
 | 2068 |         DL_OBJS="" | 
|---|
 | 2069 |     fi | 
|---|
 | 2070 |  | 
|---|
 | 2071 |     if test "x$DL_OBJS" != "x" ; then | 
|---|
 | 2072 |         BUILD_DLTEST="\$(DLTEST_TARGETS)" | 
|---|
 | 2073 |     else | 
|---|
 | 2074 |         echo "Can't figure out how to do dynamic loading or shared libraries" | 
|---|
 | 2075 |         echo "on this system." | 
|---|
 | 2076 |         SHLIB_CFLAGS="" | 
|---|
 | 2077 |         SHLIB_LD="" | 
|---|
 | 2078 |         SHLIB_SUFFIX="" | 
|---|
 | 2079 |         DL_OBJS="tclLoadNone.o" | 
|---|
 | 2080 |         DL_LIBS="" | 
|---|
 | 2081 |         LDFLAGS="$LDFLAGS_ORIG" | 
|---|
 | 2082 |         CC_SEARCH_FLAGS="" | 
|---|
 | 2083 |         LD_SEARCH_FLAGS="" | 
|---|
 | 2084 |         BUILD_DLTEST="" | 
|---|
 | 2085 |     fi | 
|---|
 | 2086 |  | 
|---|
 | 2087 |     # If we're running gcc, then change the C flags for compiling shared | 
|---|
 | 2088 |     # libraries to the right flags for gcc, instead of those for the | 
|---|
 | 2089 |     # standard manufacturer compiler. | 
|---|
 | 2090 |  | 
|---|
 | 2091 |     if test "$DL_OBJS" != "tclLoadNone.o" ; then | 
|---|
 | 2092 |         if test "$GCC" = "yes" ; then | 
|---|
 | 2093 |             case $system in | 
|---|
 | 2094 |                 AIX-*) | 
|---|
 | 2095 |                     ;; | 
|---|
 | 2096 |                 BSD/OS*) | 
|---|
 | 2097 |                     ;; | 
|---|
 | 2098 |                 IRIX*) | 
|---|
 | 2099 |                     ;; | 
|---|
 | 2100 |                 NetBSD-*|FreeBSD-*|OpenBSD-*) | 
|---|
 | 2101 |                     ;; | 
|---|
 | 2102 |                 Darwin-*) | 
|---|
 | 2103 |                     ;; | 
|---|
 | 2104 |                 RISCos-*) | 
|---|
 | 2105 |                     ;; | 
|---|
 | 2106 |                 SCO_SV-3.2*) | 
|---|
 | 2107 |                     ;; | 
|---|
 | 2108 |                 ULTRIX-4.*) | 
|---|
 | 2109 |                     ;; | 
|---|
 | 2110 |                 *) | 
|---|
 | 2111 |                     SHLIB_CFLAGS="-fPIC" | 
|---|
 | 2112 |                     ;; | 
|---|
 | 2113 |             esac | 
|---|
 | 2114 |         fi | 
|---|
 | 2115 |     fi | 
|---|
 | 2116 |  | 
|---|
 | 2117 |     if test "$SHARED_LIB_SUFFIX" = "" ; then | 
|---|
 | 2118 |         SHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}${SHLIB_SUFFIX}' | 
|---|
 | 2119 |     fi | 
|---|
 | 2120 |     if test "$UNSHARED_LIB_SUFFIX" = "" ; then | 
|---|
 | 2121 |         UNSHARED_LIB_SUFFIX='${VERSION}\$\{DBGX\}.a' | 
|---|
 | 2122 |     fi | 
|---|
 | 2123 |  | 
|---|
 | 2124 |     if test "${SHARED_BUILD}" = "1" && test "${SHLIB_SUFFIX}" != "" ; then | 
|---|
 | 2125 |         LIB_SUFFIX=${SHARED_LIB_SUFFIX} | 
|---|
 | 2126 |         MAKE_LIB='${SHLIB_LD} -o [$]@ ${OBJS} ${SHLIB_LD_LIBS} ${TCL_SHLIB_LD_EXTRAS} ${TK_SHLIB_LD_EXTRAS} ${LD_SEARCH_FLAGS}' | 
|---|
 | 2127 |         INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)' | 
|---|
 | 2128 |     else | 
|---|
 | 2129 |         LIB_SUFFIX=${UNSHARED_LIB_SUFFIX} | 
|---|
 | 2130 |  | 
|---|
 | 2131 |         if test "$RANLIB" = "" ; then | 
|---|
 | 2132 |             MAKE_LIB='$(STLIB_LD) [$]@ ${OBJS}' | 
|---|
 | 2133 |             INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE)' | 
|---|
 | 2134 |         else | 
|---|
 | 2135 |             MAKE_LIB='${STLIB_LD} [$]@ ${OBJS} ; ${RANLIB} [$]@' | 
|---|
 | 2136 |             INSTALL_LIB='$(INSTALL_LIBRARY) $(LIB_FILE) $(LIB_INSTALL_DIR)/$(LIB_FILE) ; (cd $(LIB_INSTALL_DIR) ; $(RANLIB) $(LIB_FILE))' | 
|---|
 | 2137 |         fi | 
|---|
 | 2138 |  | 
|---|
 | 2139 | dnl        Not at all clear what this was doing in Tcl's configure.ac | 
|---|
 | 2140 | dnl        or why it was needed was needed. In any event, this sort of | 
|---|
 | 2141 | dnl        things needs to be done in the big loop above. | 
|---|
 | 2142 | dnl        REMOVE THIS BLOCK LATER! (mdejong) | 
|---|
 | 2143 | dnl        case $system in | 
|---|
 | 2144 | dnl            BSD/OS*) | 
|---|
 | 2145 | dnl                ;; | 
|---|
 | 2146 | dnl            AIX-[[1-4]].*) | 
|---|
 | 2147 | dnl                ;; | 
|---|
 | 2148 | dnl            *) | 
|---|
 | 2149 | dnl                SHLIB_LD_LIBS="" | 
|---|
 | 2150 | dnl                ;; | 
|---|
 | 2151 | dnl        esac | 
|---|
 | 2152 |     fi | 
|---|
 | 2153 |  | 
|---|
 | 2154 |  | 
|---|
 | 2155 |     # Stub lib does not depend on shared/static configuration | 
|---|
 | 2156 |     if test "$RANLIB" = "" ; then | 
|---|
 | 2157 |         MAKE_STUB_LIB='${STLIB_LD} [$]@ ${STUB_LIB_OBJS}' | 
|---|
 | 2158 |         INSTALL_STUB_LIB='$(INSTALL_LIBRARY) $(STUB_LIB_FILE) $(LIB_INSTALL_DIR)/$(STUB_LIB_FILE)' | 
|---|
 | 2159 |     else | 
|---|
 | 2160 |         MAKE_STUB_LIB='${STLIB_LD} [$]@ ${STUB_LIB_OBJS} ; ${RANLIB} [$]@' | 
|---|
 | 2161 |         INSTALL_STUB_LIB='$(INSTALL_LIBRARY) $(STUB_LIB_FILE) $(LIB_INSTALL_DIR)/$(STUB_LIB_FILE) ; (cd $(LIB_INSTALL_DIR) ; $(RANLIB) $(STUB_LIB_FILE))' | 
|---|
 | 2162 |     fi | 
|---|
 | 2163 |  | 
|---|
 | 2164 |  | 
|---|
 | 2165 |     AC_SUBST(DL_LIBS) | 
|---|
 | 2166 |  | 
|---|
 | 2167 |     AC_SUBST(DL_OBJS) | 
|---|
 | 2168 |     AC_SUBST(PLAT_OBJS) | 
|---|
 | 2169 |     AC_SUBST(PLAT_SRCS) | 
|---|
 | 2170 |     AC_SUBST(CFLAGS) | 
|---|
 | 2171 |     AC_SUBST(CFLAGS_DEBUG) | 
|---|
 | 2172 |     AC_SUBST(CFLAGS_OPTIMIZE) | 
|---|
 | 2173 |     AC_SUBST(CFLAGS_WARNING) | 
|---|
 | 2174 |  | 
|---|
 | 2175 |     AC_SUBST(LDFLAGS) | 
|---|
 | 2176 |     AC_SUBST(LDFLAGS_DEBUG) | 
|---|
 | 2177 |     AC_SUBST(LDFLAGS_OPTIMIZE) | 
|---|
 | 2178 |     AC_SUBST(CC_SEARCH_FLAGS) | 
|---|
 | 2179 |     AC_SUBST(LD_SEARCH_FLAGS) | 
|---|
 | 2180 |  | 
|---|
 | 2181 |     AC_SUBST(STLIB_LD) | 
|---|
 | 2182 |     AC_SUBST(SHLIB_LD) | 
|---|
 | 2183 |     AC_SUBST(TCL_SHLIB_LD_EXTRAS) | 
|---|
 | 2184 |     AC_SUBST(TK_SHLIB_LD_EXTRAS) | 
|---|
 | 2185 |     AC_SUBST(SHLIB_LD_LIBS) | 
|---|
 | 2186 |     AC_SUBST(SHLIB_CFLAGS) | 
|---|
 | 2187 |     AC_SUBST(SHLIB_SUFFIX) | 
|---|
 | 2188 |  | 
|---|
 | 2189 |     AC_SUBST(MAKE_LIB) | 
|---|
 | 2190 |     AC_SUBST(MAKE_STUB_LIB) | 
|---|
 | 2191 |     AC_SUBST(INSTALL_LIB) | 
|---|
 | 2192 |     AC_SUBST(INSTALL_STUB_LIB) | 
|---|
 | 2193 |     AC_SUBST(RANLIB) | 
|---|
 | 2194 | ]) | 
|---|
 | 2195 |  | 
|---|
 | 2196 | #-------------------------------------------------------------------- | 
|---|
 | 2197 | # SC_SERIAL_PORT | 
|---|
 | 2198 | # | 
|---|
 | 2199 | #       Determine which interface to use to talk to the serial port. | 
|---|
 | 2200 | #       Note that #include lines must begin in leftmost column for | 
|---|
 | 2201 | #       some compilers to recognize them as preprocessor directives, | 
|---|
 | 2202 | #       and some build environments have stdin not pointing at a | 
|---|
 | 2203 | #       pseudo-terminal (usually /dev/null instead.) | 
|---|
 | 2204 | # | 
|---|
 | 2205 | # Arguments: | 
|---|
 | 2206 | #       none | 
|---|
 | 2207 | #        | 
|---|
 | 2208 | # Results: | 
|---|
 | 2209 | # | 
|---|
 | 2210 | #       Defines only one of the following vars: | 
|---|
 | 2211 | #               HAVE_SYS_MODEM_H | 
|---|
 | 2212 | #               USE_TERMIOS | 
|---|
 | 2213 | #               USE_TERMIO | 
|---|
 | 2214 | #               USE_SGTTY | 
|---|
 | 2215 | # | 
|---|
 | 2216 | #-------------------------------------------------------------------- | 
|---|
 | 2217 |  | 
|---|
 | 2218 | AC_DEFUN([SC_SERIAL_PORT], [ | 
|---|
 | 2219 |     AC_CHECK_HEADERS(sys/modem.h) | 
|---|
 | 2220 |     AC_CACHE_CHECK([termios vs. termio vs. sgtty], tcl_cv_api_serial, [ | 
|---|
 | 2221 |     AC_TRY_RUN([ | 
|---|
 | 2222 | #include <termios.h> | 
|---|
 | 2223 |  | 
|---|
 | 2224 | int main() { | 
|---|
 | 2225 |     struct termios t; | 
|---|
 | 2226 |     if (tcgetattr(0, &t) == 0) { | 
|---|
 | 2227 |         cfsetospeed(&t, 0); | 
|---|
 | 2228 |         t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB; | 
|---|
 | 2229 |         return 0; | 
|---|
 | 2230 |     } | 
|---|
 | 2231 |     return 1; | 
|---|
 | 2232 | }], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no) | 
|---|
 | 2233 |     if test $tcl_cv_api_serial = no ; then | 
|---|
 | 2234 |         AC_TRY_RUN([ | 
|---|
 | 2235 | #include <termio.h> | 
|---|
 | 2236 |  | 
|---|
 | 2237 | int main() { | 
|---|
 | 2238 |     struct termio t; | 
|---|
 | 2239 |     if (ioctl(0, TCGETA, &t) == 0) { | 
|---|
 | 2240 |         t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB; | 
|---|
 | 2241 |         return 0; | 
|---|
 | 2242 |     } | 
|---|
 | 2243 |     return 1; | 
|---|
 | 2244 | }], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no) | 
|---|
 | 2245 |     fi | 
|---|
 | 2246 |     if test $tcl_cv_api_serial = no ; then | 
|---|
 | 2247 |         AC_TRY_RUN([ | 
|---|
 | 2248 | #include <sgtty.h> | 
|---|
 | 2249 |  | 
|---|
 | 2250 | int main() { | 
|---|
 | 2251 |     struct sgttyb t; | 
|---|
 | 2252 |     if (ioctl(0, TIOCGETP, &t) == 0) { | 
|---|
 | 2253 |         t.sg_ospeed = 0; | 
|---|
 | 2254 |         t.sg_flags |= ODDP | EVENP | RAW; | 
|---|
 | 2255 |         return 0; | 
|---|
 | 2256 |     } | 
|---|
 | 2257 |     return 1; | 
|---|
 | 2258 | }], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=no, tcl_cv_api_serial=no) | 
|---|
 | 2259 |     fi | 
|---|
 | 2260 |     if test $tcl_cv_api_serial = no ; then | 
|---|
 | 2261 |         AC_TRY_RUN([ | 
|---|
 | 2262 | #include <termios.h> | 
|---|
 | 2263 | #include <errno.h> | 
|---|
 | 2264 |  | 
|---|
 | 2265 | int main() { | 
|---|
 | 2266 |     struct termios t; | 
|---|
 | 2267 |     if (tcgetattr(0, &t) == 0 | 
|---|
 | 2268 |         || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { | 
|---|
 | 2269 |         cfsetospeed(&t, 0); | 
|---|
 | 2270 |         t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB; | 
|---|
 | 2271 |         return 0; | 
|---|
 | 2272 |     } | 
|---|
 | 2273 |     return 1; | 
|---|
 | 2274 | }], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no) | 
|---|
 | 2275 |     fi | 
|---|
 | 2276 |     if test $tcl_cv_api_serial = no; then | 
|---|
 | 2277 |         AC_TRY_RUN([ | 
|---|
 | 2278 | #include <termio.h> | 
|---|
 | 2279 | #include <errno.h> | 
|---|
 | 2280 |  | 
|---|
 | 2281 | int main() { | 
|---|
 | 2282 |     struct termio t; | 
|---|
 | 2283 |     if (ioctl(0, TCGETA, &t) == 0 | 
|---|
 | 2284 |         || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { | 
|---|
 | 2285 |         t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB; | 
|---|
 | 2286 |         return 0; | 
|---|
 | 2287 |     } | 
|---|
 | 2288 |     return 1; | 
|---|
 | 2289 |     }], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no) | 
|---|
 | 2290 |     fi | 
|---|
 | 2291 |     if test $tcl_cv_api_serial = no; then | 
|---|
 | 2292 |         AC_TRY_RUN([ | 
|---|
 | 2293 | #include <sgtty.h> | 
|---|
 | 2294 | #include <errno.h> | 
|---|
 | 2295 |  | 
|---|
 | 2296 | int main() { | 
|---|
 | 2297 |     struct sgttyb t; | 
|---|
 | 2298 |     if (ioctl(0, TIOCGETP, &t) == 0 | 
|---|
 | 2299 |         || errno == ENOTTY || errno == ENXIO || errno == EINVAL) { | 
|---|
 | 2300 |         t.sg_ospeed = 0; | 
|---|
 | 2301 |         t.sg_flags |= ODDP | EVENP | RAW; | 
|---|
 | 2302 |         return 0; | 
|---|
 | 2303 |     } | 
|---|
 | 2304 |     return 1; | 
|---|
 | 2305 | }], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=none, tcl_cv_api_serial=none) | 
|---|
 | 2306 |     fi]) | 
|---|
 | 2307 |     case $tcl_cv_api_serial in | 
|---|
 | 2308 |         termios) AC_DEFINE(USE_TERMIOS);; | 
|---|
 | 2309 |         termio)  AC_DEFINE(USE_TERMIO);; | 
|---|
 | 2310 |         sgtty)   AC_DEFINE(USE_SGTTY);; | 
|---|
 | 2311 |     esac | 
|---|
 | 2312 | ]) | 
|---|
 | 2313 |  | 
|---|
 | 2314 | #-------------------------------------------------------------------- | 
|---|
 | 2315 | # SC_MISSING_POSIX_HEADERS | 
|---|
 | 2316 | # | 
|---|
 | 2317 | #       Supply substitutes for missing POSIX header files.  Special | 
|---|
 | 2318 | #       notes: | 
|---|
 | 2319 | #           - stdlib.h doesn't define strtol, strtoul, or | 
|---|
 | 2320 | #             strtod insome versions of SunOS | 
|---|
 | 2321 | #           - some versions of string.h don't declare procedures such | 
|---|
 | 2322 | #             as strstr | 
|---|
 | 2323 | # | 
|---|
 | 2324 | # Arguments: | 
|---|
 | 2325 | #       none | 
|---|
 | 2326 | #        | 
|---|
 | 2327 | # Results: | 
|---|
 | 2328 | # | 
|---|
 | 2329 | #       Defines some of the following vars: | 
|---|
 | 2330 | #               NO_DIRENT_H | 
|---|
 | 2331 | #               NO_ERRNO_H | 
|---|
 | 2332 | #               NO_VALUES_H | 
|---|
 | 2333 | #               HAVE_LIMITS_H or NO_LIMITS_H | 
|---|
 | 2334 | #               NO_STDLIB_H | 
|---|
 | 2335 | #               NO_STRING_H | 
|---|
 | 2336 | #               NO_SYS_WAIT_H | 
|---|
 | 2337 | #               NO_DLFCN_H | 
|---|
 | 2338 | #               HAVE_UNISTD_H | 
|---|
 | 2339 | #               HAVE_SYS_PARAM_H | 
|---|
 | 2340 | # | 
|---|
 | 2341 | #               HAVE_STRING_H ? | 
|---|
 | 2342 | # | 
|---|
 | 2343 | #-------------------------------------------------------------------- | 
|---|
 | 2344 |  | 
|---|
 | 2345 | AC_DEFUN([SC_MISSING_POSIX_HEADERS], [ | 
|---|
 | 2346 |     AC_CACHE_CHECK([dirent.h], tcl_cv_dirent_h, [ | 
|---|
 | 2347 |     AC_TRY_LINK([#include <sys/types.h> | 
|---|
 | 2348 | #include <dirent.h>], [ | 
|---|
 | 2349 | #ifndef _POSIX_SOURCE | 
|---|
 | 2350 | #   ifdef __Lynx__ | 
|---|
 | 2351 |         /* | 
|---|
 | 2352 |          * Generate compilation error to make the test fail:  Lynx headers | 
|---|
 | 2353 |          * are only valid if really in the POSIX environment. | 
|---|
 | 2354 |          */ | 
|---|
 | 2355 |  | 
|---|
 | 2356 |         missing_procedure(); | 
|---|
 | 2357 | #   endif | 
|---|
 | 2358 | #endif | 
|---|
 | 2359 | DIR *d; | 
|---|
 | 2360 | struct dirent *entryPtr; | 
|---|
 | 2361 | char *p; | 
|---|
 | 2362 | d = opendir("foobar"); | 
|---|
 | 2363 | entryPtr = readdir(d); | 
|---|
 | 2364 | p = entryPtr->d_name; | 
|---|
 | 2365 | closedir(d); | 
|---|
 | 2366 | ], tcl_cv_dirent_h=yes, tcl_cv_dirent_h=no)]) | 
|---|
 | 2367 |  | 
|---|
 | 2368 |     if test $tcl_cv_dirent_h = no; then | 
|---|
 | 2369 |         AC_DEFINE(NO_DIRENT_H) | 
|---|
 | 2370 |     fi | 
|---|
 | 2371 |  | 
|---|
 | 2372 |     AC_CHECK_HEADER(errno.h, , [AC_DEFINE(NO_ERRNO_H)]) | 
|---|
 | 2373 |     AC_CHECK_HEADER(float.h, , [AC_DEFINE(NO_FLOAT_H)]) | 
|---|
 | 2374 |     AC_CHECK_HEADER(values.h, , [AC_DEFINE(NO_VALUES_H)]) | 
|---|
 | 2375 |     AC_CHECK_HEADER(limits.h, | 
|---|
 | 2376 |         [AC_DEFINE(HAVE_LIMITS_H)], [AC_DEFINE(NO_LIMITS_H)]) | 
|---|
 | 2377 |     AC_CHECK_HEADER(stdlib.h, tcl_ok=1, tcl_ok=0) | 
|---|
 | 2378 |     AC_EGREP_HEADER(strtol, stdlib.h, , tcl_ok=0) | 
|---|
 | 2379 |     AC_EGREP_HEADER(strtoul, stdlib.h, , tcl_ok=0) | 
|---|
 | 2380 |     AC_EGREP_HEADER(strtod, stdlib.h, , tcl_ok=0) | 
|---|
 | 2381 |     if test $tcl_ok = 0; then | 
|---|
 | 2382 |         AC_DEFINE(NO_STDLIB_H) | 
|---|
 | 2383 |     fi | 
|---|
 | 2384 |     AC_CHECK_HEADER(string.h, tcl_ok=1, tcl_ok=0) | 
|---|
 | 2385 |     AC_EGREP_HEADER(strstr, string.h, , tcl_ok=0) | 
|---|
 | 2386 |     AC_EGREP_HEADER(strerror, string.h, , tcl_ok=0) | 
|---|
 | 2387 |  | 
|---|
 | 2388 |     # See also memmove check below for a place where NO_STRING_H can be | 
|---|
 | 2389 |     # set and why. | 
|---|
 | 2390 |  | 
|---|
 | 2391 |     if test $tcl_ok = 0; then | 
|---|
 | 2392 |         AC_DEFINE(NO_STRING_H) | 
|---|
 | 2393 |     fi | 
|---|
 | 2394 |  | 
|---|
 | 2395 |     AC_CHECK_HEADER(sys/wait.h, , [AC_DEFINE(NO_SYS_WAIT_H)]) | 
|---|
 | 2396 |     AC_CHECK_HEADER(dlfcn.h, , [AC_DEFINE(NO_DLFCN_H)]) | 
|---|
 | 2397 |  | 
|---|
 | 2398 |     # OS/390 lacks sys/param.h (and doesn't need it, by chance). | 
|---|
 | 2399 |     AC_HAVE_HEADERS(unistd.h sys/param.h) | 
|---|
 | 2400 | ]) | 
|---|
 | 2401 |  | 
|---|
 | 2402 | #-------------------------------------------------------------------- | 
|---|
 | 2403 | # SC_PATH_X | 
|---|
 | 2404 | # | 
|---|
 | 2405 | #       Locate the X11 header files and the X11 library archive.  Try | 
|---|
 | 2406 | #       the ac_path_x macro first, but if it doesn't find the X stuff | 
|---|
 | 2407 | #       (e.g. because there's no xmkmf program) then check through | 
|---|
 | 2408 | #       a list of possible directories.  Under some conditions the | 
|---|
 | 2409 | #       autoconf macro will return an include directory that contains | 
|---|
 | 2410 | #       no include files, so double-check its result just to be safe. | 
|---|
 | 2411 | # | 
|---|
 | 2412 | # Arguments: | 
|---|
 | 2413 | #       none | 
|---|
 | 2414 | #        | 
|---|
 | 2415 | # Results: | 
|---|
 | 2416 | # | 
|---|
 | 2417 | #       Sets the the following vars: | 
|---|
 | 2418 | #               XINCLUDES | 
|---|
 | 2419 | #               XLIBSW | 
|---|
 | 2420 | # | 
|---|
 | 2421 | #-------------------------------------------------------------------- | 
|---|
 | 2422 |  | 
|---|
 | 2423 | AC_DEFUN([SC_PATH_X], [ | 
|---|
 | 2424 |     AC_PATH_X | 
|---|
 | 2425 |     not_really_there="" | 
|---|
 | 2426 |     if test "$no_x" = ""; then | 
|---|
 | 2427 |         if test "$x_includes" = ""; then | 
|---|
 | 2428 |             AC_TRY_CPP([#include <X11/XIntrinsic.h>], , not_really_there="yes") | 
|---|
 | 2429 |         else | 
|---|
 | 2430 |             if test ! -r $x_includes/X11/Intrinsic.h; then | 
|---|
 | 2431 |                 not_really_there="yes" | 
|---|
 | 2432 |             fi | 
|---|
 | 2433 |         fi | 
|---|
 | 2434 |     fi | 
|---|
 | 2435 |     if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then | 
|---|
 | 2436 |         AC_MSG_CHECKING([for X11 header files]) | 
|---|
 | 2437 |         found_xincludes="no" | 
|---|
 | 2438 |         AC_TRY_CPP([#include <X11/Intrinsic.h>], found_xincludes="yes", found_xincludes="no") | 
|---|
 | 2439 |         if test "$found_xincludes" = "no"; then | 
|---|
 | 2440 |             dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/X11R6/include /usr/X11R5/include /usr/include/X11R5 /usr/include/X11R4 /usr/openwin/include /usr/X11/include /usr/sww/include" | 
|---|
 | 2441 |             for i in $dirs ; do | 
|---|
 | 2442 |                 if test -r $i/X11/Intrinsic.h; then | 
|---|
 | 2443 |                     AC_MSG_RESULT([$i]) | 
|---|
 | 2444 |                     XINCLUDES=" -I$i" | 
|---|
 | 2445 |                     found_xincludes="yes" | 
|---|
 | 2446 |                     break | 
|---|
 | 2447 |                 fi | 
|---|
 | 2448 |             done | 
|---|
 | 2449 |         fi | 
|---|
 | 2450 |     else | 
|---|
 | 2451 |         if test "$x_includes" != ""; then | 
|---|
 | 2452 |             XINCLUDES="-I$x_includes" | 
|---|
 | 2453 |             found_xincludes="yes" | 
|---|
 | 2454 |         fi | 
|---|
 | 2455 |     fi | 
|---|
 | 2456 |     if test found_xincludes = "no"; then | 
|---|
 | 2457 |         AC_MSG_RESULT([couldn't find any!]) | 
|---|
 | 2458 |     fi | 
|---|
 | 2459 |  | 
|---|
 | 2460 |     if test "$no_x" = yes; then | 
|---|
 | 2461 |         AC_MSG_CHECKING([for X11 libraries]) | 
|---|
 | 2462 |         XLIBSW=nope | 
|---|
 | 2463 |         dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/X11R6/lib /usr/X11R5/lib /usr/lib/X11R5 /usr/lib/X11R4 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib" | 
|---|
 | 2464 |         for i in $dirs ; do | 
|---|
 | 2465 |             if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl; then | 
|---|
 | 2466 |                 AC_MSG_RESULT([$i]) | 
|---|
 | 2467 |                 XLIBSW="-L$i -lX11" | 
|---|
 | 2468 |                 x_libraries="$i" | 
|---|
 | 2469 |                 break | 
|---|
 | 2470 |             fi | 
|---|
 | 2471 |         done | 
|---|
 | 2472 |     else | 
|---|
 | 2473 |         if test "$x_libraries" = ""; then | 
|---|
 | 2474 |             XLIBSW=-lX11 | 
|---|
 | 2475 |         else | 
|---|
 | 2476 |             XLIBSW="-L$x_libraries -lX11" | 
|---|
 | 2477 |         fi | 
|---|
 | 2478 |     fi | 
|---|
 | 2479 |     if test "$XLIBSW" = nope ; then | 
|---|
 | 2480 |         AC_CHECK_LIB(Xwindow, XCreateWindow, XLIBSW=-lXwindow) | 
|---|
 | 2481 |     fi | 
|---|
 | 2482 |     if test "$XLIBSW" = nope ; then | 
|---|
 | 2483 |         AC_MSG_RESULT([could not find any!  Using -lX11.]) | 
|---|
 | 2484 |         XLIBSW=-lX11 | 
|---|
 | 2485 |     fi | 
|---|
 | 2486 | ]) | 
|---|
 | 2487 |  | 
|---|
 | 2488 | #-------------------------------------------------------------------- | 
|---|
 | 2489 | # SC_BLOCKING_STYLE | 
|---|
 | 2490 | # | 
|---|
 | 2491 | #       The statements below check for systems where POSIX-style | 
|---|
 | 2492 | #       non-blocking I/O (O_NONBLOCK) doesn't work or is unimplemented.  | 
|---|
 | 2493 | #       On these systems (mostly older ones), use the old BSD-style | 
|---|
 | 2494 | #       FIONBIO approach instead. | 
|---|
 | 2495 | # | 
|---|
 | 2496 | # Arguments: | 
|---|
 | 2497 | #       none | 
|---|
 | 2498 | #        | 
|---|
 | 2499 | # Results: | 
|---|
 | 2500 | # | 
|---|
 | 2501 | #       Defines some of the following vars: | 
|---|
 | 2502 | #               HAVE_SYS_IOCTL_H | 
|---|
 | 2503 | #               HAVE_SYS_FILIO_H | 
|---|
 | 2504 | #               USE_FIONBIO | 
|---|
 | 2505 | #               O_NONBLOCK | 
|---|
 | 2506 | # | 
|---|
 | 2507 | #-------------------------------------------------------------------- | 
|---|
 | 2508 |  | 
|---|
 | 2509 | AC_DEFUN([SC_BLOCKING_STYLE], [ | 
|---|
 | 2510 |     AC_CHECK_HEADERS(sys/ioctl.h) | 
|---|
 | 2511 |     AC_CHECK_HEADERS(sys/filio.h) | 
|---|
 | 2512 |     SC_CONFIG_SYSTEM | 
|---|
 | 2513 |     AC_MSG_CHECKING([FIONBIO vs. O_NONBLOCK for nonblocking I/O]) | 
|---|
 | 2514 |     case $system in | 
|---|
 | 2515 |         # There used to be code here to use FIONBIO under AIX.  However, it | 
|---|
 | 2516 |         # was reported that FIONBIO doesn't work under AIX 3.2.5.  Since | 
|---|
 | 2517 |         # using O_NONBLOCK seems fine under AIX 4.*, I removed the FIONBIO | 
|---|
 | 2518 |         # code (JO, 5/31/97). | 
|---|
 | 2519 |  | 
|---|
 | 2520 |         OSF*) | 
|---|
 | 2521 |             AC_DEFINE(USE_FIONBIO) | 
|---|
 | 2522 |             AC_MSG_RESULT([FIONBIO]) | 
|---|
 | 2523 |             ;; | 
|---|
 | 2524 |         SunOS-4*) | 
|---|
 | 2525 |             AC_DEFINE(USE_FIONBIO) | 
|---|
 | 2526 |             AC_MSG_RESULT([FIONBIO]) | 
|---|
 | 2527 |             ;; | 
|---|
 | 2528 |         ULTRIX-4.*) | 
|---|
 | 2529 |             AC_DEFINE(USE_FIONBIO) | 
|---|
 | 2530 |             AC_MSG_RESULT([FIONBIO]) | 
|---|
 | 2531 |             ;; | 
|---|
 | 2532 |         *) | 
|---|
 | 2533 |             AC_MSG_RESULT([O_NONBLOCK]) | 
|---|
 | 2534 |             ;; | 
|---|
 | 2535 |     esac | 
|---|
 | 2536 | ]) | 
|---|
 | 2537 |  | 
|---|
 | 2538 | #-------------------------------------------------------------------- | 
|---|
 | 2539 | # SC_TIME_HANLDER | 
|---|
 | 2540 | # | 
|---|
 | 2541 | #       Checks how the system deals with time.h, what time structures | 
|---|
 | 2542 | #       are used on the system, and what fields the structures have. | 
|---|
 | 2543 | # | 
|---|
 | 2544 | # Arguments: | 
|---|
 | 2545 | #       none | 
|---|
 | 2546 | #        | 
|---|
 | 2547 | # Results: | 
|---|
 | 2548 | # | 
|---|
 | 2549 | #       Defines some of the following vars: | 
|---|
 | 2550 | #               USE_DELTA_FOR_TZ | 
|---|
 | 2551 | #               HAVE_TM_GMTOFF | 
|---|
 | 2552 | #               HAVE_TM_TZADJ | 
|---|
 | 2553 | #               HAVE_TIMEZONE_VAR | 
|---|
 | 2554 | # | 
|---|
 | 2555 | #-------------------------------------------------------------------- | 
|---|
 | 2556 |  | 
|---|
 | 2557 | AC_DEFUN([SC_TIME_HANDLER], [ | 
|---|
 | 2558 |     AC_CHECK_HEADERS(sys/time.h) | 
|---|
 | 2559 |     AC_HEADER_TIME | 
|---|
 | 2560 |     AC_STRUCT_TIMEZONE | 
|---|
 | 2561 |  | 
|---|
 | 2562 |     AC_CHECK_FUNCS(gmtime_r localtime_r) | 
|---|
 | 2563 |  | 
|---|
 | 2564 |     AC_CACHE_CHECK([tm_tzadj in struct tm], tcl_cv_member_tm_tzadj, [ | 
|---|
 | 2565 |         AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_tzadj;], | 
|---|
 | 2566 |             tcl_cv_member_tm_tzadj=yes, tcl_cv_member_tm_tzadj=no)]) | 
|---|
 | 2567 |     if test $tcl_cv_member_tm_tzadj = yes ; then | 
|---|
 | 2568 |         AC_DEFINE(HAVE_TM_TZADJ) | 
|---|
 | 2569 |     fi | 
|---|
 | 2570 |  | 
|---|
 | 2571 |     AC_CACHE_CHECK([tm_gmtoff in struct tm], tcl_cv_member_tm_gmtoff, [ | 
|---|
 | 2572 |         AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_gmtoff;], | 
|---|
 | 2573 |             tcl_cv_member_tm_gmtoff=yes, tcl_cv_member_tm_gmtoff=no)]) | 
|---|
 | 2574 |     if test $tcl_cv_member_tm_gmtoff = yes ; then | 
|---|
 | 2575 |         AC_DEFINE(HAVE_TM_GMTOFF) | 
|---|
 | 2576 |     fi | 
|---|
 | 2577 |  | 
|---|
 | 2578 |     # | 
|---|
 | 2579 |     # Its important to include time.h in this check, as some systems | 
|---|
 | 2580 |     # (like convex) have timezone functions, etc. | 
|---|
 | 2581 |     # | 
|---|
 | 2582 |     AC_CACHE_CHECK([long timezone variable], tcl_cv_timezone_long, [ | 
|---|
 | 2583 |         AC_TRY_COMPILE([#include <time.h>], | 
|---|
 | 2584 |             [extern long timezone; | 
|---|
 | 2585 |             timezone += 1; | 
|---|
 | 2586 |             exit (0);], | 
|---|
 | 2587 |             tcl_cv_timezone_long=yes, tcl_cv_timezone_long=no)]) | 
|---|
 | 2588 |     if test $tcl_cv_timezone_long = yes ; then | 
|---|
 | 2589 |         AC_DEFINE(HAVE_TIMEZONE_VAR) | 
|---|
 | 2590 |     else | 
|---|
 | 2591 |         # | 
|---|
 | 2592 |         # On some systems (eg IRIX 6.2), timezone is a time_t and not a long. | 
|---|
 | 2593 |         # | 
|---|
 | 2594 |         AC_CACHE_CHECK([time_t timezone variable], tcl_cv_timezone_time, [ | 
|---|
 | 2595 |             AC_TRY_COMPILE([#include <time.h>], | 
|---|
 | 2596 |                 [extern time_t timezone; | 
|---|
 | 2597 |                 timezone += 1; | 
|---|
 | 2598 |                 exit (0);], | 
|---|
 | 2599 |                 tcl_cv_timezone_time=yes, tcl_cv_timezone_time=no)]) | 
|---|
 | 2600 |         if test $tcl_cv_timezone_time = yes ; then | 
|---|
 | 2601 |             AC_DEFINE(HAVE_TIMEZONE_VAR) | 
|---|
 | 2602 |         fi | 
|---|
 | 2603 |     fi | 
|---|
 | 2604 | ]) | 
|---|
 | 2605 |  | 
|---|
 | 2606 | #-------------------------------------------------------------------- | 
|---|
 | 2607 | # SC_BUGGY_STRTOD | 
|---|
 | 2608 | # | 
|---|
 | 2609 | #       Under Solaris 2.4, strtod returns the wrong value for the | 
|---|
 | 2610 | #       terminating character under some conditions.  Check for this | 
|---|
 | 2611 | #       and if the problem exists use a substitute procedure | 
|---|
 | 2612 | #       "fixstrtod" (provided by Tcl) that corrects the error. | 
|---|
 | 2613 | #       Also, on Compaq's Tru64 Unix 5.0, | 
|---|
 | 2614 | #       strtod(" ") returns 0.0 instead of a failure to convert. | 
|---|
 | 2615 | # | 
|---|
 | 2616 | # Arguments: | 
|---|
 | 2617 | #       none | 
|---|
 | 2618 | #        | 
|---|
 | 2619 | # Results: | 
|---|
 | 2620 | # | 
|---|
 | 2621 | #       Might defines some of the following vars: | 
|---|
 | 2622 | #               strtod (=fixstrtod) | 
|---|
 | 2623 | # | 
|---|
 | 2624 | #-------------------------------------------------------------------- | 
|---|
 | 2625 |  | 
|---|
 | 2626 | AC_DEFUN([SC_BUGGY_STRTOD], [ | 
|---|
 | 2627 |     AC_CHECK_FUNC(strtod, tcl_strtod=1, tcl_strtod=0) | 
|---|
 | 2628 |     if test "$tcl_strtod" = 1; then | 
|---|
 | 2629 |         AC_CACHE_CHECK([for Solaris2.4/Tru64 strtod bugs], tcl_cv_strtod_buggy,[ | 
|---|
 | 2630 |             AC_TRY_RUN([ | 
|---|
 | 2631 |                 extern double strtod(); | 
|---|
 | 2632 |                 int main() { | 
|---|
 | 2633 |                     char *infString="Inf", *nanString="NaN", *spaceString=" "; | 
|---|
 | 2634 |                     char *term; | 
|---|
 | 2635 |                     double value; | 
|---|
 | 2636 |                     value = strtod(infString, &term); | 
|---|
 | 2637 |                     if ((term != infString) && (term[-1] == 0)) { | 
|---|
 | 2638 |                         exit(1); | 
|---|
 | 2639 |                     } | 
|---|
 | 2640 |                     value = strtod(nanString, &term); | 
|---|
 | 2641 |                     if ((term != nanString) && (term[-1] == 0)) { | 
|---|
 | 2642 |                         exit(1); | 
|---|
 | 2643 |                     } | 
|---|
 | 2644 |                     value = strtod(spaceString, &term); | 
|---|
 | 2645 |                     if (term == (spaceString+1)) { | 
|---|
 | 2646 |                         exit(1); | 
|---|
 | 2647 |                     } | 
|---|
 | 2648 |                     exit(0); | 
|---|
 | 2649 |                 }], tcl_cv_strtod_buggy=ok, tcl_cv_strtod_buggy=buggy, | 
|---|
 | 2650 |                     tcl_cv_strtod_buggy=buggy)]) | 
|---|
 | 2651 |         if test "$tcl_cv_strtod_buggy" = buggy; then | 
|---|
 | 2652 |             LIBOBJS="$LIBOBJS fixstrtod.o" | 
|---|
 | 2653 |             AC_DEFINE(strtod, fixstrtod) | 
|---|
 | 2654 |         fi | 
|---|
 | 2655 |     fi | 
|---|
 | 2656 | ]) | 
|---|
 | 2657 |  | 
|---|
 | 2658 | #-------------------------------------------------------------------- | 
|---|
 | 2659 | # SC_TCL_LINK_LIBS | 
|---|
 | 2660 | # | 
|---|
 | 2661 | #       Search for the libraries needed to link the Tcl shell. | 
|---|
 | 2662 | #       Things like the math library (-lm) and socket stuff (-lsocket vs. | 
|---|
 | 2663 | #       -lnsl) are dealt with here. | 
|---|
 | 2664 | # | 
|---|
 | 2665 | # Arguments: | 
|---|
 | 2666 | #       Requires the following vars to be set in the Makefile: | 
|---|
 | 2667 | #               DL_LIBS | 
|---|
 | 2668 | #               LIBS | 
|---|
 | 2669 | #               MATH_LIBS | 
|---|
 | 2670 | #        | 
|---|
 | 2671 | # Results: | 
|---|
 | 2672 | # | 
|---|
 | 2673 | #       Subst's the following var: | 
|---|
 | 2674 | #               TCL_LIBS | 
|---|
 | 2675 | #               MATH_LIBS | 
|---|
 | 2676 | # | 
|---|
 | 2677 | #       Might append to the following vars: | 
|---|
 | 2678 | #               LIBS | 
|---|
 | 2679 | # | 
|---|
 | 2680 | #       Might define the following vars: | 
|---|
 | 2681 | #               HAVE_NET_ERRNO_H | 
|---|
 | 2682 | # | 
|---|
 | 2683 | #-------------------------------------------------------------------- | 
|---|
 | 2684 |  | 
|---|
 | 2685 | AC_DEFUN([SC_TCL_LINK_LIBS], [ | 
|---|
 | 2686 |     #-------------------------------------------------------------------- | 
|---|
 | 2687 |     # On a few very rare systems, all of the libm.a stuff is | 
|---|
 | 2688 |     # already in libc.a.  Set compiler flags accordingly. | 
|---|
 | 2689 |     # Also, Linux requires the "ieee" library for math to work | 
|---|
 | 2690 |     # right (and it must appear before "-lm"). | 
|---|
 | 2691 |     #-------------------------------------------------------------------- | 
|---|
 | 2692 |  | 
|---|
 | 2693 |     AC_CHECK_FUNC(sin, MATH_LIBS="", MATH_LIBS="-lm") | 
|---|
 | 2694 |     AC_CHECK_LIB(ieee, main, [MATH_LIBS="-lieee $MATH_LIBS"]) | 
|---|
 | 2695 |  | 
|---|
 | 2696 |     #-------------------------------------------------------------------- | 
|---|
 | 2697 |     # Interactive UNIX requires -linet instead of -lsocket, plus it | 
|---|
 | 2698 |     # needs net/errno.h to define the socket-related error codes. | 
|---|
 | 2699 |     #-------------------------------------------------------------------- | 
|---|
 | 2700 |  | 
|---|
 | 2701 |     AC_CHECK_LIB(inet, main, [LIBS="$LIBS -linet"]) | 
|---|
 | 2702 |     AC_CHECK_HEADER(net/errno.h, [AC_DEFINE(HAVE_NET_ERRNO_H)]) | 
|---|
 | 2703 |  | 
|---|
 | 2704 |     #-------------------------------------------------------------------- | 
|---|
 | 2705 |     #   Check for the existence of the -lsocket and -lnsl libraries. | 
|---|
 | 2706 |     #   The order here is important, so that they end up in the right | 
|---|
 | 2707 |     #   order in the command line generated by make.  Here are some | 
|---|
 | 2708 |     #   special considerations: | 
|---|
 | 2709 |     #   1. Use "connect" and "accept" to check for -lsocket, and | 
|---|
 | 2710 |     #      "gethostbyname" to check for -lnsl. | 
|---|
 | 2711 |     #   2. Use each function name only once:  can't redo a check because | 
|---|
 | 2712 |     #      autoconf caches the results of the last check and won't redo it. | 
|---|
 | 2713 |     #   3. Use -lnsl and -lsocket only if they supply procedures that | 
|---|
 | 2714 |     #      aren't already present in the normal libraries.  This is because | 
|---|
 | 2715 |     #      IRIX 5.2 has libraries, but they aren't needed and they're | 
|---|
 | 2716 |     #      bogus:  they goof up name resolution if used. | 
|---|
 | 2717 |     #   4. On some SVR4 systems, can't use -lsocket without -lnsl too. | 
|---|
 | 2718 |     #      To get around this problem, check for both libraries together | 
|---|
 | 2719 |     #      if -lsocket doesn't work by itself. | 
|---|
 | 2720 |     #-------------------------------------------------------------------- | 
|---|
 | 2721 |  | 
|---|
 | 2722 |     tcl_checkBoth=0 | 
|---|
 | 2723 |     AC_CHECK_FUNC(connect, tcl_checkSocket=0, tcl_checkSocket=1) | 
|---|
 | 2724 |     if test "$tcl_checkSocket" = 1; then | 
|---|
 | 2725 |         AC_CHECK_FUNC(setsockopt, , [AC_CHECK_LIB(socket, setsockopt, | 
|---|
 | 2726 |             LIBS="$LIBS -lsocket", tcl_checkBoth=1)]) | 
|---|
 | 2727 |     fi | 
|---|
 | 2728 |     if test "$tcl_checkBoth" = 1; then | 
|---|
 | 2729 |         tk_oldLibs=$LIBS | 
|---|
 | 2730 |         LIBS="$LIBS -lsocket -lnsl" | 
|---|
 | 2731 |         AC_CHECK_FUNC(accept, tcl_checkNsl=0, [LIBS=$tk_oldLibs]) | 
|---|
 | 2732 |     fi | 
|---|
 | 2733 |     AC_CHECK_FUNC(gethostbyname, , [AC_CHECK_LIB(nsl, gethostbyname, | 
|---|
 | 2734 |             [LIBS="$LIBS -lnsl"])]) | 
|---|
 | 2735 |      | 
|---|
 | 2736 |     # Don't perform the eval of the libraries here because DL_LIBS | 
|---|
 | 2737 |     # won't be set until we call SC_CONFIG_CFLAGS | 
|---|
 | 2738 |  | 
|---|
 | 2739 |     TCL_LIBS='${DL_LIBS} ${LIBS} ${MATH_LIBS}' | 
|---|
 | 2740 |     AC_SUBST(TCL_LIBS) | 
|---|
 | 2741 |     AC_SUBST(MATH_LIBS) | 
|---|
 | 2742 | ]) | 
|---|
 | 2743 |  | 
|---|
 | 2744 | #-------------------------------------------------------------------- | 
|---|
 | 2745 | # SC_TCL_EARLY_FLAGS | 
|---|
 | 2746 | # | 
|---|
 | 2747 | #       Check for what flags are needed to be passed so the correct OS | 
|---|
 | 2748 | #       features are available. | 
|---|
 | 2749 | # | 
|---|
 | 2750 | # Arguments: | 
|---|
 | 2751 | #       None | 
|---|
 | 2752 | #        | 
|---|
 | 2753 | # Results: | 
|---|
 | 2754 | # | 
|---|
 | 2755 | #       Might define the following vars: | 
|---|
 | 2756 | #               _ISOC99_SOURCE | 
|---|
 | 2757 | #               _LARGEFILE64_SOURCE | 
|---|
 | 2758 | #               _LARGEFILE_SOURCE64 | 
|---|
 | 2759 | # | 
|---|
 | 2760 | #-------------------------------------------------------------------- | 
|---|
 | 2761 |  | 
|---|
 | 2762 | AC_DEFUN([SC_TCL_EARLY_FLAG],[ | 
|---|
 | 2763 |     AC_CACHE_VAL([tcl_cv_flag_]translit($1,[A-Z],[a-z]), | 
|---|
 | 2764 |         AC_TRY_COMPILE([$2], $3, [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no, | 
|---|
 | 2765 |             AC_TRY_COMPILE([[#define ]$1[ 1 | 
|---|
 | 2766 | ]$2], $3, | 
|---|
 | 2767 |                 [tcl_cv_flag_]translit($1,[A-Z],[a-z])=yes, | 
|---|
 | 2768 |                 [tcl_cv_flag_]translit($1,[A-Z],[a-z])=no))) | 
|---|
 | 2769 |     if test ["x${tcl_cv_flag_]translit($1,[A-Z],[a-z])[}" = "xyes"] ; then | 
|---|
 | 2770 |         AC_DEFINE($1) | 
|---|
 | 2771 |         tcl_flags="$tcl_flags $1" | 
|---|
 | 2772 |     fi | 
|---|
 | 2773 | ]) | 
|---|
 | 2774 |  | 
|---|
 | 2775 | AC_DEFUN([SC_TCL_EARLY_FLAGS],[ | 
|---|
 | 2776 |     AC_MSG_CHECKING([for required early compiler flags]) | 
|---|
 | 2777 |     tcl_flags="" | 
|---|
 | 2778 |     SC_TCL_EARLY_FLAG(_ISOC99_SOURCE,[#include <stdlib.h>], | 
|---|
 | 2779 |         [char *p = (char *)strtoll; char *q = (char *)strtoull;]) | 
|---|
 | 2780 |     SC_TCL_EARLY_FLAG(_LARGEFILE64_SOURCE,[#include <sys/stat.h>], | 
|---|
 | 2781 |         [struct stat64 buf; int i = stat64("/", &buf);]) | 
|---|
 | 2782 |     SC_TCL_EARLY_FLAG(_LARGEFILE_SOURCE64,[#include <sys/stat.h>], | 
|---|
 | 2783 |         [char *p = (char *)open64;]) | 
|---|
 | 2784 |     if test "x${tcl_flags}" = "x" ; then | 
|---|
 | 2785 |         AC_MSG_RESULT([none]) | 
|---|
 | 2786 |     else | 
|---|
 | 2787 |         AC_MSG_RESULT([${tcl_flags}]) | 
|---|
 | 2788 |     fi | 
|---|
 | 2789 | ]) | 
|---|
 | 2790 |  | 
|---|
 | 2791 | #-------------------------------------------------------------------- | 
|---|
 | 2792 | # SC_TCL_64BIT_FLAGS | 
|---|
 | 2793 | # | 
|---|
 | 2794 | #       Check for what is defined in the way of 64-bit features. | 
|---|
 | 2795 | # | 
|---|
 | 2796 | # Arguments: | 
|---|
 | 2797 | #       None | 
|---|
 | 2798 | #        | 
|---|
 | 2799 | # Results: | 
|---|
 | 2800 | # | 
|---|
 | 2801 | #       Might define the following vars: | 
|---|
 | 2802 | #               TCL_WIDE_INT_IS_LONG | 
|---|
 | 2803 | #               TCL_WIDE_INT_TYPE | 
|---|
 | 2804 | #               HAVE_STRUCT_DIRENT64 | 
|---|
 | 2805 | #               HAVE_STRUCT_STAT64 | 
|---|
 | 2806 | #               HAVE_TYPE_OFF64_T | 
|---|
 | 2807 | # | 
|---|
 | 2808 | #-------------------------------------------------------------------- | 
|---|
 | 2809 |  | 
|---|
 | 2810 | AC_DEFUN([SC_TCL_64BIT_FLAGS], [ | 
|---|
 | 2811 |     AC_MSG_CHECKING([for 64-bit integer type]) | 
|---|
 | 2812 |     AC_CACHE_VAL(tcl_cv_type_64bit,[ | 
|---|
 | 2813 |         tcl_cv_type_64bit=none | 
|---|
 | 2814 |         # See if the compiler knows natively about __int64 | 
|---|
 | 2815 |         AC_TRY_COMPILE(,[__int64 value = (__int64) 0;], | 
|---|
 | 2816 |             tcl_type_64bit=__int64, tcl_type_64bit="long long") | 
|---|
 | 2817 |         # See if we should use long anyway  Note that we substitute in the | 
|---|
 | 2818 |         # type that is our current guess for a 64-bit type inside this check | 
|---|
 | 2819 |         # program, so it should be modified only carefully... | 
|---|
 | 2820 |         AC_TRY_COMPILE(,[switch (0) {  | 
|---|
 | 2821 |             case 1: case (sizeof(]${tcl_type_64bit}[)==sizeof(long)): ;  | 
|---|
 | 2822 |         }],tcl_cv_type_64bit=${tcl_type_64bit})]) | 
|---|
 | 2823 |     if test "${tcl_cv_type_64bit}" = none ; then | 
|---|
 | 2824 |         AC_DEFINE(TCL_WIDE_INT_IS_LONG) | 
|---|
 | 2825 |         AC_MSG_RESULT([using long]) | 
|---|
 | 2826 |     else | 
|---|
 | 2827 |         AC_DEFINE_UNQUOTED(TCL_WIDE_INT_TYPE,${tcl_cv_type_64bit}) | 
|---|
 | 2828 |         AC_MSG_RESULT([${tcl_cv_type_64bit}]) | 
|---|
 | 2829 |  | 
|---|
 | 2830 |         # Now check for auxiliary declarations | 
|---|
 | 2831 |         AC_CACHE_CHECK([for struct dirent64], tcl_cv_struct_dirent64,[ | 
|---|
 | 2832 |             AC_TRY_COMPILE([#include <sys/types.h> | 
|---|
 | 2833 | #include <sys/dirent.h>],[struct dirent64 p;], | 
|---|
 | 2834 |                 tcl_cv_struct_dirent64=yes,tcl_cv_struct_dirent64=no)]) | 
|---|
 | 2835 |         if test "x${tcl_cv_struct_dirent64}" = "xyes" ; then | 
|---|
 | 2836 |             AC_DEFINE(HAVE_STRUCT_DIRENT64) | 
|---|
 | 2837 |         fi | 
|---|
 | 2838 |  | 
|---|
 | 2839 |         AC_CACHE_CHECK([for struct stat64], tcl_cv_struct_stat64,[ | 
|---|
 | 2840 |             AC_TRY_COMPILE([#include <sys/stat.h>],[struct stat64 p; | 
|---|
 | 2841 | ], | 
|---|
 | 2842 |                 tcl_cv_struct_stat64=yes,tcl_cv_struct_stat64=no)]) | 
|---|
 | 2843 |         if test "x${tcl_cv_struct_stat64}" = "xyes" ; then | 
|---|
 | 2844 |             AC_DEFINE(HAVE_STRUCT_STAT64) | 
|---|
 | 2845 |         fi | 
|---|
 | 2846 |  | 
|---|
 | 2847 |         AC_CHECK_FUNCS(open64 lseek64) | 
|---|
 | 2848 |         AC_MSG_CHECKING([for off64_t]) | 
|---|
 | 2849 |         AC_CACHE_VAL(tcl_cv_type_off64_t,[ | 
|---|
 | 2850 |             AC_TRY_COMPILE([#include <sys/types.h>],[off64_t offset; | 
|---|
 | 2851 | ], | 
|---|
 | 2852 |                 tcl_cv_type_off64_t=yes,tcl_cv_type_off64_t=no)]) | 
|---|
 | 2853 |         dnl Define HAVE_TYPE_OFF64_T only when the off64_t type and the | 
|---|
 | 2854 |         dnl functions lseek64 and open64 are defined. | 
|---|
 | 2855 |         if test "x${tcl_cv_type_off64_t}" = "xyes" && \ | 
|---|
 | 2856 |                 test "x${ac_cv_func_lseek64}" = "xyes" && \ | 
|---|
 | 2857 |                 test "x${ac_cv_func_open64}" = "xyes" ; then | 
|---|
 | 2858 |             AC_DEFINE(HAVE_TYPE_OFF64_T) | 
|---|
 | 2859 |             AC_MSG_RESULT([yes]) | 
|---|
 | 2860 |         else | 
|---|
 | 2861 |             AC_MSG_RESULT([no]) | 
|---|
 | 2862 |         fi | 
|---|
 | 2863 |     fi | 
|---|
 | 2864 | ]) | 
|---|
 | 2865 |  | 
|---|
 | 2866 | #-------------------------------------------------------------------- | 
|---|
 | 2867 | # SC_TCL_GETHOSTBYADDR_R | 
|---|
 | 2868 | # | 
|---|
 | 2869 | #       Check if we have MT-safe variant of gethostbyaddr(). | 
|---|
 | 2870 | # | 
|---|
 | 2871 | # Arguments: | 
|---|
 | 2872 | #       None | 
|---|
 | 2873 | #        | 
|---|
 | 2874 | # Results: | 
|---|
 | 2875 | # | 
|---|
 | 2876 | #       Might define the following vars: | 
|---|
 | 2877 | #               HAVE_GETHOSTBYADDR_R | 
|---|
 | 2878 | #               HAVE_GETHOSTBYADDR_R_7 | 
|---|
 | 2879 | #               HAVE_GETHOSTBYADDR_R_8 | 
|---|
 | 2880 | # | 
|---|
 | 2881 | #-------------------------------------------------------------------- | 
|---|
 | 2882 |  | 
|---|
 | 2883 | AC_DEFUN([SC_TCL_GETHOSTBYADDR_R], [AC_CHECK_FUNC(gethostbyaddr_r, [ | 
|---|
 | 2884 |     AC_CACHE_CHECK([for gethostbyaddr_r with 7 args], tcl_cv_api_gethostbyaddr_r_7, [ | 
|---|
 | 2885 |     AC_TRY_COMPILE([ | 
|---|
 | 2886 |         #include <netdb.h> | 
|---|
 | 2887 |     ], [ | 
|---|
 | 2888 |         char *addr; | 
|---|
 | 2889 |         int length; | 
|---|
 | 2890 |         int type; | 
|---|
 | 2891 |         struct hostent *result; | 
|---|
 | 2892 |         char buffer[2048]; | 
|---|
 | 2893 |         int buflen = 2048; | 
|---|
 | 2894 |         int h_errnop; | 
|---|
 | 2895 |  | 
|---|
 | 2896 |         (void) gethostbyaddr_r(addr, length, type, result, buffer, buflen, | 
|---|
 | 2897 |                                &h_errnop); | 
|---|
 | 2898 |     ], tcl_cv_api_gethostbyaddr_r_7=yes, tcl_cv_api_gethostbyaddr_r_7=no)]) | 
|---|
 | 2899 |     tcl_ok=$tcl_cv_api_gethostbyaddr_r_7 | 
|---|
 | 2900 |     if test "$tcl_ok" = yes; then | 
|---|
 | 2901 |         AC_DEFINE(HAVE_GETHOSTBYADDR_R_7) | 
|---|
 | 2902 |     else | 
|---|
 | 2903 |         AC_CACHE_CHECK([for gethostbyaddr_r with 8 args], tcl_cv_api_gethostbyaddr_r_8, [ | 
|---|
 | 2904 |         AC_TRY_COMPILE([ | 
|---|
 | 2905 |             #include <netdb.h> | 
|---|
 | 2906 |         ], [ | 
|---|
 | 2907 |             char *addr; | 
|---|
 | 2908 |             int length; | 
|---|
 | 2909 |             int type; | 
|---|
 | 2910 |             struct hostent *result, *resultp; | 
|---|
 | 2911 |             char buffer[2048]; | 
|---|
 | 2912 |             int buflen = 2048; | 
|---|
 | 2913 |             int h_errnop; | 
|---|
 | 2914 |  | 
|---|
 | 2915 |             (void) gethostbyaddr_r(addr, length, type, result, buffer, buflen, | 
|---|
 | 2916 |                                    &resultp, &h_errnop); | 
|---|
 | 2917 |         ], tcl_cv_api_gethostbyaddr_r_8=yes, tcl_cv_api_gethostbyaddr_r_8=no)]) | 
|---|
 | 2918 |         tcl_ok=$tcl_cv_api_gethostbyaddr_r_8 | 
|---|
 | 2919 |         if test "$tcl_ok" = yes; then | 
|---|
 | 2920 |             AC_DEFINE(HAVE_GETHOSTBYADDR_R_8) | 
|---|
 | 2921 |         fi | 
|---|
 | 2922 |     fi | 
|---|
 | 2923 |     if test "$tcl_ok" = yes; then | 
|---|
 | 2924 |         AC_DEFINE(HAVE_GETHOSTBYADDR_R) | 
|---|
 | 2925 |     fi | 
|---|
 | 2926 | ])]) | 
|---|
 | 2927 |  | 
|---|
 | 2928 | #-------------------------------------------------------------------- | 
|---|
 | 2929 | # SC_TCL_GETHOSTBYNAME_R | 
|---|
 | 2930 | # | 
|---|
 | 2931 | #       Check to see what variant of gethostbyname_r() we have. | 
|---|
 | 2932 | #       Based on David Arnold's example from the comp.programming.threads | 
|---|
 | 2933 | #       FAQ Q213 | 
|---|
 | 2934 | # | 
|---|
 | 2935 | # Arguments: | 
|---|
 | 2936 | #       None | 
|---|
 | 2937 | #        | 
|---|
 | 2938 | # Results: | 
|---|
 | 2939 | # | 
|---|
 | 2940 | #       Might define the following vars: | 
|---|
 | 2941 | #               HAVE_GETHOSTBYADDR_R | 
|---|
 | 2942 | #               HAVE_GETHOSTBYADDR_R_3 | 
|---|
 | 2943 | #               HAVE_GETHOSTBYADDR_R_5 | 
|---|
 | 2944 | #               HAVE_GETHOSTBYADDR_R_6 | 
|---|
 | 2945 | # | 
|---|
 | 2946 | #-------------------------------------------------------------------- | 
|---|
 | 2947 |  | 
|---|
 | 2948 | AC_DEFUN([SC_TCL_GETHOSTBYNAME_R], [AC_CHECK_FUNC(gethostbyname_r, [ | 
|---|
 | 2949 |     AC_CACHE_CHECK([for gethostbyname_r with 6 args], tcl_cv_api_gethostbyname_r_6, [ | 
|---|
 | 2950 |     AC_TRY_COMPILE([ | 
|---|
 | 2951 |         #include <netdb.h> | 
|---|
 | 2952 |     ], [ | 
|---|
 | 2953 |         char *name; | 
|---|
 | 2954 |         struct hostent *he, *res; | 
|---|
 | 2955 |         char buffer[2048]; | 
|---|
 | 2956 |         int buflen = 2048; | 
|---|
 | 2957 |         int h_errnop; | 
|---|
 | 2958 |  | 
|---|
 | 2959 |         (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop); | 
|---|
 | 2960 |     ], tcl_cv_api_gethostbyname_r_6=yes, tcl_cv_api_gethostbyname_r_6=no)]) | 
|---|
 | 2961 |     tcl_ok=$tcl_cv_api_gethostbyname_r_6 | 
|---|
 | 2962 |     if test "$tcl_ok" = yes; then | 
|---|
 | 2963 |         AC_DEFINE(HAVE_GETHOSTBYNAME_R_6) | 
|---|
 | 2964 |     else | 
|---|
 | 2965 |         AC_CACHE_CHECK([for gethostbyname_r with 5 args], tcl_cv_api_gethostbyname_r_5, [ | 
|---|
 | 2966 |         AC_TRY_COMPILE([ | 
|---|
 | 2967 |             #include <netdb.h> | 
|---|
 | 2968 |         ], [ | 
|---|
 | 2969 |             char *name; | 
|---|
 | 2970 |             struct hostent *he; | 
|---|
 | 2971 |             char buffer[2048]; | 
|---|
 | 2972 |             int buflen = 2048; | 
|---|
 | 2973 |             int h_errnop; | 
|---|
 | 2974 |  | 
|---|
 | 2975 |             (void) gethostbyname_r(name, he, buffer, buflen, &h_errnop); | 
|---|
 | 2976 |         ], tcl_cv_api_gethostbyname_r_5=yes, tcl_cv_api_gethostbyname_r_5=no)]) | 
|---|
 | 2977 |         tcl_ok=$tcl_cv_api_gethostbyname_r_5 | 
|---|
 | 2978 |         if test "$tcl_ok" = yes; then | 
|---|
 | 2979 |             AC_DEFINE(HAVE_GETHOSTBYNAME_R_5) | 
|---|
 | 2980 |         else | 
|---|
 | 2981 |             AC_CACHE_CHECK([for gethostbyname_r with 3 args], tcl_cv_api_gethostbyname_r_3, [ | 
|---|
 | 2982 |             AC_TRY_COMPILE([ | 
|---|
 | 2983 |                 #include <netdb.h> | 
|---|
 | 2984 |             ], [ | 
|---|
 | 2985 |                 char *name; | 
|---|
 | 2986 |                 struct hostent *he; | 
|---|
 | 2987 |                 struct hostent_data data; | 
|---|
 | 2988 |  | 
|---|
 | 2989 |                 (void) gethostbyname_r(name, he, &data); | 
|---|
 | 2990 |             ], tcl_cv_api_gethostbyname_r_3=yes, tcl_cv_api_gethostbyname_r_3=no)]) | 
|---|
 | 2991 |             tcl_ok=$tcl_cv_api_gethostbyname_r_3 | 
|---|
 | 2992 |             if test "$tcl_ok" = yes; then | 
|---|
 | 2993 |                 AC_DEFINE(HAVE_GETHOSTBYNAME_R_3) | 
|---|
 | 2994 |             fi | 
|---|
 | 2995 |         fi | 
|---|
 | 2996 |     fi | 
|---|
 | 2997 |     if test "$tcl_ok" = yes; then | 
|---|
 | 2998 |         AC_DEFINE(HAVE_GETHOSTBYNAME_R) | 
|---|
 | 2999 |     fi | 
|---|
 | 3000 | ])]) | 
|---|
 | 3001 |  | 
|---|
 | 3002 | #-------------------------------------------------------------------- | 
|---|
 | 3003 | # SC_TCL_GETPWUID_R | 
|---|
 | 3004 | # | 
|---|
 | 3005 | #       Check if we have MT-safe variant of getpwuid() and if yes, | 
|---|
 | 3006 | #       which one exactly. | 
|---|
 | 3007 | # | 
|---|
 | 3008 | # Arguments: | 
|---|
 | 3009 | #       None | 
|---|
 | 3010 | #        | 
|---|
 | 3011 | # Results: | 
|---|
 | 3012 | # | 
|---|
 | 3013 | #       Might define the following vars: | 
|---|
 | 3014 | #               HAVE_GETPWUID_R | 
|---|
 | 3015 | #               HAVE_GETPWUID_R_4 | 
|---|
 | 3016 | #               HAVE_GETPWUID_R_5 | 
|---|
 | 3017 | # | 
|---|
 | 3018 | #-------------------------------------------------------------------- | 
|---|
 | 3019 |  | 
|---|
 | 3020 | AC_DEFUN([SC_TCL_GETPWUID_R], [AC_CHECK_FUNC(getpwuid_r, [ | 
|---|
 | 3021 |     AC_CACHE_CHECK([for getpwuid_r with 5 args], tcl_cv_api_getpwuid_r_5, [ | 
|---|
 | 3022 |     AC_TRY_COMPILE([ | 
|---|
 | 3023 |         #include <sys/types.h> | 
|---|
 | 3024 |         #include <pwd.h> | 
|---|
 | 3025 |     ], [ | 
|---|
 | 3026 |         uid_t uid; | 
|---|
 | 3027 |         struct passwd pw, *pwp; | 
|---|
 | 3028 |         char buf[512]; | 
|---|
 | 3029 |         int buflen = 512; | 
|---|
 | 3030 |  | 
|---|
 | 3031 |         (void) getpwuid_r(uid, &pw, buf, buflen, &pwp); | 
|---|
 | 3032 |     ], tcl_cv_api_getpwuid_r_5=yes, tcl_cv_api_getpwuid_r_5=no)]) | 
|---|
 | 3033 |     tcl_ok=$tcl_cv_api_getpwuid_r_5 | 
|---|
 | 3034 |     if test "$tcl_ok" = yes; then | 
|---|
 | 3035 |         AC_DEFINE(HAVE_GETPWUID_R_5) | 
|---|
 | 3036 |     else | 
|---|
 | 3037 |         AC_CACHE_CHECK([for getpwuid_r with 4 args], tcl_cv_api_getpwuid_r_4, [ | 
|---|
 | 3038 |         AC_TRY_COMPILE([ | 
|---|
 | 3039 |             #include <sys/types.h> | 
|---|
 | 3040 |             #include <pwd.h> | 
|---|
 | 3041 |         ], [ | 
|---|
 | 3042 |             uid_t uid; | 
|---|
 | 3043 |             struct passwd pw; | 
|---|
 | 3044 |             char buf[512]; | 
|---|
 | 3045 |             int buflen = 512; | 
|---|
 | 3046 |  | 
|---|
 | 3047 |             (void)getpwnam_r(uid, &pw, buf, buflen); | 
|---|
 | 3048 |         ], tcl_cv_api_getpwuid_r_4=yes, tcl_cv_api_getpwuid_r_4=no)]) | 
|---|
 | 3049 |         tcl_ok=$tcl_cv_api_getpwuid_r_4 | 
|---|
 | 3050 |         if test "$tcl_ok" = yes; then | 
|---|
 | 3051 |             AC_DEFINE(HAVE_GETPWUID_R_4) | 
|---|
 | 3052 |         fi | 
|---|
 | 3053 |     fi | 
|---|
 | 3054 |     if test "$tcl_ok" = yes; then | 
|---|
 | 3055 |         AC_DEFINE(HAVE_GETPWUID_R) | 
|---|
 | 3056 |     fi | 
|---|
 | 3057 | ])]) | 
|---|
 | 3058 |  | 
|---|
 | 3059 | #-------------------------------------------------------------------- | 
|---|
 | 3060 | # SC_TCL_GETPWNAM_R | 
|---|
 | 3061 | # | 
|---|
 | 3062 | #       Check if we have MT-safe variant of getpwnam() and if yes, | 
|---|
 | 3063 | #       which one exactly. | 
|---|
 | 3064 | # | 
|---|
 | 3065 | # Arguments: | 
|---|
 | 3066 | #       None | 
|---|
 | 3067 | #        | 
|---|
 | 3068 | # Results: | 
|---|
 | 3069 | # | 
|---|
 | 3070 | #       Might define the following vars: | 
|---|
 | 3071 | #               HAVE_GETPWNAM_R | 
|---|
 | 3072 | #               HAVE_GETPWNAM_R_4 | 
|---|
 | 3073 | #               HAVE_GETPWNAM_R_5 | 
|---|
 | 3074 | # | 
|---|
 | 3075 | #-------------------------------------------------------------------- | 
|---|
 | 3076 |  | 
|---|
 | 3077 | AC_DEFUN([SC_TCL_GETPWNAM_R], [AC_CHECK_FUNC(getpwnam_r, [ | 
|---|
 | 3078 |     AC_CACHE_CHECK([for getpwnam_r with 5 args], tcl_cv_api_getpwnam_r_5, [ | 
|---|
 | 3079 |     AC_TRY_COMPILE([ | 
|---|
 | 3080 |         #include <sys/types.h> | 
|---|
 | 3081 |         #include <pwd.h> | 
|---|
 | 3082 |     ], [ | 
|---|
 | 3083 |         char *name; | 
|---|
 | 3084 |         struct passwd pw, *pwp; | 
|---|
 | 3085 |         char buf[512]; | 
|---|
 | 3086 |         int buflen = 512; | 
|---|
 | 3087 |  | 
|---|
 | 3088 |         (void) getpwnam_r(name, &pw, buf, buflen, &pwp); | 
|---|
 | 3089 |     ], tcl_cv_api_getpwnam_r_5=yes, tcl_cv_api_getpwnam_r_5=no)]) | 
|---|
 | 3090 |     tcl_ok=$tcl_cv_api_getpwnam_r_5 | 
|---|
 | 3091 |     if test "$tcl_ok" = yes; then | 
|---|
 | 3092 |         AC_DEFINE(HAVE_GETPWNAM_R_5) | 
|---|
 | 3093 |     else | 
|---|
 | 3094 |         AC_CACHE_CHECK([for getpwnam_r with 4 args], tcl_cv_api_getpwnam_r_4, [ | 
|---|
 | 3095 |         AC_TRY_COMPILE([ | 
|---|
 | 3096 |             #include <sys/types.h> | 
|---|
 | 3097 |             #include <pwd.h> | 
|---|
 | 3098 |         ], [ | 
|---|
 | 3099 |             char *name; | 
|---|
 | 3100 |             struct passwd pw; | 
|---|
 | 3101 |             char buf[512]; | 
|---|
 | 3102 |             int buflen = 512; | 
|---|
 | 3103 |  | 
|---|
 | 3104 |             (void)getpwnam_r(name, &pw, buf, buflen); | 
|---|
 | 3105 |         ], tcl_cv_api_getpwnam_r_4=yes, tcl_cv_api_getpwnam_r_4=no)]) | 
|---|
 | 3106 |         tcl_ok=$tcl_cv_api_getpwnam_r_4 | 
|---|
 | 3107 |         if test "$tcl_ok" = yes; then | 
|---|
 | 3108 |             AC_DEFINE(HAVE_GETPWNAM_R_4) | 
|---|
 | 3109 |         fi | 
|---|
 | 3110 |     fi | 
|---|
 | 3111 |     if test "$tcl_ok" = yes; then | 
|---|
 | 3112 |         AC_DEFINE(HAVE_GETPWNAM_R) | 
|---|
 | 3113 |     fi | 
|---|
 | 3114 | ])]) | 
|---|
 | 3115 |  | 
|---|
 | 3116 | #-------------------------------------------------------------------- | 
|---|
 | 3117 | # SC_TCL_GETGRGID_R | 
|---|
 | 3118 | # | 
|---|
 | 3119 | #       Check if we have MT-safe variant of getgrgid() and if yes, | 
|---|
 | 3120 | #       which one exactly. | 
|---|
 | 3121 | # | 
|---|
 | 3122 | # Arguments: | 
|---|
 | 3123 | #       None | 
|---|
 | 3124 | #        | 
|---|
 | 3125 | # Results: | 
|---|
 | 3126 | # | 
|---|
 | 3127 | #       Might define the following vars: | 
|---|
 | 3128 | #               HAVE_GETGRGID_R | 
|---|
 | 3129 | #               HAVE_GETGRGID_R_4 | 
|---|
 | 3130 | #               HAVE_GETGRGID_R_5 | 
|---|
 | 3131 | # | 
|---|
 | 3132 | #-------------------------------------------------------------------- | 
|---|
 | 3133 |  | 
|---|
 | 3134 | AC_DEFUN([SC_TCL_GETGRGID_R], [AC_CHECK_FUNC(getgrgid_r, [ | 
|---|
 | 3135 |     AC_CACHE_CHECK([for getgrgid_r with 5 args], tcl_cv_api_getgrgid_r_5, [ | 
|---|
 | 3136 |     AC_TRY_COMPILE([ | 
|---|
 | 3137 |         #include <sys/types.h> | 
|---|
 | 3138 |         #include <grp.h> | 
|---|
 | 3139 |     ], [ | 
|---|
 | 3140 |         gid_t gid; | 
|---|
 | 3141 |         struct group gr, *grp; | 
|---|
 | 3142 |         char buf[512]; | 
|---|
 | 3143 |         int buflen = 512; | 
|---|
 | 3144 |  | 
|---|
 | 3145 |         (void) getgrgid_r(gid, &gr, buf, buflen, &grp); | 
|---|
 | 3146 |     ], tcl_cv_api_getgrgid_r_5=yes, tcl_cv_api_getgrgid_r_5=no)]) | 
|---|
 | 3147 |     tcl_ok=$tcl_cv_api_getgrgid_r_5 | 
|---|
 | 3148 |     if test "$tcl_ok" = yes; then | 
|---|
 | 3149 |         AC_DEFINE(HAVE_GETGRGID_R_5) | 
|---|
 | 3150 |     else | 
|---|
 | 3151 |         AC_CACHE_CHECK([for getgrgid_r with 4 args], tcl_cv_api_getgrgid_r_4, [ | 
|---|
 | 3152 |         AC_TRY_COMPILE([ | 
|---|
 | 3153 |             #include <sys/types.h> | 
|---|
 | 3154 |             #include <grp.h> | 
|---|
 | 3155 |         ], [ | 
|---|
 | 3156 |             gid_t gid; | 
|---|
 | 3157 |             struct group gr; | 
|---|
 | 3158 |             char buf[512]; | 
|---|
 | 3159 |             int buflen = 512; | 
|---|
 | 3160 |  | 
|---|
 | 3161 |             (void)getgrgid_r(gid, &gr, buf, buflen); | 
|---|
 | 3162 |         ], tcl_cv_api_getgrgid_r_4=yes, tcl_cv_api_getgrgid_r_4=no)]) | 
|---|
 | 3163 |         tcl_ok=$tcl_cv_api_getgrgid_r_4 | 
|---|
 | 3164 |         if test "$tcl_ok" = yes; then | 
|---|
 | 3165 |             AC_DEFINE(HAVE_GETGRGID_R_4) | 
|---|
 | 3166 |         fi | 
|---|
 | 3167 |     fi | 
|---|
 | 3168 |     if test "$tcl_ok" = yes; then | 
|---|
 | 3169 |         AC_DEFINE(HAVE_GETGRGID_R) | 
|---|
 | 3170 |     fi | 
|---|
 | 3171 | ])]) | 
|---|
 | 3172 |  | 
|---|
 | 3173 | #-------------------------------------------------------------------- | 
|---|
 | 3174 | # SC_TCL_GETGRNAM_R | 
|---|
 | 3175 | # | 
|---|
 | 3176 | #       Check if we have MT-safe variant of getgrnam() and if yes, | 
|---|
 | 3177 | #       which one exactly. | 
|---|
 | 3178 | # | 
|---|
 | 3179 | # Arguments: | 
|---|
 | 3180 | #       None | 
|---|
 | 3181 | #        | 
|---|
 | 3182 | # Results: | 
|---|
 | 3183 | # | 
|---|
 | 3184 | #       Might define the following vars: | 
|---|
 | 3185 | #               HAVE_GETGRNAM_R | 
|---|
 | 3186 | #               HAVE_GETGRNAM_R_4 | 
|---|
 | 3187 | #               HAVE_GETGRNAM_R_5 | 
|---|
 | 3188 | # | 
|---|
 | 3189 | #-------------------------------------------------------------------- | 
|---|
 | 3190 |  | 
|---|
 | 3191 | AC_DEFUN([SC_TCL_GETGRNAM_R], [AC_CHECK_FUNC(getgrnam_r, [ | 
|---|
 | 3192 |     AC_CACHE_CHECK([for getgrnam_r with 5 args], tcl_cv_api_getgrnam_r_5, [ | 
|---|
 | 3193 |     AC_TRY_COMPILE([ | 
|---|
 | 3194 |         #include <sys/types.h> | 
|---|
 | 3195 |         #include <grp.h> | 
|---|
 | 3196 |     ], [ | 
|---|
 | 3197 |         char *name; | 
|---|
 | 3198 |         struct group gr, *grp; | 
|---|
 | 3199 |         char buf[512]; | 
|---|
 | 3200 |         int buflen = 512; | 
|---|
 | 3201 |  | 
|---|
 | 3202 |         (void) getgrnam_r(name, &gr, buf, buflen, &grp); | 
|---|
 | 3203 |     ], tcl_cv_api_getgrnam_r_5=yes, tcl_cv_api_getgrnam_r_5=no)]) | 
|---|
 | 3204 |     tcl_ok=$tcl_cv_api_getgrnam_r_5 | 
|---|
 | 3205 |     if test "$tcl_ok" = yes; then | 
|---|
 | 3206 |         AC_DEFINE(HAVE_GETGRNAM_R_5) | 
|---|
 | 3207 |     else | 
|---|
 | 3208 |         AC_CACHE_CHECK([for getgrnam_r with 4 args], tcl_cv_api_getgrnam_r_4, [ | 
|---|
 | 3209 |         AC_TRY_COMPILE([ | 
|---|
 | 3210 |             #include <sys/types.h> | 
|---|
 | 3211 |             #include <grp.h> | 
|---|
 | 3212 |         ], [ | 
|---|
 | 3213 |             char *name; | 
|---|
 | 3214 |             struct group gr; | 
|---|
 | 3215 |             char buf[512]; | 
|---|
 | 3216 |             int buflen = 512; | 
|---|
 | 3217 |  | 
|---|
 | 3218 |             (void)getgrnam_r(name, &gr, buf, buflen); | 
|---|
 | 3219 |         ], tcl_cv_api_getgrnam_r_4=yes, tcl_cv_api_getgrnam_r_4=no)]) | 
|---|
 | 3220 |         tcl_ok=$tcl_cv_api_getgrnam_r_4 | 
|---|
 | 3221 |         if test "$tcl_ok" = yes; then | 
|---|
 | 3222 |             AC_DEFINE(HAVE_GETGRNAM_R_4) | 
|---|
 | 3223 |         fi | 
|---|
 | 3224 |     fi | 
|---|
 | 3225 |     if test "$tcl_ok" = yes; then | 
|---|
 | 3226 |         AC_DEFINE(HAVE_GETGRNAM_R) | 
|---|
 | 3227 |     fi | 
|---|
 | 3228 | ])]) | 
|---|
 | 3229 |  | 
|---|
 | 3230 | #-------------------------------------------------------------------- | 
|---|
 | 3231 | # SC_CONFIG_COMMANDS_PRE(CMDS) | 
|---|
 | 3232 | # | 
|---|
 | 3233 | #       Replacement for autoconf 2.5x AC_COMMANDS_PRE: | 
|---|
 | 3234 | #               Commands to run right before config.status is | 
|---|
 | 3235 | #               created. Accumulates. | 
|---|
 | 3236 | # | 
|---|
 | 3237 | #       Requires presence of SC_OUTPUT_COMMANDS_PRE at the end | 
|---|
 | 3238 | #       of configure.ac (right before AC_OUTPUT). | 
|---|
 | 3239 | # | 
|---|
 | 3240 | #-------------------------------------------------------------------- | 
|---|
 | 3241 |  | 
|---|
 | 3242 | AC_DEFUN([SC_CONFIG_COMMANDS_PRE], [ | 
|---|
 | 3243 |     define([SC_OUTPUT_COMMANDS_PRE], defn([SC_OUTPUT_COMMANDS_PRE])[$1 | 
|---|
 | 3244 | ])]) | 
|---|
 | 3245 | AC_DEFUN([SC_OUTPUT_COMMANDS_PRE]) | 
|---|
 | 3246 |  | 
|---|