[Top][All Lists]
[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.
- Re: [Enigma-devel] configure.ac SDL_ttf magic, (continued)
- Re: [Enigma-devel] configure.ac SDL_ttf magic, Sidney Markowitz, 2006/05/01
- Re: [Enigma-devel] configure.ac SDL_ttf magic, Sidney Markowitz, 2006/05/01
- Re: [Enigma-devel] configure.ac SDL_ttf magic, Sidney Markowitz, 2006/05/01
- [Enigma-devel] Patch to build Mac OS X disk image target, Sidney Markowitz, 2006/05/01
- Re: [Enigma-devel] Patch to build Mac OS X disk image target, Sidney Markowitz, 2006/05/02
- Re: [Enigma-devel] Patch to build Mac OS X disk image target, Ronald Lamprecht, 2006/05/02
- Re: [Enigma-devel] Patch to build Mac OS X disk image target, Sidney Markowitz, 2006/05/02
- Re: [Enigma-devel] Patch to build Mac OS X disk image target, Sidney Markowitz, 2006/05/02
- Re: [Enigma-devel] Patch to build Mac OS X disk image target, Johannes Fortmann, 2006/05/03
- Re: [Enigma-devel] Patch to build Mac OS X disk image target, Sidney Markowitz, 2006/05/03
- Re: [Enigma-devel] Patch to build Mac OS X disk image target,
Sidney Markowitz <=
- Re: [Enigma-devel] Patch to build Mac OS X disk image target, Daniel Heck, 2006/05/04