External Email - Use Caution Thank you for your help Rob. Could you walk me through how you ran setup_configure and configure on Mac?
I ran (from the root of the tree): ./setup_configure ./configure F77=/usr/local/bin/gfortran-4.9 CC=/usr/local/bin/gcc-4.9 CXX=/usr/local/bin/g++-4.9 --with-pkgs-dir=/Users/ruyvalle/Documents/fs-deps/ --disable-Werror --prefix=$HOME/fsdev_install --disable-kww-apps make clean make -r Importantly, make -r said: "Making all in trc make[2]: Nothing to be done for `all’.” I’ve tried using --disable-GUI-build instead of --disable-kww-apps with configure before as well, as instructed here <https://surfer.nmr.mgh.harvard.edu/fswiki/freesurfer_mac_developers_page>. I also tried: cd trc make dmri_train The end of make dmri_train’s output is: ld: entry point (_main) undefined. for architecture x86_64 collect2: error: ld returned 1 exit status make: *** [dmri_train] Error 1 I believe the --disable-kww-apps causes the Makefile in freesurfer/trc to comment out the instructions that would make it build anything. For instance: #bin_PROGRAMS = dmri_spline$(EXEEXT) \ # dmri_trk2trk$(EXEEXT) \ # dmri_vox2vox$(EXEEXT) \ # dmri_train$(EXEEXT) \ # dmri_paths$(EXEEXT) \ # dmri_pathstats$(EXEEXT) \ # dmri_mergepaths$(EXEEXT) \ # dmri_motion$(EXEEXT) \ # dmri_group$(EXEEXT) \ # dmri_forrest$(EXEEXT) I tried uncommenting all the dmri_train settings in the Makefile and running make dmri_train again, and get the following: In file included from blood.h:26:0, from dmri_train.cxx:26: vial.h:36:17: fatal error: mpi.h: No such file or directory #include <mpi.h> ^ compilation terminated. make: *** [dmri_train.o] Error 1 My guess is that something is not happening properly during ./setup_configure or ./configure. By the way, do you know what the am_* options are in the Makefile? Ruy > On May 3, 2018, at 1:35 PM, Dicamillo, Robert <rdicami...@mgh.harvard.edu> > wrote: > > Hello Ruy, > > The -r flag to will cause the build to skip some dependencies, e.g., > sometimes makefiles > will rebuild the world when you don’t need them to, so if you are building > only 1 > file, then it can be useful. > > It works for me to cd to ./freesurfer/trc and do the same thing without using > -r, i.e., > > $ cd ./freesurfer/trc > $ rm -f dmri_train dmri_train.o > $ make dmri_train > > But I’m doing this in a freesurfer tree where I have already built everything > once, or I’ve > run the preconfigure, configure steps, and done a make from the top of the > tree (./freesurfer). > > If you see a Makefile in a directory where you want to build, then you can > look for > the program name in the Makefile. In this case, if you search for dmi_train > in > ./freesurfer/trc/Makefile you will see at line 819, > > dmri_train$(EXEEXT): $(dmri_train_OBJECTS) $(dmri_train_DEPENDENCIES) > $(EXTRA_dmri_train_DEPENDENCIES) > > This is the rule to build dmri_train, or the target to build > (dmri_train$(EXEEXT)) is on the left hand side of a colon, > its dependencies are on the right hand side of the colon, and the commands to > build it are what follows underneath. > > The variable $(EXEEXT) gets set to be whatever the executable extension is > for the OS you are building on; in the > case of linux this is set to an empty string, so for linux the rule could be > written as, > > dmri_train: $(dmri_train_OBJECTS) $(dmri_train_DEPENDENCIES) > $(EXTRA_dmri_train_DEPENDENCIES) > > So you can expect that telling make to build the target “dmri_train” should > do something, i.e., “make dmri_train”. > > But the dependencies for dmri_train include some libraries, which do not get > built just by typing > “make dmri_train” under ./freesurfer/trc when nothing else has been built in > the tre. We can look at trying > to remedy this, but I think the expectation has been that people build from > the top of the tree > (or at least do that once). > > - rob > > >> On May 2, 2018, at 7:16 PM, Ricardo Valle <ruyval...@gmail.com >> <mailto:ruyval...@gmail.com>> wrote: >> >> External Email - Use Caution >> >> >> Hello Rob, >> >> No, I mean the dmri_train binary that is part of Tracula. The main source >> file is ./freesurfer/trc/dmri_train.cxx. I don’t mind building the whole >> tree if necessary, but I haven’t been able to do so either. Do you know what >> the -r flag to make does? >> >> Thank you, >> Ruy >>> On May 2, 2018, at 6:51 PM, Dicamillo, Robert <rdicami...@mgh.harvard.edu >>> <mailto:rdicami...@mgh.harvard.edu>> wrote: >>> >>> Hello Ruy, >>> >>> Do you mean the mri_train binary that gets built under >>> ./freesurfer/mri_train ? >>> (I see a ./freesurfer/dmri_poistats, ./freesurfer/dmri_tensroreig but not a >>> ./freesurfer/dmri_train). >>> >>> Things are not necessarily setup so you can cd to ./freesurfer/<subdir> and >>> just build >>> what is there in isolation from the rest of the tree. >>> >>> But for ./freesiurfer/mri_train, you could try the following, which worked >>> for me on a Mac, e.g., >>> after changing mri_train.c, >>> >>> $ cd ./freesurfer/mri_train >>> $ rm -f mri_train mri_train.o >>> $ make -r mri_train >>> >>> - rob >>> >>> >>> >>> >>>> On May 2, 2018, at 5:37 PM, Ricardo Valle <ruyval...@gmail.com >>>> <mailto:ruyval...@gmail.com>> wrote: >>>> >>>> External Email - Use Caution >>>> >>>> >>>> Hello, >>>> >>>> I need help recompiling dmri_train for Mac. It seems like the instructions >>>> in the Mac Developer’s don’t work. >>>> >>>> When I cd to the trc subdirectory and run make, I am told there is nothing >>>> to do. I tried editing the Makefile, adding bin_PROGRAMS = dmri_train, at >>>> which point I got a different error. I then uncommented some other lines >>>> in the Makefile and managed to start compiling dmri_train, but I’ve been >>>> getting a never-ending sequence of errors, essentially telling me that the >>>> compiler can’t find various dependencies (boost/program_options.h, itk*.h, >>>> etc.). I’ve tried running ./configure with various flags that disable or >>>> enable various build options, copying over .h files from other locations, >>>> adding -I <path> directives for the compiler in the Makefile, etc. etc. to >>>> no avail. >>>> >>>> Thank you, >>>> Ruy >>>>> On Apr 30, 2018, at 5:19 PM, Ricardo Valle <ruyval...@gmail.com >>>>> <mailto:ruyval...@gmail.com>> wrote: >>>>> >>>>> Dear Freesurfer community, >>>>> >>>>> I am trying to recompile Freesurfer in order to get a binary of the >>>>> latest version of dmri_train. I have been following the instructions in >>>>> the Freesurfer Mac Developer’s page >>>>> <https://surfer.nmr.mgh.harvard.edu/fswiki/freesurfer_mac_developers_page> >>>>> and am stuck at the following: >>>>> git annex get --metadata fstags=makeinstall . >>>>> >>>>> I am attaching the output (stdout and stderr) from this command to this >>>>> email. Please note that I called the git-annex repository mgh rather than >>>>> datasrc. The purpose of running this is so I can run make install. >>>>> >>>>> Is there a way of recompiling only dmri_train or only the dmri_* >>>>> programs? If not, do you know why git-annex might be giving me problems >>>>> and how to solve this? >>>>> >>>>> Thank you, >>>>> Ruy >>>>> <fs-annex-get.txt> >>>> >>>> _______________________________________________ >>>> Freesurfer mailing list >>>> Freesurfer@nmr.mgh.harvard.edu <mailto:Freesurfer@nmr.mgh.harvard.edu> >>>> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer >>>> <https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer> >>> _______________________________________________ >>> Freesurfer mailing list >>> Freesurfer@nmr.mgh.harvard.edu <mailto:Freesurfer@nmr.mgh.harvard.edu> >>> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer >>> <https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer> >>> >>> >>> The information in this e-mail is intended only for the person to whom it is >>> addressed. If you believe this e-mail was sent to you in error and the >>> e-mail >>> contains patient information, please contact the Partners Compliance >>> HelpLine at >>> http://www.partners.org/complianceline . If the e-mail was sent to you in >>> error >>> but does not contain patient information, please contact the sender and >>> properly >>> dispose of the e-mail. >> >> _______________________________________________ >> Freesurfer mailing list >> Freesurfer@nmr.mgh.harvard.edu <mailto:Freesurfer@nmr.mgh.harvard.edu> >> https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer > > _______________________________________________ > Freesurfer mailing list > Freesurfer@nmr.mgh.harvard.edu > https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer > > > The information in this e-mail is intended only for the person to whom it is > addressed. If you believe this e-mail was sent to you in error and the e-mail > contains patient information, please contact the Partners Compliance HelpLine > at > http://www.partners.org/complianceline . If the e-mail was sent to you in > error > but does not contain patient information, please contact the sender and > properly > dispose of the e-mail.
_______________________________________________ Freesurfer mailing list Freesurfer@nmr.mgh.harvard.edu https://mail.nmr.mgh.harvard.edu/mailman/listinfo/freesurfer The information in this e-mail is intended only for the person to whom it is addressed. If you believe this e-mail was sent to you in error and the e-mail contains patient information, please contact the Partners Compliance HelpLine at http://www.partners.org/complianceline . If the e-mail was sent to you in error but does not contain patient information, please contact the sender and properly dispose of the e-mail.