Revision: 41147
http://brlcad.svn.sourceforge.net/brlcad/?rev=41147&view=rev
Author: starseeker
Date: 2010-10-27 03:44:06 +0000 (Wed, 27 Oct 2010)
Log Message:
-----------
Not even close to working, but start rewiring the CMake logic to generate
CFLAGS instead of the config.h file. Obviously don't want to add flags for
those things actually in tclConfig.h.in, so will have to revert a fair number
of these to basic tests.
Modified Paths:
--------------
brlcad/branches/cmake/src/other/tcl/CMake/CheckSystemFunctionality.cmake
brlcad/branches/cmake/src/other/tcl/CMakeLists.txt
Modified:
brlcad/branches/cmake/src/other/tcl/CMake/CheckSystemFunctionality.cmake
===================================================================
--- brlcad/branches/cmake/src/other/tcl/CMake/CheckSystemFunctionality.cmake
2010-10-26 23:06:39 UTC (rev 41146)
+++ brlcad/branches/cmake/src/other/tcl/CMake/CheckSystemFunctionality.cmake
2010-10-27 03:44:06 UTC (rev 41147)
@@ -27,22 +27,22 @@
INCLUDE(CheckCSourceCompiles)
INCLUDE(ResolveCompilerPaths)
-MACRO(CHECK_FUNCTION_EXISTS_H function var)
+MACRO(CHECK_FUNCTION_EXISTS_D function var)
CHECK_FUNCTION_EXISTS(${function} ${var})
- if(CONFIG_H_FILE AND ${var})
- FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine ${var} 1\n")
- endif(CONFIG_H_FILE AND ${var})
-ENDMACRO(CHECK_FUNCTION_EXISTS_H)
+ if(${var})
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS}
-D${var}=1" CACHE STRING "TCL CFLAGS" FORCE)
+ endif(${var})
+ENDMACRO(CHECK_FUNCTION_EXISTS_D)
-MACRO(CHECK_INCLUDE_FILE_H filename var)
+MACRO(CHECK_INCLUDE_FILE_D filename var)
CHECK_INCLUDE_FILE(${filename} ${var})
- if(CONFIG_H_FILE AND ${var})
- FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine ${var} 1\n")
- endif(CONFIG_H_FILE AND ${var})
-ENDMACRO(CHECK_INCLUDE_FILE_H)
+ if(${var})
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS}
-D${var}=1" CACHE STRING "TCL CFLAGS" FORCE)
+ endif(${var})
+ENDMACRO(CHECK_INCLUDE_FILE_D)
-MACRO(CHECK_INCLUDE_FILE_USABILITY_H filename var)
- CHECK_INCLUDE_FILE_H(${filename} HAVE_${var})
+MACRO(CHECK_INCLUDE_FILE_USABILITY_D filename var)
+ CHECK_INCLUDE_FILE_D(${filename} HAVE_${var})
IF(HAVE_${var})
SET(HEADER_SRC "
#include <${filename}>
@@ -51,38 +51,36 @@
CHECK_C_SOURCE_COMPILES("${HEADER_SRC}" ${var}_USABLE)
ENDIF(HAVE_${var})
IF(NOT HAVE_${var} OR NOT ${var}_USABLE)
- IF(CONFIG_H_FILE)
- FILE(APPEND ${CONFIG_H_FILE} "#define NO_${var} 1\n")
- ENDIF(CONFIG_H_FILE)
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS}
-DNO_${var}=1" CACHE STRING "TCL CFLAGS" FORCE)
ENDIF(NOT HAVE_${var} OR NOT ${var}_USABLE)
-ENDMACRO(CHECK_INCLUDE_FILE_USABILITY_H filename var)
+ENDMACRO(CHECK_INCLUDE_FILE_USABILITY_D filename var)
-MACRO(CHECK_INCLUDE_FILE_CXX_H filename var)
+MACRO(CHECK_INCLUDE_FILE_CXX_D filename var)
CHECK_INCLUDE_FILE_CXX(${filename} ${var})
- if(CONFIG_H_FILE AND ${var})
- FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine ${var} 1\n")
- endif(CONFIG_H_FILE AND ${var})
-ENDMACRO(CHECK_INCLUDE_FILE_CXX_H)
+ if(${var})
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS} -D${var}=1" CACHE
STRING "TCL CFLAGS" FORCE)
+ endif(${var})
+ENDMACRO(CHECK_INCLUDE_FILE_CXX_D)
-MACRO(CHECK_TYPE_SIZE_H typename var)
+MACRO(CHECK_TYPE_SIZE_D typename var)
FOREACH(arg ${ARGN})
SET(headers ${headers} ${arg})
ENDFOREACH(arg ${ARGN})
SET(CHECK_EXTRA_INCLUDE_FILES ${headers})
CHECK_TYPE_SIZE(${typename} HAVE_${var}_T)
SET(CHECK_EXTRA_INCLUDE_FILES)
- if(CONFIG_H_FILE AND HAVE_${var}_T)
- FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_${var}_T 1\n")
- FILE(APPEND ${CONFIG_H_FILE} "#define SIZEOF_${var}
${HAVE_${var}_T}\n")
- endif(CONFIG_H_FILE AND HAVE_${var}_T)
-ENDMACRO(CHECK_TYPE_SIZE_H)
+ if(HAVE_${var}_T)
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS}
-DHAVE_${var}_T=1" CACHE STRING "TCL CFLAGS" FORCE)
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS}
-DSIZEOF_${var}=${HAVE_${var}_T}" CACHE STRING "TCL CFLAGS" FORCE)
+ endif(HAVE_${var}_T)
+ENDMACRO(CHECK_TYPE_SIZE_D)
-MACRO(CHECK_STRUCT_HAS_MEMBER_H structname member header var)
+MACRO(CHECK_STRUCT_HAS_MEMBER_D structname member header var)
CHECK_STRUCT_HAS_MEMBER(${structname} ${member} ${header} HAVE_${var})
- if(CONFIG_H_FILE AND HAVE_${var})
- FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_${var} 1\n")
- endif(CONFIG_H_FILE AND HAVE_${var})
-ENDMACRO(CHECK_STRUCT_HAS_MEMBER_H)
+ if(HAVE_${var})
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS}
-DHAVE_${var}=1" CACHE STRING "TCL CFLAGS" FORCE)
+ endif(HAVE_${var})
+ENDMACRO(CHECK_STRUCT_HAS_MEMBER_D)
MACRO(CHECK_LIBRARY targetname lname func)
IF(NOT ${targetname}_LIBRARY)
@@ -115,7 +113,7 @@
INCLUDE(CheckCSourceRuns)
INCLUDE(CheckCFileRuns)
-MACRO(CHECK_BASENAME)
+MACRO(CHECK_BASENAME_D)
SET(BASENAME_SRC "
#include <libgen.h>
int main(int argc, char *argv[]) {
@@ -124,11 +122,11 @@
}")
CHECK_C_SOURCE_RUNS("${BASENAME_SRC}" HAVE_BASENAME)
IF(HAVE_BASENAME)
- FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_BASENAME 1\n")
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS}
-DHAVE_BASENAME=1" CACHE STRING "TCL CFLAGS" FORCE)
ENDIF(HAVE_BASENAME)
-ENDMACRO(CHECK_BASENAME var)
+ENDMACRO(CHECK_BASENAME_D)
-MACRO(CHECK_DIRNAME)
+MACRO(CHECK_DIRNAME_D)
SET(DIRNAME_SRC "
#include <libgen.h>
int main(int argc, char *argv[]) {
@@ -137,59 +135,64 @@
}")
CHECK_C_SOURCE_RUNS("${DIRNAME_SRC}" HAVE_DIRNAME)
IF(HAVE_DIRNAME)
- FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_DIRNAME 1\n")
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS}
-DHAVE_DIRNAME=1" CACHE STRING "TCL CFLAGS" FORCE)
ENDIF(HAVE_DIRNAME)
-ENDMACRO(CHECK_DIRNAME var)
+ENDMACRO(CHECK_DIRNAME_D)
# Based on AC_HEADER_STDC - using the source code for ctype
# checking found in the generated configure file
-MACRO(CMAKE_HEADER_STDC)
+MACRO(CMAKE_HEADER_STDC_D)
CHECK_INCLUDE_FILE(stdlib.h HAVE_STDLIB_H)
- FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_STDLIB_H 1\n")
+ IF(HAVE_STDLIB_H)
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS} -DHAVE_STDLIB_H=1" CACHE
STRING "TCL CFLAGS" FORCE)
+ ENDIF(HAVE_STDLIB_H)
CHECK_INCLUDE_FILE(stdarg.h HAVE_STDARG_H)
CHECK_INCLUDE_FILE(string.h HAVE_STRING_H)
- FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_STRING_H 1\n")
+ IF(HAVE_STRING_H)
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS} -DHAVE_STRING_H=1" CACHE
STRING "TCL CFLAGS" FORCE)
+ ENDIF(HAVE_STRING_H)
CHECK_INCLUDE_FILE(strings.h HAVE_STRINGS_H)
- FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_STRINGS_H 1\n")
+ IF(HAVE_STRINGS_H)
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS} -DHAVE_STRINGS_H=1"
CACHE STRING "TCL CFLAGS" FORCE)
+ ENDIF(HAVE_STRINGS_H)
CHECK_INCLUDE_FILE(float.h HAVE_FLOAT_H)
CHECK_PROTOTYPE_EXISTS(memchr string.h HAVE_STRING_H_MEMCHR)
CHECK_PROTOTYPE_EXISTS(free stdlib.h HAVE_STDLIB_H_FREE)
CHECK_C_FILE_RUNS(${CMAKE_TEST_SRCS_DIR}/ctypes_test.c WORKING_CTYPE_MACROS)
IF(HAVE_STDLIB_H AND HAVE_STDARG_H AND HAVE_STRING_H AND HAVE_FLOAT_H AND
WORKING_CTYPE_MACROS)
- FILE(APPEND ${CONFIG_H_FILE} "#define STDC_HEADERS 1\n")
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS} -DSTDC_HEADERS=1"
CACHE STRING "TCL CFLAGS" FORCE)
ENDIF(HAVE_STDLIB_H AND HAVE_STDARG_H AND HAVE_STRING_H AND HAVE_FLOAT_H AND
WORKING_CTYPE_MACROS)
-ENDMACRO(CMAKE_HEADER_STDC)
+ENDMACRO(CMAKE_HEADER_STDC_D)
# Based on AC_HEADER_SYS_WAIT
-MACRO(CMAKE_HEADER_SYS_WAIT)
+MACRO(CMAKE_HEADER_SYS_WAIT_D)
CHECK_C_FILE_RUNS(${CMAKE_TEST_SRCS_DIR}/sys_wait_test.c WORKING_SYS_WAIT)
IF(WORKING_SYS_WAIT)
- FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_SYS_WAIT_H 1\n")
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS}
-DHAVE_SYS_WAIT_H=1" CACHE STRING "TCL CFLAGS" FORCE)
ENDIF(WORKING_SYS_WAIT)
-ENDMACRO(CMAKE_HEADER_SYS_WAIT)
+ENDMACRO(CMAKE_HEADER_SYS_WAIT_D)
# Based on AC_FUNC_ALLOCA
-MACRO(CMAKE_ALLOCA)
+MACRO(CMAKE_ALLOCA_D)
CHECK_C_FILE_RUNS(${CMAKE_TEST_SRCS_DIR}/alloca_header_test.c
WORKING_ALLOCA_H)
IF(WORKING_ALLOCA_H)
- FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_ALLOCA_H 1\n")
- SET(FILE_RUN_DEFINITIONS "-DHAVE_ALLOCA_H")
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS}
-DHAVE_ALLOCA_H=1" CACHE STRING "TCL CFLAGS" FORCE)
ENDIF(WORKING_ALLOCA_H)
CHECK_C_FILE_RUNS(${CMAKE_TEST_SRCS_DIR}/alloca_test.c WORKING_ALLOCA)
IF(WORKING_ALLOCA)
- FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_ALLOCA 1\n")
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS}
-DHAVE_ALLOCA=1" CACHE STRING "TCL CFLAGS" FORCE)
ENDIF(WORKING_ALLOCA)
-ENDMACRO(CMAKE_ALLOCA)
+ENDMACRO(CMAKE_ALLOCA_D)
-MACRO(CHECK_COMPILER_SUPPORTS_HIDDEN)
+MACRO(CHECK_COMPILER_SUPPORTS_HIDDEN_D)
SET(TEST_SRC"
#define MODULE_SCOPE extern __attribute__((__visibility__("hidden")))
main(){};
")
CHECK_C_SOURCE_COMPILES("${TEST_SRC}" COMPILER_SUPPORTS_HIDDEN)
-ENDMACRO(CHECK_COMPILER_SUPPORTS_HIDDEN)
+ENDMACRO(CHECK_COMPILER_SUPPORTS_HIDDEN_D)
-MACRO(CHECK_GETADDERINFO_WORKING)
+MACRO(CHECK_GETADDERINFO_WORKING_D)
SET(GETADDERINFO_SRC "
#include <netdb.h>
int main () {
@@ -201,9 +204,9 @@
}")
CHECK_C_SOURCE_COMPILES("${GETADDERINFO_SRC}" WORKING_GETADDERINFO)
IF(WORKING_GETADDERINFO)
- FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_GETADDERINFO 1\n")
+ SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS}
-DHAVE_GETADDERINFO=1" CACHE STRING "TCL CFLAGS" FORCE)
ENDIF(WORKING_GETADDERINFO)
-ENDMACRO(CHECK_GETADDERINFO_WORKING)
+ENDMACRO(CHECK_GETADDERINFO_WORKING_D)
MACRO(TERMIOS_TERMIO_SGTTY)
@@ -251,7 +254,7 @@
ENDIF(NOT HAVE_TERMIO AND NOT HAVE_TERMIOS)
ENDMACRO(TERMIOS_TERMIO_SGTTY)
-MACRO(CHECK_FD_SET_IN_TYPES_H)
+MACRO(CHECK_FD_SET_IN_TYPES_D)
SET(TEST_SRC "
#include <sys/types.h>
int main ()
@@ -261,7 +264,7 @@
}
")
CHECK_C_SOURCE_COMPILES("${TEST_SRC}" FD_SET_IN_TYPES_H)
-ENDMACRO(CHECK_FD_SET_IN_TYPES_H)
+ENDMACRO(CHECK_FD_SET_IN_TYPES_D)
MACRO(CHECK_TIME_AND_SYS_TIME)
SET(TEST_SRC "
Modified: brlcad/branches/cmake/src/other/tcl/CMakeLists.txt
===================================================================
--- brlcad/branches/cmake/src/other/tcl/CMakeLists.txt 2010-10-26 23:06:39 UTC
(rev 41146)
+++ brlcad/branches/cmake/src/other/tcl/CMakeLists.txt 2010-10-27 03:44:06 UTC
(rev 41147)
@@ -45,6 +45,10 @@
# set CMake project name
PROJECT(TCL)
+# set local CFLAGS name
+SET(CFLAGS_NAME TCL)
+SET(TCL_CFLAGS "")
+
# build shared libs by default
OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON)
@@ -92,112 +96,104 @@
SET(CMAKE_MODULE_PATH "${TCL_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
#-----------------------------------------------------------------------------
-# Unlike the autotools based builds, CMake will always use tclConfig.h - define
-# this at the toplevel so tclPort.h includes it.
+# The header structure of Tcl/Tk ends up requiring compile-line definitions of
+# many variables to ensure the various headers get the correct values. Due
+# to the number of these flags, we build up a TCL_CFLAGS list to be passed
+# to the final build. Unlike Tk, Tcl also has a pre-defined tclConfig.h.in
+# file that needs to be configured - handle both.
-add_definitions(
- -DHAVE_TCL_CONFIG_H
-)
-
-# We will need a tclConfig.h.in file to hold all the #cmakedefine statements,
-# which will in turn be used to generate a tclConfig.h file. To succeed, the
-# file must first be present, which we take care of here:
-
-SET(CONFIG_H_FILE "${CMAKE_BINARY_DIR}/include/tclConfig.h.in")
-FILE(WRITE ${CONFIG_H_FILE} "/**** Tcl define statements from CMake ****/\n")
-FILE(APPEND ${CONFIG_H_FILE} "#ifndef _TCLCONFIG\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define _TCLCONFIG\n")
-
INCLUDE(${TCL_SOURCE_DIR}/CMake/CheckSystemFunctionality.cmake)
#----------------------------------------------------------------------------
# First, get some standard options out of the way - things that are constant
# between various platforms or pertain to specific OS definitions
-FILE(APPEND ${CONFIG_H_FILE} "#define PACKAGE_NAME \"tcl\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define PACKAGE_TARNAME \"tcl\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define PACKAGE_VERSION
\"${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define PACKAGE_STRING \"tcl
${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define PACKAGE_BUGREPORT \"\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define STDC_HEADERS 1\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define TCL_SHLIB_EXT
\"${CMAKE_SHARED_LIBRARY_SUFFIX}\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define CFG_INSTALL_LIBDIR
\"${CMAKE_INSTALL_PREFIX}/lib\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define CFG_INSTALL_BINDIR
\"${CMAKE_INSTALL_PREFIX}/bin\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define CFG_INSTALL_SCRDIR
\"${CMAKE_INSTALL_PREFIX}/scripts\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define CFG_INSTALL_INCDIR
\"${CMAKE_INSTALL_PREFIX}/include\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define CFG_INSTALL_DOCDIR
\"${CMAKE_INSTALL_PREFIX}/share/man\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define CFG_RUNTIME_LIBDIR
\"${CMAKE_INSTALL_PREFIX}/lib\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define CFG_RUNTIME_BINDIR
\"${CMAKE_INSTALL_PREFIX}/bin\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define CFG_RUNTIME_SCRDIR
\"${CMAKE_INSTALL_PREFIX}/scripts\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define CFG_RUNTIME_INCDIR
\"${CMAKE_INSTALL_PREFIX}/include\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define CFG_RUNTIME_DOCDIR
\"${CMAKE_INSTALL_PREFIX}/share/man\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define TCL_LIBRARY
\"${CMAKE_INSTALL_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}tcl${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#define TCL_PACKAGE_PATH
\"${CMAKE_INSTALL_PREFIX}/lib\"\n")
+SET(TCL_CFLAGS "${TCL_CFLAGS} -DPACKAGE_NAME=\"tcl\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS} -DPACKAGE_TARNAME=\"tcl\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS}
-DPACKAGE_VERSION=\"${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS} -DPACKAGE_STRING=\"tcl\\
${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS} -DPACKAGE_BUGREPORT=\"\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS} -DSTDC_HEADERS=1")
+SET(TCL_CFLAGS "${TCL_CFLAGS}
-DTCL_SHLIB_EXT=\"${CMAKE_SHARED_LIBRARY_SUFFIX}\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS}
-DCFG_INSTALL_LIBDIR=\"${CMAKE_INSTALL_PREFIX}/lib\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS}
-DCFG_INSTALL_BINDIR=\"${CMAKE_INSTALL_PREFIX}/bin\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS}
-DCFG_INSTALL_SCRDIR=\"${CMAKE_INSTALL_PREFIX}/scripts\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS}
-DCFG_INSTALL_INCDIR=\"${CMAKE_INSTALL_PREFIX}/include\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS}
-DCFG_INSTALL_DOCDIR=\"${CMAKE_INSTALL_PREFIX}/share/man\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS}
-DCFG_RUNTIME_LIBDIR=\"${CMAKE_INSTALL_PREFIX}/lib\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS}
-DCFG_RUNTIME_BINDIR=\"${CMAKE_INSTALL_PREFIX}/bin\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS}
-DCFG_RUNTIME_SCRDIR=\"${CMAKE_INSTALL_PREFIX}/scripts\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS}
-DCFG_RUNTIME_INCDIR=\"${CMAKE_INSTALL_PREFIX}/include\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS}
-DCFG_RUNTIME_DOCDIR=\"${CMAKE_INSTALL_PREFIX}/share/man\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS}
-DTCL_LIBRARY=\"${CMAKE_INSTALL_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}tcl${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX}\"")
+SET(TCL_CFLAGS "${TCL_CFLAGS}
-DTCL_PACKAGE_PATH=\"${CMAKE_INSTALL_PREFIX}/lib\"")
IF(NOT TCL_CFGVAL_ENCODING)
SET(TCL_CFGVAL_ENCODING "iso8859-1")
ENDIF(NOT TCL_CFGVAL_ENCODING)
-FILE(APPEND ${CONFIG_H_FILE} "#define TCL_CFGVAL_ENCODING
\"${TCL_CFGVAL_ENCODING}\"\n")
+SET(TCL_CFLAGS "${TCL_CFLAGS}
-DTCL_CFGVAL_ENCODING=\"${TCL_CFGVAL_ENCODING}\"")
IF(APPLE)
- FILE(APPEND ${CONFIG_H_FILE} "#define MAC_OSX_TCL 1\n")
+ SET(TCL_CFLAGS "${TCL_CFLAGS} -DMAC_OSX_TCL=1")
find_library(COREFOUNDATION_FRAMEWORK CoreFoundation)
IF(COREFOUNDATION_FRAMEWORK)
- FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_COREFOUNDATION 1\n")
+ SET(TCL_CFLAGS "${TCL_CFLAGS} -DHAVE_COREFOUNDATION=1")
ENDIF(COREFOUNDATION_FRAMEWORK)
ENDIF(APPLE)
#----------------------------------------------------------------------------
# Define a number of variables to be controlled by options
OPTION(TCL_THREADS "Enable Tcl Thread support" ON)
-FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine TCL_THREADS 1\n")
IF(TCL_THREADS)
- FILE(APPEND ${CONFIG_H_FILE} "#define USE_THREAD_ALLOC 1\n")
- FILE(APPEND ${CONFIG_H_FILE} "#define _REENTRANT 1\n")
- FILE(APPEND ${CONFIG_H_FILE} "#define _THREAD_SAFE 1\n")
+ SET(TCL_CFLAGS "${TCL_CFLAGS} -DTCL_THREADS=1")
+ SET(TCL_CFLAGS "${TCL_CFLAGS} -DUSE_THREAD_ALLOC=1")
+ SET(TCL_CFLAGS "${TCL_CFLAGS} -D_REENTRANT=1")
+ SET(TCL_CFLAGS "${TCL_CFLAGS} -D_THREAD_SAFE=1")
IF(${CMAKE_SYSTEM_NAME} MATCHES "^SunOS$")
- FILE(APPEND ${CONFIG_H_FILE} "#define _POSIX_PTHREAD_SEMANTICS
1\n")
+ SET(TCL_CFLAGS "${TCL_CFLAGS} -D_POSIX_PTHREAD_SEMANTICS=1")
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "^SunOS$")
ENDIF(TCL_THREADS)
# Tom's math library
OPTION(TCL_TOMMATH "Enable Tcl Tom's Math Library" ON)
-FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine TCL_TOMMATH 1\n")
+IF(TCL_TOMMMATH)
+ SET(TCL_TOMMATH "${TCL_CFLAGS} -DTCL_TOMMATH=1")
+ENDIF(TCL_TOMMMATH)
#----------------------------------------------------------------------------
# Run tests for system headers and functionality
-CHECK_INCLUDE_FILE_H(sys/types.h HAVE_SYS_TYPES_H)
-CHECK_INCLUDE_FILE_H(sys/stat.h HAVE_SYS_STAT_H)
-CHECK_INCLUDE_FILE_H(sys/fstatfs.h HAVE_SYS_FSTATFS_H)
+CHECK_INCLUDE_FILE_D(sys/types.h HAVE_SYS_TYPES_H)
+CHECK_INCLUDE_FILE_D(sys/stat.h HAVE_SYS_STAT_H)
+CHECK_INCLUDE_FILE_D(sys/fstatfs.h HAVE_SYS_FSTATFS_H)
IF(NOT HAVE_SYS_FSTATFS_H)
- FILE(APPEND ${CONFIG_H_FILE} "#define NO_FSTATFS 1\n")
+ SET(TCL_CFLAGS "${TCL_CFLAGS} -DNO_FSTATFS=1")
ENDIF(NOT HAVE_SYS_FSTATFS_H)
-CHECK_INCLUDE_FILE_H(stdlib.h HAVE_STDLIB_H)
-CHECK_INCLUDE_FILE_H(string.h HAVE_STRING_H)
-CHECK_INCLUDE_FILE_H(memory.h HAVE_MEMORY_H)
-CHECK_INCLUDE_FILE_H(strings.h HAVE_STRINGS_H)
-CHECK_INCLUDE_FILE_H(inttypes.h HAVE_INTTYPES_H)
-CHECK_INCLUDE_FILE_H(stdint.h HAVE_STDINT_H)
-CHECK_INCLUDE_FILE_H(unistd.h HAVE_UNISTD_H)
+CHECK_INCLUDE_FILE_D(stdlib.h HAVE_STDLIB_H)
+CHECK_INCLUDE_FILE_D(string.h HAVE_STRING_H)
+CHECK_INCLUDE_FILE_D(memory.h HAVE_MEMORY_H)
+CHECK_INCLUDE_FILE_D(strings.h HAVE_STRINGS_H)
+CHECK_INCLUDE_FILE_D(inttypes.h HAVE_INTTYPES_H)
+CHECK_INCLUDE_FILE_D(stdint.h HAVE_STDINT_H)
+CHECK_INCLUDE_FILE_D(unistd.h HAVE_UNISTD_H)
-CHECK_INCLUDE_FILE_H(dirent.h HAVE_DIRENT_H)
+CHECK_INCLUDE_FILE_D(dirent.h HAVE_DIRENT_H)
IF(NOT HAVE_DIRENT_H)
- FILE(APPEND ${CONFIG_H_FILE} "#define NO_DIRENT_H 1\n")
+ SET(TCL_CFLAGS "${TCL_CFLAGS} -DNO_DIRENT_H=1")
ENDIF(NOT HAVE_DIRENT_H)
-CHECK_INCLUDE_FILE_USABILITY_H(float.h FLOAT_H)
-CHECK_INCLUDE_FILE_USABILITY_H(values.h VALUES_H)
-CHECK_INCLUDE_FILE_USABILITY_H(limits.h LIMITS_H)
-CHECK_INCLUDE_FILE_USABILITY_H(sys/wait.h SYS_WAIT_H)
-CHECK_INCLUDE_FILE_USABILITY_H(dlfcn.h DLFCN_H)
-CHECK_INCLUDE_FILE_USABILITY_H(sys/param.h SYS_PARAM_H)
+CHECK_INCLUDE_FILE_USABILITY_D(float.h FLOAT_H)
+CHECK_INCLUDE_FILE_USABILITY_D(values.h VALUES_H)
+CHECK_INCLUDE_FILE_USABILITY_D(limits.h LIMITS_H)
+CHECK_INCLUDE_FILE_USABILITY_D(sys/wait.h SYS_WAIT_H)
+CHECK_INCLUDE_FILE_USABILITY_D(dlfcn.h DLFCN_H)
+CHECK_INCLUDE_FILE_USABILITY_D(sys/param.h SYS_PARAM_H)
CHECK_LIBRARY(M m sin)
CHECK_LIBRARY(IEEE ieee main)
CHECK_LIBRARY(INET inet main)
-CHECK_INCLUDE_FILE_USABILITY_H(net/errno.h NET_ERRNO_H)
+CHECK_INCLUDE_FILE_USABILITY_D(net/errno.h NET_ERRNO_H)
CHECK_FUNCTION_EXISTS(connect HAVE_CONNECT)
CHECK_FUNCTION_EXISTS(gethostbyname HAVE_GETHOSTBYNAME)
@@ -206,98 +202,94 @@
SET(HAVE_GETHOSTBYNAME ${GHBN})
ENDIF(NOT HAVE_GETHOSTBYNAME)
-CHECK_COMPILER_SUPPORTS_HIDDEN()
+CHECK_COMPILER_SUPPORTS_HIDDEN_D()
CHECK_LIBRARY(DL dl dlopen)
INCLUDE(TestBigEndian)
TEST_BIG_ENDIAN(IS_BIGENDIAN)
-CHECK_FUNCTION_EXISTS_H(getcwd HAVE_GETCWD)
-CHECK_FUNCTION_EXISTS_H(opendir HAVE_OPENDIR)
-CHECK_FUNCTION_EXISTS_H(strtol HAVE_STRTOL)
-CHECK_FUNCTION_EXISTS_H(waitpid HAVE_WAITPID)
-CHECK_FUNCTION_EXISTS_H(strerror HAVE_STRERROR)
-CHECK_FUNCTION_EXISTS_H(getwd HAVE_GETWD)
-CHECK_FUNCTION_EXISTS_H(wait3 HAVE_WAIT3)
-CHECK_FUNCTION_EXISTS_H(uname HAVE_UNAME)
-CHECK_FUNCTION_EXISTS_H(realpath HAVE_REALPATH)
+CHECK_FUNCTION_EXISTS_D(getcwd HAVE_GETCWD)
+CHECK_FUNCTION_EXISTS_D(opendir HAVE_OPENDIR)
+CHECK_FUNCTION_EXISTS_D(strtol HAVE_STRTOL)
+CHECK_FUNCTION_EXISTS_D(waitpid HAVE_WAITPID)
+CHECK_FUNCTION_EXISTS_D(strerror HAVE_STRERROR)
+CHECK_FUNCTION_EXISTS_D(getwd HAVE_GETWD)
+CHECK_FUNCTION_EXISTS_D(wait3 HAVE_WAIT3)
+CHECK_FUNCTION_EXISTS_D(uname HAVE_UNAME)
+CHECK_FUNCTION_EXISTS_D(realpath HAVE_REALPATH)
CHECK_FUNCTION_EXISTS(getaddrinfo HAVE_GETADDRINFO)
IF(HAVE_GETADDRINFO)
- CHECK_GETADDERINFO_WORKING()
+ CHECK_GETADDERINFO_WORKING_D()
ENDIF(HAVE_GETADDRINFO)
-CHECK_INCLUDE_FILE_USABILITY_H(sys/modem.h SYS_MODEM_H)
+CHECK_INCLUDE_FILE_USABILITY_D(sys/modem.h SYS_MODEM_H)
TERMIOS_TERMIO_SGTTY()
-CHECK_FD_SET_IN_TYPES_H()
+CHECK_FD_SET_IN_TYPES_D()
-CHECK_INCLUDE_FILE_USABILITY_H(sys/time.h HAVE_SYS_TIME_H)
+CHECK_INCLUDE_FILE_USABILITY_D(sys/time.h HAVE_SYS_TIME_H)
CHECK_TIME_AND_SYS_TIME()
-CHECK_FUNCTION_EXISTS_H(gmtime_r HAVE_GMTIME_R)
-CHECK_FUNCTION_EXISTS_H(localtime_r HAVE_LOCALTIME_R)
-CHECK_FUNCTION_EXISTS_H(mktime HAVE_MKTIME)
+CHECK_FUNCTION_EXISTS_D(gmtime_r HAVE_GMTIME_R)
+CHECK_FUNCTION_EXISTS_D(localtime_r HAVE_LOCALTIME_R)
+CHECK_FUNCTION_EXISTS_D(mktime HAVE_MKTIME)
-CHECK_STRUCT_HAS_MEMBER_H("struct tm" tm_tzadj time.h HAVE_TM_TZADJ)
-CHECK_STRUCT_HAS_MEMBER_H("struct tm" tm_gmtoff time.h HAVE_TM_GMTOFF)
+CHECK_STRUCT_HAS_MEMBER_D("struct tm" tm_tzadj time.h HAVE_TM_TZADJ)
+CHECK_STRUCT_HAS_MEMBER_D("struct tm" tm_gmtoff time.h HAVE_TM_GMTOFF)
-CHECK_INCLUDE_FILE_H(copyfile.h HAVE_COPYFILE_H)
-CHECK_FUNCTION_EXISTS_H(copyfile HAVE_COPYFILE)
+CHECK_INCLUDE_FILE_D(copyfile.h HAVE_COPYFILE_H)
+CHECK_FUNCTION_EXISTS_D(copyfile HAVE_COPYFILE)
-CHECK_INCLUDE_FILE_H(sys/ioctl.h HAVE_SYS_IOCTL_H)
-CHECK_INCLUDE_FILE_H(sys/filio.h HAVE_SYS_FILIO_H)
+CHECK_INCLUDE_FILE_D(sys/ioctl.h HAVE_SYS_IOCTL_H)
+CHECK_INCLUDE_FILE_D(sys/filio.h HAVE_SYS_FILIO_H)
-#CHECK_FUNCTION_EXISTS_H( HAVE_GETPWUID_R_5)
-CHECK_FUNCTION_EXISTS_H(getpwuid HAVE_GETPWUID_R)
-#CHECK_FUNCTION_EXISTS_H( HAVE_GETPWNAM_R_5)
-CHECK_FUNCTION_EXISTS_H(getpwnam HAVE_GETPWNAM_R)
-#CHECK_FUNCTION_EXISTS_H( HAVE_GETGRGID_R_5)
-CHECK_FUNCTION_EXISTS_H(getgrgid HAVE_GETGRGID_R)
-#CHECK_FUNCTION_EXISTS_H( HAVE_GETGRNAM_R_5)
-CHECK_FUNCTION_EXISTS_H(getgrnam HAVE_GETGRNAM_R)
-#CHECK_FUNCTION_EXISTS_H( HAVE_MTSAFE_GETHOSTBYNAME)
-#CHECK_FUNCTION_EXISTS_H( HAVE_MTSAFE_GETHOSTBYADDR)
-#CHECK_FUNCTION_EXISTS_H( HAVE_STRUCT_STAT_ST_BLOCKS)
-#CHECK_FUNCTION_EXISTS_H( HAVE_STRUCT_STAT_ST_BLKSIZE)
-CHECK_TYPE_SIZE_H(blkcnt_t HAVE_BLKCNT_T)
-CHECK_TYPE_SIZE_H(intptr_t HAVE_INTPTR_T)
-CHECK_TYPE_SIZE_H(uintptr_t HAVE_UINTPTR_T)
-#CHECK_TYPE_SIZE_H( HAVE_SIGNED_CHAR)
-#CHECK_TYPE_SIZE_H( HAVE_LANGINFO)
-#CHECK_TYPE_SIZE_H( HAVE_CHFLAGS)
-CHECK_FUNCTION_EXISTS_H(getattrlist HAVE_GETATTRLIST)
-CHECK_INCLUDE_FILE_H(libkern/OSAtomic.h HAVE_LIBKERN_OSATOMIC_H)
-CHECK_FUNCTION_EXISTS_H(OSSpinLockLock HAVE_OSSPINLOCKLOCK)
-CHECK_FUNCTION_EXISTS_H(pthread_atfork HAVE_PTHREAD_ATFORK)
-#CHECK_INCLUDE_FILE_H( USE_VFORK)
-#CHECK_INCLUDE_FILE_H( TCL_WIDE_INT_TYPE long\ long\n")
-#CHECK_INCLUDE_FILE_H( TCL_CFG_DEBUG)
-#CHECK_INCLUDE_FILE_H( USE_TERMIOS)
-#CHECK_INCLUDE_FILE_H( TIME_WITH_SYS_TIME)
-#CHECK_INCLUDE_FILE_H( HAVE_TM_GMTOFF)
-#CHECK_INCLUDE_FILE_H( HAVE_TIMEZONE_VAR)
-#CHECK_INCLUDE_FILE_H( HAVE_STRUCT_STAT64)
-FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine M_PREC 4\n")
-FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine TCL_DEFAULT_ENCODING \"utf-8\"\n")
-FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine TCL_LOAD_FROM_MEMORY 1\n")
-FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine TCL_WIDE_CLICKS 1\n")
-FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_AVAILABILITYMACROS_H 1\n")
-FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_WEAK_IMPORT 1\n")
-FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine _DARWIN_C_SOURCE 1\n")
-FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_FTS 1\n")
-FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine TCL_UNLOAD_DLLS 1\n")
-FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine USE_DTRACE 1\n")
+CHECK_FUNCTION_EXISTS_D(getpwuid HAVE_GETPWUID_R)
+CHECK_FUNCTION_EXISTS_D(getpwnam HAVE_GETPWNAM_R)
+CHECK_FUNCTION_EXISTS_D(getgrgid HAVE_GETGRGID_R)
+CHECK_FUNCTION_EXISTS_D(getgrnam HAVE_GETGRNAM_R)
+CHECK_TYPE_SIZE_D(blkcnt_t HAVE_BLKCNT_T)
+CHECK_TYPE_SIZE_D(intptr_t HAVE_INTPTR_T)
+CHECK_TYPE_SIZE_D(uintptr_t HAVE_UINTPTR_T)
+CHECK_FUNCTION_EXISTS_D(getattrlist HAVE_GETATTRLIST)
+CHECK_INCLUDE_FILE_D(libkern/OSAtomic.h HAVE_LIBKERN_OSATOMIC_H)
+CHECK_FUNCTION_EXISTS_D(OSSpinLockLock HAVE_OSSPINLOCKLOCK)
+CHECK_FUNCTION_EXISTS_D(pthread_atfork HAVE_PTHREAD_ATFORK)
+#CHECK_FUNCTION_EXISTS_D( HAVE_MTSAFE_GETHOSTBYNAME)
+#CHECK_FUNCTION_EXISTS_D( HAVE_MTSAFE_GETHOSTBYADDR)
+#CHECK_FUNCTION_EXISTS_D( HAVE_STRUCT_STAT_ST_BLOCKS)
+#CHECK_FUNCTION_EXISTS_D( HAVE_STRUCT_STAT_ST_BLKSIZE)
+#CHECK_FUNCTION_EXISTS_D( HAVE_GETPWUID_R_5)
+#CHECK_FUNCTION_EXISTS_D( HAVE_GETPWNAM_R_5)
+#CHECK_FUNCTION_EXISTS_D( HAVE_GETGRGID_R_5)
+#CHECK_FUNCTION_EXISTS_D( HAVE_GETGRNAM_R_5)
+#CHECK_INCLUDE_FILE_D( USE_VFORK)
+#CHECK_INCLUDE_FILE_D( TCL_WIDE_INT_TYPE long\ long)
+#CHECK_INCLUDE_FILE_D( TCL_CFG_DEBUG)
+#CHECK_INCLUDE_FILE_D( USE_TERMIOS)
+#CHECK_INCLUDE_FILE_D( TIME_WITH_SYS_TIME)
+#CHECK_INCLUDE_FILE_D( HAVE_TM_GMTOFF)
+#CHECK_INCLUDE_FILE_D( HAVE_TIMEZONE_VAR)
+#CHECK_INCLUDE_FILE_D( HAVE_STRUCT_STAT64)
+#FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine M_PREC 4)
+#FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine TCL_DEFAULT_ENCODING \"utf-8\"")
+#FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine TCL_LOAD_FROM_MEMORY 1)
+#FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine TCL_WIDE_CLICKS 1)
+#FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_AVAILABILITYMACROS_H 1)
+#FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_WEAK_IMPORT 1)
+#FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine _DARWIN_C_SOURCE 1)
+#FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_FTS 1)
+#FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine TCL_UNLOAD_DLLS 1)
+#FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine USE_DTRACE 1)
FIND_PACKAGE(Threads)
# Now that all the tests are done, configure the tclConfig.h file:
-FILE(APPEND ${CONFIG_H_FILE} "#endif /*_TCLCONFIG*/\n")
-configure_file(${CONFIG_H_FILE} ${TCL_BINARY_DIR}/include/tclConfig.h)
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/unix/tclConfig.h.in
${TCL_BINARY_DIR}/include/tclConfig.h)
SET(TCL_GENERIC_SRCS
generic/regcomp.c
@@ -529,6 +521,9 @@
SET(TCLSH_SRCS unix/tclAppInit.c)
ENDIF(WIN32)
+MESSAGE("TCL_CFLAGS: ${TCL_CFLAGS}")
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TCL_CFLAGS}")
+
add_library(tcl ${TCL_SRCS})
target_link_libraries(tcl ${COREFOUNDATION_FRAMEWORK} ${M_LIBRARY}
${DL_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
install(TARGETS tcl DESTINATION lib)
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