I am trying to build Yambo as part of QE 6.3. It works perfectly on an older HPC environment (CentOS 6.9, Intel compiler suite, OpenMPI 1.6). The make there is OS make 3.81.
However, on a newer HPC machine where we have some very recent userland from Nix (Make version 4.2.1) building Yambo fails for any compiler, be that Intel 16 or GCC 5.4.0.
Code: Select all
>>>[Linking yambo]<<<
make[3]: Entering directory '/home/gshamov/devel/qe/qe-6.3/yambo-stable/driver'
/bin/sh: echo$: command not found
make[3]: *** [Makefile:85: yambo] Error 127
make[3]: Leaving directory '/home/gshamov/devel/qe/qe-6.3/yambo-stable/driver'
The offending line seem to be the call to $(driver) function that has teh @echo at the end.
Code: Select all
$(target): $(dep_file) $(objs)
$(driver)$
$(link)$
$(modmove)$
$(dircheck)$
@mv $@ $(exec_prefix)
Code: Select all
#
# Functions
#
define driver
@if test -f $(prefix)/driver/yambo.h; then $(cpp) $(cppflags) $(dopts) $(prefix)/driver/yambo.h > $(prefix)/driver/yambo_cpp.h; fi
@if test -f $(prefix)/driver/ypp.h; then $(cpp) $(cppflags) $(dopts) $(prefix)/driver/ypp.h > $(prefix)/driver/ypp_cpp.h; fi
@( eval $(cc) $(cflags) -c $(prefix)/driver/getopt.c > /dev/null)
@( eval $(cc) $(cflags) $(dopts) -D_$@ -c $(prefix)/driver/driver.c > /dev/null)
@rm -f $(prefix)/driver/yambo_cpp.h $(prefix)/driver/ypp_cpp.h
@echo
endef
Code: Select all
[gshamov@ driver]$[i] make -n[/i]
if test -f /home/gshamov/devel/qe/qe-6.3/YAMBO/driver/yambo.h; then gcc -E -P -D_MPI -D_FFTW -D_SCALAPACK -D_TIMING -D_linux /home/gshamov/devel/qe/qe-6.3/YAMBO/driver/yambo.h > /home/gshamov/devel/qe/qe-6.3/YAMBO/driver/yambo_cpp.h; fi
if test -f /home/gshamov/devel/qe/qe-6.3/YAMBO/driver/ypp.h; then gcc -E -P -D_MPI -D_FFTW -D_SCALAPACK -D_TIMING -D_linux /home/gshamov/devel/qe/qe-6.3/YAMBO/driver/ypp.h > /home/gshamov/devel/qe/qe-6.3/YAMBO/driver/ypp_cpp.h; fi
( eval mpicc -g -O2 -D_C_US -D_FORTRAN_US -c /home/gshamov/devel/qe/qe-6.3/YAMBO/driver/getopt.c > /dev/null)
( eval mpicc -g -O2 -D_C_US -D_FORTRAN_US -D_MPI -D_FFTW -D_SCALAPACK -D_TIMING -D_linux -D_yambo -c /home/gshamov/devel/qe/qe-6.3/YAMBO/driver/driver.c > /dev/null)
rm -f /home/gshamov/devel/qe/qe-6.3/YAMBO/driver/yambo_cpp.h /home/gshamov/devel/qe/qe-6.3/YAMBO/driver/ypp_cpp.h
[b]echo$[/b]
I am at loss as to what to do about this issue. Could anyone please advise? Thank you very much in advance!
--
Grigory Shamov
WestGrid Site Lead / HPC Specialist
University of Manitoba
E2-588 EITC Building,
(204) 474-9625