[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
mingw framework "make install" bug
From: |
Stephen Brandon |
Subject: |
mingw framework "make install" bug |
Date: |
Wed, 10 Oct 2001 17:47:54 +0100 |
Hi,
Found a bug in framework.make to do with mingw compilation
and installation of frameworks.
The frameworks in question compile and link fine on
linux/i386.
On MinGW though, the MKPerformSndMIDI.framework build
directory looks a bit strange, even before it tries to
install. That is, even if I do a straight "make" instead of
"make shared=yes", no binary is built into the framework,
but a false link is put in:
$ ls -l MKPerformSndMIDI.framework/Versions/A/ix86/mingw32/gnu-gnu-gnu/
total 0
lrwxrwxrwx 1 Administ None 134 Oct 10 15:20
MKPerformSndMIDI -> libMKPerformSndMIDI.a.1.0.0
(and libMKPerformSndMIDI.a.1.0.0 doesn't exist, of course).
If I do a "make shared=yes" then the dll gets built
alongside the framework directory, not inside it. This may
be intentional - the dll will need to get put into the PATH
- but the internal ".a.1.0.0" as seen above is surely wrong.
Could someone confirm what is supposed to happen here?
There's a worse bug in the "make shared=yes install". In
this case there are some errors in framework.makefile which
cause the deletion and attempted linking of some "empty
string" variables. Which fails.
In the section from framework.makefile:100, if a static (non
dll) library is to be created, several variables are
created, eg FRAMEWORK_LIBRARY_FILE,
FRAMEWORK_LIBRARY_FILE_EXT.
If a dll is to be created, different variables are created:
eg FRAMEWORK_FILE, FRAMEWORK_FILE_EXT.
In the internal-framework-install:: however, checks are not
made for dll/non-dll, and various LN_S and rm calls are done
with $(FRAMEWORK_LIBRARY_FILE) etc which are empty if using
dlls. These cause the makefile to fail before the dll file
is successfully installed.
If I knew exactly what was supposed to go where, I would
suggest a patch for this issue.
Could someone please explain briefly what is supposed to get
installed to where in this situation? Does the dll go into
GNUSTEP_SYSTEM_ROOT/Libraries/ix.../gnu-gnu-gnu/foo.dll, or
is it supposed to sit inside the foo.framework directory and
be linked to? (ok, soft linking is a hack that the cygwin
bash supports, but is probably not going to work for apps
started in any other way on Win32).
And if I want to be able to link to my dll/framework, am I
also supposed to have a static .a library somewhere, or is
just the dll enough?
(I've managed to link to the directx audio libraries via
some .a libraries someone over at MinGW provided. But
because I can't get my framework to install, I can't try
linking a test application to my framework and hence to
direct-x, just yet).
Any help/advice/fix to framework.make welcome!
Many thanks,
Stephen Brandon
stephen@brandonitconsulting.co.uk
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- mingw framework "make install" bug,
Stephen Brandon <=