1

Im trying to build ecolab.5.D19 but I get error message "No such file or directory" even if the directories and files exists, and im in the same folder as MAKEFILE. I use the following command, which is adviced in installation-guide:

sudo make install PREFIX=/usr/local/ecolab

I get errors such as:

ecolab.5.D19/include/Makefile.config: No such file or directory
Makefile:165: src/automorph.d: No such file or directory
Makefile:165: src/auxil.d: No such file or directory
Makefile:165: src/arrays.d: No such file or directory
Makefile:165: src/sparse_mat.d: No such file or directory etc.

Then it freezes after this:

rm: cannot remove 'functiondb.h': No such file or directory
make[1]: [functiondb.h] Error 1 (ignored)
sh functiondb.sh >functiondb.h

All those files are there.

I have ubuntu 14.04 64-bit with 3.13.0-39-lowlatency kernel and it seems that this problem can appear when installing 32-bit programs on a 64-bit system. I installed the 32-bit libraries but it did not solve the problem. Dependencies should be fine. I am trying to install minksy ­-- which requires ecolab. Thank you for your time. :)

1 Answer 1

1

The immediate issue appears to be that the functiondb.sh script uses bash features, however the Makefile that invokes it does so explicitly using sh (and /bin/sh is a symlink to dash in Ubuntu). Specifically, the ++ postfix operator isn't supported, so counters aren't incrementing and the script gets stuck in a while loop.

You can either temporarily symlink /bin/sh to bash, or modify the /classdesc/Makefile, replacing

functiondb.h: functiondb.sh
    -rm $@
    sh $< >$@

by

functiondb.h: functiondb.sh
    -rm $@
    bash $< >$@
4
  • Well, now it prints in the end: sr/local/ecolab/include\" -MM -MG src/xdr_pack.cc src/xdr_pack.d mkdir -p lib mkdir -p bin cd classdesc; make PREFIX=/home/joonas/ecolab.5.D19 install make[1]: Entering directory /home/joonas/ecolab.5.D19/classdesc' Makefile:103: *** missing separator. Stop. make[1]: Leaving directory /home/joonas/ecolab.5.D19/classdesc' make: *** [/home/joonas/ecolab.5.D19/bin/classdesc] Error 2
    – Mundo
    Nov 18, 2014 at 11:11
  • Missing separator usually means you indented the line with spaces instead of using a tab character (make insists on tabs - sometimes text editors like to replace them). Nov 18, 2014 at 11:37
  • Yep, that was the case, and it did build for a while but problems aren't over: ar: creating lib/libecolab.a ar: graphcode/*.{hmap,vmap}: No such file or directory make[1]: *** [lib/libecolab.a] Error 1 make[1]: Leaving directory /home/ilari/ecolab.5.D19' make: *** [ecolab-libs] Error 2 hmap and vmap was there in the folder.
    – Mundo
    Nov 18, 2014 at 17:06
  • That's almost certainly for a similar reason: brace expansion like *.{hmap,vmap} is valid in bash, but make will be using the system /bin/sh, which is dash. You can either edit the top-level Makefile and replace the expansions, or temporarily modify the symlink using sudo ln -sf bash /bin/sh before running the make command, then restore it when you're done with sudo ln -sf dash /bin/sh Nov 18, 2014 at 19:48

You must log in to answer this question.

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