,-o----o----o----o-.
| GridFlow 9.14 |
`-o--------------o-'
|
.-o--------------------------------------------------------------
| Hardware and Software you Probably Need
Computer/Processor: GridFlow is mainly made on PC. This includes
AMD K6/K7/K8 (Athlon/Opteron/etc), Intel P2/P3/P4 and other Pentiums,
Intel-Core, etc. ; the absolute minimum is 386. However, it has also
been built for Macintosh PowerPC (G3/G4/G5) recently. GridFlow have
also been tried on SPARC and ARM processors long ago.
Operating System: GridFlow is mainly made on Ubuntu. We have also used
Debian, SuSE, Mandrake, OSX. Microsoft Windows is not supported, but if
you do want to try to add support for that, try CygWin and/or MinGW.
Now if you want to make your own executables, you will need the following things.
(This README is mainly aimed at people who use the source code. If you use
a package, there's probably another README file for you)
Required Software:
Ruby 1.8 or 1.9
PureData 0.41 or later, or DesireData
GNU C++ Compiler (g++) version 3.x or 4.x
GNU Make
SVN
Developer CD (XCODE) (if using OSX)
FINK or equivalent (if using OSX)
Multimedia Components (optional):
libSDL (Simple Directmedia Layer)
libjpeg
libpng
libmpeg3 (.mpg reader, HeroineWarrior's)
libquicktime (.mov reader/writer, Burkhard Plaum's or
HeroineWarrior's)
Apple QuickTime (.mov reader/writer and camera interface)
Ascii Art Library (aalib)
Video digitizer card or USB camera (whatever supports Video4Linux version 1 or 2)
FFTW3
OpenCV
NetPBM
OpenGL (and GLEW)
GEM (if you have OpenGL)
Apple X11 (for 10.3: http://www.apple.com/support/downloads/x11formacosx.html
for 10.4: http://www.apple.com/support/downloads/x11update2006113.html )
.-o--------------------------------------------------------------
| Downloading from SVN
The SVN has the absolute latest version of GridFlow, but it's not
guaranteed to be working, whereas the actual releases are more tested.
However you may have various reasons to use the SVN edition, so here's
how: Make sure you have the svn program installed.
cd pd/extra
svn checkout http://gridflow.ca/svn/trunk
mv trunk gridflow
And the subsequent times, you only do this:
cd pd/extra/gridflow
svn update
.-o--------------------------------------------------------------
| Installation instructions (incl. compilation)
Install Ruby.
Download GridFlow from the website and uncompress it, or get it
from the SVN server.
Run ./configure from the gridflow directory. Make sure it
detects all the components you want to use with GridFlow.
In MacOS you would normally use FINK to install those extra components:
ruby libjpeg libjpeg-shlibs libpng-shlibs libpng3 libpng3-shlibs
libmpeg libmpeg-shlibs
In Debian (we tried lenny) or Ubuntu (we tried 8.04 ... 10.04), do
apt-get install libjpeg62-dev libpng12-dev libmpeg3-dev libquicktime-dev fftw3-dev
apt-get install libaa1-dev libsdl1.2-dev libx11-dev libxt-dev g++ ruby nasm
apt-get install libglew1.5-dev libx11-dev libxext-dev libxt-dev libv4l-dev libcv-dev
apt-get install libglib1.2-dev
or apt-get install libglib2.0-dev
At least with Ubuntu you can add those, but haven't tried with Debian yet:
apt-get install libcv-dev libdc1394-13-dev
Note: you may have to set CPLUS_INCLUDE_PATH and C_INCLUDE_PATH
to indicate where to find *.h files, and you
may have to set both LIBRARY_PATH and LD_LIBRARY_PATH to indicate where to find
*.so or *.a or *.dylib or *.bundle or *.dll or *.lib files.
For example, if m_pd.h is found in /Users/pierre/include, you would do this to access it:
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/Users/pierre/include
You can do this in a bash shell (in which case it will have effect
on this instance of the shell until it is closed) or you can do
this in .bashrc (in which case it will have effect on all shells started
in the future)
Alternately you could copy m_pd.h into /usr/include
(note: /usr is not visible from Finder)
Note: you can do ./configure --help to get a list of supported
options. You can use them to ignore the presence of troublesome libraries
and select debugging level. With --use-compiler you should use a version of g++, not
directly a version of gcc, else you get undefined symbol problems. Some versions of gcc/g++
are troublesome.
Note: starting with GridFlow 0.9.6, the --no-gem08 and --no-gem09 (etc) options don't exist
anymore. Instead use --no-opengl if you want to disable GEM support.
Run make to produce the executables gridflow.so and gridflow.pd_linux or similar
Loading GridFlow:
PureData : With a text editor, modify or create ~/.pdrc and write -lib gridflow.
DesireData : In "Server Preferences", add gridflow to the list of libraries.
Note that on MacOS the dot-files are invisible in the Finder but you do cd ~/Desktop; ln -s ../.pdrc "PureData Configuration" to make an alias on the Desktop.
Note also that on Windows the dot-files are even more trouble.
.-o--------------------------------------------------------------
| Other Tips
you just did a SVN update and now the program does not compile, or
crashes, or changes didn't go through.
When some kinds of changes have happened, you may have to rerun the configure
program before redoing make. If you had previously reconfigured with specific options,
don't forget to use them again in this case.
Maybe matju forgot to upload part of an important change. Tell him.
PureData Crashing:
run start Pd from within the debugger using gdb $(which pd) then run then cause the crash.
In GDB, after a crash, you can use the where to find out what Pd was doing at the moment
of the crash. If instead Pd is frozen, you can force it to crash using Ctrl+C in the terminal.
To quit GDB use the quit command.
.-o--------------------------------------------------------------
| Directory layout
./abstractions ..... Pd object classes written in Pd
./src .............. object classes written in C++
./bin .............. programs startable as applications
./bundled .......... files from other packages, bundled here for convenience
./deprecated ....... old abstractions for backward-compatibility
./examples ......... more complex Pd programs showing off more practical uses.
./doc .............. complete documentation in HTML, with XML source
./doc/flow_classes . help files (.pd)
./doc/tutorials .... tutorials
./examples ......... more complex Pd programs showing off more practical uses.
(this will replace ./pd_examples in the future).
./images ........... sample images used by ./examples, ./doc
./tests ............ will contain Pd programs that test GridFlow itself.
(see also: the PureUnity project)
.-o--------------------------------------------------------------
| License Info
This program 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 General Public License for more details.
This program is free software; you can redistribute it and/or
Modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
See file COPYING for further informations on licensing terms.