source: Sophya/trunk/SophyaLib/Mgr/README@ 1614

Last change on this file since 1614 was 1609, checked in by cmv, 24 years ago

changement Utils -> SUtils cmv 31/7/01

File size: 6.7 KB
Line 
1========================== Mgr Module =========================
2========== Code Management scripts for Planck DPC-L2 ==========
3===============================================================
4
5List of modules:
6==================
7
8* Mgr/ Scripts for code management and makefiles
9* BaseTools/ General architecture support classes
10* SysTools/ Interface to various services provided by the operating system
11* SUtils/ Utility classes and functions
12* TArray/ Template numerical arrays, vectors and matrices
13* SkyMap/ Local and full sky maps
14* SkyT/ Spectral emission and detector frequency response modelling
15* Samba/ Miscellaneous classes (TOD analysis, Spherical Harmonics, ...)
16* NTools/ Some standard numerical analysis tools
17* HiStats/ Histogram-ming and data set handling classes
18
19Modules using external library
20* FitsIOServer/ FITS format file I/O (interface with cfitsio library)
21* LinAlg/ Interface with Lapack linear algebra package
22* IFFTW/ Interface with FFTW package
23* XAstroPack/ Interface with astronomy library (XEphem)
24 Code is into the SOPHYA module XephemAstroLib
25
26
27* Tests/ Simple test programs
28
29* PMixer/ skymixer and utility main programs
30
31* PrgUtil/ Utility main programs
32
33* PrgMap/ Utility main programs for sky map manipulation
34
35
36* PI/ GUI class library
37* PIext/ specific GUI objects for SOPHYA classes and piapp framework
38* ProgPI/ interactive analysis tool using SOPHYA, PI and PIext
39
40
41Compilation and software installation:
42======================================
43
44The build procedure for the present version of SOPHYA has been
45tested on :
46
47Operating system Compiler
48......................................................................
49Compaq/DEC OSF 4.0 cxx 6.x (shared-library only)
50Compaq/DEC OSF 4.0 g++ 2.95 (shared-library only)
51SGI CC 7.30 ( " " " )
52Linux KCC 3.4 ( " " " )
53Linux g++ 2.91 (static and shared library)
54Linux g++ 2.95 (static and shared library)
55
56
57The environment variables DPCDEVREP EXTLIBDIR EROSCXX must be defined
58for building and installing the libraries.
59
60$EROSCXX is the name of C++ compiler being used.
61$DPCDEVREP is the path to where the libraries and executables will be put.
62$DPCDEVREP/Include : header files
63The libraries and binaries will be put in subdirectories containing
64the operating system name and the compiler name: `uname`-$EROSCXX
65For example, on a Linux system, using the GNU compiler:
66
67$DPCDEVREP/Linux-g++/Libs archive librarires
68$DPCDEVREP/Linux-g++/ShLibs shared libraries
69$DPCDEVREP/Linux-g++/Exec binaries
70
71The build procedure expects to find the include files and the libraries
72for cfitsio in :
73$EXTLIBDIR/Include/FitsIO
74$EXTLIBDIR/`uname`-$EROSCXX/Libs
75This would translate to Linux-g++ on a Linux system, using g++.
76$EXTLIBDIR/Linux-g++/Libs
77
78Example of c-shell commands to build the libraries:
79The use of GNU make program is mandatory
80
81# We select our C++ compiler
82csh> setenv EROSCXX g++
83# Setup the build directory
84csh> mkdir /usr/local/Sophya/
85csh> setenv DPCDEVREP /usr/local/Sophya/
86csh> setenv DPCBASEREP /usr/local/Sophya/
87csh> setenv EXTLIBDIR /usr/local/ExtLibs/
88
89# Use the top level makefile in Mgr/
90csh> cd $SRC
91csh> cp Mgr/Makefile Makefile
92# Step 1: Create the directory tree and copy the include files (.h)
93csh> make depend
94# Step 2: Compile the modules without external library reference
95csh> make libs
96# Step 3: Compile the modules WITH external library reference (optional)
97csh> make extlibs
98# Step 4: Build libsophya.so
99csh> make slb
100# Step 5: Build libextsophya.so
101csh> make slbext
102# Step 6: Compile the PI and PIext modules (optional)
103csh> make PI
104# Step 7: Build the corresponding shared library libPI.so (optional)
105csh> make slbpi
106
107
108To compile all modules and build the shared libraries, it is possible to use:
109
110# Step 2,3,6
111csh> make all
112# Step 4,5,7
113csh> make slball
114
115The building of shared libraries on SGI can be also done using the script
116mkslbsgi.csh in Mgr/
117
118csh> cp Mgr/mkslbsgi.csh .
119csh> mkslbsgi.csh slball
120
121# To compile test programs
122csh> cd Tests
123csh> make arrt ...
124csh> cd ..
125# To compile other programs, for example from the PMixer module
126csh> cd PMixer
127csh> make
128csh> cd ..
129# To build (s)piapp (libPI.so is needed)
130csh> cd ProgPI
131csh> make
132csh> cd ..
133
134Notes:
135======
1361) We had to build the shared libraries on our SGI system using the
137script (mkslbsgi.csh). The corresponding CC command was not performing
138correctly when issued by the GNU make program
1392) The top level Makefile should be modified if one wishes to use
140static libraries, except for g++. The compiler driver has to be
141invoked for building archive libraries, in order to include
142template instanciation into the archive.
143
144
145
146Scripts in Mgr/ module :
147========================
148
149* chk_cvs.csh : Compares/updates modules using CVS
150 Usage: chk_cvs.csh [-a] [-all] [-nos] [-u] [r]
151 chk_cvs.csh -h for help
152 Example :
153 Cmd> Mgr/chk_cvs.csh -u
154 Updates all modules
155
156* crerep_sophya
157 Creates the directory tree structure :
158 $DEV/BASEREP/Include
159 /OSF1-cxx/
160 /OSF1-cxx/Objs
161 /OSF1-cxx/Libs
162 /OSF1-cxx/ShLibs
163 /OSF1-cxx/Exec/
164 ....
165 Usage: crerep_sophya <nom des repertoires> [nom_machine-compilateur]
166 Example :
167 Cmd> crerep_sophya $DPCDEVREP OSF1-cxx
168 Cmd> crerep_sophya ~/Work/ Linux-g++
169
170* install_sophya
171 Install SOPHYA libraries/include files from dev directory ($DPCDEVREP)
172 to the install ($DPCBASEREP) directory
173 Copy files Include/*.h Libs/*.a ShLibs/*.so Exec/*
174
175 Usage: install_sophya <-s repertoire source> <-d repertoire destination>
176 [-m nom_machine-compilateur]
177 Example
178 Cmd> install_peida -s ~/Work /exp/Planck/DPC
179
180* mkmf
181 Creates a GNUmakefile in each library module and the global
182 GNUmakefile at top level
183
184 Steps :
185 - mkmflien : Creates symbolic links for all header files in $DPCDEVREP/Include
186
187 - mkmflib : Creation of a GNUmakefile in each library module
188
189 - mkmfPI : Creation of a GNUmakefile for PI and PIext module
190
191 - Top level makefile creation
192
193
194* mkmflib
195 Creation of the GNUmakefile for a library module
196 The file exclude in the module directory may contain the
197 list of source files (.cc .c) not to be compiled.
198 Usage: mkmflib ModuleName
199
200* mkmfprog
201 Creation of the GNUmakefile for a module containing
202 the main programs
203 Usage: mkmfprog ProgModuleName
204
205
206
Note: See TracBrowser for help on using the repository browser.