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

📄 tcl.m4

📁 tcl是工具命令语言
💻 M4
📖 第 1 页 / 共 5 页
字号:
    AC_TRY_RUN([#include <termios.h>int main() {    struct termios t;    if (tcgetattr(0, &t) == 0) {	cfsetospeed(&t, 0);	t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB;	return 0;    }    return 1;}], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no)    if test $tcl_cv_api_serial = no ; then	AC_TRY_RUN([#include <termio.h>int main() {    struct termio t;    if (ioctl(0, TCGETA, &t) == 0) {	t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB;	return 0;    }    return 1;}], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no)    fi    if test $tcl_cv_api_serial = no ; then	AC_TRY_RUN([#include <sgtty.h>int main() {    struct sgttyb t;    if (ioctl(0, TIOCGETP, &t) == 0) {	t.sg_ospeed = 0;	t.sg_flags |= ODDP | EVENP | RAW;	return 0;    }    return 1;}], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=no, tcl_cv_api_serial=no)    fi    if test $tcl_cv_api_serial = no ; then	AC_TRY_RUN([#include <termios.h>#include <errno.h>int main() {    struct termios t;    if (tcgetattr(0, &t) == 0	|| errno == ENOTTY || errno == ENXIO || errno == EINVAL) {	cfsetospeed(&t, 0);	t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB;	return 0;    }    return 1;}], tcl_cv_api_serial=termios, tcl_cv_api_serial=no, tcl_cv_api_serial=no)    fi    if test $tcl_cv_api_serial = no; then	AC_TRY_RUN([#include <termio.h>#include <errno.h>int main() {    struct termio t;    if (ioctl(0, TCGETA, &t) == 0	|| errno == ENOTTY || errno == ENXIO || errno == EINVAL) {	t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB;	return 0;    }    return 1;    }], tcl_cv_api_serial=termio, tcl_cv_api_serial=no, tcl_cv_api_serial=no)    fi    if test $tcl_cv_api_serial = no; then	AC_TRY_RUN([#include <sgtty.h>#include <errno.h>int main() {    struct sgttyb t;    if (ioctl(0, TIOCGETP, &t) == 0	|| errno == ENOTTY || errno == ENXIO || errno == EINVAL) {	t.sg_ospeed = 0;	t.sg_flags |= ODDP | EVENP | RAW;	return 0;    }    return 1;}], tcl_cv_api_serial=sgtty, tcl_cv_api_serial=none, tcl_cv_api_serial=none)    fi])    case $tcl_cv_api_serial in	termios) AC_DEFINE(USE_TERMIOS);;	termio)  AC_DEFINE(USE_TERMIO);;	sgtty)   AC_DEFINE(USE_SGTTY);;    esac    AC_MSG_RESULT($tcl_cv_api_serial)])#--------------------------------------------------------------------# SC_MISSING_POSIX_HEADERS##	Supply substitutes for missing POSIX header files.  Special#	notes:#	    - stdlib.h doesn't define strtol, strtoul, or#	      strtod insome versions of SunOS#	    - some versions of string.h don't declare procedures such#	      as strstr## Arguments:#	none#	# Results:##	Defines some of the following vars:#		NO_DIRENT_H#		NO_ERRNO_H#		NO_VALUES_H#		NO_LIMITS_H#		NO_STDLIB_H#		NO_STRING_H#		NO_SYS_WAIT_H#		NO_DLFCN_H#		HAVE_UNISTD_H#		HAVE_SYS_PARAM_H##		HAVE_STRING_H ?##--------------------------------------------------------------------AC_DEFUN(SC_MISSING_POSIX_HEADERS, [    AC_MSG_CHECKING(dirent.h)    AC_TRY_LINK([#include <sys/types.h>#include <dirent.h>], [#ifndef _POSIX_SOURCE#   ifdef __Lynx__	/*	 * Generate compilation error to make the test fail:  Lynx headers	 * are only valid if really in the POSIX environment.	 */	missing_procedure();#   endif#endifDIR *d;struct dirent *entryPtr;char *p;d = opendir("foobar");entryPtr = readdir(d);p = entryPtr->d_name;closedir(d);], tcl_ok=yes, tcl_ok=no)    if test $tcl_ok = no; then	AC_DEFINE(NO_DIRENT_H)    fi    AC_MSG_RESULT($tcl_ok)    AC_CHECK_HEADER(errno.h, , [AC_DEFINE(NO_ERRNO_H)])    AC_CHECK_HEADER(float.h, , [AC_DEFINE(NO_FLOAT_H)])    AC_CHECK_HEADER(values.h, , [AC_DEFINE(NO_VALUES_H)])    AC_CHECK_HEADER(limits.h, , [AC_DEFINE(NO_LIMITS_H)])    AC_CHECK_HEADER(stdlib.h, tcl_ok=1, tcl_ok=0)    AC_EGREP_HEADER(strtol, stdlib.h, , tcl_ok=0)    AC_EGREP_HEADER(strtoul, stdlib.h, , tcl_ok=0)    AC_EGREP_HEADER(strtod, stdlib.h, , tcl_ok=0)    if test $tcl_ok = 0; then	AC_DEFINE(NO_STDLIB_H)    fi    AC_CHECK_HEADER(string.h, tcl_ok=1, tcl_ok=0)    AC_EGREP_HEADER(strstr, string.h, , tcl_ok=0)    AC_EGREP_HEADER(strerror, string.h, , tcl_ok=0)    # See also memmove check below for a place where NO_STRING_H can be    # set and why.    if test $tcl_ok = 0; then	AC_DEFINE(NO_STRING_H)    fi    AC_CHECK_HEADER(sys/wait.h, , [AC_DEFINE(NO_SYS_WAIT_H)])    AC_CHECK_HEADER(dlfcn.h, , [AC_DEFINE(NO_DLFCN_H)])    # OS/390 lacks sys/param.h (and doesn't need it, by chance).    AC_HAVE_HEADERS(unistd.h sys/param.h)])#--------------------------------------------------------------------# SC_PATH_X##	Locate the X11 header files and the X11 library archive.  Try#	the ac_path_x macro first, but if it doesn't find the X stuff#	(e.g. because there's no xmkmf program) then check through#	a list of possible directories.  Under some conditions the#	autoconf macro will return an include directory that contains#	no include files, so double-check its result just to be safe.## Arguments:#	none#	# Results:##	Sets the the following vars:#		XINCLUDES#		XLIBSW##--------------------------------------------------------------------AC_DEFUN(SC_PATH_X, [    AC_PATH_X    not_really_there=""    if test "$no_x" = ""; then	if test "$x_includes" = ""; then	    AC_TRY_CPP([#include <X11/XIntrinsic.h>], , not_really_there="yes")	else	    if test ! -r $x_includes/X11/Intrinsic.h; then		not_really_there="yes"	    fi	fi    fi    if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then	AC_MSG_CHECKING(for X11 header files)	found_xincludes="no"	AC_TRY_CPP([#include <X11/Intrinsic.h>], found_xincludes="yes", found_xincludes="no")	if test "$found_xincludes" = "no"; then	    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"	    for i in $dirs ; do		if test -r $i/X11/Intrinsic.h; then		    AC_MSG_RESULT($i)		    XINCLUDES=" -I$i"		    found_xincludes="yes"		    break		fi	    done	fi    else	if test "$x_includes" != ""; then	    XINCLUDES="-I$x_includes"	    found_xincludes="yes"	fi    fi    if test found_xincludes = "no"; then	AC_MSG_RESULT(couldn't find any!)    fi    if test "$no_x" = yes; then	AC_MSG_CHECKING(for X11 libraries)	XLIBSW=nope	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"	for i in $dirs ; do	    if test -r $i/libX11.a -o -r $i/libX11.so -o -r $i/libX11.sl; then		AC_MSG_RESULT($i)		XLIBSW="-L$i -lX11"		x_libraries="$i"		break	    fi	done    else	if test "$x_libraries" = ""; then	    XLIBSW=-lX11	else	    XLIBSW="-L$x_libraries -lX11"	fi    fi    if test "$XLIBSW" = nope ; then	AC_CHECK_LIB(Xwindow, XCreateWindow, XLIBSW=-lXwindow)    fi    if test "$XLIBSW" = nope ; then	AC_MSG_RESULT(couldn't find any!  Using -lX11.)	XLIBSW=-lX11    fi])#--------------------------------------------------------------------# SC_BLOCKING_STYLE##	The statements below check for systems where POSIX-style#	non-blocking I/O (O_NONBLOCK) doesn't work or is unimplemented. #	On these systems (mostly older ones), use the old BSD-style#	FIONBIO approach instead.## Arguments:#	none#	# Results:##	Defines some of the following vars:#		HAVE_SYS_IOCTL_H#		HAVE_SYS_FILIO_H#		USE_FIONBIO#		O_NONBLOCK##--------------------------------------------------------------------AC_DEFUN(SC_BLOCKING_STYLE, [    AC_CHECK_HEADERS(sys/ioctl.h)    AC_CHECK_HEADERS(sys/filio.h)    AC_MSG_CHECKING([FIONBIO vs. O_NONBLOCK for nonblocking I/O])    if test -f /usr/lib/NextStep/software_version; then	system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`    else	system=`uname -s`-`uname -r`	if test "$?" -ne 0 ; then	    system=unknown	else	    # Special check for weird MP-RAS system (uname returns weird	    # results, and the version is kept in special file).		    if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then		system=MP-RAS-`awk '{print $3}' /etc/.relid'`	    fi	    if test "`uname -s`" = "AIX" ; then		system=AIX-`uname -v`.`uname -r`	    fi	fi    fi    case $system in	# There used to be code here to use FIONBIO under AIX.  However, it	# was reported that FIONBIO doesn't work under AIX 3.2.5.  Since	# using O_NONBLOCK seems fine under AIX 4.*, I removed the FIONBIO	# code (JO, 5/31/97).	OSF*)	    AC_DEFINE(USE_FIONBIO)	    AC_MSG_RESULT(FIONBIO)	    ;;	SunOS-4*)	    AC_DEFINE(USE_FIONBIO)	    AC_MSG_RESULT(FIONBIO)	    ;;	ULTRIX-4.*)	    AC_DEFINE(USE_FIONBIO)	    AC_MSG_RESULT(FIONBIO)	    ;;	*)	    AC_MSG_RESULT(O_NONBLOCK)	    ;;    esac])#--------------------------------------------------------------------# SC_TIME_HANLDER##	Checks how the system deals with time.h, what time structures#	are used on the system, and what fields the structures have.## Arguments:#	none#	# Results:##	Defines some of the following vars:#		USE_DELTA_FOR_TZ#		HAVE_TM_GMTOFF#		HAVE_TM_TZADJ#		HAVE_TIMEZONE_VAR##--------------------------------------------------------------------AC_DEFUN(SC_TIME_HANDLER, [    AC_CHECK_HEADERS(sys/time.h)    AC_HEADER_TIME    AC_STRUCT_TIMEZONE    AC_CHECK_FUNCS(gmtime_r localtime_r)    AC_MSG_CHECKING([tm_tzadj in struct tm])    AC_CACHE_VAL(tcl_cv_member_tm_tzadj,	AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_tzadj;],	    tcl_cv_member_tm_tzadj=yes, tcl_cv_member_tm_tzadj=no))    AC_MSG_RESULT($tcl_cv_member_tm_tzadj)    if test $tcl_cv_member_tm_tzadj = yes ; then	AC_DEFINE(HAVE_TM_TZADJ)    fi    AC_MSG_CHECKING([tm_gmtoff in struct tm])    AC_CACHE_VAL(tcl_cv_member_tm_gmtoff,	AC_TRY_COMPILE([#include <time.h>], [struct tm tm; tm.tm_gmtoff;],	    tcl_cv_member_tm_gmtoff=yes, tcl_cv_member_tm_gmtoff=no))    AC_MSG_RESULT($tcl_cv_member_tm_gmtoff)    if test $tcl_cv_member_tm_gmtoff = yes ; then	AC_DEFINE(HAVE_TM_GMTOFF)    fi    #    # Its important to include time.h in this check, as some systems    # (like convex) have timezone functions, etc.    #    AC_MSG_CHECKING([long timezone variable])    AC_CACHE_VAL(tcl_cv_var_timezone,	AC_TRY_COMPILE([#include <time.h>],	    [extern long timezone;	    timezone += 1;	    exit (0);],	    tcl_cv_timezone_long=yes, tcl_cv_timezone_long=no))    AC_MSG_RESULT($tcl_cv_timezone_long)    if test $tcl_cv_timezone_long = yes ; then	AC_DEFINE(HAVE_TIMEZONE_VAR)    else	#	# On some systems (eg IRIX 6.2), timezone is a time_t and not a long.	#	AC_MSG_CHECKING([time_t timezone variable])	AC_CACHE_VAL(tcl_cv_timezone_time,	    AC_TRY_COMPILE([#include <time.h>],		[extern time_t timezone;		timezone += 1;		exit (0);],		tcl_cv_timezone_time=yes, tcl_cv_timezone_time=no))	AC_MSG_RESULT($tcl_cv_timezone_time)	if test $tcl_cv_timezone_time = yes ; then	    AC_DEFINE(HAVE_TIMEZONE_VAR)	fi    fi])#--------------------------------------------------------------------# SC_BUGGY_STRTOD##	Under Solaris 2.4, strtod returns the wrong value for the#	terminating character under some conditions.  Check for this#	and if the problem exists use a substitute procedure#	"fixstrtod" (provided by Tcl) that corrects the error.#	Also, on Compaq's Tru64 Unix 5.0,#	strtod(" ") returns 0.0 instead of a failure to convert.## Arguments:#	none#	# Results:##	Might defines some of the following vars:#		strtod (=fixstrtod)##--------------------------------------------------------------------AC_DEFUN(SC_BUGGY_STRTOD, [    AC_CHECK_FUNC(strtod, tcl_strtod=1, tcl_strtod=0)    if test "$tcl_strtod" = 1; then	AC_MSG_CHECKING([for Solaris2.4/Tru64 strtod bugs])	AC_CACHE_VAL(tcl_cv_strtod_buggy,[	    AC_TRY_RUN([		extern double strtod();		int main() {		    char *infString="Inf", *nanString="NaN", *spaceString=" ";		    char *term;		    double val

⌨️ 快捷键说明

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