Revision: 44742
          http://brlcad.svn.sourceforge.net/brlcad/?rev=44742&view=rev
Author:   starseeker
Date:     2011-06-06 18:59:50 +0000 (Mon, 06 Jun 2011)

Log Message:
-----------
Add an option to play nice as a subbuild of another project - turns off the 
distcheck support, timing code and cpack settings that would be the 
responsibility of a parent project.

Modified Paths:
--------------
    brlcad/trunk/CMakeLists.txt

Modified: brlcad/trunk/CMakeLists.txt
===================================================================
--- brlcad/trunk/CMakeLists.txt 2011-06-06 18:46:08 UTC (rev 44741)
+++ brlcad/trunk/CMakeLists.txt 2011-06-06 18:59:50 UTC (rev 44742)
@@ -46,7 +46,7 @@
 # *******************************************************************
 #
 # This file define the toplevel CMake build logic for BRL-CAD.  
-# As best is reasonably possible, proper ordering and
+# As best as is reasonably possible, proper ordering and
 # separation of tests and settings should be maintained per the
 # recommended standard layout.  The tests should be added to the
 # rather clearly labeled sections below so that they are as
@@ -98,7 +98,7 @@
 # search path once defined, resulting in (for us) an unexpected behavior
 # of returning old installed libraries when CMake is re-run in a
 # directory.  
-
+#
 # To work around this, there are two possible approaches.  One,
 # identified by Maik Beckmann, operates on CMAKE_SYSTEM_PREFIX_PATH:
 #
@@ -149,7 +149,6 @@
 IF(CMAKE_SYSTEM_IGNORE_PATH)
        LIST(REMOVE_DUPLICATES CMAKE_SYSTEM_IGNORE_PATH)
 ENDIF(CMAKE_SYSTEM_IGNORE_PATH)
-MESSAGE("CMAKE_SYSTEM_IGNORE_PATH: ${CMAKE_SYSTEM_IGNORE_PATH}")
 
 
 #---------------------------------------------------------------------
@@ -162,75 +161,105 @@
 # functionality previously available under the add_* functions. See
 # http://www.cmake.org/pipermail/cmake/2010-September/039388.html
 
-# A further compilcation is that functions have local variable scope,
-# hence the use of properties to allow access to directory-specific
-# and global information scopes.
+# To allow a hypothetical parent build to disable this mechanism and
+# replace it, we wrap the whole show in an IF conditional.  To avoid
+# the distcheck setup, the parent file should define the variable
+# BRLCAD-IS_SUBBUILD to ON.  Note that this also disables the
+# liblib prefix check in add_library, making that the responsibility
+# of the parent build as well, and disables the mechanism for ensuring
+# that the timing code runs at the correct points during the build.
 
+# First, define a macro for building lists of files.  Distcheck needs 
+# to know what files are "supposed" to be present in order to make 
+# sure the source tree is clean prior to building a distribution 
+# tarball, hence this macro stores its results in files and not 
+# variables  It's a no-op in a SUBBUILD.
 MACRO(CMAKEFILES)
-       FOREACH(ITEM ${ARGN})
-               IF(NOT ${ITEM} MATCHES "^SHARED$"
-                               AND NOT ${ITEM} MATCHES "^STATIC$")
-                       GET_FILENAME_COMPONENT(ITEM_PATH ${ITEM} PATH)
-                       IF(ITEM_PATH)
-                               GET_FILENAME_COMPONENT(ITEM_ABS_PATH 
${ITEM_PATH} ABSOLUTE)
-                               IF(NOT ${ITEM_PATH} MATCHES 
"^${ITEM_ABS_PATH}$")
-                                       FILE(APPEND 
${CMAKE_CURRENT_BINARY_DIR}/cmakefiles.cmake        "\\${ITEM}")
-                                       FILE(APPEND 
${CMAKE_CURRENT_BINARY_DIR}/cmakepaths.cmake        "\\${ITEM_PATH}")
-                               ENDIF(NOT ${ITEM_PATH} MATCHES 
"^${ITEM_ABS_PATH}$")
-                       ELSE(ITEM_PATH)
-                               FILE(APPEND 
${CMAKE_CURRENT_BINARY_DIR}/cmakefiles.cmake        "\\${ITEM}")
-                       ENDIF(ITEM_PATH)
-               ENDIF()
-       ENDFOREACH(ITEM ${ARGN})
+       IF(NOT BRLCAD-IS_SUBBUILD)
+               SET(ITEM_LIST "")
+               SET(ITEM_PATH_LIST "")
+               FOREACH(ITEM ${ARGN})
+                       IF(NOT ${ITEM} MATCHES "^SHARED$" AND NOT ${ITEM} 
MATCHES "^STATIC$")
+                               GET_FILENAME_COMPONENT(ITEM_PATH ${ITEM} PATH)
+                               IF(ITEM_PATH)
+                                       GET_FILENAME_COMPONENT(ITEM_ABS_PATH 
${ITEM_PATH} ABSOLUTE)
+                                       IF(NOT ${ITEM_PATH} MATCHES 
"^${ITEM_ABS_PATH}$")
+                                               SET(ITEM_LIST 
"${ITEM_LIST}\\${ITEM}")
+                                               SET(ITEM_PATH_LIST 
"${ITEM_PATH_LIST}\\${ITEM_PATH}")
+                                       ENDIF(NOT ${ITEM_PATH} MATCHES 
"^${ITEM_ABS_PATH}$")
+                               ELSE(ITEM_PATH)
+                                       SET(ITEM_LIST "${ITEM_LIST}\\${ITEM}")
+                               ENDIF(ITEM_PATH)
+                       ENDIF()
+               ENDFOREACH(ITEM ${ARGN})
+               IF(ITEM_LIST)
+                       FILE(APPEND 
${CMAKE_CURRENT_BINARY_DIR}/cmakefiles.cmake        "${ITEM_LIST}")
+               ENDIF(ITEM_LIST)
+               IF(ITEM_PATH_LIST)
+                       FILE(APPEND 
${CMAKE_CURRENT_BINARY_DIR}/cmakepaths.cmake        "${ITEM_PATH_LIST}")
+               ENDIF(ITEM_PATH_LIST)
+       ENDIF(NOT BRLCAD-IS_SUBBUILD)
 ENDMACRO(CMAKEFILES FILESLIST)
 
+# Now, the main mechanism for global target ordering.
+IF(NOT BRLCAD-IS_SUBBUILD)
+       # Functions in CMake have local variable scope,
+       # hence the use of properties to allow access to directory-specific
+       # and global information scopes.
+       define_property(GLOBAL PROPERTY CMAKE_LIBRARY_TARGET_LIST BRIEF_DOCS 
"libtarget list" FULL_DOCS "Library target list")
+       define_property(GLOBAL PROPERTY CMAKE_EXEC_TARGET_LIST BRIEF_DOCS "exec 
target list" FULL_DOCS "Executable target list")
+       define_property(GLOBAL PROPERTY CMAKE_CUSTOM_TARGET_LIST BRIEF_DOCS 
"custom target list" FULL_DOCS "Custom target list")
+       MARK_AS_ADVANCED(CMAKE_LIBRARY_TARGET_LIST)
+       MARK_AS_ADVANCED(CMAKE_EXEC_TARGET_LIST)
+       MARK_AS_ADVANCED(CMAKE_CUSTOM_TARGET_LIST)
 
-define_property(GLOBAL PROPERTY CMAKE_LIBRARY_TARGET_LIST BRIEF_DOCS 
"libtarget list" FULL_DOCS "Library target list")
-function(add_library name)
-       get_property(CMAKE_LIBRARY_TARGET_LIST GLOBAL PROPERTY 
CMAKE_LIBRARY_TARGET_LIST)
-       _add_library(${name} ${ARGN})
-       SET(LIBFILESLIST ${ARGN})
-       CMAKEFILES(${ARGN})
-       IF(${name} MATCHES "^lib*")
-               set_target_properties(${name} PROPERTIES PREFIX "")
-       ENDIF(${name} MATCHES "^lib*")
-       set_property(GLOBAL APPEND PROPERTY CMAKE_LIBRARY_TARGET_LIST ${name})
-endfunction(add_library)
+       # Override and wrap add_library.  While we're at it, avoid doubling up
+       # on the lib prefix for libraries if the target name is lib<target>
+       function(add_library name)
+               get_property(CMAKE_LIBRARY_TARGET_LIST GLOBAL PROPERTY 
CMAKE_LIBRARY_TARGET_LIST)
+               _add_library(${name} ${ARGN})
+               CMAKEFILES(${ARGN})
+               IF(${name} MATCHES "^lib*")
+                       set_target_properties(${name} PROPERTIES PREFIX "")
+               ENDIF(${name} MATCHES "^lib*")
+               set_property(GLOBAL APPEND PROPERTY CMAKE_LIBRARY_TARGET_LIST 
${name})
+       endfunction(add_library)
 
-define_property(GLOBAL PROPERTY CMAKE_EXEC_TARGET_LIST BRIEF_DOCS "exec target 
list" FULL_DOCS "Executable target list")
-function(add_executable name)
-       get_property(CMAKE_EXEC_TARGET_LIST GLOBAL PROPERTY 
CMAKE_EXEC_TARGET_LIST)
-   _add_executable(${name} ${ARGN})
-       CMAKEFILES(${ARGN})
-       set_property(GLOBAL APPEND PROPERTY CMAKE_EXEC_TARGET_LIST ${name})
-endfunction(add_executable)
+       # Override and wrap add_executable
+       function(add_executable name)
+               get_property(CMAKE_EXEC_TARGET_LIST GLOBAL PROPERTY 
CMAKE_EXEC_TARGET_LIST)
+               _add_executable(${name} ${ARGN})
+               CMAKEFILES(${ARGN})
+               set_property(GLOBAL APPEND PROPERTY CMAKE_EXEC_TARGET_LIST 
${name})
+       endfunction(add_executable)
 
-define_property(GLOBAL PROPERTY CMAKE_CUSTOM_TARGET_LIST BRIEF_DOCS "custom 
target list" FULL_DOCS "Custom target list")
-function(add_custom_target name)
-       get_property(CMAKE_CUSTOM_TARGET_LIST GLOBAL PROPERTY 
CMAKE_CUSTOM_TARGET_LIST)
-   _add_custom_target(${name} ${ARGN})
-       set_property(GLOBAL APPEND PROPERTY CMAKE_CUSTOM_TARGET_LIST ${name})
-endfunction(add_custom_target)
-MARK_AS_ADVANCED(CMAKE_LIBRARY_TARGET_LIST)
-MARK_AS_ADVANCED(CMAKE_EXEC_TARGET_LIST)
-MARK_AS_ADVANCED(CMAKE_CUSTOM_TARGET_LIST)
+       # Override and wrap add_custom_target
+       function(add_custom_target name)
+               get_property(CMAKE_CUSTOM_TARGET_LIST GLOBAL PROPERTY 
CMAKE_CUSTOM_TARGET_LIST)
+               _add_custom_target(${name} ${ARGN})
+               set_property(GLOBAL APPEND PROPERTY CMAKE_CUSTOM_TARGET_LIST 
${name})
+       endfunction(add_custom_target)
 
-define_property(DIRECTORY PROPERTY DIR_TARGET_LIST BRIEF_DOCS "dir list" 
FULL_DOCS "Directory target list")
-define_property(GLOBAL PROPERTY DISTCHECK_DIRS BRIEF_DOCS "check during 
distcheck" FULL_DOCS "List of directories to check during make distcheck")
-set_property(GLOBAL PROPERTY DISTCHECK_DIRS "${CMAKE_CURRENT_SOURCE_DIR}")
-function(add_subdirectory name)
-       FILE(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/${name}/cmakefiles.cmake)
-       FILE(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/${name}/cmakepaths.cmake)
-       set_property(GLOBAL APPEND PROPERTY DISTCHECK_DIRS      
"\\${CMAKE_CURRENT_SOURCE_DIR}/${name}")
-       _add_subdirectory(${name} ${ARGN})
-       GET_FILENAME_COMPONENT(ITEM_NAME ${name} NAME)
-       FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/cmakefiles.cmake        
"\\${ITEM_NAME}")
-endfunction(add_subdirectory)
+       # Some additional logic is needed in the case of directories
+       define_property(DIRECTORY PROPERTY DIR_TARGET_LIST BRIEF_DOCS "dir 
list" FULL_DOCS "Directory target list")
+       define_property(GLOBAL PROPERTY DISTCHECK_DIRS BRIEF_DOCS "check during 
distcheck" FULL_DOCS "List of directories to check during make distcheck")
+       set_property(GLOBAL PROPERTY DISTCHECK_DIRS 
"${CMAKE_CURRENT_SOURCE_DIR}")
+       function(add_subdirectory name)
+               FILE(REMOVE 
${CMAKE_CURRENT_BINARY_DIR}/${name}/cmakefiles.cmake)
+               FILE(REMOVE 
${CMAKE_CURRENT_BINARY_DIR}/${name}/cmakepaths.cmake)
+               set_property(GLOBAL APPEND PROPERTY DISTCHECK_DIRS      
"\\${CMAKE_CURRENT_SOURCE_DIR}/${name}")
+               _add_subdirectory(${name} ${ARGN})
+               GET_FILENAME_COMPONENT(ITEM_NAME ${name} NAME)
+               FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/cmakefiles.cmake        
"\\${ITEM_NAME}")
+       endfunction(add_subdirectory)
 
-# The toplevel dir doesn't invoke add_subdirectory on itself,
-# so remove any old cmakefiles.cmake file manually
-FILE(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/cmakefiles.cmake)
-FILE(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/cmakepaths.cmake)
+       # The toplevel dir doesn't invoke add_subdirectory on itself,
+       # so remove any old cmakefiles.cmake file manually
+       FILE(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/cmakefiles.cmake)
+       FILE(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/cmakepaths.cmake)
+ENDIF(NOT BRLCAD-IS_SUBBUILD)
+
+
 #---------------------------------------------------------------------
 # CMake derives much of its functionality from modules, typically
 # stored in one directory - let CMake know where to find them.
@@ -272,12 +301,14 @@
 #---------------------------------------------------------------------
 # Write out entries to populate a tm struct to be used for time deltas 
 # later
-SET(DELTA_START "${CMAKE_BINARY_DIR}/CMakeTmp/DELTA_START")
-configure_file(${BRLCAD_CMAKE_DIR}/test_srcs/timedelta_start.c.in 
${CMAKE_BINARY_DIR}/CMakeTmp/timedelta_start.c)
-TRY_RUN(TIME_RESULT TIME_COMPILED 
-       ${CMAKE_BINARY_DIR}/CMakeTmp
-       ${CMAKE_BINARY_DIR}/CMakeTmp/timedelta_start.c
-       OUTPUT_VARIABLE COMPILEMESSAGES)
+IF(NOT BRLCAD-IS_SUBBUILD)
+       SET(DELTA_START "${CMAKE_BINARY_DIR}/CMakeTmp/DELTA_START")
+       configure_file(${BRLCAD_CMAKE_DIR}/test_srcs/timedelta_start.c.in 
${CMAKE_BINARY_DIR}/CMakeTmp/timedelta_start.c)
+       TRY_RUN(TIME_RESULT TIME_COMPILED 
+               ${CMAKE_BINARY_DIR}/CMakeTmp
+               ${CMAKE_BINARY_DIR}/CMakeTmp/timedelta_start.c
+               OUTPUT_VARIABLE COMPILEMESSAGES)
+ENDIF(NOT BRLCAD-IS_SUBBUILD)
 
 #---------------------------------------------------------------------
 # Unfortunately, CMake doesn't give you variables with current day, 
@@ -1252,31 +1283,33 @@
 
 endif(BRLCAD_PRINT_VERBOSE_SUMMARY)
 
-# Set up rules to print a timestamp string during build
-SET(BUILD_DELTA_FILE "${CMAKE_BINARY_DIR}/CMakeTmp/BUILD_DELTA_FILE")
-SET(BUILD_DELTA_START "${CMAKE_BINARY_DIR}/CMakeTmp/BUILD_DELTA_START")
-SET(BUILD_DELTA_END "${CMAKE_BINARY_DIR}/CMakeTmp/BUILD_DELTA_END")
-configure_file(${BRLCAD_CMAKE_DIR}/test_srcs/builddelta_start.c.in
-       ${CMAKE_BINARY_DIR}/CMakeTmp/builddelta_start.c)
-configure_file(${BRLCAD_CMAKE_DIR}/test_srcs/builddelta_end.c.in
-       ${CMAKE_BINARY_DIR}/CMakeTmp/builddelta_end.c)
-ADD_EXECUTABLE(printtimestamp ${BRLCAD_CMAKE_DIR}/test_srcs/print_timestamp.c)
-ADD_EXECUTABLE(buildtimestart ${CMAKE_BINARY_DIR}/CMakeTmp/builddelta_start.c)
-ADD_EXECUTABLE(buildtimeend ${CMAKE_BINARY_DIR}/CMakeTmp/builddelta_end.c)
-ADD_CUSTOM_COMMAND(
-       OUTPUT ${BUILD_DELTA_FILE}
-       COMMAND buildtimestart
-       COMMENT ""
-       )
-ADD_CUSTOM_TARGET(timestamp ALL        
-       COMMAND printtimestamp
-       COMMAND ${CMAKE_COMMAND} -E rename ${BUILD_DELTA_FILE} 
${BUILD_DELTA_START}
-       DEPENDS ${BUILD_DELTA_FILE}
-       )
-ADD_CUSTOM_TARGET(buildtimedelta ALL   
-       COMMAND buildtimeend
-       COMMAND ${CMAKE_COMMAND} -E remove ${BUILD_DELTA_START}
-       )
+IF(NOT BRLCAD-IS_SUBBUILD)
+       # Set up rules to print a timestamp string during build
+       SET(BUILD_DELTA_FILE "${CMAKE_BINARY_DIR}/CMakeTmp/BUILD_DELTA_FILE")
+       SET(BUILD_DELTA_START "${CMAKE_BINARY_DIR}/CMakeTmp/BUILD_DELTA_START")
+       SET(BUILD_DELTA_END "${CMAKE_BINARY_DIR}/CMakeTmp/BUILD_DELTA_END")
+       configure_file(${BRLCAD_CMAKE_DIR}/test_srcs/builddelta_start.c.in
+               ${CMAKE_BINARY_DIR}/CMakeTmp/builddelta_start.c)
+       configure_file(${BRLCAD_CMAKE_DIR}/test_srcs/builddelta_end.c.in
+               ${CMAKE_BINARY_DIR}/CMakeTmp/builddelta_end.c)
+       ADD_EXECUTABLE(printtimestamp 
${BRLCAD_CMAKE_DIR}/test_srcs/print_timestamp.c)
+       ADD_EXECUTABLE(buildtimestart 
${CMAKE_BINARY_DIR}/CMakeTmp/builddelta_start.c)
+       ADD_EXECUTABLE(buildtimeend 
${CMAKE_BINARY_DIR}/CMakeTmp/builddelta_end.c)
+       ADD_CUSTOM_COMMAND(
+               OUTPUT ${BUILD_DELTA_FILE}
+               COMMAND buildtimestart
+               COMMENT ""
+               )
+       ADD_CUSTOM_TARGET(timestamp ALL 
+               COMMAND printtimestamp
+               COMMAND ${CMAKE_COMMAND} -E rename ${BUILD_DELTA_FILE} 
${BUILD_DELTA_START}
+               DEPENDS ${BUILD_DELTA_FILE}
+               )
+       ADD_CUSTOM_TARGET(buildtimedelta ALL    
+               COMMAND buildtimeend
+               COMMAND ${CMAKE_COMMAND} -E remove ${BUILD_DELTA_START}
+               )
+ENDIF(NOT BRLCAD-IS_SUBBUILD)
 
 # Some of the BRL-CAD targets need to depend on the local
 # tcl/tk targets if they are present
@@ -1296,36 +1329,37 @@
 # exec and external targets depend on timestamp (except for
 # the exec target printtimestamp, which is needed by timestamp)
 # Similarly, buildtimedelta needs to depend on every target.
-get_property(CMAKE_LIBRARY_TARGET_LIST GLOBAL PROPERTY 
CMAKE_LIBRARY_TARGET_LIST)
-get_property(CMAKE_EXEC_TARGET_LIST GLOBAL PROPERTY CMAKE_EXEC_TARGET_LIST)
-get_property(CMAKE_CUSTOM_TARGET_LIST GLOBAL PROPERTY CMAKE_CUSTOM_TARGET_LIST)
-MARK_AS_ADVANCED(CMAKE_LIBRARY_TARGET_LIST)
-MARK_AS_ADVANCED(CMAKE_EXEC_TARGET_LIST)
-MARK_AS_ADVANCED(CMAKE_CUSTOM_TARGET_LIST)
-LIST(REMOVE_DUPLICATES CMAKE_LIBRARY_TARGET_LIST)
-LIST(REMOVE_DUPLICATES CMAKE_EXEC_TARGET_LIST)
-LIST(REMOVE_DUPLICATES CMAKE_CUSTOM_TARGET_LIST)
-IF(CMAKE_EXTERNAL_TARGET_LIST)
-   LIST(REMOVE_DUPLICATES CMAKE_EXTERNAL_TARGET_LIST)
-ENDIF(CMAKE_EXTERNAL_TARGET_LIST)
-FOREACH(libtarget ${CMAKE_LIBRARY_TARGET_LIST})
-       get_target_property(target_location ${libtarget} LOCATION)
-       if(target_location)
-               ADD_DEPENDENCIES(${libtarget} timestamp)
-               ADD_DEPENDENCIES(buildtimedelta ${libtarget})
-       endif(target_location)
-ENDFOREACH(libtarget ${CMAKE_LIBRARY_TARGET_LIST})
-FOREACH(exectarget ${CMAKE_EXEC_TARGET_LIST})
-       get_target_property(target_location ${exectarget} LOCATION)
-       if(target_location)
-               IF(NOT ${exectarget} MATCHES "printtimestamp"
-                               AND NOT ${custtarget} MATCHES "buildtimestart")
-                       ADD_DEPENDENCIES(${exectarget} timestamp)
-               ENDIF()
-               ADD_DEPENDENCIES(buildtimedelta ${exectarget})
-       endif(target_location)
-ENDFOREACH(exectarget ${CMAKE_EXEC_TARGET_LIST})
-FOREACH(custtarget ${CMAKE_CUSTOM_TARGET_LIST})
+IF(NOT BRLCAD-IS_SUBBUILD)
+       get_property(CMAKE_LIBRARY_TARGET_LIST GLOBAL PROPERTY 
CMAKE_LIBRARY_TARGET_LIST)
+       get_property(CMAKE_EXEC_TARGET_LIST GLOBAL PROPERTY 
CMAKE_EXEC_TARGET_LIST)
+       get_property(CMAKE_CUSTOM_TARGET_LIST GLOBAL PROPERTY 
CMAKE_CUSTOM_TARGET_LIST)
+       MARK_AS_ADVANCED(CMAKE_LIBRARY_TARGET_LIST)
+       MARK_AS_ADVANCED(CMAKE_EXEC_TARGET_LIST)
+       MARK_AS_ADVANCED(CMAKE_CUSTOM_TARGET_LIST)
+       LIST(REMOVE_DUPLICATES CMAKE_LIBRARY_TARGET_LIST)
+       LIST(REMOVE_DUPLICATES CMAKE_EXEC_TARGET_LIST)
+       LIST(REMOVE_DUPLICATES CMAKE_CUSTOM_TARGET_LIST)
+       IF(CMAKE_EXTERNAL_TARGET_LIST)
+               LIST(REMOVE_DUPLICATES CMAKE_EXTERNAL_TARGET_LIST)
+       ENDIF(CMAKE_EXTERNAL_TARGET_LIST)
+       FOREACH(libtarget ${CMAKE_LIBRARY_TARGET_LIST})
+               get_target_property(target_location ${libtarget} LOCATION)
+               if(target_location)
+                       ADD_DEPENDENCIES(${libtarget} timestamp)
+                       ADD_DEPENDENCIES(buildtimedelta ${libtarget})
+               endif(target_location)
+       ENDFOREACH(libtarget ${CMAKE_LIBRARY_TARGET_LIST})
+       FOREACH(exectarget ${CMAKE_EXEC_TARGET_LIST})
+               get_target_property(target_location ${exectarget} LOCATION)
+               if(target_location)
+                       IF(NOT ${exectarget} MATCHES "printtimestamp"
+                                       AND NOT ${custtarget} MATCHES 
"buildtimestart")
+                               ADD_DEPENDENCIES(${exectarget} timestamp)
+                       ENDIF()
+                       ADD_DEPENDENCIES(buildtimedelta ${exectarget})
+               endif(target_location)
+       ENDFOREACH(exectarget ${CMAKE_EXEC_TARGET_LIST})
+       FOREACH(custtarget ${CMAKE_CUSTOM_TARGET_LIST})
                IF(NOT ${custtarget} MATCHES "timestamp")
                        ADD_DEPENDENCIES(${custtarget} timestamp)
                ENDIF()
@@ -1335,14 +1369,15 @@
                                ADD_DEPENDENCIES(buildtimedelta ${custtarget})
                        ENDIF(NOT not_in_all)
                ENDIF(NOT ${custtarget} MATCHES "buildtimedelta")
-ENDFOREACH(custtarget ${CMAKE_CUSTOM_TARGET_LIST})
-FOREACH(externaltarget ${CMAKE_EXTERNAL_TARGET_LIST})
-       get_target_property(target_confcmd ${externaltarget} 
_EP_CONFIGURE_COMMAND)
-       if(target_confcmd)
-               ADD_DEPENDENCIES(${externaltarget} timestamp)
-               ADD_DEPENDENCIES(buildtimedelta ${externaltarget})
-       endif(target_confcmd)
-ENDFOREACH(externaltarget ${CMAKE_EXTERNAL_TARGET_LIST})
+       ENDFOREACH(custtarget ${CMAKE_CUSTOM_TARGET_LIST})
+       FOREACH(externaltarget ${CMAKE_EXTERNAL_TARGET_LIST})
+               get_target_property(target_confcmd ${externaltarget} 
_EP_CONFIGURE_COMMAND)
+               if(target_confcmd)
+                       ADD_DEPENDENCIES(${externaltarget} timestamp)
+                       ADD_DEPENDENCIES(buildtimedelta ${externaltarget})
+               endif(target_confcmd)
+       ENDFOREACH(externaltarget ${CMAKE_EXTERNAL_TARGET_LIST})
+ENDIF(NOT BRLCAD-IS_SUBBUILD)
 
 # Generate the include/conf files
 
@@ -1408,64 +1443,67 @@
 INSTALL(FILES ${toplevel_DOCFILES} DESTINATION 
${${CMAKE_PROJECT_NAME}_INSTALL_DATA_DIR})
 
 
-# CPack is used to produce tgz files, RPMS, etc.
-SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "BRL-CAD - a powerful cross-platform 
open source solid modeling system")
-SET(CPACK_PACKAGE_VENDOR "BRL-CAD Development Team")
-SET(CPACK_RESOURCE_FILE_README ${CMAKE_CURRENT_SOURCE_DIR}/README)
-SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/COPYING)
-SET(CPACK_PACKAGE_VERSION_MAJOR ${BRLCAD_MAJOR_VERSION})
-SET(CPACK_PACKAGE_VERSION_MINOR ${BRLCAD_MINOR_VERSION})
-SET(CPACK_PACKAGE_VERSION_PATCH ${BRLCAD_PATCH_VERSION})
+# CPack is used to produce tgz files, RPMS, etc.  If SUBBUILD is enabled this
+# becomes the responsibility of the parent project.
+IF(NOT BRLCAD-IS_SUBBUILD)
+       SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "BRL-CAD - a powerful 
cross-platform open source solid modeling system")
+       SET(CPACK_PACKAGE_VENDOR "BRL-CAD Development Team")
+       SET(CPACK_RESOURCE_FILE_README ${CMAKE_CURRENT_SOURCE_DIR}/README)
+       SET(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/COPYING)
+       SET(CPACK_PACKAGE_VERSION_MAJOR ${BRLCAD_MAJOR_VERSION})
+       SET(CPACK_PACKAGE_VERSION_MINOR ${BRLCAD_MINOR_VERSION})
+       SET(CPACK_PACKAGE_VERSION_PATCH ${BRLCAD_PATCH_VERSION})
 
-IF(UNIX)
-       FOREACH(target ${CMAKE_EXEC_TARGET_LIST})
-               get_target_property(targetfile ${target} LOCATION)
-               IF(targetfile)
-                       SET(CPACK_STRIP_FILES 
"${CMAKE_STRIP_FILE_LIST};${targetfile}")
-               ENDIF(targetfile)
-       ENDFOREACH(target ${CMAKE_EXEC_TARGET_LIST})
-ENDIF(UNIX)
+       IF(UNIX)
+               FOREACH(target ${CMAKE_EXEC_TARGET_LIST})
+                       get_target_property(targetfile ${target} LOCATION)
+                       IF(targetfile)
+                               SET(CPACK_STRIP_FILES 
"${CMAKE_STRIP_FILE_LIST};${targetfile}")
+                       ENDIF(targetfile)
+               ENDFOREACH(target ${CMAKE_EXEC_TARGET_LIST})
+       ENDIF(UNIX)
 
-IF(UNIX)
-       SET(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
-ENDIF(UNIX)
+       IF(UNIX)
+               SET(CPACK_PACKAGING_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})
+       ENDIF(UNIX)
 
-IF(UNIX AND NOT APPLE)
-       SET(CPACK_GENERATOR TGZ TBZ2)
+       IF(UNIX AND NOT APPLE)
+               SET(CPACK_GENERATOR TGZ TBZ2)
 
-       find_program(RPMBUILD_EXEC rpmbuild)
-       IF(RPMBUILD_EXEC)
-               SET(CPACK_GENERATOR ${CPACK_GENERATOR} RPM)
-               SET(CPACK_RPM_PACKAGE_LICENSE "LGPL 2.1")
-               SET(CPACK_RPM_PACKAGE_GROUP "Applications/Engineering")
-       ENDIF(RPMBUILD_EXEC)
+               find_program(RPMBUILD_EXEC rpmbuild)
+               IF(RPMBUILD_EXEC)
+                       SET(CPACK_GENERATOR ${CPACK_GENERATOR} RPM)
+                       SET(CPACK_RPM_PACKAGE_LICENSE "LGPL 2.1")
+                       SET(CPACK_RPM_PACKAGE_GROUP "Applications/Engineering")
+               ENDIF(RPMBUILD_EXEC)
 
-       SET(CPACK_PACKAGE_FILE_NAME 
"BRL-CAD_${BRLCAD_MAJOR_VERSION}.${BRLCAD_MINOR_VERSION}.${BRLCAD_PATCH_VERSION}_${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_PROCESSOR}")
-ELSE(UNIX AND NOT APPLE)
-       SET(CPACK_PACKAGE_FILE_NAME 
"BRL-CAD_${BRLCAD_MAJOR_VERSION}.${BRLCAD_MINOR_VERSION}.${BRLCAD_PATCH_VERSION}_${CMAKE_SYSTEM_PROCESSOR}")
-ENDIF(UNIX AND NOT APPLE)
+               SET(CPACK_PACKAGE_FILE_NAME 
"BRL-CAD_${BRLCAD_MAJOR_VERSION}.${BRLCAD_MINOR_VERSION}.${BRLCAD_PATCH_VERSION}_${CMAKE_SYSTEM_NAME}_${CMAKE_SYSTEM_PROCESSOR}")
+       ELSE(UNIX AND NOT APPLE)
+               SET(CPACK_PACKAGE_FILE_NAME 
"BRL-CAD_${BRLCAD_MAJOR_VERSION}.${BRLCAD_MINOR_VERSION}.${BRLCAD_PATCH_VERSION}_${CMAKE_SYSTEM_PROCESSOR}")
+       ENDIF(UNIX AND NOT APPLE)
 
-IF(WIN32)
-   SET(CPACK_GENERATOR NSIS)
-   SET(CPACK_NSIS_PACKAGE_NAME "BRL-CAD")
-   SET(CPACK_SOURCE_DIR ${CMAKE_SOURCE_DIR})
-   SET(CPACK_DATA_DIR "share\\\\brlcad\\\\${BRLCAD_VERSION}")
-   # There is a bug in NSI that does not handle full unix paths properly. Make
-   # sure there is at least one set of four (4) backlasshes.
-   SET(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/misc/nsis\\\\brlcad.ico")
-   SET(CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}/misc/nsis\\\\uninstall.ico")
-   SET(CPACK_NSIS_DISPLAY_NAME "BRL-CAD")
-   SET(CPACK_NSIS_MODIFY_PATH ON)
-ENDIF(WIN32)
+       IF(WIN32)
+               SET(CPACK_GENERATOR NSIS)
+               SET(CPACK_NSIS_PACKAGE_NAME "BRL-CAD")
+               SET(CPACK_SOURCE_DIR ${CMAKE_SOURCE_DIR})
+               SET(CPACK_DATA_DIR "share\\\\brlcad\\\\${BRLCAD_VERSION}")
+               # There is a bug in NSI that does not handle full unix paths 
properly. Make
+               # sure there is at least one set of four (4) backlasshes.
+               SET(CPACK_NSIS_MUI_ICON 
"${CMAKE_SOURCE_DIR}/misc/nsis\\\\brlcad.ico")
+               SET(CPACK_NSIS_MUI_UNIICON 
"${CMAKE_SOURCE_DIR}/misc/nsis\\\\uninstall.ico")
+               SET(CPACK_NSIS_DISPLAY_NAME "BRL-CAD")
+               SET(CPACK_NSIS_MODIFY_PATH ON)
+       ENDIF(WIN32)
 
-SET(CPACK_SOURCE_GENERATOR TGZ TBZ2 ZIP)
-SET(CPACK_SOURCE_PACKAGE_FILE_NAME 
"brlcad-${BRLCAD_MAJOR_VERSION}.${BRLCAD_MINOR_VERSION}.${BRLCAD_PATCH_VERSION}")
-SET(CPACK_SOURCE_IGNORE_FILES "\\\\.svn/")
+       SET(CPACK_SOURCE_GENERATOR TGZ TBZ2 ZIP)
+       SET(CPACK_SOURCE_PACKAGE_FILE_NAME 
"brlcad-${BRLCAD_MAJOR_VERSION}.${BRLCAD_MINOR_VERSION}.${BRLCAD_PATCH_VERSION}")
+       SET(CPACK_SOURCE_IGNORE_FILES "\\\\.svn/")
 
-CONFIGURE_FILE("${BRLCAD_CMAKE_DIR}/BRLCAD_CPackOptions.cmake.in"      
"${CMAKE_BINARY_DIR}/BRLCAD_CPackOptions.cmake" @ONLY)
-SET(CPACK_PROJECT_CONFIG_FILE "${CMAKE_BINARY_DIR}/BRLCAD_CPackOptions.cmake")
+       CONFIGURE_FILE("${BRLCAD_CMAKE_DIR}/BRLCAD_CPackOptions.cmake.in"       
"${CMAKE_BINARY_DIR}/BRLCAD_CPackOptions.cmake" @ONLY)
+       SET(CPACK_PROJECT_CONFIG_FILE 
"${CMAKE_BINARY_DIR}/BRLCAD_CPackOptions.cmake")
 
-INCLUDE(CPack)
+       INCLUDE(CPack)
+ENDIF(NOT BRLCAD-IS_SUBBUILD)
 
 # Some files to ignore for distcheck
 SET(toplevel_ignore_files 
@@ -1505,43 +1543,45 @@
 # 8.  Run benchmark from the installed directory.
 # 9.  Clean up.
 #
-get_property(distcheck_list GLOBAL PROPERTY DISTCHECK_DIRS)
-FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/distchecklist.cmake 
${distcheck_list})
-configure_file(${BRLCAD_CMAKE_DIR}/distcheck_buildsys.cmake.in
-       ${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/distcheck_buildsys.cmake @ONLY)
-configure_file(${BRLCAD_CMAKE_DIR}/svncheck.cmake.in
-       ${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/svncheck.cmake @ONLY)
-configure_file(${BRLCAD_CMAKE_DIR}/distcheck_success_message.cmake.in
-       ${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/distcheck_success_message.cmake 
@ONLY)
-ADD_CUSTOM_TARGET(distcheck
-       COMMAND ${CMAKE_COMMAND} -P 
${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/distcheck_buildsys.cmake
-       COMMAND ${CMAKE_COMMAND} -P 
${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/svncheck.cmake
-       COMMAND cpack --config 
${CMAKE_CURRENT_BINARY_DIR}/CPackSourceConfig.cmake
-       COMMAND ${CMAKE_COMMAND} -E tar xvzf 
${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.gz
-       COMMAND ${CMAKE_COMMAND} -E make_directory 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build
-       COMMAND ${CMAKE_COMMAND} -E make_directory 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-install
-       COMMAND ${CMAKE_COMMAND} -E chdir 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build      ${CMAKE_COMMAND} 
../${CPACK_SOURCE_PACKAGE_FILE_NAME}   -DBRLCAD-ENABLE_ALL_LOCAL_LIBS=ON 
-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/_${CPACK_SOURCE_PACKAGE_FILE_NAME}-install
-       COMMAND ${CMAKE_COMMAND} --build 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build       -- -j3
-       COMMAND ${CMAKE_COMMAND} --build 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build --target regress
-       COMMAND TIMEFRAME=1 ${CMAKE_COMMAND} --build    
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build --target benchmark
-       COMMAND ${CMAKE_COMMAND} --build 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build --target install
-       COMMAND ${CMAKE_COMMAND} -E remove_directory    
${CPACK_SOURCE_PACKAGE_FILE_NAME}
-       COMMAND ${CMAKE_COMMAND} -E remove_directory 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build
-       COMMAND TIMEFRAME=1 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-install/bin/benchmark    run
-       COMMAND _${CPACK_SOURCE_PACKAGE_FILE_NAME}-install/bin/benchmark        
clean
-       COMMAND ${CMAKE_COMMAND} -E remove summary
-       COMMAND ${CMAKE_COMMAND} -E remove run-*.log
-       COMMAND ${CMAKE_COMMAND} -E remove_directory    
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-install
-       COMMAND ${CMAKE_COMMAND} -P 
${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/distcheck_success_message.cmake
-       )
-ADD_CUSTOM_TARGET(distclean
-       COMMAND ${CMAKE_COMMAND} -E remove_directory    
${CPACK_SOURCE_PACKAGE_FILE_NAME}
-       COMMAND ${CMAKE_COMMAND} -E remove_directory 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build
-       COMMAND ${CMAKE_COMMAND} -E remove_directory    
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-install
-       COMMAND ${CMAKE_COMMAND} -E remove summary
-       COMMAND ${CMAKE_COMMAND} -E remove run-*.log
-       COMMAND ${CMAKE_COMMAND} -E remove ${CPACK_SOURCE_PACKAGE_FILE_NAME}.*
-       )       
+IF(NOT BRLCAD-IS_SUBBUILD)
+       get_property(distcheck_list GLOBAL PROPERTY DISTCHECK_DIRS)
+       FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/distchecklist.cmake 
${distcheck_list})
+       configure_file(${BRLCAD_CMAKE_DIR}/distcheck_buildsys.cmake.in
+               ${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/distcheck_buildsys.cmake 
@ONLY)
+       configure_file(${BRLCAD_CMAKE_DIR}/svncheck.cmake.in
+               ${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/svncheck.cmake @ONLY)
+       configure_file(${BRLCAD_CMAKE_DIR}/distcheck_success_message.cmake.in
+               
${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/distcheck_success_message.cmake @ONLY)
+       ADD_CUSTOM_TARGET(distcheck
+               COMMAND ${CMAKE_COMMAND} -P 
${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/distcheck_buildsys.cmake
+               COMMAND ${CMAKE_COMMAND} -P 
${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/svncheck.cmake
+               COMMAND cpack --config 
${CMAKE_CURRENT_BINARY_DIR}/CPackSourceConfig.cmake
+               COMMAND ${CMAKE_COMMAND} -E tar xvzf 
${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.gz
+               COMMAND ${CMAKE_COMMAND} -E make_directory 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build
+               COMMAND ${CMAKE_COMMAND} -E make_directory 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-install
+               COMMAND ${CMAKE_COMMAND} -E chdir 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build      ${CMAKE_COMMAND} 
../${CPACK_SOURCE_PACKAGE_FILE_NAME}   -DBRLCAD-ENABLE_ALL_LOCAL_LIBS=ON 
-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/_${CPACK_SOURCE_PACKAGE_FILE_NAME}-install
+               COMMAND ${CMAKE_COMMAND} --build 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build       -- -j3
+               COMMAND ${CMAKE_COMMAND} --build 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build --target regress
+               COMMAND TIMEFRAME=1 ${CMAKE_COMMAND} --build    
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build --target benchmark
+               COMMAND ${CMAKE_COMMAND} --build 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build --target install
+               COMMAND ${CMAKE_COMMAND} -E remove_directory    
${CPACK_SOURCE_PACKAGE_FILE_NAME}
+               COMMAND ${CMAKE_COMMAND} -E remove_directory 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build
+               COMMAND TIMEFRAME=1 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-install/bin/benchmark    run
+               COMMAND 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-install/bin/benchmark        clean
+               COMMAND ${CMAKE_COMMAND} -E remove summary
+               COMMAND ${CMAKE_COMMAND} -E remove run-*.log
+               COMMAND ${CMAKE_COMMAND} -E remove_directory    
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-install
+               COMMAND ${CMAKE_COMMAND} -P 
${CMAKE_CURRENT_BINARY_DIR}/CMakeTmp/distcheck_success_message.cmake
+               )
+       ADD_CUSTOM_TARGET(distclean
+               COMMAND ${CMAKE_COMMAND} -E remove_directory    
${CPACK_SOURCE_PACKAGE_FILE_NAME}
+               COMMAND ${CMAKE_COMMAND} -E remove_directory 
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-build
+               COMMAND ${CMAKE_COMMAND} -E remove_directory    
_${CPACK_SOURCE_PACKAGE_FILE_NAME}-install
+               COMMAND ${CMAKE_COMMAND} -E remove summary
+               COMMAND ${CMAKE_COMMAND} -E remove run-*.log
+               COMMAND ${CMAKE_COMMAND} -E remove 
${CPACK_SOURCE_PACKAGE_FILE_NAME}.*
+               )       
+ENDIF(NOT BRLCAD-IS_SUBBUILD)
 
 
 # Mark various miscellaneous things as advanced that we don't want in our
@@ -1553,18 +1593,20 @@
 MARK_AS_ADVANCED(CMAKE_BACKWARDS_COMPATIBILITY)
 
 #Done with everything else - do the configure time delta
-SET(DELTA_END "${CMAKE_BINARY_DIR}/CMakeTmp/DELTA_END")
-configure_file(${BRLCAD_CMAKE_DIR}/test_srcs/timedelta_end.c.in 
${CMAKE_BINARY_DIR}/CMakeTmp/timedelta_end.c)
-TRY_RUN(TIME_RESULT TIME_COMPILED 
-       ${CMAKE_BINARY_DIR}/CMakeTmp
-       ${CMAKE_BINARY_DIR}/CMakeTmp/timedelta_end.c
-       OUTPUT_VARIABLE COMPILEMESSAGES)
-FILE(READ ${DELTA_END} CONFIG_TIME_MSG)
-STRING(STRIP ${CONFIG_TIME_MSG} CONFIG_TIME_MSG)
-SET(CONFIG_TIME_MSG_LABEL "Elapsed configuration time")
-STRING(LENGTH ${CONFIG_TIME_MSG_LABEL} CURRENTLENGTH)
-WHILE(${SETTINGLABELLENGTH} GREATER ${CURRENTLENGTH})
-       SET(CONFIG_TIME_MSG_LABEL "${CONFIG_TIME_MSG_LABEL}.")
+IF(NOT BRLCAD-IS_SUBBUILD)
+       SET(DELTA_END "${CMAKE_BINARY_DIR}/CMakeTmp/DELTA_END")
+       configure_file(${BRLCAD_CMAKE_DIR}/test_srcs/timedelta_end.c.in 
${CMAKE_BINARY_DIR}/CMakeTmp/timedelta_end.c)
+       TRY_RUN(TIME_RESULT TIME_COMPILED 
+               ${CMAKE_BINARY_DIR}/CMakeTmp
+               ${CMAKE_BINARY_DIR}/CMakeTmp/timedelta_end.c
+               OUTPUT_VARIABLE COMPILEMESSAGES)
+       FILE(READ ${DELTA_END} CONFIG_TIME_MSG)
+       STRING(STRIP ${CONFIG_TIME_MSG} CONFIG_TIME_MSG)
+       SET(CONFIG_TIME_MSG_LABEL "Elapsed configuration time")
        STRING(LENGTH ${CONFIG_TIME_MSG_LABEL} CURRENTLENGTH)
-ENDWHILE(${SETTINGLABELLENGTH} GREATER ${CURRENTLENGTH})
-MESSAGE("${CONFIG_TIME_MSG_LABEL}..: ${CONFIG_TIME_MSG}")
+       WHILE(${SETTINGLABELLENGTH} GREATER ${CURRENTLENGTH})
+               SET(CONFIG_TIME_MSG_LABEL "${CONFIG_TIME_MSG_LABEL}.")
+               STRING(LENGTH ${CONFIG_TIME_MSG_LABEL} CURRENTLENGTH)
+       ENDWHILE(${SETTINGLABELLENGTH} GREATER ${CURRENTLENGTH})
+       MESSAGE("${CONFIG_TIME_MSG_LABEL}..: ${CONFIG_TIME_MSG}")
+ENDIF(NOT BRLCAD-IS_SUBBUILD)


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

------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger.
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Discover what all the cheering's about.
Get your free trial download today. 
http://p.sf.net/sfu/quest-dev2dev2 
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to