[p4ruby] p4ruby on Mac Snow Leopard

Tony Smith tony at smee.org
Thu Mar 25 02:47:52 PDT 2010

Hi Andy,

The macosx version of the API requires the Carbon framework, but the 
darwin version doesn't (the macosx version is for building GUI clients 
with, while the darwin build is for non-GUI stuff).  The errors you're 
getting are to do with architecture support though: ruby wants to link 
for more than one architecture, but the P4API you're using only supports 
x86 (not x86_64).

I recommend using the 'darwin8u' builds on Mac as they are universal 
binaries suitable for use on PPC, x86 and x86_64 platforms. Try with 
this build and see if it works any better:



Andy Koch wrote:
> Hi Tony,
> Trying install p4ruby on Mac Snow Leopard (10.6.2) and am having some compilation issues.
> I'm using p4ruby and p4api from the 09.1 dir of perforce.com
> Wondering if this bit "-framework Carbon" is the problem?  Does this need to change to Cocoa?
> please advise & thank you
> here is my console output...
> [~/src/p4ruby-2009.1]
> andy at pdd-andy-mbp->ruby p4conf.rb --apidir /Users/andy/src/p4api-2009.1.211694/
> Starting to configure P4/Ruby for building
> Found 2009.1 Perforce API in /Users/andy/src/p4api-2009.1.211694
> P4/Ruby Configuration Summary
> -----------------------------
> Using Perforce API Version: 2009.1
> API headers and libs from : /Users/andy/src/p4api-2009.1.211694
> OS name                   : DARWIN
> OS version                : 10
> Platform                  : X86
> CFLAGS                    : -g -O2  -pipe -fno-common $(cflags) -I/Users/andy/src/p4api-2009.1.211694/include/p4 -DOS_DARWIN -DOS_DARWIN10 -DOS_DARWIN10X86 -DCASE_INSENSITIVE 
> LIBPATH                   : /Users/andy/src/p4api-2009.1.211694/lib
> libs                      : -lclient -lrpc -lsupp 
> Creating extconf.h
> creating Makefile
> [~/src/p4ruby-2009.1]
> andy at pdd-andy-mbp->make
> g++ -bundle -o P4.bundle clientuserruby.o p4.o p4clientapi.o p4mapmaker.o p4mergedata.o p4result.o p4specdata.o specmgr.o -L/Users/andy/src/p4api-2009.1.211694/lib -L. -L/Users/andy/.rvm/rubies/ree-1.8.7-2010.01/lib -L.  -framework Carbon    -lclient -lrpc -lsupp  -ldl -lobjc  
> ld: warning: in /Users/andy/src/p4api-2009.1.211694/lib/libclient.a, missing required architecture x86_64 in file
> ld: warning: in /Users/andy/src/p4api-2009.1.211694/lib/librpc.a, missing required architecture x86_64 in file
> ld: warning: in /Users/andy/src/p4api-2009.1.211694/lib/libsupp.a, missing required architecture x86_64 in file
> Undefined symbols:
>   "FileSys::Compare(FileSys*, Error*)", referenced from:
>       ClientUserRuby::Diff(FileSys*, FileSys*, int, char*, Error*)in clientuserruby.o
>   "Spec::Count()", referenced from:
>       SpecMgr::SpecFields(StrPtr*)      in specmgr.o
>   "_rb_str_new", referenced from:
> << snip - there is 1000+ additional compiler dump >>

More information about the p4ruby mailing list