discuss-gnustep
[Top][All Lists]
Advanced

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

Re: Building with GNUstep make on Panther/Tiger


From: Sherm Pendley
Subject: Re: Building with GNUstep make on Panther/Tiger
Date: Wed, 15 Jun 2005 15:57:05 -0400
User-agent: Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.4.17 (Jumbo Shrimp, linux)

Andreas Höschler <ahoesch@smartsoft.de> writes:

> Any chance Frameworks, tools and apps built on Panther (using GNUstep
> make) will run on Tiger?

I'm puzzled - Why would you think there's a chance they *won't*?

> At least the apps build on Jaguar don't
> really work on Tiger which is more or less to be expected. We
> e.g. have a subclass of NSImageView in one app. If Apple modified the
> ivars on NSImageView from Jaguar to Panther/Tiger this will of course
> break everything.

I don't see why it would break anything. This ain't C++ we're talking
about - I haven't looked, but surely GCC generates calls to the runtime
functions to set/fetch ivars, instead of hard-coding offsets from the
instance pointer.

> I find it discouraging that apps aren't binary
> compatible between 10.2, 10.3 and 10.4

What are you talking about? I have apps that were built all the way back
even before 10.0 that still run just fine.

> guess Apple tries to solve this issue with xCode by creating fat
> bundles containing code for all three OS versions.

Again - what are you talking about? Xcode's SDKs don't create "fat" bundles,
they're just older versions of the libraries that you can link against as
if you were cross-compiling. If you want your app to be Jaguar (10.2)
compatible, you link it with the Jaguar SDK, and it'll run on that or any
newer version.

Just create an Xcode project that uses an SDK, save it, then build it in a
terminal with the "xcodebuild" command-line tool. That will display all of
the compiler & linker flags it's using.

> OSes. Until now we haven't been able to build anything on Tiger with
> GNUstep make.

Works fine for me, although I'm using plain old makefiles w/o the GS macros
for Mac OS X. It's just a matter of using the proper compiler & linker flags
to use the SDK headers & libraries, instead of the ones on the build system.
For me, that was:

    CFLAGS += -nostdinc -B$(SDK)/usr/include/gcc -B$(SDK)/usr/lib/gcc
    CFLAGS += -isystem$(SDK)/usr/include -F$(SDK)/System/Library/Frameworks
    LDFLAGS += -Wl,-syslibroot,$(SDK)

Where SDK is set to the directory of the SDK you want to use, for instance
"/Developer/SDKs/MacOSX10.2.7". Apps that need to run on =< 10.3.8 must be
compiled with GCC 3.3.

sherm--


reply via email to

[Prev in Thread] Current Thread [Next in Thread]