Hi.
The problem seems to be in the install target of the top-level
Makefile, which reads like this:
install : touch-dummy
@if test -d bin ; then mkdir -p $(DESTDIR)$(bindir) ; \
for x in `find . -path ./test-suite -prune -o -name *.x -type f` ; do \
cp $$x $(DESTDIR)$(bindir)/ ; done ; \
fi
@echo 'Quantum ESPRESSO binaries installed in $(PREFIX)/bin'
This is the output of "find" in the machine where it does not fail:
./S3DE/iotk/src/iotk.x
./S3DE/iotk/src/iotk_print_kinds.x
./test-suite
./PW/tools/ev.x
./PW/tools/pwi2xsf.x
./PW/tools/dist.x
./PW/tools/kpoints.x
./PW/src/pw.x
./PW/src/generate_rVV10_kernel_table.x
./PW/src/generate_vdW_kernel_table.x
./PW/src/manypw.x
and this is the output of "find" in the machine where it fails:
./S3DE/iotk/src/iotk_print_kinds.x
./S3DE/iotk/src/iotk.x
./PW/tools/kpoints.x
./PW/tools/pwi2xsf.x
./PW/tools/dist.x
./PW/tools/ev.x
./PW/src/pw.x
./PW/src/generate_vdW_kernel_table.x
./PW/src/generate_rVV10_kernel_table.x
./PW/src/manypw.x
./test-suite
There are severl problems here:
* The directory "test-suite" should be excluded but it isn't.
* The output of "find" depends on filesystem ordering, it may be anything.
* The "cp" commands are concatenated using ";" and not "&&", which means
an intermediate "cp" command may fail as far as it's not the last one.
* If we are unlucky enough that "test-suite" is the last one, the whole
"install" target will fail, because copying a directory gives an error.
To reproduce the problem try forcing the output of the find command
so that the "test-suite" directory always comes last:
find . -path ./test-suite -prune -o -name *.x -type f | LC_ALL=C sort
Then I guess it will always fail for you as well.
The attached patch should probably work, it just ensures that the
"test-suite" directory is excluded from the output of "find".
I think it would be very good if you could forward this upstream so
that they fix the Makefile.
Thanks.
--- a/Makefile
+++ b/Makefile
@@ -259,7 +259,7 @@ links : bindir
install : touch-dummy
@if test -d bin ; then mkdir -p $(DESTDIR)$(bindir) ; \
- for x in `find . -path ./test-suite -prune -o -name *.x -type f` ; do \
+ for x in `find * ! -path "test-suite/*" -name *.x -type f` ; do \
cp $$x $(DESTDIR)$(bindir)/ ; done ; \
fi
@echo 'Quantum ESPRESSO binaries installed in $(PREFIX)/bin'