|
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 willinstall 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/Frameworksby 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
[Prev in Thread] | Current Thread | [Next in Thread] |