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 */ > > > /*
