⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcl.m4

📁 来自网络的iaxclient的协议栈源码
💻 M4
📖 第 1 页 / 共 5 页
字号:
])#--------------------------------------------------------------------# TEA_CONFIG_CFLAGS##	Try to determine the proper flags to pass to the compiler#	for building shared libraries and other such nonsense.## Arguments:#	none## Results:##	Defines and substitutes the following vars:##       DL_OBJS -       Name of the object file that implements dynamic#                       loading for Tcl on this system.#       DL_LIBS -       Library file(s) to include in tclsh and other base#                       applications in order for the "load" command to work.#       LDFLAGS -      Flags to pass to the compiler when linking object#                       files into an executable application binary such#                       as tclsh.#       LD_SEARCH_FLAGS-Flags to pass to ld, such as "-R /usr/local/tcl/lib",#                       that tell the run-time dynamic linker where to look#                       for shared libraries such as libtcl.so.  Depends on#                       the variable LIB_RUNTIME_DIR in the Makefile. Could#                       be the same as CC_SEARCH_FLAGS if ${CC} is used to link.#       CC_SEARCH_FLAGS-Flags to pass to ${CC}, such as "-Wl,-rpath,/usr/local/tcl/lib",#                       that tell the run-time dynamic linker where to look#                       for shared libraries such as libtcl.so.  Depends on#                       the variable LIB_RUNTIME_DIR in the Makefile.#       SHLIB_CFLAGS -  Flags to pass to cc when compiling the components#                       of a shared library (may request position-independent#                       code, among other things).#       SHLIB_LD -      Base command to use for combining object files#                       into a shared library.#       SHLIB_LD_LIBS - Dependent libraries for the linker to scan when#                       creating shared libraries.  This symbol typically#                       goes at the end of the "ld" commands that build#                       shared libraries. The value of the symbol is#                       "${LIBS}" if all of the dependent libraries should#                       be specified when creating a shared library.  If#                       dependent libraries should not be specified (as on#                       SunOS 4.x, where they cause the link to fail, or in#                       general if Tcl and Tk aren't themselves shared#                       libraries), then this symbol has an empty string#                       as its value.#       SHLIB_SUFFIX -  Suffix to use for the names of dynamically loadable#                       extensions.  An empty string means we don't know how#                       to use shared libraries on this platform.#       LIB_SUFFIX -    Specifies everything that comes after the "libfoo"#                       in a static or shared library name, using the $VERSION variable#                       to put the version in the right place.  This is used#                       by platforms that need non-standard library names.#                       Examples:  ${VERSION}.so.1.1 on NetBSD, since it needs#                       to have a version after the .so, and ${VERSION}.a#                       on AIX, since a shared library needs to have#                       a .a extension whereas shared objects for loadable#                       extensions have a .so extension.  Defaults to#                       ${VERSION}${SHLIB_SUFFIX}.#       TCL_NEEDS_EXP_FILE -#                       1 means that an export file is needed to link to a#                       shared library.#       TCL_EXP_FILE -  The name of the installed export / import file which#                       should be used to link to the Tcl shared library.#                       Empty if Tcl is unshared.#       TCL_BUILD_EXP_FILE -#                       The name of the built export / import file which#                       should be used to link to the Tcl shared library.#                       Empty if Tcl is unshared.#	CFLAGS_DEBUG -#			Flags used when running the compiler in debug mode#	CFLAGS_OPTIMIZE -#			Flags used when running the compiler in optimize mode#	CFLAGS -	Additional CFLAGS added as necessary (usually 64-bit)##--------------------------------------------------------------------AC_DEFUN(TEA_CONFIG_CFLAGS, [    dnl Make sure we are initialized    AC_REQUIRE([TEA_INIT])    # Step 0.a: Enable 64 bit support?    AC_MSG_CHECKING([if 64bit support is requested])    AC_ARG_ENABLE(64bit,	AC_HELP_STRING([--enable-64bit],	    [enable 64bit support (default: off)]),	[do64bit=$enableval], [do64bit=no])    AC_MSG_RESULT([$do64bit])    # Step 0.b: Enable Solaris 64 bit VIS support?    AC_MSG_CHECKING([if 64bit Sparc VIS support is requested])    AC_ARG_ENABLE(64bit-vis,	AC_HELP_STRING([--enable-64bit-vis],	    [enable 64bit Sparc VIS support (default: off)]),	[do64bitVIS=$enableval], [do64bitVIS=no])    AC_MSG_RESULT([$do64bitVIS])    if test "$do64bitVIS" = "yes"; then	# Force 64bit on with VIS	do64bit=yes    fi    # Step 0.c: Cross-compiling options for Windows/CE builds?    if test "${TEA_PLATFORM}" = "windows" ; then	AC_MSG_CHECKING([if Windows/CE build is requested])	AC_ARG_ENABLE(wince,[  --enable-wince          enable Win/CE support (where applicable)], [doWince=$enableval], [doWince=no])	AC_MSG_RESULT([$doWince])    fi    # Step 1: set the variable "system" to hold the name and version number    # for the system.    TEA_CONFIG_SYSTEM    # Step 2: check for existence of -ldl library.  This is needed because    # Linux can use either -ldl or -ldld for dynamic loading.    AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no)    # Require ranlib early so we can override it in special cases below.    AC_REQUIRE([AC_PROG_RANLIB])    # Step 3: set configuration options based on system name and version.    # This is similar to Tcl's unix/tcl.m4 except that we've added a    # "windows" case.    do64bit_ok=no    LDFLAGS_ORIG="$LDFLAGS"    # When ld needs options to work in 64-bit mode, put them in    # LDFLAGS_ARCH so they eventually end up in LDFLAGS even if [load]    # is disabled by the user. [Bug 1016796]    LDFLAGS_ARCH=""    TCL_EXPORT_FILE_SUFFIX=""    UNSHARED_LIB_SUFFIX=""    TCL_TRIM_DOTS='`echo ${PACKAGE_VERSION} | tr -d .`'    ECHO_VERSION='`echo ${PACKAGE_VERSION}`'    TCL_LIB_VERSIONS_OK=ok    CFLAGS_DEBUG=-g    CFLAGS_OPTIMIZE=-O    if test "$GCC" = "yes" ; then	CFLAGS_OPTIMIZE=-O2	CFLAGS_WARNING="-Wall -Wno-implicit-int"    else	CFLAGS_WARNING=""    fi    TCL_NEEDS_EXP_FILE=0    TCL_BUILD_EXP_FILE=""    TCL_EXP_FILE=""dnl FIXME: Replace AC_CHECK_PROG with AC_CHECK_TOOL once cross compiling is fixed.dnl AC_CHECK_TOOL(AR, ar)    AC_CHECK_PROG(AR, ar, ar)    STLIB_LD='${AR} cr'    LD_LIBRARY_PATH_VAR="LD_LIBRARY_PATH"    case $system in	windows)	    # This is a 2-stage check to make sure we have the 64-bit SDK	    # We have to know where the SDK is installed.	    # This magic is based on MS Platform SDK for Win2003 SP1 - hobbs	    # MACHINE is IX86 for LINK, but this is used by the manifest,	    # which requires x86|amd64|ia64.	    MACHINE="X86"	    if test "$do64bit" != "no" ; then		if test "x${MSSDK}x" = "xx" ; then		    MSSDK="C:/Progra~1/Microsoft Platform SDK"		fi		MSSDK=`echo "$MSSDK" | sed -e  's!\\\!/!g'`		PATH64=""		case "$do64bit" in		    amd64|x64|yes)			MACHINE="AMD64" ; # default to AMD64 64-bit build			PATH64="${MSSDK}/Bin/Win64/x86/AMD64"			;;		    ia64)			MACHINE="IA64"			PATH64="${MSSDK}/Bin/Win64"			;;		esac		if test ! -d "${PATH64}" ; then		    AC_MSG_WARN([Could not find 64-bit $MACHINE SDK to enable 64bit mode])		    AC_MSG_WARN([Ensure latest Platform SDK is installed])		    do64bit="no"		else		    AC_MSG_RESULT([   Using 64-bit $MACHINE mode])		    do64bit_ok="yes"		fi	    fi	    if test "$doWince" != "no" ; then		if test "$do64bit" != "no" ; then		    AC_MSG_ERROR([Windows/CE and 64-bit builds incompatible])		fi		if test "$GCC" = "yes" ; then		    AC_MSG_ERROR([Windows/CE and GCC builds incompatible])		fi		TEA_PATH_CELIB		# Set defaults for common evc4/PPC2003 setup		# Currently Tcl requires 300+, possibly 420+ for sockets		CEVERSION=420; 		# could be 211 300 301 400 420 ...		TARGETCPU=ARMV4;	# could be ARMV4 ARM MIPS SH3 X86 ...		ARCH=ARM;		# could be ARM MIPS X86EM ...		PLATFORM="Pocket PC 2003"; # or "Pocket PC 2002"		if test "$doWince" != "yes"; then		    # If !yes then the user specified something		    # Reset ARCH to allow user to skip specifying it		    ARCH=		    eval `echo $doWince | awk -F, '{ \	    if (length([$]1)) { printf "CEVERSION=\"%s\"\n", [$]1; \	    if ([$]1 < 400)   { printf "PLATFORM=\"Pocket PC 2002\"\n" } }; \	    if (length([$]2)) { printf "TARGETCPU=\"%s\"\n", toupper([$]2) }; \	    if (length([$]3)) { printf "ARCH=\"%s\"\n", toupper([$]3) }; \	    if (length([$]4)) { printf "PLATFORM=\"%s\"\n", [$]4 }; \		    }'`		    if test "x${ARCH}" = "x" ; then			ARCH=$TARGETCPU;		    fi		fi		OSVERSION=WCE$CEVERSION;	    	if test "x${WCEROOT}" = "x" ; then			WCEROOT="C:/Program Files/Microsoft eMbedded C++ 4.0"		    if test ! -d "${WCEROOT}" ; then			WCEROOT="C:/Program Files/Microsoft eMbedded Tools"		    fi		fi		if test "x${SDKROOT}" = "x" ; then		    SDKROOT="C:/Program Files/Windows CE Tools"		    if test ! -d "${SDKROOT}" ; then			SDKROOT="C:/Windows CE Tools"		    fi		fi		WCEROOT=`echo "$WCEROOT" | sed -e 's!\\\!/!g'`		SDKROOT=`echo "$SDKROOT" | sed -e 's!\\\!/!g'`		if test ! -d "${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}" \		    -o ! -d "${WCEROOT}/EVC/${OSVERSION}/bin"; then		    AC_MSG_ERROR([could not find PocketPC SDK or target compiler to enable WinCE mode [$CEVERSION,$TARGETCPU,$ARCH,$PLATFORM]])		    doWince="no"		else		    # We could PATH_NOSPACE these, but that's not important,		    # as long as we quote them when used.		    CEINCLUDE="${SDKROOT}/${OSVERSION}/${PLATFORM}/include"		    if test -d "${CEINCLUDE}/${TARGETCPU}" ; then			CEINCLUDE="${CEINCLUDE}/${TARGETCPU}"		    fi		    CELIBPATH="${SDKROOT}/${OSVERSION}/${PLATFORM}/Lib/${TARGETCPU}"    		fi	    fi	    if test "$GCC" != "yes" ; then	        if test "${SHARED_BUILD}" = "0" ; then		    runtime=-MT	        else		    runtime=-MD	        fi                if test "$do64bit" != "no" ; then		    # All this magic is necessary for the Win64 SDK RC1 - hobbs		    CC="\"${PATH64}/cl.exe\""		    CFLAGS="${CFLAGS} -I\"${MSSDK}/Include\" -I\"${MSSDK}/Include/crt\" -I\"${MSSDK}/Include/crt/sys\""		    RC="\"${MSSDK}/bin/rc.exe\""		    lflags="-nologo -MACHINE:${MACHINE} -LIBPATH:\"${MSSDK}/Lib/${MACHINE}\""		    LINKBIN="\"${PATH64}/link.exe\""		    CFLAGS_DEBUG="-nologo -Zi -Od -W3 ${runtime}d"		    CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"		    # Avoid 'unresolved external symbol __security_cookie'		    # errors, c.f. http://support.microsoft.com/?id=894573		    TEA_ADD_LIBS([bufferoverflowU.lib])		elif test "$doWince" != "no" ; then		    CEBINROOT="${WCEROOT}/EVC/${OSVERSION}/bin"		    if test "${TARGETCPU}" = "X86"; then			CC="\"${CEBINROOT}/cl.exe\""		    else			CC="\"${CEBINROOT}/cl${ARCH}.exe\""		    fi		    CFLAGS="$CFLAGS -I\"${CELIB_DIR}/inc\" -I\"${CEINCLUDE}\""		    RC="\"${WCEROOT}/Common/EVC/bin/rc.exe\""		    arch=`echo ${ARCH} | awk '{print tolower([$]0)}'`		    defs="${ARCH} _${ARCH}_ ${arch} PALM_SIZE _MT _WINDOWS"		    if test "${SHARED_BUILD}" = "1" ; then			# Static CE builds require static celib as well		    	defs="${defs} _DLL"		    fi		    for i in $defs ; do			AC_DEFINE_UNQUOTED($i, 1, [WinCE def ]$i)		    done		    AC_DEFINE_UNQUOTED(_WIN32_WCE, $CEVERSION, [_WIN32_WCE version])		    AC_DEFINE_UNQUOTED(UNDER_CE, $CEVERSION, [UNDER_CE version])		    CFLAGS_DEBUG="-nologo -Zi -Od"		    CFLAGS_OPTIMIZE="-nologo -Ox"		    lversion=`echo ${CEVERSION} | sed -e 's/\(.\)\(..\)/\1\.\2/'`		    lflags="-MACHINE:${ARCH} -LIBPATH:\"${CELIBPATH}\" -subsystem:windowsce,${lversion} -nologo"		    LINKBIN="\"${CEBINROOT}/link.exe\""		    AC_SUBST(CELIB_DIR)		else		    RC="rc"		    lflags="-nologo"    		    LINKBIN="link"		    CFLAGS_DEBUG="-nologo -Z7 -Od -W3 -WX ${runtime}d"		    CFLAGS_OPTIMIZE="-nologo -O2 -W2 ${runtime}"		fi	    fi	    if test "$GCC" = "yes"; then		# mingw gcc mode		RC="windres"		CFLAGS_DEBUG="-g"		CFLAGS_OPTIMIZE="-O2 -fomit-frame-pointer"		SHLIB_LD="$CC -shared"		UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.a'		LDFLAGS_CONSOLE="-wl,--subsystem,console ${lflags}"		LDFLAGS_WINDOW="-wl,--subsystem,windows ${lflags}"	    else		SHLIB_LD="${LINKBIN} -dll ${lflags}"		# link -lib only works when -lib is the first arg		STLIB_LD="${LINKBIN} -lib ${lflags}"		UNSHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.lib'		PATHTYPE=-w		# For information on what debugtype is most useful, see:		# http://msdn.microsoft.com/library/en-us/dnvc60/html/gendepdebug.asp		# This essentially turns it all on.		LDFLAGS_DEBUG="-debug:full -debugtype:both -warn:2"		LDFLAGS_OPTIMIZE="-release"		if test "$doWince" != "no" ; then		    LDFLAGS_CONSOLE="-link ${lflags}"		    LDFLAGS_WINDOW=${LDFLAGS_CONSOLE}		else		    LDFLAGS_CONSOLE="-link -subsystem:console ${lflags}"		    LDFLAGS_WINDOW="-link -subsystem:windows ${lflags}"		fi	    fi	    SHLIB_LD_LIBS='${LIBS}'	    SHLIB_SUFFIX=".dll"	    SHARED_LIB_SUFFIX='${TCL_TRIM_DOTS}.dll'	    TCL_LIB_VERSIONS_OK=nodots	    # Bogus to avoid getting this turned off	    DL_OBJS="tclLoadNone.obj"    	    ;;	AIX-*)	    if test "${TCL_THREADS}" = "1" -a "$GCC" != "yes" ; then		# AIX requires the _r compiler when gcc isn't being used		case "${CC}" in		    *_r)			# ok ...			;;		    *)			CC=${CC}_r			;;		esac		AC_MSG_RESULT([Using $CC for compiling with threads])	    fi	    LIBS="$LIBS -lc"	    SHLIB_CFLAGS=""	    SHLIB_LD_LIBS='${LIBS}'	    SHLIB_SUFFIX=".so"	    DL_OBJS="tclLoadDl.o"	    LD_LIBRARY_PATH_VAR="LIBPATH"	    # Check to enable 64-bit flags for compiler/linker on AIX 4+	    if test "$do64bit" = "yes" -a "`uname -v`" -gt "3" ; then		if test "$GCC" = "yes" ; then		    AC_MSG_WARN([64bit mode not supported with GCC on $system])		else 		    do64bit_ok=yes		    CFLAGS="$CFLAGS -q64"		    LDFLAGS_ARCH="-q64"		    RANLIB="${RANLIB} -X64"		    AR="${AR} -X64"		    SHLIB_LD_FLAGS="-b64"		fi	    fi	    if test "`uname -m`" = "ia64" ; then		# AIX-5 uses ELF style dynamic libraries on IA-64, but not PPC		SHLIB_LD="/usr/ccs/bin/ld -G -z text"		# AIX-5 has dl* in libc.so		DL_LIBS=""		if test "$GCC" = "yes" ; then		    CC_SEARCH_FLAGS='-Wl,-R,${LIB_RUNTIME_DIR}'		else		    CC_SEARCH_FLAGS='-R${LIB_RUNTIME_DIR}'		fi		LD_SEARCH_FLAGS='-R ${LIB_RUNTIME_DIR}'	    else		if test "$GCC" = "yes" ; then		    SHLIB_LD="gcc -shared"		else		    SHLIB_LD="/bin/ld -bhalt:4 -bM:SRE -bE:lib.exp -H512 -T512 -bnoentry"		fi		SHLIB_LD="${TCL_SRC_DIR}/unix/ldAix ${SHLIB_LD} ${SHLIB_LD_FLAGS}"		DL_LIBS="-ldl"		CC_SEARCH_FLAGS='-L${LIB_RUNTIME_DIR}'		LD_SEARCH_FLAGS=${CC_SEARCH_FLAGS}		TCL_NEEDS_EXP_FILE=1		TCL_EXPORT_FILE_SUFFIX='${PACKAGE_VERSION}.exp'	    fi	    # AIX v<=4.1 has some different flags than 4.2+	    if test "$system" = "AIX-4.1" -o "`uname -v`" -lt "4" ; then		AC_LIBOBJ([tclLoadAix])		DL_LIBS="-lld"	    fi	    # On AIX <=v4 systems, libbsd.a has to be linked in to support	    # non-blocking file IO.  This library has to be linked in after	    # the MATH_LIBS or it breaks the pow() function.  The way to	    # insure proper sequencing, is to add it to the tail of MATH_LIBS.	    # This library also supplies gettimeofday.	    #	    # AIX does not have a timezone field in struct tm. When the AIX	    # bsd library is used, the timezone global and the gettimeofday	    # methods are to be avoided for timezone deduction instead, we	    # deduce the timezone by comparing the localtime result on a	    # known GMT value.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -