diff options
| author | Simon Tatham <anakin@pobox.com> | 2008-03-11 17:59:38 +0000 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2008-03-11 17:59:38 +0000 |
| commit | 7a3549db51e7314ce5e07a6a4a3f6599bcf7c242 (patch) | |
| tree | 52d46fb36f83a77d858d164d86e0fc2ff20a9713 /Recipe | |
| parent | ace2c7dafdc520b5e7ce34c6700e38c91fe219c9 (diff) | |
| download | puzzles-7a3549db51e7314ce5e07a6a4a3f6599bcf7c242.zip puzzles-7a3549db51e7314ce5e07a6a4a3f6599bcf7c242.tar.gz puzzles-7a3549db51e7314ce5e07a6a4a3f6599bcf7c242.tar.bz2 puzzles-7a3549db51e7314ce5e07a6a4a3f6599bcf7c242.tar.xz | |
Update the OS X Puzzles makefile so that it builds on Leopard and
generates PPC/Intel dual-architecture binaries.
This turns out not to be too painful: you compile and link your
programs using `gcc -arch ppc' or `gcc -arch i386', then you use a
command of the form `lipo -create ppc-binary i386-binary -output
binary' to construct a universal binary. It works equally well on
command-line standalone executable files and the executables within
application directories. Also added the -mmacosx-version-min option,
since otherwise the OS X build tools appear to default to building
binaries which will crash (without anything resembling a
comprehensible error message) on any earlier release.
The handling of version.o in this checkin is somewhat grotty. I'd
prefer a method more cleverly intertwingled with mkfiles.pl so I
didn't have to maintain the OS X architecture list in both
mkfiles.pl and Recipe. (Not that I anticipate Apple switching
architectures again in the immediate future, but it's the principle
of the thing.)
[originally from svn r7916]
Diffstat (limited to 'Recipe')
| -rw-r--r-- | Recipe | 17 |
1 files changed, 13 insertions, 4 deletions
@@ -119,14 +119,23 @@ FORCE: # md5sum readily available. We do, however, have `md5 -r' which # generates _nearly_ the same output, but it has no check function. !begin osx -version.o: FORCE; +version.ppc.o: FORCE; FORCE: if test -z "$(VER)" && test -f manifest && (md5 -r `awk '{print $$2}' manifest` | diff -w manifest -); then \ - $(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) `cat version.def` -c version.c; \ + $(CC) -arch ppc $(COMPAT) $(XFLAGS) $(CFLAGS) `cat version.def` -c version.c -o version.ppc.o; \ elif test -z "$(VER)" && test -d .svn && svnversion . >/dev/null 2>&1; then \ - $(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) "-DREVISION=`svnversion .`" -c version.c; \ + $(CC) -arch ppc $(COMPAT) $(XFLAGS) $(CFLAGS) "-DREVISION=`svnversion .`" -c version.c -o version.ppc.o; \ else \ - $(CC) $(COMPAT) $(XFLAGS) $(CFLAGS) $(VER) -c version.c; \ + $(CC) -arch ppc $(COMPAT) $(XFLAGS) $(CFLAGS) $(VER) -c version.c -o version.ppc.o; \ + fi +version.i386.o: FORCE2; +FORCE2: + if test -z "$(VER)" && test -f manifest && (md5 -r `awk '{print $$2}' manifest` | diff -w manifest -); then \ + $(CC) -arch i386 $(COMPAT) $(XFLAGS) $(CFLAGS) `cat version.def` -c version.c -o version.i386.o; \ + elif test -z "$(VER)" && test -d .svn && svnversion . >/dev/null 2>&1; then \ + $(CC) -arch i386 $(COMPAT) $(XFLAGS) $(CFLAGS) "-DREVISION=`svnversion .`" -c version.c -o version.i386.o; \ + else \ + $(CC) -arch i386 $(COMPAT) $(XFLAGS) $(CFLAGS) $(VER) -c version.c -o version.i386.o; \ fi !end !specialobj osx version |