/[escript]/trunk/doc/install/srcmac.tex
ViewVC logotype

Annotation of /trunk/doc/install/srcmac.tex

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2326 - (hide annotations)
Thu Mar 19 05:34:00 2009 UTC (10 years, 6 months ago) by artak
File MIME type: application/x-tex
File size: 8955 byte(s)
Instructions on how to install on Mac from source.
1 jfenwick 2289
2     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3     %
4     % Copyright (c) 2003-2008 by University of Queensland
5     % Earth Systems Science Computational Center (ESSCC)
6     % http://www.uq.edu.au/esscc
7     %
8     % Primary Business: Queensland, Australia
9     % Licensed under the Open Software License version 3.0
10     % http://www.opensource.org/licenses/osl-3.0.php
11     %
12     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13    
14     \section{Installing from source for \macosx}
15 artak 2326 \label{sec:srcmac}
16    
17     The following instructions assume you are running the \filename{bash} shell.
18     Comments are indicated with \# characters.
19    
20     Make sure you have the following installed:
21     \begin{itemize}
22     \item \filename{g++} and associated tools.
23     \item \filename{make}
24     \end{itemize}
25    
26     You will also need a copy of the \esfinley source code.
27     If you retrieved the source using subversion, don't forget that one can use the export command instead of checkout to get a smaller copy.
28     For additional visualisation functionality see Section~\ref{sec:linaddfunc}.
29    
30     These instructions will produce the following structure:
31     \begin{itemize}
32     \item \filename{stand}: \begin{itemize}
33     \item \filename{escript.d}
34     \item \filename{packages}
35     \item \filename{package_src}
36     \item \filename{build}
37     \item \filename{doc}
38     \end{itemize}
39     \end{itemize}
40    
41     The build directory can be removed when you are finished.
42    
43     \begin{shellCode}
44     mkdir stand
45     cd stand
46     export PKG_ROOT=`pwd`/packages
47     \end{shellCode}
48    
49     Copy compressed source bundles into \filename{stand/package_src}.
50     Copy documentation files into \filename{doc}.
51    
52     \begin{shellCode}
53     mkdir packages
54     mkdir build
55     cd build
56     tar -jxf ../package_src/Python-2.6.1.tar.bz2
57     tar -jxf ../package_src/boost_1_38_0.tar.bz2
58     tar -jxf ../package_src/MesaLib-7.2.tar.bz2
59     tar -zxf ../package_src/netcdf-4.0.tar.gz
60     tar -zxf ../package_src/vtk-5.2.1.tar.gz
61     tar -zxf ../package_src/vtkdata-5.2.1.tar.gz
62     tar -zxf ../package_src/numarray-1.5.2.tar.gz
63     tar -zxf ../package_src/cmake-2.6.3.tar.gz
64     tar -zxf ../package_src/scons-1.2.0.tar.gz
65     \end{shellCode}
66    
67     Build python.
68     \begin{shellCode}
69     cd Python*
70    
71     ./configure --prefix=\$PKG_ROOT/python-2.6.1 \
72     --exec-prefix=\$PKG_ROOT/python-2.6.1 --enable-shared \
73     --enable-framework=\$PKG_ROOT/python-2.6.1 2>&1 | tee tt.configure.out
74    
75     make -j2
76    
77     make install 2>&1 | tee tt.make.out
78    
79     cp ../../packages/python-2.6.1/Python.framework/Versions/2.6/Python \
80     ../../packages/python-2.6.1/lib/libpython2.6.dylib
81    
82     cp ../../packages/python-2.6.1/Python.framework/Versions/2.6/Python \
83     ../../packages/python-2.6.1/lib/libpython.dylib
84    
85     cp ../../packages/python-2.6.1/include/python2.6/pyconfig.h \
86     ../../packages/python-2.6.1/Python.framework/Headers/
87    
88     cd ..
89    
90     export PATH=\$PKG_ROOT/python/bin:\$PATH
91     export PYTHONHOME=\$PKG_ROOT/python
92     export LD_LIBRARY_PATH=\$PKG_ROOT/python/lib:\$LD_LIBRARY_PATH
93    
94     pushd ../packages
95     ln -s python-2.6.1/ python
96     popd
97    
98     \end{shellCode}
99    
100     Run python to make sure~(check the version number) it works.
101     Now build numarray.
102    
103     \begin{shellCode}
104     cd numarray-1.5.2
105    
106     python setup.py install \
107     --gencode --install-lib=\$PKG_ROOT/numarray-1.5.2/lib \
108     --install-headers=\$PKG_ROOT=\$PKG_ROOT/numarray-1.5.2/include/numarray \
109     2>&1 | tee tt.install.out
110    
111    
112     export PYTHONPATH=\$PKG_ROOT/numarray/lib:\$PYTHONPATH
113     cd ..
114     pushd ../packages
115     ln -s numarray-1.5.2 numarray
116     popd
117     \end{shellCode}
118    
119     Now we build scons.
120     \begin{shellCode}
121     cd scons-1.2.0
122     python setup.py install --prefix=\$PKG_ROOT/scons-1.2.0
123    
124     export PATH=\$PKG_ROOT/scons/bin:\$PATH
125     cd ..
126     pushd ../packages
127     ln -s scons-1.2.0 scons
128     popd
129     \end{shellCode}
130    
131     ...Boost libraries ...
132     \begin{shellCode}
133     cd boost_1_38_0
134    
135     ./configure --prefix=\$PKG_ROOT/boost_1_38_0 --with-python-root=\$PKG_ROOT/python \
136     --with-python-version=2.6 --with-libraries=python
137    
138     make -j2
139     make install
140     ln -s \$PKG_ROOT/boost_1_38_0 \$PKG_ROOT/boost
141     export LD_LIBRARY_PATH=\$PKG_ROOT/boost/lib:\$LD_LIBRARY_PATH
142     cd ..
143     pushd ../packages
144     ln -s boost_1_38_0 boost
145     popd
146     \end{shellCode}
147    
148     ... and netcdf.
149     \begin{shellCode}
150     cd netcdf-4.0
151     CFLAGS="-O2 fPIC -Df2cFortran" CXXFLAGS="-O2 fPIC -Df2cFortran" \
152     FFLAGS="-O2 fPIC -Df2cFortran" FCFLAGS="-O2 fPIC -Df2cFortran" \
153     ./configure --prefix=\$PKG_ROOT/netcdf-4.0
154    
155     make -j2
156     make install
157    
158     export LD_LIBRARY_PATH=\$PKG_ROOT/netcdf/lib:\$LD_LIBRARY_PATH
159     cd ..
160     pushd ../packages
161     ln -s netcdf-4.0 netcdf
162     popd
163     \end{shellCode}
164    
165     CMake and Mesa are required for VTK.
166     \begin{shellCode}
167     cd cmake-2.6.3
168     ./configure --prefix=\$PKG_ROOT/cmake-2.6.3 2>&1 | tee tt.configure
169     make -j 4
170     make install
171    
172     export PATH=\$PKG_ROOT/cmake/bin:\$PATH
173     cd ..
174     pushd ../packages
175     ln -s cmake-2.6.3 cmake
176     popd
177     \end{shellCode}
178    
179     These instructions do not compile MesaDemos or GLUT.
180     If you need to check if Mesa compiled correctly, then the demos are a good test.
181     \begin{shellCode}
182     cd Mesa-7.2
183     ./configure --prefix=\$PKG_ROOT/mesa-7.2 --enable-gl-osmesa
184    
185     make -j 4
186     make install
187    
188     export LD_LIBRARY_PATH=\$PKG_ROOT/mesa:\$LD_LIBRARY_PATH
189     cd ..
190     pushd ../packages
191     ln -s mesa-7.2 mesa
192     popd
193     \end{shellCode}
194    
195     \begin{shellCode}
196     cd VTK
197     cmake .
198    
199     #Edit the CMakeCache and make the following changes:
200     #(Please replace .... with an absolute path to the stand directory)
201    
202     #-----------------
203    
204     BUILD_EXAMPLES should be OFF
205     BUILD_SHARED_LIBS should be ON
206    
207     CMAKE_INSTALL_PREFIX ..../stand/packages/vtk-5.2.1
208     CMAKE_VERBOSE_MAKEFILE TRUE
209    
210     #check PYTHON_EXECUTABLE is correct.
211     #but it seems to be when I went through these steps
212    
213     VTK_OPENGL_HAS_OSMESA TRUE
214     VTK_USE_64BIT_IDS ON
215     # That last one is marked as "May cause some bugs" in the original instructions
216    
217     VTK_WRAP_PYTHON ON
218     VTK_USE_MANGLED_MESA OFF
219    
220     #--------------------
221    
222     cmake .
223     #It won't work but it will put some variables in that you need.
224    
225     #Edit CMakeCache again and make the following changes
226    
227     #----------------
228    
229     VTK_USE_TK OFF
230    
231     OSMESA_INCLUDE_DIR ..../stand/packages/mesa/include
232    
233     OSMESA_LIBRARY ..../stand/packages/mesa/lib/libOSMesa.dylib
234    
235     PYTHON_INCLUDE_PATH ..../stand/packages/python/include/python2.6
236    
237     PYTHON_LIBRARY ..../stand/packages/python/lib/libpython2.6.dylib
238    
239     OPENGL_INCLUDE_DIR ..../stand/packages/mesa/include
240    
241     OPENGL_gl_LIBRARY ..../stand/packages/mesa/lib/libGL.dylib
242    
243     #----------------
244    
245     cmake .
246     make
247     make install
248    
249    
250     cd ../../packages
251     ln -s vtk-5.2.1 vtk
252     cd ..
253     \end{shellCode}
254    
255     Now copy the \esfinley source into an \filename{escript.d} directory in \filename{stand}.
256    
257     \begin{shellCode}
258     cd scons
259     cp mac_options_example.py YourMachineName_options.py
260    
261     #edit the options file and make the following changes:
262     #-----------------------------------------------------------------
263     declare a PKG_ROOT variable at the top of the file eg:
264     PKG_ROOT='/Users/artak/stand/packages'
265    
266     python_path = PKG_ROOT+'python/include/python2.6'
267     python_lib_path = PKG_ROOT+'python/lib'
268     python_libs = 'python2.6'
269    
270     boost_path = PKG_ROOT+'boost/include/boost-1_38'
271     boost_lib_path = PKG_ROOT+'boost/lib'
272     boost_libs = ['boost_python-gcc43-mt']
273     # You could simlink the boost python library to give a shorter
274     # name but it's not worth it
275    
276     usevtk = 'yes'
277     #-------------------------------------------------------------------
278    
279     ln -s \$PKG_ROOT/vtk-5.2.1 \$PKG_ROOT/vtk
280    
281     Modify /scripts/finley_wrapper_template
282    
283     STANDALONE=1
284    
285     #Check to make sure the paths in the if [ \$STANDALONE == 1 ]
286     # Section are correct
287    
288     #-----------------------------------------------------------------
289    
290     scons bin/escript
291    
292     #start a new terminal
293     cd stand
294     export PATH=`pwd`/packages/scons/bin:\$PATH
295     cd escript.d
296     eval `bin/escript -e`
297     scons
298     \end{shellCode}
299    
300     If you wish to test your build, then you can do the following.
301     Note this may take a while if you have a slow processor and/or less than 1Gb of RAM.
302     \begin{shellCode}
303     scons all_tests
304     \end{shellCode}
305    
306     Once you are satisfied, the \filename{build} and \filename{\$PKG_ROOT/build} directories can be removed.
307     Within the \filename{packages} directory, the \filename{scons}, \filename{scons-1.2.0}, \filename{cmake-2.6.3} and \filename{cmake} entries can also be removed.
308     If you are not redistributing this bundle you can remove \filename{\$PKG_ROOT/package_src}.
309    
310     If you do not plan to edit or recompile the source you can remove it.
311     The only entries which are required in \filename{escript.d} are:
312     \begin{itemize}
313     \item \filename{bin}
314     \item \filename{esys}
315     \item \filename{include}
316     \item \filename{lib}
317     \item \filename{README_LICENSE}
318     \end{itemize}
319    
320     Hidden files can be removed with
321     \begin{shellCode}
322     find . -name .?* | xargs rm -rf
323     \end{shellCode}
324    
325     \section{Additional Functionality}\label{sec:macddfunc}
326     To perform visualisations you will need some additional tools.
327     Since these do not need to be linked with any of the packages above, you can install versions available for your
328     system, or build them from source.
329     \begin{itemize}
330     \item \filename{ppmtompeg} and \filename{jpegtopnm} from the \filename{netpbm} suite. - To build from source
331     you would also need \filename{libjpeg} and its headers as well as \filename{libpng}\footnote{libpng requires zlib to build} and its headers.
332     \item A tool to visualise VTK files. For example Mayavi or Visit.
333     \end{itemize}

  ViewVC Help
Powered by ViewVC 1.1.26