06 January 2017


System: Microsoft Windows 2K, XP, Vista, 7, 8.0
CPUs: Intel(R) Atom(TM) CPU N270 @1.60GHz.

Installation of es-0.9.1 in SFU/SUA Interix.


In the SUA Interix 6.0 download for MS® Vista (Ultimate and Enterprise Editions) there's a file
'gcc_fullbuild' - found after extracting gcc4.2.tgz - which contains these prerequisite programs
with version numbers, for compiling gcc-4.2.0; this file is available on this log as the download
is 473 MB; I've added indent (a flex dependency) and omitted gettext-0.16 in the below.


These compile favourably utilising CFLAGS="-O2 -march=i586", and the configure script
arguments as '--prefix=/usr --build=i586-pc-interix3 --host=i586-pc-interix3'.

The following command run in the source directories - if one builds within the source tree -
will strip to external PDB the compiled executables and libraries.

$ find . | xargs file | grep "executable" | grep PE | cut -f 1 -d : | \
> xargs strip --strip-unneeded 2> /dev/null

Remove or rename /bin/make and move GNU make to /bin, then add a symbolic link as
gmake, remove or rename /bin/m4 and move GNU m4 to /bin, remove or rename /bin/sed
and move GNU sed to /bin, before running 'gmake install' on bison-2.3 rename or remove
/bin/yacc and rename or remove /usr/lib/liby.a, which can be replaced by the bison version,
and before running 'gmake install' on flex rename or remove /bin/lex; the file /usr/lib/libl.a
(the lex library) can likewise be removed or renamed.

The shell es-0.9.1.tar.gz will then compile on gcc-3.3 after deleting
the '-Wno-missing-field-initializers' and '-Wno-clobbered' CFLAGS
from the configure script's generated Makefile.

$ echo $CC
$ cd es-0.9.1
$ CFLAGS="-O2 -march=i586" \
> ./configure --prefix=/usr \
> --build=i586-pc-interix3 \
> --host=i586-pc-interix3



Edit your Makefile (as above).

$ gmake


$ find . | xargs file | grep "executable" | grep PE | cut -f 1 -d : | \
> xargs strip --strip-unneeded 2> /dev/null

$ mv es /bin
$ exit

NB: These installation instructions don't allocate for a line-editing library;
for some reason compiling with readline-6.1 results in dead Æ, Ø and Å
keys. Haahr's .esrc in the examples directory in part pertains to a NeXT
machine, and Jamesh's .esrc file likely won't work without a line-editing
library. However, starting SFU/SUA's Korn shell inside GNU emacs and
then switching to es is satisfactory.

(setq explicit-shell-file-name "C:\\WINDOWS\\system32\\posix.exe")
(setq explicit-posix.exe-args '("/u" "/c" "/bin/ksh" "-l"))

The es(1) and xs(1) man pages are similar.