diff doc/install/install.txt @ 0:13d2b8934445

Import AnaGram (near-)release tree into Mercurial.
author David A. Holland
date Sat, 22 Dec 2007 17:52:45 -0500
parents
children 4b08ee1ecb99
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/install/install.txt	Sat Dec 22 17:52:45 2007 -0500
@@ -0,0 +1,262 @@
+Installing AnaGram 2.40 from source
+-----------------------------------
+
+1. Requirements
+
+You must compile on Unix. (Windows using Cygwin is not presently
+supported, but suitable patches will be accepted. Windows without
+Cygwin or equivalent is too crippled to be useful.) Any reasonably
+modern Unix should work, even Solaris, although this has probably not
+been tested. (Linux, NetBSD, and perhaps MacOS X are tested.)
+
+The makefiles have been arranged such that even the antiquated
+dialects of System V make shipped by Sun and other old-line Unix
+vendors should work; if you find that you need GNU make please file a
+bug report.
+
+There are essentially two supported builds: the Unix command-line-only
+build and the Windows GUI build.
+
+The Unix build currently requires gcc 3.x or 4.x. Reasonable patches
+for other Unix compilers (e.g. the Intel compiler on Linux, or Sun's
+payware compiler) will probably be accepted. If you have gcc set up as
+a cross-compiler, you can cross-compile AnaGram. See below.
+
+The Windows build requires IBM Visual Age for C++ version 3.5, because
+the GUI uses that compiler's semi-proprietary GUI class library. You
+also need a recent version of Wine.
+
+Wine must be configured such that I:\\IBMCPPW\\BIN\\ICC.EXE is the
+main compiler executable. (To arrange this, create a suitable symbolic
+link named "i:" in ~/.wine/dosdevices.) Note that while it would not
+be difficult to make this more flexible, migrating away from this
+compiler is a better use of time.
+
+The source tree must also be accessible to Wine somehow; it doesn't
+matter what the specific drive or path mapping is.
+
+At one time it was necessary to use patchlevel 354 (neither newer nor
+older) of ILINK.EXE, which you can get from IBM support. This version
+is 188928 bytes long and has md5sum f48f0aace7c6f247bae015b43f16969a.
+Wine has improved a good deal since then, however, and this may no
+longer be necessary.
+
+Because of problems with Wine on NetBSD, you can only compile the
+Windows build on NetBSD with some combinations of versions of NetBSD
+and of Wine. Linux works, however.
+
+Note that the source, though not the build system, has some support
+for a number of other Windows compilers (including Borland, Watcom,
+and Microsoft) and you may be able to get these to work to build the
+command-line-only version. Building a Windows command-line only
+version using a Cygwin gcc may also be possible. These builds,
+however, are unsupported and you will have to fiddle with the
+configure script and/or the makefiles. (Appropriate patches will
+probably be accepted though.)
+
+Building the manual requires LaTeX. It doesn't require anything that
+doesn't come with teTeX, so no unusual steps should be necessary.
+
+
+2. Configuring
+
+AnaGram comes with a "configure" script that sets up the build
+environment. This is *not* a GNU autoconf script, although it looks
+superficially like one.
+
+It accepts the following options:
+
+   --destdir=DIR
+
+	Set the "destination directory" to DIR. This names a chroot
+	area or other subtree within which the installation prefix
+	will be found. The idea is that the destination directory will
+	end up being the root directory at the time AnaGram is run.
+	This is potentially useful for cross-compiling and for
+	building binary packages.
+
+	Note: this applies only to Unix builds.
+
+   --prefix=DIR
+
+	Set the installation prefix to DIR. Defaults to /usr/local.
+	The AnaGram executables, documentation, and examples will be
+	installed in suitable places under this directory by default.
+
+	AnaGram does not (at present) compile in the installation
+	prefix.
+
+	Note: this applies only to Unix builds.
+
+   --bindir=DIR
+   --libdir=DIR
+   --mandir=DIR
+   --docdir=DIR
+   --examplesdir=DIR
+
+	Set the exact places where things will be installed. If these
+	are not provided, suitable defaults under the installation
+	prefix are chosen. Note that depending on the build and other
+	circumstances some of these directories may not actually be
+	used.
+
+	Note: these options apply only to Unix builds.
+
+   --with-compiler=COMPILER
+
+	Specify which compiler to use. This controls the selection of
+	compiler command-line options, C++ dialect, and other such
+	issues. It also controls how the compiler is invoked.
+
+	COMPILER may be "gcc" for gcc or "vacpp" for the IBM Visual
+	Age compiler.
+
+	The default compiler is gcc for Unix builds and vacpp for
+	Windows builds.
+
+   --with-ptests=DIR
+
+	If you have a copy of the private test suite, use this
+	argument to tell the build system where to find it. The
+	private test suite contains tests that for one reason or
+	another cannot be released to the public.
+
+   --enable-gui=GUI
+   --disable-gui
+
+	Select the graphical user interface to use. The only GUI
+	currently supported by AnaGram is "vaclgui", the GUI using the
+	Visual Age class library. Enabling "dummygui" is equivalent to
+	selecting --disable-gui.
+
+	"vaclgui" is the default for Windows builds. "dummygui" is the
+	default for Unix builds.
+
+   --enable-maintainer-mode
+
+	Turn this on if you are intending to work on the AnaGram
+	source code. It enables compiler flags that developers should
+	use. It also enables certain crosschecks, and compilation and
+	testing of the examples. Note that to use this you must
+	populate your tree with a known clean copy of the agcl
+	executable. See doc/devel/make.txt for more information.
+
+   --enable-debug
+
+	Compile with debug information. The default is to compile with
+	optimization.
+
+   --enable-prof
+
+	Compile with profiling support. This will not work at present
+	with the IBM compiler because I don't know what compiler
+	switches to use. (Patches/information welcome.)
+
+In addition to options, the configure script accepts an argument
+naming the platform to compile for. This can be one of the following:
+
+   native
+
+	Build for Unix, and don't cross-compile.
+
+   windows
+
+	Cross-compile for Windows.
+
+   mips-linux
+
+	Cross-compile for some other Unix type. The string provided
+	should be the GNU machine type name for a cross-compiling gcc
+	you have previously installed. See below.
+
+The default is "native".
+
+It is recommended that you not compile directly in the source tree.
+Make a directory to build in, and run the "configure" script from that
+directory, giving the path to the source, such as like this:
+
+	mkdir build-windows
+	cd build-windows
+	../configure windows
+
+The build directory can be put anywhere, and you can use multiple
+build directories with the same source directory. If you intend to
+work on the AnaGram source code, you should generally set up one build
+directory each for Unix and Windows, and of course use the
+--enable-maintainer-mode option.
+
+
+3. Compiling
+
+In the same directory you ran the configure script, do this:
+
+	make rules
+	make
+
+If you do not do "make rules" first the build will bomb out very
+quickly.
+
+(Why is "make rules" not automatically invoked by the configure
+script? Because it creates a lot of scroll, particularly with GNU
+make, and would obscure possibly important messages issued by the
+configure script.)
+
+Do not do parallel builds (make -j3 or similar) -- it will not work.
+Note that GNU make is incapable of handling this correctly in any
+event, so support is not likely to be forthcoming in the future.
+Flames to /dev/null.
+
+
+4. Testing
+
+To run the test suite, do this:
+
+	make test
+
+(Note that "make tests" will do nothing, because there's a directory
+named "tests".)
+
+If everything is working correctly, there should be no diffs printed.
+
+As of this writing, if you run the test suite for the Windows build,
+you will get various test diffs because of messages issued by Wine, as
+well as some changes in diagnostic messages caused by the different
+end-of-line markers. These diffs appear to be benign, although it
+would be better if they didn't happen at all.
+
+Also note that you need to have an X display to run the test suite
+under Wine, even though the test suite only tests the command-line
+AnaGram executable. It is not immediately clear why this is.
+
+
+5. Installing
+
+To install, do this:
+
+	make install
+
+For the Unix build this will install in the places selected at
+configure time.
+
+For the Windows build it will create a directory called "install"
+containing a binary release comparable to the historic binary releases
+of AnaGram. You can copy this to a suitable place on your Windows
+machine however you see fit.
+
+
+6. Running AnaGram
+
+For the command-line version, run "agcl". For the GUI version, run
+"ag". For further information, please consult the main AnaGram manual,
+or the additional HTML documentation found in doc/misc; the latter
+includes a Getting Started guide.
+
+Note that the Visual Age for Windows GUI version does not work all
+that well in Wine; it seems to have various problems updating the
+screen and seems unable to select fonts properly. (This makes the
+Grammar Trace and related functionality very difficult to use.) It
+does not run at all in Wine on NetBSD, either. Fixes will probably be
+accepted - but keep in mind that the Visual Age class library is
+orphaned and time would be better spent migrating to a new GUI using
+some other GUI toolkit.
+