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 [EMAIL PROTECTED] _______________________________________________ Bug-gnustep mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-gnustep
