4
$\begingroup$

I installed spack and a more recent gcc (v13). I followed the steps in the doc. I started with the installation of the serial version using:

$ spack install siesta -mpi build_type=Debug

However, siesta compilation exits with an error after passing many steps. Below is part of the error message. It seems to happen at "flook" library step and is related to the fact that a *.cxx.make file is unidentified..

smeka/Makefile.compiler:102: smeka/vendor/unknown.cxx.make: No such file or directory

I went through the files, normally there is an include statement in Makefile.compiler file at line 102:

include $(TOP_DIR)/$(SMEKA_DIR)/vendor/$(CXX_VENDOR).cxx.make

It seems that CXX_VENDOR is unknown to the system and that is why it issues "unknown.cxx.make" No such file or directory during Lua build process.

...
...
...
[+] /home/boubacart/spack/opt/spack/linux-centos7-zen/gcc-13.1.0/fftw-3.3.10-7npgynj3gyo2vwz7ahoik2ffopli4hyw
==> Installing siesta-master-2024.05.09-bl2zcfjbehlhpzjs2ycpep7d53bm5x73 [47/47]
==> No binary for siesta-master-2024.05.09-bl2zcfjbehlhpzjs2ycpep7d53bm5x73 found: installing from source
==> No patches needed for siesta
==> siesta: Executing phase: 'cmake'
==> siesta: Executing phase: 'build'
==> Error: ProcessError: Command exited with status 2:
    'make' '-j16'

5 errors found in build log:
     1388    setup.make:13: warning: overriding recipe for target '.F90.o'
     1389    setup.make:13: warning: ignoring old recipe for target '.F90.o'
     1390    setup.make:15: warning: overriding recipe for target '.c.o'
     1391    setup.make:15: warning: ignoring old recipe for target '.c.o'
     1392    [  6%] Linking Fortran static library liblibhsx.a
     1393    cd /tmp/boubacart/spack-stage/spack-stage-siesta-master-2024.05.09-bl2zcfjbehlhpzjs2ycpep7d53bm5x73/spack-build-bl2zcfj/Util/HSX && /home/boubac
             art/spack/opt/spack/linux-centos7-zen/gcc-13.1.0/cmake-3.27.9-ohjaouasmwc5wj2zptg2qca5llf2rmlg/bin/cmake -P CMakeFiles/libhsx.dir/cmake_clean_ta
             rget.cmake
  >> 1394    smeka/Makefile.compiler:102: smeka/vendor/unknown.cxx.make: No such file or directory
  >> 1395    gmake[3]: *** No rule to make target 'smeka/vendor/unknown.cxx.make'.  Stop.
     1396    gmake[3]: Leaving directory '/tmp/boubacart/spack-stage/spack-stage-siesta-master-2024.05.09-bl2zcfjbehlhpzjs2ycpep7d53bm5x73/spack-build-bl2zcf
             j/External/Lua-Engine/flook-prefix/src/flook-build'
  >> 1397    make[2]: *** [External/Lua-Engine/CMakeFiles/flook.dir/build.make:92: External/Lua-Engine/flook-prefix/src/flook-stamp/flook-build] Error 2
     1398    make[2]: Leaving directory '/tmp/boubacart/spack-stage/spack-stage-siesta-master-2024.05.09-bl2zcfjbehlhpzjs2ycpep7d53bm5x73/spack-build-bl2zcfj
             '
  >> 1399    make[1]: *** [CMakeFiles/Makefile2:2406: External/Lua-Engine/CMakeFiles/flook.dir/all] Error 2
     1400    make[1]: *** Waiting for unfinished jobs....
     1401    /home/boubacart/spack/opt/spack/linux-centos7-zen/gcc-13.1.0/cmake-3.27.9-ohjaouasmwc5wj2zptg2qca5llf2rmlg/bin/cmake -E touch Util/HSX/CMakeFile
             s/libhsx.dir/hsx_m.f90.o.provides.build

I am not sure of what else could be missing that leads to these errors ? Thanks

$\endgroup$
2
  • 1
    $\begingroup$ I am not experienced with spack, but could you try this before running spack: export CXX_VENDOR=gnu $\endgroup$
    – nickpapior
    Commented Jun 11 at 10:44
  • $\begingroup$ Instead of CXX_VENDOR=gnu, I had directly set VENDOR=gnu with CXX_VENDOR=$VENDOR in Makefile.compile file. It boiled down to what your suggestion. It solved that unknown.cxx.make error and thanks ! $\endgroup$
    – Boubacar
    Commented Jun 11 at 13:43

1 Answer 1

1
$\begingroup$

Having set CXX_VENDOR similar to what nickpapior suggested, it solved the error related to

*** No rule to make target 'smeka/vendor/unknown.cxx.make'

However, another error related to "lua.h" occured (lua.h: No such file or directory)

f951: Warning: Nonexistent include directory ‘external/lua-5.3.5/src’ [-Wmissing-include-dirs]
[  8%] Building Fortran object Src/psoplib/src/CMakeFiles/SIESTA-libpsop.dir/psop_params.f.o
../.././aotus/LuaFortran/wrap_lua_dump.c:2:10: fatal error: lua.h: No such file or directory
    2 | #include "lua.h"
      |          ^~~~~~~
compilation terminated.
make[4]: *** [../.././aotus/smeka/Makefile.compiler:143: wrap_lua_dump.o] Error 1
make[4]: *** Waiting for unfinished jobs....
[  8%] Building Fortran object Src/psoplib/src/CMakeFiles/SIESTA-libpsop.dir/m_localgen.f.o
[  8%] Building Fortran object Src/psoplib/src/CMakeFiles/SIESTA-libpsop.dir/arw.f.o
[  8%] Building Fortran object Src/psoplib/src/CMakeFiles/SIESTA-libpsop.dir/schrodinger.F.o
gmake[3]: *** [Makefile:67: lib-aotus] Error 2
gmake[2]: *** [External/Lua-Engine/CMakeFiles/flook.dir/build.make:89: External/Lua-Engine/flook-prefix/src/flook-stamp/flook-build] Error 2
gmake[1]: *** [CMakeFiles/Makefile2:3988: External/Lua-Engine/CMakeFiles/flook.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....

What I did was to explicitly include

$(SIESTA_ROOT)/External/Lua-Engine/flook/aotus/external/lua-5.3.5/src

in setup.make.in file under Lua-Engine directory using:

LUA_DIR = $(SIESTA_ROOT)/External/Lua-Engine/flook/aotus/external/lua-5.3.5
INC += -I$(LUA_DIR)/src

This solved the problem. After that, the compilation and installation successfully finished.

Perhaps, it would be better to check the system setup for building Lua with cmake and properly solve these issues.

NB: I did these steps with cmake build + install outside spack.

$\endgroup$
1
  • $\begingroup$ Thanks for the solution! I don't know how the unknown entered, I can't see anything in the spack recipes, and the detection should be rather automatic (since any doubt would result in gnu compilers!) $\endgroup$
    – nickpapior
    Commented Jun 12 at 13:51

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .