os-tips:osx10.8

This is an old revision of the document!


This guide covers Therion installation on OS X from source.

We will need

  • Xcode - install from AppStore
  • Command Line Tools - install using Install button in Xcode → Preferences → Downloads → Command Line Tools
  • Terminal - part of OS X installation
  • Some therion dependecies will be installed using Homebrew package manager.

Homebrew is package manager for OS X - Wikipedia

In comparison to other package managers like Fink or MacPorts Homebrew works hard to avoid package duplication - Homebrew compiles its packages against libraries built into OS X.

Install Homebrew - see instructions on http://mxcl.github.com/homebrew/

Install MacTeX package from http://www.tug.org/mactex/

Run following commands in Terminal:

brew update
brew doctor

follow (if any) instructions in results of “doctor” command

brew install lcdf-typetools
brew install wxmac
brew install freetype
brew install vtk
brew install --overwrite imagemagick
brew doctor 

“–overwrite” parameter you may use if problems with linking (there is another installation, not the brew's). ImageMagick is such case, it is installed by MacOSX Xcode installation, but evidently not all necessary files.

Download therion source code from http://therion.speleo.sk/download.php

Extract tarball to ~/Downloads

In Terminal run:

cd ~/Downloads/therion
make config-macosx
make
cd loch
make
cd ..
make install

Copy ~/Downloads/therion/loch/loch.app to Applications folder

In Terminal run:

sudo mkdir /usr/X11/include
sudo ln -s /System/Library/Frameworks/OpenGL.framework/Headers /usr/X11/include/GL

Now we need to customize several files

Edit ~/Downloads/therion/Makefile

replace line 65:

POBJECTS = extern/getopt.o extern/getopt1.o extern/getline.o

with:

POBJECTS = extern/getopt.o extern/getopt1.o

Edit ~/Downloads/therion/loch/lxFile.cxx

replace section starting on line 12:

#if defined LXWIN32 || defined LXMACOSX || defined THWIN32 || defined THMACOSX
#include "getline.h"
#endif

with:

#if defined LXWIN32 || defined THWIN32
#include "getline.h"
#endif

Edit ~/Downloads/therion/loch/Makefile

replace section starting on line 9 with:

VTKVERSION = 5.10
#VTKVERSION = $(shell tclsh getvtkver.tcl version)
VTKPATH = /usr/local/include/vtk-$(VTKVERSION)
#VTKPATH = $(shell tclsh getvtkver.tcl incpath)
VTKLIBPATH = /usr/local/lib/vtk-$(VTKVERSION)
#VTKLIBPATH = $(shell tclsh getvtkver.tcl libpath)
VTKLIBS = -lvtkHybrid -lvtkImaging -lvtkIO -lvtkGraphics -lvtkFiltering -lvtkCommon -lvtkjpeg -lvtkpng -lvtkzlib -lvtksys -lfreetype
POSTMAKE =
STRIPFLAG = -s

replace section starting on line 54 with:

# PLATFORM MACOSX
CXX = c++
CC = cc
POBJECTS =
CXXPFLAGS = -W -Wall -DLXMACOSX $(shell wx-config --cxxflags) -I$(VTKPATH) -Wno-deprecated -I/usr/X11R6/include $(shell freetype-config --cflags)
CCPFLAGS = -W -Wall -DLXMACOSX $(shell wx-config --cflags) -I/usr/X11R6/include
LXLIBDIR = 
PLIBS = -lz -L/usr/X11R6/lib $(shell wx-config --libs --gl-libs) -L$(VTKLIBPATH) $(VTKLIBS)
POSTMAKE = cp -f ./loch ./loch.app/Contents/MacOS
STRIPFLAG =

Edit ~/Downloads/therion/loch/lxOGLFT.cxx

Replace line 474:

bbox = measure( s.GetChar( 0 ) );

with:

bbox = measure((const wxChar) s.GetChar( 0 ) );

Replace line 478:

BBox char_bbox = measure( s.GetChar( i ) );

with:

BBox char_bbox = measure((const wxChar) s.GetChar( i ) );

Replace line 657:

compile( s.GetChar( i ) );

with:

compile((const wxChar) s.GetChar( i ) );

Replace line 780:

draw( s.GetChar( i ) );

with:

draw((const wxChar) s.GetChar( i ) );

Edit ~/Downloads/therion/loch/lxSTree.cxx

Replace line 55:

: wxMiniFrame(parent, wxID_ANY, _(" Selection"),wxDefaultPosition, wxDefaultSize, (wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxRESIZE_BOX | wxRESIZE_BORDER) & (~(wxMINIMIZE_BOX | wxMAXIMIZE_BOX)))

with:

: wxMiniFrame(parent, wxID_ANY, _(" Selection"),wxDefaultPosition, wxDefaultSize, (wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxRESIZE_BORDER) & (~(wxMINIMIZE_BOX | wxMAXIMIZE_BOX)))
  • os-tips/osx10.8.1590081559.txt.gz
  • Last modified: 4 years ago
  • by sluka