         ______      ____     ______
        /\  _  \    /  __ \  /\  ___\
        \ \ \L\ \  /\  \ \_\ \ \ \__/
         \ \  __ \ \ \  \/_L_ \ \  _\
          \ \ \/\ \ \ \  \_\ \ \ \ \/___
           \ \_\ \_\ \ \_____/  \ \_____\
            \/_/\/_/  \_____/    \/_____/   Version 0.1 beta

                 (Allegro Con Eiffel)

                       By Peter Monks, 1997


#include <std_disclaimer.h>

   "I do not accept responsibility for any effects, adverse or otherwise,
    that this code may have on you, your computer, your sanity, your dog,
    and anything else that you can think of. Use it at your own risk."


==========================================
============ ACE Requirements ============
==========================================

Working installations of the following packages:

*  DJGPP v2.01 or newer (available from http://www.delorie.com/ or your
   nearest SimTel mirror)
   v2.00 will NOT work with SmallEiffel.

*  SmallEiffel v-0.87 or newer (available from
   ftp://ftp.loria.fr/pub/loria/genielog/SmallEiffel/)
   Note that v-0.86 produces C code that does not work under DOS/DJGPP, so
   I'd advise use of v-0.87 until the compiler is updated to include a
   workaround for DJGPP.

*  Allegro v2.2 or newer (available from
   http://www.talula.demon.co.uk/allegro/)
   v2.11 will probably also work with ACE, but I haven't tested it since
   I upgraded to v2.2.

In addition, the Allegro library file (LIBALLEG.A) must be copied to the
LIB directory within your DJGPP directory hierarchy (the makefile for
Allegro v2.2 does this automatically).


========================================
============ Installing ACE ============
========================================

1. Unzip ACExxxxx.ZIP into your SmallEiffel directory.  This will create a
   directory called LIB_ACE containing ACE underneath your SmallEiffel
   directory.
   * Make sure you correctly unzip the directories as well (remember to add
     the -d command line option if you're using pkunzip)
   * If you're going to use ACE in a long filename (LFN) environment
     (currently Windows95 is the only supported LFN environment), make sure
     you use an LFN aware unzipper (WinZip and InfoZIP both support LFNs).

2. If you are using an LFN environment, run the LFN.BAT file.
   If you are using a non-LFN environment, run the NOLFN.BAT file.

3. Edit your SmallEiffel loadpath file (in the SYS directory) to include
   the directory created in step 1.  This step ensures SmallEiffel can
   find all ACE library files, regardless of where your own programs are
   stored.

4. Edit your DJGPP.ENV file and add ";." (without the quotes) to the end of
   the LIBRARY_PATH option of the [gcc] section of the file.  This ensures
   that the linker (ld) can find library files in the current working
   directory, and is a good option to have on for C/C++ development as well.

5. Copy your ALLEGRO.H file from wherever you installed Allegro (usually
   DJGPP\CONTRIB\ALLEGRO) to the SUPPORT directory and optionally make
   the change to it described below.

6. From the directory created in step 1, run the MAKE_ACE.BAT batch file.
   This step will compile all of the C code in the SUPPORT directory, and
   store it in LIBACE.A.  It will also copy this file to the TESTS directory.

7. Change into the TESTS directory within the ACE directory and compile and
   run all of the test programs (see ACE.TXT for details on how to compile an
   ACE program.  If anything fails, check that all steps above have been
   correctly followed, and try again.

8. If it still doesn't work, drop me an e-mail and I'll see what I can do.


============================================
============ Changes to Allegro ============
============================================

There is one change required to ALLEGRO.H that needs to be made to ensure
completely warning/error free compiles of ACE programs.

Line 1260 (Allegro v2.2) of ALLEGRO.H #defines the EOF symbol if it hasn't
already been defined.  This results in a warning when STDIO.H is included by
SmallEiffel.  To fix this problem, replace the whole block with the following
code:

#ifndef SMALLEIFFEL       /* Required for SmallEiffel compatibility */
#ifndef EOF
#define EOF    -1
#endif
#endif                    /* SMALLEIFFEL */

This change will still allow correct compilation of C and C++ based Allegro
programs, so it can be incorporared into your main ALLEGRO.H file if you
wish.

Note that you will need to add the -D SMALLEIFFEL option to your SmallEiffel
command line for this to work (see ace.txt for compiling your ACE programs).


=======================================
============ Contacting Me ============
=======================================

If you have any problems, comments, grievances etc. about ACE I want to
hear about them!!  At least then I'll know that this little project was
worth the time I spent on it.

Since I move around a bit, e-mail is the only reliable way to get in
contact with me.  My address is pmonks@iname.com.

Happy Eiffeling!
