5.2 Installing and Compiling XOOPIC

(with Peter Mardahl, University of California, Berkeley)

Unlike OOPIC, which runs under PC compatibles running under MS-Windows, XOOPIC is designed to run under a host of different platforms. Whereas the most popular platform in the world is a PC running MS Windows, Unix systems are standard in scientific establishments for advanced computations.

To date (early September, 1995) OOPIC has been compiled successfully on the following UNIX systems running X-Windows, version X11R5 or better:

Unix FlavorArchitectureCompilerLibrary
HP-UX A.09.05HP 712/80g++2.7.0libg++2.7.0a
DEC UNIX 3.2DEC 200/4/233g++2.7.0libg++2.7.0a
SunOS 4.1.4Sparc 2g++2.7.0libg++2.7.0a

To compile and install XOOPIC, you need the following public domain software packages which are not maintained by the OOPIC team:

name of softwarewhere to get it (ftp site)
g++(/pub/GNU/gcc-2.7.0.tar.gz at gatekeeper.dec.com)
libg++(/pub/GNU/libg++-2.7.0a.tar.gz at gatekeeper.dec.com)
libtcl.a(/pub/tcl7.4b1.tar.Z at langmuir.eecs.berkeley.edu)
libtk.a(/pub/tk3.6.tar.Z at langmuir.eecs.berkeley.edu)
libXpm.a(/pub/xpm-3.4c.tar.Z at langmuir.eecs.berkeley.edu)

Note that g++ is the GNU C++ compiler which is widely available. We have not successfully used a C++ compiler other than g++ to compile XOOPIC. Versions of g++ before 2.7.0 are buggy enough to make compiling XOOPIC very hard.

Once you have a C++ compiler, libtcl.a libtk.a libXpm.a, you are ready to begin:

1) Unpack the sources:

uncompress xoopic.tar.Z

tar xf xoopic.tar

You should get these:

README Makefile physics/ advisor/ xg/ xgrafix/ input/ g++-fixes/

The directory physics/ contains the basic physical models for XOOPIC.

The directory advisor/ contains the input file reader and input sanity checking.

The directory xgrafix/ contains the graphics library used by XOOPIC.

The directory input/ contains sample input files for XOOPIC.

2) Compile xgrafix:

cd xgrafix

Edit the Imakefile so that the variable XGPATH is the directory

where you plan to install xgrafix. This is important and

slightly tricky: if xgrafix later reports that it can't find

something, check xgrafix/xginitc.c to see if it used the correct




You should get libXGC20*.a. It might be named libXGC20sun.a or similiar. Rename it libXGC20.a.

Possible problems:

a) xgrafix couldn't find tcl.h tk.h

Solution: Find where these were installed and edit the file xgrafix/Makefile so that the directories where these are located are listed as includes.

b) upon starting XOOPIC, xgrafix reports that it can't find a tcl/tk initialization file.

Solution: Figure out where the file xgrafix is looking for exists, and fix xgrafix to find it. These are some in particular:

init.tcl in the tcl lib directory, (usually /usr/local/lib/tcl)

init.tk in the tk lib directory, (usually /usr/local/lib/tk)

xgsetup.tcl in your xgrafix directory

If the problem is with finding init.tcl, and init.tk, then probably

these libraries are misinstalled. If xgsetup.tcl is not found,

you probably didn't set XGPATH correctly when building xgrafix.

Double check this and recompile if necessary.

3) Compile xoopic:

Once you have a C++ compiler, libXGC20.a, libXpm.a, libtcl.a, libtk.a, you are ready to start compiling xoopic. Note: if you are using another

C++ compiler than g++, you must edit the files: advisor/Makefile

xg/Makefile and physics/Makefile and change g++ to your compiler.

In the directory where you have:

README Makefile physics/ advisor/ xg/ xgrafix/ input/

a) cd xg

Edit Makefile so that the library paths and include paths reflect.

You may have to edit the lines

LIBDIRS= .....


INCLUDES= ......

So that all the graphics libraries are found.

cd ..

make depend


It should recursively make everything in advisor/ physics/ and xg/ until it has made the binary xg/xoopic.

Possible problems: the compile fails, giving errors involving cstring.h. This is a g++2.7.0 problem.

Solution: A fix for this is in g++-fixes.

To run, type

xoopic -i input/dring.inp

or whatever input file is appropriate for you. Problems? Just e-mail bug reports to xoopic@langmuir.eecs.berkeley.edu.