XFree 4.2.1 + fontconfig-2

Alexander Gottwald Alexander.Gottwald@informatik.tu-chemnitz.de
Tue Sep 24 14:05:00 GMT 2002


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
-- 
 Alexander.Gottwald@informatik.tu-chemnitz.de 
 http://www.gotti.org           ICQ: 126018723
-------------- next part --------------
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 */
 
 
 /*


More information about the Cygwin-xfree mailing list