README 2.51 KB
Newer Older
Julian Kranz's avatar
README    
Julian Kranz committed
1
2
3
4
# vim: tw=80:fo+=t

In order to build the GDSL toolkit with its demo applications and libraries the
following steps need to be followed.
mb0's avatar
README!    
mb0 committed
5

Julian Kranz's avatar
Readme    
Julian Kranz committed
6
*** Dependencies
mb0's avatar
README!    
mb0 committed
7

Julian Kranz's avatar
Readme    
Julian Kranz committed
8
9
The GDSL compiler and core libraries require the following software to be on the
current search PATH:
Julian Kranz's avatar
README    
Julian Kranz committed
10

Julian Kranz's avatar
Readme    
Julian Kranz committed
11
- Standard ML of New Jersey interactive compiler (including ml-lpt) [>= version 110.75]
Julian Kranz's avatar
README    
Julian Kranz committed
12
- Make
Julian Kranz's avatar
Readme    
Julian Kranz committed
13
- A C compiler 
Julian Kranz's avatar
Julian Kranz committed
14
- Libtool
Julian Kranz's avatar
README    
Julian Kranz committed
15

Julian Kranz's avatar
README    
Julian Kranz committed
16
17
18
19
Furthermore, the following software packages and features are required by some
of the optional demo applications:

- GNU C library extensions
Julian Kranz's avatar
Readme    
Julian Kranz committed
20
21
- A C compiler that supports the C11 standard, e.g. a recent GCC
- Libelf (http://www.mr511.de/software/) [>= version 0.152] 
Julian Kranz's avatar
README    
Julian Kranz committed
22

Julian Kranz's avatar
Readme    
Julian Kranz committed
23
*** Building the Application
Julian Kranz's avatar
README    
Julian Kranz committed
24

Julian Kranz's avatar
Readme    
Julian Kranz committed
25
26
27
As a first step, the sources need to be configured; the following command uses
the default build settings that compile the x86 decoder with semantic
translation:
Julian Kranz's avatar
README    
Julian Kranz committed
28

Julian Kranz's avatar
README    
Julian Kranz committed
29
./configure
Julian Kranz's avatar
README    
Julian Kranz committed
30

Julian Kranz's avatar
README    
Julian Kranz committed
31
32
Other architectures can be chosen by passing the "--with-frontend=..." option to
"./configure". For an overview of all available frontends and other options run
Julian Kranz's avatar
Readme    
Julian Kranz committed
33
34
"./configure --help". Details about the various tools and libraries can be found
here.
Julian Kranz's avatar
README    
Julian Kranz committed
35

Julian Kranz's avatar
README    
Julian Kranz committed
36
Finally,
Julian Kranz's avatar
README    
Julian Kranz committed
37

Julian Kranz's avatar
README    
Julian Kranz committed
38
make
Julian Kranz's avatar
README    
Julian Kranz committed
39

Julian Kranz's avatar
README    
Julian Kranz committed
40
and (optionally)
Julian Kranz's avatar
README    
Julian Kranz committed
41

Julian Kranz's avatar
README    
Julian Kranz committed
42
make install
Julian Kranz's avatar
README    
Julian Kranz committed
43

Julian Kranz's avatar
README    
Julian Kranz committed
44
45
46
build and install the respective frontend. The demo applications and libraries
are built but not installed by default; see "./configure --help" for information
on how to change this.
Julian Kranz's avatar
README    
Julian Kranz committed
47

Julian Kranz's avatar
Readme    
Julian Kranz committed
48
*** Building from Repository Sources
Julian Kranz's avatar
Readme    
Julian Kranz committed
49

Julian Kranz's avatar
Readme    
Julian Kranz committed
50
51
Checking out the current sources and building them requires the following tools
to be on the current search PATH:
Julian Kranz's avatar
Readme    
Julian Kranz committed
52
53
54
55

- Automake
- Git 

Julian Kranz's avatar
Readme    
Julian Kranz committed
56
57
After checking out the sources, the configure script has to be generated using
the following command:
Julian Kranz's avatar
Readme    
Julian Kranz committed
58
59
60
61
62
63
64

autoreconf -i

Then follow the instructions above.

*** Demos and Libraries

Julian Kranz's avatar
README    
Julian Kranz committed
65
66
67
68
The GDSL toolkit contains a number of demo applications and libraries. Depending
on the whether the build machine satisfies all dependencies, some or all of them
are built together with the GDSL frontend. The tools and libraries are presented
on the website of the toolkit (http://code.google.com/p/gdsl-toolkit/).
Julian Kranz's avatar
README    
Julian Kranz committed
69

Julian Kranz's avatar
README    
Julian Kranz committed
70
*** Using the Gdsl Java Library
Julian Kranz's avatar
README    
Julian Kranz committed
71
72
73
74

In order to use the Gdsl Java library, one has to instruct Automake to install
auxiliary libraries. This is done by passing the "--enable-install-auxlibs"
option to "./configure". Additionally, one has to make sure that the JNI header
Julian Kranz's avatar
README    
Julian Kranz committed
75
76
77
file ("jni.h") can be found. For example, if the JNI header can be found in the
"/usr/lib/jvm/java-7-openjdk-amd64/include/" directory, then one would need to
run "./configure" in the following way:
Julian Kranz's avatar
README    
Julian Kranz committed
78
79

C_INCLUDE_PATH="/usr/lib/jvm/java-7-openjdk-amd64/include/" ./configure --enable-install-auxlibs