CFRoute 1.0a 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 Free Software and Open Source, but it 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.

CFRoute do not supported after 2002 year.


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

CFRoute can be compiled using the general Husky build process (i.E., obtain a
proper huskymak.cfg file, then use the top-level Makefile that is supplied
with cfroute). See the Documentation in the Huskybse package for the details.

The following instructions are only for users who don't want to use the Husky
build process, but only want to compile Cfroute as a standalone tool.

I) Requriements

a) Compilers

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

- Linux:   egcs 2.91.66 (from Redhat 5.2)
- FreeBSD: gcc 2.95.2 (from ports)
- OS/2:    gcc 2.8.1 (emx 0.9d)
- 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 is usually
the default; on FreeBSD, GNU make is in the ports collection and, if
installed, 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 or Jam style message areas.

If you do define SQUISHCFS while compiling, CFRoute will require to be linked
against the SMAPI library. CFRoute 1.0a requires smapi 1.6.4; for Jam support
you'd best use smapi 1.6.4b or higher. Smapi can be obtained at the Homepage
of the Husky project: http://husky.physcip.uni-stuttgart.de.


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 and Jam 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 most Unix systems, Intel or Non-Intel.
Commands that should be typed in verbatim are indented.

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.6.4b or newer
   versions. SMAPI 1.6.4b can be obtained as smapi-1.6.4b-src.tar.gz from
   http://husky.phscip.uni-stuttgart.de, or by requesting SMAPI
   from 2:2476/418.

4. Unzip the SMAPI by entering:

     cd ~
     tar xzf smapi-1.6.4b-src.tar.gz

5. Rename the smapi directory so that cfroute can find it:

     mv smapi-1.6.4b smapi

5. Build the smapi
     cd ~/smapi
     gmake -f makefile.unx
   This will create a file named "libsmapiunix.a".


6. Build cfroute:
      cd ~/cfroute/unix
      gmake -f makefile.unx
   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]
