Difference between revisions of "Slicer:Patches for the Mac"

From NAMIC Wiki
Jump to: navigation, search
m (Update from Wiki)
 
m (Text replacement - "http://www.slicer.org/slicerWiki/index.php/" to "https://www.slicer.org/wiki/")
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
'''Configuring the X Server'''
+
<big>'''Note:''' We are migrating this content to the slicer.org domain - <font color="orange">The newer page is [https://www.slicer.org/wiki/Slicer:Patches_for_the_Mac here]</font></big>
 
 
There are two options you can use to address event processing issues (missed button presses) on the Mac and make slicer easier to use:
 
 
 
* activate focus follows mouse mode for X11 windows
 
 
 
defaults write com.apple.x11 wm_ffm true
 
 
 
'''or'''
 
 
 
* keep click to focus behavior, but passes the click event to the clicked window
 
 
 
defaults write com.apple.x11 wm_click_through true
 
 
 
<br />
 
 
 
'''Note: these remainder of these instructions refer to the steps needed to compile the 2.4 release of slicer. The current cvs version includes patches to genlib.tcl that perform these steps automatically.'''
 
 
 
<br />
 
 
 
== XFilterEvent() ==
 
 
 
On Mac OSX 10.3 the X server seems to have a bug in processing certiain events.
 
 
 
You can address this by applying the following patch to the file generic/tkEvent.c in the tk release tagged core-8-4-6.
 
 
 
 
939a940,942
 
>
 
> /* the XFilterEvent call causes a long delay on Mac OSX for no apparent benefit */
 
> #if 0
 
942a946
 
> #endif
 
 
 
This has the effect of removing a call to XFilterEvents().
 
 
 
The patch is also available from Xythos at: https://share.spl.harvard.edu/xythoswfs/webui/share/birn/public/software/External/Patches/tkEventPatch.diff. To apply the patch, copy it into the directory slicer2/Lib/darwin-ppc/tcl/tk/generic and run the command:
 
 
 
 
patch -i tkEventPatch.diff
 
 
 
from that directory. To compile, create the directory slicer2/Lib/darwin-ppc/tcl-build, then change directories to slicer/Lib/darwin-ppc/tcl/tk/unix, and run:
 
 
 
 
./configure --with-tcl=/YourSlicerPath/slicer2/Lib/darwin-ppc/tcl-build/lib --prefix=/YourSlicerPath/slicer2/Lib/darwin-ppc/tcl-build
 
make
 
make install
 
 
 
== ranlib ==
 
 
 
The ranlib command needs to be run manually on some tcl/tk libraries.
 
 
 
== BLT ==
 
 
 
Currently, BLT does not compile for the mac. The error is:
 
 
 
 
ld: common symbols not allowed with MH_DYLIB output format with the -multi_module option
 
 
 
followed by a list of symbols.
 
 
 
BLT needs to be manually commented out of the Scripts/genlib.tcl file, and vtkFMRIEngine will not build or run.
 
 
 
Alternatively, --with-cflags="-fno-common" can be added to the configure input to fix this 'common symbols not allowed' problem. But this necessitates linking the tcl,tk and X libs in certain files. Here's the Makefile.in diffs, in the src and src/shared directories, showing the additional $(LIBS). Also, a separate bug in src/shared/Makefile.in is that $(bltsh) must be added to the dependency list (see diffs below).
 
 
 
format: diff <newly changed file> <original file>
 
 
 
 
  storm:nicks[/Users/Shared/pkgs/src/blt2.4z/src] diff Makefile.in $HOME/packages/blt2.4z/src/Makefile.in
 
173c173
 
<               $(srcdir)/bltUnixMain.c $(tcl_only_lib_a) $(LIBS)
 
---
 
>               $(srcdir)/bltUnixMain.c $(tcl_only_lib_a) $(TCL_ONLY_LIBS)
 
 
storm:nicks[/Users/Shared/pkgs/src/blt2.4z/src/shared] diff Makefile.in $HOME/packages/blt2.4z/src/shared/Makefile.in
 
148c148
 
<              $(LIBS) $(SHLIB_LIB_SPECS)
 
---
 
>               $(SHLIB_LIB_SPECS)
 
155c155
 
<              $(LIBS) $(SHLIB_TCL_ONLY_LIB_SPECS)
 
---
 
>              $(SHLIB_TCL_ONLY_LIB_SPECS)
 
159c159
 
< install-demo: $(bltwish) $(bltsh)
 
---
 
> install-demo: $(bltwish)
 
 
 
This is the script I use that successfully builds and installs everything on Mac OS X Tiger:
 
 
 
 
cd blt2.4z
 
make distclean
 
./configure --prefix="$PKGS_ROOT" --enable-shared --with-tcl="$PKGS_ROOT" --with-tk="$PKGS_ROOT" \
 
--enable-jpeg="$PKGS_ROOT" --x-includes="/usr/X11R6/include" --with-cflags="-fno-common"
 
make
 
make install
 
 
 
== VTK ==
 
 
 
First let genlib run through the VTK checkout and let it attempt to build. It will fail with a message that it cannot find some opengl symbols. To compile vtk:
 
 
 
 
cd Lib/darwin-ppc/VTK-build
 
  ../CMake-build/bin/ccmake ../VTK
 
 
in ccmake, hit 't' and add -lgl to the OPENGL_gl_LIBRARY so it reads: -framework OpenGL -lgl
 
and turn ON VTK_USE_SYSTEM_ZLIB
 
 
 
 
Then run make to finish the build of VTK.
 
 
 
After VTK finishes building, re-run genlib.tcl to build ITK.
 

Latest revision as of 17:04, 10 July 2017

Home < Slicer:Patches for the Mac

Note: We are migrating this content to the slicer.org domain - The newer page is here