Revision: 75598
          http://sourceforge.net/p/brlcad/code/75598
Author:   starseeker
Date:     2020-04-23 23:35:43 +0000 (Thu, 23 Apr 2020)
Log Message:
-----------
Merge changes from trunk through r75597

Modified Paths:
--------------
    brlcad/branches/dm-fb-merge/CMakeLists.txt
    brlcad/branches/dm-fb-merge/INSTALL
    brlcad/branches/dm-fb-merge/NEWS
    brlcad/branches/dm-fb-merge/TODO
    brlcad/branches/dm-fb-merge/configure
    brlcad/branches/dm-fb-merge/doc/CMakeLists.txt
    brlcad/branches/dm-fb-merge/misc/CMake/BRLCAD_Targets.cmake
    brlcad/branches/dm-fb-merge/misc/CMake/CMakeLists.txt
    brlcad/branches/dm-fb-merge/regress/CMakeLists.txt
    brlcad/branches/dm-fb-merge/regress/licenses/licenses_check.cpp
    brlcad/branches/dm-fb-merge/src/libbrep/PullbackCurve.cpp
    brlcad/branches/dm-fb-merge/src/libbu/CMakeLists.txt
    brlcad/branches/dm-fb-merge/src/libbu/semaphore.c
    brlcad/branches/dm-fb-merge/src/libged/draw.c
    brlcad/branches/dm-fb-merge/src/libged/vdraw.c
    brlcad/branches/dm-fb-merge/src/librt/cache.c
    brlcad/branches/dm-fb-merge/src/mged/dodraw.c
    brlcad/branches/dm-fb-merge/src/other/CMakeLists.txt
    brlcad/branches/dm-fb-merge/src/other/itcl3/CMakeLists.txt
    brlcad/branches/dm-fb-merge/src/other/itk3/CMakeLists.txt
    brlcad/branches/dm-fb-merge/src/other/tcl/CMakeLists.txt
    brlcad/branches/dm-fb-merge/src/other/tk/CMakeLists.txt
    brlcad/branches/dm-fb-merge/src/other/tk.dist
    brlcad/branches/dm-fb-merge/src/other/tkhtml/CMakeLists.txt
    brlcad/branches/dm-fb-merge/src/other/tkhtml.dist
    brlcad/branches/dm-fb-merge/src/other/tktable/CMakeLists.txt
    brlcad/branches/dm-fb-merge/src/other/tktable.dist
    brlcad/branches/dm-fb-merge/src/util/bw-png.c

Added Paths:
-----------
    brlcad/branches/dm-fb-merge/doc/bsd_semaphore_bug.txt
    brlcad/branches/dm-fb-merge/misc/CMake/FindTCL.cmake

Removed Paths:
-------------
    brlcad/branches/dm-fb-merge/misc/CMake/FindFontconfig.cmake
    brlcad/branches/dm-fb-merge/misc/CMake/Fink_MacPorts.cmake
    brlcad/branches/dm-fb-merge/src/other/fontconfig/
    brlcad/branches/dm-fb-merge/src/other/fontconfig.dist
    brlcad/branches/dm-fb-merge/src/other/freetype/
    brlcad/branches/dm-fb-merge/src/other/freetype.dist
    brlcad/branches/dm-fb-merge/src/other/itcl/
    brlcad/branches/dm-fb-merge/src/other/itcl.dist
    brlcad/branches/dm-fb-merge/src/other/itk/
    brlcad/branches/dm-fb-merge/src/other/itk.dist
    brlcad/branches/dm-fb-merge/src/other/tk/CMake/
    brlcad/branches/dm-fb-merge/src/other/tkhtml/CMake/
    brlcad/branches/dm-fb-merge/src/other/tktable/CMake/

Property Changed:
----------------
    brlcad/branches/dm-fb-merge/
    brlcad/branches/dm-fb-merge/NEWS
    brlcad/branches/dm-fb-merge/doc/
    brlcad/branches/dm-fb-merge/regress/
    brlcad/branches/dm-fb-merge/src/libbu/
    brlcad/branches/dm-fb-merge/src/other/

Index: brlcad/branches/dm-fb-merge
===================================================================
--- brlcad/branches/dm-fb-merge 2020-04-23 23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge 2020-04-23 23:35:43 UTC (rev 75598)

Property changes on: brlcad/branches/dm-fb-merge
___________________________________________________________________
Modified: svn:mergeinfo
## -7,4 +7,4 ##
 /brlcad/branches/osg:62110-62113
 /brlcad/branches/prep-cache:68236-68933
 /brlcad/branches/tcltk86:68300-75257
-/brlcad/trunk:75440-75511
\ No newline at end of property
+/brlcad/trunk:75440-75597
\ No newline at end of property
Modified: brlcad/branches/dm-fb-merge/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/CMakeLists.txt  2020-04-23 23:26:14 UTC (rev 
75597)
+++ brlcad/branches/dm-fb-merge/CMakeLists.txt  2020-04-23 23:35:43 UTC (rev 
75598)
@@ -754,7 +754,6 @@
   set(CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} /usr/local)
   if (IS_DIRECTORY /usr/local/include)
     set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} /usr/local/include)
-    include_directories(AFTER SYSTEM /usr/local/include)
   endif (IS_DIRECTORY /usr/local/include)
 endif (IS_DIRECTORY /usr/local)
 
@@ -1161,13 +1160,6 @@
 endif(NOT CMAKE_BUILD_TYPE)
 cmake_dependent_option(BUILD_STATIC_LIBS "Build static libraries" ON 
"CMAKE_CONFIGURATION_TYPES OR NOT ${CBT} STREQUAL Debug" OFF)
 
-# On Mac OS X, it is common to have third party package managers
-# present for easy software installation (currently we're aware of
-# Fink and MacPorts).  This can seriously complicate find_* results,
-# so provide an option to specify whether or which of the third
-# party setup to use.
-include(Fink_MacPorts)
-
 # Turn off the brlcad.dll build.
 # It's an expert's setting at the moment.
 option(BRLCAD_ENABLE_BRLCAD_LIBRARY "Build the brlcad.dll" OFF)
@@ -1316,17 +1308,19 @@
 mark_as_advanced(BRLCAD_ENABLE_GDAL)
 
 # Enable features requiring Qt
-# TODO - try COMPONENTS search: 
https://blog.kitware.com/cmake-finding-qt5-the-right-way/
-find_package(Qt5Widgets QUIET)
 option(BRLCAD_ENABLE_QT "Enable features requiring Qt" OFF)
 mark_as_advanced(BRLCAD_ENABLE_QT)
+if (BRLCAD_ENABLE_QT)
+  # TODO - try COMPONENTS search: 
https://blog.kitware.com/cmake-finding-qt5-the-right-way/
+  find_package(Qt5Widgets QUIET)
+  if(NOT Qt5Widgets_FOUND AND BRLCAD_ENABLE_QT)
+    message("QT interface requested, but QT5 is not found - disabling")
+    set(BRLCAD_ENABLE_QT OFF)
+  endif(NOT Qt5Widgets_FOUND AND BRLCAD_ENABLE_QT)
+endif (BRLCAD_ENABLE_QT)
+mark_as_advanced(Qt5Widgets_DIR)
 mark_as_advanced(Qt5Core_DIR)
 mark_as_advanced(Qt5Gui_DIR)
-if(NOT Qt5Widgets_FOUND AND BRLCAD_ENABLE_QT)
-  message("QT interface requested, but QT5 is not found - disabling")
-  set(BRLCAD_ENABLE_QT OFF)
-endif(NOT Qt5Widgets_FOUND AND BRLCAD_ENABLE_QT)
-mark_as_advanced(Qt5Widgets_DIR)
 
 # Enable features requiring OpenSceneGraph
 option(BRLCAD_ENABLE_OSG "Enable features requiring OpenSceneGraph" OFF)

Modified: brlcad/branches/dm-fb-merge/INSTALL
===================================================================
--- brlcad/branches/dm-fb-merge/INSTALL 2020-04-23 23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/INSTALL 2020-04-23 23:35:43 UTC (rev 75598)
@@ -534,26 +534,6 @@
 Aliases:  ENABLE_LZ4
 
 
---- BRLCAD_FREETYPE ---
-
-Option for enabling and disabling compilation of the FreeType
-libraries provided with BRL-CAD's source code.  Default is AUTO, responsive to
-the toplevel BRLCAD_BUNDLED_LIBS option and testing first for a system
-version if BRLCAD_BUNDLED_LIBS is also AUTO.
-
-Aliases:  ENABLE_FREETYPE
-
-
---- BRLCAD_Fontconfig ---
-
-Option for enabling and disabling compilation of the Fontconfig
-library provided with BRL-CAD's source code.  Default is AUTO, responsive to
-the toplevel BRLCAD_BUNDLED_LIBS option and testing first for a system
-version if BRLCAD_BUNDLED_LIBS is also AUTO.
-
-Aliases:  ENABLE_FONTCONFIG
-
-
 --- BRLCAD_NETPBM ---
 
 Option for enabling and disabling compilation of the netpbm library

Modified: brlcad/branches/dm-fb-merge/NEWS
===================================================================
--- brlcad/branches/dm-fb-merge/NEWS    2020-04-23 23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/NEWS    2020-04-23 23:35:43 UTC (rev 75598)
@@ -14,6 +14,7 @@
 --- 20XX-XX-XX  Release 7.XX.X                                     ---
 ----------------------------------------------------------------------
 
+* fixed bw-png writing corrupted png files on Windows - Sean Morrison
 * fixed startup dimensions of overlap checker window - Nick Reed
 * fixed rtedge line drawing color when using -W flag - Cliff Yapp
 * added -F option to lint cmd to test specifc solid types - Cliff Yapp


Property changes on: brlcad/branches/dm-fb-merge/NEWS
___________________________________________________________________
Modified: svn:mergeinfo
## -6,4 +6,5 ##
 /brlcad/branches/opencl/NEWS:65867-66137
 /brlcad/branches/osg/NEWS:62110-62113
 /brlcad/branches/prep-cache/NEWS:68236-68933
-/brlcad/branches/tcltk86/NEWS:68300-75257
\ No newline at end of property
+/brlcad/branches/tcltk86/NEWS:68300-75257
+/brlcad/trunk/NEWS:75512-75597
\ No newline at end of property
Modified: brlcad/branches/dm-fb-merge/TODO
===================================================================
--- brlcad/branches/dm-fb-merge/TODO    2020-04-23 23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/TODO    2020-04-23 23:35:43 UTC (rev 75598)
@@ -146,6 +146,10 @@
 THESE ARE UNSCHEDULED BACKLOG TASKS
 -----------------------------------
 
+* audit/fix all of the src/util and src/fb utilities to ensure they
+  set binary mode (setmode O_BINARY) when writing out files.  at quick
+  glance, there are many (about 50) that still do not.
+
 * the osgl libdm backend has what appears to be an off-by-one-pixel
   error in the x and y directions with respect to mouse placement.
   Using kmag, can see tha putting the mouse cursor over the center

Modified: brlcad/branches/dm-fb-merge/configure
===================================================================
--- brlcad/branches/dm-fb-merge/configure       2020-04-23 23:26:14 UTC (rev 
75597)
+++ brlcad/branches/dm-fb-merge/configure       2020-04-23 23:35:43 UTC (rev 
75598)
@@ -126,14 +126,6 @@
                                   shift;;
      --disable-lz4)                options="$options -DBRLCAD_LZ4=SYSTEM";
                                   shift;;
-     --enable-freetype)                options="$options 
-DBRLCAD_FREETYPE=BUNDLED";
-                                  shift;;
-     --disable-freetype)                options="$options 
-DBRLCAD_FREETYPE=SYSTEM";
-                                  shift;;
-     --enable-fontconfig)                options="$options 
-DBRLCAD_Fontconfig=BUNDLED";
-                                  shift;;
-     --disable-fontconfig)                options="$options 
-DBRLCAD_Fontconfig=SYSTEM";
-                                  shift;;
      --enable-netpbm)                options="$options 
-DBRLCAD_NETPBM=BUNDLED";
                                   shift;;
      --disable-netpbm)                options="$options 
-DBRLCAD_NETPBM=SYSTEM";

Index: brlcad/branches/dm-fb-merge/doc
===================================================================
--- brlcad/branches/dm-fb-merge/doc     2020-04-23 23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/doc     2020-04-23 23:35:43 UTC (rev 75598)

Property changes on: brlcad/branches/dm-fb-merge/doc
___________________________________________________________________
Modified: svn:mergeinfo
## -6,4 +6,5 ##
 /brlcad/branches/opencl/doc:65867-66137
 /brlcad/branches/osg/doc:62110-62113
 /brlcad/branches/prep-cache/doc:68236-68933
-/brlcad/branches/tcltk86/doc:68300-75257
\ No newline at end of property
+/brlcad/branches/tcltk86/doc:68300-75257
+/brlcad/trunk/doc:75512-75597
\ No newline at end of property
Modified: brlcad/branches/dm-fb-merge/doc/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/doc/CMakeLists.txt      2020-04-23 23:26:14 UTC 
(rev 75597)
+++ brlcad/branches/dm-fb-merge/doc/CMakeLists.txt      2020-04-23 23:35:43 UTC 
(rev 75598)
@@ -228,6 +228,7 @@
   README.OSCON-2014
   STARTERS
   STRATEGY
+  bsd_semaphore_bug.txt
   cmake_vars.txt
   csv_to_comgeom.txt
   implicit_constraints.txt

Copied: brlcad/branches/dm-fb-merge/doc/bsd_semaphore_bug.txt (from rev 75597, 
brlcad/trunk/doc/bsd_semaphore_bug.txt)
===================================================================
--- brlcad/branches/dm-fb-merge/doc/bsd_semaphore_bug.txt                       
        (rev 0)
+++ brlcad/branches/dm-fb-merge/doc/bsd_semaphore_bug.txt       2020-04-23 
23:35:43 UTC (rev 75598)
@@ -0,0 +1,161 @@
+The below backtraces were able to catch the infamous "fatal semaphore
+acquisition failure" bug on BSD.  This is a bit tricky to catch in the act, so
+the below backtraces are added here to serve as references.  They document both
+the gdb backtrace and the trick used to successfully attach to it it (a long
+sleep call compiled in to the key failure area prior to the run, allowing us to
+get a debugger on the program before it actually vanishes.)  This case is most
+reliably seen when running make regress in parallel mode - it doesn't usually
+trigger when running individual programs interactively, although those do
+fail occasionally.
+
+So far this has only been observed on FreeBSD.
+
+Adjustment of the bombing message code reveals that the fatal error is
+EPERM - The current thread does not own the mutex.
+
+Maybe relevant (not sure if we have any code that might be using automatic 
variables after thread_exit(), but the symptoms sound similar...)  Only other 
candidate I'm seeing is memory corruption of some sort...
+https://stackoverflow.com/a/7612070
+
+
+The first failure is from a GQA run:
+
+Architecture set to: x86_64--freebsd11.2.
+(lldb) bt
+* thread #1, name = 'gqa'
+  * frame #0: 0x0000000817433f5c libthr.so.3`_umtx_op_err + 12
+    frame #1: 0x000000081743056a 
libthr.so.3`join_common(pthread=0x000000081ae18800, 
thread_return=0x0000000000000000, abstime=0x0000000000000000) at thr_join.c:125
+    frame #2: 0x0000000814b9b841 
libbu.so.20`bu_parallel(func=(libged.so.20`plane_worker at gqa.c:1223), 
ncpu=16, arg=0x00007fffffffe660) at parallel.c:722
+    frame #3: 0x0000000800af161c libged.so.20`ged_gqa(gedp=0x000000081ae8d000, 
argc=11, argv=0x000000081ae1c300) at gqa.c:2449
+    frame #4: 0x00000000004010c3 gqa`main(argc=12, argv=0x00007fffffffe828) at 
gqa.c:102
+    frame #5: 0x0000000000400c05 gqa`_start + 149
+(lldb) thread list
+Process 56371 stopped
+* thread #1: tid = 101853, 0x0000000817433f5c libthr.so.3`_umtx_op_err + 12, 
name = 'gqa'
+  thread #2: tid = 100989, 0x000000081792e6da libc.so.7`__sys_nanosleep + 10, 
name = 'gqa'
+(lldb) thread select 2
+* thread #2, name = 'gqa'
+    frame #0: 0x000000081792e6da libc.so.7`__sys_nanosleep + 10
+libc.so.7`__sys_nanosleep:
+->  0x81792e6da <+10>: jb     0x8179a05a4               ; .cerror
+    0x81792e6e0 <+16>: retq   
+    0x81792e6e1:       int3   
+    0x81792e6e2:       int3   
+(lldb) bt
+* thread #2, name = 'gqa'
+  * frame #0: 0x000000081792e6da libc.so.7`__sys_nanosleep + 10
+    frame #1: 0x0000000817428a2c 
libthr.so.3`__thr_nanosleep(time_to_sleep=<unavailable>, 
time_remaining=<unavailable>) at thr_syscalls.c:287
+    frame #2: 0x00000008178b19eb libc.so.7`__sleep(seconds=60000) at sleep.c:62
+    frame #3: 0x0000000814bb218c libbu.so.20`bu_semaphore_release(i=20) at 
semaphore.c:272
+    frame #4: 0x0000000800aebc31 libged.so.20`hit(ap=0x00007fffdd7f9dd8, 
PartHeadp=0x00007fffdd7f97e8, segs=0x00007fffdd7f98e8) at gqa.c:1093
+    frame #5: 0x0000000804062b12 
librt.so.20`rt_shootray(ap=0x00007fffdd7f9dd8) at shoot.c:1273
+    frame #6: 0x0000000800aec6cf libged.so.20`plane_worker(cpu=5, 
ptr=0x00007fffffffe660) at gqa.c:1280
+    frame #7: 0x0000000814b9bdcb 
libbu.so.20`parallel_interface_arg(utd=0x000000081afedc80) at parallel.c:428
+    frame #8: 0x0000000817426026 
libthr.so.3`thread_start(curthread=0x000000081ae18800) at thr_create.c:290
+(lldb) up
+frame #1: 0x0000000817428a2c 
libthr.so.3`__thr_nanosleep(time_to_sleep=<unavailable>, 
time_remaining=<unavailable>) at thr_syscalls.c:287
+   284         
+   285                 curthread = _get_curthread();
+   286                 _thr_cancel_enter(curthread);
+-> 287                 ret = __sys_nanosleep(time_to_sleep, time_remaining);
+   288                 _thr_cancel_leave(curthread, 1);
+   289         
+   290                 return (ret);
+(lldb) up
+frame #2: 0x00000008178b19eb libc.so.7`__sleep(seconds=60000) at sleep.c:62
+   59          
+   60                  time_to_sleep.tv_sec = seconds;
+   61                  time_to_sleep.tv_nsec = 0;
+-> 62                  if (((int (*)(const struct timespec *, struct timespec 
*))
+   63                      __libc_interposing[INTERPOS_nanosleep])(
+   64                      &time_to_sleep, &time_remaining) != -1)
+   65                          return (0);
+(lldb) up
+frame #3: 0x0000000814bb218c libbu.so.20`bu_semaphore_release(i=20) at 
semaphore.c:272
+   269         #  if defined(HAVE_PTHREAD_H)
+   270             if (pthread_mutex_unlock(&bu_semaphores[i].mu)) {
+   271                 fprintf(stderr, "bu_semaphore_acquire(): 
pthread_mutex_unlock() failed on [%d]\n", i);
+-> 272                 sleep(60000);
+   273                 bu_bomb("fatal semaphore acquisition failure");
+   274             }
+   275         #  endif
+
+
+The second is from an rt raytrace of a bot:
+
+bin/rt".
+Architecture set to: x86_64--freebsd11.2.
+(lldb) bt
+* thread #1, name = 'rt'
+  * frame #0: 0x0000000800861f5c libthr.so.3`_umtx_op_err + 12
+    frame #1: 0x000000080085e56a 
libthr.so.3`join_common(pthread=0x000000081aa3a400, 
thread_return=0x0000000000000000, abstime=0x0000000000000000) at thr_join.c:125
+    frame #2: 0x000000081455d841 
libbu.so.20`bu_parallel(func=(librt.so.20`_db_walk_dispatcher at 
db_tree.c:1955), ncpu=16, arg=0x00007fffffffd700) at parallel.c:722
+    frame #3: 0x00000008032b0f8e 
librt.so.20`db_walk_tree(dbip=0x000000081a861000, argc=1, 
argv=0x00007fffffffe888, ncpu=16, init_state=0x00007fffffffd988, 
reg_start_func=(librt.so.20`_rt_gettree_region_start at tree.c:109), 
reg_end_func=(librt.so.20`_rt_gettree_region_end at tree.c:146), 
leaf_func=(librt.so.20`_rt_gettree_leaf at tree.c:444), 
client_data=0x00007fffffffd978) at db_tree.c:2199
+    frame #4: 0x00000008036661d7 
librt.so.20`rt_gettrees_muves(rtip=0x000000081a8a7000, 
attrs=0x0000000000000000, argc=1, argv=0x00007fffffffe888, ncpus=16) at 
tree.c:783
+    frame #5: 0x0000000803669021 
librt.so.20`rt_gettrees_and_attrs(rtip=0x000000081a8a7000, 
attrs=0x0000000000000000, argc=1, argv=0x00007fffffffe888, ncpus=16) at 
tree.c:887
+    frame #6: 0x0000000803669142 
librt.so.20`rt_gettrees(rtip=0x000000081a8a7000, argc=1, 
argv=0x00007fffffffe888, ncpus=16) at tree.c:914
+    frame #7: 0x0000000000406a00 rt`def_tree(rtip=0x000000081a8a7000) at 
do.c:575
+    frame #8: 0x000000000040bd52 rt`main(argc=6, argv=0x00007fffffffe860) at 
main.c:495
+    frame #9: 0x00000000004062e5 rt`_start + 149
+(lldb) thread list
+Process 7726 stopped
+* thread #1: tid = 100805, 0x0000000800861f5c libthr.so.3`_umtx_op_err + 12, 
name = 'rt'
+  thread #2: tid = 101797, 0x0000000816ec76da libc.so.7`__sys_nanosleep + 10, 
name = 'rt'
+(lldb) thread select 2
+* thread #2, name = 'rt'
+    frame #0: 0x0000000816ec76da libc.so.7`__sys_nanosleep + 10
+libc.so.7`__sys_nanosleep:
+->  0x816ec76da <+10>: jb     0x816f395a4               ; .cerror
+    0x816ec76e0 <+16>: retq   
+    0x816ec76e1:       int3   
+    0x816ec76e2:       int3   
+(lldb) bt
+* thread #2, name = 'rt'
+  * frame #0: 0x0000000816ec76da libc.so.7`__sys_nanosleep + 10
+    frame #1: 0x0000000800856a2c 
libthr.so.3`__thr_nanosleep(time_to_sleep=<unavailable>, 
time_remaining=<unavailable>) at thr_syscalls.c:287
+    frame #2: 0x0000000816e4a9eb libc.so.7`__sleep(seconds=60000) at sleep.c:62
+    frame #3: 0x000000081457418c libbu.so.20`bu_semaphore_release(i=12) at 
semaphore.c:272
+    frame #4: 0x000000080366a193 
librt.so.20`_rt_find_identical_solid(mat=0x0000000000000000, 
dp=0x000000081a8a2e98, rtip=0x000000081a8a7000) at tree.c:425
+    frame #5: 0x00000008036681e3 
librt.so.20`_rt_gettree_leaf(tsp=0x000000081a9fa008, pathp=0x000000081a9fa150, 
ip=0x00007fffd69eecc0, client_data=0x00007fffffffd978) at tree.c:491
+    frame #6: 0x00000008032ae1b1 
librt.so.20`db_recurse(tsp=0x000000081a9fa008, pathp=0x000000081a9fa150, 
region_start_statepp=0x00007fffd69eef60, client_data=0x00007fffffffd978) at 
db_tree.c:1170
+    frame #7: 0x00000008032b35c9 
librt.so.20`_db_walk_subtree(tp=0x000000081a81f200, 
region_start_statepp=0x00007fffd69eef60, 
leaf_func=(librt.so.20`_rt_gettree_leaf at tree.c:444), 
client_data=0x00007fffffffd978, resp=0x000000000062e520) at db_tree.c:1898
+    frame #8: 0x00000008032b172f librt.so.20`_db_walk_dispatcher(cpu=16, 
arg=0x00007fffffffd700) at db_tree.c:1992
+    frame #9: 0x000000081455ddcb 
libbu.so.20`parallel_interface_arg(utd=0x000000081a9f85e0) at parallel.c:428
+    frame #10: 0x0000000800854026 
libthr.so.3`thread_start(curthread=0x000000081aa3a400) at thr_create.c:290
+(lldb) up
+frame #1: 0x0000000800856a2c 
libthr.so.3`__thr_nanosleep(time_to_sleep=<unavailable>, 
time_remaining=<unavailable>) at thr_syscalls.c:287
+   284         
+   285                 curthread = _get_curthread();
+   286                 _thr_cancel_enter(curthread);
+-> 287                 ret = __sys_nanosleep(time_to_sleep, time_remaining);
+   288                 _thr_cancel_leave(curthread, 1);
+   289         
+   290                 return (ret);
+(lldb) up
+frame #2: 0x0000000816e4a9eb libc.so.7`__sleep(seconds=60000) at sleep.c:62
+   59          
+   60                  time_to_sleep.tv_sec = seconds;
+   61                  time_to_sleep.tv_nsec = 0;
+-> 62                  if (((int (*)(const struct timespec *, struct timespec 
*))
+   63                      __libc_interposing[INTERPOS_nanosleep])(
+   64                      &time_to_sleep, &time_remaining) != -1)
+   65                          return (0);
+(lldb) up
+frame #3: 0x000000081457418c libbu.so.20`bu_semaphore_release(i=12) at 
semaphore.c:272
+   269         #  if defined(HAVE_PTHREAD_H)
+   270             if (pthread_mutex_unlock(&bu_semaphores[i].mu)) {
+   271                 fprintf(stderr, "bu_semaphore_acquire(): 
pthread_mutex_unlock() failed on [%d]\n", i);
+-> 272                 sleep(60000);
+   273                 bu_bomb("fatal semaphore acquisition failure");
+   274             }
+   275         #  endif
+(lldb) up
+frame #4: 0x000000080366a193 
librt.so.20`_rt_find_identical_solid(mat=0x0000000000000000, 
dp=0x000000081a8a2e98, rtip=0x000000081a8a7000) at tree.c:425
+   422              */
+   423             bu_semaphore_acquire(RT_SEM_STATS);
+   424             stp->st_bit = rtip->nsolids++;
+-> 425             bu_semaphore_release(RT_SEM_STATS);
+   426         
+   427             /*
+   428              * Fill in the last little bit of the structure in full 
parallel
+(lldb) 
+

Modified: brlcad/branches/dm-fb-merge/misc/CMake/BRLCAD_Targets.cmake
===================================================================
--- brlcad/branches/dm-fb-merge/misc/CMake/BRLCAD_Targets.cmake 2020-04-23 
23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/misc/CMake/BRLCAD_Targets.cmake 2020-04-23 
23:35:43 UTC (rev 75598)
@@ -568,7 +568,11 @@
 function(BRLCAD_SORT_INCLUDE_DIRS DIR_LIST)
   if(${DIR_LIST})
     set(ORDERED_ELEMENTS "${CMAKE_CURRENT_BINARY_DIR}" 
"${CMAKE_CURRENT_SOURCE_DIR}" "${BRLCAD_BINARY_DIR}/include" 
"${BRLCAD_SOURCE_DIR}/include")
+    set(LAST_ELEMENTS "/usr/local/include" "/usr/include")
+
     set(NEW_DIR_LIST "")
+    set(LAST_DIR_LIST "")
+
     foreach(element ${ORDERED_ELEMENTS})
       set(DEF_EXISTS "-1")
       list(FIND ${DIR_LIST} ${element} DEF_EXISTS)
@@ -596,8 +600,19 @@
       endif("${SUBPATH_TEST}" STREQUAL "1")
     endforeach(inc_path ${${DIR_LIST}})
 
+    # Pull out include paths that are definitely system paths (and
+    # hence need to come after ours
+    foreach(element ${LAST_ELEMENTS})
+      set(DEF_EXISTS "-1")
+      list(FIND ${DIR_LIST} ${element} DEF_EXISTS)
+      if(NOT "${DEF_EXISTS}" STREQUAL "-1")
+       set(LAST_DIR_LIST ${LAST_DIR_LIST} ${element})
+       list(REMOVE_ITEM ${DIR_LIST} ${element})
+      endif(NOT "${DEF_EXISTS}" STREQUAL "-1")
+    endforeach(element ${LAST_ELEMENTS})
+
     # add anything that might be left
-    set(NEW_DIR_LIST ${NEW_DIR_LIST} ${${DIR_LIST}})
+    set(NEW_DIR_LIST ${NEW_DIR_LIST} ${${DIR_LIST}} ${LAST_DIR_LIST})
 
     # remove any duplicates
     list(REMOVE_DUPLICATES NEW_DIR_LIST)
@@ -613,6 +628,14 @@
 # sort function.
 function(BRLCAD_INCLUDE_DIRS DIR_LIST)
 
+  # TODO - We don't want parent directories values augmenting DIR_LIST for
+  # subsequent targets - if we're calling this, we're taking full control of
+  # all inclusions for all targets in this and subsequent directories.  We
+  # should probably use the target level INCLUDE_DIRECTORIES property and
+  # stop setting include_directories on entire directories all together
+  # for maximal precision and minimum surprises...
+  #set_property(DIRECTORY PROPERTY INCLUDE_DIRECTORIES "")
+
   set(INCLUDE_DIRS ${${DIR_LIST}})
   if(INCLUDE_DIRS)
     list(REMOVE_DUPLICATES INCLUDE_DIRS)
@@ -636,7 +659,11 @@
        set(CMAKE_INCLUDE_SYSTEM_FLAG_C "-isystem ")
        set(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-isystem ")
       endif(APPLE)
-      include_directories(AFTER SYSTEM ${inc_dir})
+      if("${inc_dir}" MATCHES "other")
+       include_directories(SYSTEM ${inc_dir})
+      else("${inc_dir}" MATCHES "other")
+       include_directories(AFTER SYSTEM ${inc_dir})
+      endif("${inc_dir}" MATCHES "other")
     else("${inc_dir}" MATCHES "other" OR NOT IS_LOCAL)
       include_directories(BEFORE ${inc_dir})
     endif("${inc_dir}" MATCHES "other" OR NOT IS_LOCAL)

Modified: brlcad/branches/dm-fb-merge/misc/CMake/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/misc/CMake/CMakeLists.txt       2020-04-23 
23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/misc/CMake/CMakeLists.txt       2020-04-23 
23:35:43 UTC (rev 75598)
@@ -22,7 +22,6 @@
   FindAppleseed.cmake
   FindBlosc.cmake
   FindBSON.cmake
-  FindFontconfig.cmake
   FindGDAL.cmake
   FindGECODE.cmake
   FindGL.cmake
@@ -44,6 +43,7 @@
   FindSTL.cmake
   FindShellDeps.cmake
   FindTBB.cmake
+  FindTCL.cmake
   FindUTAHRLE.cmake
   FindUUID.cmake
   FindVDS.cmake
@@ -50,7 +50,6 @@
   FindX11.cmake
   FindXMLLINT.cmake
   FindXSLTPROC.cmake
-  Fink_MacPorts.cmake
   NSIS.template.in
   NSIS_silent.template.in
   OpenVDBUtils.cmake

Deleted: brlcad/branches/dm-fb-merge/misc/CMake/FindFontconfig.cmake
===================================================================
--- brlcad/branches/dm-fb-merge/misc/CMake/FindFontconfig.cmake 2020-04-23 
23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/misc/CMake/FindFontconfig.cmake 2020-04-23 
23:35:43 UTC (rev 75598)
@@ -1,93 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindFontconfig
---------------
-
-Find Fontconfig headers and library.
-
-Imported Targets
-^^^^^^^^^^^^^^^^
-
-``Fontconfig::Fontconfig``
-  The Fontconfig library, if found.
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This will define the following variables in your project:
-
-``Fontconfig_FOUND``
-  true if (the requested version of) Fontconfig is available.
-``Fontconfig_VERSION``
-  the version of Fontconfig.
-``Fontconfig_LIBRARIES``
-  the libraries to link against to use Fontconfig.
-``Fontconfig_INCLUDE_DIRS``
-  where to find the Fontconfig headers.
-``Fontconfig_COMPILE_OPTIONS``
-  this should be passed to target_compile_options(), if the
-  target is not used for linking
-
-#]=======================================================================]
-
-find_path( Fontconfig_INCLUDE_DIR
-  NAMES
-    fontconfig/fontconfig.h
-  HINTS
-    ${PKG_FONTCONFIG_INCLUDE_DIRS}
-    /usr/X11/include
-)
-
-find_library( Fontconfig_LIBRARY
-  NAMES
-    fontconfig
-  PATHS
-    ${PKG_FONTCONFIG_LIBRARY_DIRS}
-)
-
-if (Fontconfig_INCLUDE_DIR AND NOT Fontconfig_VERSION)
-  file(STRINGS ${Fontconfig_INCLUDE_DIR}/fontconfig/fontconfig.h _contents 
REGEX "^#define[ \t]+FC_[A-Z]+[ \t]+[0-9]+$")
-  unset(Fontconfig_VERSION)
-  foreach(VPART MAJOR MINOR REVISION)
-    foreach(VLINE ${_contents})
-      if(VLINE MATCHES "^#define[\t ]+FC_${VPART}[\t ]+([0-9]+)$")
-        set(Fontconfig_VERSION_PART "${CMAKE_MATCH_1}")
-        if(Fontconfig_VERSION)
-          string(APPEND Fontconfig_VERSION ".${Fontconfig_VERSION_PART}")
-        else()
-          set(Fontconfig_VERSION "${Fontconfig_VERSION_PART}")
-        endif()
-      endif()
-    endforeach()
-  endforeach()
-endif ()
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(Fontconfig
-  FOUND_VAR
-    Fontconfig_FOUND
-  REQUIRED_VARS
-    Fontconfig_LIBRARY
-    Fontconfig_INCLUDE_DIR
-  VERSION_VAR
-    Fontconfig_VERSION
-)
-
-
-if(Fontconfig_FOUND AND NOT TARGET Fontconfig::Fontconfig)
-  add_library(Fontconfig::Fontconfig UNKNOWN IMPORTED)
-  set_target_properties(Fontconfig::Fontconfig PROPERTIES
-    IMPORTED_LOCATION "${Fontconfig_LIBRARY}"
-    INTERFACE_COMPILE_OPTIONS "${Fontconfig_COMPILE_OPTIONS}"
-    INTERFACE_INCLUDE_DIRECTORIES "${Fontconfig_INCLUDE_DIR}"
-  )
-endif()
-
-mark_as_advanced(Fontconfig_LIBRARY Fontconfig_INCLUDE_DIR)
-
-if(Fontconfig_FOUND)
-  set(Fontconfig_LIBRARIES ${Fontconfig_LIBRARY})
-  set(Fontconfig_INCLUDE_DIRS ${Fontconfig_INCLUDE_DIR})
-endif()

Copied: brlcad/branches/dm-fb-merge/misc/CMake/FindTCL.cmake (from rev 75597, 
brlcad/trunk/misc/CMake/FindTCL.cmake)
===================================================================
--- brlcad/branches/dm-fb-merge/misc/CMake/FindTCL.cmake                        
        (rev 0)
+++ brlcad/branches/dm-fb-merge/misc/CMake/FindTCL.cmake        2020-04-23 
23:35:43 UTC (rev 75598)
@@ -0,0 +1,305 @@
+# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+# file Copyright.txt or https://cmake.org/licensing for details.
+
+#[=======================================================================[.rst:
+FindTCL
+-------
+
+This module finds if Tcl is installed and determines where the include
+files and libraries are.  It also determines what the name of the
+library is.  This code sets the following variables:
+
+::
+
+  TCL_FOUND              = Tcl was found
+  TK_FOUND               = Tk was found
+  TCLTK_FOUND            = Tcl and Tk were found
+  TCLSH_FOUND            = TRUE if tclsh has been found
+  TCL_LIBRARY            = path to Tcl library (tcl tcl80)
+  TCL_INCLUDE_PATH       = path to where tcl.h can be found
+  TCL_TCLSH              = path to tclsh binary (tcl tcl80)
+  TK_LIBRARY             = path to Tk library (tk tk80 etc)
+  TK_INCLUDE_PATH        = path to where tk.h can be found
+  TK_WISH                = full path to the wish executable
+  TCL_STUB_LIBRARY       = path to Tcl stub library
+  TK_STUB_LIBRARY        = path to Tk stub library
+  TTK_STUB_LIBRARY       = path to ttk stub library
+
+#]=======================================================================]
+
+include(CMakeFindFrameworks)
+
+if(WIN32)
+  get_filename_component(
+    ActiveTcl_CurrentVersion
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl;CurrentVersion]"
+    NAME)
+  set(TCLTK_POSSIBLE_BIN_PATHS ${TCLTK_POSSIBLE_BIN_PATHS}
+    
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/bin"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/bin"
+    )
+
+ get_filename_component(
+        ActiveTcl_CurrentVersion
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl;CurrentVersion]"
+    NAME)
+  set(TCLTK_POSSIBLE_LIB_PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
+    
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/lib"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/lib"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/lib"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/lib"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/lib"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/lib"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/lib"
+    "$ENV{ProgramFiles}/Tcl/Lib"
+    "C:/Program Files/Tcl/lib"
+    "C:/Tcl/lib"
+    )
+
+ set(TCLTK_POSSIBLE_INCLUDE_PATHS ${TCLTK_POSSIBLE_INCLUDE_PATHS}
+    
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\ActiveState\\ActiveTcl\\${ActiveTcl_CurrentVersion}]/include"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.6;Root]/include"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.5;Root]/include"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/include"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/include"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/include"
+    "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/include"
+    "$ENV{ProgramFiles}/Tcl/include"
+    "C:/Program Files/Tcl/include"
+    "C:/Tcl/include"
+    )
+endif()
+
+set(TCL_TCLSH_NAMES
+  tclsh
+  tclsh${TCL_LIBRARY_VERSION} tclsh${TK_LIBRARY_VERSION} 
tclsh${TK_WISH_VERSION}
+  tclsh87 tclsh8.7
+  tclsh86 tclsh8.6
+  tclsh85 tclsh8.5
+  tclsh84 tclsh8.4
+  tclsh83 tclsh8.3
+  tclsh82 tclsh8.2
+  tclsh80 tclsh8.0
+  )
+if(CYGWIN)
+       set(TCL_TCLSH_NAMES ${TCL_TCLSH_NAMES} cygtclsh83 cygtclsh80)
+endif(CYGWIN)
+
+
+find_program(TCL_TCLSH
+  NAMES ${TCL_TCLSH_NAMES}
+  HINTS ${TCLTK_POSSIBLE_BIN_PATHS}
+  )
+
+set(TK_WISH_NAMES
+  wish
+  wish${TCL_LIBRARY_VERSION} wish${TK_LIBRARY_VERSION} wish${TCL_TCLSH_VERSION}
+  wish86 wish8.6
+  wish85 wish8.5
+  wish84 wish8.4
+  wish83 wish8.3
+  wish82 wish8.2
+  wish80 wish8.0
+  )
+
+if(CYGWIN)
+       set(TK_WISH_NAMES ${TK_WISH_NAMES} cygwish80 )
+endif()
+
+find_program(TK_WISH
+  NAMES ${TK_WISH_NAMES}
+  HINTS ${TCLTK_POSSIBLE_BIN_PATHS}
+  )
+
+if(TCLSH_VERSION_STRING)
+  set(TCL_TCLSH_VERSION "${TCLSH_VERSION_STRING}")
+else()
+  get_filename_component(TCL_TCLSH_PATH "${TCL_TCLSH}" PATH)
+  get_filename_component(TCL_TCLSH_PATH_PARENT "${TCL_TCLSH_PATH}" PATH)
+  string(REGEX REPLACE
+    "^.*tclsh([0-9]\\.*[0-9]).*$" "\\1" TCL_TCLSH_VERSION "${TCL_TCLSH}")
+endif()
+
+set(TCLTK_POSSIBLE_LIB_PATHS
+  "${TCL_INCLUDE_PATH_PARENT}/lib"
+  "${TK_INCLUDE_PATH_PARENT}/lib"
+  "${TCL_LIBRARY_PATH}"
+  "${TK_LIBRARY_PATH}"
+  "${TCL_TCLSH_PATH_PARENT}/lib"
+  "${TK_WISH_PATH_PARENT}/lib"
+)
+
+set(TCLTK_POSSIBLE_LIB_PATH_SUFFIXES
+  lib/tcl/tcl8.7
+  lib/tcl/tk8.7
+  lib/tcl/tcl8.6
+  lib/tcl/tk8.6
+  lib/tcl/tcl8.5
+  lib/tcl/tk8.5
+  lib/tcl/tcl8.4
+  lib/tcl/tk8.4
+)
+
+find_library(TCL_LIBRARY
+  NAMES
+  tcl
+  tcl${TCL_LIBRARY_VERSION} tcl${TCL_TCLSH_VERSION} tcl${TK_WISH_VERSION}
+  tcl87 tcl8.7 tcl87t tcl8.7t
+  tcl86 tcl8.6 tcl86t tcl8.6t
+  tcl85 tcl8.5
+  tcl84 tcl8.4
+  tcl83 tcl8.3
+  tcl82 tcl8.2
+  tcl80 tcl8.0
+  PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
+  PATH_SUFFIXES ${TCLTK_POSSIBLE_LIB_PATH_SUFFIXES}
+  )
+
+find_library(TCL_STUB_LIBRARY
+  NAMES
+  tclstub
+  tclstub${TK_LIBRARY_VERSION} tclstub${TCL_TCLSH_VERSION} 
tclstub${TK_WISH_VERSION}
+  tclstub87 tclstub8.7
+  tclstub86 tclstub8.6
+  tclstub85 tclstub8.5
+  tclstub84 tclstub8.4
+  tclstub83 tclstub8.3
+  tclstub82 tclstub8.2
+  tclstub80 tclstub8.0
+  PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
+)
+
+find_library(TK_LIBRARY
+  NAMES
+  tk
+  tk${TK_LIBRARY_VERSION} tk${TCL_TCLSH_VERSION} tk${TK_WISH_VERSION}
+  tk87 tk8.7 tk87t tk8.7t
+  tk86 tk8.6 tk86t tk8.6t
+  tk85 tk8.5
+  tk84 tk8.4
+  tk83 tk8.3
+  tk82 tk8.2
+  tk80 tk8.0
+  PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
+  PATH_SUFFIXES ${TCLTK_POSSIBLE_LIB_PATH_SUFFIXES}
+  )
+
+find_library(TK_STUB_LIBRARY
+  NAMES
+  tkstub
+  tkstub${TCL_LIBRARY_VERSION} tkstub${TCL_TCLSH_VERSION} 
tkstub${TK_WISH_VERSION}
+  tkstub87 tkstub8.7
+  tkstub86 tkstub8.6
+  tkstub85 tkstub8.5
+  tkstub84 tkstub8.4
+  tkstub83 tkstub8.3
+  tkstub82 tkstub8.2
+  tkstub80 tkstub8.0
+  PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
+)
+
+find_library(TTK_STUB_LIBRARY
+  NAMES
+  ttkstub
+  ttkstub${TCL_LIBRARY_VERSION} ttkstub${TCL_TCLSH_VERSION} 
ttkstub${TK_WISH_VERSION}
+  ttkstub88 ttkstub8.8
+  ttkstub87 ttkstub8.7
+  ttkstub86 ttkstub8.6
+  ttkstub85 ttkstub8.5
+  PATHS ${TCLTK_POSSIBLE_LIB_PATHS}
+)
+
+CMAKE_FIND_FRAMEWORKS(Tcl)
+CMAKE_FIND_FRAMEWORKS(Tk)
+
+set(TCL_FRAMEWORK_INCLUDES)
+if(Tcl_FRAMEWORKS)
+  if(NOT TCL_INCLUDE_PATH)
+    foreach(dir ${Tcl_FRAMEWORKS})
+      set(TCL_FRAMEWORK_INCLUDES ${TCL_FRAMEWORK_INCLUDES} ${dir}/Headers)
+    endforeach()
+  endif()
+endif()
+
+set(TK_FRAMEWORK_INCLUDES)
+if(Tk_FRAMEWORKS)
+  if(NOT TK_INCLUDE_PATH)
+    foreach(dir ${Tk_FRAMEWORKS})
+      set(TK_FRAMEWORK_INCLUDES ${TK_FRAMEWORK_INCLUDES}
+        ${dir}/Headers ${dir}/PrivateHeaders)
+    endforeach()
+  endif()
+endif()
+
+set(TCLTK_POSSIBLE_INCLUDE_PATHS
+  "${TCL_LIBRARY_PATH_PARENT}/include"
+  "${TK_LIBRARY_PATH_PARENT}/include"
+  "${TCL_INCLUDE_PATH}"
+  "${TK_INCLUDE_PATH}"
+  ${TCL_FRAMEWORK_INCLUDES}
+  ${TK_FRAMEWORK_INCLUDES}
+  "${TCL_TCLSH_PATH_PARENT}/include"
+  "${TK_WISH_PATH_PARENT}/include"
+  )
+
+set(TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES
+  include/tcl${TK_LIBRARY_VERSION}
+  include/tcl${TCL_LIBRARY_VERSION}
+  include/tcl8.7
+  include/tk8.7
+  include/tcl8.6
+  include/tk8.6
+  include/tcl8.5
+  include/tk8.5
+  include/tcl8.4
+  include/tk8.4
+  include/tcl8.3
+  include/tcl8.2
+  include/tcl8.0
+  )
+
+find_path(TCL_INCLUDE_PATH
+  NAMES tcl.h
+  HINTS ${TCLTK_POSSIBLE_INCLUDE_PATHS}
+  PATH_SUFFIXES ${TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES}
+  )
+
+find_path(TK_INCLUDE_PATH
+  NAMES tk.h
+  HINTS ${TCLTK_POSSIBLE_INCLUDE_PATHS}
+  PATH_SUFFIXES ${TCLTK_POSSIBLE_INCLUDE_PATH_SUFFIXES}
+  )
+
+include(FindPackageHandleStandardArgs)
+
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(TCL
+       REQUIRED_VARS TCL_LIBRARY TCL_STUB_LIBRARY TCL_INCLUDE_PATH TCL_TCLSH
+       VERSION_VAR TCLSH_VERSION_STRING)
+set(FPHSA_NAME_MISMATCHED 1)
+set(TCLTK_FIND_REQUIRED ${TCL_FIND_REQUIRED})
+set(TCLTK_FIND_QUIETLY  ${TCL_FIND_QUIETLY})
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(TCLTK
+       REQUIRED_VARS TCL_LIBRARY TCL_STUB_LIBRARY TCL_INCLUDE_PATH TK_LIBRARY 
TK_STUB_LIBRARY TK_INCLUDE_PATH)
+set(TK_FIND_REQUIRED ${TCL_FIND_REQUIRED})
+set(TK_FIND_QUIETLY  ${TCL_FIND_QUIETLY})
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(TK
+       REQUIRED_VARS TK_LIBRARY TK_STUB_LIBRARY TK_INCLUDE_PATH TK_WISH)
+unset(FPHSA_NAME_MISMATCHED)
+
+mark_as_advanced(
+  TCL_INCLUDE_PATH
+  TCL_LIBRARY
+  TCL_STUB_LIBRARY
+  TCL_TCLSH
+  TK_INCLUDE_PATH
+  TK_LIBRARY
+  TK_STUB_LIBRARY
+  TK_WISH
+  TTK_STUB_LIBRARY
+  )
+

Deleted: brlcad/branches/dm-fb-merge/misc/CMake/Fink_MacPorts.cmake
===================================================================
--- brlcad/branches/dm-fb-merge/misc/CMake/Fink_MacPorts.cmake  2020-04-23 
23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/misc/CMake/Fink_MacPorts.cmake  2020-04-23 
23:35:43 UTC (rev 75598)
@@ -1,193 +0,0 @@
-#             F I N K _ M A C P O R T S . C M A K E
-# BRL-CAD
-#
-# Copyright (c) 2011-2020 United States Government as represented by
-# the U.S. Army Research Laboratory.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-#
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following
-# disclaimer in the documentation and/or other materials provided
-# with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote
-# products derived from this software without specific prior written
-# permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-###
-# Fink and/or MacPorts complicate searching for libraries
-# on OSX.  Provide a way to specify whether to search using
-# them (if available) or just use System paths.
-#
-# CMAKE_SEARCH_OSX_PATHS is used to specify the primary source for
-# libraries and headers when the situation might be confused - the
-# setting may be one of:
-#
-# SYSTEM - Use the system libraries in preference to Fink or MacPorts
-# FINK - Prefer the Fink libraries
-# MACPORTS - Prefer the MacPorts libraries
-#
-# Library and header path variables are defined to allow for more
-# controlled searching:
-#
-# CMAKE_FINK_LIBRARY_PATH
-# CMAKE_FINK_INCLUDE_PATH
-# CMAKE_MACPORTS_LIBRARY_PATH
-# CMAKE_MACPORTS_INCLUDE_PATH
-
-if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-  # first, look for the main Fink and MacPorts programs.
-  find_program(PORT_EXEC port)
-  mark_as_advanced(PORT_EXEC)
-  find_program(FINK_EXEC fink)
-  mark_as_advanced(FINK_EXEC)
-
-  # If either or both are installed, we need to address the issues.  Otherwise,
-  # this file is a no-op.
-  if(PORT_EXEC OR FINK_EXEC)
-    if(CMAKE_SEARCH_OSX_PATHS)
-      string(TOUPPER "${CMAKE_SEARCH_OSX_PATHS}" paths_upper)
-      set(CMAKE_SEARCH_OSX_PATHS ${paths_upper})
-      if(NOT ${CMAKE_SEARCH_OSX_PATHS} STREQUAL "SYSTEM" AND NOT 
${CMAKE_SEARCH_OSX_PATHS} STREQUAL "MACPORTS" AND NOT ${CMAKE_SEARCH_OSX_PATHS} 
STREQUAL "FINK")
-       message(WARNING "Unknown value ${CMAKE_SEARCH_OSX_PATHS} supplied for 
CMAKE_SEARCH_OSX_PATHS - defaulting to SYSTEM")
-       set(CMAKE_SEARCH_OSX_PATHS "SYSTEM")
-      endif(NOT ${CMAKE_SEARCH_OSX_PATHS} STREQUAL "SYSTEM" AND NOT 
${CMAKE_SEARCH_OSX_PATHS} STREQUAL "MACPORTS" AND NOT ${CMAKE_SEARCH_OSX_PATHS} 
STREQUAL "FINK")
-    endif(CMAKE_SEARCH_OSX_PATHS)
-
-    # List out the viable options for this platform
-    set(OSX_PATH_OPTIONS "SYSTEM")
-    if(PORT_EXEC)
-      set(OSX_PATH_OPTIONS ${OSX_PATH_OPTIONS} "MACPORTS")
-    endif(PORT_EXEC)
-    if(FINK_EXEC)
-      set(OSX_PATH_OPTIONS ${OSX_PATH_OPTIONS} "FINK")
-    endif(FINK_EXEC)
-
-    # If we don't already have a value set, set one.
-    if(NOT CMAKE_SEARCH_OSX_PATHS)
-      if(PORT_EXEC AND NOT FINK_EXEC)
-       set(CMAKE_SEARCH_OSX_PATHS "MACPORTS" CACHE STRING "Use MacPorts")
-      endif(PORT_EXEC AND NOT FINK_EXEC)
-      if(FINK_EXEC AND NOT PORT_EXEC)
-       set(CMAKE_SEARCH_OSX_PATHS "FINK" CACHE STRING "Use Fink")
-      endif(FINK_EXEC AND NOT PORT_EXEC)
-      if(NOT CMAKE_SEARCH_OSX_PATHS)
-       set(CMAKE_SEARCH_OSX_PATHS "SYSTEM" CACHE STRING "Use System")
-      endif(NOT CMAKE_SEARCH_OSX_PATHS)
-    endif(NOT CMAKE_SEARCH_OSX_PATHS)
-
-    # Set our properties for CMake-GUI
-    set_property(CACHE CMAKE_SEARCH_OSX_PATHS PROPERTY STRINGS 
${OSX_PATH_OPTIONS})
-
-    # If the user has picked a setting that is unsupported by the system, warn
-    # them and fix it...
-    if(${CMAKE_SEARCH_OSX_PATHS} STREQUAL "MACPORTS" AND NOT PORT_EXEC)
-      message(WARNING "CMAKE_SEARCH_OSX_PATHS set to MACPORTS, but port 
executable not found - defaulting to SYSTEM")
-      set(CMAKE_SEARCH_OSX_PATHS "SYSTEM")
-    endif(${CMAKE_SEARCH_OSX_PATHS} STREQUAL "MACPORTS" AND NOT PORT_EXEC)
-    if(${CMAKE_SEARCH_OSX_PATHS} STREQUAL "FINK" AND NOT FINK_EXEC)
-      message(WARNING "CMAKE_SEARCH_OSX_PATHS set to FINK, but fink executable 
not found - defaulting to SYSTEM")
-      set(CMAKE_SEARCH_OSX_PATHS "SYSTEM")
-    endif(${CMAKE_SEARCH_OSX_PATHS} STREQUAL "FINK" AND NOT FINK_EXEC)
-
-    # Deduce the MacPorts paths from PORT_EXEC
-    IF(PORT_EXEC)
-      get_filename_component(port_binpath ${PORT_EXEC} PATH)
-      get_filename_component(port_path ${port_binpath} PATH)
-      get_filename_component(port_path_normalized ${port_path} ABSOLUTE)
-      SET(CMAKE_MACPORTS_LIBRARY_PATH ${port_path_normalized}/lib CACHE STRING 
"MacPorts library path" FORCE)
-      SET(CMAKE_MACPORTS_INCLUDE_PATH ${port_path_normalized}/include CACHE 
STRING "MacPorts include path" FORCE)
-      if(CMAKE_SYSTEM_IGNORE_PATH)
-       list(REMOVE_ITEM CMAKE_SYSTEM_IGNORE_PATH "${port_path_normalized}/lib")
-      endif(CMAKE_SYSTEM_IGNORE_PATH)
-    ENDIF(PORT_EXEC)
-
-    # Deduce the Fink paths from FINK_EXEC
-    if(FINK_EXEC)
-      get_filename_component(fink_binpath ${FINK_EXEC} PATH)
-      get_filename_component(fink_path ${fink_binpath} PATH)
-      get_filename_component(fink_path_normalized ${fink_path} ABSOLUTE)
-      SET(CMAKE_FINK_LIBRARY_PATH ${fink_path_normalized}/lib CACHE STRING 
"Fink library path" FORCE)
-      SET(CMAKE_FINK_INCLUDE_PATH ${fink_path_normalized}/include CACHE STRING 
"Fink include path" FORCE)
-      if(CMAKE_SYSTEM_IGNORE_PATH)
-       list(REMOVE_ITEM CMAKE_SYSTEM_IGNORE_PATH "${CMAKE_FINK_LIBRARY_PATH}")
-      endif(CMAKE_SYSTEM_IGNORE_PATH)
-    endif(FINK_EXEC)
-
-    # If we're using MACPORTS, set some variables accordingly
-    if(${CMAKE_SEARCH_OSX_PATHS} STREQUAL "MACPORTS")
-      set(CMAKE_LIBRARY_PATH ${CMAKE_MACPORTS_LIBRARY_PATH} 
${CMAKE_LIBRARY_PATH})
-      set(CMAKE_INCLUDE_PATH ${CMAKE_MACPORTS_INCLUDE_PATH} 
${CMAKE_INCLUDE_PATH})
-      # If Fink is lurking, we need to avoid it - we don't want to mix 
MacPorts and Fink
-      if("${CMAKE_FINK_LIBRARY_PATH}" STREQUAL 
"${CMAKE_MACPORTS_LIBRARY_PATH}")
-       # We CAN'T ignore Fink - it looks like it's installed in the same place 
as MacPorts. Not Good.
-       message(WARNING "Both Fink and MacPorts appear to be installed in 
${fink_path_normalized}, search results unpredictable")
-      else("${CMAKE_FINK_LIBRARY_PATH}" STREQUAL 
"${CMAKE_MACPORTS_LIBRARY_PATH}")
-       # Ignore Fink
-       set(CMAKE_SYSTEM_IGNORE_PATH ${CMAKE_SYSTEM_IGNORE_PATH} 
${CMAKE_FINK_LIBRARY_PATH})
-       if(CMAKE_LIBRARY_PATH)
-         list(REMOVE_ITEM CMAKE_LIBRARY_PATH "${CMAKE_FINK_LIBRARY_PATH}")
-       endif(CMAKE_LIBRARY_PATH)
-       if(CMAKE_INCLUDE_PATH)
-         list(REMOVE_ITEM CMAKE_INCLUDE_PATH "${CMAKE_FINK_INCLUDE_PATH}")
-       endif(CMAKE_INCLUDE_PATH)
-      endif("${CMAKE_FINK_LIBRARY_PATH}" STREQUAL 
"${CMAKE_MACPORTS_LIBRARY_PATH}")
-    endif(${CMAKE_SEARCH_OSX_PATHS} STREQUAL "MACPORTS")
-
-    # If we're using FINK, set some variables accordingly
-    if(${CMAKE_SEARCH_OSX_PATHS} STREQUAL "FINK")
-      set(CMAKE_LIBRARY_PATH ${CMAKE_FINK_LIBRARY_PATH} ${CMAKE_LIBRARY_PATH})
-      set(CMAKE_INCLUDE_PATH ${CMAKE_FINK_INCLUDE_PATH} ${CMAKE_INCLUDE_PATH})
-      # If MacPorts is lurking, we need to avoid it - we don't want to mix 
MacPorts and Fink
-      if("${CMAKE_FINK_LIBRARY_PATH}" STREQUAL 
"${CMAKE_MACPORTS_LIBRARY_PATH}")
-       message(WARNING "Both Fink and MacPorts appear to be installed in 
${fink_path_normalized}, search results unpredictable")
-      else("${CMAKE_FINK_LIBRARY_PATH}" STREQUAL 
"${CMAKE_MACPORTS_LIBRARY_PATH}")
-       set(CMAKE_SYSTEM_IGNORE_PATH ${CMAKE_SYSTEM_IGNORE_PATH} 
${CMAKE_MACPORTS_LIBRARY_PATH})
-       if(CMAKE_LIBRARY_PATH)
-         list(REMOVE_ITEM CMAKE_LIBRARY_PATH "${CMAKE_MACPORTS_LIBRARY_PATH}")
-       endif(CMAKE_LIBRARY_PATH)
-       if(CMAKE_INCLUDE_PATH)
-         list(REMOVE_ITEM CMAKE_INCLUDE_PATH "${CMAKE_MACPORTS_INCLUDE_PATH}")
-       endif(CMAKE_INCLUDE_PATH)
-      endif("${CMAKE_FINK_LIBRARY_PATH}" STREQUAL 
"${CMAKE_MACPORTS_LIBRARY_PATH}")
-    endif(${CMAKE_SEARCH_OSX_PATHS} STREQUAL "FINK")
-
-    if(${CMAKE_SEARCH_OSX_PATHS} STREQUAL "SYSTEM")
-      set(CMAKE_SYSTEM_IGNORE_PATH ${CMAKE_SYSTEM_IGNORE_PATH} 
${CMAKE_FINK_LIBRARY_PATH} ${CMAKE_FINK_INCLUDE_PATH})
-      set(CMAKE_SYSTEM_IGNORE_PATH ${CMAKE_SYSTEM_IGNORE_PATH} 
${CMAKE_MACPORTS_LIBRARY_PATH} ${CMAKE_MACPORTS_INCLUDE_PATH})
-      if(CMAKE_LIBRARY_PATH)
-       list(REMOVE_ITEM CMAKE_LIBRARY_PATH "${CMAKE_FINK_LIBRARY_PATH}")
-       list(REMOVE_ITEM CMAKE_LIBRARY_PATH "${CMAKE_MACPORTS_LIBRARY_PATH}")
-      endif(CMAKE_LIBRARY_PATH)
-      if(CMAKE_INCLUDE_PATH)
-       list(REMOVE_ITEM CMAKE_INCLUDE_PATH "${CMAKE_FINK_INCLUDE_PATH}")
-       list(REMOVE_ITEM CMAKE_INCLUDE_PATH "${CMAKE_MACPORTS_INCLUDE_PATH}")
-      endif(CMAKE_INCLUDE_PATH)
-    endif(${CMAKE_SEARCH_OSX_PATHS} STREQUAL "SYSTEM")
-  endif(PORT_EXEC OR FINK_EXEC)
-endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-
-# Local Variables:
-# tab-width: 8
-# mode: cmake
-# indent-tabs-mode: t
-# End:
-# ex: shiftwidth=2 tabstop=8

Index: brlcad/branches/dm-fb-merge/regress
===================================================================
--- brlcad/branches/dm-fb-merge/regress 2020-04-23 23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/regress 2020-04-23 23:35:43 UTC (rev 75598)

Property changes on: brlcad/branches/dm-fb-merge/regress
___________________________________________________________________
Modified: svn:mergeinfo
## -6,4 +6,5 ##
 /brlcad/branches/opencl/regress:65867-66137
 /brlcad/branches/osg/regress:62110-62113
 /brlcad/branches/prep-cache/regress:68236-68933
-/brlcad/branches/tcltk86/regress:68300-75257
\ No newline at end of property
+/brlcad/branches/tcltk86/regress:68300-75257
+/brlcad/trunk/regress:75512-75597
\ No newline at end of property
Modified: brlcad/branches/dm-fb-merge/regress/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/regress/CMakeLists.txt  2020-04-23 23:26:14 UTC 
(rev 75597)
+++ brlcad/branches/dm-fb-merge/regress/CMakeLists.txt  2020-04-23 23:35:43 UTC 
(rev 75598)
@@ -21,12 +21,11 @@
 # via a macro argument, this should collect all regression targets.
 include(ProcessorCount)
 ProcessorCount(N)
-if(NOT N EQUAL 0)
+if(NOT N EQUAL 0 AND NOT BRLCAD_SERIAL_TESTING)
   set(JFLAG "-j${N}")
-else(NOT N EQUAL 0)
-  # Huh?  No j flag if we can't get a processor count
+else()
   set(JFLAG)
-endif(NOT N EQUAL 0)
+endif()
 add_custom_target(regress COMMAND ${CMAKE_CTEST_COMMAND} -L Regression 
--output-on-failure --output-log "${CMAKE_BINARY_DIR}/regress_output.log" 
${JFLAG})
 set_target_properties(regress PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD 1)
 set_target_properties(regress PROPERTIES FOLDER "BRL-CAD Regression Tests")

Modified: brlcad/branches/dm-fb-merge/regress/licenses/licenses_check.cpp
===================================================================
--- brlcad/branches/dm-fb-merge/regress/licenses/licenses_check.cpp     
2020-04-23 23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/regress/licenses/licenses_check.cpp     
2020-04-23 23:35:43 UTC (rev 75598)
@@ -152,6 +152,7 @@
     std::regex d_regex(".*[\\/]doc[\\/].*");
     std::regex l_regex(".*[\\/]licenses_check.cpp");
     std::regex srcfile_regex(".*[.](c|cpp|cxx|h|hpp|hxx|tcl)*$");
+    std::regex svn_regex(".*[\\/][.]svn[\\/].*");
     std::string root_path(argv[3]);
 
     std::map<std::string, std::string> file_to_license;
@@ -165,6 +166,10 @@
        std::cerr << "Unable to open license file list " << argv[1] << "\n";
     }
     while (std::getline(license_file_stream, lfile)) {
+       if (std::regex_match(lfile, svn_regex)) {
+           std::cerr << "Skipping .svn file " << lfile << "\n";
+           continue;
+       }
        int valid_ref_cnt = 0;
        std::string lline;
        std::ifstream license_stream;

Modified: brlcad/branches/dm-fb-merge/src/libbrep/PullbackCurve.cpp
===================================================================
--- brlcad/branches/dm-fb-merge/src/libbrep/PullbackCurve.cpp   2020-04-23 
23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/src/libbrep/PullbackCurve.cpp   2020-04-23 
23:35:43 UTC (rev 75598)
@@ -471,13 +471,31 @@
 
 
 //forward for cyclic
-double surface_GetClosestPoint3dFirstOrderByRange(const ON_Surface *surf, 
const ON_3dPoint& p, const ON_Interval& u_range,
-                                                 const ON_Interval& v_range, 
double current_closest_dist, ON_2dPoint& p2d, ON_3dPoint& p3d, double 
same_point_tol, double within_distance_tol, int level);
+double
+surface_GetClosestPoint3dFirstOrderByRange(const ON_Surface *surf,
+                                          const ON_3dPoint& p,
+                                          const ON_Interval& u_range,
+                                          const ON_Interval& v_range,
+                                          double current_closest_dist,
+                                          ON_2dPoint& p2d,
+                                          ON_3dPoint& p3d,
+                                          double same_point_tol,
+                                          double within_distance_tol,
+                                          int level);
 
-double surface_GetClosestPoint3dFirstOrderSubdivision(const ON_Surface *surf,
-                                                     const ON_3dPoint& p, 
const ON_Interval &u_interval, double u, const ON_Interval &v_interval, double 
v,
-                                                     double 
current_closest_dist, ON_2dPoint& p2d, ON_3dPoint& p3d,
-                                                     double same_point_tol, 
double within_distance_tol, int level)
+double
+surface_GetClosestPoint3dFirstOrderSubdivision(const ON_Surface *surf,
+                                              const ON_3dPoint& p,
+                                              const ON_Interval &u_interval,
+                                              double u,
+                                              const ON_Interval &v_interval,
+                                              double v,
+                                              double current_closest_dist,
+                                              ON_2dPoint& p2d,
+                                              ON_3dPoint& p3d,
+                                              double same_point_tol,
+                                              double within_distance_tol,
+                                              int level)
 {
     double min_distance = 0;
     double max_distance = 0;

Index: brlcad/branches/dm-fb-merge/src/libbu
===================================================================
--- brlcad/branches/dm-fb-merge/src/libbu       2020-04-23 23:26:14 UTC (rev 
75597)
+++ brlcad/branches/dm-fb-merge/src/libbu       2020-04-23 23:35:43 UTC (rev 
75598)

Property changes on: brlcad/branches/dm-fb-merge/src/libbu
___________________________________________________________________
Modified: svn:mergeinfo
## -1,3 +1,4 ##
 
/brlcad/branches/RELEASE/src/libbu:70323-70333,71915-71935,72826-72858,74376-74454
 
/brlcad/branches/brep-debug/src/libbu:69168,69927,69995-69996,70148-70149,70347-70349,70377,70526-70527,71006-71007,71009-71022,71046-71047,71049,71096-71100
-/brlcad/branches/tcltk86/src/libbu:68300-75257
\ No newline at end of property
+/brlcad/branches/tcltk86/src/libbu:68300-75257
+/brlcad/trunk/src/libbu:75512-75597
\ No newline at end of property
Modified: brlcad/branches/dm-fb-merge/src/libbu/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/src/libbu/CMakeLists.txt        2020-04-23 
23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/src/libbu/CMakeLists.txt        2020-04-23 
23:35:43 UTC (rev 75598)
@@ -13,9 +13,9 @@
   ${CMAKE_CURRENT_SOURCE_DIR}/y2038
   ${REGEX_INCLUDE_DIRS}
   )
-if (${UUID_INCLUDE_DIR})
+if (UUID_INCLUDE_DIR)
   set(BU_LOCAL_INCLUDE_DIRS ${BU_LOCAL_INCLUDE_DIRS} ${UUID_INCLUDE_DIR})
-endif (${UUID_INCLUDE_DIR})
+endif (UUID_INCLUDE_DIR)
 
 BRLCAD_LIB_INCLUDE_DIRS(bu BU_INCLUDE_DIRS BU_LOCAL_INCLUDE_DIRS)
 

Modified: brlcad/branches/dm-fb-merge/src/libbu/semaphore.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libbu/semaphore.c   2020-04-23 23:26:14 UTC 
(rev 75597)
+++ brlcad/branches/dm-fb-merge/src/libbu/semaphore.c   2020-04-23 23:35:43 UTC 
(rev 75598)
@@ -24,6 +24,7 @@
 #include <string.h>
 #include <ctype.h>
 #include <math.h>
+#include <errno.h>
 
 #include "bio.h"
 #include "bu/malloc.h"
@@ -30,7 +31,33 @@
 #include "bu/parallel.h"
 #include "bu/exit.h"
 
+static void
+sem_bomb(int eno) {
+    switch (eno) {
+       case EINVAL:
+           bu_bomb("fatal semaphore acquisition failure EINVAL");
+           break;
+       case EBUSY:
+           bu_bomb("fatal semaphore acquisition failure EBUSY");
+           break;
+       case EAGAIN:
+           bu_bomb("fatal semaphore acquisition failure EAGAIN");
+           break;
+       case EDEADLK:
+           bu_bomb("fatal semaphore acquisition failure EDEADLK");
+           break;
+       case EPERM:
+           bu_bomb("fatal semaphore acquisition failure EPERM");
+           break;
+       case EOWNERDEAD:
+           bu_bomb("fatal semaphore acquisition failure EOWNERDEAD");
+           break;
+       default:
+           bu_bomb("fatal semaphore acquisition failure");
+    }
+}
 
+
 /*
  * multithreading support for SunOS 5.X / Solaris 2.x
  */
@@ -131,22 +158,25 @@
     }
 
 #  elif defined(HAVE_PTHREAD_H)
-    if (pthread_mutex_lock(&bu_init_lock)) {
+    int ret = pthread_mutex_lock(&bu_init_lock);
+    if (ret) {
        fprintf(stderr, "bu_semaphore_acquire(): pthread_mutex_lock() failed on 
init lock\n");
-       bu_bomb("fatal semaphore acquisition failure");
+       sem_bomb(ret);
     }
     for (i=bu_nsemaphores; i < nsemaphores; i++) {
        memset(&bu_semaphores[i], 0, sizeof(struct bu_semaphores));
        bu_semaphores[i].magic = SEMAPHORE_MAGIC;
-       if (pthread_mutex_init(&bu_semaphores[i].mu,  NULL)) {
+       ret = pthread_mutex_init(&bu_semaphores[i].mu,  NULL);
+       if (ret) {
            fprintf(stderr, "bu_semaphore_init(): pthread_mutex_init() failed 
on [%d] of [%d]\n", i+1, nsemaphores - bu_nsemaphores);
-           bu_bomb("fatal semaphore acquisition failure");
+           sem_bomb(ret);
        }
     }
     bu_nsemaphores = nsemaphores;
-    if (pthread_mutex_unlock(&bu_init_lock)) {
+    ret = pthread_mutex_unlock(&bu_init_lock);
+    if (ret) {
        fprintf(stderr, "bu_semaphore_acquire(): pthread_mutex_unlock() failed 
on init lock\n");
-       bu_bomb("fatal semaphore acquisition failure");
+       sem_bomb(ret);
     }
 
 #  elif defined(_WIN32) && !defined(__CYGWIN__)
@@ -229,9 +259,10 @@
 #  endif
 
 #  if defined(HAVE_PTHREAD_H)
-    if (pthread_mutex_lock(&bu_semaphores[i].mu)) {
+    int ret = pthread_mutex_lock(&bu_semaphores[i].mu);
+    if (ret) {
        fprintf(stderr, "bu_semaphore_acquire(): pthread_mutex_lock() failed on 
[%d]\n", i);
-       bu_bomb("fatal semaphore acquisition failure");
+       sem_bomb(ret);
     }
 #  endif
 
@@ -269,9 +300,10 @@
 #  endif
 
 #  if defined(HAVE_PTHREAD_H)
-    if (pthread_mutex_unlock(&bu_semaphores[i].mu)) {
+    int ret = pthread_mutex_unlock(&bu_semaphores[i].mu);
+    if (ret) {
        fprintf(stderr, "bu_semaphore_acquire(): pthread_mutex_unlock() failed 
on [%d]\n", i);
-       bu_bomb("fatal semaphore acquisition failure");
+       sem_bomb(ret);
     }
 #  endif
 

Modified: brlcad/branches/dm-fb-merge/src/libged/draw.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libged/draw.c       2020-04-23 23:26:14 UTC 
(rev 75597)
+++ brlcad/branches/dm-fb-merge/src/libged/draw.c       2020-04-23 23:35:43 UTC 
(rev 75598)
@@ -577,7 +577,7 @@
        if (BU_LIST_IS_EMPTY(&(vbp->head[i])))
            continue;
        snprintf(namebuf, 64, "%s%lx", shortname, vbp->rgb[i]);
-       invent_solid(gedp->ged_gdp->gd_headDisplay, gedp->ged_wdbp->dbip, 
gedp->ged_create_vlist_solid_callback, gedp->ged_free_vlist_callback, namebuf, 
&vbp->head[i], vbp->rgb[i], copy, 0.0, 0, gedp->freesolid, 0);
+       invent_solid(gedp->ged_gdp->gd_headDisplay, gedp->ged_wdbp->dbip, 
gedp->ged_create_vlist_solid_callback, gedp->ged_free_vlist_callback, namebuf, 
&vbp->head[i], vbp->rgb[i], copy, 1.0, 0, gedp->freesolid, 0);
     }
 }
 

Modified: brlcad/branches/dm-fb-merge/src/libged/vdraw.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libged/vdraw.c      2020-04-23 23:26:14 UTC 
(rev 75597)
+++ brlcad/branches/dm-fb-merge/src/libged/vdraw.c      2020-04-23 23:35:43 UTC 
(rev 75598)
@@ -542,7 +542,7 @@
     }
 
     /* 0 means OK, -1 means conflict with real solid name */
-    idx = invent_solid(gedp->ged_gdp->gd_headDisplay, gedp->ged_wdbp->dbip, 
gedp->ged_create_vlist_solid_callback, gedp->ged_free_vlist_callback, 
solid_name, &(gedp->ged_gdp->gd_currVHead->vdc_vhd), 
gedp->ged_gdp->gd_currVHead->vdc_rgb, 1, 0.0, 0, gedp->freesolid, 0);
+    idx = invent_solid(gedp->ged_gdp->gd_headDisplay, gedp->ged_wdbp->dbip, 
gedp->ged_create_vlist_solid_callback, gedp->ged_free_vlist_callback, 
solid_name, &(gedp->ged_gdp->gd_currVHead->vdc_vhd), 
gedp->ged_gdp->gd_currVHead->vdc_rgb, 1, 1.0, 0, gedp->freesolid, 0);
 
     bu_vls_printf(gedp->ged_result_str, "%d", idx);
 

Modified: brlcad/branches/dm-fb-merge/src/librt/cache.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/librt/cache.c       2020-04-23 23:26:14 UTC 
(rev 75597)
+++ brlcad/branches/dm-fb-merge/src/librt/cache.c       2020-04-23 23:35:43 UTC 
(rev 75598)
@@ -35,7 +35,7 @@
 #ifdef HAVE_SYS_STAT_H
 #  include <sys/stat.h> /* for mkdir */
 #endif
-#include <lz4.h>
+#include "lz4.h"
 
 #include "bnetwork.h"
 

Modified: brlcad/branches/dm-fb-merge/src/mged/dodraw.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/mged/dodraw.c       2020-04-23 23:26:14 UTC 
(rev 75597)
+++ brlcad/branches/dm-fb-merge/src/mged/dodraw.c       2020-04-23 23:35:43 UTC 
(rev 75598)
@@ -62,7 +62,7 @@
 
        snprintf(namebuf, sizeof(namebuf), "%s%lx",     shortname, vbp->rgb[i]);
        /*invent_solid(namebuf, &vbp->head[i], vbp->rgb[i], copy);*/
-       invent_solid(GEDP->ged_gdp->gd_headDisplay, DBIP, createDListSolid, 
GEDP->ged_free_vlist_callback, namebuf, &vbp->head[i], vbp->rgb[i], copy, 
0.0,0, GEDP->freesolid, 0);
+       invent_solid(GEDP->ged_gdp->gd_headDisplay, DBIP, createDListSolid, 
GEDP->ged_free_vlist_callback, namebuf, &vbp->head[i], vbp->rgb[i], copy, 1.0, 
0, GEDP->freesolid, 0);
     }
 }
 

Index: brlcad/branches/dm-fb-merge/src/other
===================================================================
--- brlcad/branches/dm-fb-merge/src/other       2020-04-23 23:26:14 UTC (rev 
75597)
+++ brlcad/branches/dm-fb-merge/src/other       2020-04-23 23:35:43 UTC (rev 
75598)

Property changes on: brlcad/branches/dm-fb-merge/src/other
___________________________________________________________________
Modified: svn:mergeinfo
## -7,4 +7,4 ##
 /brlcad/branches/osg/src/other:62110-62113
 /brlcad/branches/prep-cache/src/other:68236-68933
 /brlcad/branches/tcltk86/src/other:68300-75257
-/brlcad/trunk/src/other:75440-75462
\ No newline at end of property
+/brlcad/trunk/src/other:75440-75462,75512-75597
\ No newline at end of property
Modified: brlcad/branches/dm-fb-merge/src/other/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/src/other/CMakeLists.txt        2020-04-23 
23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/src/other/CMakeLists.txt        2020-04-23 
23:35:43 UTC (rev 75598)
@@ -44,6 +44,19 @@
 unset(CMAKE_CXX_STANDARD)
 
 ###############################################################################
+# We never want our build products to be identified by searches here - we
+# either want system installed versions or nothing.  Set CMAKE_IGNORE_PATH
+# values accordingly.  NOTE: we must specify EXPLICITY all directories to
+# ignore as CMAKE_IGNORE_PATH does not automatically ignore subdirectories:
+# 
https://cmake.org/cmake/help/latest/variable/CMAKE_IGNORE_PATH.html#variable:CMAKE_IGNORE_PATH
+set(CMAKE_IGNORE_PATH
+  ${CMAKE_BINARY_DIR}/${BIN_DIR}
+  ${CMAKE_BINARY_DIR}/${LIB_DIR}
+  ${CMAKE_INSTALL_PREFIX}/${BIN_DIR}
+  ${CMAKE_INSTALL_PREFIX}/${LIB_DIR}
+  )
+
+###############################################################################
 # Unlike the misc/tools directory components built in src/other are part of
 # the distribution, not just the compilation.  Hence we need to make sure of
 # some basic compatibility between the build settings.
@@ -228,7 +241,6 @@
 mark_as_advanced(PNG_STATIC)
 mark_as_advanced(uname_executable)
 
-
 # LZ4 compression/decompression library
 set(lz4_DESCRIPTION "
 Option for enabling and disabling compilation of the lz4 data
@@ -253,81 +265,6 @@
   SetTargetFolder(lz4-static "Third Party Libraries")
 endif(BRLCAD_LZ4_BUILD)
 
-
-# FreeType Libraries - must come after ZLIB and PNG
-set(freetype_DESCRIPTION "
-Option for enabling and disabling compilation of the FreeType
-libraries provided with BRL-CAD's source code.  Default is AUTO, responsive to
-the toplevel BRLCAD_BUNDLED_LIBS option and testing first for a system
-version if BRLCAD_BUNDLED_LIBS is also AUTO.
-")
-# We don't want the Freetype distribution build targets
-set(FREETYPE_NO_DIST 1)
-THIRD_PARTY(freetype FREETYPE ft freetype_DESCRIPTION BRLCAD_LEVEL3 ALIASES 
ENABLE_FREETYPE REQUIRED_VARS "TEST_FONTCONFIG;BRLCAD_LEVEL3" FIND_NAME 
Freetype)
-if(BRLCAD_FREETYPE_BUILD)
-  set(FREETYPE_LIBRARY freetype CACHE STRING "libfreetype" FORCE)
-  mark_as_advanced(FREETYPE_LIBRARY)
-  set(FREETYPE_LIBRARIES "${FREETYPE_LIBRARY}" CACHE STRING "FreeType 
Libraries")
-  mark_as_advanced(FREETYPE_LIBRARIES)
-  set(FREETYPE_INCLUDE_DIR_freetype2
-    "${BRLCAD_SOURCE_DIR}/src/other/freetype/include"
-    CACHE STRING "FreeType freetype2 include dir" FORCE
-    )
-  mark_as_advanced(FREETYPE_INCLUDE_DIR_freetype2)
-  set(FREETYPE_INCLUDE_DIR_ft2build
-    "${CMAKE_CURRENT_BINARY_DIR}/freetype/include"
-    CACHE STRING "FreeType ft2build include dir" FORCE
-    )
-  mark_as_advanced(FREETYPE_INCLUDE_DIR_ft2build)
-  set(FREETYPE_INCLUDE_DIRS
-    "${FREETYPE_INCLUDE_DIR_freetype2};${FREETYPE_INCLUDE_DIR_ft2build}"
-    CACHE STRING "Directories containing FreeType headers." FORCE)
-  mark_as_advanced(FREETYPE_INCLUDE_DIRS)
-  set(FREETYPE_VERSION_STRING "2.6.5" CACHE STRING "Freetype version" FORCE)
-  SetTargetFolder(freetype "Third Party Libraries")
-endif(BRLCAD_FREETYPE_BUILD)
-if(NOT "${CMAKE_CURRENT_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
-  
DISTCLEAN("${CMAKE_CURRENT_BINARY_DIR}/freetype/include/freetype/config/ftconfig.h")
-  
DISTCLEAN("${CMAKE_CURRENT_BINARY_DIR}/freetype/include/freetype/config/ftoption.h")
-endif(NOT "${CMAKE_CURRENT_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
-DISTCLEAN("${CMAKE_CURRENT_BINARY_DIR}/freetype/include/freetype/config/ftconfig.h-new")
-DISTCLEAN("${CMAKE_CURRENT_BINARY_DIR}/freetype/include/freetype/config/ftoption.h-new")
-
-# Fontconfig library - must come after PNG and FREETYPE
-set(fontconfig_DESCRIPTION "
-Option for enabling and disabling compilation of the Fontconfig
-library provided with BRL-CAD's source code.  Default is AUTO, responsive to
-the toplevel BRLCAD_BUNDLED_LIBS option and testing first for a system
-version if BRLCAD_BUNDLED_LIBS is also AUTO.
-")
-THIRD_PARTY(fontconfig Fontconfig ft fontconfig_DESCRIPTION BRLCAD_LEVEL3 
ALIASES ENABLE_FONTCONFIG REQUIRED_VARS "TEST_FONTCONFIG;BRLCAD_LEVEL3" 
FIND_NAME Fontconfig)
-if(BRLCAD_Fontconfig_BUILD)
-  set(Fontconfig_LIBRARY fontconfig CACHE STRING "fontconfig" FORCE)
-  mark_as_advanced(Fontconfig_LIBRARY)
-  set(Fontconfig_LIBRARIES "${Fontconfig_LIBRARY}" CACHE STRING "FreeType 
Libraries")
-  mark_as_advanced(Fontconfig_LIBRARIES)
-  set(Fontconfig_INCLUDE_DIR
-    
"${BRLCAD_BINARY_DIR}/src/other/fontconfig/include;${BRLCAD_SOURCE_DIR}/src/other/fontconfig/include"
-    CACHE STRING "fontconfig include dir" FORCE)
-  mark_as_advanced(Fontconfig_INCLUDE_DIR)
-  set(Fontconfig_INCLUDE_DIRS "${Fontconfig_INCLUDE_DIR}" CACHE STRING 
"Fontconfig headers." FORCE)
-  mark_as_advanced(Fontconfig_INCLUDE_DIRS)
-  set(Fontconfig_VERSION "2.13.92" CACHE STRING "Fontconfig version" FORCE)
-  set(Fontconfig_COMPILE_OPTIONS "" CACHE STRING "Fontconfig compile options" 
FORCE)
-  set(pkgcfg_lib_PKG_FONTCONFIG_fontconfig fontconfig)
-  set(pkgcfg_lib_PKG_FONTCONFIG_freetype ${FREETYPE_LIBRARIES})
-  SetTargetFolder(fontconfig "Third Party Libraries")
-
-  # TODO - in order for this to work, we may need to change how the built copy
-  # of Tk uses fontconfig.  We want to look for our own (guaranteed) fonts
-  # rather than the system fonts for consistency, but that means building our
-  # own share/fontconfig directory with a config file and cache.  Tk then needs
-  # to call fontconfig to look there rather than the system version.  There are
-  # some test programs in the tests directory of the main fontconfig
-  # distribution which may offer some hints on what is needed for this...
-
-endif(BRLCAD_Fontconfig_BUILD)
-
 # libnetpbm Library support for pnm,ppm,pbm, etc. image files
 set(netpbm_DESCRIPTION "
 Option for enabling and disabling compilation of the netpbm library
@@ -346,7 +283,6 @@
 DISTCLEAN("${CMAKE_CURRENT_BINARY_DIR}/libnetpbm/compile.h")
 DISTCLEAN("${CMAKE_CURRENT_BINARY_DIR}/libnetpbm/pm_config.h")
 
-
 # libutahrle Library - The directory to perform ADD_SUBDIRECTORY on
 # and the include directory for utahrle are different, so override the
 # macro's setting of UTAHRLE_INCLUDE_DIR here.
@@ -372,6 +308,14 @@
 #                Tcl/Tk and related extensions
 ####################################################################
 
+# Make sure we actually look for these each time...
+unset(TCL_TCLSH CACHE)
+unset(TCL_LIBRARY CACHE)
+unset(TCL_INCLUDE_PATH CACHE)
+unset(TK_WISH CACHE)
+unset(TK_LIBRARY CACHE)
+unset(TK_INCLUDE_PATH CACHE)
+
 set(tcl_DESCRIPTION "
 Option for enabling and disabling compilation of the Tcl library
 provided with BRL-CAD's source code.  Default is AUTO, responsive to
@@ -383,41 +327,62 @@
 
 if(BRLCAD_TCL_BUILD)
 
-  SetTargetFolder(tclsh "Third Party Executables")
-  SetTargetFolder(tcl "Third Party Libraries")
-  SetTargetFolder(tclstub "Third Party Libraries")
-  # Set the variables ourselves since FindTCL.cmake doesn't know about our 
build
+  # Let the BRL-CAD compilation know we have Tcl
+  CONFIG_H_APPEND(BRLCAD "#define HAVE_TCL_H 1\n")
+
+  # There is no system init.tcl that we need to provide a path for
+  CONFIG_H_APPEND(BRLCAD "#define TCL_SYSTEM_INITTCL_PATH \"\"\n")
+
+  # Set the necessary variables ourselves since FindTCL.cmake doesn't know 
about our build
   set(TCL_LIBRARY tcl CACHE STRING "TCL_LIBRARY" FORCE)
   set(TCL_STUB_LIBRARY tclstub CACHE STRING "TCL_LIBRARY" FORCE)
-  set(TCL_INCLUDE_PATH "${CMAKE_BINARY_DIR}/${INCLUDE_DIR}" CACHE STRING "Tcl 
include path" FORCE)
   set(TCL_TCLSH tclsh CACHE STRING "Tcl shell" FORCE)
   set(TCL_VERSION_MAJOR "8" CACHE STRING "Tcl MAJOR version" FORCE)
   set(TCL_VERSION_MINOR "6" CACHE STRING "Tcl MINOR version" FORCE)
-  CONFIG_H_APPEND(BRLCAD "#define HAVE_TCL_H 1\n")
-  CONFIG_H_APPEND(BRLCAD "#define TCL_SYSTEM_INITTCL_PATH \"\"\n")
-  DISTCLEAN("${CMAKE_BINARY_DIR}/lib/tcl8")
-  DISTCLEAN("${CMAKE_BINARY_DIR}/lib/tcl8.6")
+
+  # For the include path, use the TCL_INCLUDE_PATH set in the tcl build itself;
+  # we are not installing headers, so we have to look in the source tree
+  get_directory_property(TCL_INCLUDE_PATH DIRECTORY tcl DEFINITION 
TCL_INCLUDE_PATH)
+  set(TCL_INCLUDE_PATH "${TCL_INCLUDE_PATH}" CACHE STRING "Tcl include path" 
FORCE)
+
+  # Let Distclean know it will have work to do
+  DISTCLEAN("${CMAKE_BINARY_DIR}/${LIB_DIR}/tcl8")
+  DISTCLEAN("${CMAKE_BINARY_DIR}/${LIB_DIR}/tcl8.6")
+
+  # Group the targets in Visual Studio project files
+  SetTargetFolder(tclsh "Third Party Executables")
+  SetTargetFolder(tcl "Third Party Libraries")
+  SetTargetFolder(tclstub "Third Party Libraries")
+
 else(BRLCAD_TCL_BUILD)
+
+  # We're using the system Tcl, but need some extra information.  FindTCL.cmake
+  # doesn't give us a stub library location, so we need to go find it 
ourselves.
   get_filename_component(TCL_LIB_PATH "${TCL_LIBRARY}" DIRECTORY)
   find_library(TCL_STUB_LIBRARY tclstub NAMES tclstub86 tclstub8.6 PATHS 
${TCL_LIB_PATH})
-    BRLCAD_INCLUDE_FILE(tcl.h HAVE_TCL_H)
-    # We're going to need the path to the system init.tcl for btclsh and bwish
-    set(inittcl_script "
+
+  # Make sure we've got the header file
+  BRLCAD_INCLUDE_FILE(tcl.h HAVE_TCL_H)
+
+  # We're going to need the path to the system init.tcl for btclsh and bwish -
+  # extract it from the system Tcl
+  set(inittcl_script "
 set filename \"${CMAKE_BINARY_DIR}/CMakeTmp/tcl_inittcl\"
 set fileID [open $filename \"w\"]
 puts $fileID $auto_path
 close $fileID
 exit
-")
-    set(inittcl_scriptfile "${CMAKE_BINARY_DIR}/CMakeTmp/tcl_inittcl.tcl")
-    file(WRITE ${inittcl_scriptfile} ${inittcl_script})
+  ")
+  set(inittcl_scriptfile "${CMAKE_BINARY_DIR}/CMakeTmp/tcl_inittcl.tcl")
+  file(WRITE ${inittcl_scriptfile} ${inittcl_script})
   exec_program(${TCL_TCLSH} ARGS ${inittcl_scriptfile} OUTPUT_VARIABLE 
EXECOUTPUT)
-    file(READ "${CMAKE_BINARY_DIR}/CMakeTmp/tcl_inittcl" tcl_inittcl_raw)
+  file(READ "${CMAKE_BINARY_DIR}/CMakeTmp/tcl_inittcl" tcl_inittcl_raw)
   string(REGEX REPLACE "\n" "" tcl_inittcl_paths_1 ${tcl_inittcl_raw})
   string(REGEX REPLACE " " ";" tcl_inittcl_paths ${tcl_inittcl_paths_1})
   find_path(tcl_inittcl NAMES init.tcl PATHS ${tcl_inittcl_paths})
-    mark_as_advanced(tcl_inittcl)
-    CONFIG_H_APPEND(BRLCAD "#define TCL_SYSTEM_INITTCL_PATH 
\"${tcl_inittcl}\"\n")
+  mark_as_advanced(tcl_inittcl)
+  CONFIG_H_APPEND(BRLCAD "#define TCL_SYSTEM_INITTCL_PATH 
\"${tcl_inittcl}\"\n")
+
 endif(BRLCAD_TCL_BUILD)
 mark_as_advanced(TCL_COMPILATION_TRACING)
 mark_as_advanced(TCL_COMPILE_STATS)
@@ -449,37 +414,28 @@
 if(BRLCAD_ENABLE_AQUA)
   set(TK_ENABLE_AQUA ON CACHE STRING "BRL-CAD setting to enable AQUA" FORCE)
 endif(BRLCAD_ENABLE_AQUA)
-if (NOT TEST_FONTCONFIG AND BRLCAD_PNG_BUILD)
-  set(TK_DISABLE_XFT 1 CACHE STRING "Disable due to building local libpng" 
FORCE)
-  mark_as_advanced(TK_DISABLE_XFT)
-endif (NOT TEST_FONTCONFIG AND BRLCAD_PNG_BUILD)
+
 THIRD_PARTY_TCL_PACKAGE(Tk tk "${TCL_TCLSH}" "tcl" 
"BRLCAD_ENABLE_TK;BRLCAD_LEVEL2" "tk" tk_ALIASES tk_DESCRIPTION)
+
 if(BRLCAD_TK_BUILD)
-  SetTargetFolder(wish "Third Party Executables")
-  SetTargetFolder(tk "Third Party Libraries") 
-  SetTargetFolder(tkstub "Third Party Libraries") 
+
+  # Let the BRL-CAD compilation know we have Tcl
+  CONFIG_H_APPEND(BRLCAD "#define HAVE_TK_H 1\n")
+
+  # Set the necessary variables ourselves since FindTCL.cmake doesn't know 
about our build
   set(TK_LIBRARY tk CACHE STRING "TK_LIBRARY" FORCE)
   set(TK_STUB_LIBRARY tkstub CACHE STRING "TK_LIBRARY" FORCE)
-  if (MSVC)
-    # When building packages without X11 on Windows, we need more headers.
-    set(TK_INCLUDE_PATH 
"${CMAKE_BINARY_DIR}/${INCLUDE_DIR};${CMAKE_CURRENT_SOURCE_DIR}/tk/xlib;${CMAKE_CURRENT_SOURCE_DIR}/tk/win;${CMAKE_CURRENT_SOURCE_DIR}/tk/generic"
 CACHE STRING "Tk include path" FORCE)
-  else (MSVC)
-    set(TK_INCLUDE_PATH "${CMAKE_BINARY_DIR}/${INCLUDE_DIR}" CACHE STRING "Tk 
include path" FORCE)
-  endif (MSVC)
-  set(TK_WISH wish CACHE STRING "Tk shell" FORCE)
-  if(WIN32)
-    set(TK_SYSTEM_GRAPHICS "win32" CACHE STRING "Tk system graphics" FORCE)
-  elseif(APPLE)
-    if(OPENGL_USE_AQUA)
-      set(TK_SYSTEM_GRAPHICS "aqua" CACHE STRING "Tk system graphics" FORCE)
-    ELSE(OPENGL_USE_AQUA)
-      set(TK_SYSTEM_GRAPHICS "x11" CACHE STRING "Tk system graphics" FORCE)
-    endif(OPENGL_USE_AQUA)
-  elseif(UNIX)
-    set(TK_SYSTEM_GRAPHICS "x11" CACHE STRING "Tk system graphics" FORCE)
-  endif(WIN32)
-  CONFIG_H_APPEND(BRLCAD "#define HAVE_TK_H 1\n")
-  mark_as_advanced(TK-ENABLE_FREETYPE)
+
+  # For the include path, use the TK_INCLUDE_PATH set in the tk build itself;
+  # we are not installing headers, so we have to look in the source tree
+  get_directory_property(TK_INCLUDE_PATH DIRECTORY tk DEFINITION 
TK_INCLUDE_PATH)
+  set(TK_INCLUDE_PATH "${TK_INCLUDE_PATH}" CACHE STRING "Tk include path" 
FORCE)
+
+  get_directory_property(TK_SYSTEM_GRAPHICS DIRECTORY tk DEFINITION 
TK_SYSTEM_GRAPHICS)
+  set(TK_SYSTEM_GRAPHICS "${TK_SYSTEM_GRAPHICS}" CACHE STRING "Tk system 
graphics type" FORCE)
+
+  # Let Distclean know it will have work to do both here and in
+  # the lib directory
   DISTCLEAN("${CMAKE_CURRENT_BINARY_DIR}/tk/doc/Makefile")
   DISTCLEAN("${CMAKE_CURRENT_BINARY_DIR}/tk/doc/man1")
   DISTCLEAN("${CMAKE_CURRENT_BINARY_DIR}/tk/doc/man3")
@@ -486,10 +442,30 @@
   DISTCLEAN("${CMAKE_CURRENT_BINARY_DIR}/tk/doc/mann")
   DISTCLEAN("${CMAKE_CURRENT_BINARY_DIR}/tk/library/Makefile")
   DISTCLEAN("${CMAKE_CURRENT_BINARY_DIR}/tk/pkgIndex.tcl")
-  DISTCLEAN("${CMAKE_BINARY_DIR}/lib/tk8.6")
-  DISTCLEAN("${CMAKE_BINARY_DIR}/lib/tk8.6.10")
-elseif(BRLCAD_TK_BUILD AND BRLCAD_ENABLE_TK)
-    BRLCAD_INCLUDE_FILE(tk.h HAVE_TK_H)
+  DISTCLEAN("${CMAKE_BINARY_DIR}/${LIB_DIR}/tk8.6")
+  DISTCLEAN("${CMAKE_BINARY_DIR}/${LIB_DIR}/tk8.6.10")
+
+  # Group the targets in Visual Studio project files
+  SetTargetFolder(wish "Third Party Executables")
+  SetTargetFolder(tk "Third Party Libraries")
+  SetTargetFolder(tkstub "Third Party Libraries")
+
+elseif(BRLCAD_ENABLE_TK)
+
+  set(HAVE_TK_H 1)
+
+  # Packages probably still need to know the system graphics package
+  if (NOT WIN32)
+    if (APPLE AND TK_ENABLE_AQUA)
+      set(TK_SYSTEM_GRAPHICS aqua)
+    else ()
+      set(TK_SYSTEM_GRAPHICS x11)
+    endif (APPLE AND TK_ENABLE_AQUA)
+  else (NOT WIN32)
+    set(TK_SYSTEM_GRAPHICS win32)
+  endif (NOT WIN32)
+  set(TK_SYSTEM_GRAPHICS "${TK_SYSTEM_GRAPHICS}" CACHE STRING "Tk system 
graphics type" FORCE)
+
 endif(BRLCAD_TK_BUILD)
 mark_as_advanced(TK_INCLUDE_PATH)
 mark_as_advanced(TK_LIBRARY)
@@ -513,25 +489,13 @@
 #
 # http://core.tcl.tk/itcl/tktview/61952ca33e9e58df9e0519a0b4583a144e8ec77b
 #
-# We're set up below to use either v3 or v4, depending on which of the below
-# variables are uncommented
+# Consequently we need to provide the older v3
 set(ITCL_DIR itcl3)
 set(ITCL_VER "3.4")
-include("${CMAKE_CURRENT_SOURCE_DIR}/itcl.dist")
-CMAKEFILES_IN_DIR(itcl_ignore_files itcl)
-#set(ITCL_DIR itcl)
-#set(ITCL_VER "4.2.0")
 include("${CMAKE_CURRENT_SOURCE_DIR}/itcl3.dist")
 CMAKEFILES_IN_DIR(itcl3_ignore_files itcl3)
-
-
 set(ITK_DIR itk3)
 set(ITK_VER "3.4")
-include("${CMAKE_CURRENT_SOURCE_DIR}/itk.dist")
-CMAKEFILES_IN_DIR(itk_ignore_files itk)
-
-#set(ITK_DIR itk)
-#set(ITK_VER "4.1.0")
 include("${CMAKE_CURRENT_SOURCE_DIR}/itk3.dist")
 CMAKEFILES_IN_DIR(itk3_ignore_files itk3)
 

Deleted: brlcad/branches/dm-fb-merge/src/other/fontconfig.dist
===================================================================
--- brlcad/branches/dm-fb-merge/src/other/fontconfig.dist       2020-04-23 
23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/src/other/fontconfig.dist       2020-04-23 
23:35:43 UTC (rev 75598)
@@ -1,81 +0,0 @@
-set(fontconfig_ignore_files
-CMakeLists.txt
-COPYING
-COPYING.expat
-README
-README.cmake
-expat/ConfigureChecks.cmake
-expat/README.md
-expat/ascii.h
-expat/asciitab.h
-expat/expat.h
-expat/expat_config.h.cmake
-expat/expat_external.h
-expat/iasciitab.h
-expat/internal.h
-expat/latin1tab.h
-expat/nametab.h
-expat/siphash.h
-expat/utf8tab.h
-expat/winconfig.h
-expat/xmlparse.c
-expat/xmlrole.c
-expat/xmlrole.h
-expat/xmltok.c
-expat/xmltok.h
-expat/xmltok_impl.c
-expat/xmltok_impl.h
-expat/xmltok_ns.c
-include/config.h.in
-include/fc-case/fccase.h
-include/fc-lang/fclang.h
-include/fcalias.h
-include/fcaliastail.h
-include/fcarch.h
-include/fcatomic.h
-include/fcdeprecate.h
-include/fcftalias.h
-include/fcftaliastail.h
-include/fcftint.h
-include/fcint.h
-include/fcmutex.h
-include/fcobjs.h
-include/fcobjshash.gperf.h
-include/fcobjshash.h
-include/fcstdint.h
-include/fcwindows.h
-include/fontconfig/fcfreetype.h
-include/fontconfig/fcprivate.h
-include/fontconfig/fontconfig.h
-include/ftglue.h
-src/CMakeLists.txt
-src/fcarch.c
-src/fcatomic.c
-src/fccache.c
-src/fccfg.c
-src/fccharset.c
-src/fccompat.c
-src/fcdbg.c
-src/fcdefault.c
-src/fcdir.c
-src/fcformat.c
-src/fcfreetype.c
-src/fcfs.c
-src/fchash.c
-src/fcinit.c
-src/fclang.c
-src/fclist.c
-src/fcmatch.c
-src/fcmatrix.c
-src/fcname.c
-src/fcobjs.c
-src/fcpat.c
-src/fcptrlist.c
-src/fcrange.c
-src/fcserialize.c
-src/fcstat.c
-src/fcstr.c
-src/fcweight.c
-src/fcxml.c
-src/ftglue.c
-)

Deleted: brlcad/branches/dm-fb-merge/src/other/freetype.dist
===================================================================
--- brlcad/branches/dm-fb-merge/src/other/freetype.dist 2020-04-23 23:26:14 UTC 
(rev 75597)
+++ brlcad/branches/dm-fb-merge/src/other/freetype.dist 2020-04-23 23:35:43 UTC 
(rev 75598)
@@ -1,451 +0,0 @@
-set(freetype_ignore_files
-CMakeLists.txt
-README
-builds/unix/ftconfig.in
-builds/windows/ftdebug.c
-devel/ft2build.h
-devel/ftoption.h
-include/freetype/config/ftconfig.h
-include/freetype/config/ftheader.h
-include/freetype/config/ftmodule.h
-include/freetype/config/ftoption.h
-include/freetype/config/ftstdlib.h
-include/freetype/freetype.h
-include/freetype/ftadvanc.h
-include/freetype/ftautoh.h
-include/freetype/ftbbox.h
-include/freetype/ftbdf.h
-include/freetype/ftbitmap.h
-include/freetype/ftbzip2.h
-include/freetype/ftcache.h
-include/freetype/ftcffdrv.h
-include/freetype/ftchapters.h
-include/freetype/ftcid.h
-include/freetype/fterrdef.h
-include/freetype/fterrors.h
-include/freetype/ftfntfmt.h
-include/freetype/ftgasp.h
-include/freetype/ftglyph.h
-include/freetype/ftgxval.h
-include/freetype/ftgzip.h
-include/freetype/ftimage.h
-include/freetype/ftincrem.h
-include/freetype/ftlcdfil.h
-include/freetype/ftlist.h
-include/freetype/ftlzw.h
-include/freetype/ftmac.h
-include/freetype/ftmm.h
-include/freetype/ftmodapi.h
-include/freetype/ftmoderr.h
-include/freetype/ftotval.h
-include/freetype/ftoutln.h
-include/freetype/ftpfr.h
-include/freetype/ftrender.h
-include/freetype/ftsizes.h
-include/freetype/ftsnames.h
-include/freetype/ftstroke.h
-include/freetype/ftsynth.h
-include/freetype/ftsystem.h
-include/freetype/fttrigon.h
-include/freetype/ftttdrv.h
-include/freetype/fttypes.h
-include/freetype/ftwinfnt.h
-include/freetype/internal/autohint.h
-include/freetype/internal/ftcalc.h
-include/freetype/internal/ftdebug.h
-include/freetype/internal/ftdriver.h
-include/freetype/internal/ftgloadr.h
-include/freetype/internal/fthash.h
-include/freetype/internal/ftmemory.h
-include/freetype/internal/ftobjs.h
-include/freetype/internal/ftpic.h
-include/freetype/internal/ftrfork.h
-include/freetype/internal/ftserv.h
-include/freetype/internal/ftstream.h
-include/freetype/internal/fttrace.h
-include/freetype/internal/ftvalid.h
-include/freetype/internal/internal.h
-include/freetype/internal/psaux.h
-include/freetype/internal/pshints.h
-include/freetype/internal/services/svbdf.h
-include/freetype/internal/services/svcid.h
-include/freetype/internal/services/svfntfmt.h
-include/freetype/internal/services/svgldict.h
-include/freetype/internal/services/svgxval.h
-include/freetype/internal/services/svkern.h
-include/freetype/internal/services/svmm.h
-include/freetype/internal/services/svotval.h
-include/freetype/internal/services/svpfr.h
-include/freetype/internal/services/svpostnm.h
-include/freetype/internal/services/svprop.h
-include/freetype/internal/services/svpscmap.h
-include/freetype/internal/services/svpsinfo.h
-include/freetype/internal/services/svsfnt.h
-include/freetype/internal/services/svttcmap.h
-include/freetype/internal/services/svtteng.h
-include/freetype/internal/services/svttglyf.h
-include/freetype/internal/services/svwinfnt.h
-include/freetype/internal/sfnt.h
-include/freetype/internal/t1types.h
-include/freetype/internal/tttypes.h
-include/freetype/t1tables.h
-include/freetype/ttnameid.h
-include/freetype/tttables.h
-include/freetype/tttags.h
-include/freetype/ttunpat.h
-include/ft2build.h
-src/autofit/afangles.c
-src/autofit/afangles.h
-src/autofit/afblue.c
-src/autofit/afblue.cin
-src/autofit/afblue.dat
-src/autofit/afblue.h
-src/autofit/afblue.hin
-src/autofit/afcjk.c
-src/autofit/afcjk.h
-src/autofit/afcover.h
-src/autofit/afdummy.c
-src/autofit/afdummy.h
-src/autofit/aferrors.h
-src/autofit/afglobal.c
-src/autofit/afglobal.h
-src/autofit/afhints.c
-src/autofit/afhints.h
-src/autofit/afindic.c
-src/autofit/afindic.h
-src/autofit/aflatin.c
-src/autofit/aflatin.h
-src/autofit/aflatin2.c
-src/autofit/aflatin2.h
-src/autofit/afloader.c
-src/autofit/afloader.h
-src/autofit/afmodule.c
-src/autofit/afmodule.h
-src/autofit/afpic.c
-src/autofit/afpic.h
-src/autofit/afranges.c
-src/autofit/afranges.h
-src/autofit/afscript.h
-src/autofit/afshaper.c
-src/autofit/afshaper.h
-src/autofit/afstyles.h
-src/autofit/aftypes.h
-src/autofit/afwarp.c
-src/autofit/afwarp.h
-src/autofit/afwrtsys.h
-src/autofit/autofit.c
-src/base/basepic.c
-src/base/basepic.h
-src/base/ftadvanc.c
-src/base/ftapi.c
-src/base/ftbase.c
-src/base/ftbase.h
-src/base/ftbbox.c
-src/base/ftbdf.c
-src/base/ftbitmap.c
-src/base/ftcalc.c
-src/base/ftcid.c
-src/base/ftdbgmem.c
-src/base/ftdebug.c
-src/base/ftfntfmt.c
-src/base/ftfstype.c
-src/base/ftgasp.c
-src/base/ftgloadr.c
-src/base/ftglyph.c
-src/base/ftgxval.c
-src/base/fthash.c
-src/base/ftinit.c
-src/base/ftlcdfil.c
-src/base/ftmac.c
-src/base/ftmm.c
-src/base/ftobjs.c
-src/base/ftotval.c
-src/base/ftoutln.c
-src/base/ftpatent.c
-src/base/ftpfr.c
-src/base/ftpic.c
-src/base/ftrfork.c
-src/base/ftsnames.c
-src/base/ftstream.c
-src/base/ftstroke.c
-src/base/ftsynth.c
-src/base/ftsystem.c
-src/base/fttrigon.c
-src/base/fttype1.c
-src/base/ftutil.c
-src/base/ftwinfnt.c
-src/base/md5.c
-src/base/md5.h
-src/bdf/README
-src/bdf/bdf.c
-src/bdf/bdf.h
-src/bdf/bdfdrivr.c
-src/bdf/bdfdrivr.h
-src/bdf/bdferror.h
-src/bdf/bdflib.c
-src/bzip2/ftbzip2.c
-src/cache/ftcache.c
-src/cache/ftcbasic.c
-src/cache/ftccache.c
-src/cache/ftccache.h
-src/cache/ftccback.h
-src/cache/ftccmap.c
-src/cache/ftcerror.h
-src/cache/ftcglyph.c
-src/cache/ftcglyph.h
-src/cache/ftcimage.c
-src/cache/ftcimage.h
-src/cache/ftcmanag.c
-src/cache/ftcmanag.h
-src/cache/ftcmru.c
-src/cache/ftcmru.h
-src/cache/ftcsbits.c
-src/cache/ftcsbits.h
-src/cff/cf2arrst.c
-src/cff/cf2arrst.h
-src/cff/cf2blues.c
-src/cff/cf2blues.h
-src/cff/cf2error.c
-src/cff/cf2error.h
-src/cff/cf2fixed.h
-src/cff/cf2font.c
-src/cff/cf2font.h
-src/cff/cf2ft.c
-src/cff/cf2ft.h
-src/cff/cf2glue.h
-src/cff/cf2hints.c
-src/cff/cf2hints.h
-src/cff/cf2intrp.c
-src/cff/cf2intrp.h
-src/cff/cf2read.c
-src/cff/cf2read.h
-src/cff/cf2stack.c
-src/cff/cf2stack.h
-src/cff/cf2types.h
-src/cff/cff.c
-src/cff/cffcmap.c
-src/cff/cffcmap.h
-src/cff/cffdrivr.c
-src/cff/cffdrivr.h
-src/cff/cfferrs.h
-src/cff/cffgload.c
-src/cff/cffgload.h
-src/cff/cffload.c
-src/cff/cffload.h
-src/cff/cffobjs.c
-src/cff/cffobjs.h
-src/cff/cffparse.c
-src/cff/cffparse.h
-src/cff/cffpic.c
-src/cff/cffpic.h
-src/cff/cfftoken.h
-src/cff/cfftypes.h
-src/cid/ciderrs.h
-src/cid/cidgload.c
-src/cid/cidgload.h
-src/cid/cidload.c
-src/cid/cidload.h
-src/cid/cidobjs.c
-src/cid/cidobjs.h
-src/cid/cidparse.c
-src/cid/cidparse.h
-src/cid/cidriver.c
-src/cid/cidriver.h
-src/cid/cidtoken.h
-src/cid/type1cid.c
-src/gxvalid/README
-src/gxvalid/gxvalid.c
-src/gxvalid/gxvalid.h
-src/gxvalid/gxvbsln.c
-src/gxvalid/gxvcommn.c
-src/gxvalid/gxvcommn.h
-src/gxvalid/gxverror.h
-src/gxvalid/gxvfeat.c
-src/gxvalid/gxvfeat.h
-src/gxvalid/gxvfgen.c
-src/gxvalid/gxvjust.c
-src/gxvalid/gxvkern.c
-src/gxvalid/gxvlcar.c
-src/gxvalid/gxvmod.c
-src/gxvalid/gxvmod.h
-src/gxvalid/gxvmort.c
-src/gxvalid/gxvmort.h
-src/gxvalid/gxvmort0.c
-src/gxvalid/gxvmort1.c
-src/gxvalid/gxvmort2.c
-src/gxvalid/gxvmort4.c
-src/gxvalid/gxvmort5.c
-src/gxvalid/gxvmorx.c
-src/gxvalid/gxvmorx.h
-src/gxvalid/gxvmorx0.c
-src/gxvalid/gxvmorx1.c
-src/gxvalid/gxvmorx2.c
-src/gxvalid/gxvmorx4.c
-src/gxvalid/gxvmorx5.c
-src/gxvalid/gxvopbd.c
-src/gxvalid/gxvprop.c
-src/gxvalid/gxvtrak.c
-src/gzip/ftgzip.c
-src/lzw/ftlzw.c
-src/lzw/ftzopen.c
-src/lzw/ftzopen.h
-src/otvalid/otvalid.c
-src/otvalid/otvalid.h
-src/otvalid/otvbase.c
-src/otvalid/otvcommn.c
-src/otvalid/otvcommn.h
-src/otvalid/otverror.h
-src/otvalid/otvgdef.c
-src/otvalid/otvgpos.c
-src/otvalid/otvgpos.h
-src/otvalid/otvgsub.c
-src/otvalid/otvjstf.c
-src/otvalid/otvmath.c
-src/otvalid/otvmod.c
-src/otvalid/otvmod.h
-src/pcf/README
-src/pcf/pcf.c
-src/pcf/pcf.h
-src/pcf/pcfdrivr.c
-src/pcf/pcfdrivr.h
-src/pcf/pcferror.h
-src/pcf/pcfread.c
-src/pcf/pcfread.h
-src/pcf/pcfutil.c
-src/pcf/pcfutil.h
-src/pfr/pfr.c
-src/pfr/pfrcmap.c
-src/pfr/pfrcmap.h
-src/pfr/pfrdrivr.c
-src/pfr/pfrdrivr.h
-src/pfr/pfrerror.h
-src/pfr/pfrgload.c
-src/pfr/pfrgload.h
-src/pfr/pfrload.c
-src/pfr/pfrload.h
-src/pfr/pfrobjs.c
-src/pfr/pfrobjs.h
-src/pfr/pfrsbit.c
-src/pfr/pfrsbit.h
-src/pfr/pfrtypes.h
-src/psaux/afmparse.c
-src/psaux/afmparse.h
-src/psaux/psaux.c
-src/psaux/psauxerr.h
-src/psaux/psauxmod.c
-src/psaux/psauxmod.h
-src/psaux/psconv.c
-src/psaux/psconv.h
-src/psaux/psobjs.c
-src/psaux/psobjs.h
-src/psaux/t1cmap.c
-src/psaux/t1cmap.h
-src/psaux/t1decode.c
-src/psaux/t1decode.h
-src/pshinter/pshalgo.c
-src/pshinter/pshalgo.h
-src/pshinter/pshglob.c
-src/pshinter/pshglob.h
-src/pshinter/pshinter.c
-src/pshinter/pshmod.c
-src/pshinter/pshmod.h
-src/pshinter/pshnterr.h
-src/pshinter/pshpic.c
-src/pshinter/pshpic.h
-src/pshinter/pshrec.c
-src/pshinter/pshrec.h
-src/psnames/psmodule.c
-src/psnames/psmodule.h
-src/psnames/psnamerr.h
-src/psnames/psnames.c
-src/psnames/pspic.c
-src/psnames/pspic.h
-src/psnames/pstables.h
-src/raster/ftmisc.h
-src/raster/ftraster.c
-src/raster/ftraster.h
-src/raster/ftrend1.c
-src/raster/ftrend1.h
-src/raster/raster.c
-src/raster/rasterrs.h
-src/raster/rastpic.c
-src/raster/rastpic.h
-src/sfnt/pngshim.c
-src/sfnt/pngshim.h
-src/sfnt/sfdriver.c
-src/sfnt/sfdriver.h
-src/sfnt/sferrors.h
-src/sfnt/sfnt.c
-src/sfnt/sfntpic.c
-src/sfnt/sfntpic.h
-src/sfnt/sfobjs.c
-src/sfnt/sfobjs.h
-src/sfnt/ttbdf.c
-src/sfnt/ttbdf.h
-src/sfnt/ttcmap.c
-src/sfnt/ttcmap.h
-src/sfnt/ttcmapc.h
-src/sfnt/ttkern.c
-src/sfnt/ttkern.h
-src/sfnt/ttload.c
-src/sfnt/ttload.h
-src/sfnt/ttmtx.c
-src/sfnt/ttmtx.h
-src/sfnt/ttpost.c
-src/sfnt/ttpost.h
-src/sfnt/ttsbit.c
-src/sfnt/ttsbit.h
-src/smooth/ftgrays.c
-src/smooth/ftgrays.h
-src/smooth/ftsmerrs.h
-src/smooth/ftsmooth.c
-src/smooth/ftsmooth.h
-src/smooth/ftspic.c
-src/smooth/ftspic.h
-src/smooth/smooth.c
-src/truetype/truetype.c
-src/truetype/ttdriver.c
-src/truetype/ttdriver.h
-src/truetype/tterrors.h
-src/truetype/ttgload.c
-src/truetype/ttgload.h
-src/truetype/ttgxvar.c
-src/truetype/ttgxvar.h
-src/truetype/ttinterp.c
-src/truetype/ttinterp.h
-src/truetype/ttobjs.c
-src/truetype/ttobjs.h
-src/truetype/ttpic.c
-src/truetype/ttpic.h
-src/truetype/ttpload.c
-src/truetype/ttpload.h
-src/truetype/ttsubpix.c
-src/truetype/ttsubpix.h
-src/type1/t1afm.c
-src/type1/t1afm.h
-src/type1/t1driver.c
-src/type1/t1driver.h
-src/type1/t1errors.h
-src/type1/t1gload.c
-src/type1/t1gload.h
-src/type1/t1load.c
-src/type1/t1load.h
-src/type1/t1objs.c
-src/type1/t1objs.h
-src/type1/t1parse.c
-src/type1/t1parse.h
-src/type1/t1tokens.h
-src/type1/type1.c
-src/type42/t42drivr.c
-src/type42/t42drivr.h
-src/type42/t42error.h
-src/type42/t42objs.c
-src/type42/t42objs.h
-src/type42/t42parse.c
-src/type42/t42parse.h
-src/type42/t42types.h
-src/type42/type42.c
-src/winfonts/fnterrs.h
-src/winfonts/winfnt.c
-src/winfonts/winfnt.h
-)

Deleted: brlcad/branches/dm-fb-merge/src/other/itcl.dist
===================================================================
--- brlcad/branches/dm-fb-merge/src/other/itcl.dist     2020-04-23 23:26:14 UTC 
(rev 75597)
+++ brlcad/branches/dm-fb-merge/src/other/itcl.dist     2020-04-23 23:35:43 UTC 
(rev 75598)
@@ -1,40 +0,0 @@
-set(itcl_ignore_files
-CMakeLists.txt
-ITCL_PKGINDEX.cmake
-generic/itcl.decls
-generic/itcl.h
-generic/itcl2TclOO.c
-generic/itcl2TclOO.h
-generic/itclBase.c
-generic/itclBuiltin.c
-generic/itclClass.c
-generic/itclCmd.c
-generic/itclDecls.h
-generic/itclEnsemble.c
-generic/itclHelpers.c
-generic/itclInfo.c
-generic/itclInt.h
-generic/itclIntDecls.h
-generic/itclLinkage.c
-generic/itclMethod.c
-generic/itclMigrate2TclCore.c
-generic/itclMigrate2TclCore.h
-generic/itclObject.c
-generic/itclParse.c
-generic/itclResolve.c
-generic/itclStubInit.c
-generic/itclStubLib.c
-generic/itclStubs.c
-generic/itclTclIntStubsFcn.c
-generic/itclTclIntStubsFcn.h
-generic/itclTestRegisterC.c
-generic/itclUtil.c
-library/itcl.tcl
-library/itclHullCmds.tcl
-library/itclWidget.tcl
-license.terms
-pkg_mkIndex.cmake
-win/dllEntryPoint.c
-win/itcl.rc
-win/toaster.bmp
-)

Modified: brlcad/branches/dm-fb-merge/src/other/itcl3/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/src/other/itcl3/CMakeLists.txt  2020-04-23 
23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/src/other/itcl3/CMakeLists.txt  2020-04-23 
23:35:43 UTC (rev 75598)
@@ -42,25 +42,8 @@
 # set CMake project name
 project(ITCL)
 
-if(NOT TCL_LIBRARY OR NOT TCL_INCLUDE_PATH)
-  find_package(TCL)
-endif(NOT TCL_LIBRARY OR NOT TCL_INCLUDE_PATH)
+find_package(TCL)
 
-if(NOT TCL_STUB_LIBRARY)
-  if(TARGET tclsh)
-    message(FATAL_ERROR "We're building tclsh, but TCL_STUB_LIBRARY isn't set 
- this is most likely due to an error in the build system logic.")
-  endif(TARGET tclsh)
-  if(NOT TCL_TCLSH)
-    find_program(TCL_TCLSH tclsh)
-  endif(NOT TCL_TCLSH)
-  if(NOT TCL_TCLSH)
-    message(FATAL_ERROR "itcl enabled, but tclsh is not available and 
TCL_STUB_LIBRARY is undefined.  Either specify the location of the tcl stub 
library (-DTCL_STUB_LIBRARY=/path/to/libtclstub86.a) or identify the location 
of tclsh (-DTCL_TCLSH=/path/to/tclsh)")
-  endif(NOT TCL_TCLSH)
-  get_filename_component(TCLSH_DIR "${TCL_TCLSH}" DIRECTORY)
-  get_filename_component(TCLSH_ROOT_DIR "${TCLSH_DIR}" DIRECTORY)
-  find_library(TCL_STUB_LIBRARY tclstub NAMES tclstub86 tclstub8.6 HINTS 
${TCLSH_ROOT_DIR}/lib)
-endif(NOT TCL_STUB_LIBRARY)
-
 # version numbers
 set(ITCL_VERSION_MAJOR 3)
 set(ITCL_VERSION_MINOR 4)
@@ -172,23 +155,32 @@
 set(ITCL_INCLUDE_PATH ${ITCL_SOURCE_DIR}/generic ${ITCL_BINARY_DIR}/include)
 mark_as_advanced(ITCL_INCLUDE_PATH)
 
+
+# ITcl requires private Tcl headers, which we can't assume from a system
+# install of Tcl.  The workaround is to use our local copies and hope they
+# are workable. (Ugh.)
+if (TARGET tcl OR NOT EXISTS "${TCL_INCLUDE_PATH}/tcl-private/generic")
+    set(TCL_PRIVATE_HDRS ${CMAKE_CURRENT_SOURCE_DIR}/../tcl/generic)
+  if(NOT WIN32)
+    set(TCL_PRIVATE_HDRS ${TCL_PRIVATE_HDRS} 
${CMAKE_CURRENT_SOURCE_DIR}/../tcl/unix)
+  else(NOT WIN32)
+    set(TCL_PRIVATE_HDRS ${TCL_PRIVATE_HDRS} 
${CMAKE_CURRENT_SOURCE_DIR}/../tcl/win)
+  endif(NOT WIN32)
+else()
+  set(TCL_PRIVATE_HDRS ${TCL_INCLUDE_PATH}/tcl-private/generic)
+  if(NOT WIN32)
+    set(TCL_PRIVATE_HDRS ${TCL_PRIVATE_HDRS} 
${TCL_INCLUDE_PATH}/tcl-private/unix)
+  else(NOT WIN32)
+    set(TCL_PRIVATE_HDRS ${TCL_PRIVATE_HDRS} 
${TCL_INCLUDE_PATH}/tcl-private/win)
+  endif(NOT WIN32)
+endif ()
+
 include_directories(
   ${TCL_INCLUDE_PATH}
   ${ITCL_INCLUDE_PATH}
-  ${CMAKE_BINARY_DIR}/include
-  ${CMAKE_SOURCE_DIR}/include
+  ${TCL_PRIVATE_HDRS}
   )
 
-# ITcl requires private Tcl headers, which we can't assume from a system
-# install of Tcl.  The workaround is to use our local copies and hope they
-# are workable. (Ugh.)
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../tcl/generic)
-if(NOT WIN32)
-  include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../tcl/unix)
-else(NOT WIN32)
-  include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../tcl/win)
-endif(NOT WIN32)
-
 add_library(itcl ${ITCL_SRCS})
 target_link_libraries(itcl ${M_LIBRARY} ${TCL_STUB_LIBRARY} )
 set_target_properties(itcl PROPERTIES VERSION ${ITCL_VERSION} SOVERSION 
${ITCL_VERSION_MAJOR})

Deleted: brlcad/branches/dm-fb-merge/src/other/itk.dist
===================================================================
--- brlcad/branches/dm-fb-merge/src/other/itk.dist      2020-04-23 23:26:14 UTC 
(rev 75597)
+++ brlcad/branches/dm-fb-merge/src/other/itk.dist      2020-04-23 23:35:43 UTC 
(rev 75598)
@@ -1,31 +0,0 @@
-set(itk_ignore_files
-CMakeLists.txt
-ITK_PKGINDEX.cmake
-generic/itk.decls
-generic/itk.h
-generic/itkArchBase.c
-generic/itkArchetype.c
-generic/itkBase.c
-generic/itkCmd.c
-generic/itkDecls.h
-generic/itkHelpers.c
-generic/itkInt.h
-generic/itkIntDecls.h
-generic/itkOption.c
-generic/itkStubInit.c
-generic/itkStubLib.c
-generic/itkUtil.c
-library/Archetype.itk
-library/Toplevel.itk
-library/Widget.itk
-library/itk.tcl
-library/tclIndex
-license.terms
-pkgIndex.tcl.in
-pkg_mkIndex.cmake
-win/dllEntryPoint.c
-win/nmakehlp.c
-win/rc/itk.ico
-win/rc/itk.rc
-win/toaster.bmp
-)

Modified: brlcad/branches/dm-fb-merge/src/other/itk3/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/src/other/itk3/CMakeLists.txt   2020-04-23 
23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/src/other/itk3/CMakeLists.txt   2020-04-23 
23:35:43 UTC (rev 75598)
@@ -42,37 +42,8 @@
 # set CMake project name
 project(ITK)
 
-if(NOT TCL_LIBRARY OR NOT TCL_INCLUDE_PATH OR NOT TK_LIBRARY)
-  find_package(TCL)
-endif(NOT TCL_LIBRARY OR NOT TCL_INCLUDE_PATH OR NOT TK_LIBRARY)
+find_package(TCL)
 
-if(NOT TCL_STUB_LIBRARY OR NOT TK_STUB_LIBRARY OR NOT ITCL_STUB_LIBRARY)
-  if(TARGET tclsh)
-    message(FATAL_ERROR "We're building tclsh, but TCL_STUB_LIBRARY isn't set 
- this is most likely due to an error in the build system logic.")
-  endif(TARGET tclsh)
-  if(NOT TCL_TCLSH)
-    find_program(TCL_TCLSH tclsh)
-  endif(NOT TCL_TCLSH)
-  if(NOT TCL_TCLSH)
-    message(FATAL_ERROR "itcl enabled, but tclsh is not available and 
TCL_STUB_LIBRARY is undefined.  Either specify the location of the tcl stub 
library (-DTCL_STUB_LIBRARY=/path/to/libtclstub86.a) or identify the location 
of tclsh (-DTCL_TCLSH=/path/to/tclsh)")
-  endif(NOT TCL_TCLSH)
-  get_filename_component(TCLSH_DIR "${TCL_TCLSH}" DIRECTORY)
-  get_filename_component(TCLSH_ROOT_DIR "${TCLSH_DIR}" DIRECTORY)
-endif(NOT TCL_STUB_LIBRARY OR NOT TK_STUB_LIBRARY OR NOT ITCL_STUB_LIBRARY)
-
-if(NOT TCL_STUB_LIBRARY)
-  find_library(TCL_STUB_LIBRARY tclstub NAMES tclstub86 tclstub8.6 HINTS 
${TCLSH_ROOT_DIR}/lib)
-endif(NOT TCL_STUB_LIBRARY)
-if(NOT TK_STUB_LIBRARY)
-  find_library(TK_STUB_LIBRARY tkstub NAMES tkstub86 tkstub8.6 HINTS 
${TCLSH_ROOT_DIR}/lib)
-endif(NOT TK_STUB_LIBRARY)
-if(NOT ITCL_LIBRARY)
-  find_library(ITCL_LIBRARY itcl NAMES itcl4 itcl4.2.0 HINTS 
${TCLSH_ROOT_DIR}/lib)
-endif(NOT ITCL_LIBRARY)
-if(NOT ITCL_STUB_LIBRARY)
-  find_library(ITCL_STUB_LIBRARY itclstub NAMES itclstub4 itclstub4.2.0 HINTS 
${TCLSH_ROOT_DIR}/lib/Itcl4.2.0)
-endif(NOT ITCL_STUB_LIBRARY)
-
 # version numbers
 set(ITK_VERSION_MAJOR 3)
 set(ITK_VERSION_MINOR 4)
@@ -177,25 +148,38 @@
 set(ITK_INCLUDE_DIRS ${ITK_SOURCE_DIR}/generic ${ITK_BINARY_DIR}/include)
 mark_as_advanced(ITK_INCLUDE_DIRS)
 
+# Like ITcl, Itk requires private Tcl headers, which we can't assume from a 
system
+# install of Tcl.  The workaround is to use our local copies and hope they
+# are workable. (Ugh.)
+if (TARGET tk OR NOT EXISTS "${TCL_INCLUDE_PATH}/tcl-private/generic")
+    set(TCL_PRIVATE_HDRS ${CMAKE_CURRENT_SOURCE_DIR}/../tcl/generic)
+  if(NOT WIN32)
+    set(TCL_PRIVATE_HDRS ${TCL_PRIVATE_HDRS} 
${CMAKE_CURRENT_SOURCE_DIR}/../tcl/unix)
+  else(NOT WIN32)
+    set(TCL_PRIVATE_HDRS ${TCL_PRIVATE_HDRS} 
${CMAKE_CURRENT_SOURCE_DIR}/../tcl/win)
+    set(TCL_PRIVATE_HDRS ${TCL_PRIVATE_HDRS} 
${CMAKE_CURRENT_SOURCE_DIR}/../tk/xlib)
+  endif(NOT WIN32)
+else()
+  set(TCL_PRIVATE_HDRS ${TCL_INCLUDE_PATH}/tcl-private/generic)
+  if(NOT WIN32)
+    set(TCL_PRIVATE_HDRS ${TCL_PRIVATE_HDRS} 
${TCL_INCLUDE_PATH}/tcl-private/unix)
+    set(TCL_PRIVATE_HDRS ${TCL_PRIVATE_HDRS} 
${TK_INCLUDE_PATH}/tk-private/xlib)
+  else(NOT WIN32)
+    set(TCL_PRIVATE_HDRS ${TCL_PRIVATE_HDRS} 
${TCL_INCLUDE_PATH}/tcl-private/win)
+  endif(NOT WIN32)
+endif ()
+
 include_directories(
   ${TCL_INCLUDE_PATH}
   ${TK_INCLUDE_PATH}
   ${ITCL_INCLUDE_PATH}
   ${ITK_INCLUDE_DIRS}
-  ${TK_X11_INCLUDE_DIRS}
+  ${X11_INCLUDE_DIR}
+  ${TCL_PRIVATE_HDRS}
+  # We can't realistically assume Itcl3 from any system install - just 
reference the local copy
   ${CMAKE_CURRENT_SOURCE_DIR}/../itcl/generic
   )
 
-# Like ITcl, Itk requires private Tcl headers, which we can't assume from a 
system
-# install of Tcl.  The workaround is to use our local copies and hope they
-# are workable. (Ugh.)
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../tcl/generic)
-if(NOT WIN32)
-  include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../tcl/unix)
-else(NOT WIN32)
-  include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../tcl/win)
-endif(NOT WIN32)
-
 add_library(itk ${ITK_SRCS})
 target_link_libraries(itk ${M_LIBRARY} ${TCL_STUB_LIBRARY} ${TK_STUB_LIBRARY} 
${ITCL_STUB_LIBRARY})
 set_property(TARGET itk APPEND PROPERTY COMPILE_DEFINITIONS USE_TCL_STUBS)

Modified: brlcad/branches/dm-fb-merge/src/other/tcl/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/src/other/tcl/CMakeLists.txt    2020-04-23 
23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/src/other/tcl/CMakeLists.txt    2020-04-23 
23:35:43 UTC (rev 75598)
@@ -1092,16 +1092,16 @@
   set(TCL_GENERIC_SRCS ${TCL_GENERIC_SRCS} generic/tclTomMathInterface.c)
 endif (TCL_TOMMATH)
 
-SET_PROPERTY(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_INSTALL_LIBDIR="${CMAKE_INSTALL_PREFIX}/lib")
-SET_PROPERTY(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_INSTALL_BINDIR="${CMAKE_INSTALL_PREFIX}/bin")
-SET_PROPERTY(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_INSTALL_SCRDIR="${CMAKE_INSTALL_PREFIX}/scripts")
-SET_PROPERTY(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_INSTALL_INCDIR="${CMAKE_INSTALL_PREFIX}/include")
-SET_PROPERTY(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_INSTALL_DOCDIR="${CMAKE_INSTALL_PREFIX}/share/man") 
-SET_PROPERTY(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_RUNTIME_LIBDIR="${CMAKE_INSTALL_PREFIX}/lib")
-SET_PROPERTY(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_RUNTIME_BINDIR="${CMAKE_INSTALL_PREFIX}/bin")
-SET_PROPERTY(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_RUNTIME_SCRDIR="${CMAKE_INSTALL_PREFIX}/scripts")
-SET_PROPERTY(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_RUNTIME_INCDIR="${CMAKE_INSTALL_PREFIX}/include")
-SET_PROPERTY(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_RUNTIME_DOCDIR="${CMAKE_INSTALL_PREFIX}/share/man")
+set_property(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_INSTALL_LIBDIR="${CMAKE_INSTALL_PREFIX}/lib")
+set_property(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_INSTALL_BINDIR="${CMAKE_INSTALL_PREFIX}/bin")
+set_property(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_INSTALL_SCRDIR="${CMAKE_INSTALL_PREFIX}/scripts")
+set_property(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_INSTALL_INCDIR="${CMAKE_INSTALL_PREFIX}/include")
+set_property(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_INSTALL_DOCDIR="${CMAKE_INSTALL_PREFIX}/share/man") 
+set_property(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_RUNTIME_LIBDIR="${CMAKE_INSTALL_PREFIX}/lib")
+set_property(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_RUNTIME_BINDIR="${CMAKE_INSTALL_PREFIX}/bin")
+set_property(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_RUNTIME_SCRDIR="${CMAKE_INSTALL_PREFIX}/scripts")
+set_property(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_RUNTIME_INCDIR="${CMAKE_INSTALL_PREFIX}/include")
+set_property(SOURCE generic/tclPkgConfig.c APPEND PROPERTY COMPILE_DEFINITIONS 
CFG_RUNTIME_DOCDIR="${CMAKE_INSTALL_PREFIX}/share/man")
 
 
 set(TCL_OO_SRCS
@@ -1236,8 +1236,8 @@
   unix/tclUnixTime.c
   )
 
-SET_PROPERTY(SOURCE unix/tclUnixInit.c APPEND PROPERTY COMPILE_DEFINITIONS 
TCL_LIBRARY="${CMAKE_INSTALL_PREFIX}/${LIB_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}tcl${TCL_VERSION_MAJOR}.${TCL_VERSION_MINOR}${CMAKE_SHARED_LIBRARY_SUFFIX}")
-SET_PROPERTY(SOURCE unix/tclUnixInit.c APPEND PROPERTY COMPILE_DEFINITIONS 
TCL_PACKAGE_PATH="${CMAKE_INSTALL_PREFIX}/lib")
+set_property(SOURCE unix/tclUnixInit.c APPEND PROPERTY COMPILE_DEFINITIONS 
TCL_LIBRARY="${CMAKE_INSTALL_PREFIX}/${LIB_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}tcl${TCL_VERSION_MAJOR}.${TCL_VERSION_MINOR}${CMAKE_SHARED_LIBRARY_SUFFIX}")
+set_property(SOURCE unix/tclUnixInit.c APPEND PROPERTY COMPILE_DEFINITIONS 
TCL_PACKAGE_PATH="${CMAKE_INSTALL_PREFIX}/lib")
 
 set(TCL_NOTIFY_SRCS
   unix/tclUnixNotfy.c
@@ -1350,10 +1350,10 @@
   endif (NOT CMAKE_CONFIGURATION_TYPES)
 endforeach(hdrfile ${TCL_HDRS})
 
-MARK_AS_ADVANCED(TCL_LIBRARIES TCL_CONF_PREFIX TCL_INCLUDE_PATH 
TCL_INCLUDE_PATH)
-MARK_AS_ADVANCED(TCL_STUB_LIBRARIES TCL_TCLSH TCL_TCLSH_EXECUTABLE)
-MARK_AS_ADVANCED(TCL_TK_CONF_PREFIX TCL_TOMMATH)
-MARK_AS_ADVANCED(TCL_VERSION_MAJOR TCL_VERSION_MINOR TCL_WISH_EXECUTABLE)
+mark_as_advanced(TCL_LIBRARIES TCL_CONF_PREFIX TCL_INCLUDE_PATH 
TCL_INCLUDE_PATH)
+mark_as_advanced(TCL_STUB_LIBRARIES TCL_TCLSH TCL_TCLSH_EXECUTABLE)
+mark_as_advanced(TCL_TK_CONF_PREFIX TCL_TOMMATH)
+mark_as_advanced(TCL_VERSION_MAJOR TCL_VERSION_MINOR TCL_WISH_EXECUTABLE)
 
 # Local Variables:
 # tab-width: 8

Modified: brlcad/branches/dm-fb-merge/src/other/tk/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/src/other/tk/CMakeLists.txt     2020-04-23 
23:26:14 UTC (rev 75597)
+++ brlcad/branches/dm-fb-merge/src/other/tk/CMakeLists.txt     2020-04-23 
23:35:43 UTC (rev 75598)
@@ -42,14 +42,14 @@
 project(TK)
 
 # build shared libs by default
-if(NOT DEFINED BUILD_SHARED_LIBS)
+if (NOT DEFINED BUILD_SHARED_LIBS)
   option(BUILD_SHARED_LIBS "Build shared libraries" ON)
-endif(NOT DEFINED BUILD_SHARED_LIBS)
+endif (NOT DEFINED BUILD_SHARED_LIBS)
 
 # build static libs by default
-if(NOT DEFINED BUILD_STATIC_LIBS)
+if (NOT DEFINED BUILD_STATIC_LIBS)
   option(BUILD_STATIC_LIBS "Build shared libraries" ON)
-endif(NOT DEFINED BUILD_STATIC_LIBS)
+endif (NOT DEFINED BUILD_STATIC_LIBS)
 
 # version numbers
 set(TK_VERSION_MAJOR 8)
@@ -59,9 +59,9 @@
 set(TK_VERSION "${TK_VERSION_MAJOR}.${TK_VERSION_MINOR}.${TK_PATCH_LEVEL}")
 
 # For Windows, we need the Resource Compiler language
-if(WIN32)
+if (WIN32)
   enable_language(RC)
-endif(WIN32)
+endif (WIN32)
 
 #-----------------------------------------------------------------------------
 # Set CMake module path
@@ -98,54 +98,53 @@
 #----------------------------------------------------------------------------
 # Define some platform specific flags
 
-if(MSVC)
+if (MSVC)
   add_definitions(-DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE 
-D_CRT_NONSTDC_NO_DEPRECATE -Ot -Oi -fp:strict -Gs -GS -GL -MD 
-DSUPPORT_CONFIG_EMBEDDED -DHAVE_UXTHEME_H=1)
-endif(MSVC)
+endif (MSVC)
 
-if(MINGW)
+if (MINGW)
   add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE 
-DSUPPORT_CONFIG_EMBEDDED -DHAVE_UXTHEME_H=1)
   remove_definitions(-w)
   add_definitions(-DHAVE_NO_SEH -DEXCEPTION_DISPOSITION=int)
-endif(MINGW)
+endif (MINGW)
 
-if(APPLE)
+if (APPLE)
   add_definitions(-DMAC_OSX_TCL=1)
   include(CMakeFindFrameworks)
   cmake_find_frameworks(CoreFoundation)
-  if(CoreFoundation_FRAMEWORKS)
+  if (CoreFoundation_FRAMEWORKS)

@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to