

        DeuTex/DeuSf compilation

        by Olivier Montanuy
        montanuy@dmi.ens.fr



        ****************************
        * Structure of the sources *
        ****************************

DeuTex, DeuSF share the same sources.
When compiling, you must include all sources and define one of
those flags so that the C pre-processor knows which part to select:

- DeuSF                   to compile DeuSF
- DeuTex                  to compile DeuTex
For a windows DLL
- LDeuTex                 to compile DeuTex.DLL for Windoze




        **************************
        * Processor architecture *
        **************************

if your processor is a MC68040, a Sparc, or any little endian
processor, you must define the flag:
- LITTLE_ENDIAN
This flag must not be set if your processor is little endian.
DeuTex/DeuSF will refuse to run if compiled incorrectly.


        ***************
        *  Dumb O/S   *
        ***************
         by Olivier Montanuy

DeuTex.bat and DeuSF.bat are used on my system to
compile as a plain DOS executable.
Edit the library flag -Lxxx  and the include flag -Ixxx


        ***************
        * Windoze 3.1 *
        ***************
         by Olivier Montanuy


.EXE
To let Windoze treat its events, as it is a great multi-tasking
environement, some windoze() calls are made in the main loops.
for the moment windoze()=kbhit()
This version is useless. Yes, real useless. incredible!

Use the DOS deutex version under windows, with a suitable deutex.pif

.DLL
DeuTex itself can't be compiled as a 16-bit windoze DLL (too big).
the lbdeutex is for the visual basic shell.


        *****************************
        * DOS port by Mark Mathews *
        *****************************
          mark.mathews@channel1.com
         mmathews@genesis.nred.ma.us

MSDOS 5.0+
Borland C++ 3.1 users
To make DEUTEXD.EXE use DEUTEXD.PRJ
or make -fdeutexd.mak
To make DEUSFD.EXE  use DEUSFD.PRJ
or make -fdeusfd.mak

        ****************
        * Unix SUN O/S *
        ****************
         by Olivier Montanuy

Unix: Sun Sparc 1, 10, 20, IPX
gcc:        2.5.8
The makefile provided for Unix and Linux does not compile .o
objects. it compiles .ot for DeuTex and .os for DeuSF.
That little trick is useful to avoid linker problems.
take care that for SUN the FLAG line must contain -DLITTLE_ENDIAN


        ********************
        * Silicon Graphics *
        ********************
         by Chuck Rossi
Make sure the flag LITTLE_ENDIAN is set, like on SUN.


        **********************
        * Linux i486/Pentium *
        **********************
           by Per Allanson
          c91peral@und.ida.liu.se

Linux:   kernel 1.1.52  libc 4.5.26
gcc:     2.5.8
Make sure that the flag -DLITTLE_ENDIAN is not set.


        *************
        * DOS DJGPP *
        *************
        by mark.mathews@channel1.com


To make DEUTEXG.EXE and DEUSFG.EXE

make -f makefile.dj all
make -f makefile.dj strip
make -f makefile.dj clean

DJGPP version uses a DOS extender (go32.exe) which is link with
DEUTEXG.EXE and DEUSFG.EXE. This means you don't need a copy
of go32.exe.




        **************
        * OS/2 2 2.1 *
        **************
        by mark.mathews@channel1.com

IBM C Set++ 2.1 users

For DEUTEXOS.EXE you need deutexos.mak and deutexos.def
To make DEUTEXOS.EXE type:  nmake -f deutexos.mak


For DEUSFOS.EXE you need deusfos.mak and deusfos.def
To make DEUSFOS.EXE type :  nmake -f deusfos.mak



        ******************************
        * DEC Alpha 64 bit processor *
        ******************************
        by James Bonfield
        jkb@mrc-molecular-biology.cambridge.ac.uk

Make sure there is no flag -DLITTLE_ENDIAN. Alpha is BIG_ENDIAN.


Then run the shell script alpha.sh to convert the DeuTex source to work on
the Alpha. This simply replaces longs with int4 and typedefs int4 to be int
(on the alpha long is 64 bits rather than 32). The produced code is written
to an 'alpha' directory (created by alpha.sh). Change to this directory and
then Make as per normal.

DeuTex will refuse to run if you get this wrong.

        ************************
        * Porting DeuTex/DeuSF *
        ************************

The source makes the following assumptions:

__DOS__         if under DOS
__GNUC__        if under DOS extender GO32/DJGPP
__OS2__         if OS/2
 else           implicitly Unix/Linux


char          is a 8 bit integer (signed/unsigned)
int16         is a 16 bit integer
int32         is a 32 bit integer
int           is at least a 16 bit integer
 DeuTex/DeuSF will not run if it detects size of short
 or long is incorrect.


Some structures related to pictures or to DOOM
assumes that no word or long word alignement occur.
if the entries are not put contiguously, DeuTex/DeuSF will
not work, but there will be no warning.

Most of the O/S related functions are in tools.c.


