configure.in
来自「tcl是工具命令语言」· IN 代码 · 共 448 行
IN
448 行
#! /bin/bash -norc# This file is an input file used by the GNU "autoconf" program to# generate the file "configure", which is run during Tcl installation# to configure the system for the local environment.## RCS: @(#) $Id: configure.in,v 1.68 2003/03/01 01:22:46 hobbs Exp $AC_INIT(../generic/tcl.h)AC_PREREQ(2.13)TCL_VERSION=8.4TCL_MAJOR_VERSION=8TCL_MINOR_VERSION=4TCL_PATCH_LEVEL=".2"VER=$TCL_MAJOR_VERSION$TCL_MINOR_VERSIONTCL_DDE_VERSION=1.2TCL_DDE_MAJOR_VERSION=1TCL_DDE_MINOR_VERSION=2TCL_DDE_PATCH_LEVEL=""DDEVER=$TCL_DDE_MAJOR_VERSION$TCL_DDE_MINOR_VERSIONTCL_REG_VERSION=1.1TCL_REG_MAJOR_VERSION=1TCL_REG_MINOR_VERSION=1TCL_REG_PATCH_LEVEL=""REGVER=$TCL_REG_MAJOR_VERSION$TCL_REG_MINOR_VERSION#------------------------------------------------------------------------# Handle the --prefix=... option#------------------------------------------------------------------------if test "${prefix}" = "NONE"; then prefix=/usr/localfiif test "${exec_prefix}" = "NONE"; then exec_prefix=$prefixfi# libdir must be a fully qualified path (not ${exec_prefix}/lib)eval libdir="$libdir"#------------------------------------------------------------------------# Standard compiler checks#------------------------------------------------------------------------# If the user did not set CFLAGS, set it now to keep# the AC_PROG_CC macro from adding "-g -O2".if test "${CFLAGS+set}" != "set" ; then CFLAGS=""fiAC_PROG_CC# To properly support cross-compilation, one would# need to use these tool checks instead of# the ones below and reconfigure with# autoconf 2.50. You can also just set# the CC, AR, RANLIB, and RC environment# variables if you want to cross compile.dnl AC_CHECK_TOOL(AR, ar)dnl AC_CHECK_TOOL(RANLIB, ranlib)dnl AC_CHECK_TOOL(RC, windres)if test "${GCC}" = "yes" ; then AC_CHECK_PROG(AR, ar, ar) AC_CHECK_PROG(RANLIB, ranlib, ranlib) AC_CHECK_PROG(RC, windres, windres) if test "${AR}" = "" ; then AC_MSG_ERROR([Required archive tool 'ar' not found on PATH.]) fi if test "${RANLIB}" = "" ; then AC_MSG_ERROR([Required archive index tool 'ranlib' not found on PATH.]) fi if test "${RC}" = "" ; then AC_MSG_ERROR([Required resource tool 'windres' not found on PATH.]) fifi#--------------------------------------------------------------------# Checks to see if the make progeam sets the $MAKE variable.#--------------------------------------------------------------------AC_PROG_MAKE_SET#--------------------------------------------------------------------# Perform additinal compiler tests.#--------------------------------------------------------------------AC_CYGWINif test "$ac_cv_cygwin" = "yes" ; then AC_MSG_ERROR([Compiling under Cygwin is not currently supported.A maintainer for the Cygwin port of Tcl/Tk is needed. See the READMEfile for information about building with Mingw.])fiAC_CACHE_CHECK(for SEH support in compiler, tcl_cv_seh,AC_TRY_RUN([#define WIN32_LEAN_AND_MEAN#include <windows.h>#undef WIN32_LEAN_AND_MEANint main(int argc, char** argv) { int a, b = 0; __try { a = 666 / b; } __except (EXCEPTION_EXECUTE_HANDLER) { return 0; } return 1;}], tcl_cv_seh=yes, tcl_cv_seh=no, tcl_cv_seh=no))if test "$tcl_cv_seh" = "no" ; then AC_DEFINE(HAVE_NO_SEH, 1, [Defined when mingw does not support SEH])fi## Check to see if the excpt.h include file provided contains the# definition for EXCEPTION_DISPOSITION; if not, which is the case# with Cygwin's version as of 2002-04-10, define it to be int, # sufficient for getting the current code to work.#AC_CACHE_CHECK(for EXCEPTION_DISPOSITION support in include files, tcl_cv_eh_disposition,AC_TRY_COMPILE([#define WIN32_LEAN_AND_MEAN#include <windows.h>#undef WIN32_LEAN_AND_MEAN],[ EXCEPTION_DISPOSITION x;], tcl_cv_eh_disposition=yes, tcl_cv_eh_disposition=no))if test "$tcl_cv_eh_disposition" = "no" ; then AC_DEFINE(EXCEPTION_DISPOSITION, int, [Defined when cygwin/mingw does not support EXCEPTION DISPOSITION])fi# Check to see if the winsock2.h include file provided contains# typedefs like LPFN_ACCEPT and friends.#AC_CACHE_CHECK(for LPFN_ACCEPT support in winsock2.h, tcl_cv_lpfn_decls,AC_TRY_COMPILE([#define WIN32_LEAN_AND_MEAN#include <windows.h>#undef WIN32_LEAN_AND_MEAN#include <winsock2.h>],[ LPFN_ACCEPT accept;], tcl_cv_lpfn_decls=yes, tcl_cv_lpfn_decls=no))if test "$tcl_cv_lpfn_decls" = "no" ; then AC_DEFINE(HAVE_NO_LPFN_DECLS, 1, [Defined when cygwin/mingw does not support LPFN_ACCEPT and friends.])fi# Check to see if winnt.h defines CHAR, SHORT, and LONG# even if VOID has already been #defined. The win32api# used by mingw and cygwin is known to do this.AC_CACHE_CHECK(for winnt.h that ignores VOID define, tcl_cv_winnt_ignore_void,AC_TRY_COMPILE([#define VOID void#define WIN32_LEAN_AND_MEAN#include <windows.h>#undef WIN32_LEAN_AND_MEAN],[ CHAR c; SHORT s; LONG l;], tcl_cv_winnt_ignore_void=yes, tcl_cv_winnt_ignore_void=no))if test "$tcl_cv_winnt_ignore_void" = "yes" ; then AC_DEFINE(HAVE_WINNT_IGNORE_VOID, 1, [Defined when cygwin/mingw ignores VOID define in winnt.h])fi# Check to see if malloc.h is missing the alloca function# declaration. This is known to be a problem with Mingw.# If we compiled without the function declaration, it# would work but we would get a warning message from gcc.# If we add the function declaration ourselves, it# would not compile correctly because the _alloca# function expects the argument to be passed in a# register and not on the stack. Instead, we just# call it from inline asm code.AC_CACHE_CHECK(for alloca declaration in malloc.h, tcl_cv_malloc_decl_alloca,AC_TRY_COMPILE([#include <malloc.h>],[ size_t arg = 0; void* ptr; ptr = alloca; ptr = alloca(arg);], tcl_cv_malloc_decl_alloca=yes, tcl_cv_malloc_decl_alloca=no))if test "$tcl_cv_malloc_decl_alloca" = "no" && test "${GCC}" = "yes" ; then AC_DEFINE(HAVE_ALLOCA_GCC_INLINE, 1, [Defined when gcc should use inline ASM to call alloca.])fi# See if the compiler supports casting to a union type.# This is used to stop gcc from printing a compiler# warning when initializing a union member.AC_CACHE_CHECK(for cast to union support, tcl_cv_cast_to_union,AC_TRY_COMPILE([],[ union foo { int i; double d; }; union foo f = (union foo) (int) 0;], tcl_cv_cast_to_union=yes, tcl_cv_cast_to_union=no))if test "$tcl_cv_cast_to_union" = "yes"; then AC_DEFINE(HAVE_CAST_TO_UNION, 1, [Defined when compiler supports casting to union type.])fi#--------------------------------------------------------------------# Determines the correct binary file extension (.o, .obj, .exe etc.)#--------------------------------------------------------------------AC_OBJEXTAC_EXEEXT#--------------------------------------------------------------------# Check whether --enable-threads or --disable-threads was given.#--------------------------------------------------------------------SC_ENABLE_THREADS#--------------------------------------------------------------------# The statements below define a collection of symbols related to# building libtcl as a shared library instead of a static library.#--------------------------------------------------------------------SC_ENABLE_SHARED#--------------------------------------------------------------------# The statements below define a collection of compile flags. This # macro depends on the value of SHARED_BUILD, and should be called# after SC_ENABLE_SHARED checks the configure switches.#--------------------------------------------------------------------SC_CONFIG_CFLAGS#--------------------------------------------------------------------# Set the default compiler switches based on the --enable-symbols # option. This macro depends on C flags, and should be called# after SC_CONFIG_CFLAGS macro is called.#--------------------------------------------------------------------SC_ENABLE_SYMBOLSTCL_DBGX=${DBGX}#--------------------------------------------------------------------# man2tcl needs this so that it can use errno.h#--------------------------------------------------------------------AC_CHECK_HEADER(errno.h, , MAN2TCLFLAGS="-DNO_ERRNO_H")AC_SUBST(MAN2TCLFLAGS)#------------------------------------------------------------------------# tclConfig.sh refers to this by a different name#------------------------------------------------------------------------TCL_SHARED_BUILD=${SHARED_BUILD}#--------------------------------------------------------------------# Perform final evaluations of variables with possible substitutions.#--------------------------------------------------------------------TCL_SHARED_LIB_SUFFIX="\${NODOT_VERSION}${DLLSUFFIX}"TCL_UNSHARED_LIB_SUFFIX="\${NODOT_VERSION}${LIBSUFFIX}"TCL_EXPORT_FILE_SUFFIX="\${NODOT_VERSION}${LIBSUFFIX}"eval "TCL_SRC_DIR=\"`cd $srcdir/..; pwd`\""eval "TCL_DLL_FILE=tcl${VER}${DLLSUFFIX}"eval "TCL_LIB_FILE=${LIBPREFIX}tcl$VER${LIBSUFFIX}"# FIMXE: These variables decls are missing#TCL_LIB_FLAG#TCL_BUILD_LIB_SPEC#TCL_LIB_SPECeval "TCL_STUB_LIB_FILE=\"${LIBPREFIX}tclstub${VER}${LIBSUFFIX}\""eval "TCL_STUB_LIB_FLAG=\"-ltclstub${VER}${TCL_DBGX}\""eval "TCL_BUILD_STUB_LIB_SPEC=\"-L`pwd` ${TCL_STUB_LIB_FLAG}\""eval "TCL_STUB_LIB_SPEC=\"-L${libdir} ${TCL_STUB_LIB_FLAG}\""eval "TCL_BUILD_STUB_LIB_PATH=\"`pwd`/${TCL_STUB_LIB_FILE}\""eval "TCL_STUB_LIB_PATH=\"${libdir}/${TCL_STUB_LIB_FILE}\""# Install time header dir can be set via --includedireval "TCL_INCLUDE_SPEC=\"-I${includedir}\""eval "DLLSUFFIX=${DLLSUFFIX}"eval "LIBPREFIX=${LIBPREFIX}"eval "LIBSUFFIX=${LIBSUFFIX}"eval "EXESUFFIX=${EXESUFFIX}"CFG_TCL_SHARED_LIB_SUFFIX=${TCL_SHARED_LIB_SUFFIX}CFG_TCL_UNSHARED_LIB_SUFFIX=${TCL_UNSHARED_LIB_SUFFIX}CFG_TCL_EXPORT_FILE_SUFFIX=${TCL_EXPORT_FILE_SUFFIX}#--------------------------------------------------------------------# Adjust the defines for how the resources are built depending# on symbols and static vs. shared.#--------------------------------------------------------------------if test ${SHARED_BUILD} = 0 ; then if test "${DBGX}" = "g"; then RC_DEFINES="${RC_DEFINE} STATIC_BUILD ${RC_DEFINE} DEBUG" else RC_DEFINES="${RC_DEFINE} STATIC_BUILD" fielse if test "${DBGX}" = "g"; then RC_DEFINES="${RC_DEFINE} DEBUG" else RC_DEFINES="" fifiAC_SUBST(TCL_VERSION)AC_SUBST(TCL_MAJOR_VERSION)AC_SUBST(TCL_MINOR_VERSION)AC_SUBST(TCL_PATCH_LEVEL)AC_SUBST(TCL_LIB_FILE)AC_SUBST(TCL_LIB_FLAG)# empty on winAC_SUBST(TCL_LIB_SPEC)AC_SUBST(TCL_STUB_LIB_FILE)AC_SUBST(TCL_STUB_LIB_FLAG)AC_SUBST(TCL_STUB_LIB_SPEC)AC_SUBST(TCL_STUB_LIB_PATH)AC_SUBST(TCL_INCLUDE_SPEC)AC_SUBST(TCL_BUILD_STUB_LIB_SPEC)AC_SUBST(TCL_BUILD_STUB_LIB_PATH)AC_SUBST(TCL_DLL_FILE)AC_SUBST(TCL_SRC_DIR)AC_SUBST(TCL_BIN_DIR)AC_SUBST(TCL_DBGX)AC_SUBST(CFG_TCL_SHARED_LIB_SUFFIX)AC_SUBST(CFG_TCL_UNSHARED_LIB_SUFFIX)AC_SUBST(CFG_TCL_EXPORT_FILE_SUFFIX)# win/tcl.m4 doesn't set (CFLAGS)AC_SUBST(CFLAGS_DEFAULT)AC_SUBST(EXTRA_CFLAGS)AC_SUBST(CYGPATH)AC_SUBST(DEPARG)AC_SUBST(CC_OBJNAME)AC_SUBST(CC_EXENAME)# win/tcl.m4 doesn't set (LDFLAGS)AC_SUBST(LDFLAGS_DEFAULT)AC_SUBST(LDFLAGS_DEBUG)AC_SUBST(LDFLAGS_OPTIMIZE)AC_SUBST(LDFLAGS_CONSOLE)AC_SUBST(LDFLAGS_WINDOW)AC_SUBST(AR)AC_SUBST(RANLIB)AC_SUBST(STLIB_LD)AC_SUBST(SHLIB_LD)AC_SUBST(SHLIB_LD_LIBS)AC_SUBST(SHLIB_CFLAGS)AC_SUBST(SHLIB_SUFFIX)AC_SUBST(TCL_SHARED_BUILD)AC_SUBST(LIBS)AC_SUBST(LIBS_GUI)AC_SUBST(DLLSUFFIX)AC_SUBST(LIBPREFIX)AC_SUBST(LIBSUFFIX)AC_SUBST(EXESUFFIX)AC_SUBST(LIBRARIES)AC_SUBST(MAKE_LIB)AC_SUBST(POST_MAKE_LIB)AC_SUBST(MAKE_DLL)AC_SUBST(MAKE_EXE)# empty on win, but needs sub'ingAC_SUBST(TCL_BUILD_LIB_SPEC)AC_SUBST(TCL_LD_SEARCH_FLAGS)AC_SUBST(TCL_NEEDS_EXP_FILE)AC_SUBST(TCL_BUILD_EXP_FILE)AC_SUBST(TCL_EXP_FILE)AC_SUBST(DL_LIBS)AC_SUBST(LIBOBJS)AC_SUBST(TCL_LIB_VERSIONS_OK)AC_SUBST(TCL_PACKAGE_PATH)# win onlyAC_SUBST(TCL_DDE_VERSION)AC_SUBST(TCL_DDE_MAJOR_VERSION)AC_SUBST(TCL_DDE_MINOR_VERSION)AC_SUBST(TCL_DDE_PATCH_LEVEL)AC_SUBST(TCL_REG_VERSION)AC_SUBST(TCL_REG_MAJOR_VERSION)AC_SUBST(TCL_REG_MINOR_VERSION)AC_SUBST(TCL_REG_PATCH_LEVEL)AC_SUBST(RC)AC_SUBST(RC_OUT)AC_SUBST(RC_TYPE)AC_SUBST(RC_INCLUDE)AC_SUBST(RC_DEFINE)AC_SUBST(RC_DEFINES)AC_SUBST(RES)AC_OUTPUT(Makefile tclConfig.sh tcl.hpj)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?