================================================================================
	RPL/2 (R)
================================================================================

--------------------------------------------------------------------------------
	WARNING :

	LESSTIF IS BROKEN AND CORRUPTS HEAP. PLEASE, DO NOT USE LESSTIF INSTEAD
	REGULAR MOTIF LIBRARIES!

	I SHALL NOT ACCEPT ANY BUG REPORT FROM USERS THAT HAVE BUILD RPL/2 WITH
	LESSTIF LIBRAIRIES SINCE OPENMOTIF IS AVAILABLE.

	DO NOT USE 'make install-strip' THAT BREAKS RPL/2.
--------------------------------------------------------------------------------

	RPL/2 signifies Reverse Polish Lisp/2. This language is obvious derivated
from the first RPL written by Hewlett-Packard for its 28S calculator. Thus,
this language is a half-compiled high level language which can perform
symbolic and scientific computations.


  * RPL/2 requires :
	- nawk or gawk;
	- gmake;
	- libtool 1.5 or newer. To build RPL/2 on Mac OSX, you should have to
	add libtool m4 path in tools/file-*/configure.ac and
	tools/file-*/Makefile.am;
	- gcc-4.4 or newer;
	- g++-4.4 or newer;
	- gfortran-4.4 or newer.

	RPL/2 build process invoques automake and autoconf.

  * OpenSSL issue :

	OpenSSL does not use any configure script. If build process aborts on
error related to OpenSSL, you shall try to build OpenSSL before running
'make'. On some system, OpenSSL configure script is unable to set compiler
flags.

  * RPL/2 cross compilation :

	To cross-compile RPL/2, you have to build in a first time a native
	RPL/2 on build host. Installation is not required. In a second time,
	you have to configure RPL/2 for target host in another directory like :

../rpl/configure --host=arm-unknown-linux-gnueabi --enable-full-static
--with-sysroot=/home/bertrand/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/sysroot
--without-mysql --without-postgresql --without-x
--with-rpltools=/home/bertrand/cvs/rpl/build --with-openssl-arch=linux-generic32

	Of course, you have to configure OpenSSL with --with-openssl-arch.

  * RPL/2 is known to run on :

	- Linux (kernel 2.6.26 and beyond). Test distribution is Debian.
	- Solaris 8 and beyond.
		It can be built out of the box on Solaris in a 32bits userland. For a
		64bits executable, you have to modify some generated makefiles or
		specify some options. See 64bits on Solaris.
	- FreeBSD 7.x. I have installed a FreeBSD 7.0, upgraded to 7.2
		and RPL/2 ran without any trouble. RPL/2 does not run on early
		FreeBSD 8.0 because sig_info_t struct is not filled. This bug is now
		fixed. Someone has reported that FreeBSD 7.2 did not filled this
		struct too...
	- NetBSD 5.0 and beyond.
	- OpenBSD 4.8 and beyond.
	- Windows with Cygwin (>= 1.7.5).
	- OS/2 and eComStation with EMX (>= 0.9d). You probably have to
		recreate configure script and makefiles with aclocal, autoconf and
		automake.
		========================================================================
		WARNING : eCS DEFINES TMP VARIABLE THAT OVERWRITES PATHS
		IN FOPEN() SYSTEM CALL. /TMP/xxx IS REPLACED BY /%TMP%/xxx.
		THIS BUG ONLY OCCURS WHEN RPL/2 IS CALLED FROM OS/2 OR 4OS2 SHELL.
		WORKAROUND : DEFINE RPL_TMP_PATH WITH A DRIVE LETTER LIKE

			SET RPL_TMP_PATH=C:/tmp

		OR CALL RPL/2 FROM A BOURNE SHELL.
		========================================================================
	- Mac OS X.

  * RPL/2 should run on :

	- AIX
	- HP-UX (10.20 and beyond), but not tested for a long time.
	- NetBSD 4.0 and beyond with restriction due to sigpending bug.

	Any information about RPL/2 on these last operating systems are welcome.

  * RPL/2 is not supported on :

	- OpenVMS (work in progress) on Alpha and Integrity due to some bugs in GNV.
		RPL/2 never works on OpenVMS VAX because GNV is too old on this
		architecture.
	- Hurd because sig_info_t is not filled.

  * RPL/2 shall never be supported on :

	- Windows (all versions) without Cygwin.
	- Mac OS preX.

	Tools directory contains some libraries that are normally provided by
	all Posix systems. These libraries are built during build process
	and RPL/2 is statically linked with them because I have seen that on
	several systems, some Posix libraries have strange 'features'...

	On all systems, you must install GNU make and you should install
	gcc/g++/gfortran (minimal release : 4.2.0). It is possible to build
	RPL/2 with some other compilers (for example cc and f95 from SunStudio,
	or cc and f95 from Digital^WCompaq^WHP) but I do not test all potential
	combinaisons.

  * 64 bits on Solaris (are you sure that you need 64bits wide RPL/2 ?)

	You have to configure RPL/2 with some user defined variables.

	CFLAGS="$CFLAGS -m64" CXXFLAGS="$CXXFLAGS -m64" FCFLAGS="$FCFLAGS -m64" \
			FFLAGS="$FFLAGS -m64" LDFLAGS="$LDFLAGS -m64" ./configure (options)

	If you want to use mysql or postgresql support, you should obtain 64bits
	binary executables, libraries and daemons. PostgreSQL 8.3.5 does not compile
	on Solaris 10 in 64bits mode with gcc/GNU ld (due to a strange bug, ld
	tries to build a 32bits wide library with 64bits objects even if -m64 is
	specified on command line...). I have not tried mysql.

	If you want to use rplc, you have to use GNU ld, not Solaris ld, due to
	another bug that avoid symbol exportation. You have to check that rpl
	is linked with libmtmalloc and not with libmalloc from libc because there
	is another bug in Solaris' libc : free() can enter in a deadlock
	(internal locked mutex).

	Of course, all 64bits libraries have to be accessible by LD_LIBRARY_PATH.

tchaikovski:[/usr/shared-apps/bin] > file rpl
rpl: ELF 64-bit MSB executable SPARCV9 Version 1, dynamically linked,
     not stripped

	Very easy^Wnice, isn't it ?

  * OS/2 and eComstation

	GSL configure script is broken. You have to replace
	$(SHELL) $(top_buildir)/libtool by sh $(top_buildir)/libtool in each
	Makefile. By default, makefile's try to use ash.exe that is broken.

	J. Bertrand <joel.bertrand@systella.fr>
