0.9.4.68:
[sbcl.git] / src / runtime / Config.ppc-darwin
index 7f66fd4..2dfdbc9 100644 (file)
@@ -1,19 +1,55 @@
-# -*- makefile -*-
-CFLAGS =  -ggdb -Wall -O3 -traditional-cpp
-OS_SRC = bsd-os.c os-common.c ppc-darwin-os.c
-OS_LIBS = -lSystem -lc -lm /sw/lib/libdl.a
+# -*- makefile -*- for the C-level run-time support for SBCL
+
+# This software is part of the SBCL system. See the README file for
+# more information.
+#
+# This software is derived from the CMU CL system, which was
+# written at Carnegie Mellon University and released into the
+# public domain. The software is in the public domain and is
+# provided with absolutely no warranty. See the COPYING and CREDITS
+# files for more information.
+
+CFLAGS = -g -Wall -O2 -fdollars-in-identifiers
+OS_SRC = bsd-os.c ppc-darwin-os.c ppc-darwin-dlshim.c ppc-darwin-langinfo.c
+OS_LIBS = -lSystem -lc
+OS_OBJS = ppc-darwin-rospace.o
+
+CC = gcc
 
 ASSEM_SRC = ppc-assem.S ldso-stubs.S
 ARCH_SRC = ppc-arch.c
 
-CPP = cpp -traditional-cpp
+CPPFLAGS += -no-cpp-precomp
+
+# KLUDGE: in OS X 10.3, Apple started putting the heap right where we
+# expect our read-only space mapped. This hack causes the linker to
+# place a zero-fill-on-demand segment in the same place and size as
+# read-only-space, which is the only thing capable of keeping malloc
+# out of this range.
+LINKFLAGS += -dynamic `cat ppc-darwin-link-flags` -twolevel_namespace -bind_at_load
+
+GC_SRC = cheneygc.c
+
+OS_CLEAN_FILES += ppc-darwin-mkrospace ppc-darwin-fix-rospace ppc-darwin-link-flags
+
+ppc-darwin-mkrospace: ppc-darwin-mkrospace.c
+       $(CC) -g -Wall -pedantic -o $@ $<
+
+ppc-darwin-fix-rospace: ppc-darwin-fix-rospace.c
+       $(CC) -g -Wall -pedantic -o $@ $<
+
+ppc-darwin-rospace.o ppc-darwin-link-flags: ppc-darwin-mkrospace
+       ./ppc-darwin-mkrospace > ppc-darwin-link-flags
 
-# Until sbcl-0.6.7.3, we used "OS_LINK_FLAGS=-static" here, which
-# worked fine for most things, but LOAD-FOREIGN & friends require
-# dlopen() etc., which in turn depend on dynamic linking of the
-# runtime.
-OS_LINK_FLAGS = -dynamic -L/sw/lib
+.PHONY: after-grovel-headers
 
-GC_SRC= cheneygc.c
+# Fix the sbcl runtime to avoid Panther placing the heap where
+# it wants read only space (in the first 32 megabytes, where it
+# can be absolute-branched to with BA.)  Must be done after 
+# grovel-headers, because Apple's nm is broken.
+after-grovel-headers: ppc-darwin-fix-rospace
+       ./ppc-darwin-fix-rospace
 
-CFLAGS=-DDARWIN -Dppc -g -traditional-cpp
+# Fortunatly make-target-1.sh does a make clean all the time.
+# Otherwise we would have to make sure that sbcl gets rebuilt without
+# the readonlyspace hack before groveling headers again.