# How to use YACL with GNU C++ on most Unix platforms

Last update: June 23rd, 1997

This file provides directions on how to build YACL and its demo programs using GNU C++ on a Unix machine.

Caveat: YACL can only be compiled with GNU C++ versions 2.6.1 and later. Earlier versions crash with internal compiler errors when compiling YACL. Also, YACL cannot be compiled with GNU C++ version 2.7.0; that version also crashes with an internal error.

## Building YACL

Here are the steps:

0. Create and change into the directory in which you want to install YACL. For example:

`mkdir ~/yacl cd ~/yacl`

1. Unzip (or uncompress and un-tar) the YACL distribution, preserving directories. For example:

`unzip yacl0160.zip`

or

  `gzip -d yacl0160.tar.gz`
  `tar xvf yacl0160.tar`

2. Set the environment variable YACLPATH to point to the directory in which yacl was unzipped. For example (under bash or ksh):

`export YACLPATH=$HOME/yacl`

3. Look in the directory `$YACLPATH/control/gnuc` for a configuration file corresponding to your system, containing the paths to the various system directories. Five sample configuration files are provided with YACL, for SunOS, Solaris, SGI IRIX, Linux and a generic one. If you can use one of these, inspect and edit the file you want to use; for example, if you're using a Solaris machine, inspect the file `$YACLPATH/control/gnuc/solaris.cfg` and edit the path names to correspond to the correct paths on your system.

If you cannot use any of the three files provided, edit the file generic.cfg and use it.

4. Edit the 'include' line at the beginning of the file `$YACLPATH/control/gnuc.ctl` so that it includes the configuration file you have chosen.

5. Build the libraries. CD into the directory you chose in step 0 and issue the make command

`make -f gnuc.mak`

6. Poke around in the directory structure under basedemo and uidemo; build and try out the programs there using the makefiles provided. Each demo program is in a separate directory with a GNU C++-specific makefile called gnuc.mak. I have provided makefiles for most of the base demos but not all because most, if not all, the base classes are heavily used in the UI classes.

You can also build a debug version of the library via the command

`make -f gnuc.mak DEBUG="-g -DDEBUG"`

And you can build shared libraries under Linux 2.0 (ELF). Look in quirks file and `control/gnu/linux.cfg` for details.