CFRoute 0.95a Source Code Distribution
======================================

Status
------

CFRoute has been written by Carlos Fernandez Sanz, cfr@nova.es. The most
recent version of CFRoute is being maintained by Tobias Ernst, 
tobi@bland.fido.de, 2:2476/418. If you decide to work on the CFRoute 
source code, you are encouraged (though not enforced) to cooperate with Tobias. 

CFRoute is not Public Domain. CFRoute is copyrighted software. The Copyright
is held by Carlos Fernandez Sanz, Madrid, Spain. For details on the
conditions, refer to the license file which is named LICENSE. If you did not
receive this file along with the source code, please contact the author or
maintainer mentioned below.


Hints on Compiling the Source Code
----------------------------------

I) Requriements

a) Compilers

I use the following compilers to build CFRoute, which means that these
compilers are supported and should always work:

- Linux:   gcc 2.7.2
- FreeBSD: gcc 2.8.1
- OS/2:    emx 0.9d (gcc 2.8.1)
- DOS:     Borland C++ 3.1
- Win32:   Borland C++ 4.0

Note that cfroute is written in C++, so you will need C++ compilers. In
particular, on Linux, you need to install the C++ package (some
distributions have it installed by default, others don't). If gcc should 
complain that it can't find files like "cc1plus", it is likely that the
package is not installed.

The code also contains defines for some other compilers, namedly Visual Age
C++ and Watcom C. These compilers have been used by Carlos. However, I
cannot support these compilers, which means that the defines are somewhat
out of date and you will have to do some manual work to get CFRoute work
with other compilers.

b) Utilities

The makefiles for Unix and for OS/2 (EMX) require GNU make (or another make
that can handle VPATH) to work correctly. On Linux boxes, GNU make should be
available under the name "gmake" (instead of "make"). For OS/2 and DOS, you 
can f'req GNUMAKE.ZIP at 2:2476/418. It is also available at most common
OS/2 ftp sites.

c) External Libraries

If you do not define SQUISHCFS, CFRoute will compile without need for any
external libraries other than the standard C and C++ libraries, but it will
not be able to access Squish style message areas.

If you do define SQUISHCFS while compiling, CFRoute will require to be
linked against the SMAPI library, a modified version of the Squish Message
API. The latest version of the SMAPI can always be obtained from
ftp://ftp.sar-gmbh.com/pub/freeware/husky/smapi-latest.tar.gz

d) Defines

You should either define UNIX or OS2 or WIN or MSDOS. You can define
SQUISHCFS if you want the feature to scan Squish style areas to be enabled.

II) Step by step instructions

The following instructions describe how to compile CFRoute on a typical Unix
system. They should work for Linux and FreeBSD. Note that CFRoute presently
does not work properly on Non-Intel architectures.

Commands that should be typed in verbatim are intented.

1. Obtain the source code of cfroute (you probably did it already ;-) which
   is contained in "cfr-???s.zip", where ??? is replaced by the most
   recent version number, or in "cfroute-latest.tar.gz"

2. Unpack cfroute. Depending on which file you have downloaded, type either
     cd ~
     unzip cfr-095a.zip
   or
     cd ~
     tar xzf cfroute-latest.tar.gz
   This will create a subdirectory named "~/cfroute"

The steps 3 to 5 can be omitted if you already have the SMAPI installed as a
system-wide shared object file (i.e. libsmapilnx.so is in the
LD_LIBRARY_PATH).

3. Obtain the source code of the SMAPI. You should use SMAPI 1.5.6 or newer
   versions. SMAPI 1.5.6 can be obtained as smapi-1.5.6.tar.gz from
   http://www.tichy.de/husky/download.html, or by requesting SMAPI156.ZIP
   from 2:2476/418. You can also use the -current snapshots available at
   ftp://ftp.sar-gmbh.com/pub/freeware/husky/smapi-latest.tar.gz.

4. Unzip the SMAPI by entering, depending on which form of the smapi you
   have downloaded, either
     mkdir ~/smapi
     cd ~/smapi
     unzip smapi156.zip
   or
     cd ~
     tar xzf smapi-1.5.6.tar.gz

5. Build the smapi
     cd ~/smapi
     make -f makefile.lnx libsmapilnx.a
   This will create a file named "libsmapilnx.a".
   (If you know what I mean, you can type "make -f makefile.lnx", which will
   create a .so file, which you can place in the library path, but this is
   not requried, if you don't do it, cfroute will find the .a file and link
   it statically).


6. Build cfroute:
      cd ~/cfroute/unix
      gmake -f makefile.linux
   This should create an executable named "cfroute" in ~/cfroute/unix.
   This executable is all that you need for running cfroute. Place it in
   your path or wherever you seem fit.
     
[EOF]
