| [25] | 1 | #------------------------------------------------------------------------ | 
|---|
 | 2 | # SC_PATH_TCLCONFIG -- | 
|---|
 | 3 | # | 
|---|
 | 4 | #       Locate the tclConfig.sh file and perform a sanity check on | 
|---|
 | 5 | #       the Tcl compile flags | 
|---|
 | 6 | #       Currently a no-op for Windows | 
|---|
 | 7 | # | 
|---|
 | 8 | # Arguments: | 
|---|
 | 9 | #       PATCH_LEVEL     The patch level for Tcl if any. | 
|---|
 | 10 | # | 
|---|
 | 11 | # Results: | 
|---|
 | 12 | # | 
|---|
 | 13 | #       Adds the following arguments to configure: | 
|---|
 | 14 | #               --with-tcl=... | 
|---|
 | 15 | # | 
|---|
 | 16 | #       Sets the following vars: | 
|---|
 | 17 | #               TCL_BIN_DIR     Full path to the tclConfig.sh file | 
|---|
 | 18 | #------------------------------------------------------------------------ | 
|---|
 | 19 |  | 
|---|
 | 20 | AC_DEFUN([SC_PATH_TCLCONFIG], [ | 
|---|
 | 21 |     AC_MSG_CHECKING([the location of tclConfig.sh]) | 
|---|
 | 22 |  | 
|---|
 | 23 |     if test -d ../../tcl8.5$1/win;  then | 
|---|
 | 24 |         TCL_BIN_DIR_DEFAULT=../../tcl8.5$1/win | 
|---|
 | 25 |     elif test -d ../../tcl8.5/win;  then | 
|---|
 | 26 |         TCL_BIN_DIR_DEFAULT=../../tcl8.5/win | 
|---|
 | 27 |     else | 
|---|
 | 28 |         TCL_BIN_DIR_DEFAULT=../../tcl/win | 
|---|
 | 29 |     fi | 
|---|
 | 30 |      | 
|---|
 | 31 |     AC_ARG_WITH(tcl, [  --with-tcl=DIR          use Tcl 8.5 binaries from DIR], | 
|---|
 | 32 |             TCL_BIN_DIR=$withval, TCL_BIN_DIR=`cd $TCL_BIN_DIR_DEFAULT; pwd`) | 
|---|
 | 33 |     if test ! -d $TCL_BIN_DIR; then | 
|---|
 | 34 |         AC_MSG_ERROR(Tcl directory $TCL_BIN_DIR does not exist) | 
|---|
 | 35 |     fi | 
|---|
 | 36 |     if test ! -f $TCL_BIN_DIR/tclConfig.sh; then | 
|---|
 | 37 |         AC_MSG_ERROR(There is no tclConfig.sh in $TCL_BIN_DIR:  perhaps you did not specify the Tcl *build* directory (not the toplevel Tcl directory) or you forgot to configure Tcl?) | 
|---|
 | 38 |     fi | 
|---|
 | 39 |     AC_MSG_RESULT($TCL_BIN_DIR/tclConfig.sh) | 
|---|
 | 40 | ]) | 
|---|
 | 41 |  | 
|---|
 | 42 | #------------------------------------------------------------------------ | 
|---|
 | 43 | # SC_PATH_TKCONFIG -- | 
|---|
 | 44 | # | 
|---|
 | 45 | #       Locate the tkConfig.sh file | 
|---|
 | 46 | #       Currently a no-op for Windows | 
|---|
 | 47 | # | 
|---|
 | 48 | # Arguments: | 
|---|
 | 49 | #       none | 
|---|
 | 50 | # | 
|---|
 | 51 | # Results: | 
|---|
 | 52 | # | 
|---|
 | 53 | #       Adds the following arguments to configure: | 
|---|
 | 54 | #               --with-tk=... | 
|---|
 | 55 | # | 
|---|
 | 56 | #       Sets the following vars: | 
|---|
 | 57 | #               TK_BIN_DIR      Full path to the tkConfig.sh file | 
|---|
 | 58 | #------------------------------------------------------------------------ | 
|---|
 | 59 |  | 
|---|
 | 60 | AC_DEFUN([SC_PATH_TKCONFIG], [ | 
|---|
 | 61 |     AC_MSG_CHECKING([the location of tkConfig.sh]) | 
|---|
 | 62 |  | 
|---|
 | 63 |     if test -d ../../tk8.5$1/win;  then | 
|---|
 | 64 |         TK_BIN_DIR_DEFAULT=../../tk8.5$1/win | 
|---|
 | 65 |     elif test -d ../../tk8.5/win;  then | 
|---|
 | 66 |         TK_BIN_DIR_DEFAULT=../../tk8.5/win | 
|---|
 | 67 |     else | 
|---|
 | 68 |         TK_BIN_DIR_DEFAULT=../../tk/win | 
|---|
 | 69 |     fi | 
|---|
 | 70 |      | 
|---|
 | 71 |     AC_ARG_WITH(tk, [  --with-tk=DIR          use Tk 8.5 binaries from DIR], | 
|---|
 | 72 |             TK_BIN_DIR=$withval, TK_BIN_DIR=`cd $TK_BIN_DIR_DEFAULT; pwd`) | 
|---|
 | 73 |     if test ! -d $TK_BIN_DIR; then | 
|---|
 | 74 |         AC_MSG_ERROR(Tk directory $TK_BIN_DIR does not exist) | 
|---|
 | 75 |     fi | 
|---|
 | 76 |     if test ! -f $TK_BIN_DIR/tkConfig.sh; then | 
|---|
 | 77 |         AC_MSG_ERROR(There is no tkConfig.sh in $TK_BIN_DIR:  perhaps you did not specify the Tk *build* directory (not the toplevel Tk directory) or you forgot to configure Tk?) | 
|---|
 | 78 |     fi | 
|---|
 | 79 |  | 
|---|
 | 80 |     AC_MSG_RESULT([$TK_BIN_DIR/tkConfig.sh]) | 
|---|
 | 81 | ]) | 
|---|
 | 82 |  | 
|---|
 | 83 | #------------------------------------------------------------------------ | 
|---|
 | 84 | # SC_LOAD_TCLCONFIG -- | 
|---|
 | 85 | # | 
|---|
 | 86 | #       Load the tclConfig.sh file. | 
|---|
 | 87 | # | 
|---|
 | 88 | # Arguments: | 
|---|
 | 89 | #        | 
|---|
 | 90 | #       Requires the following vars to be set: | 
|---|
 | 91 | #               TCL_BIN_DIR | 
|---|
 | 92 | # | 
|---|
 | 93 | # Results: | 
|---|
 | 94 | # | 
|---|
 | 95 | #       Subst the following vars: | 
|---|
 | 96 | #               TCL_BIN_DIR | 
|---|
 | 97 | #               TCL_SRC_DIR | 
|---|
 | 98 | #               TCL_LIB_FILE | 
|---|
 | 99 | # | 
|---|
 | 100 | #------------------------------------------------------------------------ | 
|---|
 | 101 |  | 
|---|
 | 102 | AC_DEFUN([SC_LOAD_TCLCONFIG], [ | 
|---|
 | 103 |     AC_MSG_CHECKING([for existence of $TCL_BIN_DIR/tclConfig.sh]) | 
|---|
 | 104 |  | 
|---|
 | 105 |     if test -f "$TCL_BIN_DIR/tclConfig.sh" ; then | 
|---|
 | 106 |         AC_MSG_RESULT([loading]) | 
|---|
 | 107 |         . $TCL_BIN_DIR/tclConfig.sh | 
|---|
 | 108 |     else | 
|---|
 | 109 |         AC_MSG_RESULT([file not found]) | 
|---|
 | 110 |     fi | 
|---|
 | 111 |  | 
|---|
 | 112 |     # | 
|---|
 | 113 |     # If the TCL_BIN_DIR is the build directory (not the install directory), | 
|---|
 | 114 |     # then set the common variable name to the value of the build variables. | 
|---|
 | 115 |     # For example, the variable TCL_LIB_SPEC will be set to the value | 
|---|
 | 116 |     # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC | 
|---|
 | 117 |     # instead of TCL_BUILD_LIB_SPEC since it will work with both an | 
|---|
 | 118 |     # installed and uninstalled version of Tcl. | 
|---|
 | 119 |     # | 
|---|
 | 120 |  | 
|---|
 | 121 |     if test -f $TCL_BIN_DIR/Makefile ; then | 
|---|
 | 122 |         TCL_LIB_SPEC=${TCL_BUILD_LIB_SPEC} | 
|---|
 | 123 |         TCL_STUB_LIB_SPEC=${TCL_BUILD_STUB_LIB_SPEC} | 
|---|
 | 124 |         TCL_STUB_LIB_PATH=${TCL_BUILD_STUB_LIB_PATH} | 
|---|
 | 125 |     fi | 
|---|
 | 126 |  | 
|---|
 | 127 |     # | 
|---|
 | 128 |     # eval is required to do the TCL_DBGX substitution | 
|---|
 | 129 |     # | 
|---|
 | 130 |  | 
|---|
 | 131 |     eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\"" | 
|---|
 | 132 |     eval "TCL_LIB_FLAG=\"${TCL_LIB_FLAG}\"" | 
|---|
 | 133 |     eval "TCL_LIB_SPEC=\"${TCL_LIB_SPEC}\"" | 
|---|
 | 134 |  | 
|---|
 | 135 |     eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\"" | 
|---|
 | 136 |     eval "TCL_STUB_LIB_FLAG=\"${TCL_STUB_LIB_FLAG}\"" | 
|---|
 | 137 |     eval "TCL_STUB_LIB_SPEC=\"${TCL_STUB_LIB_SPEC}\"" | 
|---|
 | 138 |  | 
|---|
 | 139 |     AC_SUBST(TCL_VERSION) | 
|---|
 | 140 |     AC_SUBST(TCL_BIN_DIR) | 
|---|
 | 141 |     AC_SUBST(TCL_SRC_DIR) | 
|---|
 | 142 |  | 
|---|
 | 143 |     AC_SUBST(TCL_LIB_FILE) | 
|---|
 | 144 |     AC_SUBST(TCL_LIB_FLAG) | 
|---|
 | 145 |     AC_SUBST(TCL_LIB_SPEC) | 
|---|
 | 146 |  | 
|---|
 | 147 |     AC_SUBST(TCL_STUB_LIB_FILE) | 
|---|
 | 148 |     AC_SUBST(TCL_STUB_LIB_FLAG) | 
|---|
 | 149 |     AC_SUBST(TCL_STUB_LIB_SPEC) | 
|---|
 | 150 |  | 
|---|
 | 151 |     AC_SUBST(TCL_DEFS) | 
|---|
 | 152 | ]) | 
|---|
 | 153 |  | 
|---|
 | 154 | #------------------------------------------------------------------------ | 
|---|
 | 155 | # SC_LOAD_TKCONFIG -- | 
|---|
 | 156 | # | 
|---|
 | 157 | #       Load the tkConfig.sh file | 
|---|
 | 158 | #       Currently a no-op for Windows | 
|---|
 | 159 | # | 
|---|
 | 160 | # Arguments: | 
|---|
 | 161 | #        | 
|---|
 | 162 | #       Requires the following vars to be set: | 
|---|
 | 163 | #               TK_BIN_DIR | 
|---|
 | 164 | # | 
|---|
 | 165 | # Results: | 
|---|
 | 166 | # | 
|---|
 | 167 | #       Sets the following vars that should be in tkConfig.sh: | 
|---|
 | 168 | #               TK_BIN_DIR | 
|---|
 | 169 | #------------------------------------------------------------------------ | 
|---|
 | 170 |  | 
|---|
 | 171 | AC_DEFUN([SC_LOAD_TKCONFIG], [ | 
|---|
 | 172 |     AC_MSG_CHECKING([for existence of $TK_BIN_DIR/tkConfig.sh]) | 
|---|
 | 173 |  | 
|---|
 | 174 |     if test -f "$TK_BIN_DIR/tkConfig.sh" ; then | 
|---|
 | 175 |         AC_MSG_RESULT([loading]) | 
|---|
 | 176 |         . $TK_BIN_DIR/tkConfig.sh | 
|---|
 | 177 |     else | 
|---|
 | 178 |         AC_MSG_RESULT([could not find $TK_BIN_DIR/tkConfig.sh]) | 
|---|
 | 179 |     fi | 
|---|
 | 180 |  | 
|---|
 | 181 |  | 
|---|
 | 182 |     AC_SUBST(TK_BIN_DIR) | 
|---|
 | 183 |     AC_SUBST(TK_SRC_DIR) | 
|---|
 | 184 |     AC_SUBST(TK_LIB_FILE) | 
|---|
 | 185 | ]) | 
|---|
 | 186 |  | 
|---|
 | 187 | #------------------------------------------------------------------------ | 
|---|
 | 188 | # SC_ENABLE_SHARED -- | 
|---|
 | 189 | # | 
|---|
 | 190 | #       Allows the building of shared libraries | 
|---|
 | 191 | # | 
|---|
 | 192 | # Arguments: | 
|---|
 | 193 | #       none | 
|---|
 | 194 | #        | 
|---|
 | 195 | # Results: | 
|---|
 | 196 | # | 
|---|
 | 197 | #       Adds the following arguments to configure: | 
|---|
 | 198 | #               --enable-shared=yes|no | 
|---|
 | 199 | # | 
|---|
 | 200 | #       Defines the following vars: | 
|---|
 | 201 | #               STATIC_BUILD    Used for building import/export libraries | 
|---|
 | 202 | #                               on Windows. | 
|---|
 | 203 | # | 
|---|
 | 204 | #       Sets the following vars: | 
|---|
 | 205 | #               SHARED_BUILD    Value of 1 or 0 | 
|---|
 | 206 | #------------------------------------------------------------------------ | 
|---|
 | 207 |  | 
|---|
 | 208 | AC_DEFUN([SC_ENABLE_SHARED], [ | 
|---|
 | 209 |     AC_MSG_CHECKING([how to build libraries]) | 
|---|
 | 210 |     AC_ARG_ENABLE(shared, | 
|---|
 | 211 |         [  --enable-shared         build and link with shared libraries [--enable-shared]], | 
|---|
 | 212 |     [tcl_ok=$enableval], [tcl_ok=yes]) | 
|---|
 | 213 |  | 
|---|
 | 214 |     if test "${enable_shared+set}" = set; then | 
|---|
 | 215 |         enableval="$enable_shared" | 
|---|
 | 216 |         tcl_ok=$enableval | 
|---|
 | 217 |     else | 
|---|
 | 218 |         tcl_ok=yes | 
|---|
 | 219 |     fi | 
|---|
 | 220 |  | 
|---|
 | 221 |     if test "$tcl_ok" = "yes" ; then | 
|---|
 | 222 |         AC_MSG_RESULT([shared]) | 
|---|
 | 223 |         SHARED_BUILD=1 | 
|---|
 | 224 |     else | 
|---|
 | 225 |         AC_MSG_RESULT([static]) | 
|---|
 | 226 |         SHARED_BUILD=0 | 
|---|
 | 227 |         AC_DEFINE(STATIC_BUILD) | 
|---|
 | 228 |     fi | 
|---|
 | 229 | ]) | 
|---|
 | 230 |  | 
|---|
 | 231 | #------------------------------------------------------------------------ | 
|---|
 | 232 | # SC_ENABLE_THREADS -- | 
|---|
 | 233 | # | 
|---|
 | 234 | #       Specify if thread support should be enabled | 
|---|
 | 235 | # | 
|---|
 | 236 | # Arguments: | 
|---|
 | 237 | #       none | 
|---|
 | 238 | #        | 
|---|
 | 239 | # Results: | 
|---|
 | 240 | # | 
|---|
 | 241 | #       Adds the following arguments to configure: | 
|---|
 | 242 | #               --enable-threads=yes|no | 
|---|
 | 243 | # | 
|---|
 | 244 | #       Defines the following vars: | 
|---|
 | 245 | #               TCL_THREADS | 
|---|
 | 246 | #------------------------------------------------------------------------ | 
|---|
 | 247 |  | 
|---|
 | 248 | AC_DEFUN([SC_ENABLE_THREADS], [ | 
|---|
 | 249 |     AC_MSG_CHECKING(for building with threads) | 
|---|
 | 250 |     AC_ARG_ENABLE(threads, [  --enable-threads        build with threads], | 
|---|
 | 251 |         [tcl_ok=$enableval], [tcl_ok=no]) | 
|---|
 | 252 |  | 
|---|
 | 253 |     if test "$tcl_ok" = "yes"; then | 
|---|
 | 254 |         AC_MSG_RESULT(yes) | 
|---|
 | 255 |         TCL_THREADS=1 | 
|---|
 | 256 |         AC_DEFINE(TCL_THREADS) | 
|---|
 | 257 |         # USE_THREAD_ALLOC tells us to try the special thread-based | 
|---|
 | 258 |         # allocator that significantly reduces lock contention | 
|---|
 | 259 |         AC_DEFINE(USE_THREAD_ALLOC) | 
|---|
 | 260 |     else | 
|---|
 | 261 |         TCL_THREADS=0 | 
|---|
 | 262 |         AC_MSG_RESULT([no (default)]) | 
|---|
 | 263 |     fi | 
|---|
 | 264 |     AC_SUBST(TCL_THREADS) | 
|---|
 | 265 | ]) | 
|---|
 | 266 |  | 
|---|
 | 267 | #------------------------------------------------------------------------ | 
|---|
 | 268 | # SC_ENABLE_SYMBOLS -- | 
|---|
 | 269 | # | 
|---|
 | 270 | #       Specify if debugging symbols should be used | 
|---|
 | 271 | #       Memory (TCL_MEM_DEBUG) and compile (TCL_COMPILE_DEBUG) debugging | 
|---|
 | 272 | #       can also be enabled. | 
|---|
 | 273 | # | 
|---|
 | 274 | # Arguments: | 
|---|
 | 275 | #       none | 
|---|
 | 276 | #        | 
|---|
 | 277 | #       Requires the following vars to be set in the Makefile: | 
|---|
 | 278 | #               CFLAGS_DEBUG | 
|---|
 | 279 | #               CFLAGS_OPTIMIZE | 
|---|
 | 280 | #        | 
|---|
 | 281 | # Results: | 
|---|
 | 282 | # | 
|---|
 | 283 | #       Adds the following arguments to configure: | 
|---|
 | 284 | #               --enable-symbols | 
|---|
 | 285 | # | 
|---|
 | 286 | #       Defines the following vars: | 
|---|
 | 287 | #               CFLAGS_DEFAULT  Sets to $(CFLAGS_DEBUG) if true | 
|---|
 | 288 | #                               Sets to $(CFLAGS_OPTIMIZE) if false | 
|---|
 | 289 | #               LDFLAGS_DEFAULT Sets to $(LDFLAGS_DEBUG) if true | 
|---|
 | 290 | #                               Sets to $(LDFLAGS_OPTIMIZE) if false | 
|---|
 | 291 | #               DBGX            Debug library extension | 
|---|
 | 292 | # | 
|---|
 | 293 | #------------------------------------------------------------------------ | 
|---|
 | 294 |  | 
|---|
 | 295 | AC_DEFUN([SC_ENABLE_SYMBOLS], [ | 
|---|
 | 296 |     AC_MSG_CHECKING([for build with symbols]) | 
|---|
 | 297 |     AC_ARG_ENABLE(symbols, [  --enable-symbols        build with debugging symbols [--disable-symbols]],    [tcl_ok=$enableval], [tcl_ok=no]) | 
|---|
 | 298 | # FIXME: Currently, LDFLAGS_DEFAULT is not used, it should work like CFLAGS_DEFAULT. | 
|---|
 | 299 |     if test "$tcl_ok" = "no"; then | 
|---|
 | 300 |         CFLAGS_DEFAULT='$(CFLAGS_OPTIMIZE)' | 
|---|
 | 301 |         LDFLAGS_DEFAULT='$(LDFLAGS_OPTIMIZE)' | 
|---|
 | 302 |         DBGX="" | 
|---|
 | 303 |         AC_MSG_RESULT([no]) | 
|---|
 | 304 |  | 
|---|
 | 305 |         AC_DEFINE(TCL_CFG_OPTIMIZED) | 
|---|
 | 306 |     else | 
|---|
 | 307 |         CFLAGS_DEFAULT='$(CFLAGS_DEBUG)' | 
|---|
 | 308 |         LDFLAGS_DEFAULT='$(LDFLAGS_DEBUG)' | 
|---|
 | 309 |         DBGX=g | 
|---|
 | 310 |         if test "$tcl_ok" = "yes"; then | 
|---|
 | 311 |             AC_MSG_RESULT([yes (standard debugging)]) | 
|---|
 | 312 |         fi | 
|---|
 | 313 |     fi | 
|---|
 | 314 |     AC_SUBST(CFLAGS_DEFAULT) | 
|---|
 | 315 |     AC_SUBST(LDFLAGS_DEFAULT) | 
|---|
 | 316 |     AC_DEFINE(TCL_CFG_DEBUG) | 
|---|
 | 317 |  | 
|---|
 | 318 |     if test "$tcl_ok" = "mem" -o "$tcl_ok" = "all"; then | 
|---|
 | 319 |         AC_DEFINE(TCL_MEM_DEBUG) | 
|---|
 | 320 |     fi | 
|---|
 | 321 |  | 
|---|
 | 322 |     if test "$tcl_ok" = "compile" -o "$tcl_ok" = "all"; then | 
|---|
 | 323 |         AC_DEFINE(TCL_COMPILE_DEBUG) | 
|---|
 | 324 |         AC_DEFINE(TCL_COMPILE_STATS) | 
|---|
 | 325 |     fi | 
|---|
 | 326 |  | 
|---|
 | 327 |     if test "$tcl_ok" != "yes" -a "$tcl_ok" != "no"; then | 
|---|
 | 328 |         if test "$tcl_ok" = "all"; then | 
|---|
 | 329 |             AC_MSG_RESULT([enabled symbols mem compile debugging]) | 
|---|
 | 330 |         else | 
|---|
 | 331 |             AC_MSG_RESULT([enabled $tcl_ok debugging]) | 
|---|
 | 332 |         fi | 
|---|
 | 333 |     fi | 
|---|
 | 334 | ]) | 
|---|
 | 335 |  | 
|---|
 | 336 | #-------------------------------------------------------------------- | 
|---|
 | 337 | # SC_CONFIG_CFLAGS | 
|---|
 | 338 | # | 
|---|
 | 339 | #       Try to determine the proper flags to pass to the compiler | 
|---|
 | 340 | #       for building shared libraries and other such nonsense. | 
|---|
 | 341 | # | 
|---|
 | 342 | #       NOTE: The backslashes in quotes below are substituted twice | 
|---|
 | 343 | #       due to the fact that they are in a macro and then inlined | 
|---|
 | 344 | #       in the final configure script. | 
|---|
 | 345 | # | 
|---|
 | 346 | # Arguments: | 
|---|
 | 347 | #       none | 
|---|
 | 348 | # | 
|---|
 | 349 | # Results: | 
|---|
 | 350 | # | 
|---|
 | 351 | #       Can the following vars: | 
|---|
 | 352 | #               EXTRA_CFLAGS | 
|---|
 | 353 | #               CFLAGS_DEBUG | 
|---|
 | 354 | #               CFLAGS_OPTIMIZE | 
|---|
 | 355 | #               CFLAGS_WARNING | 
|---|
 | 356 | #               LDFLAGS_DEBUG | 
|---|
 | 357 | #               LDFLAGS_OPTIMIZE | 
|---|
 | 358 | #               LDFLAGS_CONSOLE | 
|---|
 | 359 | #               LDFLAGS_WINDOW | 
|---|
 | 360 | #               CC_OBJNAME | 
|---|
 | 361 | #               CC_EXENAME | 
|---|
 | 362 | #               CYGPATH | 
|---|
 | 363 | #               STLIB_LD | 
|---|
 | 364 | #               SHLIB_LD | 
|---|
 | 365 | #               SHLIB_LD_LIBS | 
|---|
 | 366 | #               LIBS | 
|---|
 | 367 | #               AR | 
|---|
 | 368 | #               RC | 
|---|
 | 369 | #               RES | 
|---|
 | 370 | # | 
|---|
 | 371 | #               MAKE_LIB | 
|---|
 | 372 | #               MAKE_EXE | 
|---|
 | 373 | #               MAKE_DLL | 
|---|
 | 374 | # | 
|---|
 | 375 | #               LIBSUFFIX | 
|---|
 | 376 | #               LIBPREFIX | 
|---|
 | 377 | #               LIBRARIES | 
|---|
 | 378 | #               EXESUFFIX | 
|---|
 | 379 | #               DLLSUFFIX | 
|---|
 | 380 | # | 
|---|
 | 381 | #-------------------------------------------------------------------- | 
|---|
 | 382 |  | 
|---|
 | 383 | AC_DEFUN([SC_CONFIG_CFLAGS], [ | 
|---|
 | 384 |  | 
|---|
 | 385 |     # Step 0: Enable 64 bit support? | 
|---|
 | 386 |  | 
|---|
 | 387 |     AC_MSG_CHECKING([if 64bit support is requested]) | 
|---|
 | 388 |     AC_ARG_ENABLE(64bit,[  --enable-64bit          enable 64bit support (where applicable)], [do64bit=$enableval], [do64bit=no]) | 
|---|
 | 389 |     AC_MSG_RESULT($do64bit) | 
|---|
 | 390 |  | 
|---|
 | 391 |     # Cross-compiling options for Windows/CE builds | 
|---|
 | 392 |  | 
|---|
 | 393 |     AC_MSG_CHECKING([if Windows/CE build is requested]) | 
|---|
 | 394 |     AC_ARG_ENABLE(wince,[  --enable-wince          enable Win/CE support (where applicable)], [doWince=$enableval], [doWince=no]) | 
|---|
 | 395 |     AC_MSG_RESULT($doWince) | 
|---|
 | 396 |  | 
|---|
 | 397 |     AC_MSG_CHECKING([for Windows/CE celib directory]) | 
|---|
 | 398 |     AC_ARG_WITH(celib,[  --with-celib=DIR        use Windows/CE support library from DIR], | 
|---|
 | 399 |             CELIB_DIR=$withval, CELIB_DIR=NO_CELIB) | 
|---|
 | 400 |     AC_MSG_RESULT([$CELIB_DIR]) | 
|---|
 | 401 |  | 
|---|
 | 402 |     # Set some defaults (may get changed below) | 
|---|
 | 403 |     EXTRA_CFLAGS="" | 
|---|
 | 404 |  | 
|---|
 | 405 |     AC_CHECK_PROG(CYGPATH, cygpath, cygpath -w, echo) | 
|---|
 | 406 |  | 
|---|
 | 407 |     SHLIB_SUFFIX=".dll" | 
|---|
 | 408 |  | 
|---|
 | 409 |     # Check for a bug in gcc's windres that causes the | 
|---|
 | 410 |     # compile to fail when a Windows native path is | 
|---|
 | 411 |     # passed into windres. The mingw toolchain requires | 
|---|
 | 412 |     # Windows native paths while Cygwin should work | 
|---|
 | 413 |     # with both. Avoid the bug by passing a POSIX | 
|---|
 | 414 |     # path when using the Cygwin toolchain. | 
|---|
 | 415 |  | 
|---|
 | 416 |     if test "$GCC" = "yes" && test "$CYGPATH" != "echo" ; then | 
|---|
 | 417 |         conftest=/tmp/conftest.rc | 
|---|
 | 418 |         echo "STRINGTABLE BEGIN" > $conftest | 
|---|
 | 419 |         echo "101 \"name\"" >> $conftest | 
|---|
 | 420 |         echo "END" >> $conftest | 
|---|
 | 421 |  | 
|---|
 | 422 |         AC_MSG_CHECKING([for Windows native path bug in windres]) | 
|---|
 | 423 |         cyg_conftest=`$CYGPATH $conftest` | 
|---|
 | 424 |         if AC_TRY_COMMAND($RC -o conftest.res.o $cyg_conftest) ; then | 
|---|
 | 425 |             AC_MSG_RESULT([no]) | 
|---|
 | 426 |         else | 
|---|
 | 427 |             AC_MSG_RESULT([yes]) | 
|---|
 | 428 |             CYGPATH=echo | 
|---|
 | 429 |         fi | 
|---|
 | 430 |         conftest= | 
|---|
 | 431 |         cyg_conftest= | 
|---|
 | 432 |     fi | 
|---|
 | 433 |  | 
|---|
 | 434 |     if test "$CYGPATH" = "echo" || test "$ac_cv_cygwin" = "yes"; then | 
|---|
 | 435 |         DEPARG='"$<"' | 
|---|
 | 436 |     else | 
|---|
 | 437 |         DEPARG='"$(shell $(CYGPATH) $<)"' | 
|---|
 | 438 |     fi | 
|---|
 | 439 |  | 
|---|
 | 440 |     # set various compiler flags depending on whether we are using gcc or cl | 
|---|
 | 441 |  | 
|---|
 | 442 |     AC_MSG_CHECKING([compiler flags]) | 
|---|
 | 443 |     if test "${GCC}" = "yes" ; then | 
|---|
 | 444 |         if test "$do64bit" != "no" ; then | 
|---|
 | 445 |             AC_MSG_WARN([64bit mode not supported with GCC on Windows]) | 
|---|
 | 446 |         fi | 
|---|
 | 447 |         SHLIB_LD="" | 
|---|
 | 448 |         SHLIB_LD_LIBS="" | 
|---|
 | 449 |         LIBS="-lws2_32" | 
|---|
 | 450 |         # mingw needs to link ole32 and oleaut32 for [send], but MSVC doesn't | 
|---|
 | 451 |         LIBS_GUI="-lgdi32 -lcomdlg32 -limm32 -lcomctl32 -lshell32 -luuid -lole32 -loleaut32" | 
|---|
 | 452 |         STLIB_LD='${AR} cr' | 
|---|
 | 453 |         RC_OUT=-o | 
|---|
 | 454 |         RC_TYPE= | 
|---|
 | 455 |         RC_INCLUDE=--include | 
|---|
 | 456 |         RC_DEFINE=--define | 
|---|
 | 457 |         RES=res.o | 
|---|
 | 458 |         MAKE_LIB="\${STLIB_LD} \[$]@" | 
|---|
 | 459 |         POST_MAKE_LIB="\${RANLIB} \[$]@" | 
|---|
 | 460 |         MAKE_EXE="\${CC} -o \[$]@" | 
|---|
 | 461 |         LIBPREFIX="lib" | 
|---|
 | 462 |  | 
|---|
 | 463 |         #if test "$ac_cv_cygwin" = "yes"; then | 
|---|
 | 464 |         #    extra_cflags="-mno-cygwin" | 
|---|
 | 465 |         #    extra_ldflags="-mno-cygwin" | 
|---|
 | 466 |         #else | 
|---|
 | 467 |         #    extra_cflags="" | 
|---|
 | 468 |         #    extra_ldflags="" | 
|---|
 | 469 |         #fi | 
|---|
 | 470 |  | 
|---|
 | 471 |         if test "$ac_cv_cygwin" = "yes"; then | 
|---|
 | 472 |           touch ac$$.c | 
|---|
 | 473 |           if ${CC} -c -mwin32 ac$$.c >/dev/null 2>&1; then | 
|---|
 | 474 |             case "$extra_cflags" in | 
|---|
 | 475 |               *-mwin32*) ;; | 
|---|
 | 476 |               *) extra_cflags="-mwin32 $extra_cflags" ;; | 
|---|
 | 477 |             esac | 
|---|
 | 478 |             case "$extra_ldflags" in | 
|---|
 | 479 |               *-mwin32*) ;; | 
|---|
 | 480 |               *) extra_ldflags="-mwin32 $extra_ldflags" ;; | 
|---|
 | 481 |             esac | 
|---|
 | 482 |           fi | 
|---|
 | 483 |           rm -f ac$$.o ac$$.c | 
|---|
 | 484 |         else | 
|---|
 | 485 |           extra_cflags='' | 
|---|
 | 486 |           extra_ldflags='' | 
|---|
 | 487 |         fi | 
|---|
 | 488 |  | 
|---|
 | 489 |         if test "${SHARED_BUILD}" = "0" ; then | 
|---|
 | 490 |             # static | 
|---|
 | 491 |             AC_MSG_RESULT([using static flags]) | 
|---|
 | 492 |             runtime= | 
|---|
 | 493 |             MAKE_DLL="echo " | 
|---|
 | 494 |             LIBSUFFIX="s\${DBGX}.a" | 
|---|
 | 495 |             LIBFLAGSUFFIX="s\${DBGX}" | 
|---|
 | 496 |             LIBRARIES="\${STATIC_LIBRARIES}" | 
|---|
 | 497 |             EXESUFFIX="s\${DBGX}.exe" | 
|---|
 | 498 |         else | 
|---|
 | 499 |             # dynamic | 
|---|
 | 500 |             AC_MSG_RESULT([using shared flags]) | 
|---|
 | 501 |  | 
|---|
 | 502 |             # ad-hoc check to see if CC supports -shared. | 
|---|
 | 503 |             if "${CC}" -shared 2>&1 | egrep ': -shared not supported' >/dev/null; then | 
|---|
 | 504 |                 AC_MSG_ERROR([${CC} does not support the -shared option. | 
|---|
 | 505 |                 You will need to upgrade to a newer version of the toolchain.]) | 
|---|
 | 506 |             fi | 
|---|
 | 507 |  | 
|---|
 | 508 |             runtime= | 
|---|
 | 509 |             # Link with gcc since ld does not link to default libs like | 
|---|
 | 510 |             # -luser32 and -lmsvcrt by default. Make sure CFLAGS is | 
|---|
 | 511 |             # included so -mno-cygwin passed the correct libs to the linker. | 
|---|
 | 512 |             SHLIB_LD='${CC} -shared ${CFLAGS}' | 
|---|
 | 513 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 514 |             # Add SHLIB_LD_LIBS to the Make rule, not here. | 
|---|
 | 515 |             MAKE_DLL="\${SHLIB_LD} \$(LDFLAGS) -o \[$]@ ${extra_ldflags} \ | 
|---|
 | 516 |                 -Wl,--out-implib,\$(patsubst %.dll,lib%.a,\[$]@)" | 
|---|
 | 517 |  | 
|---|
 | 518 |             LIBSUFFIX="\${DBGX}.a" | 
|---|
 | 519 |             LIBFLAGSUFFIX="\${DBGX}" | 
|---|
 | 520 |             EXESUFFIX="\${DBGX}.exe" | 
|---|
 | 521 |             LIBRARIES="\${SHARED_LIBRARIES}" | 
|---|
 | 522 |         fi | 
|---|
 | 523 |         # DLLSUFFIX is separate because it is the building block for | 
|---|
 | 524 |         # users of tclConfig.sh that may build shared or static. | 
|---|
 | 525 |         DLLSUFFIX="\${DBGX}.dll" | 
|---|
 | 526 |         SHLIB_SUFFIX=.dll | 
|---|
 | 527 |  | 
|---|
 | 528 |         EXTRA_CFLAGS="${extra_cflags}" | 
|---|
 | 529 |  | 
|---|
 | 530 |         CFLAGS_DEBUG=-g | 
|---|
 | 531 |         CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer" | 
|---|
 | 532 |         CFLAGS_WARNING="-Wall" | 
|---|
 | 533 |         LDFLAGS_DEBUG= | 
|---|
 | 534 |         LDFLAGS_OPTIMIZE= | 
|---|
 | 535 |  | 
|---|
 | 536 |         # Specify the CC output file names based on the target name | 
|---|
 | 537 |         CC_OBJNAME="-o \[$]@" | 
|---|
 | 538 |         CC_EXENAME="-o \[$]@" | 
|---|
 | 539 |  | 
|---|
 | 540 |         # Specify linker flags depending on the type of app being  | 
|---|
 | 541 |         # built -- Console vs. Window. | 
|---|
 | 542 |         # | 
|---|
 | 543 |         # ORIGINAL COMMENT: | 
|---|
 | 544 |         # We need to pass -e _WinMain@16 so that ld will use | 
|---|
 | 545 |         # WinMain() instead of main() as the entry point. We can't | 
|---|
 | 546 |         # use autoconf to check for this case since it would need | 
|---|
 | 547 |         # to run an executable and that does not work when | 
|---|
 | 548 |         # cross compiling. Remove this -e workaround once we | 
|---|
 | 549 |         # require a gcc that does not have this bug. | 
|---|
 | 550 |         # | 
|---|
 | 551 |         # MK NOTE: Tk should use a different mechanism. This causes  | 
|---|
 | 552 |         # interesting problems, such as wish dying at startup. | 
|---|
 | 553 |         #LDFLAGS_WINDOW="-mwindows -e _WinMain@16 ${extra_ldflags}" | 
|---|
 | 554 |         LDFLAGS_CONSOLE="-mconsole ${extra_ldflags}" | 
|---|
 | 555 |         LDFLAGS_WINDOW="-mwindows ${extra_ldflags}" | 
|---|
 | 556 |  | 
|---|
 | 557 |         # gcc under Windows supports only 32bit builds | 
|---|
 | 558 |         MACHINE="X86" | 
|---|
 | 559 |     else | 
|---|
 | 560 |         if test "${SHARED_BUILD}" = "0" ; then | 
|---|
 | 561 |             # static | 
|---|
 | 562 |             AC_MSG_RESULT([using static flags]) | 
|---|
 | 563 |             runtime=-MT | 
|---|
 | 564 |             MAKE_DLL="echo " | 
|---|
 | 565 |             LIBSUFFIX="s\${DBGX}.lib" | 
|---|
 | 566 |             LIBFLAGSUFFIX="s\${DBGX}" | 
|---|
 | 567 |             LIBRARIES="\${STATIC_LIBRARIES}" | 
|---|
 | 568 |             EXESUFFIX="s\${DBGX}.exe" | 
|---|
 | 569 |             SHLIB_LD_LIBS="" | 
|---|
 | 570 |         else | 
|---|
 | 571 |             # dynamic | 
|---|
 | 572 |             AC_MSG_RESULT([using shared flags]) | 
|---|
 | 573 |             runtime=-MD | 
|---|
 | 574 |             # Add SHLIB_LD_LIBS to the Make rule, not here. | 
|---|
 | 575 |             MAKE_DLL="\${SHLIB_LD} \$(LDFLAGS) -out:\[$]@" | 
|---|
 | 576 |             LIBSUFFIX="\${DBGX}.lib" | 
|---|
 | 577 |             LIBFLAGSUFFIX="\${DBGX}" | 
|---|
 | 578 |             EXESUFFIX="\${DBGX}.exe" | 
|---|
 | 579 |             LIBRARIES="\${SHARED_LIBRARIES}" | 
|---|
 | 580 |             SHLIB_LD_LIBS='${LIBS}' | 
|---|
 | 581 |         fi | 
|---|
 | 582 |         # DLLSUFFIX is separate because it is the building block for | 
|---|
 | 583 |         # users of tclConfig.sh that may build shared or static. | 
|---|
 | 584 |         DLLSUFFIX="\${DBGX}.dll" | 
|---|
 | 585 |  | 
|---|
 | 586 |         # This is a 2-stage check to make sure we have the 64-bit SDK | 
|---|
 | 587 |         # We have to know where the SDK is installed. | 
|---|
 | 588 |         # This magic is based on MS Platform SDK for Win2003 SP1 - hobbs | 
|---|
 | 589 |         # MACHINE is IX86 for LINK, but this is used by the manifest, | 
|---|
 | 590 |         # which requires x86|amd64|ia64. | 
|---|
 | 591 |         MACHINE="X86" | 
|---|
 | 592 |         if test "$do64bit" != "no" ; then | 
|---|
 | 593 |             if test "x${MSSDK}x" = "xx" ; then | 
|---|
 | 594 |                 MSSDK="C:/Progra~1/Microsoft Platform SDK" | 
|---|
 | 595 |             fi | 
|---|
 | 596 |             MSSDK=`echo "$MSSDK" | sed -e 's!\\\!/!g'` | 
|---|
 | 597 |             PATH64="" | 
|---|
 | 598 |             case "$do64bit" in | 
|---|
 | 599 |               amd64|x64|yes) | 
|---|
 | 600 |                 MACHINE="AMD64" ; # assume AMD64 as default 64-bit build | 
|---|
 | 601 |                 PATH64="${MSSDK}/Bin/Win64/x86/AMD64" | 
|---|
 | 602 |                 ;; | 
|---|
 | 603 |               ia64) | 
|---|
 | 604 |                 MACHINE="IA64" | 
|---|
 | 605 |                 PATH64="${MSSDK}/Bin/Win64" | 
|---|
 | 606 |                 ;; | 
|---|
 | 607 |             esac | 
|---|
 | 608 |             if test ! -d "${PATH64}" ; then | 
|---|
 | 609 |                 AC_MSG_WARN([Could not find 64-bit $MACHINE SDK to enable 64bit mode]) | 
|---|
 | 610 |                 AC_MSG_WARN([Ensure latest Platform SDK is installed]) | 
|---|
 | 611 |                 do64bit="no" | 
|---|
 | 612 |             else | 
|---|
 | 613 |                 AC_MSG_RESULT([   Using 64-bit $MACHINE mode]) | 
|---|
 | 614 |             fi | 
|---|
 | 615 |         fi | 
|---|
 | 616 |  | 
|---|
 | 617 |         LIBS="user32.lib advapi32.lib ws2_32.lib" | 
|---|
 | 618 |         if test "$do64bit" != "no" ; then | 
|---|
 | 619 |             # The space-based-path will work for the Makefile, but will | 
|---|
 | 620 |             # not work if AC_TRY_COMPILE is called.  TEA has the | 
|---|
 | 621 |             # TEA_PATH_NOSPACE to avoid this issue. | 
|---|
 | 622 |             CC="\"${PATH64}/cl.exe\" -I\"${MSSDK}/Include\" \ | 
|---|
 | 623 |                 -I\"${MSSDK}/Include/crt\" -I\"${MSSDK}/Include/crt/sys\"" | 
|---|
 | 624 |             RC="\"${MSSDK}/bin/rc.exe\"" | 
|---|
 | 625 |             CFLAGS_DEBUG="-nologo -Zi -Od ${runtime}d" | 
|---|
 | 626 |             # Do not use -O2 for Win64 - this has proved buggy in code gen. | 
|---|
 | 627 |             CFLAGS_OPTIMIZE="-nologo -O1 ${runtime}" | 
|---|
 | 628 |             lflags="-nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\"" | 
|---|
 | 629 |             LINKBIN="\"${PATH64}/link.exe\"" | 
|---|
 | 630 |             # Avoid 'unresolved external symbol __security_cookie' errors. | 
|---|
 | 631 |             # c.f. http://support.microsoft.com/?id=894573 | 
|---|
 | 632 |             LIBS="$LIBS bufferoverflowU.lib" | 
|---|
 | 633 |         else | 
|---|
 | 634 |             RC="rc" | 
|---|
 | 635 |             # -Od - no optimization | 
|---|
 | 636 |             # -WX - warnings as errors | 
|---|
 | 637 |             CFLAGS_DEBUG="-nologo -Z7 -Od -WX ${runtime}d" | 
|---|
 | 638 |             # -O2 - create fast code (/Og /Oi /Ot /Oy /Ob2 /Gs /GF /Gy) | 
|---|
 | 639 |             CFLAGS_OPTIMIZE="-nologo -O2 ${runtime}" | 
|---|
 | 640 |             lflags="-nologo" | 
|---|
 | 641 |             LINKBIN="link" | 
|---|
 | 642 |         fi | 
|---|
 | 643 |  | 
|---|
 | 644 |         if test "$doWince" != "no" ; then | 
|---|
 | 645 |             # Set defaults for common evc4/PPC2003 setup | 
|---|
 | 646 |             # Currently Tcl requires 300+, possibly 420+ for sockets | 
|---|
 | 647 |             CEVERSION=420;              # could be 211 300 301 400 420 ... | 
|---|
 | 648 |             TARGETCPU=ARMV4;    # could be ARMV4 ARM MIPS SH3 X86 ... | 
|---|
 | 649 |             ARCH=ARM;           # could be ARM MIPS X86EM ... | 
|---|
 | 650 |             PLATFORM="Pocket PC 2003"; # or "Pocket PC 2002" | 
|---|
 | 651 |             if test "$doWince" != "yes"; then | 
|---|
 | 652 |                 # If !yes then the user specified something | 
|---|
 | 653 |                 # Reset ARCH to allow user to skip specifying it | 
|---|
 | 654 |                 ARCH= | 
|---|
 | 655 |                 eval `echo $doWince | awk -F "," '{ \ | 
|---|
 | 656 |         if (length([$]1)) { printf "CEVERSION=\"%s\"\n", [$]1; \ | 
|---|
 | 657 |         if ([$]1 < 400)   { printf "PLATFORM=\"Pocket PC 2002\"\n" } }; \ | 
|---|
 | 658 |         if (length([$]2)) { printf "TARGETCPU=\"%s\"\n", toupper([$]2) }; \ | 
|---|
 | 659 |         if (length([$]3)) { printf "ARCH=\"%s\"\n", toupper([$]3) }; \ | 
|---|
 | 660 |         if (length([$]4)) { printf "PLATFORM=\"%s\"\n", [$]4 }; \ | 
|---|
 | 661 |                 }'` | 
|---|
 | 662 |                 if test "x${ARCH}" = "x" ; then | 
|---|
 | 663 |                     ARCH=$TARGETCPU; | 
|---|
 | 664 |                 fi | 
|---|
 | 665 |             fi | 
|---|
 | 666 |             OSVERSION=WCE$CEVERSION; | 
|---|
 | 667 |             if test "x${WCEROOT}" = "x" ; then | 
|---|
 | 668 |                 WCEROOT="C:/Program Files/Microsoft eMbedded C++ 4.0" | 
|---|
 | 669 |                 if test ! -d "${WCEROOT}" ; then | 
|---|
 | 670 |                     WCEROOT="C:/Program Files/Microsoft eMbedded Tools" | 
|---|
 | 671 |                 fi | 
|---|
 | 672 |             fi | 
|---|
 | 673 |             if test "x${SDKROOT}" = "x" ; then | 
|---|
 | 674 |                 SDKROOT="C:/Program Files/Windows CE Tools" | 
|---|
 | 675 |                 if test ! -d "${SDKROOT}" ; then | 
|---|
 | 676 |                     SDKROOT="C:/Windows CE Tools" | 
|---|
 | 677 |                 fi | 
|---|
 | 678 |             fi | 
|---|
 | 679 |             # The space-based-path will work for the Makefile, but will | 
|---|
 | 680 |             # not work if AC_TRY_COMPILE is called. | 
|---|
 | 681 |             WCEROOT=`echo "$WCEROOT" | sed -e 's!\\\!/!g'` | 
|---|
 | 682 |             SDKROOT=`echo "$SDKROOT" | sed -e 's!\\\!/!g'` | 
|---|
 | 683 |             CELIB_DIR=`echo "$CELIB_DIR" | sed -e 's!\\\!/!g'` | 
|---|
 | 684 |             if test ! -d "${CELIB_DIR}/inc"; then | 
|---|
 | 685 |                 AC_MSG_ERROR([Invalid celib directory "${CELIB_DIR}"]) | 
|---|
 | 686 |             fi | 
|---|
 | 687 |             if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}"\ | 
|---|
 | 688 |                 -o ! -d "${WCEROOT}/EVC/${OSVERSION}/bin"; then | 
|---|
 | 689 |                 AC_MSG_ERROR([could not find PocketPC SDK or target compiler to enable WinCE mode [$CEVERSION,$TARGETCPU,$ARCH,$PLATFORM]]) | 
|---|
 | 690 |             else | 
|---|
 | 691 |                 CEINCLUDE="${SDKROOT}/${OSVERSION}/${PLATFORM}/include" | 
|---|
 | 692 |                 if test -d "${CEINCLUDE}/${TARGETCPU}" ; then | 
|---|
 | 693 |                     CEINCLUDE="${CEINCLUDE}/${TARGETCPU}" | 
|---|
 | 694 |                 fi | 
|---|
 | 695 |                 CELIBPATH="${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" | 
|---|
 | 696 |             fi | 
|---|
 | 697 |         fi | 
|---|
 | 698 |  | 
|---|
 | 699 |         if test "$doWince" != "no" ; then | 
|---|
 | 700 |             CEBINROOT="${WCEROOT}/EVC/${OSVERSION}/bin" | 
|---|
 | 701 |             if test "${TARGETCPU}" = "X86"; then | 
|---|
 | 702 |                 CC="${CEBINROOT}/cl.exe" | 
|---|
 | 703 |             else | 
|---|
 | 704 |                 CC="${CEBINROOT}/cl${ARCH}.exe" | 
|---|
 | 705 |             fi | 
|---|
 | 706 |             CC="\"${CC}\" -I\"${CELIB_DIR}/inc\" -I\"${CEINCLUDE}\"" | 
|---|
 | 707 |             RC="\"${WCEROOT}/Common/EVC/bin/rc.exe\"" | 
|---|
 | 708 |             arch=`echo ${ARCH} | awk '{print tolower([$]0)}'` | 
|---|
 | 709 |             defs="${ARCH} _${ARCH}_ ${arch} PALM_SIZE _MT _DLL _WINDOWS" | 
|---|
 | 710 |             for i in $defs ; do | 
|---|
 | 711 |                 AC_DEFINE_UNQUOTED($i) | 
|---|
 | 712 |             done | 
|---|
 | 713 | #           if test "${ARCH}" = "X86EM"; then | 
|---|
 | 714 | #               AC_DEFINE_UNQUOTED(_WIN32_WCE_EMULATION) | 
|---|
 | 715 | #           fi | 
|---|
 | 716 |             AC_DEFINE_UNQUOTED(_WIN32_WCE, $CEVERSION) | 
|---|
 | 717 |             AC_DEFINE_UNQUOTED(UNDER_CE, $CEVERSION) | 
|---|
 | 718 |             CFLAGS_DEBUG="-nologo -Zi -Od" | 
|---|
 | 719 |             CFLAGS_OPTIMIZE="-nologo -O2" | 
|---|
 | 720 |             lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'` | 
|---|
 | 721 |             lflags="-nodefaultlib -MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo" | 
|---|
 | 722 |             LINKBIN="\"${CEBINROOT}/link.exe\"" | 
|---|
 | 723 |             AC_SUBST(CELIB_DIR) | 
|---|
 | 724 |             if test "${CEVERSION}" -lt 400 ; then | 
|---|
 | 725 |                 LIBS="coredll.lib corelibc.lib winsock.lib" | 
|---|
 | 726 |             else | 
|---|
 | 727 |                 LIBS="coredll.lib corelibc.lib ws2.lib" | 
|---|
 | 728 |             fi | 
|---|
 | 729 |             # celib currently stuck at wce300 status | 
|---|
 | 730 |             #LIBS="$LIBS \${CELIB_DIR}/wince-${ARCH}-pocket-${OSVERSION}-release/celib.lib" | 
|---|
 | 731 |             LIBS="$LIBS \"\${CELIB_DIR}/wince-${ARCH}-pocket-wce300-release/celib.lib\"" | 
|---|
 | 732 |             LIBS_GUI="commctrl.lib commdlg.lib" | 
|---|
 | 733 |         else | 
|---|
 | 734 |             LIBS_GUI="gdi32.lib comdlg32.lib imm32.lib comctl32.lib shell32.lib uuid.lib" | 
|---|
 | 735 |         fi | 
|---|
 | 736 |  | 
|---|
 | 737 |         SHLIB_LD="${LINKBIN} -dll -incremental:no ${lflags}" | 
|---|
 | 738 |         # link -lib only works when -lib is the first arg | 
|---|
 | 739 |         STLIB_LD="${LINKBIN} -lib ${lflags}" | 
|---|
 | 740 |         RC_OUT=-fo | 
|---|
 | 741 |         RC_TYPE=-r | 
|---|
 | 742 |         RC_INCLUDE=-i | 
|---|
 | 743 |         RC_DEFINE=-d | 
|---|
 | 744 |         RES=res | 
|---|
 | 745 |         MAKE_LIB="\${STLIB_LD} -out:\[$]@" | 
|---|
 | 746 |         POST_MAKE_LIB= | 
|---|
 | 747 |         MAKE_EXE="\${CC} -Fe\[$]@" | 
|---|
 | 748 |         LIBPREFIX="" | 
|---|
 | 749 |  | 
|---|
 | 750 |         EXTRA_CFLAGS="" | 
|---|
 | 751 |         CFLAGS_WARNING="-W3" | 
|---|
 | 752 |         LDFLAGS_DEBUG="-debug:full" | 
|---|
 | 753 |         LDFLAGS_OPTIMIZE="-release" | 
|---|
 | 754 |          | 
|---|
 | 755 |         # Specify the CC output file names based on the target name | 
|---|
 | 756 |         CC_OBJNAME="-Fo\[$]@" | 
|---|
 | 757 |         CC_EXENAME="-Fe\"\$(shell \$(CYGPATH) '\[$]@')\"" | 
|---|
 | 758 |  | 
|---|
 | 759 |         # Specify linker flags depending on the type of app being  | 
|---|
 | 760 |         # built -- Console vs. Window. | 
|---|
 | 761 |         if test "$doWince" != "no" -a "${TARGETCPU}" != "X86"; then | 
|---|
 | 762 |             LDFLAGS_CONSOLE="-link ${lflags}" | 
|---|
 | 763 |             LDFLAGS_WINDOW=${LDFLAGS_CONSOLE} | 
|---|
 | 764 |         else | 
|---|
 | 765 |             LDFLAGS_CONSOLE="-link -subsystem:console ${lflags}" | 
|---|
 | 766 |             LDFLAGS_WINDOW="-link -subsystem:windows ${lflags}" | 
|---|
 | 767 |         fi | 
|---|
 | 768 |     fi | 
|---|
 | 769 |  | 
|---|
 | 770 |     if test "$do64bit" != "no" ; then | 
|---|
 | 771 |         AC_DEFINE(TCL_CFG_DO64BIT) | 
|---|
 | 772 |     fi | 
|---|
 | 773 |  | 
|---|
 | 774 |     # DL_LIBS is empty, but then we match the Unix version | 
|---|
 | 775 |     AC_SUBST(DL_LIBS) | 
|---|
 | 776 |     AC_SUBST(CFLAGS_DEBUG) | 
|---|
 | 777 |     AC_SUBST(CFLAGS_OPTIMIZE) | 
|---|
 | 778 |     AC_SUBST(CFLAGS_WARNING) | 
|---|
 | 779 | ]) | 
|---|
 | 780 |  | 
|---|
 | 781 | #------------------------------------------------------------------------ | 
|---|
 | 782 | # SC_WITH_TCL -- | 
|---|
 | 783 | # | 
|---|
 | 784 | #       Location of the Tcl build directory. | 
|---|
 | 785 | # | 
|---|
 | 786 | # Arguments: | 
|---|
 | 787 | #       none | 
|---|
 | 788 | # | 
|---|
 | 789 | # Results: | 
|---|
 | 790 | # | 
|---|
 | 791 | #       Adds the following arguments to configure: | 
|---|
 | 792 | #               --with-tcl=... | 
|---|
 | 793 | # | 
|---|
 | 794 | #       Defines the following vars: | 
|---|
 | 795 | #               TCL_BIN_DIR     Full path to the tcl build dir. | 
|---|
 | 796 | #------------------------------------------------------------------------ | 
|---|
 | 797 |  | 
|---|
 | 798 | AC_DEFUN([SC_WITH_TCL], [ | 
|---|
 | 799 |     if test -d ../../tcl8.5$1/win;  then | 
|---|
 | 800 |         TCL_BIN_DEFAULT=../../tcl8.5$1/win | 
|---|
 | 801 |     else | 
|---|
 | 802 |         TCL_BIN_DEFAULT=../../tcl8.5/win | 
|---|
 | 803 |     fi | 
|---|
 | 804 |      | 
|---|
 | 805 |     AC_ARG_WITH(tcl, [  --with-tcl=DIR          use Tcl 8.5 binaries from DIR], | 
|---|
 | 806 |             TCL_BIN_DIR=$withval, TCL_BIN_DIR=`cd $TCL_BIN_DEFAULT; pwd`) | 
|---|
 | 807 |     if test ! -d $TCL_BIN_DIR; then | 
|---|
 | 808 |         AC_MSG_ERROR(Tcl directory $TCL_BIN_DIR does not exist) | 
|---|
 | 809 |     fi | 
|---|
 | 810 |     if test ! -f $TCL_BIN_DIR/Makefile; then | 
|---|
 | 811 |         AC_MSG_ERROR(There is no Makefile in $TCL_BIN_DIR:  perhaps you did not specify the Tcl *build* directory (not the toplevel Tcl directory) or you forgot to configure Tcl?) | 
|---|
 | 812 |     else | 
|---|
 | 813 |         echo "building against Tcl binaries in: $TCL_BIN_DIR" | 
|---|
 | 814 |     fi | 
|---|
 | 815 |     AC_SUBST(TCL_BIN_DIR) | 
|---|
 | 816 | ]) | 
|---|
 | 817 |  | 
|---|
 | 818 | #------------------------------------------------------------------------ | 
|---|
 | 819 | # SC_PROG_TCLSH | 
|---|
 | 820 | #       Locate a tclsh shell installed on the system path. This macro | 
|---|
 | 821 | #       will only find a Tcl shell that already exists on the system. | 
|---|
 | 822 | #       It will not find a Tcl shell in the Tcl build directory or | 
|---|
 | 823 | #       a Tcl shell that has been installed from the Tcl build directory. | 
|---|
 | 824 | #       If a Tcl shell can't be located on the PATH, then TCLSH_PROG will | 
|---|
 | 825 | #       be set to "". Extensions should take care not to create Makefile | 
|---|
 | 826 | #       rules that are run by default and depend on TCLSH_PROG. An | 
|---|
 | 827 | #       extension can't assume that an executable Tcl shell exists at | 
|---|
 | 828 | #       build time. | 
|---|
 | 829 | # | 
|---|
 | 830 | # Arguments | 
|---|
 | 831 | #       none | 
|---|
 | 832 | # | 
|---|
 | 833 | # Results | 
|---|
 | 834 | #       Subst's the following values: | 
|---|
 | 835 | #               TCLSH_PROG | 
|---|
 | 836 | #------------------------------------------------------------------------ | 
|---|
 | 837 |  | 
|---|
 | 838 | AC_DEFUN([SC_PROG_TCLSH], [ | 
|---|
 | 839 |     AC_MSG_CHECKING([for tclsh]) | 
|---|
 | 840 |  | 
|---|
 | 841 |     AC_CACHE_VAL(ac_cv_path_tclsh, [ | 
|---|
 | 842 |         search_path=`echo ${PATH} | sed -e 's/:/ /g'` | 
|---|
 | 843 |         for dir in $search_path ; do | 
|---|
 | 844 |             for j in `ls -r $dir/tclsh[[8-9]]*.exe 2> /dev/null` \ | 
|---|
 | 845 |                     `ls -r $dir/tclsh* 2> /dev/null` ; do | 
|---|
 | 846 |                 if test x"$ac_cv_path_tclsh" = x ; then | 
|---|
 | 847 |                     if test -f "$j" ; then | 
|---|
 | 848 |                         ac_cv_path_tclsh=$j | 
|---|
 | 849 |                         break | 
|---|
 | 850 |                     fi | 
|---|
 | 851 |                 fi | 
|---|
 | 852 |             done | 
|---|
 | 853 |         done | 
|---|
 | 854 |     ]) | 
|---|
 | 855 |  | 
|---|
 | 856 |     if test -f "$ac_cv_path_tclsh" ; then | 
|---|
 | 857 |         TCLSH_PROG="$ac_cv_path_tclsh" | 
|---|
 | 858 |         AC_MSG_RESULT($TCLSH_PROG) | 
|---|
 | 859 |     else | 
|---|
 | 860 |         # It is not an error if an installed version of Tcl can't be located. | 
|---|
 | 861 |         TCLSH_PROG="" | 
|---|
 | 862 |         AC_MSG_RESULT([No tclsh found on PATH]) | 
|---|
 | 863 |     fi | 
|---|
 | 864 |     AC_SUBST(TCLSH_PROG) | 
|---|
 | 865 | ]) | 
|---|
 | 866 |  | 
|---|
 | 867 | #------------------------------------------------------------------------ | 
|---|
 | 868 | # SC_BUILD_TCLSH | 
|---|
 | 869 | #       Determine the fully qualified path name of the tclsh executable | 
|---|
 | 870 | #       in the Tcl build directory. This macro will correctly determine | 
|---|
 | 871 | #       the name of the tclsh executable even if tclsh has not yet | 
|---|
 | 872 | #       been built in the build directory. The build tclsh must be used | 
|---|
 | 873 | #       when running tests from an extension build directory. It is not | 
|---|
 | 874 | #       correct to use the TCLSH_PROG in cases like this. | 
|---|
 | 875 | # | 
|---|
 | 876 | # Arguments | 
|---|
 | 877 | #       none | 
|---|
 | 878 | # | 
|---|
 | 879 | # Results | 
|---|
 | 880 | #       Subst's the following values: | 
|---|
 | 881 | #               BUILD_TCLSH | 
|---|
 | 882 | #------------------------------------------------------------------------ | 
|---|
 | 883 |  | 
|---|
 | 884 | AC_DEFUN([SC_BUILD_TCLSH], [ | 
|---|
 | 885 |     AC_MSG_CHECKING([for tclsh in Tcl build directory]) | 
|---|
 | 886 |     BUILD_TCLSH=${TCL_BIN_DIR}/tclsh${TCL_MAJOR_VERSION}${TCL_MINOR_VERSION}${TCL_DBGX}${EXEEXT} | 
|---|
 | 887 |     AC_MSG_RESULT($BUILD_TCLSH) | 
|---|
 | 888 |     AC_SUBST(BUILD_TCLSH) | 
|---|
 | 889 | ]) | 
|---|
 | 890 |  | 
|---|
 | 891 | #-------------------------------------------------------------------- | 
|---|
 | 892 | # SC_TCL_CFG_ENCODING   TIP #59 | 
|---|
 | 893 | # | 
|---|
 | 894 | #       Declare the encoding to use for embedded configuration information. | 
|---|
 | 895 | # | 
|---|
 | 896 | # Arguments: | 
|---|
 | 897 | #       None. | 
|---|
 | 898 | # | 
|---|
 | 899 | # Results: | 
|---|
 | 900 | #       Might append to the following vars: | 
|---|
 | 901 | #               DEFS    (implicit) | 
|---|
 | 902 | # | 
|---|
 | 903 | #       Will define the following vars: | 
|---|
 | 904 | #               TCL_CFGVAL_ENCODING | 
|---|
 | 905 | # | 
|---|
 | 906 | #-------------------------------------------------------------------- | 
|---|
 | 907 |  | 
|---|
 | 908 | AC_DEFUN([SC_TCL_CFG_ENCODING], [ | 
|---|
 | 909 |     AC_ARG_WITH(encoding, [  --with-encoding              encoding for configuration values], with_tcencoding=${withval}) | 
|---|
 | 910 |  | 
|---|
 | 911 |     if test x"${with_tcencoding}" != x ; then | 
|---|
 | 912 |         AC_DEFINE_UNQUOTED(TCL_CFGVAL_ENCODING,"${with_tcencoding}") | 
|---|
 | 913 |     else | 
|---|
 | 914 |         # Default encoding on windows is not "iso8859-1" | 
|---|
 | 915 |         AC_DEFINE(TCL_CFGVAL_ENCODING,"cp1252") | 
|---|
 | 916 |     fi | 
|---|
 | 917 | ]) | 
|---|