1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
REQUIREMENTS
============
To build saml(3), you need a Un*x system, and gcc 2.5.0 or more. The
library takes advantage of many gcc extensions: arrays of length zero,
conditional expressions without middle operand, automatic arrays of
variable length, inline functions, 64-bit integers, and assembler. So
you really need gcc, not any ISO C compiler.
The Makefiles require GNU make. Either get GNU make, or fix the
makefiles yourself.
The code has not been tested on 64-bit machines.
Some machines have a C library with is incompatible with ISO/POSIX. For
instance, SunOS doesn't have strtol/strtoul nor memmove, and
realloc(0,size) doesn't work. On these machines you'll have to replace
the missing or broken functions. You'll also need getopt_long() which
exists only in glibc. And you may want to install Doug Lea's malloc
replacement. To include all this in libsaml.a, copy the appropriate files
of lib/support into lib (or use symbolic links) and edit lib/Makefile.
Many scripts require perl(1); factorint and induce requires gdbm(3).
Here again, you really need gdbm, not dbm/ndbm nor Berkeley db. Induce
also requires a not-too-ancient version of the m4(1) preprocessor. On
SunOS you should use /usr/5bin/m4 -- see the comments in
induce/Makefile.
It is very desirable to compile samuel(1) with readline(3) support,
unless you're a masochist. Either get the "official" GNU readline
library, preferably as a shared library since it's very very big, or use
the little editline(3) clone written by Rich Salz and Simmule Turner;
I've put it in lib/editline.shar. It doesn't have all the bells and
whistles of the GNU version (most importantly, it doesn't handle line
wrapping) but it's ten times as small. See the comments in
samuel/Makefile.
COMPILATION
===========
The main Makefile shouldn't require changes. Examine, and modify where
appropriate, {lib,samuel,induce,factorint}/Makefile, and also
make.common in the root directory. When everything looks fine, type
"make" in the root directory. It should create the library (libsaml.a or
.so), and the utilities: samuel, factorint, induce.
INSTALLATION
============
You put the files where you want, but remember, it's experimental
software. Essentially you need to put samuel, factorint, induce,
colorize, rgind and all the fn_* scripts somewhere in your path. Put
the manpages (samuel.1, factorint.1, induce.1) and saml-doc.texi in
accessible places for easy reference, or print them.
Then test the software. If it doesn't behave like the docs say it should,
then it's a bug. Otherwise, it's a feature.
Have fun,
Thierry
|