Re: goo on Mac OS X

Rob Myers <[email protected]> Fri, 7 Mar 2003 08:53:38 +0000
Newsgroups gmane.comp.lang.goo.general
Message-ID <[email protected]>
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% Get dlcompat installed: http://www.opendarwin.org/projects/dlcompat/

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

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

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

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

(I%grt.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