
This is version 1.5.3 of the JX source distribution.  In this directory,
you will find:

README           This file
FAQ              List of Frequently Asked Questions
LICENSE          License information for JCore, JX, and the libraries they use
CHANGES          Describes changes from previous versions

tutorial         Tutorial source code demonstrating JX library
doc              Documentation for JX library
lib              Links to static and shared libraries

include
  make           Include files for Makefiles
  jcore          Link to header files for JCore
  jx             Link to header files for JX

libjcore
  code           JCore source
  test           Sample source for using JCore classes

libjx
  code           JX source
  test           Sample application demonstrating JX library

programs
  makemake       Builds Makefile from Make.files and Make.header
  jxlayout       Graphical window layout editor

ACE
  ACE_wrappers   Header files for the ACE library
  test           Sample source for using ACE library

misc
  regex          Henry Spencer's regex package
  gif            GIF library (libgd)
  xpm            XPM library (libXpm)


Please read the LICENSE file for the conditions under which the source is
provided.  To help others who have the same system as you, please consider
building the binary distribution packages and making them available via ftp
on the main JX ftp site.  (Mirror sites are always welcome, too.)

The code has been thoroughly tested on Linux and Solaris.  Bizzare behavior
and crashes may be the result of broken system libraries.  I am willing to
work with you to solve such problems, so please don't hesitate to contact
me, but since I don't have (or want) access to your system, the burden of
proof must rest on you if a system call that works fine on all other
systems doesn't work for you.

If you bought the Linux Development CD, you should contact New Planet
Software (jx@alice.wonderland.caltech.edu) for support.  New Planet Software
also sells commercial licensing and support for JX.

Otherwise, please note that I am only working on JX part time since it does
not relate directly to my Ph.D. thesis.  I promise to respond to your bug
reports and suggestions as quickly as I can.  To help reduce my email load,
please always test the latest version and check the relevant web page
before sending me a bug report because I might already know about it.
Suggestions are always welcome because they help me decide what is most
important, so I know what to implement next.

The main Web page for JX is:

    http://www.its.caltech.edu/~jafl/jx/

It is also important to realize that I do not maintain ACE.  You are
welcome to contact me if you have problems compiling it, but the ACE
developers are more likely to be able to help, and patches should be sent
to them, not to me.  JX uses ACE because networking is horribly
UNIX-variant-dependent, and the ACE developers are much better at dealing
with this than I am.  The ACE web page is:

    http://www.cs.wustl.edu/~schmidt/ACE.html

John Lindal
jafl@alice.wonderland.caltech.edu


*** Step 1:  Preparation

You need gcc 2.7.2 (or later) and GNU's version of make.

You should find a computer where you can compile to the local disk.
Compiling to a remote disk over NFS is usually very slow.


*** Step 2:  Compiling

If you want the binaries installed somewhere other than ${HOME}/bin, set
the environment variable JX_INSTALL_ROOT to the desired directory.  This
path (either ~/bin or $JX_INSTALL_ROOT), must be on your execution path.
The libraries will always be placed in lib, which should be added to your
LD_LIBRARY_PATH.

Note that the compile will build everything in JX-1.5.3, including any 3rd
party libraries and programs that you unpack after the main distribution.

Compile everything by typing "make" and following the instructions.  You
can ignore any errors that make ignores.

If you cannot use the version of libXpm already installed on your system
(e.g. because it is too old) or if you do not have libXpm at all, then
uncomment the definition of JX_INCLUDE_LIBXPM near the top of the
appropriate file in include/make/sys/

Since ACE is huge, only one version of the library is built.  If you want
the other version as well, go to the ACE directory and type "make shared"
or "make static" after you have built everything else.

If your system is not already supported, create another entry in the
Makefile by copying one of the existing ones and modifying it as follows:

  Start by assuming that jMissingProto_empty.h is appropriate. If you get
  compile errors, create a new one and fill it with whatever is necessary.

  Create a new file in include/make/sys/ by copying template_g++ and
  editing the "Adjustable Parameters" section.

  If you cannot find a suitable pair of ACE configuration files, contact
  the developers.  (http://www.cs.wustl.edu/~schmidt/ACE.html)

  Once you get the entire distribution to compile, contact me so I can add
  your patches to the distribution so you won't have to do it again.


*** Step 3:  Additional configuration (for writing programs with JX)

Get the xforms distribution from

	ftp://bragg.phys.uwm.edu/pub/xforms/
	ftp://einstein.phys.uwm.edu/pub/xforms/

and extract the fdesign binary.  This should be placed in ~/bin. (or
$JX_INSTALL_ROOT, if you set it)  fdesign is the graphical layout tool.

It is also a good idea to set the following environment variables:

    setenv JMM_INITIALIZE   "default"
    setenv JMM_SHRED        "default"

Check libjcore/code/JMemoryManager.cc for more info.


*** Step 4:  Compiling the other programs

To compile the tutorials or test suites, go to the directory and run first
makemake and then make.


*** Step 5:  Building the binary distribution (if you want to distribute it)

Add the path to the JX libraries to the LD_LIBRARY_PATH environment variable.

cd lib
make jxshared

If ar runs out of space in /tmp when building the libraries, you will need
to modify the Makefiles to include the "l" option in the ar command.

You can ignore any errors that make ignores.


*** Step 6:  Testing the binary distribution(s)

The distribution(s) that you built will be in the same directory as
JX-1.5.3.  Unpack them somewhere else and try following the instructions
in the top level README file.

Compile and test the programs in libjcore/test, ACE/test, and libjx/test.

