This faq is supposed to answer `frequently asked questions'.
Please feel free to send us any other questions you ask
frequently to yourself about Grany. :)


General:
  g.1: What's a `cellular automaton simulator' ?
  g.2: So what interest could I get in using this software ?
  g.3: What interest should I have in looking at your code ?

Compiling:
  c.1: What's this story about INSTALL, README, ./configure, and so on ?
  c.2: I have strange errors while compiling/linking
  c.3: I have a non-full version of Gtk-- ??
  c.4: Eh, I compiled ok, then `make install', and I got this error...
  c.5: I had a strange error while compiling and I'm using a commercial unix.
  c.6: While linking I had this message:...

Using:
  u.1: Grany crashed !
  u.2: Grany is sloooow. Are you so poor coders ?
  u.3: I want to reuse a part of your code. Can I ?


General
-------

Please read README for usefull general info.


g.1: What's a `cellular automaton simulator' ?

	Well we don't know exactly (we, the coders).
	We've been involved in this project because in 4th year at
	INSA (France) we have to achieve a one-year programming project.
	The physical theory has been designed by one of our supervisors,
	Dr. Dominique Deserable. As a computer scientist in relation to
	physical and civil engineering, he made this theory to be able
	to conduct computerized experiments on cellular environments.


g.2: So what interest could I get in using this software ?

	Hmmm I'm afraid if you're not a cellular physician, not much...
	Well, I can see a main goal from my point of view: hacking
	around on gtk-- and gnu software in general.
	From the user's point of view ? hmm maybe... the fun to see some
	sand and some water interacting in a silo ?


g.3: What interest should I have in looking at your code ?

	I think there are two or three things that can be a good
	starting point for developping:

	* we've used lots of nice tools. configure, doxygen, etc. Have
	  a look. 
	* we've used flex++ and bison++ for the files. If you use c++
	  have a look.
	* we've used gtk+/gtk--. If you want to produce nice guis for
	  your applications, have a look.


g.4: You know that you oblige users to install a lot of software to be
  able to compile grany: gnu/make, glib, gtk, gtk--, compiler... Why ?
  You could have used Xlib (hm) or Motif as everyone ?

	No, we could not. Because gtk is going to be the leading toolkit
	around here, we had to use it in order to learn about it.
	And because the code was done in C++, we had to use a C++
	wrapper to gtk because we're not totally darn idiots.


Compiling
---------

c.1: What's this story about INSTALL, README, ./configure, and so on ?
  I'm not a computer scientist ! I'm a physician and would like to /use/
  the software. Please write an installation sequence like when I install
  a new (pirated) software on my home (pirated) Windows.

	point 1: when a definitive version of Grany will be written we
	  will provide binary distribution for i386 RedHat GNU/Linux, i386
	  Debian GNU/Linux, and SPARC Solaris 2.5, and you will be happy.

	point 2: typing ./configure ; make ; make install, IS the best
	  AUTOMATED installation process to compile from sources.
	  It has been done WONDERFULLY by some NICE guys. This system lets
	  you FREE to install which software you want and even if you own
	  a strange processor/distribution/etc of unix you will be ABLE to
	  install Grany, because it will compile, not only binary-install.



c.2: I have strange errors while compiling/linking, like symbols can't be
  found (___eh_pc something...)

	You have probably some code compiled with different libraries.
	For example if you compiled Gtk-- with one compiler/library, you
	must compile Grany with the same.


c.3: I have a non-full version of Gtk-- ??

	If Gtk-- detects that your compiler is not powerful enough to
	compile it correctly, it automatically compiles a reduced version!
	But this version is not enough for Grany.
	Therefore you shall get a newer compiler (at the time I'm typing,
	gcc-2.95 is out and has been tested successfully with Grany)


c.4: Eh, I compiled ok, then `make install', and I got this error:
	install: cannot create regular file `/usr/local/bin/granyconsole': Permission denied
     (or this error:
	install: cannot create regular file `/usr/local/bin/granyconsole': read-only file system)

	You probably executed `make install' as non-root. The default
	configure script will attempt to install the software in
	/usr/local and you must:

	* have write privilege on this mount point.
	* *OR* specify another installation point (for example if you're a
	  poor student trying to install nice software on a network in
	  which admins are too busy to install software)
	  This is done with the option --prefix=<base-dir-for-grany>
	  Please have a look at INSTALL or type `./configure --help'.


c.5: I had a strange error while compiling and I'm using a commercial unix.

	Upgrade to GNU tools.
	For example on Solaris the `make' program is so much bad it can't
	understand generated makefiles. Upgrade to GNU make.
	You can expect problems from your compiler, also. Upgrade to
	the latest GNU compiler. (at that time, GNU/egcs, please have a look:
	http://egcs.cygnus.com)


c.6: While linking I had this message:
       ld: warning: symbol 'Connection_impl virtual table' has differing sizes: 
     	(file BasicWindow.o value=0x10; file <wherever-I-installed-gtkmm>/libgtkmm.so value=0x20);
	BasicWindow.o definition taken

	You'll probably get a segmentation fault if you try to exec anyway.

	Apparently this is expected when some objects to link were compiled
	with `-fhuge-objects' and some others not.

	Now we do not use `-fhuge-objects' anymore because it would oblige user
	to recompile everything with `-fhuge-objects'. However, if you have
	compiled part of the libraries needed with this option if will fail.

	(thanks to Robert Gasch <Robert_Gasch@peoplesoft.com> for this solution)


Using
-----

u.1: Grany crashed !

	If you can reproduce your crash, please send me <gcottenc at altern dot org>:
	* what command sequence / files to use to reproduce the bug
	* your machine type (processor, os, distrib)
	* installed software (versions for: make, glib, gtk, gtk--, compiler)


u.2: Grany is sloooow. Are you so poor coders ?

	point 1: yes.
	point 2: `Q- Windows/Quake/Anything is slooow.  A- buy the new Intel cpu'


u.3: I want to reuse a part of your code. Can I ?

	Sure.
	But remember the software comes under the GPL licence, so:
        * the final derived product from grany must be under the GPL licence
	  too, which means that you can't make a commercial product with 
          the source code from grany.
        * read carefully the GPL licence if you don't know it.



<gcottenc at altern dot org>
