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: David Ayers
Subject: Re: [RFC/make] Extend Framework support II
Date: Fri, 12 Mar 2004 10:46:25 +0100
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6) Gecko/20040113

Nicola Pero wrote:

OK, so here's my second try :-)

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 ?

Agreed.

Definitely.  The default (apple-apple-apple) should be:
---------------------------------
# System paths
GNUSTEP_SYSTEM_ROOT  = /System
GNUSTEP_NETWORK_ROOT = /Network
GNUSTEP_LOCAL_ROOT  = /

# GNUstep preferences
USER_GNUSTEP_DEFAULTS = Preferences
USER_GNUSTEP_RC  =
---------------------------------


What I meant was much more radical than this though. :-)

I don't think GNUSTEP_SYSTEM_ROOT, GNUSTEP_NETWORK_ROOT, GNUSTEP_LOCAL_ROOT make any sense on apple-apple-apple.

On apple-apple-apple, you just use your Apple.  You have no GNUstep
installed.  There is no GNUstep installation.

If you are a developer, you might have installed gnustep-make somewhere on
your harddisk, presumably in your home directory.  That is a "gnustep-make
installation", not a "GNUstep installation", even if the directory
structure might be similar.

Please slow down. Now I'm definitely willing to try the apple-apple-apple frame of mind approach and get things working with it. But I'd ask you (of all people ;-) ) to consider the GNUstep (or in this case the gnustep-make) approach. It's one thing to support the OS X file system hierarchy (and frameworks in favor of libraries) by default wrt -make on Cocoa. It's another to deprecate the GNUstep hierarchy and build process. I'm willing to figure out what the common user wants and have the build system work with that by default. But please don't force me to do it that way, as it constrains my options on Cocoa and it constrains them unnecessarily. Just like native-library.make may "be your friend", -L/LD_LIBRARY_PATH and -F/DYLD_FRAMEWORK_PATH are also your friends.


When you build stuff using your gnustep-make installation, then you set
GNUSTEP_INSTALLATION_DIR to be '/' (or '~').  Then the GNUmakefiles will
install stuff in '/' or '~', that is on the Apple directories. You don't install anything in your gnustep-make installation.


Note that there may be a bit more to take into consideration. For example .../Library/Headers does not seem to be included in standard search directories. Also it seems that ~/Frameworks is not a hard coded standard Framework directory that the loader searches automatically, but relies on the same set of environment variables that I wish to add support for in -make.

The man page of dyld states that DYLD_FALLBACK_FRAMEWORK_PATH should be set to: $(HOME)/Library/Frameworks:
/Library/Frameworks:
/Network/Library/Frameworks:
/System/Library/Frameworks
by default but that doesn't seem to be the case on the machine I'm testing on. As it's not mine, so I'm not really sure whether this was turned off manually. This may have been the case due to previous issues wrt multiple libxml2 libraries installed on the system.


The stuff installed, frameworks and applications, should be native Apple stuff.

Of course the catch is that you shouldn't compile anything as a library,
everything should be an apple framework, even stuff which would be a
library normally on GNUstep.  For example, -baseadd should be a framework.
The natural thing to do this is to use native-library.make btw.

So the only default I would change is GNUSTEP_INSTALLATION_DIR, which I'd point to '/' on apple-apple-apple.

I'm fine with changing that default. I'm even fine with considering switching to native-library.make which would impact -baseadd -> GNUstepBase.framework , GDL2 (-db2control -> EOControl, -db2 -> EOAccess, -db2modeler -> EOModeler), -gsantlr -> GSANTLR, and gsgd. As you know I'm exploring that now.

The -baseadd->GNUstepBase.framework change would probably only impact apple-apple-apple, the other projects will also be impacted for gnu-gnu-gnu. But we could add symlinks to support the old names for a bit. Yet that switch really has to be considered and tested carefully, yet I it may be a good idea.

The rest is irrelevant, as it's your own gnustep-make installation which
you can put wherever you want, and unless you're compiling stuff from
sources using GNUmakefiles, you don't need gnustep-make at all.

I disagree, please also consider my point of view, that instead of reducing the options we have on apple-apple-apple that we complete the configuration options that we already have wrt -L/LD_LIBRARY_PATH with -F/DYLD_LIBRARY_PATH. We don't need the two extra scripts. It can easily be integrated into the existing infrastructure. It makes the conventional "GNUstep installation" possible on apple-apple-apple and easy to use for someone with GNUstep experience.

Cheers,
David





reply via email to

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