Difference between revisions of "Development:Building:Building Dependencies from Source"

From Camino Wiki
Jump to navigation Jump to search
(→‎<code>yasm</code>: gecko2 requires 1.1 now)
(clean up some notes)
Line 35: Line 35:
  
 
<code>libIDL-0.8</code> ends up having three dependencies beyond software installed by Xcode, so we will build and install from the dependencies upward.
 
<code>libIDL-0.8</code> ends up having three dependencies beyond software installed by Xcode, so we will build and install from the dependencies upward.
 +
 +
On Mac OS X 10.6, <code>libIDL</code> must be 32-bit (or 32/64-bit Universal) while autotools will by default, build 64-bit binaries.  As a result, additional flags must be passed to <code>configure</code> for <code>libIDL</code> '''and''' all of its dependencies. ([http://code.google.com/p/macfuse/source/browse/trunk/core/macfuse_buildtool.sh#1357 This section] of the MacFUSE build script has useful information for compiling <code>libIDL</code>’s <code>glib2</code> dependencies as Universal Binaries.)
  
 
====<code>pkg-config</code>====
 
====<code>pkg-config</code>====
Line 49: Line 51:
 
<code>gettext</code> has no external dependencies.
 
<code>gettext</code> has no external dependencies.
  
# Download the latest source tarball from and unpack
+
# Download the latest source tarball from [ftp://ftp.gnu.org/gnu/gettext/ ftp://ftp.gnu.org/gnu/gettext/] and unpack.
 +
# <code>cd</code> to the unpacked directory.
 +
# <code>./configure</code>
 +
# <code>make clean all; sudo make install</code>
 +
 
 +
====<code>glib2</code>====
 +
 
 +
<code>glib2</code> depends on both <code>pkg-config</code> and <code>gettext</code>, which have just been installed.
 +
 
 +
# Download the latest source tarball from [ftp://ftp.gtk.org/pub/glib/ ftp://ftp.gtk.org/pub/glib/] and unpack.
 +
# <code>cd</code> to the unpacked directory.
 +
# ''need to set CFLAGS and LDFLAGS to point to the include dir, and possibly pkg-config path…''

Revision as of 19:32, 16 March 2011

Some people prefer to build their dependencies (libIDL-0.8, autoconf-2.13) from source instead of using Fink or MacPorts and the megabytes of extra software those port systems install by default. Fortunately, it is rather trivial to build the required dependencies from source.

Dependency Tree

Building the Packages

You can install all these packages in /usr/local (where they should be picked up by your $PATH automatically). You should be very careful when building autoconf-2.13 so that you do not create an autoconf binary that will be used accidentally when scripts want the version of autoconf installed with Xcode; make sure you use the --program-suffix=213 argument.

autoconf-2.13

autoconf-2.13 has no dependencies aside from software installed with Xcode.

  1. Download the autoconf-2.13 tarball and unpack.
  2. cd to the unpacked directory.
  3. ./configure --program-suffix=213
  4. make clean all; sudo make install

yasm

yasm (required for WebM and libjpeg-turbo assembly in Gecko 2.0 and up) has no dependencies aside from software installed with Xcode.

  1. Download the yasm-1.1.0 tarball and unpack.
  2. cd to the unpacked directory.
  3. ./configure
  4. make; sudo make install

libIDL-0.8

libIDL-0.8 ends up having three dependencies beyond software installed by Xcode, so we will build and install from the dependencies upward.

On Mac OS X 10.6, libIDL must be 32-bit (or 32/64-bit Universal) while autotools will by default, build 64-bit binaries. As a result, additional flags must be passed to configure for libIDL and all of its dependencies. (This section of the MacFUSE build script has useful information for compiling libIDL’s glib2 dependencies as Universal Binaries.)

pkg-config

pkg-config has no external dependencies.

  1. Download the latest source tarball from http://pkgconfig.freedesktop.org/releases/ and unpack.
  2. cd to the unpacked directory.
  3. ./configure
  4. make clean all; sudo make install

gettext

gettext has no external dependencies.

  1. Download the latest source tarball from ftp://ftp.gnu.org/gnu/gettext/ and unpack.
  2. cd to the unpacked directory.
  3. ./configure
  4. make clean all; sudo make install

glib2

glib2 depends on both pkg-config and gettext, which have just been installed.

  1. Download the latest source tarball from ftp://ftp.gtk.org/pub/glib/ and unpack.
  2. cd to the unpacked directory.
  3. need to set CFLAGS and LDFLAGS to point to the include dir, and possibly pkg-config path…