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

Re: goo on Mac OS X



On Friday, March 7, 2003, at 02:14 AM, Raffael Cavallaro wrote:

I noticed from the goo mailing list that you were trying to get it to run under Mac OS X. If you've managed to succeeed, could you share your experience with me. Specifically, instructions on what one needs to do to get it to install properly assuming one has the latest developer tools installed.

I've got goo building and running but (use tests) (test alll) fails because it's having problems calling out to the c compiler. I'm working on this at the moment. Here's the changes I've had to make so far.

- Rob.

BUILDING GOO on X

(I%(B Get dlcompat installed: http://www.opendarwin.org/projects/dlcompat/

(I%(B c/Makefile.in:
CFLAGS = $(CPPFLAGS) -g -O2 -dynamic
LDFLAGS += -Wl,-L/usr/local/lib,-ldl

(I%(Bsrc/Makefile.in
install: all
$(top_srcdir)/mkinstalldirs $(GOO_MODS)
find . -name (J\(B*.goo -exec perl -e"system 'mkinstalldirs ' . ('$(GOO_MODS)/{}' =~ /(.+)(J\(B/[^(J\(B/]+/);" (J\(B;
find . -name (J\(B*.goo -exec $(INSTALL_DATA) {} $(GOO_MODS)/{} (J\(B;

(I%(Bc/makefile.in
ifeq ($(build_gc), yes)
cd $(top_srcdir)/gc/include/ && find . -name (J\(B*.h -exec perl -e"system 'mkinstalldirs ' . ('$(GOO_LIB)/gc/{}' =~ /(.+)(J\(B/[^(J\(B/]+/);" (J\(B;
cd $(top_srcdir)/gc/include/ && find . -name (J\(B*.h -exec $(INSTALL_DATA) {} $(GOO_LIB)/gc/{} (J\(B;
endif

(I%(Bsrc/goo/%system.c
(I%(Bc/g2c/goo/%system.c
char *v[] = {"cc", /*"-shared"*/, "-bundle", "-g", "-O", "-fPIC", buf, "-o", sofile, cfile, NULL};

(I%(Bgrt.h:
#if defined()
#define CALLN(args...) _CALLN(regs, args)
#define XCALL0(args...) _CALL0(REGSREF(), args)
#define XCALL1(args...) _CALL1(REGSREF(), args)
#define XCALL2(args...) _CALL2(REGSREF(), args)
#define XCALL3(args...) _CALL3(REGSREF(), args)
#define XCALL4(args...) _CALL4(REGSREF(), args)
#define XCALL5(args...) _CALL5(REGSREF(), args)
#define XCALLN(args...) _CALLN(REGSREF(), args)
#define XXCALL0(args...) _CALL0(REGSREF(), args)
#define XXCALL1(args...) _CALL1(REGSREF(), args)
#define XXCALL2(args...) _CALL2(REGSREF(), args)
#define XXCALL3(args...) _CALL3(REGSREF(), args)
#define XXCALL4(args...) _CALL4(REGSREF(), args)
#define XXCALL5(args...) _CALL5(REGSREF(), args)
#define XXCALLN(args...) _CALLN(REGSREF(), args)
#elif ! defined(_MSC_VER)
// Original headers