raphael-group / machina

Framework for Metastatic And Clonal History INtegrative Analysis
BSD 3-Clause "New" or "Revised" License
34 stars 12 forks source link

MACHINA installation #20

Open HosseinSnejad opened 1 year ago

HosseinSnejad commented 1 year ago

Hey, I'm trying to compile MACHINA on a linux server. I have successfully installed all the dependencies (Gurobi810, Lemon 1.3.1, boost 1_61_0 and CMake 3.17.2). I also installed doxygen. However, when I try to implement command "make" for doxygen, I receive a lot of warnings along with the following error:

src/CMakeFiles/doxycfg.dir/build.make:123: recipe for target 'src/CMakeFiles/doxycfg.dir//generated_src/configimpl.cpp.o' failed make[2]: [src/CMakeFiles/doxycfg.dir//generated_src/configimpl.cpp.o] Error 1 CMakeFiles/Makefile2:528: recipe for target 'src/CMakeFiles/doxycfg.dir/all' failed make[1]: [src/CMakeFiles/doxycfg.dir/all] Error 2 Makefile:182: recipe for target 'all' failed make: *** [all] Error 2

I tried to install it several times but always same warnings show up. Regardless of that, I tried to continue. I changed directory to machina/build and successfully implemented "cmake ..". But when I tried "make", I received this message:

-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) Doxygen need to be installed to generate the doxygen documentation -- Gurobi's home is set to: /opt/gurobi810 -- The retrieved version of Gurobi is: 810 -- The retrieved name of version-specific library is gurobi81 -- Gurobi library /opt/gurobi810/linux64/lib/libgurobi81.so found in /opt/gurobi810/linux64/lib/ -- Configuring done -- Generating done -- Build files have been written to: /alina-data0/hossein/machina

After that, I copied "Makefile" from doxygen/build into machina/build and implemented "make" in machina/build directory again. This time, I received the following message:

-- Using Cmake version 3.17.2 -- The javacc executable not found, using existing files -- Configuring done -- Generating done -- Build files have been written to: /alina-data0/hossein/machina/build/doxygen/build make[1]: CMakeFiles/Makefile2: No such file or directory make[1]: No rule to make target 'CMakeFiles/Makefile2'. Stop. Makefile:182: recipe for target 'all' failed make: [all] Error 2

Likewise, I copied "CMakeFiles/Makefile2" directory from /doxygen/build into machina/build and implemented "make" again. I received the following message:

-- Using Cmake version 3.17.2 -- The javacc executable not found, using existing files -- Configuring done -- Generating done -- Build files have been written to: /alina-data0/hossein/machina/build/doxygen/build make[2]: libmd5/CMakeFiles/md5.dir/build.make: No such file or directory make[2]: No rule to make target 'libmd5/CMakeFiles/md5.dir/build.make'. Stop. CMakeFiles/Makefile2:311: recipe for target 'libmd5/CMakeFiles/md5.dir/all' failed make[1]: [libmd5/CMakeFiles/md5.dir/all] Error 2 Makefile:182: recipe for target 'all' failed make: *** [all] Error 2

In the same way, I copied the relevant directory to machina/build and I got the following message:

-- Using Cmake version 3.17.2 -- The javacc executable not found, using existing files -- Configuring done -- Generating done -- Build files have been written to: /alina-data0/hossein/machina/build/doxygen/build make[2]: No rule to make target '../libmd5/md5.c', needed by 'libmd5/CMakeFiles/md5.dir/md5.c.o'. Stop. CMakeFiles/Makefile2:311: recipe for target 'libmd5/CMakeFiles/md5.dir/all' failed make[1]: [libmd5/CMakeFiles/md5.dir/all] Error 2 Makefile:182: recipe for target 'all' failed make: *** [all] Error 2

I searched in stackoverflow for the solution and it turns out that I am missing "md5.c" file. But I do not have any idea where to find it? It's not in doxygen packet. Is it because of those warnings in the process of doxygen installation? If yes, how to resolve it? Do I need doxygen at all? If no, how to compile MACHINA? I appreciate your time and help in advance.

melkebir commented 1 year ago

Doxygen is not needed. Can you post output of VEBOSE=1 make of MACHINA?

HosseinSnejad commented 1 year ago

Thank you for your reply. Here is the output of VERBOSE=1 make

/usr/local/bin/cmake -P /alina-data0/hossein/machina/build/doxygen/build/CMakeFiles/VerifyGlobs.cmake /usr/local/bin/cmake -S/alina-data0/hossein/machina/build/doxygen -B/alina-data0/hossein/machina/build/doxygen/build --check-build-system CMakeFiles/Makefile.cmake 0 Re-run cmake missing file: CMakeFiles/Makefile.cmake -- Using Cmake version 3.17.2 -- The javacc executable not found, using existing files -- Configuring done -- Generating done -- Build files have been written to: /alina-data0/hossein/machina/build/doxygen/build /usr/local/bin/cmake -E cmake_progress_start /alina-data0/hossein/machina/build/doxygen/build/CMakeFiles /alina-data0/hossein/machina/build/doxygen/build/CMakeFiles/progress.marks make -f CMakeFiles/Makefile2 all make[1]: Entering directory '/alina-data0/hossein/machina/build' make -f libmd5/CMakeFiles/md5.dir/build.make libmd5/CMakeFiles/md5.dir/depend make[2]: Entering directory '/alina-data0/hossein/machina/build' cd /alina-data0/hossein/machina/build/doxygen/build && /usr/local/bin/cmake -E cmake_depends "Unix Makefiles" /alina-data0/hossein/machina/build/doxygen /alina-data0/hossein/machina/build/doxygen/libmd5 /alina-data0/hossein/machina/build/doxygen/build /alina-data0/hossein/machina/build/doxygen/build/libmd5 /alina-data0/hossein/machina/build/doxygen/build/libmd5/CMakeFiles/md5.dir/DependInfo.cmake --color= make[2]: Leaving directory '/alina-data0/hossein/machina/build' make -f libmd5/CMakeFiles/md5.dir/build.make libmd5/CMakeFiles/md5.dir/build make[2]: Entering directory '/alina-data0/hossein/machina/build' make[2]: No rule to make target '../libmd5/md5.c', needed by 'libmd5/CMakeFiles/md5.dir/md5.c.o'. Stop. make[2]: Leaving directory '/alina-data0/hossein/machina/build' CMakeFiles/Makefile2:311: recipe for target 'libmd5/CMakeFiles/md5.dir/all' failed make[1]: [libmd5/CMakeFiles/md5.dir/all] Error 2 make[1]: Leaving directory '/alina-data0/hossein/machina/build' Makefile:182: recipe for target 'all' failed make: *** [all] Error 2

HosseinSnejad commented 1 year ago
Screen Shot 2022-10-25 at 6 07 08 PM

I commented out the requirement for checking doxygen in CMakeList.txt and after that I get this issue about linking with Gurobi models.

melkebir commented 1 year ago

Looks like your gurobi library path is not set correctly. Send me an email: melkebir@illinois.edu. Easier to do this with screen sharing via Zoom.

melkebir commented 1 year ago

This was resolved by adjusting the cmake flag GUROBI_CPP_LIB.