From: Raimar S. <rai...@ui...> - 2012-08-14 10:28:50
|
Dear András, I updated my Mac to Lion and as a consequence tried to improve the Mac support a bit. I have pushed two more commits to raimar/cmake: * gcc 4.2 is now detected and the targets for the four script that would not compile with this version are removed. Xcode 4 still ships with gcc 4.2, this doesn't seem to change any time soon. * I added install targets for the scripts and the libraries to the cmake framework. Under Linux it is the responsibility of the user to install to default locations or otherwise configure the dynamic linker so that the libraries are found (i.e. /etc/ld.so.conf.d, LD_LIBRARY_PATH) and to call ldconfig after installation. Under Mac the situation is more delicate. The library paths are hard coded to the binaries and dependent libraries, these paths are changed to the install prefix once everything is installed. This way scripts can be run without installing as before (including the possibility to move them around as long as the build dir exists) exactly as it always has been. Additionally it is now also possible to install everything and then the binaries no longer depend on the build directory. The install targets are still undocumented yet, but most users would expect them to exist anyways out of habit. Also, I updated the documentation in raimar/Documentation. I completely rewrote the Mac OS section to make it better suited for users with Mac OS 10.7 or newer: it is now possible to avoid the installation of the complete Xcode suite and install only the command line tools. This is only 136.37 MB instead of the 4.4 GB Xcode 3 download. Xcode 4 is not as large as Xcode 3 (1.8 GB) because Apple decided to factor out some lesser used libraries and tools. Unfortunately the command line tools are not available for 10.6 so there Xcode 3 is still needed. I found the installation of dependencies to be much faster and easier with the "Homebrew" package manager. It provides everything one needs for the C++QED compilation (including blitz mercurial version, but not FLENS) and installs much less dependencies compared to MacPorts because it makes better use of what is already present on the Mac OS system. The updated documentation is written with Homebrew in mind but states that it is also possible to satisfy the dependencies with MacPorts if this is already installed (which is now true because blitz has been updated to 0.10 in MacPorts). I strongly suggest to drop Boost.Build support under Mac OS for now. It turns out that it only used to work because of a "bug" in Boost.Build, and as we have seen it was only possible to run the scripts from the root directory of the framework. Now this "bug" has been "fixed" and not even this works anymore. I suppose one would have to install everything in order to be able to run it, but I didn't test as Cmake works just fine. Telling from the bug reports dynamic linking on Mac OS really seems to be a mess and a constant source of confusion. As I was working on the documentation branch anyway I included your technicalDefinitions.sty to make the branch self-contained. I had to use some workaround though documented in the commit message. Finally I updated the getLibs.sh (it is in the branch raimar) to fix some problems. Instead of editing the Jamroot with sed (which did not work anymore) the script now gives hints how to call cmake or how to configure boost.build if the user chooses to install locally. The same tips concerning Boost.Build are also in the documentation now (edit user-config.jam or site-config.jam to provide library pathes). I removed Jamroot.hpc and Jamroot.macosx, because on teaser one can use the user-config.jam provided there or use cmake and on Mac Boost.Build is broken anyway. That's all for now, best regards Raimar |