Revision: 45930
          http://brlcad.svn.sourceforge.net/brlcad/?rev=45930&view=rev
Author:   starseeker
Date:     2011-08-11 21:17:58 +0000 (Thu, 11 Aug 2011)

Log Message:
-----------
Make a stab at itk, probably the trickiest of these extensions.  Need to do 
some more logic consolidation into tcl.cmake and the src/other CMakeLists.txt 
settings probably need some more study (there are a lot of possible cases) but 
getting there.  Need to study STUBS usage in the standard Tcl/Tk build more and 
see if I need some conditionalization logic for those flags...

Modified Paths:
--------------
    brlcad/trunk/src/other/CMakeLists.txt
    brlcad/trunk/src/other/incrTcl/itcl/CMakeLists.txt
    brlcad/trunk/src/other/incrTcl/itk/CMake/CheckSystemFunctionality.cmake
    brlcad/trunk/src/other/incrTcl/itk/CMake/FindX11.cmake
    brlcad/trunk/src/other/incrTcl/itk/CMake/tcl.cmake
    brlcad/trunk/src/other/incrTcl/itk/CMakeLists.txt

Added Paths:
-----------
    brlcad/trunk/src/other/incrTcl/itk/CMake/ac_std_funcs.cmake

Modified: brlcad/trunk/src/other/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/other/CMakeLists.txt       2011-08-11 20:57:14 UTC (rev 
45929)
+++ brlcad/trunk/src/other/CMakeLists.txt       2011-08-11 21:17:58 UTC (rev 
45930)
@@ -336,12 +336,16 @@
 
 # Handle Tcl/Tk packages
 IF(BRLCAD_BUILD_LOCAL_ITCL)
+       SET(TCL_SRC_PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/tcl)
        IF(NOT BRLCAD_BUILD_LOCAL_TCL)
                IF(WIN32)
                        SET(TCL_INCLUDE_DIRS ${TCL_INCLUDE_DIRS} 
${CMAKE_CURRENT_SOURCE_DIR}/tcl/generic ${CMAKE_CURRENT_SOURCE_DIR}/tcl/win 
${CMAKE_CURRENT_SOURCE_DIR}/tcl/libtommath)
                ELSE(WIN32)
                        SET(TCL_INCLUDE_DIRS ${TCL_INCLUDE_DIRS} 
${CMAKE_CURRENT_SOURCE_DIR}/tcl/generic ${CMAKE_CURRENT_SOURCE_DIR}/tcl/unix 
${CMAKE_CURRENT_SOURCE_DIR}/tcl/libtommath)
                ENDIF(WIN32)
+               get_filename_component(TCL_BIN_PREFIX ${TCL_LIBRARY} PATH)
+       ELSE(NOT BRLCAD_BUILD_LOCAL_TCL)
+               SET(TCL_BIN_PREFIX ${CMAKE_BINARY_DIR}/${LIB_DIR})
        ENDIF(NOT BRLCAD_BUILD_LOCAL_TCL)
        ADD_SUBDIRECTORY(incrTcl/itcl)
        ADD_DEPENDENCIES(itcl tcl)
@@ -367,13 +371,36 @@
 
 
 IF(BRLCAD_BUILD_LOCAL_ITK)
+       SET(TCL_SRC_PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/tcl)
+       SET(TK_SRC_PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/tk)
+       SET(ITCL_SRC_PREFIX ${CMAKE_CURRENT_SOURCE_DIR}/incrTcl/itcl)
+       IF(NOT BRLCAD_BUILD_LOCAL_TCL)
+               IF(WIN32)
+                       SET(TCL_INCLUDE_DIRS ${TCL_INCLUDE_DIRS} 
${CMAKE_CURRENT_SOURCE_DIR}/tcl/generic ${CMAKE_CURRENT_SOURCE_DIR}/tcl/win 
${CMAKE_CURRENT_SOURCE_DIR}/tcl/libtommath)
+               ELSE(WIN32)
+                       SET(TCL_INCLUDE_DIRS ${TCL_INCLUDE_DIRS} 
${CMAKE_CURRENT_SOURCE_DIR}/tcl/generic ${CMAKE_CURRENT_SOURCE_DIR}/tcl/unix 
${CMAKE_CURRENT_SOURCE_DIR}/tcl/libtommath)
+               ENDIF(WIN32)
+               get_filename_component(TCL_BIN_PREFIX ${TCL_LIBRARY} PATH)
+       ELSE(NOT BRLCAD_BUILD_LOCAL_TCL)
+               SET(TCL_BIN_PREFIX ${CMAKE_BINARY_DIR}/${LIB_DIR})
+       ENDIF(NOT BRLCAD_BUILD_LOCAL_TCL)
+
        IF(NOT BRLCAD_BUILD_LOCAL_TK)
                IF(WIN32)
                        SET(TK_INCLUDE_PATH ${TK_INCLUDE_PATH} 
${CMAKE_CURRENT_SOURCE_DIR}/tk/generic ${CMAKE_CURRENT_SOURCE_DIR}/tk/bitmaps)
                ELSE(WIN32)
                        SET(TK_INCLUDE_PATH ${TK_INCLUDE_PATH} 
${CMAKE_CURRENT_SOURCE_DIR}/tk/generic ${CMAKE_CURRENT_SOURCE_DIR}/tk/win 
${CMAKE_CURRENT_SOURCE_DIR}/tk/bitmaps)
                ENDIF(WIN32)
+               get_filename_component(TK_BIN_PREFIX ${TK_LIBRARY} PATH)
+       ELSE(NOT BRLCAD_BUILD_LOCAL_TK)
+               SET(TK_BIN_PREFIX ${CMAKE_BINARY_DIR}/${LIB_DIR})
        ENDIF(NOT BRLCAD_BUILD_LOCAL_TK)
+       IF(NOT BRLCAD_BUILD_LOCAL_ITCL)
+               SET(ITCL_INCLUDE_DIRS 
${CMAKE_CURRENT_SOURCE_DIR}/incrTcl/itcl/generic)
+               get_filename_component(ITCL_BIN_PREFIX ${ITCL_LIBRARY} PATH)
+       ELSE(NOT BRLCAD_BUILD_LOCAL_ITCL)
+               SET(ITCL_BIN_PREFIX ${CMAKE_BINARY_DIR}/${LIB_DIR})
+       ENDIF(NOT BRLCAD_BUILD_LOCAL_ITCL)
        ADD_SUBDIRECTORY(incrTcl/itk)
        ADD_DEPENDENCIES(itk itcl tcl tk)
        SET(ITK_LIBRARY itk CACHE STRING "ITK_LIBRARY" FORCE)

Modified: brlcad/trunk/src/other/incrTcl/itcl/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/other/incrTcl/itcl/CMakeLists.txt  2011-08-11 20:57:14 UTC 
(rev 45929)
+++ brlcad/trunk/src/other/incrTcl/itcl/CMakeLists.txt  2011-08-11 21:17:58 UTC 
(rev 45930)
@@ -513,11 +513,10 @@
 
 IF(WIN32)
    add_library(itcl ${ITCL_GENERIC_SRCS} ${ITCL_WIN_SRCS})
-   target_link_libraries(itcl ${M_LIBRARY} ${TCL_STUB_LIBRARIES} )
 ELSE(WIN32)
    add_library(itcl ${ITCL_GENERIC_SRCS})
-   target_link_libraries(itcl ${M_LIBRARY} ${TCL_STUB_LIBRARIES} )
 ENDIF(WIN32)
+target_link_libraries(itcl ${M_LIBRARY} ${TCL_STUB_LIBRARIES} )
 SET_TARGET_PROPERTIES(itcl PROPERTIES PREFIX "lib")
 SET_TARGET_PROPERTIES(itcl PROPERTIES VERSION ${ITCL_VERSION} SOVERSION 
${ITCL_MAJOR_VERSION})
 SET_PROPERTY(TARGET itcl APPEND PROPERTY COMPILE_DEFINITIONS USE_TCL_STUBS)

Modified: 
brlcad/trunk/src/other/incrTcl/itk/CMake/CheckSystemFunctionality.cmake
===================================================================
--- brlcad/trunk/src/other/incrTcl/itk/CMake/CheckSystemFunctionality.cmake     
2011-08-11 20:57:14 UTC (rev 45929)
+++ brlcad/trunk/src/other/incrTcl/itk/CMake/CheckSystemFunctionality.cmake     
2011-08-11 21:17:58 UTC (rev 45930)
@@ -56,9 +56,7 @@
                IF(CONFIG_H_FILE)
                        FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine ${var} 1\n")
                ENDIF(CONFIG_H_FILE)
-               IF(CONFIG_CFLAGS)
-                       SET(${CONFIG_CFLAGS} "${${CONFIG_CFLAGS}} -D${var}=1" 
CACHE STRING "${CONFIG_CFLAGS}" FORCE)
-               ENDIF(CONFIG_CFLAGS)
+               add_definitions(-D${var}=1)
        ENDIF(${var})
 ENDMACRO(CONFIG_CHECK_FUNCTION_EXISTS)
 
@@ -68,9 +66,7 @@
                IF(CONFIG_H_FILE)
                        FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine ${var} 1\n")
                ENDIF(CONFIG_H_FILE)
-               IF(CONFIG_CFLAGS)
-                       SET(${CONFIG_CFLAGS} "${${CONFIG_CFLAGS}} -D${var}=1" 
CACHE STRING "${CONFIG_CFLAGS}" FORCE)
-               ENDIF(CONFIG_CFLAGS)
+               add_definitions(-D${var}=1)
        ENDIF(${var})
 ENDMACRO(CONFIG_CHECK_INCLUDE_FILE)
 
@@ -87,9 +83,7 @@
                IF(CONFIG_H_FILE)
                        FILE(APPEND ${CONFIG_H_FILE} "#define NO_${var} 1\n")
                ENDIF(CONFIG_H_FILE)
-               IF(CONFIG_CFLAGS)
-                       SET(${CONFIG_CFLAGS} "${${CONFIG_CFLAGS}} 
-DNO_${var}=1" CACHE STRING "${CONFIG_CFLAGS}" FORCE)
-               ENDIF(CONFIG_CFLAGS)
+               add_definitions(-DNO_${var}=1)
        ENDIF(NOT HAVE_${var} OR NOT ${var}_USABLE)
 ENDMACRO(CONFIG_CHECK_INCLUDE_FILE_USABILITY filename var)
 
@@ -99,9 +93,7 @@
                IF(CONFIG_H_FILE)
                        FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine ${var} 1\n")
                ENDIF(CONFIG_H_FILE)
-               IF(CONFIG_CFLAGS)
-                       SET(${CONFIG_CFLAGS} "${${CONFIG_CFLAGS}} -D${var}=1" 
CACHE STRING "${CONFIG_CFLAGS}" FORCE)
-               ENDIF(CONFIG_CFLAGS)
+               add_definitions(-D${var}=1)
        ENDIF(${var})
 ENDMACRO(CONFIG_CHECK_INCLUDE_FILE_CXX)
 
@@ -117,10 +109,8 @@
                        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)
-               IF(CONFIG_CFLAGS)
-                       SET(${CONFIG_CFLAGS} "${${CONFIG_CFLAGS}} 
-DHAVE_${var}_T=1" CACHE STRING "${CONFIG_CFLAGS}" FORCE)
-                       SET(${CONFIG_CFLAGS} "${${CONFIG_CFLAGS}} 
-DSIZEOF${var}=${HAVE_${var}_T}" CACHE STRING "${CONFIG_CFLAGS}" FORCE)
-               ENDIF(CONFIG_CFLAGS)
+               add_definitions(-DHAVE_${var}_T=1)
+               add_definitions(-DSIZEOF${var}=${HAVE_${var}_T})                
        ENDIF(HAVE_${var}_T)
 ENDMACRO(CONFIG_CHECK_TYPE_SIZE)
 
@@ -130,9 +120,7 @@
                IF(CONFIG_H_FILE)
                        FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_${var} 
1\n")
                ENDIF(CONFIG_H_FILE)
-               IF(CONFIG_CFLAGS)
-                       SET(${CONFIG_CFLAGS} "${${CONFIG_CFLAGS}} 
-DHAVE_${var}=1" CACHE STRING "${CONFIG_CFLAGS}" FORCE)
-               ENDIF(CONFIG_CFLAGS)
+               add_definitions(-DHAVE_${var}=1)
        ENDIF(HAVE_${var})
 ENDMACRO(CONFIG_CHECK_STRUCT_HAS_MEMBER)
 

Modified: brlcad/trunk/src/other/incrTcl/itk/CMake/FindX11.cmake
===================================================================
--- brlcad/trunk/src/other/incrTcl/itk/CMake/FindX11.cmake      2011-08-11 
20:57:14 UTC (rev 45929)
+++ brlcad/trunk/src/other/incrTcl/itk/CMake/FindX11.cmake      2011-08-11 
21:17:58 UTC (rev 45930)
@@ -57,87 +57,93 @@
   SET(CMAKE_FIND_FRAMEWORK NEVER)
   SET(X11_INC_SEARCH_PATH
     /usr/pkg/xorg/include
+    /usr/X11/include
     /usr/X11R6/include 
     /usr/X11R7/include 
     /usr/include/X11
-        /usr/local/include
-        /usr/local/include/X11
+    /usr/local/include
+    /usr/local/include/X11
     /usr/openwin/include 
     /usr/openwin/share/include 
     /opt/graphics/OpenGL/include
+        /usr/include
   )
 
   SET(X11_LIB_SEARCH_PATH
+    /usr/X11/lib
+    /usr/X11R6/lib
+    /usr/X11R7/lib
+    /usr/lib/X11
+    /usr/lib64/X11
+    /usr/lib32/X11
     /usr/lib64
     /usr/lib32
     /usr/lib
     /usr/pkg/xorg/lib
-    /usr/X11R6/lib
-    /usr/X11R7/lib
     /usr/openwin/lib 
   )
 
-  FIND_PATH(X11_X11_INCLUDE_PATH X11/X.h                             
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xlib_INCLUDE_PATH X11/Xlib.h                         
${X11_INC_SEARCH_PATH})
+  FIND_PATH(X11_X11_INCLUDE_PATH X11/X.h                            
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xlib_INCLUDE_PATH X11/Xlib.h                        
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
 
   # Look for includes; keep the list sorted by name of the cmake *_INCLUDE_PATH
   # variable (which doesn't need to match the include file name).
   
   # Solaris lacks XKBrules.h, so we should skip kxkbd there.
-  FIND_PATH(X11_ICE_INCLUDE_PATH X11/ICE/ICE.h                       
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xaccessrules_INCLUDE_PATH X11/extensions/XKBrules.h  
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xaccessstr_INCLUDE_PATH X11/extensions/XKBstr.h      
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xau_INCLUDE_PATH X11/Xauth.h                         
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xcomposite_INCLUDE_PATH X11/extensions/Xcomposite.h  
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xcursor_INCLUDE_PATH X11/Xcursor/Xcursor.h           
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xdamage_INCLUDE_PATH X11/extensions/Xdamage.h        
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xdmcp_INCLUDE_PATH X11/Xdmcp.h                       
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_dpms_INCLUDE_PATH X11/extensions/dpms.h              
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_xf86misc_INCLUDE_PATH X11/extensions/xf86misc.h      
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_xf86vmode_INCLUDE_PATH X11/extensions/xf86vmode.h    
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xfixes_INCLUDE_PATH X11/extensions/Xfixes.h          
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xft_INCLUDE_PATH X11/Xft/Xft.h                       
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xi_INCLUDE_PATH X11/extensions/XInput.h              
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xinerama_INCLUDE_PATH X11/extensions/Xinerama.h      
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xinput_INCLUDE_PATH X11/extensions/XInput.h          
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xkb_INCLUDE_PATH X11/extensions/XKB.h                
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xkblib_INCLUDE_PATH X11/XKBlib.h                     
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xpm_INCLUDE_PATH X11/xpm.h                           
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_XTest_INCLUDE_PATH X11/extensions/XTest.h            
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_XShm_INCLUDE_PATH X11/extensions/XShm.h              
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xrandr_INCLUDE_PATH X11/extensions/Xrandr.h          
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xrender_INCLUDE_PATH X11/extensions/Xrender.h        
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xscreensaver_INCLUDE_PATH X11/extensions/scrnsaver.h 
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xshape_INCLUDE_PATH X11/extensions/shape.h           
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xutil_INCLUDE_PATH X11/Xutil.h                       
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xt_INCLUDE_PATH X11/Intrinsic.h                      
${X11_INC_SEARCH_PATH})
-  FIND_PATH(X11_Xv_INCLUDE_PATH X11/extensions/Xvlib.h               
${X11_INC_SEARCH_PATH})
+  FIND_PATH(X11_ICE_INCLUDE_PATH X11/ICE/ICE.h                       
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xaccessrules_INCLUDE_PATH X11/extensions/XKBrules.h  
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xaccessstr_INCLUDE_PATH X11/extensions/XKBstr.h      
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xau_INCLUDE_PATH X11/Xauth.h                         
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xcomposite_INCLUDE_PATH X11/extensions/Xcomposite.h  
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xcursor_INCLUDE_PATH X11/Xcursor/Xcursor.h           
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xdamage_INCLUDE_PATH X11/extensions/Xdamage.h        
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xdmcp_INCLUDE_PATH X11/Xdmcp.h                       
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_dpms_INCLUDE_PATH X11/extensions/dpms.h              
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_xf86misc_INCLUDE_PATH X11/extensions/xf86misc.h      
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_xf86vmode_INCLUDE_PATH X11/extensions/xf86vmode.h    
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xfixes_INCLUDE_PATH X11/extensions/Xfixes.h          
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xft_INCLUDE_PATH X11/Xft/Xft.h                       
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xi_INCLUDE_PATH X11/extensions/XInput.h              
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xinerama_INCLUDE_PATH X11/extensions/Xinerama.h      
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xinput_INCLUDE_PATH X11/extensions/XInput.h          
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xkb_INCLUDE_PATH X11/extensions/XKB.h                
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xkblib_INCLUDE_PATH X11/XKBlib.h                     
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xpm_INCLUDE_PATH X11/xpm.h                           
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_XTest_INCLUDE_PATH X11/extensions/XTest.h            
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_XShm_INCLUDE_PATH X11/extensions/XShm.h              
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xrandr_INCLUDE_PATH X11/extensions/Xrandr.h          
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xrender_INCLUDE_PATH X11/extensions/Xrender.h        
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xscreensaver_INCLUDE_PATH X11/extensions/scrnsaver.h 
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xshape_INCLUDE_PATH X11/extensions/shape.h           
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xutil_INCLUDE_PATH X11/Xutil.h                       
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xt_INCLUDE_PATH X11/Intrinsic.h                      
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
+  FIND_PATH(X11_Xv_INCLUDE_PATH X11/extensions/Xvlib.h               
${X11_INC_SEARCH_PATH} NO_DEFAULT_PATH)
 
 
-  FIND_LIBRARY(X11_X11_LIB X11               ${X11_LIB_SEARCH_PATH})
+  FIND_LIBRARY(X11_X11_LIB X11               ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
 
   # Find additional X libraries. Keep list sorted by library name.
-  FIND_LIBRARY(X11_ICE_LIB ICE               ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_SM_LIB SM                 ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xau_LIB Xau               ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xcomposite_LIB Xcomposite ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xcursor_LIB Xcursor       ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xdamage_LIB Xdamage       ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xdmcp_LIB Xdmcp           ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xext_LIB Xext             ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xfixes_LIB Xfixes         ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xft_LIB Xft               ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xi_LIB Xi                 ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xinerama_LIB Xinerama     ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xinput_LIB Xi             ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xpm_LIB Xpm               ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xrandr_LIB Xrandr         ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xrender_LIB Xrender       ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xscreensaver_LIB Xss      ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xt_LIB Xt                 ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_XTest_LIB Xtst            ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xv_LIB Xv                 ${X11_LIB_SEARCH_PATH})
-  FIND_LIBRARY(X11_Xxf86misc_LIB Xxf86misc   ${X11_LIB_SEARCH_PATH})
+  FIND_LIBRARY(X11_ICE_LIB ICE               ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_SM_LIB SM                 ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xau_LIB Xau               ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xcomposite_LIB Xcomposite ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xcursor_LIB Xcursor       ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xdamage_LIB Xdamage       ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xdmcp_LIB Xdmcp           ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xext_LIB Xext             ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xfixes_LIB Xfixes         ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xft_LIB Xft               ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xi_LIB Xi                 ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xinerama_LIB Xinerama     ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xinput_LIB Xi             ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xpm_LIB Xpm               ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xrandr_LIB Xrandr         ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xrender_LIB Xrender       ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xscreensaver_LIB Xss      ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xt_LIB Xt                 ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_XTest_LIB Xtst            ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xv_LIB Xv                 ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
+  FIND_LIBRARY(X11_Xxf86misc_LIB Xxf86misc   ${X11_LIB_SEARCH_PATH} 
NO_DEFAULT_PATH)
 
   SET(X11_LIBRARY_DIR "")
   IF(X11_X11_LIB)

Added: brlcad/trunk/src/other/incrTcl/itk/CMake/ac_std_funcs.cmake
===================================================================
--- brlcad/trunk/src/other/incrTcl/itk/CMake/ac_std_funcs.cmake                 
        (rev 0)
+++ brlcad/trunk/src/other/incrTcl/itk/CMake/ac_std_funcs.cmake 2011-08-11 
21:17:58 UTC (rev 45930)
@@ -0,0 +1,97 @@
+# Standard tests and wrappers for CMake functions
+
+INCLUDE(CheckCCompilerFlag)
+INCLUDE(CheckFunctionExists)
+INCLUDE(CheckIncludeFile)
+INCLUDE(CheckIncludeFiles)
+INCLUDE(CheckIncludeFileCXX)
+INCLUDE(CheckTypeSize)
+INCLUDE(CheckLibraryExists)
+INCLUDE(CheckStructHasMember)
+INCLUDE(CheckCSourceCompiles)
+INCLUDE(ResolveCompilerPaths)
+
+SET(CMAKE_TEST_SRCS_DIR "NOTFOUND")
+FOREACH($candidate_dir ${CMAKE_MODULE_PATH})
+       IF(NOT CMAKE_TEST_SRCS_DIR)
+               IF(EXISTS "${candidate_dir}/test_sources" AND IS_DIRECTORY 
"${candidate_dir}/test_sources")
+                       SET(CMAKE_TEST_SRCS_DIR ${candidate_dir}/test_sources)
+               ENDIF(EXISTS "${candidate_dir}/test_sources" AND IS_DIRECTORY 
"${candidate_dir}/test_sources")
+       ENDIF(NOT CMAKE_TEST_SRCS_DIR)
+ENDFOREACH($candidate_dir ${CMAKE_MODULE_PATH})
+
+INCLUDE(CheckPrototypeExists)
+INCLUDE(CheckCSourceRuns)
+INCLUDE(CheckCFileRuns)
+
+MACRO(CHECK_BASENAME_D)
+       SET(BASENAME_SRC "
+       #include <libgen.h>
+       int main(int argc, char *argv[]) {
+       (void)basename(argv[0]);
+       return 0;
+       }")
+       CHECK_C_SOURCE_RUNS("${BASENAME_SRC}" HAVE_BASENAME)
+       IF(HAVE_BASENAME)
+         SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS} 
-DHAVE_BASENAME=1" CACHE STRING "TCL CFLAGS" FORCE)
+       ENDIF(HAVE_BASENAME)
+ENDMACRO(CHECK_BASENAME_D)
+
+MACRO(CHECK_DIRNAME_D)
+       SET(DIRNAME_SRC "
+       #include <libgen.h>
+       int main(int argc, char *argv[]) {
+       (void)dirname(argv[0]);
+       return 0;
+       }")
+       CHECK_C_SOURCE_RUNS("${DIRNAME_SRC}" HAVE_DIRNAME)
+       IF(HAVE_DIRNAME)
+               SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS} 
-DHAVE_DIRNAME=1" CACHE STRING "TCL CFLAGS" FORCE)
+       ENDIF(HAVE_DIRNAME)
+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_D)
+  CHECK_INCLUDE_FILE(stdlib.h HAVE_STDLIB_H)
+  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)
+  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)
+  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)
+        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_D)
+
+# Based on AC_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)
+        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_D)
+
+# Based on AC_FUNC_ALLOCA
+MACRO(CMAKE_ALLOCA_D)
+       CHECK_C_FILE_RUNS(${CMAKE_TEST_SRCS_DIR}/alloca_header_test.c 
WORKING_ALLOCA_H)
+       IF(WORKING_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)
+               SET(${CFLAGS_NAME}_CFLAGS "${${CFLAGS_NAME}_CFLAGS} 
-DHAVE_ALLOCA=1" CACHE STRING "TCL CFLAGS" FORCE)
+       ENDIF(WORKING_ALLOCA)
+ENDMACRO(CMAKE_ALLOCA_D)
+


Property changes on: brlcad/trunk/src/other/incrTcl/itk/CMake/ac_std_funcs.cmake
___________________________________________________________________
Added: svn:mime-type
   + text/plain
Added: svn:eol-style
   + native

Modified: brlcad/trunk/src/other/incrTcl/itk/CMake/tcl.cmake
===================================================================
--- brlcad/trunk/src/other/incrTcl/itk/CMake/tcl.cmake  2011-08-11 20:57:14 UTC 
(rev 45929)
+++ brlcad/trunk/src/other/incrTcl/itk/CMake/tcl.cmake  2011-08-11 21:17:58 UTC 
(rev 45930)
@@ -15,8 +15,10 @@
 INCLUDE(CheckCSourceRuns)
 INCLUDE(CheckCFileRuns)
 
+INCLUDE(ac_std_funcs)
+
 MACRO(ADD_TCL_CFLAG TCL_CFLAG)
-       SET(TCL_CFLAGS "${TCL_CFLAGS} -D${TCL_CFLAG}=1" CACHE STRING "TCL 
CFLAGS" FORCE)
+       add_definitions(-D${TCL_CFLAG}=1)
 ENDMACRO(ADD_TCL_CFLAG)
 
 # Note - for these path and load functions, should move the FindTCL.cmake
@@ -76,7 +78,7 @@
 # SC_ENABLE_THREADS
 #------------------------------------------------------------------------
 MACRO(SC_ENABLE_THREADS)
-       OPTION(TCL_THREADS "Enable Tcl Thread support" ON)
+       OPTION(TCL_THREADS "Enable Tcl Thread support" OFF)
        IF(TCL_THREADS)
                ADD_TCL_CFLAG(TCL_THREADS)
                ADD_TCL_CFLAG(USE_THREAD_ALLOC)
@@ -135,6 +137,7 @@
                ELSE(HAVE_LANGINFO)
                        SET(ENABLE_LANGINFO OFF CACHE STRING "Langinfo off" 
FORCE)
                ENDIF(HAVE_LANGINFO)
+               MARK_AS_ADVANCED(ENABLE_LANGINFO)
        ENDIF(ENABLE_LANGINFO)
 ENDMACRO(SC_ENABLE_LANGINFO)
 
@@ -278,7 +281,7 @@
 MACRO(SC_MISSING_POSIX_HEADERS)
        CONFIG_CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H)
        IF(NOT HAVE_DIRENT_H)
-               SET(TCL_CFLAGS "${TCL_CFLAGS} -DNO_DIRENT_H=1")
+               add_definitions(-DNO_DIRENT_H=1)
        ENDIF(NOT HAVE_DIRENT_H)
        CONFIG_CHECK_INCLUDE_FILE_USABILITY(float.h FLOAT_H)
        CONFIG_CHECK_INCLUDE_FILE_USABILITY(values.h VALUES_H)
@@ -286,7 +289,7 @@
        CONFIG_CHECK_INCLUDE_FILE(stdlib.h HAVE_STDLIB_H)
        CONFIG_CHECK_INCLUDE_FILE(string.h HAVE_STRING_H)
        IF(NOT HAVE_STRING_H)
-               SET(TCL_CFLAGS "${TCL_CFLAGS} -DNO_STRING_H=1")
+               add_definitions(-DNO_STRING_H=1)
        ENDIF(NOT HAVE_STRING_H)
        CONFIG_CHECK_INCLUDE_FILE_USABILITY(sys/wait.h SYS_WAIT_H)
        CONFIG_CHECK_INCLUDE_FILE_USABILITY(dlfcn.h DLFCN_H)
@@ -402,6 +405,7 @@
                        MESSAGE("-- Looking for IEEE library - not found")
                ENDIF(IEEE_LIBRARY)
                SET(IEEE_QUIET 1 CACHE STRING "IEEE quiet")
+               MARK_AS_ADVANCED(IEEE_QUIET)
        ENDIF(NOT IEEE_LIBRARY AND NOT IEEE_QUIET)
        IF(NOT INET_LIBRARY AND NOT INET_QUIET)
                MESSAGE("-- Looking for INET library")
@@ -412,23 +416,36 @@
                        MESSAGE("-- Looking for INET library - not found")
                ENDIF(INET_LIBRARY)
                SET(INET_QUIET 1 CACHE STRING "INET quiet")
+               MARK_AS_ADVANCED(INET_QUIET)
        ENDIF(NOT INET_LIBRARY AND NOT INET_QUIET)
+       IF(TCL_LINK_LIBS)
+               SET(TCL_LINK_LIBS "${TCL_LINK_LIBS} ${IEEE_LIBRARY} 
${M_LIBRARY} ${INET_LIBRARY}")
+       ELSEIF(TCL_LINK_LIBS)
+               SET(TCL_LINK_LIBS "${IEEE_LIBRARY} ${M_LIBRARY} 
${INET_LIBRARY}")
+       ENDIF(TCL_LINK_LIBS)
+       MARK_AS_ADVANCED(TCL_LINK_LIBS)
 
-       SET(TCL_LINK_LIBS ${TCL_LINK_LIBS} ${IEEE_LIBRARY} ${M_LIBRARY} 
${INET_LIBRARY} CACHE STRING "TCL CFLAGS" FORCE)
-
        CONFIG_CHECK_INCLUDE_FILE_USABILITY(net/errno.h NET_ERRNO_H)
        CHECK_FUNCTION_EXISTS(connect HAVE_CONNECT)
        IF(NOT HAVE_CONNECT)
                CHECK_FUNCTION_EXISTS(setsockopt HAVE_SETSOCKOPT)
                IF(NOT HAVE_SETSOCKOPT)
                        CONFIG_CHECK_LIBRARY(SOCKET socket setsocket)
-                       SET(TCL_LINK_LIBS ${TCL_LINK_LIBS} ${SOCKET_LIBRARY} 
CACHE STRING "TCL CFLAGS" FORCE)
+                       IF(TCL_LINK_LIBS)
+                               SET(TCL_LINK_LIBS "${TCL_LINK_LIBS} 
${SOCKET_LIBRARY}")
+                       ELSE(TCL_LINK_LIBS)
+                               SET(TCL_LINK_LIBS "${SOCKET_LIBRARY}")
+                       ENDIF(TCL_LINK_LIBS)
                ENDIF(NOT HAVE_SETSOCKOPT)
        ENDIF(NOT HAVE_CONNECT)
        CHECK_FUNCTION_EXISTS(gethostbyname HAVE_GETHOSTBYNAME)
        IF(NOT HAVE_GETHOSTBYNAME)
                CONFIG_CHECK_LIBRARY(NLS nls gethostbyname)
-               SET(TCL_LINK_LIBS ${TCL_LINK_LIBS} ${NLS_LIBRARY} CACHE STRING 
"TCL CFLAGS" FORCE)
+       IF(TCL_LINK_LIBS)
+               SET(TCL_LINK_LIBS "${TCL_LINK_LIBS} ${NLS_LIBRARY}")
+       ELSE(TCL_LINK_LIBS)
+               SET(TCL_LINK_LIBS "${NLS_LIBRARY}")
+       ENDIF(TCL_LINK_LIBS)
        ENDIF(NOT HAVE_GETHOSTBYNAME)
 
 ENDMACRO(SC_TCL_LINK_LIBS)
@@ -469,9 +486,13 @@
 #--------------------------------------------------------------------
 MACRO(SC_TCL_CFG_ENCODING)
        IF(NOT TCL_CFGVAL_ENCODING)
-               SET(TCL_CFGVAL_ENCODING "iso8859-1")
+               IF(WIN32)
+                       SET(TCL_CFGVAL_ENCODING "cp1252")
+               ELSE(WIN32)
+                       SET(TCL_CFGVAL_ENCODING "iso8859-1")
+               ENDIF(WIN32)
        ENDIF(NOT TCL_CFGVAL_ENCODING)
-       SET(TCL_CFLAGS "${TCL_CFLAGS} 
-DTCL_CFGVAL_ENCODING=\\\"${TCL_CFGVAL_ENCODING}\\\"" CACHE STRING "TCL CFLAGS" 
FORCE)
+       add_definitions(-DTCL_CFGVAL_ENCODING="${TCL_CFGVAL_ENCODING}")
 ENDMACRO(SC_TCL_CFG_ENCODING)
 
 
@@ -558,7 +579,7 @@
 (void) gethostbyname_r(name, he, buffer, buflen, &res, &h_errnop);
 return 0;}
                ")
-               CHECK_C_SOURCE_COMPILES("${HAVE_GETHOSTBYNAME_R_6_SRC}"  
HAVE_GETHOSTBYNAME_R_5)
+               CHECK_C_SOURCE_COMPILES("${HAVE_GETHOSTBYNAME_R_6_SRC}"  
HAVE_GETHOSTBYNAME_R_6)
                IF(HAVE_GETHOSTBYNAME_R_6)
                        ADD_TCL_CFLAG(HAVE_GETHOSTBYNAME_R_6)
                ELSE(HAVE_GETHOSTBYNAME_R_6)

Modified: brlcad/trunk/src/other/incrTcl/itk/CMakeLists.txt
===================================================================
--- brlcad/trunk/src/other/incrTcl/itk/CMakeLists.txt   2011-08-11 20:57:14 UTC 
(rev 45929)
+++ brlcad/trunk/src/other/incrTcl/itk/CMakeLists.txt   2011-08-11 21:17:58 UTC 
(rev 45930)
@@ -45,11 +45,44 @@
 # set CMake project name
 PROJECT(ITK)
 
-# set local CFLAGS name
-SET(CFLAGS_NAME ITK)
-SET(ITK_CFLAGS "")
-MARK_AS_ADVANCED(ITK_CFLAGS)
-SET(CONFIG_CFLAGS ITK_CFLAGS)
+# Without Tcl, Tk and Itcl sources, we can't build Itk.  Use TCL_SRC_PREFIX
+# and TCL_BIN_PREFIX to identify the location of the Tcl we are to use.
+IF(TCL_SRC_PREFIX AND TCL_BIN_PREFIX AND ITCL_SRC_PREFIX AND ITCL_BIN_PREFIX 
AND TK_SRC_PREFIX AND TK_BIN_PREFIX)
+   SET(TCL_INCLUDE_DIRS ${TCL_SRC_PREFIX}/generic ${TCL_SRC_PREFIX}/libtommath)
+   SET(ITCL_INCLUDE_DIRS ${ITCL_SRC_PREFIX}/generic)
+       SET(TK_INCLUDE_PATH ${TK_SRC_PREFIX}/generic ${TK_SRC_PREFIX}/bitmaps)
+       IF(WIN32)
+      SET(TCL_INCLUDE_DIRS ${TCL_INCLUDE_DIRS} ${TCL_SRC_PREFIX}/win)
+               SET(TK_INCLUDE_PATH ${TK_INCLUDE_PATH} ${TK_SRC_PREFIX}/win)
+   ELSE(WIN32)
+      SET(TCL_INCLUDE_DIRS ${TCL_INCLUDE_DIRS} ${TCL_SRC_PREFIX}/unix)
+   ENDIF(WIN32)
+   # Locate the TCL libraries.  We allow these to be overridden so that a 
parent
+   # build can use a CMake target instead of an actual library path.
+   IF(NOT TCL_LIBRARY)
+      find_library(TCL_LIBRARY tcl PATHS ${TCL_BIN_PREFIX}/lib)
+   ENDIF(NOT TCL_LIBRARY)
+   IF(NOT TCL_STUB_LIBRARY)
+      find_library(TCL_STUB_LIBRARY tclstub PATHS ${TCL_BIN_PREFIX}/lib)
+   ENDIF(NOT TCL_STUB_LIBRARY)
+   IF(NOT ITCL_LIBRARY)
+      find_library(ITCL_LIBRARY itcl PATHS ${ITCL_BIN_PREFIX}/lib)
+   ENDIF(NOT ITCL_LIBRARY)
+   IF(NOT ITCL_STUB_LIBRARY)
+      find_library(ITCL_STUB_LIBRARY itclstub PATHS ${ITCL_BIN_PREFIX}/lib)
+   ENDIF(NOT ITCL_STUB_LIBRARY)
+   IF(NOT TK_LIBRARY)
+      find_library(TK_LIBRARY tcl PATHS ${TK_BIN_PREFIX}/lib)
+   ENDIF(NOT TK_LIBRARY)
+   IF(NOT TK_STUB_LIBRARY)
+      find_library(TK_STUB_LIBRARY tclstub PATHS ${TK_BIN_PREFIX}/lib)
+   ENDIF(NOT TK_STUB_LIBRARY)
+   IF(NOT TCL_LIBRARY OR NOT TCL_STUB_LIBRARY OR NOT TK_LIBRARY OR NOT 
TK_STUB_LIBRARY OR NOT ITCL_LIBRARY OR NOT ITCL_STUB_LIBRARY)
+      MESSAGE(FATAL_ERROR "Could not find at least one of Tcl, Itcl or Tk 
libraries in ${TCL_BIN_PREFIX}, ${ITCL_BIN_PREFIX}, and ${TK_BIN_PREFIX} - 
please specify the parent directory for the libraries in the TCL_BIN_PREFIX 
variable (e.g. \${TCL_BIN_PREFIX}/lib)")
+   ENDIF(NOT TCL_LIBRARY OR NOT TCL_STUB_LIBRARY OR NOT TK_LIBRARY OR NOT 
TK_STUB_LIBRARY OR NOT ITCL_LIBRARY OR NOT ITCL_STUB_LIBRARY)
+ELSE(TCL_SRC_PREFIX AND TCL_BIN_PREFIX AND ITCL_SRC_PREFIX AND ITCL_BIN_PREFIX 
AND TK_SRC_PREFIX AND TK_BIN_PREFIX)
+   MESSAGE(FATAL_ERROR "Please specify the source and library locations of 
Tcl, Tk and Itcl using the TCL_SRC_PREFIX, TCL_BIN_PREFIX, TK_SRC_PREFIX, 
TK_BIN_PREFIX, ITCL_SRC_PREFIX and ITCL_BIN_PREFIX variables.")
+ENDIF(TCL_SRC_PREFIX AND TCL_BIN_PREFIX AND ITCL_SRC_PREFIX AND 
ITCL_BIN_PREFIX AND TK_SRC_PREFIX AND TK_BIN_PREFIX)
 
 # build shared libs by default
 OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON)
@@ -63,27 +96,62 @@
 
 SET(ITK_VERSION "${ITK_MAJOR_VERSION}.${ITK_MINOR_VERSION}")
 
+#---------------------------------------------------------------------
+# The following logic is what allows binaries to run successfully in
+# the build directory AND install directory.  Thanks to plplot for
+# identifying the necessity of setting CMAKE_INSTALL_NAME_DIR on OSX.
+
+# use, i.e. don't skip the full RPATH for the build tree
+SET(CMAKE_SKIP_BUILD_RPATH  FALSE)
+
+# when building, don't use the install RPATH already
+# (but later on when installing)
+SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
+
+# the RPATH/INSTALL_NAME_DIR to be used when installing
+if (NOT APPLE)
+   SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib:\$ORIGIN/../lib")
+endif(NOT APPLE)
+SET(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib")
+
+# add the automatically determined parts of the RPATH which point to
+# directories outside the build tree to the install RPATH
+SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+
+
+#----------------------------------------------------------------------------
+# The location in which to install Tcl.  Only do this if CMAKE_INSTALL_PREFIX 
+# hasn't been set already, to try and allow parent builds (if any) some 
control.
+IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+   IF(NOT WIN32)
+      IF ("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
+         SET(CMAKE_INSTALL_PREFIX "/usr/local/tcldev-${TCL_VERSION}")
+      ELSE ("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
+         SET(CMAKE_INSTALL_PREFIX "/usr")
+      ENDIF ("${CMAKE_BUILD_TYPE}" MATCHES "Debug")
+   ENDIF(NOT WIN32)
+   SET(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE STRING "TCL install 
prefix" FORCE)
+   SET(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT 0)
+ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+
 #-----------------------------------------------------------------------------
 # Output directories.
-IF(NOT LIBRARY_OUTPUT_PATH)
-  SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "Single 
output directory for building all libraries.")
-ENDIF(NOT LIBRARY_OUTPUT_PATH)
-IF(NOT EXECUTABLE_OUTPUT_PATH)
-  SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "Single 
output directory for building all executables.")
-ENDIF(NOT EXECUTABLE_OUTPUT_PATH)
 
-#-----------------------------------------------------------------------------
-# Configure install locations. 
+IF(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
+   IF(WIN32)
+      SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin CACHE 
INTERNAL "Single output directory for building all libraries.")
+   ELSE(WIN32)
+      SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib CACHE 
INTERNAL "Single output directory for building all libraries.")
+   ENDIF(WIN32)
+ENDIF(NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY)
+IF(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
+   SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL 
"Single output directory for building all archives.")
+ENDIF(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
+IF(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
+   SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL 
"Single output directory for building all executables.")
+ENDIF(NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY)
 
-IF(NOT CMAKE_INSTALL_PREFIX)
-       IF(WIN32)
-               SET(CMAKE_INSTALL_PREFIX "/usr/local")
-       ELSE(WIN32) 
-               SET(CMAKE_INSTALL_PREFIX "C:/Tcl")
-       ENDIF(WIN32) 
-ENDIF(NOT CMAKE_INSTALL_PREFIX)
 
-
 #-----------------------------------------------------------------------------
 # Check if the compiler supports pipe - if so, use it
 INCLUDE(CheckCCompilerFlag)
@@ -106,26 +174,37 @@
 #----------------------------------------------------------------------------
 # First, get some standard options out of the way - things that are constant
 # between various platforms or pertain to specific OS definitions
-SET(ITK_CFLAGS "${ITK_CFLAGS} -DPACKAGE_NAME=\\\"itk\\\"")
-SET(ITK_CFLAGS "${ITK_CFLAGS} -DPACKAGE_TARNAME=\\\"itk\\\"")
-SET(ITK_CFLAGS "${ITK_CFLAGS} 
-DPACKAGE_VERSION=\\\"${ITK_MAJOR_VERSION}.${ITK_MINOR_VERSION}\\\"")
-SET(ITK_CFLAGS "${ITK_CFLAGS} -DPACKAGE_BUGREPORT=\\\"\\\"")
-SET(ITK_CFLAGS "${ITK_CFLAGS} -DSTDC_HEADERS=1")
+add_definitions(-DPACKAGE_NAME="itk")
+add_definitions(-DPACKAGE_TARNAME="itk")
+add_definitions(-DPACKAGE_VERSION="${ITK_MAJOR_VERSION}.${ITK_MINOR_VERSION}")
+add_definitions(-DPACKAGE_BUGREPORT="")
 
 #----------------------------------------------------------------------------
 
+# First, get some standard options out of the way - things that are constant
+# between various platforms or pertain to specific OS definitions
+ADD_TCL_CFLAG(STDC_HEADERS)
+
 IF(WIN32)
-       SET(ITK_CFLAGS "${ITK_CFLAGS} -D_CRT_SECURE_NO_DEPRECATE 
-D_CRT_NONSTDC_NO_DEP -Ot -Oi -fp:strict -Gs -GS -GL -MD")
-       SET(ITK_CFLAGS "${ITK_CFLAGS} -Dinline=__inline -DBUILD_itk")
+       add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEP -Ot 
-Oi -fp:strict -Gs -GS -GL -MD)
+       add_definitions(-Dinline=__inline -DBUILD_itk)
 ENDIF(WIN32)
 
-SET(TCL_CFLAGS "")
+INCLUDE(CheckLibraryExists)
+INCLUDE(ResolveCompilerPaths)
+IF(NOT WIN32)
+   CHECK_LIBRARY_EXISTS(m cos "" HAVE_M_LIBRARY)
+   IF(HAVE_M_LIBRARY)
+      RESOLVE_LIBRARIES(M_LIBRARY "-lm")
+   ENDIF(HAVE_M_LIBRARY)
+ENDIF(NOT WIN32)
 
+
+#----------------------------------------------------------------------------
 SC_MISSING_POSIX_HEADERS()
 
 SC_ENABLE_THREADS()
 
-
 SC_TCL_CFG_ENCODING()
 
 SC_TCL_LINK_LIBS()
@@ -137,61 +216,61 @@
 
 # Test endianness
 IF(NOT MSVC)
-       INCLUDE(TestBigEndian)
-       TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
-       IF(WORDS_BIGENDIAN)
-               SET(TCL_CFLAGS "${TCL_CFLAGS} -DWORDS_BIGENDIAN=1")
-       ENDIF(WORDS_BIGENDIAN)
+   INCLUDE(TestBigEndian)
+   TEST_BIG_ENDIAN(WORDS_BIGENDIAN)
+   IF(WORDS_BIGENDIAN)
+      ADD_TCL_CFLAG(WORDS_BIGENDIAN)
+   ENDIF(WORDS_BIGENDIAN)
 ENDIF(NOT MSVC)
 
 # POSIX substitutes
 CONFIG_CHECK_FUNCTION_EXISTS(getcwd HAVE_GETCWD)
 IF(NOT HAVE_GETCWD)
-       SET(TCL_CFLAGS "${TCL_CFLAGS} -DUSEGETWD=1") 
+   add_definitions(-DUSEGETWD=1)
 ENDIF(NOT HAVE_GETCWD)
 IF(NOT HAVE_GETCWD)
-       CONFIG_CHECK_FUNCTION_EXISTS(getwd HAVE_GETWD)
-       IF(NOT HAVE_GETWD)
-               SET(TCL_CFLAGS "${TCL_CFLAGS} -DNO_GETWD=1") 
-       ENDIF(NOT HAVE_GETWD)
+   CONFIG_CHECK_FUNCTION_EXISTS(getwd HAVE_GETWD)
+   IF(NOT HAVE_GETWD)
+      ADD_TCL_CFLAG(NO_GETWD)
+   ENDIF(NOT HAVE_GETWD)
 ENDIF(NOT HAVE_GETCWD)
 CONFIG_CHECK_FUNCTION_EXISTS(opendir HAVE_OPENDIR)
 IF(NOT HAVE_OPENDIR)
-       SET(COMPAT_SRCS ${COMPAT_SRCS} compat/opendir.c)
-       ADD_TCL_CFLAG(USE_DIRENT2_H)
+   SET(COMPAT_SRCS ${COMPAT_SRCS} compat/opendir.c)
+   ADD_TCL_CFLAG(USE_DIRENT2_H)
 ENDIF(NOT HAVE_OPENDIR)
 CONFIG_CHECK_FUNCTION_EXISTS(strtol HAVE_STRTOL)
 IF(NOT HAVE_STRTOL)
-       SET(COMPAT_SRCS ${COMPAT_SRCS} compat/strtol.c)
+   SET(COMPAT_SRCS ${COMPAT_SRCS} compat/strtol.c)
 ENDIF(NOT HAVE_STRTOL)
 CONFIG_CHECK_FUNCTION_EXISTS(waitpid HAVE_WAITPID)
 IF(NOT HAVE_WAITPID)
-       SET(COMPAT_SRCS ${COMPAT_SRCS} compat/waitpid.c)
+   SET(COMPAT_SRCS ${COMPAT_SRCS} compat/waitpid.c)
 ENDIF(NOT HAVE_WAITPID)
 CONFIG_CHECK_FUNCTION_EXISTS(strerror HAVE_STRERROR)
 IF(NOT HAVE_STRERROR)
-       SET(TCL_CFLAGS "${TCL_CFLAGS} -DNO_STRERROR=1") 
+   ADD_TCL_CFLAG(NO_STRERROR)
 ENDIF(NOT HAVE_STRERROR)
 CHECK_FUNCTION_EXISTS(wait3 HAVE_WAIT3)
 IF(NOT HAVE_WAIT3)
-       SET(TCL_CFLAGS "${TCL_CFLAGS} -DNO_WAIT3=1") 
+   ADD_TCL_CFLAG(NO_WAIT3)
 ENDIF(NOT HAVE_WAIT3)
 CONFIG_CHECK_FUNCTION_EXISTS(uname HAVE_UNAME)
 IF(NOT HAVE_UNAME)
-       SET(TCL_CFLAGS "${TCL_CFLAGS} -DNO_UNAME=1") 
+   ADD_TCL_CFLAG(NO_UNAME)
 ENDIF(NOT HAVE_UNAME)
-# Should be checking for early Darwin version here - realpath
+# Check for early Darwin version here - realpath
 # is not threadsafe prior to Darwin 7
 CHECK_FUNCTION_EXISTS(realpath HAVE_REALPATH)
 IF(${CMAKE_SYSTEM_NAME} MATCHES "^Darwin$" AND TCL_THREADS AND HAVE_REALPATH)
-       STRING(REGEX REPLACE "\\..*" "" CMAKE_SYSTEM_MAJOR_VERSION 
${CMAKE_SYSTEM_VERSION})
-       IF (${CMAKE_SYSTEM_MAJOR_VERSION} LESS 7)
-               MESSAGE("realpath is not threadsafe in Darwin versions prior to 
7, disabling")
-               SET(HAVE_REALPATH)
-       ENDIF (${CMAKE_SYSTEM_MAJOR_VERSION} LESS 7)
+   STRING(REGEX REPLACE "\\..*" "" CMAKE_SYSTEM_MAJOR_VERSION 
${CMAKE_SYSTEM_VERSION})
+   IF (${CMAKE_SYSTEM_MAJOR_VERSION} LESS 7)
+      MESSAGE("realpath is not threadsafe in Darwin versions prior to 7, 
disabling")
+      SET(HAVE_REALPATH)
+   ENDIF (${CMAKE_SYSTEM_MAJOR_VERSION} LESS 7)
 ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "^Darwin$" AND TCL_THREADS AND 
HAVE_REALPATH)
 IF(NOT HAVE_REALPATH)
-       SET(TCL_CFLAGS "${TCL_CFLAGS} -DNO_REALPATH=1") 
+   ADD_TCL_CFLAG(NO_REALPATH)
 ENDIF(NOT HAVE_REALPATH)
 
 SC_TCL_GETADDRINFO()
@@ -200,37 +279,37 @@
 # get the right logic going here
 IF(TCL_THREADS)
 
-       SC_TCL_GETPWUID_R()
+   SC_TCL_GETPWUID_R()
 
-       SC_TCL_GETPWNAM_R()
+   SC_TCL_GETPWNAM_R()
 
-       SC_TCL_GETGRGID_R()
+   SC_TCL_GETGRGID_R()
 
-       SC_TCL_GETGRNAM_R()
+   SC_TCL_GETGRNAM_R()
 
-       IF(NOT HAVE_GETHOSTBYNAME)
-               CHECK_LIBRARY(GHBN lnsl gethostbyname)
-               SET(HAVE_GETHOSTBYNAME ${GHBN})
-       ENDIF(NOT HAVE_GETHOSTBYNAME)
+   IF(NOT HAVE_GETHOSTBYNAME)
+      CHECK_LIBRARY(GHBN lnsl gethostbyname)
+      SET(HAVE_GETHOSTBYNAME ${GHBN})
+   ENDIF(NOT HAVE_GETHOSTBYNAME)
 
-       SC_TCL_GETHOSTBYADDR_R()
-       SC_TCL_GETHOSTBYNAME_R()
+   SC_TCL_GETHOSTBYADDR_R()
+   SC_TCL_GETHOSTBYNAME_R()
 
-       IF(${CMAKE_SYSTEM_NAME} MATCHES "^Darwin$")
-               STRING(REGEX REPLACE "\\..*" "" CMAKE_SYSTEM_MAJOR_VERSION 
${CMAKE_SYSTEM_VERSION})
-               IF (${CMAKE_SYSTEM_MAJOR_VERSION} GREATER 5)
-                       SET(TCL_CFLAGS "${TCL_CFLAGS} 
-DHAVE_MTSAFE_GETHOSTBYNAME=1")
-                       SET(TCL_CFLAGS "${TCL_CFLAGS} 
-DHAVE_MTSAFE_GETHOSTBYADDR=1")
-               ENDIF (${CMAKE_SYSTEM_MAJOR_VERSION} GREATER 5)
-       ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "^Darwin$")
+   IF(${CMAKE_SYSTEM_NAME} MATCHES "^Darwin$")
+      STRING(REGEX REPLACE "\\..*" "" CMAKE_SYSTEM_MAJOR_VERSION 
${CMAKE_SYSTEM_VERSION})
+      IF (${CMAKE_SYSTEM_MAJOR_VERSION} GREATER 5)
+         ADD_TCL_CFLAG(HAVE_MTSAFE_GETHOSTBYNAME)
+         ADD_TCL_CFLAG(HAVE_MTSAFE_GETHOSTBYADDR)
+      ENDIF (${CMAKE_SYSTEM_MAJOR_VERSION} GREATER 5)
+   ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "^Darwin$")
 
-       IF(${CMAKE_SYSTEM_NAME} MATCHES "^HP-UX$")
-               STRING(REGEX REPLACE "\\..*" "" CMAKE_SYSTEM_MAJOR_VERSION 
${CMAKE_SYSTEM_VERSION})
-               IF (${CMAKE_SYSTEM_MAJOR_VERSION} GREATER 10)
-                       SET(TCL_CFLAGS "${TCL_CFLAGS} 
-DHAVE_MTSAFE_GETHOSTBYNAME=1")
-                       SET(TCL_CFLAGS "${TCL_CFLAGS} 
-DHAVE_MTSAFE_GETHOSTBYADDR=1")
-               ENDIF (${CMAKE_SYSTEM_MAJOR_VERSION} GREATER 10)
-       ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "^HP-UX$")
+   IF(${CMAKE_SYSTEM_NAME} MATCHES "^HP-UX$")
+      STRING(REGEX REPLACE "\\..*" "" CMAKE_SYSTEM_MAJOR_VERSION 
${CMAKE_SYSTEM_VERSION})
+      IF (${CMAKE_SYSTEM_MAJOR_VERSION} GREATER 10)
+         ADD_TCL_CFLAG(HAVE_MTSAFE_GETHOSTBYNAME)
+         ADD_TCL_CFLAG(HAVE_MTSAFE_GETHOSTBYADDR)
+      ENDIF (${CMAKE_SYSTEM_MAJOR_VERSION} GREATER 10)
+   ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "^HP-UX$")
 
 ENDIF(TCL_THREADS)
 
@@ -247,24 +326,23 @@
 # on OSX
 #CHECK_FUNCTION_EXISTS(memmove, HAVE_MEMMOVE)
 #IF(NOT HAVE_MEMMOVE)
-#      SET(TCL_CFLAGS "${TCL_CFLAGS} -DNO_MEMMOVE=1") 
-#      SET(TCL_CFLAGS "${TCL_CFLAGS} -DNO_STRING_H=1") 
+#  add_definitions(-DNO_MEMMOVE=1) 
+#  add_definitions(-DNO_STRING_H=1) 
 #ENDIF(NOT HAVE_MEMMOVE)
 
-
 # Test for bad functions
 SC_TCL_CHECK_BROKEN_FUNC(
-       strstr "
-       extern int strstr();
-       exit(strstr(\"\\\0test\", \"test\") ? 1 : 0);"
+   strstr "
+   extern int strstr();
+   exit(strstr(\"\\\0test\", \"test\") ? 1 : 0);"
 )
 
 
 SC_TCL_CHECK_BROKEN_FUNC(
-       strtoul "
-       extern int strtoul();
-       char *term, *string = \"0\";
-       exit(strtoul(string,&term,0) != 0 || term != string+1);"
+   strtoul "
+   extern int strtoul();
+   char *term, *string = \"0\";
+   exit(strtoul(string,&term,0) != 0 || term != string+1);"
 )
 
 
@@ -282,21 +360,21 @@
 SC_ENABLE_LANGINFO()
 
 IF(${CMAKE_SYSTEM_NAME} MATCHES "^Darwin$")
-       CONFIG_CHECK_FUNCTION_EXISTS(getattrlist HAVE_GETATTRLIST)
-       CONFIG_CHECK_INCLUDE_FILE(copyfile.h HAVE_COPYFILE_H)
-       CONFIG_CHECK_FUNCTION_EXISTS(copyfile HAVE_COPYFILE)
-       IF(${COREFOUNDATION_FRAMEWORK})
-               CONFIG_CHECK_INCLUDE_FILE(libkern/OSAtomic.h 
HAVE_LIBKERN_OSATOMIC_H)
-               CONFIG_CHECK_FUNCTION_EXISTS(OSSpinLockLock HAVE_OSSPINLOCKLOCK)
-               CONFIG_CHECK_FUNCTION_EXISTS(pthread_atfork HAVE_PTHREAD_ATFORK)
-       ENDIF(${COREFOUNDATION_FRAMEWORK})
-       ADD_TCL_CFLAG(USE_VFORK)
-       SET(TCL_CFLAGS "${TCL_CFLAGS} -DTCL_DEFAULT_ENCODING=\\\"utf-8\\\"")
-       ADD_TCL_CFLAG(TCL_LOAD_FROM_MEMORY)
-       ADD_TCL_CFLAG(TCL_WIDE_CLICKS)
-       CONFIG_CHECK_INCLUDE_FILE_USABILITY(AvailabilityMacros.h 
HAVE_AVAILABILITYMACROS_H)
-       IF(HAVE_AVAILABILITYMACROS_H)
-               SET(WEAK_IMPORT_SRCS "
+   CONFIG_CHECK_FUNCTION_EXISTS(getattrlist HAVE_GETATTRLIST)
+   CONFIG_CHECK_INCLUDE_FILE(copyfile.h HAVE_COPYFILE_H)
+   CONFIG_CHECK_FUNCTION_EXISTS(copyfile HAVE_COPYFILE)
+   IF(${COREFOUNDATION_FRAMEWORK})
+      CONFIG_CHECK_INCLUDE_FILE(libkern/OSAtomic.h HAVE_LIBKERN_OSATOMIC_H)
+      CONFIG_CHECK_FUNCTION_EXISTS(OSSpinLockLock HAVE_OSSPINLOCKLOCK)
+      CONFIG_CHECK_FUNCTION_EXISTS(pthread_atfork HAVE_PTHREAD_ATFORK)
+   ENDIF(${COREFOUNDATION_FRAMEWORK})
+   ADD_TCL_CFLAG(USE_VFORK)
+   add_definitions(-DTCL_DEFAULT_ENCODING="utf-8")
+   ADD_TCL_CFLAG(TCL_LOAD_FROM_MEMORY)
+   ADD_TCL_CFLAG(TCL_WIDE_CLICKS)
+   CONFIG_CHECK_INCLUDE_FILE_USABILITY(AvailabilityMacros.h 
HAVE_AVAILABILITYMACROS_H)
+   IF(HAVE_AVAILABILITYMACROS_H)
+      SET(WEAK_IMPORT_SRCS "
 #ifdef __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
 #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1020
 #error __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1020
@@ -309,12 +387,12 @@
 rand();
 return 0;
 }
-               ")
-               CHECK_C_SOURCE_COMPILES("${WEAK_IMPORT_SRCS}" 
WEAK_IMPORT_WORKING)
-               IF(WEAK_IMPORT_WORKING)
-                       ADD_TCL_CFLAG(HAVE_WEAK_IMPORT)
-               ENDIF(WEAK_IMPORT_WORKING)
-               SET(SUSV3_SRCS "
+      ")
+      CHECK_C_SOURCE_COMPILES("${WEAK_IMPORT_SRCS}" WEAK_IMPORT_WORKING)
+      IF(WEAK_IMPORT_WORKING)
+         ADD_TCL_CFLAG(HAVE_WEAK_IMPORT)
+      ENDIF(WEAK_IMPORT_WORKING)
+      SET(SUSV3_SRCS "
 #ifdef __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__
 #if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1050
 #error __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1050
@@ -325,14 +403,14 @@
 #define _DARWIN_C_SOURCE 1
 #include <sys/cdefs.h>
 
-int main ()    {return 0;}
-               ")
-               CHECK_C_SOURCE_COMPILES("${SUSV3_SRCS}" SUSV3_WORKING)
-               IF(SUSV3_WORKING)
-                       ADD_TCL_CFLAG(_DARWIN_C_SOURCE)
-               ENDIF(SUSV3_WORKING)
+int main () {return 0;}
+      ")
+      CHECK_C_SOURCE_COMPILES("${SUSV3_SRCS}" SUSV3_WORKING)
+      IF(SUSV3_WORKING)
+         ADD_TCL_CFLAG(_DARWIN_C_SOURCE)
+      ENDIF(SUSV3_WORKING)
 
-       ENDIF(HAVE_AVAILABILITYMACROS_H)
+   ENDIF(HAVE_AVAILABILITYMACROS_H)
 ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "^Darwin$")
 
 # Check for support of fts functions (readdir replacement)
@@ -350,18 +428,19 @@
 ")
 CHECK_C_SOURCE_COMPILES("${FTS_SRCS}" FTS_WORKING)
 IF(FTS_WORKING)
-       ADD_TCL_CFLAG(HAVE_FTS)
+   ADD_TCL_CFLAG(HAVE_FTS)
 ENDIF(FTS_WORKING)
 
 OPTION(TCL_UNLOAD_DLLS "Allow unloading of shared libraries?" ON)
 IF(TCL_UNLOAD_DLLS)
-       ADD_TCL_CFLAG(TCL_UNLOAD_DLLS)
+   ADD_TCL_CFLAG(TCL_UNLOAD_DLLS)
 ENDIF(TCL_UNLOAD_DLLS)
 
 # TODO - Need to set up check for timezone info
 
 # TODO - Dtrace
 
+
 #--------------------------------------------------------------------
 #  Does the C stack grow upwards or downwards? Or cross-compiling?
 #--------------------------------------------------------------------
@@ -377,14 +456,14 @@
 ")
 CHECK_C_SOURCE_RUNS("${C_STACK_SRC}" STACK_GROWS_UP)
 IF(STACK_GROWS_UP)
-       ADD_TCL_CFLAG(TCL_STACK_GROWS_UP)
+   ADD_TCL_CFLAG(TCL_STACK_GROWS_UP)
 ENDIF(STACK_GROWS_UP)
 
 CONFIG_CHECK_INCLUDE_FILE(sys/types.h HAVE_SYS_TYPES_H)
 CONFIG_CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H)
 CONFIG_CHECK_INCLUDE_FILE(sys/fstatfs.h HAVE_SYS_FSTATFS_H)
 IF(NOT HAVE_SYS_FSTATFS_H)
-   SET(TCL_CFLAGS "${TCL_CFLAGS} -DNO_FSTATFS=1")
+   add_definitions(-DNO_FSTATFS=1)
 ENDIF(NOT HAVE_SYS_FSTATFS_H)
 CONFIG_CHECK_INCLUDE_FILE(memory.h HAVE_MEMORY_H)
 CONFIG_CHECK_INCLUDE_FILE(strings.h HAVE_STRINGS_H)
@@ -409,15 +488,12 @@
 CONFIG_CHECK_FUNCTION_EXISTS(chflags HAVE_CHFLAGS)
 
 IF(COMPAT_SRCS)
-       ADD_TCL_CFLAG(USE_COMPAT)
+   ADD_TCL_CFLAG(USE_COMPAT)
 ENDIF(COMPAT_SRCS)
 
+
 find_package(X11)
 
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${ITK_CFLAGS} ${TCL_CFLAGS}")
-
-
-
 SET(ITK_GENERIC_SRCS
        generic/itkStubInit.c
        generic/itkStubLib.c
@@ -435,70 +511,15 @@
        generic/itkStubLib.c
 )
 
-# When it comes to identification of the location of the Tcl
-# sources, the convention is as follows:
-#
-# 1.  If TCL_INCLUDE_DIRS is defined, use it
-# 2.  Else, if TCL_PREFIX is defined build include paths from it
-# 3.  If TCL_INCLUDE_DIRS is not defined and TCL_BIN_PREFIX is,
-#     add include directories based on the presumption of the
-#     binary build dir (and hence tclConfig.h) being in a non-src
-#     location.
-#
-# It's still possible, depending on how Tcl was built, to 
-# have a situation where TCL_INCLUDE_DIRS has to be augmented
-# manually.  However, the logic below should cover the most common cases.
 
-IF(NOT TCL_INCLUDE_DIRS)
-       IF(TCL_PREFIX)
-               SET(TCL_INCLUDE_DIRS ${TCL_PREFIX}/generic 
${TCL_PREFIX}/libtommath)
-               IF(WIN32)
-                       SET(TCL_INCLUDE_DIRS ${TCL_INCLUDE_DIRS} 
${TCL_PREFIX}/win)
-               ELSE(WIN32)
-                       SET(TCL_INCLUDE_DIRS ${TCL_INCLUDE_DIRS} 
${TCL_PREFIX}/unix)
-               ENDIF(WIN32)
-       ENDIF(TCL_PREFIX)
-       IF(TCL_BIN_PREFIX)
-               SET(TCL_INCLUDE_DIRS ${TCL_INCLUDE_DIRS} 
${TCL_BIN_PREFIX}/include)
-       ENDIF(TCL_BIN_PREFIX)
-ENDIF(NOT TCL_INCLUDE_DIRS)
+SET(ITK_INCLUDE_DIRS ${ITK_SOURCE_DIR}/generic ${ITK_BINARY_DIR}/include)
+MARK_AS_ADVANCED(ITK_INCLUDE_DIRS)
 
-IF(NOT ITCL_INCLUDE_DIRS)
-       IF(ITCL_PREFIX)
-               SET(ITCL_INCLUDE_DIRS ${ITCL_PREFIX}/generic 
${ITCL_PREFIX}/libtommath)
-               IF(WIN32)
-                       SET(ITCL_INCLUDE_DIRS ${ITCL_INCLUDE_DIRS} 
${ITCL_PREFIX}/win)
-               ELSE(WIN32)
-                       SET(ITCL_INCLUDE_DIRS ${ITCL_INCLUDE_DIRS} 
${ITCL_PREFIX}/unix)
-               ENDIF(WIN32)
-       ENDIF(ITCL_PREFIX)
-       IF(ITCL_BIN_PREFIX)
-               SET(ITCL_INCLUDE_DIRS ${ITCL_INCLUDE_DIRS} 
${ITCL_BIN_PREFIX}/include)
-       ENDIF(ITCL_BIN_PREFIX)
-ENDIF(NOT ITCL_INCLUDE_DIRS)
-
-IF(NOT TK_INCLUDE_PATH)
-       IF(TK_PREFIX)
-               SET(TK_INCLUDE_PATH ${TK_PREFIX}/generic 
${TK_PREFIX}/libtommath)
-               IF(WIN32)
-                       SET(TK_INCLUDE_PATH ${TK_INCLUDE_PATH} ${TK_PREFIX}/win)
-               ELSE(WIN32)
-                       SET(TK_INCLUDE_PATH ${TK_INCLUDE_PATH} 
${TK_PREFIX}/unix)
-               ENDIF(WIN32)
-       ENDIF(TK_PREFIX)
-       IF(TK_BIN_PREFIX)
-               SET(TK_INCLUDE_PATH ${TK_INCLUDE_PATH} ${TK_BIN_PREFIX}/include)
-       ENDIF(TK_BIN_PREFIX)
-ENDIF(NOT TK_INCLUDE_PATH)
-
-
-SET(ITK_INCLUDE_PATH ${ITK_SOURCE_DIR}/generic ${ITK_BINARY_DIR}/include)
-
 include_directories(
        ${TCL_INCLUDE_DIRS}
        ${TK_INCLUDE_PATH}
        ${ITCL_INCLUDE_DIRS}
-       ${ITK_INCLUDE_PATH}
+       ${ITK_INCLUDE_DIRS}
        ${X11_INCLUDE_DIR}
        ${CMAKE_BINARY_DIR}/include
        ${CMAKE_SOURCE_DIR}/include
@@ -512,10 +533,16 @@
 target_link_libraries(itk ${M_LIBRARY} ${TCL_LIBRARIES} ${ITCL_LIBRARY})
 SET_TARGET_PROPERTIES(itk PROPERTIES VERSION ${ITK_VERSION} SOVERSION 
${ITK_MAJOR_VERSION})
 SET_TARGET_PROPERTIES(itk PROPERTIES PREFIX "lib")
+SET_PROPERTY(TARGET itk APPEND PROPERTY COMPILE_DEFINITIONS USE_TCL_STUBS)
+SET_PROPERTY(TARGET itk APPEND PROPERTY COMPILE_DEFINITIONS USE_ITCL_STUBS)
+SET_PROPERTY(TARGET itk APPEND PROPERTY COMPILE_DEFINITIONS USE_TK_STUBS)
 install(TARGETS itk DESTINATION ${LIB_DIR})
 
 add_library(itkstub STATIC ${ITK_STUB_SRCS})
 target_link_libraries(itkstub ${ITCL_STUB_LIBRARY} ${TCL_STUB_LIBRARIES})
+SET_PROPERTY(TARGET itkstub APPEND PROPERTY COMPILE_DEFINITIONS USE_TCL_STUBS)
+SET_PROPERTY(TARGET itkstub APPEND PROPERTY COMPILE_DEFINITIONS USE_ITCL_STUBS)
+SET_PROPERTY(TARGET itkstub APPEND PROPERTY COMPILE_DEFINITIONS USE_TK_STUBS)
 install(TARGETS itkstub DESTINATION ${LIB_DIR})
 
 GET_TARGET_PROPERTY(ITK_LIBLOCATION itk LOCATION_${CMAKE_BUILD_TYPE})


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

------------------------------------------------------------------------------
Get a FREE DOWNLOAD! and learn more about uberSVN rich system, 
user administration capabilities and model configuration. Take 
the hassle out of deploying and managing Subversion and the 
tools developers use with it. 
http://p.sf.net/sfu/wandisco-dev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
brlcad-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to