libmesh
libmesh copied to clipboard
"No rule to make target..." installation error on Windows
Hello,
I've been following the Windows installation instructions using MSYS2 on Windows 11. After generating the config files and running make
I'm getting the following error:
make[3]: *** No rule to make target '../../../contrib/exodusii/v5.22/exodus/cbind/include/exodusII.h', needed by 'exodusII.h'. Stop.
make[3]: Leaving directory '/c/Users/Sam/Documents/Github/libmesh/build/include/libmesh'
make[2]: *** [Makefile:1188: all-recursive] Error 1
make[2]: Leaving directory '/c/Users/Sam/Documents/Github/libmesh/build/include'
make[1]: *** [Makefile:1105: all] Error 2
make[1]: Leaving directory '/c/Users/Sam/Documents/Github/libmesh/build/include'
make: *** [Makefile:33497: all-recursive] Error 1
make check
outputs a very similar error. Any ideas on what might be wrong?
Thank you!
EDIT:
I had forgotten to replace the symbolic links as suggested with contrib/bin/fix_windows_symlinks.sh
. After doing so and regenerating the config files, the error has changed but appears to be similar.
GEN netcdf.h
GEN libmesh_config.h
make all-am
make[4]: Entering directory '/c/Users/Sam/Documents/Github/libmesh/build/include/libmesh'
make[4]: Nothing to be done for 'all-am'.
make[4]: Leaving directory '/c/Users/Sam/Documents/Github/libmesh/build/include/libmesh'
make[3]: Leaving directory '/c/Users/Sam/Documents/Github/libmesh/build/include/libmesh'
make[3]: Entering directory '/c/Users/Sam/Documents/Github/libmesh/build/include'
make[3]: Leaving directory '/c/Users/Sam/Documents/Github/libmesh/build/include'
make[2]: Leaving directory '/c/Users/Sam/Documents/Github/libmesh/build/include'
make[1]: Leaving directory '/c/Users/Sam/Documents/Github/libmesh/build/include'
Making all in contrib
make[1]: Entering directory '/c/Users/Sam/Documents/Github/libmesh/build/contrib'
Making all in boost/include
make[2]: Entering directory '/c/Users/Sam/Documents/Github/libmesh/build/contrib/boost/include'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/c/Users/Sam/Documents/Github/libmesh/build/contrib/boost/include'
Making all in eigen/eigen
make[2]: Entering directory '/c/Users/Sam/Documents/Github/libmesh/build/contrib/eigen/eigen'
make[2]: *** No rule to make target 'Eigen/Householder', needed by 'all-am'. Stop.
make[2]: Leaving directory '/c/Users/Sam/Documents/Github/libmesh/build/contrib/eigen/eigen'
make[1]: *** [Makefile:1047: all-recursive] Error 1
make[1]: Leaving directory '/c/Users/Sam/Documents/Github/libmesh/build/contrib'
make: *** [Makefile:33497: all-recursive] Error 1
Almost the same error:
Making all in eigen/eigen make[2]: Entering directory '/home/zxdi/code/libmesh-1.7.1/contrib/eigen/eigen' make[2]: *** No rule to make target 'Eigen/src/Core/arch/CUDA/Half.h', needed by 'all-am'. Stop. make[2]: Leaving directory '/home/zxdi/code/libmesh-1.7.1/contrib/eigen/eigen' make[1]: *** [Makefile:1020: all-recursive] Error 1 make[1]: Leaving directory '/home/zxdi/code/libmesh-1.7.1/contrib' make: *** [Makefile:32290: all-recursive] Error 1
Ubuntu 24.04, libmesh-1.7.1
I'm not very familiar with that script (my apologies: libMesh builds on Windows aren't in CI or really supported, we just don't turn down third-party patches from people who've suffered to get it working anyways), but since it's using git ls-files
to get the list of symlinks, and since you're hitting a failure in a git submodule, is it possible that we're just failing to recurse into submodules when we should be? Our contributor wouldn't have noticed at the time, because when that script was written we hadn't yet replaced our copy of Eigen with a submodule hash.
Almost the same error:
Making all in eigen/eigen make[2]: Entering directory '/home/zxdi/code/libmesh-1.7.1/contrib/eigen/eigen' make[2]: *** No rule to make target 'Eigen/src/Core/arch/CUDA/Half.h', needed by 'all-am'. Stop. make[2]: Leaving directory '/home/zxdi/code/libmesh-1.7.1/contrib/eigen/eigen' make[1]: *** [Makefile:1020: all-recursive] Error 1 make[1]: Leaving directory '/home/zxdi/code/libmesh-1.7.1/contrib' make: *** [Makefile:32290: all-recursive] Error 1
Ubuntu 24.04, libmesh-1.7.1
Resolved by using another libmesh version.