Closed yurivict closed 4 years ago
You're using the a zip archive from the master branch, which doesn't include the changes from PR #1281 where I fixed the issues with frobby, fflas-ffpack, and givaro.
A Factory archive is downloaded from the Macaulay2 website. The link is in cmake/build-libraries.cmake
Here are the steps I took to reproduce your issue:
fflas_ffpack, givaro, mathic, mathicgb, memtailor, googletest
submodules/bdwgc/x
and submodules/flint2/x
cddlib-0.94j.tar.gz factory-4.1.3.tar.gz
d12b7b786a0e50765c1a2878601125ac2f55b68c.tar.gz mpsolve-3.1.8.tar.gz
The long hash is Frobby, which will probably change soon now that Dan has added a tag to that repository.
cmake -DCMAKE_BUILD_TYPE=Release -GNinja -DUSING_MPIR=OFF ../..
in the BUILD/build
directoryninja build-libraries
And I didn't run into an issue. Try the development branch, or wait until the changes are merged into master, and if it still doesn't work please share your steps or script for reproducing the issues.
Also, since I'm guessing you're preparing a distribution package, you might want to use the -DBUILD_NATIVE=OFF
flag as well to remove -march=native
.
I used the latest master 1.15.1.0-480-g25ff47372
Like I said, please use the development branch if you want it to work right now. Otherwise, the changes should be in master maybe tomorrow.
The development
branch revision 93582031d79af22bb6605b63d33da0a1b6479c48 doesn't find these libs:
-- Could NOT find Memtailor (missing: MEMTAILOR_INCLUDE_DIR MEMTAILOR_LIBRARIES) (Required is at least version "1.0.0")
-- Could NOT find Mathic (missing: MATHIC_INCLUDE_DIR MATHIC_LIBRARIES) (Required is at least version "1.0.0")
-- Could NOT find Mathicgb (missing: MATHICGB_INCLUDE_DIR MATHICGB_LIBRARIES) (Required is at least version "1.0.0")
even though they are in the places where submodules are supposed to be:
$ ls work/M2-93582031d79af22bb6605b63d33da0a1b6479c48/M2/submodules/mathic
CMakeLists.txt README.md build configure.ac include lgpl-2.1.txt libs src
Makefile.am autogen.sh cmake fixspace lgpl-2.0.txt lgpl-3.0.txt replace
$ ls work/M2-93582031d79af22bb6605b63d33da0a1b6479c48/M2/submodules/mathicgb/
CMakeLists.txt README.md build configure.ac examples gpl-2.0.txt libs src
Makefile.am autogen.sh cmake doc fixspace gpl-3.0.txt replace
$ ls work/M2-93582031d79af22bb6605b63d33da0a1b6479c48/M2/submodules/memtailor/
CMakeLists.txt Makefile.am README.md autogen.sh build configure.ac fixspace libs license.txt replace src
That is okay because those are only source files. ninja build-libraries
will build memtailor, mathic, and mathicgb from the sources in those directories.
Those messages are not errors! They're just informing you that the library or program wasn't found. If you look further down, it says:
## External components
Need to build:
Libraries = ...;mathic;mathicgb;memtailor
@yurivict did you run into any other issues?
configure still fails with an unclear reason:
-- Found Threads: TRUE
-- Looking for sgemm_
-- Looking for sgemm_ - found
-- Found BLAS: /usr/local/lib/libblas.so
-- Looking for rl_copy_text
-- Looking for rl_copy_text - found
-- Looking for rl_filename_completion_function
-- Looking for rl_filename_completion_function - found
-- Found GMP: /usr/local/include (Required is at least version "6.0.0")
-- Found BDWGC: /usr/local/include (Required is at least version "7.6.4")
-- Found MPFR: /usr/local/include (Required is at least version "4.0.1")
-- Found NTL: /usr/local/include (Required is at least version "10.5.0")
-- Found Flint: /usr/local/include (Required is at least version "2.6.0")
-- Could NOT find Factory (missing: FACTORY_INCLUDE_DIR FACTORY_LIBRARIES FACTORY_VERSION_OK) (Required is at least version "4.1.0")
-- Found Frobby: /usr/local/include (Required is at least version "0.9.0")
-- Found CDDLIB: /usr/local/include/cdd
-- Found MPSolve: /usr/local/lib/libmps.so (Required is at least version "3.1.8")
-- Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY) (Required is at least version "1.10")
-- Could NOT find Memtailor (missing: MEMTAILOR_INCLUDE_DIR MEMTAILOR_LIBRARIES) (Required is at least version "1.0.0")
-- Could NOT find Mathic (missing: MATHIC_INCLUDE_DIR MATHIC_LIBRARIES) (Required is at least version "1.0.0")
-- Could NOT find Mathicgb (missing: MATHICGB_INCLUDE_DIR MATHICGB_LIBRARIES) (Required is at least version "1.0.0")
-- Found GLPK: /usr/local/include (Required is at least version "4.59.0")
-- Checking for one of the modules 'fflas-ffpack>=2.4.3'
-- Checking for one of the modules 'givaro>=4.1.1'
-- Found LibXml2: /usr/local/lib/libxml2.so (found suitable version "2.9.10", minimum required is "2.9")
-- Checking library compatibility
-- Performing Test LIBRARY_COMPATIBILITY
-- Performing Test LIBRARY_COMPATIBILITY - Success
-- Checking library compatibility - Libraries are compatible!
-- Performing Test HAVE_GIVARO_isunit
-- Performing Test HAVE_GIVARO_isunit - Failed
CMake Error at /usr/local/share/cmake/Modules/ExternalProject.cmake:2659 (message):
No download info given for 'build-givaro' and its source directory:
/usr/ports/math/macaulay2/work/M2-93582031d79af22bb6605b63d33da0a1b6479c48/M2/submodules/givaro
is not an existing non-empty directory. Please specify one of:
* SOURCE_DIR with an existing non-empty directory
* DOWNLOAD_COMMAND
* URL
* GIT_REPOSITORY
* SVN_REPOSITORY
* HG_REPOSITORY
* CVS_REPOSITORY and CVS_MODULE
Call Stack (most recent call first):
/usr/local/share/cmake/Modules/ExternalProject.cmake:3271 (_ep_add_download_command)
cmake/build-libraries.cmake:547 (ExternalProject_Add)
CMakeLists.txt:76 (include)
## External components
Need to build:
Libraries = factory;fflas_ffpack;frobby;googletest;mathic;mathicgb;memtailor
Programs = 4ti2;cohomcalg;csdp;gfan;lrslib;nauty;normaliz;topcom
Already built:
Libraries = N/A
Programs = N/A
## Library information
Linear Algebra = /usr/local/lib/liblapack.so;/usr/local/lib/libblas.so
MP Arithmetic = /usr/local/lib/libgmpxx.so;/usr/local/lib/libgmp.so
## Library compile options:
CFLAGS = -DNDEBUG -DOM_NDEBUG -DSING_NDEBUG -Wuninitialized -g -I/usr/ports/math/macaulay2/work/.build/usr-host/include -I/usr/ports/math/macaulay2/work/M2-93582031d79af22bb6605b63d33da0a1b6479c48/M2/include -I/usr/ports/math/macaulay2/work/.build/include -w -Wimplicit -Werror
CXXFLAGS = -DNDEBUG -DOM_NDEBUG -DSING_NDEBUG -Wuninitialized -g -I/usr/ports/math/macaulay2/work/.build/usr-host/include -I/usr/ports/math/macaulay2/work/M2-93582031d79af22bb6605b63d33da0a1b6479c48/M2/include -I/usr/ports/math/macaulay2/work/.build/include -std=gnu++11 -w -Wno-mismatched-tags -Wno-deprecated-register
LDFLAGS = -g -L/usr/ports/math/macaulay2/work/.build/usr-host/lib
-- Checking for existing libraries and programs - Some components are missing
## Rerun build-libraries and build-programs targets first
-- Configuring incomplete, errors occurred!
See also "/usr/ports/math/macaulay2/work/.build/CMakeFiles/CMakeOutput.log".
See also "/usr/ports/math/macaulay2/work/.build/CMakeFiles/CMakeError.log".
*** Error code 1
Stop.
make[1]: stopped in /usr/ports/math/macaulay2
*** Error code 1
Stop.
make: stopped in /usr/ports/math/macaulay2
The factory tarball is extracted into M2/libraries/factory/
configure still fails with an unclear reason:
The reason CMake is failing is very clear:
No download info given for 'build-givaro' and its source directory:
/usr/ports/math/macaulay2/work/M2-93582031d79af22bb6605 b63d33da0a1b6479c48/M2/submodules/givaro
is not an existing non-empty directory. Please specify one of:
* SOURCE_DIR with an existing non-empty directory
@yurivict did you see the steps in this comment?
Specifically:
I also downloaded zip archives corresponding to the right git commit hash from the right repository for each submodule and extracted them in the submodules directory, specifically:
fflas_ffpack, ***givaro***, mathic, mathicgb, memtailor, googletest
- I also touched
submodules/bdwgc/x
andsubmodules/flint2/x
- I downloaded the following archives in the BUILD/tarfiles directory:
cddlib-0.94j.tar.gz factory-4.1.3.tar.gz d12b7b786a0e50765c1a2878601125ac2f55b68c.tar.gz mpsolve-3.1.8.tar.gz
The long hash is Frobby, which will probably change soon now that Dan has added a tag to that repository.
Also, you said:
The factory tarball is extracted into M2/libraries/factory/
Why? Download the tarfile factory-4.1.3.tar.gz from this page and put it in the M2/BUILD/tarfiles
directory, unextracted.
Explicitly, the download links are:
The sha256sum digest of the archives is saved in cmake/build-libraries.cmake
, so other libraries with the same name won't work unless you patch that file.
The steps I provided are all feasible within your constraints. I'll close this issue, if after following those steps you still get any dependency or build errors, please reopen this issue or make a new one.
but then begins to look for .git folder and fails:
Once cmake finds Frobby this should resolve the problem of looking for
Problem#2 * It fails to find Memtailor, even though the tarball has been extracted:
Probem#3 * Same for
fflas_ffpack
.Probem#4 * It's unclear where can
factory
come from. Is there an upstream URL for it? There is no git submodule for it.