If it builds then I approve and Alan should commit this directly.

Harold

Alexander Gottwald wrote:
> Nicholas Wourms wrote:
> 
> 
>>final outcome:
>>--------------
>>/usr/X11R6/bin/cygXfoo.0.0.dll
>>/usr/X11R6/lib/libXfoo.0.0.dll.a
>>/usr/X11R6/lib/libXfoo.0.dll.a
>>/usr/X11R6/lib/libXfoo.dll.a
>>/usr/X11R6/lib/libXfoo.a
> 
> 
> Attached a patch which tweaks the makefile to build
> 
> lib$(NAME)-$(MAJOR).dll
> lib$(NAME)-$(MAJOR).a
> lib$(NAME).a -> lib$(NAME)-$(MAJOR).a
> 
> for Xft1 and Xft2 its
> exports/bin/libXft-1.dll
> exports/bin/libXft-2.dll
> exports/lib/libXft-1.a -> ../../lib/Xft1/libXft-1.a
> exports/lib/libXft-2.a -> ../../lib/Xft/libXft-2.a
> exports/lib/libXft.a -> libXft-2.a
> 
> tweaking it to use cyg*.dll is simple
> 
> I also change the widely spreaded concat3(lib,libname,.dll) to one macro
> (SharedLibraryName, libFoo-X.dll) 
> The other new macro is ImportLibraryName, which is libFoo-X.a    
> LibraryTargetName is still libFoo.a
> 
> And the is the rule LinkImportLibrary which links ImportLibraryName to
> LibraryTargetName.
> 
> bye
>     ago
> 
> 
> ------------------------------------------------------------------------
> 
> Index: cygwin.rules
> ===================================================================
> RCS file: /cvs/xc/config/cf/cygwin.rules,v
> retrieving revision 3.19
> diff -u -r3.19 cygwin.rules
> --- cygwin.rules      2002/04/15 09:22:33     3.19
> +++ cygwin.rules      2002/09/24 20:53:19
> @@ -52,7 +52,10 @@
>  #define UseExportLists YES
>  #endif
>  
> +#define SharedLibraryName(libname, rev) Concat3(lib,libname,-$(shell echo rev|sed 
>s=\\..*==).dll)    
>  
> +#define ImportLibraryName(libname, rev) Concat3(lib,libname,-$(shell echo rev|sed 
>s=\\..*==).a)    
> +
>  /*
>   * SharedDepLibraryTarget - generate rules to create a shared library.
>   */
> @@ -75,22 +78,23 @@
>   */
>  
>  #define SharedDepLibraryTarget(libname,rev,deplist,solist,down,up)   @@\
> -AllTarget(Concat3(lib,libname,.dll))                                    @@\
> +AllTarget(SharedLibraryName(libname,rev))                             @@\
>                                                                       @@\
>  CppFileTarget(libname.def,libname-def.cpp,-DLIBRARY_VERSION=rev,$(ICONFIGFILES)) @@\
>                                                                       @@\
>                                                                          @@\
>                                                                       @@\
> -Concat3(lib,libname,.dll): deplist libname.def                               @@\
> -     RemoveFile(LibraryTargetName(libname))                          @@\
> -     RemoveFile(Concat3(lib,libname,.dll))                           @@\
> -     MakeDLL(libname,solist)                                         @@\
> -     LinkBuildLibrary(Concat3(lib,libname,.a))                       @@\
> -     LinkBuildDLL(Concat3(lib,libname,.dll))                         @@\
> +SharedLibraryName(libname,rev): deplist libname.def                  @@\
> +     RemoveFile(ImportLibraryName(libname,rev))                      @@\
> +     RemoveFile(SharedLibraryName(libname,rev))                      @@\
> +     MakeDLL(libname,solist,rev)                                     @@\
> +     LinkBuildLibrary(ImportLibraryName(libname,rev))                @@\
> +     LinkImportLibrary(ImportLibraryName(libname,rev),LibraryTargetName(libname))   
> @@\
> +     LinkBuildDLL(SharedLibraryName(libname,rev))                    @@\
>                                                                       @@\
>  clean::                                                                      @@\
> -     RemoveFile(LibraryTargetName(libname))                          @@\
> -     RemoveFile(Concat3(lib,libname,.dll))                           @@\
> +     RemoveFile(ImportLibraryName(libname,rev))                              @@\
> +     RemoveFile(SharedLibraryName(libname,rev))                      @@\
>  
>  #endif /* SharedDepLibraryTarget */
>  
> @@ -116,22 +120,23 @@
>   */
>  
>  #define SharedDepCplusplusLibraryTarget(libname,rev,deplist,solist,down,up) @@\
> -AllTarget(Concat3(lib,libname,.dll))                                        @@\
> +AllTarget(SharedLibraryName(libname,rev))                             @@\
>                                                                              @@\
>  CppFileTarget(libname.def,libname-def.cpp,-DLIBRARY_VERSION=rev,$(ICONFIGFILES)) @@\
>                                                                              @@\
>                                                                              @@\
> -                                                                            @@\
> -Concat3(lib,libname,.dll): deplist libname.def                              @@\
> -     RemoveFile(LibraryTargetName(libname))                                  @@\
> -     RemoveFile(Concat3(lib,libname,.dll))                                   @@\
> -     MakeCplusplusDLL(libname,solist)                                        @@\
> -     LinkBuildLibrary(Concat3(lib,libname,.a))                               @@\
> -     LinkBuildDLL(Concat3(lib,libname,.dll))                                 @@\
>                                                                              @@\
> -clean::                                                                     @@\
> -     RemoveFile(LibraryTargetName(libname))                                  @@\
> -     RemoveFile(Concat3(lib,libname,.dll))                                   @@\
> +SharedLibraryName(libname,rev): deplist libname.def                     @@\
> +     RemoveFile(ImportLibraryName(libname,rev))                      @@\
> +     RemoveFile(SharedLibraryName(libname,rev))                      @@\
> +     MakeCplusplusDLL(libname,solist,rev)                            @@\
> +     LinkBuildLibrary(ImportLibraryName(libname,rev))                @@\
> +     LinkImportLibrary(ImportLibraryName(libname,rev),LibraryTargetName(libname))   
> @@\
> +     LinkBuildDLL(SharedLibraryName(libname,rev))                    @@\
> +                                                                        @@\
> +clean::                                                                 @@\
> +     RemoveFile(ImportLibraryName(libname,rev))                      @@\
> +     RemoveFile(SharedLibraryName(libname,rev))                      @@\
>  
>  #endif /* SharedDepCplusplusLibraryTarget */
>  
> @@ -173,22 +178,22 @@
>   * MakeDllProg
>   */ 
>      
> -#define MakeDLLProg(libname,solist,prog)                     @@\
> -     prog -shared -Wl,--out-implib=Concat3(lib,libname,.a) -Wl,--enable-auto-import 
>--def libname.def -o Concat3(lib,libname,.dll) solist $(REQUIREDLIBS)
> +#define MakeDLLProg(libname,solist,prog,rev)                         @@\
> +     prog -shared -Wl,--out-implib=ImportLibraryName(libname,rev) 
>-Wl,--enable-auto-import --def libname.def -o SharedLibraryName(libname,rev) solist 
>$(REQUIREDLIBS)
>      
>  /*
>   * MakeDll
>   */
>  
> -#define MakeDLL(libname,solist)                                              @@\
> -    MakeDLLProg(libname,solist,$(CC))
> +#define MakeDLL(libname,solist,rev)                                  @@\
> +    MakeDLLProg(libname,solist,$(CC),rev)
>  
>  /*
>   * MakeCplusplusDll
>   */
>  
> -#define MakeCplusplusDLL(libname,solist)                                            
> @@\
> -    MakeDLLProg(libname,solist,$(CXX))
> +#define MakeCplusplusDLL(libname,solist,rev)                         @@\
> +    MakeDLLProg(libname,solist,$(CXX),rev)
>  
>  
>  
> @@ -197,20 +202,21 @@
>   */
>  
>  #define SharedLibraryTarget(libname,rev,solist,down,up)                 @@\
> -AllTarget(Concat3(lib,libname,.dll))                                    @@\
> +AllTarget(SharedLibraryName(libname,rev))                             @@\
>                                                                       @@\
>  CppFileTarget(libname.def,libname-def.cpp,-DLIBRARY_VERSION=rev,$(ICONFIGFILES)) @@\
>                                                                       @@\
>                                                                          @@\
> -Concat3(lib,libname,.dll): solist libname.def                                @@\
> -     RemoveFile(LibraryTargetName(libname))                          @@\
> -     RemoveFile(Concat3(lib,libname,.dll))                           @@\
> -     MakeDLL(libname,solist)                                         @@\
> -     LinkBuildLibrary(Concat3(lib,libname,.a))                       @@\
> -     LinkBuildDLL(Concat3(lib,libname,.dll))                         @@\
> -clean::                                                                      @@\
> -     RemoveFile(LibraryTargetName(libname))                          @@\
> -     RemoveFile(Concat3(lib,libname,.dll))                           @@\
> +SharedLibraryName(libname,rev): solist libname.def                   @@\
> +     RemoveFile(ImportLibraryName(libname,rev))                      @@\
> +     RemoveFile(SharedLibraryName(libname,rev))                      @@\
> +     MakeDLL(libname,solist,rev)                                     @@\
> +     LinkBuildLibrary(ImportLibraryName(libname,rev))                @@\
> +     LinkImportLibrary(ImportLibraryName(libname,rev),LibraryTargetName(libname))   
> @@\
> +     LinkBuildDLL(SharedLibraryName(libname,rev))                    @@\
> +clean::                                                                      @@\
> +     RemoveFile(ImportLibraryName(libname,rev))                      @@\
> +     RemoveFile(SharedLibraryName(libname,rev))                      @@\
>  
>  
>  /*
> @@ -219,7 +225,7 @@
>  
>  #define InstallSharedLibrary(libname,rev,dest)                          @@\
>  InstallTarget(install,LibraryTargetName(libname),$(INSTLIBFLAGS),$(USRLIBDIR)) @@\
> -InstallTarget(install,Concat3(lib,libname,.dll),$(INSTLIBFLAGS),$(BINDIR))
> +InstallTarget(install,SharedLibraryName(libname,rev),$(INSTLIBFLAGS),$(BINDIR))
>  
>  
>  /*
> @@ -263,6 +269,16 @@
>       RemoveFile($(BUILDBINDIR)/lib)                                  @@\
>       cd $(BUILDBINDIR) && $(CP) $(BUILDBINTOP)/$(CURRENT_DIR)/lib .
>  #endif
> +
> +#ifndef LinkImportLibrary
> +#ifdef UseInstalled 
> +#define LinkImportLibrary(lib, importlib) $(_NULLCMD_)
> +#else
> +#define LinkImportLibrary(lib, importlib) MakeDir($(BUILDLIBDIR))     @@\
> +     RemoveFile($(BUILDLIBDIR)/importlib)                            @@\
> +     cd $(BUILDLIBDIR) && $(LN) lib importlib
> +#endif
> +#endif /* LinkImportLibrary */
>  
>  
>  /*

Reply via email to