enigma-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Enigma-devel] Patch to build Mac OS X disk image target


From: Sidney Markowitz
Subject: Re: [Enigma-devel] Patch to build Mac OS X disk image target
Date: Thu, 04 May 2006 12:14:01 +1200
User-agent: Thunderbird 1.5.0.2 (Macintosh/20060308)

Attached is my next draft of the MacOS X build instructions file.

 -- Sidney Markowitz
    http://www.sidney.com

Building Enigma under MacOS X 10.4 and 10.3.9

Overview:
---------

Enigma is built from the command line using make. There is a make
target that will create a Mac OS application bundle in a compressed
disk image file, enigma.dmg. That file can be copied to a Mac without
any special runtime environment having to be installed, and the Enigma
app simply dropped into a folder to be ready to run.

You do need some other packages installed in order to build Enigma on
your MacOS X system.

Building under MacOS 10.4:
-------------------------

The easiest way to install what you need under MacOS 10.4 is to use
the Fink environment and use it to install SDL, SDL_mixer, SDL_image,
SDL_ttf, and Xerces-c. DarwinPorts provides a similar environment and
set of packages as Fink, but as of this writing we have not tried it
for building Enigma. Neither have we tried the older version of Fink
that runs on 10.3.9.

Note that you may need to follow step 6(a) below for building the
static library libxerces-c.a even after installing Xerces-c from Fink
or DarwinPorts. The default distribution of Xerces-c does not as of
this moment provide for building a static library under MacOS.

If you do use Fink or DarwinPorts, as long as the required additional
libraries are consistently placed in the same directory, e.g.,
/usr/fink/lib, then the Enigma build scripts should work. There will
be a problem if you install, for example, SDL in /usr/fink/lib and
Xerces-c in /usr/local/lib.

Once the Fink packages are installed, follow step 7 below to build
Enigma.

Building under 10.3.9, or under 10.4 without Fink:
--------------------------------------------------

Here are steps I used to build Enigma under MacOS 10.3.9 that already
had X-11 installed (I use OpenOffice, so whatever that needs was there
already), using svn trunk. I can't say for sure if having X-11 installed
made any difference. I mention it in case that is a necessary prerequisite.

1. Very important for building a number of unix projects in 10.3.9 is
   to downgrade QuickTime 7.0.4 to version 7.0.1 using
   
http://www.apple.com/support/downloads/quicktime701reinstallerforquicktime704.html

   The QuickTime 7.0.4 upgrade was pushed out as part of a 10.3.9
   software update. It installs a version of libstdc++ that was built
   with a newer version of gcc than the 3.3 that ships with MacOS
   10.3.9, resulting in various linker errors when trying to build
   many projects ported from unix that used to build fine. The
   downgrade fixes that.
   
   The downgrade is not necessary to build in MacOS 10.4.

   If you continue to get mysterious linker errors under 10.3.9 you
   can also try reinstalling xcode 1.5. Some people said it restored
   some files messed up by a software update. I tried it at one point
   earlier before I found out about the QuickTime problem and it
   didn't by itself help, so I can't say for sure if it that really is
   also necessary.

2. I earlier installed, for some other projects, gettext, freetype,
   and libpng, so I can't say for sure if any of the other required
   libraries requires one or more of them. If you see errors about
   anything like that missing when you try the next steps, download the
   source of whichever you need from its project web site, and use
     ./configure ; make ; sudo make install

3. (10.3.9 only) Download latest versions of autoconf (2.59) and automake
   (1.9.6). The versions included in 10.3.9 are too old. Build and install
   them from sources using
     ./configure ; make ; sudo make install 

4. Install binary packages of SDL, SDL-devel, SDL_mixer, SDL_image, and
   SDL_ttf, available from http://libsdl.org in the links under
   Download. I used SDL 1.2, the current stable build at the time,
   downloading http://www.libsdl.org/release/SDL-1.2.9.dmg and
   http://www.libsdl.org/release/SDL-devel-1.2.9.pkg.tar.gz and found
   the other packages at the Libraries link under Downloads:

   http://www.libsdl.org/projects/SDL_mixer
   http://www.libsdl.org/projects/SDL_image
   http://www.libsdl.org/projects/SDL_ttf

   In each case download both the source and the MacOSX binary
   package. For this step install the binary packages into the
   /Library directory (which is the default).

5. Download the source tarballs (see previous step) of SDL, SDL_mixer,
   SDL_image, and SDL_ttf. Unpack them somewhere convenient, then
   build and install each of them, starting with SDL.

   All of them installed fine using
     ./configure ; make ; sudo make install

6. Download the source tarball of xerces-c from
      http://xml.apache.org/dist/xerces-c/stable/
   I got version 2.7.0 and unpacked it in /usr/local/src. Change
   references to those in the following commands to match your
   circumstances:

   export XERCESCROOT=/usr/local/src/xerces-c-src_2_7_0
   cd /usr/local/src/xerces-c-src_2_7_0/src/xercesc
   ./configure
   make
   sudo make install

6(a) Then I had to do the following important step, which create a
   static link library, as the MacOSX version of the xerces-c 2.7
   build does not do that. Put the following in an executable file
   in the $XERCESCROOT/src/xercesc directory, cd to that directory
   and run it.

   #!/bin/sh
   make -n XML_LIB_DIR=$XERCESCROOT/lib/dummy |
     grep 'c++ .*\.dylib' |
     tr \  \\n |
     grep '\.o$' |
     ( cd ../../obj ; xargs ar rcs $XERCESCROOT/lib/libxerces-c.a )
   
  Then

    sudo cp $XERCESCROOT/lib/libxerces-c.a /usr/local/lib/
    sudo ranlib /usr/local/lib/libxerces-c.a

7. Once all the above are all installed, build a Mac
   application bundle from the command line by cd to the root directory of
   the Enigma source tree (i.e., the directory above src) and running the
   commands:

     ./autogen.sh
     ./configure
     make
     make macapp

  The first line is only necessary if you are starting from the svn
  sources. If you downloaded a release tarball, it should already have
  had autogen.sh run and you can start with ./configure.

  The final line builds a Mac OS X application bundle called
  Enigma.app and a compressed disk image containing it called
  enigma.dmg, both in the etc/ directory under the source tree root.

 You should be able to copy the enigma.dmg file to a Mac running
 10.3.9 that has not had the various libraries required for building
 Enigma installed, open the disk image, and drop the Enigma app into
 any disk folder, e.g., Applications, to install Enigma.

I have tested this only by building under 10.3.9 and running on
10.3.9. Someone should update this file once they have tried building
on 10.4 and tested the resulting application on both 10.3.9 and 10.4.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]