bug-gnustep
[Top][All Lists]
Advanced

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

Re: [RFC/make] Extend Framework support II


From: Nicola Pero
Subject: Re: [RFC/make] Extend Framework support II
Date: Thu, 11 Mar 2004 13:51:18 +0000 (GMT)

> OK, so here's my second try :-)
> 
> As a developer, I find the feature of being able to configure different
> GNUSTEP_ROOT directories very useful.  You can easily set up independent
> GNUstep environments on a (potentially foreign) system for testing.
> None the less, I'd agree to advocate '/' as the default /if/ we're sure
> not to break anything, and I as don't have a Darwin system to play with
> at that level, I can't test what may go wrong.  (I guess that's why you
> mentioned building them via /usr/GNUstep and then copying the
> frameworks, but that feels rather hacky to me :-) )

I'm not sure what you mean.  I have my gnustep-make installation in
something like /Users/nicola/Nicola/make-installation, and when I build 
stuff, then I do

make install GNUSTEP_INSTALLATION_DIR=/

and it gets installed into Apple's /Library/Frameworks.  I don't find that
hacky.

I quite like that the default gnustep-make installation directory is not
/, because it doesn't mess up my Apple stuff.  Btw I wouldn't call it a
"GNUstep installation", but a "GNUstep make installation", which also
explains why it's not a big deal that it's not in '/', or that its
framework paths are not in the framework library path.

Maybe we could change the default GNUSTEP_INSTALLATION_DIR on Apple to be
'/', and the default directory structure to match more closely the Apple
one (if there is a need), so that default installation procedures should
work well even for bundles and such.  That looks like a good idea to me.  
Does it look like a good idea to you ?


> So instead I'd rather like to propose to add support for -F /
> DYLD_FRAMEWORK_PATH.  In principal the issue of -F/DYLD_FRAMEWORK_PATH
> is analogous to the -L/(DY)LD_LIBRARY_PATH.
> 
> This tgz includes the previous patch plus ld_fw_path.[c]sh tools to set
> DYLD_FRAMEWORK_PATH on Darwin (and nextstep4*) for testing purposes and
> proof of concept.  This approach is a bit overkill.  I'll integrate it
> into ld_lib_path.sh /if/ we agree that we want to do this at all.  When
> I started the changes I wasn't sure how much clutter I'd need to add so
> I separated it.  But in hind sight, I don't think the two extra scripts
> are justified, so I'll simple add the DYLD_FRAMEWORK handling into the
> nextstep4* and Darwin* paths.
> 
> Nicola Pero wrote:
> > As far as I'm concerned, I would stick with building "GNUstep
> > frameworks" (our stuff with all the hacks to find lists of classes,
> > locations, symlinks) when gnustep-base is used, and "Apple
> > frameworks" (which rely on Apple's FoundationKit/compiler/linker own
> > hacks to find lists of classes, etc) when Apple FoundationKit is
> > used.
> 
> OK, yet I see this issue coming up again when/if we get apple-gnu-gnu to
> work.  But I'll fix my final patch up to test against FOUNDATION_LIB
> again, then s/HAVE_FRAMEWORK_SUPPORT/USE_FRAMEWORK_SUPPORT/g and include
> some comments.
> 
> So if we agree that we'd want to add -F/DYLD_FRAMEWORK_PATH to be
> consistent wrt. -L/LD_LIBRARY_PATH, I'll fix up another proposal patch.
> (I've cc'd Sheldon as this surely plays into the GNUstep.conf issue.
> BTW: will it still be possible setup multiple independent instances of
> GNUstep on a system with those changes?)
> 
> My goal here is to have GSWeb (incl. all it's dependencies) to install 
> "out of the box" on Darwin(/Cocoa).  I'd really like to avoid the extra 
> steps of copying compiled framework yet leaving the installed dependent 
> -baseadd, -gdl2, .... libraries in GNUstep-specific paths. Well I guess 
> you'd have to copy/symlink them also unless you source GNUstep.[c]sh, 
> but if you do it, I think the frameworks should work just as well.

If you want it running and succesfull on apple-apple-apple, I think you
should switch your mind into apple-apple-apple mentality.

If I'm an apple-apple-apple person and I want the GSWeb framework, I want 
to download GSWeb.framework and install it in my /Library/Frameworks/, 
then I want to be able to use it from my XCode (is that the name ?) 
developer tools.

I don't want to know anything about GNUstep or gnustep-make.  Sourcing
GNUstep.sh ?  What's that ?  Why that complication anyway ?

So my recommendation would be -

 * install (you, David Ayers, not whoever will download the final binary
package) gnustep-make on your Apple machine in order to compile stuff
which uses a GNUmakefile.  You can install gnustep-make into
~/make-install for example.

 * source GNUstep.sh from the above installation when compiling.

 * use GNUSTEP_INSTALLATION_DIR=/ when installing your frameworks.  That
installs them into /Library/Frameworks (I suppose we could make this the
default on Apple).

 * gnustep-make or GNUstep is not required to use the frameworks.  They
are just Apple frameworks in the Apple directories, and you can distribute
them as such.  Just go in /Library/Frameworks/ and grab them, make a .tgz
with all of them, and distribute it.  The final user will just unpack them
in /Library/Frameworks/ and bam! it can use them in XCode.

I distribute Renaissance in such way and it's very popular for Apple Mac
OS X users.

I don't honestly see any need for using -F flags or setting yet another
framework library path, as I consider gnustep-make's installation on Apple
just a gnustep-make installation, and not a gnustep installation.

If you use gnu-gnu-gnu on Apple, that's a GNUstep installation, but it's a
completely different matter because it's not using the Apple framework
code.

Anyway.





reply via email to

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