LifeLines and Mac OS X

It is great to have a nearly maintenance-free Unix machine running at home. Many more people now have the opportunity to run LifeLines at home whereas before they had to understand an additional layer of complexity -- attempting to port LifeLines to Mac OS 8 or 9, or running a Unix system on top of Mac OS 8 or 9.

I feel like there have been some hurdles to overcome in getting LL to run on OS X, so to make it easier for everyone else (and for me later), here are some pointers.

There are paths for both those who want to compile the source code, and for those who just want a recent stable executable.

Get ncurses

One needs to obtain ncurses. This is a set of tools that facilitate box-drawing and text placement in text based windows/terminals. Look to GNU: ncurses

Fink is the easiest way to get ncurses installed. Installing the basic Fink package (details in the Fink User's Guide) includes ncurses. [Fink keeps itself neatly separated from the Unix system that comes with Mac OS X.]

If obtaining already compiled (for Mac OS X) ncurses libraries, you just need to relocate the files under the /usr/local directory. For example, the ncurses stuff contained in a 'bin' directory should go in /usr/local/bin. It is advisable to do this as root user. In fact, it's better to extract the archive as root user. Then use cp -Rp to copy the archive contents over into the /usr/local area. Experiment first with some dummy files to get comfortable with this procedure.

If you'd rather compile the source code for ncurses yourself, you should see the first paragraph below under "Notes on Compiling."

Get LifeLines

If you just want a recent copy of LifeLines to run and aren't interested in the leading edge of development, then copies for Mac OS X may be obtained at...

Note: if LifeLines was compiled with libraries located under Fink's /sw directory, then the locations of libraries such as that for 'ncurses' may be hard coded into the LifeLines program. Such a binary woud only run in a similar Fink environment. The same goes for program made in a non-fink environment ... the libraries that LifeLines depends upon needed to exist in the same locations. However, as recently as version 3.0.36 and maybe earlier, this problem appears to have been fixed.

Configuring LifeLines

There are several ways to control LifeLines functions.


The rest of this page is for people who want to get closer to the edge of development.

Notes on Compiling

If you're not the kind of person who knows how to get a C compiler up and running on a Unix machine, there is still hope.

Apple distributes a set of tools for developers that includes 'gcc', the GNU Compiler Collection. Those who purchased a copy of Mac OS X 10.2 received an extra CD containing that set of tools.

If you don't have it on a CD or want a more recent copy, then it is helpful to sign up as a developer with Apple. Just go to developer.apple.com. It's free to be a "hobbyist" or student developer. This allows you to download the Mac OS X Developer Tools. This is a bundle containing GNU C compiler, GNU make, documentation, and lots of other stuff. Installation is easy enough. At around 200 MB though, you may want to download over a connection faster than a 56k modem.

Getting gnumake

After installing Apple's Developer Tools, there will be a links to gnumake named 'make' and 'gmake' in the /usr/bin directory. So make, gnumake, and gmake will all do the same thing. Skip this section if you already have Developer Tools installed, unless you want to bump up your version of gmake for some reason.

It seems to be a convention to rename or link GNU make to "gmake". So when the instructions for making LifeLines say to type make (and that doesn't work), you can instead instead type gmake.

If it is necessary to obtain a newer copy of gmake...

gmake 3.79.1 compiled under Mac OS X 10.1.4 (not that it matters) is here gmake-3_79_1-Mac_OS_X.tar.gz.

Its source is available from http://www.gnu.org/software/make/make.html

Compiling from "disbribution" source code

If you obtain a "distribution" copy of the LifeLines source, then you won't need to run any of the autotools (discussed below). The makefiles are already generated. Simply run './configure' and 'make'.

Development Edge

Getting autoconf

Recently, compiling the repository requires "autoconf" 2.5 or later. This is fairly easy to obtain through GNU autoconf. Simply retrieve version 2.5.3 or higher (as a .tar.gz) file. Run ./configure, 'make', and 'sudo make install' (the sudo gets it done as root, but you enter your administrator password) to put the files autoconf, aclocal, autoheader, automake, and others in /usr/local/bin.

Running 'make check' takes a long time and turns up some failures, but they don't seem to be a problem for us.

You'll then want to modify your .cshrc file to make the path put /usr/local/bin before other directories. Here's a sample:

set path = (. /usr/local/bin $path ~/bin)
The ~/bin would refer to a directory where you have your own binaries or shell scripts. You could put a compiled copy of 'llines' there as well if your account is the only one that needs access to it.

Getting automake and aclocal

They are perl scripts. GNU automake is for automatic generation of 'Makefile.in' files. After downloading their 'source' they are created upon running the ./configure script in the automake source directory.

After successful creation, you can switch to root user (su command) and perform a 'make install' to put files where they needed to be. 'sudo make install' will do the same. Restart wasn't necessary, only starting up a new shell to pick up the new commands via the freshly examined directory path.

CVS

Now we can talk about the CVS. This is where you can get the most up-to-date, possibly buggy, version that programmers are actively working on. You can 'checkout' a copy or 'update' your copy of the source -- this doesn't make any changes in the repository.

[ Robert's LifeLines page | Robert's Genealogy Page ]
This page is currently at http://www.math.clemson.edu/~rsimms/genealogy/ll/Mac_OS_X.html