0

Following the official HTK Unix/Linux installation guide, I had similar issues to the ones described in this thread when trying to run make all on HTK. I had initially been looking at the wrong Makefile (/htk-3.4.1/Makefile), as suggested by MadScientist. After fixing the extra indentation on line 77 in the correct Makefile (/htk-3.4.1/HLMTools/Makefile) generated by running ./configure --prefix=/tmp, the HTK compile error:

Makefile:77: *** missing separator (did you mean TAB instead of 8 spaces?). Stop.

has disappeared, but I am still unable to compile on make all:

$ make all
(cd HTKTools && make all) \
  || case "" in *k*) fail=yes;; *) exit 1;; esac;
make[1]: Entering directory '/home/zeesy/htk-3.4.1/HTKTools'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/zeesy/htk-3.4.1/HTKTools'
(cd HLMTools && make all) \
  || case "" in *k*) fail=yes;; *) exit 1;; esac;
make[1]: Entering directory '/home/zeesy/htk-3.4.1/HLMTools'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/zeesy/htk-3.4.1/HLMTools'

Prior to make all, running ./configure --prefix=/tmp results in the error:

config.status: WARNING:  HLMTools/Makefile.in seems to ignore the --datarootdir setting

for HTKLib, HLMLib, HTKTools and HLMTools. It also resets line 77 of the Makefile to quadruple indented tabs.

I have gcc-multilib installed. Based on this post, I installed libc6:i386 zlib1g:i386 lib32ncurses5 and lib32z1 in order to run this 32bit program on a 64bit computer.

Has anyone run into this problem? Step 4 of the VoxForge HTK install guide suggests that gcc 3.4 compiler compatibility modules are required.

WhooNo
  • 911
  • 2
  • 12
  • 28
  • 1
    The problem is probably close to, but not actually *on*, line 77. Could you please expand your quotation of the Makefile to include lines 65 through 90, with line 77 marked? – zwol Aug 21 '19 at 18:49
  • 2
    Please remember you need to be looking at `/home/zeesy/htk-3.4.1/HLMTools/Makefile` not some other makefile – MadScientist Aug 21 '19 at 21:04
  • Are you using soft tabs by any chance? – user58697 Aug 22 '19 at 00:23
  • Just by looking at your spacing I can see that the recipie for `mkinstalldir` is indentend further the the other receipies. So I think you need to look at what characters are there. I would delete each indentation and re-indent them ensuring the tab character is used (your editor may be forcing spaces as user58697 is eluding to). But for sure, one of those is wrong - otherwise they would all be indented the same. You can check they are tabs but using the arrow keys to navigate over that white space (tab should be one character wide). Also make sure there are no EOL white spaces. – code_fodder Aug 22 '19 at 05:48
  • ... or even just comment out the line starting with `if [ ! -d ...` by putting a `#` at the very start of the line and see if the error goes away - that would be the quickest check – code_fodder Aug 22 '19 at 05:50
  • 1
    Many editors and some IDEs can show whitespace characters by an option. Use this to be **sure** that you have tabs. Make needs a tab as first character on a line to recognize it as command line. It is OK if spaces follow but the tab is mandatory. – the busybee Aug 22 '19 at 06:20
  • Thanks for suggestions @code_fodder I have corrected the (autogenerated) quadruple tabs, and the Makefile isn't throwing errors. However, HTK still isn't compiling. If you're interested, see modified question above. – WhooNo Aug 22 '19 at 18:26

1 Answers1

0

As suggested by MadScientist, I was at first looking at the wrong Makefile. I had been looking at /htk-3.1.4/Makefile, when the file that needed to be edited was /htk-3.1.4/HLMTools/Makefile. A case of not reading the error messages thoroughly.

After getting the same error message for line 77

missing separator (did you mean TAB instead of 8 spaces?).

I ran Spaces to Tabs in Atom, and corrected the quadruple tab in the default Makefile.

The make all command initially ran successfully, but as I was unable to access ls /tmp/bin.linux I attempted make all again and received the second error message

make[1]: Nothing to be done for 'all'

The fix for this was to run make clean (see this post). However, Nikolay Shmyrev has pointed out that this error means that everything has compiled, there for there is 'nothing to be done'.

I'm now having problems accessing /tmp/bin.linux but will deal with that elsewhere.

SUMMARY: The make[1]: Nothing to be done for 'all' error means that everything has already compiled.

WhooNo
  • 911
  • 2
  • 12
  • 28
  • 1
    If you see "Nothing to be done for 'all'" there is no need to run make clean and make again, you already have everything compiled. You just proceed with other steps – Nikolay Shmyrev Aug 24 '19 at 15:54
  • Thank you. After working with Julius some more I have realized that although everything has compiled, it has not compiled correctly due to some other error. I've made a post on the [HTK forums](http://www.voxforge.org/home/forums/message-boards/general-discussion/ls-cannot-access-/tmp/bin.linux-no-such-file-or-directory-on-ubuntu-18.04#ndV99s04IGgRjqquU6pGJg) but no response yet. – WhooNo Aug 26 '19 at 17:35
  • 1
    You have to run `make install` to install it in /tmp/bin.linux folder as you configured. Forum is for Voxforge, not HTK. I'm too lazy to reply you there though. – Nikolay Shmyrev Aug 26 '19 at 21:13
  • I've run `./configure --prefix=/tmp`, `make all` and `make install` again from the voxforge/bin/htk directory, but am still getting `ls: cannot access '/tmp/bin.linux': No such file or directory` when I run `ls /tmp/bin.linux`. /tmp doesn't appear in `ls`, but its contents (including `bin.linux`) do appear for `ls /tmp`. – WhooNo Aug 27 '19 at 16:52
  • You have to read (and if you want help to share) full and exact output of the commands. All errors are there, you just need to read them. – Nikolay Shmyrev Aug 27 '19 at 16:58