<div dir="ltr"><div><div>Hi 
Michka,<br><br></div><div>I think I'm understanding some of your issues. Recall that in C++, templated classes are compiled only on actual instantiation, otherwise they are just bunches of header files waiting to be #include'd later when you are compiling an actual object (binary) file. The Filtering/ImageGrid module is purely templated code (see that it has no "src/" directory), so there is nothing to be done when ordinarily building it without Testing or Examples enabled. Even running "make --always-make  ITKImageGrid-all" to force a rebuild of everything (equivalent to pretending that all of the source files were modified) does nothing, as expected.<br>
<br>Conversely, the Filtering/LabelMap module does contain a "src/*.cxx" file, so "make --always-make  ITKLabelMap-all" will do some compilation work. However, during this rebuild of ITKLabelMap-all, note that only the non-templated class "itk::GeometryUtilities" is compiled for ITKLabelMap target, but not any of the several dozen templated classes in this module (again assuming Testing / Examples are disabled).<br>
<br>Furthermore, when you run "make ITKLabelMap-all" in a fully up-to-date build, you should get:<br><blockquote style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex" class="gmail_quote">
[ 14%] Built target itkNetlibSlatec<br>[ 21%] Built target itksys<br>[ 28%] Built target itkdouble-conversion<br>[ 42%] Built target ITKVNLInstantiation<br>[ 92%] Built target ITKCommon<br>[100%] Built target ITKStatistics<br>
[100%] Built target ITKLabelMap<br>[100%] Built target ITKLabelMap-all<br></blockquote>This is to be expected, as the class being built in ITKLabelMap depends upon classes in several other modules / targets, and they must be verified as built up-to-date before the target ITKLabelMap-all (which trivially depends on ITKLabelMap, if no Testing is built) can even be considered. However, note that no other classes not in this dependency chain are examined by Make.<br>
<br>-----<br></div><div><br>Also importantly, if you are using a multi-core computer (as nearly all 
modern systems are), it's a good idea to be doing parallel builds. At 
the simplest, this is using the "-j" option with Make, but see [1] for a
 good overview.<br><br></div>Finally, if the slowness of Make is a problem, you may want to consider Ninja [2] as an alternative build system, as it is generally much faster (it spends much less time re-checking dependencies that are already built). It it supported by the latest versions of CMake + ITK.<br>
<br></div><div><div>[1] <a href="http://www.kitware.com/blog/home/post/434">http://www.kitware.com/blog/home/post/434</a><br>[2] <a href="https://github.com/martine/ninja">https://github.com/martine/ninja</a><br><br>-----<br>
<br></div><div>I hope this helps you somewhat.<br><br>Enjoy,<br>Brian<br></div><div><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Nov 15, 2013 at 3:01 AM, Michka Popoff <span dir="ltr"><<a href="mailto:michkapopoff@gmail.com" target="_blank">michkapopoff@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi<br>
<br>
I am still playing around with it, and I don't get it. I am able to recompile a single VTK module, or c++ files I made myself, but impossible to do anything with ITK.<br>
I tested under OS X and Fedora, to be sure it was not a platform dependent problem.<br>
Would it be possible to have a step by step tutorial ? It could also be added to the wiki for future users.<br>
<br>
Thanks for your help.<br>
<br>
Michka<br>
<br>
<br>
Le 3 nov. 2013 à 23:11, Matt McCormick a écrit :<br>
<div class="HOEnZb"><div class="h5"><br>
> Hi Michka,<br>
><br>
> "make help" from the top of the build tree will list all build<br>
> targets.  This can be piped to grep to find the target of interest.<br>
> The "-all" targets will build both the library and the tests -- the<br>
> target with out the "-all" will just build the library and its<br>
> dependencies.  Another approach is to "cd" into the "test" directory<br>
> for the module in the build tree and run "make" from there.<br>
><br>
> Thanks,<br>
> Matt<br>
><br>
><br>
> On Sat, Nov 2, 2013 at 4:47 PM, Michka Popoff <<a href="mailto:michkapopoff@gmail.com">michkapopoff@gmail.com</a>> wrote:<br>
>> Hi<br>
>><br>
>> I successfully built ITK in a folder. I then made some modifications to a ITK module, in the source dir.<br>
>> I thought I could use the make command from the module's build folder (like I already did in VTK), to only recompile the current module.<br>
>><br>
>> But it's only going through the files to see if everything is already built, and the it's telling me : Built target NameOfTheModule<br>
>><br>
>> My question is : How do I recompile only one module / one file ?<br>
>><br>
>> My question may seem obvious for c++/ITK developers, but as a Phytonist I can not figure it out ...<br>
>><br>
>> Thanks in advance<br>
>><br>
>> Michka<br>
>> _______________________________________________<br>
>> Community mailing list<br>
>> <a href="mailto:Community@itk.org">Community@itk.org</a><br>
>> <a href="http://public.kitware.com/cgi-bin/mailman/listinfo/community" target="_blank">http://public.kitware.com/cgi-bin/mailman/listinfo/community</a><br>
<br>
_______________________________________________<br>
Community mailing list<br>
<a href="mailto:Community@itk.org">Community@itk.org</a><br>
<a href="http://public.kitware.com/cgi-bin/mailman/listinfo/community" target="_blank">http://public.kitware.com/cgi-bin/mailman/listinfo/community</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Brian Helba<br>Medical Imaging<br>Kitware, Inc.<br>
</div>