Show README syntax highlighted
gzz - an implementation of Ted Nelson's ZigZag structure
============================================================
What is gzz ?
=================
gzz is an implementation of the ZigZag(tm)* structure, which
was originally conceived by Ted Nelson. For more information about
ZigZag structure see Tuomas Lukka's 'A Gentle Introduction to Ted
Nelson's ZigZag Structure', which is included in the distribution as
Documentation/Gentle_Introduction. gzz was originally developed under
the name 'gzigzag' (changed as per Ted Nelson's request due to
trademark reasons) as a project in the Department of Mathematical
Information Technology at the University of Jyväskylä, Finland.
Directories
===========
Documentation/ -- Documentation
doc/ -- Architectural and API documentation of the actual
software
gzz/ -- The Java source tree for our package, gzz
gfx/ -- The OpenGL graphics subsystem
test/ -- The Java source tree for JUnit tests
metacode/ -- Code that deals with other code or the compilation
process; e.g. our UML diagram maker.
lava/ -- Experimental things
basalt/ -- Old stuff: frozen lava that's not useful any more, or
deprecated classes from gzz/
[Note: Separate cvs module 'depends' contains libraries we depend on.]
The old 0.6 tree - totally deprecated, ignore these if you see them:
Modules/
C++/
Perl/
License
=======
Gzz is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
Gzz is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
Public License for more details.
You should have received a copy of the GNU Lesser General
Public License along with Gzz; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
MA 02111-1307 USA
Getting gzz
===============
The latest version of gzz can be obtained through:
http://gzz.info
or
http://www.freesoftware.fsf.org/gzz/
We release JAR files that should run on any computer with a suitable Java
Runtime installed. The source code is available in tar.gz archives or
can be checked out using CVS.
Gzz dependencies
================
To simply run the AWT client from a JAR, you'll need
(Kaffe should almost work - we're ironing out the last problems
as we speak)
Software name Corresponding Debian package
-------------------------------------------------------------------------
Java Development Kit 1.3 or later j2sdk1.3
To compile, test and run the AWT client from a released source, you'll need
the above and:
Software name Corresponding Debian package
-------------------------------------------------------------------------
GNU Make make
To compile, test and run the OpenGL client and other demos, you'll need
all of the above and additionally
Software name Corresponding Debian package
-------------------------------------------------------------------------
Python 2.2 python2.2
GNU C++ compiler version 3 g++-3.0
GNU stdc++ library libstdc++3-dev
Boost.org C++ library libboost-dev >= 1.28.0
FreeType 2 font engine libfreetype6-dev
GdkPixBuf library libgdk-pixbuf-dev
Glib library libglib1.2-dev
GTK library libgtk1.2-dev
Mesa library mesag-dev
GLUT library glutg3-dev
To generate documentation, you'll need:
Makefile target | Software name Corresponding Debian package
----------------+--------------------------------------------------------
javadoc |
| Java Development Kit j2sdk1.3
----------------+--------------------------------------------------------
documl |
| Python python
| Netpbm netpbm
| Metapost tetex-bin
----------------+--------------------------------------------------------
docxx |
| DOC++ doc++
----------------+--------------------------------------------------------
doc |
| All of the above
-------------------------------------------------------------------------
Launching gzz from JAR
======================
The JAR file in the current directory, you can use the following commands
to start gzz: (in the current version, no data can be saved)
$ java -jar gzz-version.jar -t
or
$ java -cp gzz-version.jar gzz.control.Main -t
Compiling gzz from released source
==================================
The source releases contain precompiled contents of doc/ directory and
preprocessed versions of Java source files that need preprocessing. The
idea is that all you need for compiling is a suitable Java Development
Kit. If you don't have GNU Make available, you can still generate the
Java class files with a standard java compiler (javac) and run the gzz
client with "java gzz.control.Main -t".
The native code used for the OpenGL client can be built and works only
on Linux at the moment.
Otherwise the instructions are the same as for the CVS versions. Please
notice that if you use target 'clean' in the Makefile, the generated
files are removed and to rebuild them you'll need the same programs
installed as the CVS version.
Compiling gzz from source in CVS
================================
You can get current source from anonymous CVS repository:
$ cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/gzz co gzz
$ cvs -d:pserver:anoncvs@subversions.gnu.org:/cvsroot/gzz co depends
$ cd gzz
The following targets are included in the Makefile:
all (default): build client with Java AWT graphics and run tests
compile: build AWT client
test: run tests
run: run AWT client (you can't save data at the moment)
gzzgl: build OpenGL client
rungl: run OpenGL client
doc: build documentation in doc/
clean: remove all generated files
Compile:
$ make compile
$ make test
Documentation:
$ make doc
(recompile after this as 'make doc' has to remove some compiled files
Run the client:
$ make run
For OpenGL client and demos, you first need to configure OpenGL
on your machine. Hardware acceleration, and *good* hardware acceleration
at that, is strongly recommended.
Then, compile the OpenGL client (deploys C++ code through JNI):
$ JAVAHOME=/usr/lib/j2sdk1.3 make gzzgl
Run the OpenGL client:
$ make rungl
Run some OpenGL demos (not yet documented properly):
$ make runfillets
------------------------------------------------------------------------------
* ZigZag is the trademark of Ted Nelson
See more files for this project here