- Install pre-cursors (if necessary)
You will need to have python3
installed on your system in order to use the inform6-test
script. I am pretty sure that it is installed on most new Ubuntu family systems by default. You can check if it is on your system with:
python3 --version
If this produces a response like “Python 3.6.9
”, it’s present. If this response isn’t produced, install the program with:
sudo apt-get python3 (included by default; skip if command python3 --version responds correctly)
You will also need the basic C/C++ compiler and libraries. These are a pain to hunt down individually, and they may not be installed by default on your system. The Ubuntu repositories include a package called build-essential
that will automatically install the basic setup. You can check whether it is installed using command:
apt-cache policy build-essential
If the response produced by this includes a line that begins with three asterisks, like
build-essential:
Installed: 12.4ubuntu1
Candidate: 12.4ubuntu1
Version table:
*** 12.4ubuntu1 500
...
then the package is already installed. If there is no line with three asterisks, install it with:
sudo apt-get install build-essential (a package that includes all the basics for compiling C and C++ programs)
The step-by-step instructions provided by zarf (on which these are based) make use of a popular tool for managing software collaboration projects called git
. It is not essential to use git
, as the files that it is used to retrieve can be downloaded manually by visiting the provided URLs with a web browser. However, it cuts out some steps if you do use git
, so it’s recommended to install it:
sudo apt-get install git (the standard software development git, not zarf's interpreter)
Finally, in the places where zarf’s walkthrough indicates how to manually edit certain files, these instructions use sed
to make the changes so that you can just copy-and-paste each command. The sed
package is most likely part of your default installation, but as with python3
, you can test with command sed --version
. If it’s not installed on your system, install it with:
sudo apt-get sed
Once all of the above has been completed, you’re ready to install inform6-test
, which is not in the repository and must be built manually. These are the steps successfully used to compile it on a virtual machine running an Ubuntu-family OS today:
- Install the development versions of required libraries from repositories
sudo apt-get install libxml2-dev
- Create working directory and use git to retrieve necessary source code
mkdir i6test
cd i6test
git clone https://github.com/erkyrath/inform6-test.git
git clone https://github.com/erkyrath/remglk.git
git clone https://github.com/erkyrath/glulxe.git
git clone https://github.com/erkyrath/fizmo.git
git clone https://github.com/DavidKinder/Inform6
- Build I6 compiler and copy it to inform6-test/ directory
cd Inform6
cc -o inform *.c (ignore assorted compilation warnings)
cp inform ../inform6-test/inform
../inform6test/inform -V (should report version number)
cd ..
- Build remglk
cd remglk
make
cd ..
- Build glulxer executable and copy it to inform6-test/ directory
cd glulxe
sed -i 's/^GLK.*cheapglk/\#&/' Makefile (comments out cheapglk lines)
sed -i 's/^#\(GLK.*remglk\)/\1/' Makefile (uncomments remglk lines)
make
cp glulxe ../inform6-test/glulxer
../inform6-test/glulxer -version (should report RemGLK version number)
cd ..
- Build fizmor executable and copy it to inform6-test/ directory
cd fizmo
wget https://gist.github.com/erkyrath/d41cf56d5216f2877f63f1641f6d20db/raw/33b5266ee6149d5150bcea5be30393df4694ef24/config.mk
sed -i 's/^LIBXML2_NONPKG.*$/\#&/' config.mk (comments out NONPKG lines for libxml2)
sed -i 's/^#\(LIBXML2.*xml-2.0\)/\1/' config.mk (uncomments pkg-config lines for libxml2)
sed -i 's/^#\(LIBFIZMO_REQS\)/\1/' config.mk (uncomments requirements line for libxml2)
sed -i 's/\(^NCURSES.*=.\)\(-lncurses\)/\1/' config.mk (removes unnecessary ncurses dependency)
sed -i 's/^LIBGLKTERMW_NONPKG_LIBS.*remglk/& -lm/' config.mk (adds missing -lm parameter)
cd fizmo-glktermw/src/fizmo-glktermw
sed -i 's/-lglktermw/-lremglk/' Makefile
cd ../../.. (back to fizmo directory)
make fizmo-glktermw
cp ./fizmo-glktermw/fizmo-glktermw ../inform6-test/fizmor
../inform6-test/fizmor -version (should report RemGLK version number)
cd ..
- Install the approved version of I6 Standard Library 6/11
cd inform6-test
git submodule init
git submodule update (remain in inform6-test/ directory)
- Validate correct installation
python3 dotest.py --compiler ./inform --terp ./glulxer dm4/*.inf (all tests should pass)
python3 dotest.py -Z --compiler ./inform --terp ./fizmor dm4/*.inf (1 error should be reported)
Questions for @zarf:
- These instructions result in Inform 6.35 (the current development version) being installed as the compiler for use in testing. Would it be preferable to use 6.34 (the current release) or of any value to use 6.33 (latest release in Ubuntu repositories) or 6.31 (the contemporary release for the version of 6/11 installed, I think)?
- Would it theoretically be possible to use any of the current fizmo-related libraries available at the author’s site (fizmo download) to build the
gluxer
and fizmor
executables? Would there be any value in doing so? If so, can you provide some hints as to how to modify the step-by-step process that you laid out for MacOS?
- Will you please post a notice here if you update the
config.mk
file contents so that I can update/remove the various sed
statements that modify it?