Revision: 41169
http://brlcad.svn.sourceforge.net/brlcad/?rev=41169&view=rev
Author: starseeker
Date: 2010-10-29 14:01:33 +0000 (Fri, 29 Oct 2010)
Log Message:
-----------
Expand serial port check and add flag to results.
Modified Paths:
--------------
brlcad/branches/cmake/src/other/tcl/CMake/CheckSystemFunctionality.cmake
Modified:
brlcad/branches/cmake/src/other/tcl/CMake/CheckSystemFunctionality.cmake
===================================================================
--- brlcad/branches/cmake/src/other/tcl/CMake/CheckSystemFunctionality.cmake
2010-10-29 07:07:05 UTC (rev 41168)
+++ brlcad/branches/cmake/src/other/tcl/CMake/CheckSystemFunctionality.cmake
2010-10-29 14:01:33 UTC (rev 41169)
@@ -243,7 +243,7 @@
MACRO(TERMIOS_TERMIO_SGTTY)
- SET(TERMIOS_SRC "
+ SET(TERMIOS_SRC_1 "
#include <termios.h>
int main() {
struct termios t;
@@ -255,7 +255,22 @@
return 1;
}
")
- SET(TERMIO_SRC "
+ SET(TERMIOS_SRC_2 "
+ #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;
+ }
+ ")
+ SET(TERMIO_SRC_1 "
#include <termio.h>
int main() {
struct termio t;
@@ -266,7 +281,21 @@
return 1;
}
")
- SET(SGTTY_SRC "
+ SET(TERMIO_SRC_2 "
+ #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;
+ }
+ ")
+ SET(SGTTY_SRC_1 "
#include <sgtty.h>
int main() {
struct sgttyb t;
@@ -278,13 +307,51 @@
return 1;
}
")
- CHECK_C_SOURCE_RUNS("${TERMIOS_SRC}" HAVE_TERMIOS)
+ SET(SGTTY_SRC_2 "
+ #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;
+ }
+ ")
+ CHECK_C_SOURCE_RUNS("${TERMIOS_SRC_1}" HAVE_TERMIOS)
IF(NOT HAVE_TERMIOS)
- CHECK_C_SOURCE_RUNS("${TERMIO_SRC}" HAVE_TERMIO)
+ CHECK_C_SOURCE_RUNS("${TERMIO_SRC_1}" HAVE_TERMIO)
ENDIF(NOT HAVE_TERMIOS)
IF(NOT HAVE_TERMIO AND NOT HAVE_TERMIOS)
- CHECK_C_SOURCE_RUNS("${SGTTY_SRC}" HAVE_SGTTY)
+ CHECK_C_SOURCE_RUNS("${SGTTY_SRC_1}" HAVE_SGTTY)
ENDIF(NOT HAVE_TERMIO AND NOT HAVE_TERMIOS)
+ IF(NOT HAVE_TERMIO AND NOT HAVE_TERMIOS AND NOT HAVE_SGTTY)
+ CHECK_C_SOURCE_RUNS("${TERMIOS_SRC_2}" HAVE_TERMIOS)
+ IF(NOT HAVE_TERMIOS)
+ CHECK_C_SOURCE_RUNS("${TERMIO_SRC_2}" HAVE_TERMIO)
+ ENDIF(NOT HAVE_TERMIOS)
+ IF(NOT HAVE_TERMIO AND NOT HAVE_TERMIOS)
+ CHECK_C_SOURCE_RUNS("${SGTTY_SRC_2}" HAVE_SGTTY)
+ ENDIF(NOT HAVE_TERMIO AND NOT HAVE_TERMIOS)
+ ENDIF(NOT HAVE_TERMIO AND NOT HAVE_TERMIOS AND NOT HAVE_SGTTY)
+
+ IF(HAVE_TERMIOS)
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS}
-DUSE_TERMIOS=1" CACHE STRING "TCL CFLAGS" FORCE)
+ ELSE(HAVE_TERMIOS)
+ IF(HAVE_TERMIO)
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS}
-DUSE_TERMIO=1" CACHE STRING "TCL CFLAGS" FORCE)
+ ELSE(HAVE_TERMIO)
+ IF(HAVE_SGTTY)
+ SET(${CFLAGS_NAME}_CFLAGS
"${${CFLAGS_NAME}_CFLAGS} -DUSE_SGTTY=1" CACHE STRING "TCL CFLAGS" FORCE)
+ ENDIF(HAVE_SGTTY)
+ ENDIF(HAVE_TERMIO)
+ ENDIF(HAVE_TERMIOS)
+
+
ENDMACRO(TERMIOS_TERMIO_SGTTY)
MACRO(CHECK_FD_SET_IN_TYPES_D)
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits