-
Notifications
You must be signed in to change notification settings - Fork 3
/
README_INSTALL
153 lines (110 loc) · 5.48 KB
/
README_INSTALL
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
31 July 2008 AN
Building the GIAPI C++ Language Glue requires some work since it depends
on third party products that must be fetched and installed. I expect the build
method to improve in the future though.
1. Required tools
The library was compiled for Linux using the following tools:
* g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)
* GNU Make 3.81
* GNU ld version 2.17.50.0.6-2.el5 20061020
* RedHat Enterprise Linux 5 Server, Linux kernel 2.6.18-194.26.1.el5, 64-bit
The library must be compiled with GCC version 4.0 or above.
2. Set up the environment.
When building, you need to set up the following variables in the config.mk
file (located in the 'conf' directory):
INSTALL_DIR The directory where you want to have the library and headers
installed to.
EXTERNAL_LIB The directory that contains the dependencies required to build
the GIAPI C++ Language Glue.
SYSTEM_INCLUDE_DIR The directory where standard libraries are located.
Usually /usr/lib
The config.mk contains values for these three variables. Please adjust them
to your needs.
3. Build dependencies
The following are the libraries that need to be compiled and installed in the
system before building the GIAPI C++:
(Note that dependencies suitable for CentOS 7 are included in the external directory)
* APR and APR Util: These libraries are required to compile Active MQ CPP CMS,
log4cxx and the GIAPI (see next dependencies).
See the instructions at apr-1.3.12/README.md and apr-util-1.3.10/README.md
To build the GIAPI, the APR headers need to be available.
The APR_INCLUDE variable defined in the common.mk file is used to find these
headers.
On my system they were installed on EXTERNAL_LIB/apr/include/apr-1
* Active MQ CPP CMS.
This library needs to be available in the EXTERNAL_LIB/activemq directory
In my development environment, I declare EXTERNAL_LIB/activemq as a symlink
to the place I define to install active mq using the 'configure --prefix'
command
You may want to disable ssl support as GIAPI doesn't require it. That avoids the
need to instal openssl
See the instructions at activemq-cpp-library-3.4.1/README.md
* Apache Log4cxx version 0.10.0. Obtained from
http://logging.apache.org/log4cxx/
This library needs to be available in the EXTERNAL_LIB/log4cxx directory
Same as with active mq, I declare EXTERNAL_LIB/log4cxx as a symlink
to the place I define to install log4cxx using the 'configure --prefix'
command
See the instructions at apache-log4cxx-0.10.0/README.md
* CPP Unit 1.12.1.
This library needs to be installed in the EXTERNAL_LIB/cppunit directory
Same as with everything else, I declare EXTERNAL_LIB/cppunit as a symlink
to the place I define to install cppunit using the 'configure --prefix'
command.
See the instructions at cppunit-1.12.1/README.md
* libCurl 7.21.6
This library needs to be installed in the EXTERNAL_LIB/libcurl directory
Same as with everything else, I declare EXTERNAL_LIB/libcurl as a symlink
to the place I define to install libcur.
See instructions at curl-7.21.6/README.md
* cURLpp 0.7.3
This library needs to be installed in the EXTERNAL_LIB/curlpp directory
Same as with everything else, I declare EXTERNAL_LIB/curlpp as a symlink
to the place I define to install cppunit using the 'configure --prefix --without-boost'
command.
See instructions at curlpp-0.7.3/README.md
4. Building the library
Once the external libraries are installed and the config.mk has been updated
with the right directory names, the system can be built just by typing:
make
in the top level directory of the source tree.
If everything goes well, the system should build the libraries. To run the
the unit tests provided you have to have a GMP Broker up and running. Please
refer to the GMP documentation for instructions about how to do this. Once
the GMP is running, type
make tests
to run the unit tests for the GIAPI library.
To install the library into the directory declared in the config.mk file,
just type:
make install
That will put the library and header files in the INSTALL_DIR directory.
Headers will be in INSTALL_DIR/include and the library will be in INSTALL_DIR/lib
5. Linking with the library
In order for an executable to find the required libraries to link with during
run time, the system must be configured so that the libraries can be found.
Methods available: (Do at least one of the following)
a) Add library directories to be included during dynamic linking to the file
/etc/ld.so.conf
Sample: /etc/ld.so.conf
/usr/X11R6/lib
/usr/lib
...
..
/usr/lib/sane
/usr/lib/mysql
/opt/lib
Add the INSTALL_DIR/lib library path to this file and then execute the
command (as root) ldconfig to configure the linker run-time bindings.
See man page for command ldconfig.
OR
b) Add specified directory to library cache: (as root)
ldconfig -n INSTALL_DIR/lib
This will NOT permanently configure the system to include this directory.
The information will be lost upon system reboot.
OR
c) Specify the environment variable LD_LIBRARY_PATH to point to the directory
paths containing the shared object library. This will specify to the run
time loader that the library paths will be used during execution to
resolve dependencies.
This instructs the run time loader to look in the path described by the
environment variable LD_LIBRARY_PATH, to resolve shared libraries.