<br><br><div class="gmail_quote">On Mon, Jun 29, 2009 at 12:15 PM, Curtis Rueden <span dir="ltr"><<a href="mailto:ctrueden@wisc.edu">ctrueden@wisc.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Darren,<br><br><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I'm
a little puzzled by the farsight build wiki. It appears to be nothing
more than an ITK build, so what's special about "farsight" that it
should be identified as something more than Insight (ITK)?<br>
</blockquote></div><div><br>FARSIGHT is an effort to provide an image analysis toolkit for microscopy, based on ITK. There is an (incomplete) list of modules included in FARSIGHT listed at:<br><br> <a href="http://www.farsight-toolkit.org/wiki/Table_of_Contents" target="_blank">http://www.farsight-toolkit.org/wiki/Table_of_Contents</a><br>
<br>It is still very early days for FARSIGHT, with the SVN repository just opening up in recent weeks, so everything is still pretty rough around the edges.<br><br>Badri Roysam, the head of the project, can comment further on goals and directions if you are interested.</div>
</div></blockquote><div><br><br>I am working with microscopy data also, so I will keep an eye on this while I'm working with this data.<br><br>Have you looked at the BioImageXD development? I wonder if your work will benefit from more collaboration on that front. Although I read in another thread that they want to move to java, instead of a python platform. BTW, the MacPort for InsightToolkit wraps in java, but I've not tested any of that wrapping to see if it works.<br>
<br>I take it that most of the FARSIGHT work will be in python, and the
MacPort for InsightToolkit does use WrapITK with python25 (it should be
fairly easy to provide python26 or python3x wrapping whenever they are
reliable or preferred platforms).<br>
<br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
As for OSX, there are no build instructions (most of the linux
instructions might apply, but actually it's a lot more complicated
because OSX can an rpath nightmare when it comes to shared libs). I
think the entire farsight build wiki could be replaced, for OSX, with a
one line MacPorts command:<br>
<br><span style="font-family: courier new,monospace;">sudo port install InsightToolkit</span><br><br>This will probably do everything at all stages identified on this wiki thread:<div></div></blockquote></div><div><br>
As far as compililng ITK, yes, if the MacPorts version of ITK includes the CableSWIG stuff with WrapITK. (My understanding is that FARSIGHT needs that for its Python interface.)<br><br>There are still more instructions to be written on compiling FARSIGHT itself, once all the dependencies are set up.</div>
</div></blockquote><div><br><br>Ah, ha. I look forward to learning more about this. Wherever possible, I'll try to provide support for release versions in MacPorts. I will need to know more about your development process and dependencies. If you develop with any release version of ITK as a dependency, that will be easy to define as a dependency for a FARSIGHT port in MacPorts and it will then inherit all the dependencies of ITK (the InsightToolkit port). For example:<br>
<br><span style="font-family: courier new,monospace;">$ port deps InsightToolkit</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;">InsightToolkit has build dependencies on:</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> cmake</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> gmake</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> gawk</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> bison</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;">InsightToolkit has library dependencies on:</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> xorg-libs</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> ossp-uuid</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> guile</span><br style="font-family: courier new,monospace;">
<span style="font-family: courier new,monospace;"> tcl</span><br style="font-family: courier new,monospace;"><span style="font-family: courier new,monospace;"> python25</span><br style="font-family: courier new,monospace;">
<br>If you have a separate svn and development modules from the ITK cvs, I would assume a new port for FARSIGHT will be required in MacPorts. I should suggest that for any porting system (MacPorts, FreeBSD, Debian, etc.), it would be optimal to have a FARSIGHT dependency on a release version of ITK, rather than an entire, customized ITK development tree that needs to be built especially for FARSIGHT. (FYI, for example, wxPython packages the entire wxWidgets in its distribution, rather than just a dependency on the wxWidgets library, and that's a pain for porting systems.) In other words, if you need to make changes to ITK, it would be preferable to make them in the ITK cvs for their next release (ie, make the change upstream). If you have custom code based on ITK, it's preferable to link against the release version and subclass or something within your own library path, until you can commit upstream to ITK (I guess BioImageXD may do something like this; someday I should put together a MacPort for that project).<br>
<br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="gmail_quote"><div><br>
<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im"><div><a href="http://farsight-toolkit.org/wiki/FARSIGHT_Tutorials/Building_Software" target="_blank">http://farsight-toolkit.org/wiki/FARSIGHT_Tutorials/Building_Software</a><br>
<br></div></div><div class="im">The MacPorts system will take care of all the dependencies
(cmake, python, cableswig). Please see this ITK wiki page for more
details:<br><a href="http://www.vtk.org/Wiki/ITK_MacPorts_Package_Maintainers" target="_blank">http://www.vtk.org/Wiki/ITK_MacPorts_Package_Maintainers</a><br>
<br>Moreover, _please_ link to that page from the farsight tutorial on
the build process, it might save everyone a lot of time and headaches
(because I know just how painful it was to put it all together in
MacPorts).<br>
</div></blockquote><div><br>Noted on the Building_Software page.</div></div></blockquote><div><br><br>Cool.<br><br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="gmail_quote"><div></div><div class="im"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">If you need to develop ITK using macports, that might be done too,
but it requires a little bit of tweaking on the macports installation
process. The macports installation uses several phases and a developer
could stop after the build phase. At that point, you have a complete
source tree and a separate build tree. So you could try this:<br>
<br><span style="font-family: courier new,monospace;">sudo port build InsightToolkit</span><br><br>Then go look in the build tree, under <span style="font-family: courier new,monospace;">/opt/local/var/macports/build/</span><br>
</blockquote></div><div><br>Cool; I saw this note on the ITK_MacPorts_Package_Maintainers page too, so hopefully people who care will notice that.</div></div></blockquote><div><br>I have designed the build process in MacPorts so that it does build in a separate path to the src path. I put those notes together quickly, after some reflection on my prior email about FARSIGHT, but I've never tested it, as I'm not directly developing ITK, but rather using the library installation. One problem with moving the build tree somewhere else is that the OSX convention seems to be using rpath during linking, so the build tree has a lot of specific links within the build tree that are reset during the "installation" (or destroot) phase and there are a ton of hacks to get the rpath right after the destroot phase (especially for the wrapping libs). That's the OSX nightmare that I discovered and wrangled with for a long time before finally giving in, learning and coding it up in a MacPort.<br>
<br></div></div>Best, Darren<br><br>