libmesh icon indicating copy to clipboard operation
libmesh copied to clipboard

"No rule to make target..." installation error on Windows

Open spasmann opened this issue 9 months ago • 3 comments

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

spasmann avatar May 07 '24 18:05 spasmann

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

zxdi avatar May 13 '24 05:05 zxdi

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.

roystgnr avatar May 13 '24 18:05 roystgnr

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.

zxdi avatar May 14 '24 04:05 zxdi