I tried to configure and build the package on SCO Unix/386 System V Rel 3.2v4.2. I ran into several issues with the build. The first time the build broke was when missing header files: (cd EnginePl; make config) . ./SETVARS;for i in TopComp EnginePl Wam2Ma Ma2Asm Linedit BipsPl Pl2Wam Fd2C EngineFD BipsFD;do (cd $i; make) || exit 1; done;\ (cd TopComp; make gprolog) gplc -c -C '-O3 ' machine.c machine.c:247: sys/mman.h: No such file or directory machine.c:478: sys/siginfo.h: No such file or directory compilation failed *** Error code 1 *** Error code 1 I compensated by making sure M_USE_MMAP is undefined, then ran into the next problem: (cd EnginePl; make config) . ./SETVARS;for i in TopComp EnginePl Wam2Ma Ma2Asm Linedit BipsPl Pl2Wam Fd2C EngineFD BipsFD;do (cd $i; make) || exit 1; done;\ (cd TopComp; make gprolog) gcc -c -m386 -fomit-frame-pointer -O3 linedit.c linedit.c: In function `LE_FGets': linedit.c:380: `KEY_EXT_HOME' undeclared (first use this function) linedit.c:380: (Each undeclared identifier is reported only once linedit.c:380: for each function it appears in.) linedit.c:387: `KEY_EXT_END' undeclared (first use this function) linedit.c:394: `KEY_EXT_LEFT' undeclared (first use this function) linedit.c:403: `KEY_EXT_RIGHT' undeclared (first use this function) linedit.c:428: `KEY_EXT_DELETE' undeclared (first use this function) linedit.c:438: `KEY_CTRL_EXT_HOME' undeclared (first use this function) linedit.c:458: `KEY_CTRL_EXT_END' undeclared (first use this function) linedit.c:519: `KEY_CTRL_EXT_LEFT' undeclared (first use this function) linedit.c:530: `KEY_CTRL_EXT_RIGHT' undeclared (first use this function) linedit.c:605: `KEY_EXT_INSERT' undeclared (first use this function) linedit.c:634: `KEY_EXT_UP' undeclared (first use this function) linedit.c:653: `KEY_EXT_DOWN' undeclared (first use this function) linedit.c:700: `KEY_EXT_PAGE_UP' undeclared (first use this function) linedit.c:710: `KEY_EXT_PAGE_DOWN' undeclared (first use this function) linedit.c:795: storage size of `t' isn't known *** Error code 1 *** Error code 1 This was easy to fix, the KEY_EXT_* cases all have alternatives so I simply commented them out. The last problem in linedit.c was solved by adding the following 4 lines to linedit.c just after the other included header files (before the boxed comment Constants): #if !defined(NO_USE_SELECT) #include #include #endif These are needed to pick up the definition for struct timeval on SCO Unix/386 System V Rel 3.2v4.2. The next problem encountered was: (cd EnginePl; make config) . ./SETVARS;for i in TopComp EnginePl Wam2Ma Ma2Asm Linedit BipsPl Pl2Wam Fd2C EngineFD BipsFD;do (cd $i; make) || exit 1; done;\ (cd TopComp; make gprolog) gcc -c -m386 -fomit-frame-pointer -O3 stty.c stty.c: In function `LE_Screen_Size': stty.c:202: storage size of `ws' isn't known *** Error code 1 *** Error code 1 This is easily fixed by adding -D_IBCS2 (this is required on SCO Unix/386 System V Rel 3.2v4.2, the header termios.h conditionally defines struct winsize only when _IBCS2 is defined). The next problem proves to be more challenging: (cd EnginePl; make config) . ./SETVARS;for i in TopComp EnginePl Wam2Ma Ma2Asm Linedit BipsPl Pl2Wam Fd2C EngineFD BipsFD;do (cd $i; make) || exit 1; done;\ (cd TopComp; make gprolog) `liblinedit.a' is up to date. gplc -c foreign.wam Assembler: /u/usr/nefth/tmp/gplcBAAa04144.s aline 7 : syntax error aline 7 : illegal character aline 14 : syntax error aline 14 : illegal character aline 22 : syntax error aline 22 : illegal character aline 56 : syntax error aline 56 : illegal character aline 64 : syntax error aline 64 : illegal character aline 76 : Section definition must have attributes aline 85 : Illegal mnemonic aline 85 : syntax error aline 86 : syntax error error trying to execute as: unknown errorcompilation failed *** Error code 1 *** Error code 1 (cd EnginePl; make config) . ./SETVARS;for i in TopComp EnginePl Wam2Ma Ma2Asm Linedit BipsPl Pl2Wam Fd2C EngineFD BipsFD;do (cd $i; make) || exit 1; done;\ (cd TopComp; make gprolog) `liblinedit.a' is up to date. gplc -W --no-redef-error foreign.pl error trying to execute pl2wam: No such file or directory compilation failed *** Error code 1 *** Error code 1 The i386 assembly produced is suitable for ELF, but not for COFF objects. Do you know if someone is working on a port to System V COFF object format?