Installing Z88DK on Ubuntu 18.04

I had a few issues whilst following the instructions to install Z88DK on Ubuntu 18.04 so thought I would document my solutions here in case anyone else has similar problems. Note that I am a Linux novice so apologies if any of this seems obvious for a Linux pro.

  • The command chmod 777 config.sh failed because that file does not appear to exist in the distribution any more.
  • I did not have Subversion installed, giving me the error svn: command not found. This was fixed by installing Subversion with sudo apt install subversion.
  • I did not have Bison installed, giving me the error configure: error: Cannot find required program bison. Fixed by installing Bison with sudo apt install bison.
  • At this point re-running ./build.sh gave me the error
    Patch error -> patching file src/SDCC.lex Reversed (or previously applied) patch detected! This is because the build downloads SDCC via Subversion and then patches it, however because I had already passed this point in the build before the Bison error the patched files were still present. I therefore deleted them with rm -r -f /tmp/sdcc. This had to be repeated every time the build failed.
  • I did not have Flex installed, giving me the error configure: error: Cannot find required program flex. Fixed with sudo apt install flex.
  • I did not have Boost installed, giving me the error configure: error: boost library not found (boost/graph/adjacency_list.hpp). Fixed with sudo apt-get install libboost-all-dev.
  • I did not have MakeInfo installed. However this did not give me an obvious error; instead there was a warning a few lines before the end of the build output: WARNING: `makeinfo' is missing on your system.. Fixed with sudo apt-get install texinfo.

After that the build completed successfully. However adding the required environment variables wasn't obvious for a Windows user like myself. In Windows there is a single way to define environment variables; in the land of Linux it seems there are many. I found I had to include the lines from the instructions in the file ~/.profile rather than ~/.bash_profile.

With all that done I am now able to compile Oakley programs on Linux.