Patrick Middleton wrote:
[snip]
------------------------------------------------------- Date: Wed 11/03/2004 at 11:49 By: Patrick Middleton <patrickx> Filesystem links on Windows are a dead loss. Possibly the Cygwin and MinGW crews will get round one day to implementing 'ln' in terms of Windows shortcuts, but I hope not: that'd be yet more incompatible semantics with which to deal.
NeXT^WApple never bothered making the ProjectBuilder pb_makefile system work with soft links on Windows. A case in point: they'd have used soft links when building a framework so that Name.framework/Name pointed to Name.framework/Versions/Current/Name , which in turn pointed to Name.framework/Versions/{ExplicitLatestVersion}/Name . Which would have been useless on Windows anyway as versioned frameworks wouldn't work, because the dll loading mechanism is going to find the current Name.dll , whatever that may be, in .../Library/Tools rather than the appropriate versioned dll from within .../Library/Frameworks/Name.framework.
Lately I have been trying to build stuff, notably ProjectCenter 0.4.0 on WindowsXP/MinGW/GNUstep base 1.10.0 and getting all sorts of build-related grief.
Recent revisions to $GNUSTEP_SYSTEM_ROOT/Library/Makefiles/config.make have introduced a make macro LN_S . By setting that to 'echo no ln -s' on MinGW, and adding similar macros for rm -f and rm -rf , and setting RM_F to be rm -rf on MinGW, and editing all project makefiles and all standard makefiles to use these macros: 'make' and 'make clean' appear to work a lot better. Watch out for rm -[Rr]f when editing.
------------------------------------------------------- Date: Wed 10/06/2004 at 08:04 By: 0 <None> after investigating I found that it is because obj and Current are 'symlinks' to actual directories. That is, they are created with $(LN_S).
well, in config.make I found that LN_S = ln -s. This is because 'ln -s' *does* exist in msys but what it does is a 'cp -r'. This explains the error message in windows.
the workaround i used was to replace any
'rm -f linkdir; $(LN_S) realdir linkdir' (which fails with message: 'linkdir is a directory')
with
'$(LN_S) -f realdir linkdir' (ln -s -f forces the remove and the copy of the new dir)
impacted files were:
rules.make Instance/framework.make
but of course obj and Current remain useless, and i live with it.
This should really be fixed in gnsutep-make. MINGW's ln -s does exist, but it just does a recursive copy. As such, I propose that we modify GNUstep-make to not ever use ln -s under mingw/cygwin. Does anyone here have a problem with that?
_______________________________________________ Bug-gnustep mailing list [EMAIL PROTECTED] http://lists.gnu.org/mailman/listinfo/bug-gnustep
