Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MACHINA installation #20

Open
HosseinSnejad opened this issue Oct 18, 2022 · 5 comments
Open

MACHINA installation #20

HosseinSnejad opened this issue Oct 18, 2022 · 5 comments

Comments

@HosseinSnejad
Copy link

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
Copy link
Member

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

@HosseinSnejad
Copy link
Author

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
Copy link
Author

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
Copy link
Member

Looks like your gurobi library path is not set correctly. Send me an email: [email protected]. Easier to do this with screen sharing via Zoom.

@melkebir
Copy link
Member

This was resolved by adjusting the cmake flag GUROBI_CPP_LIB.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants