gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GNUStep make patch take 1


From: Jeremy Bettis
Subject: GNUStep make patch take 1
Date: Tue, 5 Jul 2005 12:48:14 -0500

Relative to GNUStep make 1.10.0
 
I will try to explain what I have done:
 
HIGH LEVEL:
    Some little mingw tweaks, dlls etc.
    Don't do anything that requires symlinks on mingw.  I.e. Framework Versions and Current folders, and framework headers in derived_sources.
    Mingw will link directly against dlls before using an import library. I had to change target.make and which_lib.c to be aware of this.
 
DETAILS:
 
* Instance/framework.make:
    If HAS_LN_S is no (i.e. mingw) then define a variable HEADERS_DIR_SUFFIX for the suffix /FrameworkName to go onto the public header path.
    Disable Versions and Current if HAS_LN_S is no.
    Don't create the top level symlinks if HAS_LN_S is no.
    If HAS_LN_S is no then create the headers dir both with and without the HEADERS_DIR_SUFFIX
    I added an intermediate target for internal-framework-copy-headers-target, as I was seeing the header file copy being executed n^2 times, for every file, it copied all files.  Perhaps MSYS make 3.79.1 is buggy, but this fixed it.
    If WITH_DLL is yes, then create a def file using DLLTOOL, and then supply it to DLLWRAP.  Otherwise, the objc symbols weren't getting exported properly.
* Instance/subproject.make:
    Handle the HEADERS_DIR_SUFFIX which was passed from framework.make.
    Added an intermediate target for internal-subproject-copy-headers-target, for the same reason as in framework.make
* Master/framework.make:
    If HAS_LN_S is no (i.e. mingw) then define a variable HEADERS_DIR_SUFFIX for the suffix /FrameworkName to go onto the public header path.
* Master/rules.make:
    Had to modify the subproject rule to disable the Versions folders to match the changes in framework.make
    Pass HEADERS_DIR_SUFFIX to submakes
* configure.ac:
    Declare LN_S to be cp -rp for mingw, even if you find a ln command.  (Since it is probably just a wrapper around cp anyway)
* rules.make:
    Include the Framework.framework/Headers dir instead of derived sources if we have no symlinks
    Added a rule to compile .rc (windows resource) files.
* target.make:
    Pass -Wl,--enable-auto-import option to dllwrap and gcc to avoid a warning message at link time if linking directly to a dll.
* which_lib.c:
    Mingw searches for libraries in this order:  name.dll, then libname.a.  Changed which_lib to search in the same order, and to look for a static import library even in dynamic mode.  This fixed many problems I had with objc_d.dll vs. objc.dll.
   
 
   
 

Attachment: gnustep-make-patch-a.txt
Description: Text document


reply via email to

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