There are two ways to compile and install Yacas: 
* downloading a gzipped tar file (also called a tar-ball)
* downloading from CVS at sourceforge

Please read the relevant section.



A. INSTALLING FROM A TAR-BALL
-----------------------------

This distribution has been tested on a Linux box (RedHat 5.1) and on 
Debian (stable) 2.2.

Compiling Yacas from source currently requires a Unix-like environment (CYGWIN
may work), bash, find, sed, and grep. Building documentation requires perl for
the HTML files, and additionally LaTeX, dvips, and makeindex to generate
PostScript and PDF files.

To compile and install, do the following:

* download yacas-<latest>.tgz

* type 'tar zxvf yacas-latest.tgz'

* go into the directory created (yacas-<version>).

* follow the steps in Section C. The compilation process.



B. INSTALLING FROM CVS
----------------------

This has been tested on a Linux box (RedHat 5.1) and on Debian (stable) 2.2.

Compiling from CVS requires a GNU environment (CYGWIN may work), cvs, autoconf
(tested with version 2.13), automake (tested with version 1.4), bash, find,
sed, and grep. Building documentation requires perl for the HTML files, and
additionally LaTeX, dvips, and makeindex to generate PostScript and PDF files.

To compile and install, do the following:

* login to the CVS server by giving the command
     cvs -d:pserver:anonymous@cvs.yacas.sourceforge.net:/cvsroot/yacas login
  Press return when asked for a passward.

* checkout the source tree with the command
     cvs -z3 -d:pserver:anonymous@cvs.yacas.sourceforge.net:/cvsroot/yacas co yacas

* go into the 'yacas' directory.

* run the 'makemake' script.

* follow the steps in Section C. The compilation process.



C. THE COMPILATION PROCESS
--------------------------

Having gone through the steps in either Section A or Section B, you can finish
the procedure by doing the following:

* type './configure' with optional arguments
  (e.g. './configure --enable-gmp --prefix=/home/user/').
  You can get a list of possible argument by running './configure --help'.

* type 'make'.

* if you wish, type 'make test', to run the test scripts.

* type 'make install' (this requires root unless you have configured a
  location in your home directory).

* type 'yacas'  and you should see a Yacas prompt!

The scripts (which are installed by default in '/usr/local/share/yacas/')
should also be a good starting point to see some example source code.  You can
always type '??', which should launch the help.

To compile and install Proteus, the user interface for Yacas, please go
into the proteus/ directory and read the readme there.

D. COMPILING UNDER WINDOWS
--------------------------

To compile under Windows using MS Developer Studion, there is a 
"compress.bat" batch file, located in the ramscripts\ directory. 
This batch file creates:

	yacas.exe - the executable.
	scripts.dat - a file with all the scripts compressed inside
		it. The executable and is file need to be in the
		same directory.
	yacas.dll - a dynamic link library allowing you to embed
		Yacas inside your own executable. It offers the 
		interface defined by the src\cyacas.h file.
		See the manual on the Yacas library.

The Windows version is checked infrequently, so latest development
releases might accidentally not compile. Please report if this is
the case, or if you are willing to maintain the Windows (MS Dev)
release, as it currently has no maintainer.

E. EXTRA INFORMATION
--------------------

* As a bonus, I rolled a .spec file for Yacas. You can make RPM's! To
build source and binary RPM's, you can do:

	rpm -ta yacas-1.0.12.tar.gz

-tb builds binary RPM's only. You can also copy the .spec file into
/usr/src/redhat/SPECS, the tarball into /usr/src/redhat/SOURCES, go into
the SPECS directory, and do:

	rpm -ba yacas.spec

to build RPMS/SRPMS, and -bb to build RPMS only.

* Some targets you should know about:

	dist: Pulls everything together into a tarball.

	distcheck: Performs a build in another directory to make sure
		the makefiles know about all necessary files. You should
		always run this before uploading a new release.

	distclean: Removes files generated by the configure script. Use
		this if you want to reset configuration stuff; e.g. if you
		want the configure script to run without cached values.

	install-strip: Like install, but strips binaries. Very nice.
