Commit f4bd85219ec677a6cb69d6ab36bdbad40571fc59
1 parent
a57bb04b
update information for universal builds
Showing
1 changed file
with
51 additions
and
20 deletions
README
| 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 |