-
Notifications
You must be signed in to change notification settings - Fork 12
/
readme
76 lines (59 loc) · 3.98 KB
/
readme
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
This rudimentary readme file contains information on how to compile S-GeMS
on Unix systems. For Windows systems, only Visual C++ 6 with Intel compiler 7.x
or 8.x, or Visual C++ .Net 2003 are currently supported. A workspace file (.dsw/.sln) is available in directory WinGsTLAppli.
Project files (.dsp/.vcproj) are available in each subdirectory of GsTLAppli.
S-GeMS is distributed under two licenses (choose one): the GPL license and the
Xfree license. Copies of these two licenses are in files LICENSE.GPL and
LICENSE.XFREE.
Note: The name of this software has changed several times, so you might find
that it is sometimes called GEMS, Simulacre, or GsTLAppli...
Compiling:
---------------
Warning: the compilation process of S-GeMS is not streamlined yet, and might
require some manual intervention.
Before you try to compile S-GeMS, make sure that you have the following
libraries:
- Qt (www.trolltech.com)
- Coin (www.coin3d.org)
- SoQt (www.coin3d.org)
- SimVoleon (www.coin3d.org)
- Python (www.python.org)
- GsTL (http://pangea.stanford.edu/~nremy/GTL/GsTL_home.html)
Notice that Qt and Coin can not be used in a commercial setting unless you
purchase the appropriate license.
1) Edit file ".qmake.cache" and modify the path variables. One common mistake when setting the paths in .qmake.cache: the top-level directory of GsTL contains a directory that is also called GsTL and contains the source files. The GSTLHOME variable must be set to the top-level directory, not to the nested GsTL directory. So GSTLHOME=/tmp/GsTL, not /tmp/GsTL/GsTL. Similarily, the top-level directory of SGeMS contains a directory called GsTLAppli. Set GSTLAPPLI_HOME=/tmp/SGeMS, not /tmp/SGeMS/GsTLAppli.
2) If you want to compile in release mode, edit "config.qmake" and
change line:
CONFIG += debug warn_on
to
CONFIG += release warn_on
(remove "warn_on" to decrease the number of compiler warnings)
3) run qmake (just type "qmake") to generate the top-level makefile.
4) Finally, run make.
5) The executable will be output to $GSTLAPPLI_HOME/bin/linux/s-gems. It will probably be necessary to set LD_LIBRARY_PATH so linux can find the sgems shared libraries. These libraries are in $GSTLAPPLI_HOME/lib/linux and $GSTLAPPLI_HOME/plugins/designer:
export LD_LIBRARY_PATH=$GSTLAPPLI_HOME/lib/linux:$GSTLAPPLI_HOME/plugins/designer
Library $GSTLAPPLI_HOME/plugins/designer/libGsTLwidgets.so is a plug-in for Qt. If Qt can't find that plug-in, parts of the interface will be missing. You can copy libGsTLwidgets.so to $QTDIR/plugins/designer, or use qtconfig to add a new plug-ins search path.
6) Before you run the software, define a variable called GSTLAPPLIHOME to
point to the root directory of S-GeMS .
Generating Makefiles:
-----------------------
Makefiles are generated using qmake and .pro files. All .pro files should already
be there. This part explains how to use shell script "Makemake" to generate the
.pro files and the corresponding Makefiles.
To generate a makefile:
- define in MMakefile any non-default variable. MMakefile can
be used to override the target name (TARGET=name), add paths to
the include path (INCLUDEPATH += /new/path), etc. See qmake help
for all available options.
- run: Makemake -a|-l
Makemake will generate a .pro file and the corresponding makefile.
Makemake should be rerun each time new source files are added.
By default Makemake will attempt to compile all the files in the
directory. If more than one file contains a main() function, compilation
will fail. To remove the extra files, put the following line in MMakefile:
SOURCES -= extra_file.cpp
HEADERS -= extra_file.h
If your target is an executable, you can also run "make link" to obtain a link
to the compiled executable in the current directory (note that the rule for
"link" is generated by Makemake, so if you don't use Makemake to generate the
makefile, there won't be any "link" rule ).