Commit f4bd85219ec677a6cb69d6ab36bdbad40571fc59

Authored by knodlseder
1 parent a57bb04b

update information for universal builds

Showing 1 changed file with 51 additions and 20 deletions
1 GammaLib information 1 GammaLib information
2 ==================== 2 ====================
3 -Version: 00-05-00 (October 12, 2011)  
4 -Author: Juergen Knodlseder (knodlseder@cesr.fr) 3 +Version: 00-05-00 (October 19, 2011)
  4 +Author: Juergen Knoedlseder (knodlseder@cesr.fr)
5 5
6 6
7 License information 7 License information
@@ -28,14 +28,14 @@ See the files "NEWS" and "ChangeLog". @@ -28,14 +28,14 @@ See the files "NEWS" and "ChangeLog".
28 What is the GammaLib anyway? 28 What is the GammaLib anyway?
29 ============================ 29 ============================
30 The GammaLib is a versatile toolbox for the high-level analysis of 30 The GammaLib is a versatile toolbox for the high-level analysis of
31 -astronomical gamma-ray data. It is implemented as a C++ library  
32 -that is fully scriptable in the Python scripting language. The library 31 +astronomical gamma-ray data. It is implemented as a C++ library
  32 +that is fully scriptable in the Python scripting language. The library
33 provides core functionalities such as data input and output, interfaces 33 provides core functionalities such as data input and output, interfaces
34 for parameter specifications, and a reporting and logging interface. 34 for parameter specifications, and a reporting and logging interface.
35 It implements instruments specific functionalities such as instrument 35 It implements instruments specific functionalities such as instrument
36 -response functions and data formats. Instrument specific functionalities 36 +response functions and data formats. Instrument specific functionalities
37 share a common interface to allow for extension of the GammaLib to 37 share a common interface to allow for extension of the GammaLib to
38 -include new gamma-ray instruments. The GammaLib provides an abstract 38 +include new gamma-ray instruments. The GammaLib provides an abstract
39 data analysis framework that enables simultaneous multi-mission analysis. 39 data analysis framework that enables simultaneous multi-mission analysis.
40 40
41 41
@@ -51,9 +51,9 @@ GammaLib should compile on every modern Unix system without any need @@ -51,9 +51,9 @@ GammaLib should compile on every modern Unix system without any need
51 to install other libraries. 51 to install other libraries.
52 52
53 To enable support for FITS file handling, however, the cfitsio library 53 To enable support for FITS file handling, however, the cfitsio library
54 -from HEASARC needs to be installed. cfitsio can be downloaded from 54 +from HEASARC needs to be installed. cfitsio can be downloaded from
55 http://heasarc.gsfc.nasa.gov/fitsio and detailed installation instructions 55 http://heasarc.gsfc.nasa.gov/fitsio and detailed installation instructions
56 -can be found there. If cfitsio does not already exist on your system, 56 +can be found there. If cfitsio does not already exist on your system,
57 we recommend installation of cfitsio in the default GammaLib install 57 we recommend installation of cfitsio in the default GammaLib install
58 directory as a shared library by typing: 58 directory as a shared library by typing:
59 59
@@ -64,7 +64,7 @@ directory as a shared library by typing: @@ -64,7 +64,7 @@ directory as a shared library by typing:
64 GammaLib can also benefit from the presence of the readline library 64 GammaLib can also benefit from the presence of the readline library
65 that provides line-editing and history capabilities for text input 65 that provides line-editing and history capabilities for text input
66 (GammaLib offers however also full functionality without having 66 (GammaLib offers however also full functionality without having
67 -readline installed). readline requires the ncurses library. Both 67 +readline installed). readline requires the ncurses library. Both
68 libraries can be downloaded from http://ftp.gnu.org/gnu/. 68 libraries can be downloaded from http://ftp.gnu.org/gnu/.
69 69
70 70
@@ -96,19 +96,50 @@ GammaLib was correctly built. Make sure that all tests were successful. @@ -96,19 +96,50 @@ GammaLib was correctly built. Make sure that all tests were successful.
96 96
97 Macintosh OS X Installation 97 Macintosh OS X Installation
98 ============================ 98 ============================
99 -GammaLib is known to work on various flavors of OS X. Follow the  
100 -Linux installation instructions above. 99 +GammaLib is known to work on various flavors of OS X. To cope with
  100 +different system versions and architectures, there are two Mac
  101 +specific configure options:
101 102
102 -In some cases, install problems have been reported with mixed  
103 -architectures (i386, ppc, x86_64), so you may configure and build  
104 -as follows to enable building a bundle for various architectures: 103 + % ./configure --enable-universalsdk[=PATH]
105 104
106 - % export CXXFLAGS="-arch ppc -arch i386 -arch x86_64"  
107 - % export LDFLAGS="-arch ppc -arch i386 -arch x86_64"  
108 - % ./configure  
109 - % make  
110 - % make check  
111 - % make install 105 +creates a universal build of GammaLib. The optional argument specifies
  106 +which OSX SDK should be used to perform the build. This defaults to
  107 +"/Developer/SDKs/MacOSX.10.4u.sdk". Specify "/" when building on a 10.5
  108 +system or higher, especially when building 64-bit code.
  109 +
  110 + % ./configure --with-univeral-archs=VALUE
  111 +
  112 +specifies the kind of universal build that should be created. Possible
  113 +values are: "32-bit", "3-way", "intel" or "all". By default, a "32-bit"
  114 +build will be made. This option is only valid when
  115 +"--enable-universalsdk" is specified.
  116 +
  117 +These options are in particular needed if your Python architecture differs
  118 +from the default architecture of your system. To examine the Python
  119 +architecture you may type:
  120 +
  121 + % file `which python`
  122 +
  123 +which will return the architectures that are compiled in the Mach-0
  124 +executable:
  125 +
  126 + i386 32-bit intel
  127 + ppc 32-bit powerpc
  128 + ppc64 64-bit powerpc
  129 + x86_64 64-bit intel
  130 +
  131 +If Python is 32-bit (ppc, i386) but the compiler produces by default
  132 +64-bit code (ppc64, x86_64), the Python module will not work. Using
  133 +
  134 + % ./configure --enable-universalsdk=/
  135 +
  136 +will force a universal 32-bit build which creates code for ppc and
  137 +i386. If on the other hand Python is 64-bit (ppc64, x86_64) but the
  138 +compiler produces by default 32-bit code (ppc, i386), the option
  139 +
  140 + % ./configure --enable-universalsdk=/ --with-univeral-archs=3-way
  141 +
  142 +will generate a universal build which contains 32-bit and 64-bit code.
112 143
113 144
114 BSD Installation 145 BSD Installation