OSX 10.6.4 Snow Leopard: Difference between revisions
m (moved OSX 10.6.4 (Snow Leopard) to OSX 10.6.4 Snow Leopard) |
|||
(30 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Building Exodus on Mac is similar to building on Linux. | |||
This | This build was performed on OSX 10.6.4 (Snow Leopard) on Macbook Pro | ||
= Installing C++ compiler = | |||
#Insert Mac OSX Install DVD | |||
#Open Optional Installs folder | |||
#Open Xcode.mpkg | |||
#Follow instructions | |||
#IMPORTANT: Check ALL options including Mac OSX 10.4 Support | |||
The XCODE package includes subversion and curl | |||
= Installing Postgres = | |||
This is Postgres 9.0.1 but you can use any version back to 8.1.0 | This is Postgres 9.0.1 but you can use any version back to 8.1.0 | ||
Line 26: | Line 25: | ||
Once downloaded, just do a standard install and remember the admin user password. | Once downloaded, just do a standard install and remember the admin user password. | ||
= | = Building ICU, Boost and Exodus = | ||
Edit in the following script, or just cut and paste it into your bash command prompt. | |||
cd ~ | |||
nano installexodus.sh | |||
chmod +x installexodus.sh | |||
./installexodus.sh | |||
The latest version of this script is at http://code.google.com/p/exodusdb/source/browse/trunk/installexodus.sh | |||
<pre> | |||
#!/bin/bash | |||
--- | echo 1. Build and install ICU | ||
cd ~ | |||
#svn co http://source.icu-project.org/repos/icu/icu/tags/release-4-8/ icu | |||
rm icu4c-4_8-src.tgz | |||
curl -L -O http://download.icu-project.org/files/icu4c/4.8/icu4c-4_8-src.tgz | tee icu4c-4_8-src.tgz | tar xz | |||
cd icu/source | |||
./configure --enable-extras=no \ | |||
--enable-extras=no \ | |||
--enable-icuio=no \ | |||
--enable-layout=no \ | |||
--enable-tests=no \ | |||
--enable-samples=no | |||
make clean | |||
make | |||
sudo make install | |||
echo 2. Build and install Boost | |||
cd ~ | |||
rm -f boost_1_46_1.tar.gz | |||
#wget http://sourceforge.net/projects/boost/files/boost/1.46.1/boost_1_46_1.tar.gz | |||
curl -L -O http://sourceforge.net/projects/boost/files/boost/1.46.1/boost_1_46_1.tar.gz | tee boost_1_46_1.tar.gz | tar xz | |||
cd boost_1_46_1 | |||
#bjam should say "has_icu builds: yes" otherwise check your icu installation above | |||
./bootstrap.sh | |||
sudo ./bjam --with-date_time --with-filesystem --with-regex --with-system --with-thread install link=shared -a | |||
echo 3. Build and install Exodus | |||
export PATH=/Library/PostgreSQL/9.0/bin/:$PATH | |||
#see XCODE's Cross-Development Programming Guide:Configuring a Makefile-Based Project | |||
#export MACOSX_DEPLOYMENT_TARGET=10.4 | |||
cd ~ | |||
svn co HTTPS://exodusdb.googlecode.com/svn/trunk/ exodus | |||
cd ~/exodus | |||
#./configure --with-sysroot=/Developer/SDKs/MacOSX10.4.0.sdk | |||
./configure | |||
make clean #in case half-built with wrong boost libs | |||
make | |||
sudo make install | |||
</pre> | |||
= Packaging Exodus = | |||
You need Bitrock http://installbuilder.bitrock.com/installbuilder-enterprise-7.2.0-osx-installer.app.zip | |||
cd ~exodus | |||
#cp configlocalEXAMPLE.cmd configlocal.cmd | |||
nano configlocal.cmd | |||
/pack.sh | |||
= General Info = | |||
== Installing Ports == | |||
This is not needed for Exodus but it is useful to install unix-like tools on mac | |||
#http://www.macports.org/install.php | #http://www.macports.org/install.php | ||
Line 40: | Line 107: | ||
sudo port -v selfupdate | sudo port -v selfupdate | ||
sudo port install | sudo port install <put your favourite packages> | ||
== Dependencies == | |||
otool -L /usr/local/lib/libexodus*.dylib | |||
<pre> | |||
/usr/local/lib/libexodus-11.5.0.dylib: | |||
/usr/local/lib/libexodus-11.5.0.dylib (compatibility version 1.0.0, current version 1.0.0) | |||
libpq.5.dylib (compatibility version 5.0.0, current version 5.3.0) | |||
libboost_date_time.dylib (compatibility version 0.0.0, current version 0.0.0) | |||
libboost_filesystem.dylib (compatibility version 0.0.0, current version 0.0.0) | |||
libboost_thread.dylib (compatibility version 0.0.0, current version 0.0.0) | |||
libboost_regex.dylib (compatibility version 0.0.0, current version 0.0.0) | |||
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) | |||
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 103.0.0) | |||
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0) | |||
</pre> | |||
otool -L /usr/local/lib/libboost_*.dylib | |||
<pre> | |||
libboost_date_time.dylib: | |||
libboost_date_time.dylib (compatibility version 0.0.0, current version 0.0.0) | |||
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) | |||
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0) | |||
libboost_filesystem.dylib: | |||
libboost_filesystem.dylib (compatibility version 0.0.0, current version 0.0.0) | |||
libboost_system.dylib (compatibility version 0.0.0, current version 0.0.0) | |||
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) | |||
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0) | |||
libboost_regex.dylib: | |||
libboost_regex.dylib (compatibility version 0.0.0, current version 0.0.0) | |||
libicui18n.48.dylib (compatibility version 48.0.0, current version 48.0.0) | |||
../lib/libicudata.48.0.dylib (compatibility version 48.0.0, current version 48.0.0) | |||
libicuuc.48.dylib (compatibility version 48.0.0, current version 48.0.0) | |||
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) | |||
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0) | |||
libboost_system.dylib: | |||
libboost_system.dylib (compatibility version 0.0.0, current version 0.0.0) | |||
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) | |||
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0) | |||
libboost_thread.dylib: | |||
libboost_thread.dylib (compatibility version 0.0.0, current version 0.0.0) | |||
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) | |||
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0) | |||
</pre> | |||
== Uninstalling == | |||
<pre> | |||
#!/bin/bash | |||
#ICU | |||
./ | pushd /usr/local | ||
sudo rm -rf include/unicode | |||
sudo | sudo rm -rf include/layout | ||
sudo rm -f bin/derb | |||
sudo rm -f bin/genbrk | |||
sudo rm -f bin/gencfu | |||
sudo rm -f bin/gencnval | |||
sudo rm -f bin/genctd | |||
sudo rm -f bin/genrb | |||
sudo rm -f bin/icu-config | |||
sudo rm -f bin/icuinfo | |||
sudo rm -f bin/makeconv | |||
sudo rm -f bin/uconv | |||
sudo rm -f lib/libicu* | |||
sudo rm -rf lib/icu | |||
sudo rm -f lib/pkgconfig/icu*.pc | |||
sudo rm -rf share/icu | |||
sudo rm -f share/man/man1/icu-config.1 | |||
sudo rm -f share/man/man8/icupkg.8 | |||
sudo rm -f sbin/icupkg | |||
find . | grep icu | |||
popd | |||
#Boost | |||
pushd /usr/local | |||
sudo rm -rf include/boost | |||
sudo rm -f lib/libboost* | |||
sudo rm -f pkgconfig/boost*.pc | |||
find . | grep boost | |||
popd | |||
#Exodus | |||
exodus | pushd /usr/local | ||
sudo rm -rf include/exodus* | |||
sudo rm -f lib/libexodus* | |||
sudo rm -f lib/pkgconfig/exodus*.pc | |||
sudo rm -f bin/exodus | |||
sudo rm -f bin/configexodus | |||
find . | grep exodus | |||
popd | |||
</pre> |
Latest revision as of 00:38, 6 June 2011
Building Exodus on Mac is similar to building on Linux.
This build was performed on OSX 10.6.4 (Snow Leopard) on Macbook Pro
Installing C++ compiler
- Insert Mac OSX Install DVD
- Open Optional Installs folder
- Open Xcode.mpkg
- Follow instructions
- IMPORTANT: Check ALL options including Mac OSX 10.4 Support
The XCODE package includes subversion and curl
Installing Postgres
This is Postgres 9.0.1 but you can use any version back to 8.1.0
http://www.postgresql.org/download/macosx
http://www.enterprisedb.com/products/pgdownload.do#osx
https://www.enterprisedb.com/getfile.jsp?fileid=1517
Once downloaded, just do a standard install and remember the admin user password.
Building ICU, Boost and Exodus
Edit in the following script, or just cut and paste it into your bash command prompt.
cd ~ nano installexodus.sh chmod +x installexodus.sh ./installexodus.sh
The latest version of this script is at http://code.google.com/p/exodusdb/source/browse/trunk/installexodus.sh
#!/bin/bash echo 1. Build and install ICU cd ~ #svn co http://source.icu-project.org/repos/icu/icu/tags/release-4-8/ icu rm icu4c-4_8-src.tgz curl -L -O http://download.icu-project.org/files/icu4c/4.8/icu4c-4_8-src.tgz | tee icu4c-4_8-src.tgz | tar xz cd icu/source ./configure --enable-extras=no \ --enable-extras=no \ --enable-icuio=no \ --enable-layout=no \ --enable-tests=no \ --enable-samples=no make clean make sudo make install echo 2. Build and install Boost cd ~ rm -f boost_1_46_1.tar.gz #wget http://sourceforge.net/projects/boost/files/boost/1.46.1/boost_1_46_1.tar.gz curl -L -O http://sourceforge.net/projects/boost/files/boost/1.46.1/boost_1_46_1.tar.gz | tee boost_1_46_1.tar.gz | tar xz cd boost_1_46_1 #bjam should say "has_icu builds: yes" otherwise check your icu installation above ./bootstrap.sh sudo ./bjam --with-date_time --with-filesystem --with-regex --with-system --with-thread install link=shared -a echo 3. Build and install Exodus export PATH=/Library/PostgreSQL/9.0/bin/:$PATH #see XCODE's Cross-Development Programming Guide:Configuring a Makefile-Based Project #export MACOSX_DEPLOYMENT_TARGET=10.4 cd ~ svn co HTTPS://exodusdb.googlecode.com/svn/trunk/ exodus cd ~/exodus #./configure --with-sysroot=/Developer/SDKs/MacOSX10.4.0.sdk ./configure make clean #in case half-built with wrong boost libs make sudo make install
Packaging Exodus
You need Bitrock http://installbuilder.bitrock.com/installbuilder-enterprise-7.2.0-osx-installer.app.zip
cd ~exodus #cp configlocalEXAMPLE.cmd configlocal.cmd nano configlocal.cmd
/pack.sh
General Info
Installing Ports
This is not needed for Exodus but it is useful to install unix-like tools on mac
- http://www.macports.org/install.php
- http://distfiles.macports.org/MacPorts/MacPorts-1.9.1-10.6-SnowLeopard.dmg
At the console command prompt
sudo port -v selfupdate sudo port install <put your favourite packages>
Dependencies
otool -L /usr/local/lib/libexodus*.dylib
/usr/local/lib/libexodus-11.5.0.dylib: /usr/local/lib/libexodus-11.5.0.dylib (compatibility version 1.0.0, current version 1.0.0) libpq.5.dylib (compatibility version 5.0.0, current version 5.3.0) libboost_date_time.dylib (compatibility version 0.0.0, current version 0.0.0) libboost_filesystem.dylib (compatibility version 0.0.0, current version 0.0.0) libboost_thread.dylib (compatibility version 0.0.0, current version 0.0.0) libboost_regex.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 103.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0)
otool -L /usr/local/lib/libboost_*.dylib
libboost_date_time.dylib: libboost_date_time.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0) libboost_filesystem.dylib: libboost_filesystem.dylib (compatibility version 0.0.0, current version 0.0.0) libboost_system.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0) libboost_regex.dylib: libboost_regex.dylib (compatibility version 0.0.0, current version 0.0.0) libicui18n.48.dylib (compatibility version 48.0.0, current version 48.0.0) ../lib/libicudata.48.0.dylib (compatibility version 48.0.0, current version 48.0.0) libicuuc.48.dylib (compatibility version 48.0.0, current version 48.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0) libboost_system.dylib: libboost_system.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0) libboost_thread.dylib: libboost_thread.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 123.0.0)
Uninstalling
#!/bin/bash #ICU pushd /usr/local sudo rm -rf include/unicode sudo rm -rf include/layout sudo rm -f bin/derb sudo rm -f bin/genbrk sudo rm -f bin/gencfu sudo rm -f bin/gencnval sudo rm -f bin/genctd sudo rm -f bin/genrb sudo rm -f bin/icu-config sudo rm -f bin/icuinfo sudo rm -f bin/makeconv sudo rm -f bin/uconv sudo rm -f lib/libicu* sudo rm -rf lib/icu sudo rm -f lib/pkgconfig/icu*.pc sudo rm -rf share/icu sudo rm -f share/man/man1/icu-config.1 sudo rm -f share/man/man8/icupkg.8 sudo rm -f sbin/icupkg find . | grep icu popd #Boost pushd /usr/local sudo rm -rf include/boost sudo rm -f lib/libboost* sudo rm -f pkgconfig/boost*.pc find . | grep boost popd #Exodus pushd /usr/local sudo rm -rf include/exodus* sudo rm -f lib/libexodus* sudo rm -f lib/pkgconfig/exodus*.pc sudo rm -f bin/exodus sudo rm -f bin/configexodus find . | grep exodus popd