mingw.rules revision 1c80d5b0
111d341caSmrg/* 211d341caSmrg * Cygwin shared library rules (DLL versions) 311d341caSmrg */ 411d341caSmrg 511d341caSmrg#define HasSharedLibraries YES 611d341caSmrg#define NeedLibInsideFlag NO 711d341caSmrg#define ForceNormalLib NO 811d341caSmrg#define NormalLibX11 NO 911d341caSmrg# define SharedLibFont NO 1011d341caSmrg# define SharedLibFontEnc NO 1111d341caSmrg# define SharedLibWindowsWM NO 1211d341caSmrg# define SharedLibxkbfile YES 1311d341caSmrg 1411d341caSmrg#ifndef SharedDataSeparation 1511d341caSmrg# define SharedDataSeparation NO 1611d341caSmrg#endif 1711d341caSmrg#ifndef SharedCodeDef 1811d341caSmrg#define SharedCodeDef /**/ 1911d341caSmrg#endif 2011d341caSmrg#ifndef SharedLibraryDef 2111d341caSmrg#define SharedLibraryDef /**/ 2211d341caSmrg#endif 2311d341caSmrg#ifndef ShLibIncludeFile 2411d341caSmrg#define ShLibIncludeFile <mingw.tmpl> 2511d341caSmrg#endif 2611d341caSmrg#ifndef SharedLibraryLoadFlags 2711d341caSmrg#define SharedLibraryLoadFlags -dll /**/ 2811d341caSmrg#endif 2911d341caSmrg#ifndef PositionIndependentCFlags 3011d341caSmrg#define PositionIndependentCFlags -D_DLL 3111d341caSmrg#endif 3211d341caSmrg#ifndef PositionIndependentCplusplusFlags 3311d341caSmrg#define PositionIndependentCplusplusFlags -D_DLL 3411d341caSmrg#endif 3511d341caSmrg#ifndef UseExportLists 3611d341caSmrg#define UseExportLists YES 3711d341caSmrg#endif 3811d341caSmrg 3911d341caSmrg#define SharedLibraryName(libname, rev) \ 4011d341caSmrgConcat3(lib,libname,-$(shell echo rev|sed s=\\..*==).dll) 4111d341caSmrg 4211d341caSmrg#define ImportLibraryName(libname, rev) \ 4311d341caSmrgConcat3(lib,libname,-$(shell echo rev|sed s=\\..*==).dll.a) 4411d341caSmrg 4511d341caSmrg#define ShortImportLibraryName(libname, rev) \ 4611d341caSmrgConcat3(lib,libname,.dll.a) 4711d341caSmrg 4811d341caSmrg/* 4911d341caSmrg * SharedDepLibraryTarget - generate rules to create a shared library. 5011d341caSmrg */ 5111d341caSmrg 5211d341caSmrg#ifndef SharedDepLibraryTarget 5311d341caSmrg# ifdef UseInstalled 5411d341caSmrg# ifndef LinkBuildSonameLibrary 5511d341caSmrg# define LinkBuildSonameLibrary(lib) 5611d341caSmrg# endif 5711d341caSmrg# else /* !UseInstalled */ 5811d341caSmrg# ifndef LinkBuildSonameLibrary 5911d341caSmrg# define LinkBuildSonameLibrary(lib) (RemoveFile($(BUILDLIBDIR)/lib); @@\ 6011d341caSmrg cd $(BUILDLIBDIR); $(LN) $(BUILDINCTOP)/$(CURRENT_DIR)/lib .) 6111d341caSmrg# endif 6211d341caSmrg# endif /* UseInstalled */ 6311d341caSmrg 6411d341caSmrg 6511d341caSmrg/* 6611d341caSmrg * SharedDepLibraryTarget 6711d341caSmrg */ 6811d341caSmrg 6911d341caSmrg#define SharedDepLibraryTarget(libname,rev,deplist,solist,down,up) @@\ 7011d341caSmrgAllTarget(SharedLibraryName(libname,rev)) @@\ 7111d341caSmrg @@\ 7211d341caSmrgSharedLibraryName(libname,rev): deplist @@\ 7311d341caSmrg RemoveFile(ImportLibraryName(libname,rev)) @@\ 7411d341caSmrg RemoveFile(SharedLibraryName(libname,rev)) @@\ 7511d341caSmrg MakeDLL(libname,solist,rev) @@\ 7611d341caSmrg LinkBuildLibrary(ImportLibraryName(libname,rev)) @@\ 7711d341caSmrg LinkImportLibrary(ImportLibraryName(libname,rev),LibraryTargetName(libname)) @@\ 7811d341caSmrg LinkBuildDLL(SharedLibraryName(libname,rev)) @@\ 7911d341caSmrg @@\ 8011d341caSmrgclean:: @@\ 8111d341caSmrg RemoveFile(ImportLibraryName(libname,rev)) @@\ 8211d341caSmrg RemoveFile(SharedLibraryName(libname,rev)) @@\ 8311d341caSmrg 8411d341caSmrg#endif /* SharedDepLibraryTarget */ 8511d341caSmrg 8611d341caSmrg/* 8711d341caSmrg * SharedDepCplusplusLibraryTarget - generate rules to create a shared library. 8811d341caSmrg */ 8911d341caSmrg 9011d341caSmrg#ifndef SharedDepCplusplusLibraryTarget 9111d341caSmrg# ifdef UseInstalled 9211d341caSmrg# ifndef LinkBuildSonameLibrary 9311d341caSmrg# define LinkBuildSonameLibrary(lib) 9411d341caSmrg# endif 9511d341caSmrg# else /* !UseInstalled */ 9611d341caSmrg# ifndef LinkBuildSonameLibrary 9711d341caSmrg# define LinkBuildSonameLibrary(lib) (RemoveFile($(BUILDLIBDIR)/lib); @@\ 9811d341caSmrg cd $(BUILDLIBDIR); $(LN) $(BUILDINCTOP)/$(CURRENT_DIR)/lib .) 9911d341caSmrg# endif 10011d341caSmrg# endif /* UseInstalled */ 10111d341caSmrg 10211d341caSmrg 10311d341caSmrg/* 10411d341caSmrg * SharedDepCplusplusLibraryTarget 10511d341caSmrg */ 10611d341caSmrg 10711d341caSmrg#define SharedDepCplusplusLibraryTarget(libname,rev,deplist,solist,down,up) @@\ 10811d341caSmrgAllTarget(SharedLibraryName(libname,rev)) @@\ 10911d341caSmrg @@\ 11011d341caSmrgSharedLibraryName(libname,rev): deplist @@\ 11111d341caSmrg RemoveFile(ImportLibraryName(libname,rev)) @@\ 11211d341caSmrg RemoveFile(SharedLibraryName(libname,rev)) @@\ 11311d341caSmrg MakeCplusplusDLL(libname,solist,rev) @@\ 11411d341caSmrg LinkBuildLibrary(ImportLibraryName(libname,rev)) @@\ 11511d341caSmrg LinkImportLibrary(ImportLibraryName(libname,rev),LibraryTargetName(libname)) @@\ 11611d341caSmrg LinkBuildDLL(SharedLibraryName(libname,rev)) @@\ 11711d341caSmrg @@\ 11811d341caSmrgclean:: @@\ 11911d341caSmrg RemoveFile(ImportLibraryName(libname,rev)) @@\ 12011d341caSmrg RemoveFile(SharedLibraryName(libname,rev)) @@\ 12111d341caSmrg 12211d341caSmrg#endif /* SharedDepCplusplusLibraryTarget */ 12311d341caSmrg 12411d341caSmrg 12511d341caSmrg/* 12611d341caSmrg * SharedDepModuleTarget 12711d341caSmrg */ 12811d341caSmrg 12911d341caSmrg#ifndef SharedDepModuleTarget 13011d341caSmrg#define SharedDepModuleTarget(name,deps,solist) @@\ 13111d341caSmrgAllTarget(name) @@\ 13211d341caSmrg @@\ 13311d341caSmrgname: deps @@\ 13411d341caSmrg $(CC) -o $@ $(SHLIBLDFLAGS) solist $(REQUIREDLIBS) BaseShLibReqs @@\ 13511d341caSmrg @@\ 13611d341caSmrgclean:: @@\ 13711d341caSmrg RemoveFile(name) 13811d341caSmrg#endif /* SharedDepModuleTarget */ 13911d341caSmrg 14011d341caSmrg 14111d341caSmrg/* 14211d341caSmrg * SharedLibraryDataTarget - generate rules to create shared data file 14311d341caSmrg */ 14411d341caSmrg 14511d341caSmrg#ifndef SharedLibraryDataTarget 14611d341caSmrg#define SharedLibraryDataTarget(libname,rev,salist) 14711d341caSmrg#endif 14811d341caSmrg 14911d341caSmrg 15011d341caSmrg/* 15111d341caSmrg * InstallSharedLibraryData - generate rules to install the shared library data 15211d341caSmrg */ 15311d341caSmrg 15411d341caSmrg#ifndef InstallSharedLibraryData 15511d341caSmrg#define InstallSharedLibraryData(libname,rev,dest) 15611d341caSmrg#endif /* InstallSharedLibraryData */ 15711d341caSmrg 15811d341caSmrg/* 15911d341caSmrg * MakeDllProg 1601c80d5b0Smrg */ 1611c80d5b0Smrg 16211d341caSmrg#define MakeDLLProg(libname,solist,prog,rev) @@\ 16311d341caSmrg prog -shared -Wl,--out-implib=ImportLibraryName(libname,rev) -Wl,--enable-auto-import,--enable-runtime-pseudo-reloc -Wl,--exclude-libs,ALL -o SharedLibraryName(libname,rev) solist $(REQUIREDLIBS) -lws2_32 1641c80d5b0Smrg 16511d341caSmrg/* 16611d341caSmrg * MakeDll 16711d341caSmrg */ 16811d341caSmrg 16911d341caSmrg#define MakeDLL(libname,solist,rev) @@\ 17011d341caSmrg MakeDLLProg(libname,solist,$(CC),rev) 17111d341caSmrg 17211d341caSmrg/* 17311d341caSmrg * MakeCplusplusDll 17411d341caSmrg */ 17511d341caSmrg 17611d341caSmrg#define MakeCplusplusDLL(libname,solist,rev) @@\ 17711d341caSmrg MakeDLLProg(libname,solist,$(CXX),rev) 17811d341caSmrg 17911d341caSmrg 18011d341caSmrg 18111d341caSmrg/* 18211d341caSmrg * SharedLibraryTarget 18311d341caSmrg */ 18411d341caSmrg 18511d341caSmrg#define SharedLibraryTarget(libname,rev,solist,down,up) @@\ 18611d341caSmrgAllTarget(SharedLibraryName(libname,rev)) @@\ 18711d341caSmrg @@\ 18811d341caSmrgSharedLibraryName(libname,rev): solist @@\ 18911d341caSmrg RemoveFile(ImportLibraryName(libname,rev)) @@\ 19011d341caSmrg RemoveFile(SharedLibraryName(libname,rev)) @@\ 19111d341caSmrg MakeDLL(libname,solist,rev) @@\ 19211d341caSmrg LinkBuildLibrary(ImportLibraryName(libname,rev)) @@\ 19311d341caSmrg LinkImportLibrary(ImportLibraryName(libname,rev),LibraryTargetName(libname)) @@\ 19411d341caSmrg LinkBuildDLL(SharedLibraryName(libname,rev)) @@\ 19511d341caSmrgclean:: @@\ 19611d341caSmrg RemoveFile(ImportLibraryName(libname,rev)) @@\ 19711d341caSmrg RemoveFile(SharedLibraryName(libname,rev)) @@\ 19811d341caSmrg 19911d341caSmrg 20011d341caSmrg/* 20111d341caSmrg * InstallLink 20211d341caSmrg */ 20311d341caSmrg 20411d341caSmrg#ifndef InstallLink 20511d341caSmrg#define InstallLink(step, file, link, dest) @@\ 20611d341caSmrgstep:: @@\ 20711d341caSmrg MakeDir($(DESTDIR)dest) @@\ 20811d341caSmrg $(LN) -sf file $(DESTDIR)dest/link 20911d341caSmrg#endif 21011d341caSmrg 21111d341caSmrg/* 21211d341caSmrg * InstallSharedLibrary 21311d341caSmrg */ 21411d341caSmrg 21511d341caSmrg#define InstallSharedLibrary(libname,rev,dest) @@\ 21611d341caSmrgInstallTarget(install,ImportLibraryName(libname,rev),$(INSTLIBFLAGS),$(USRLIBDIR)) @@\ 21711d341caSmrgInstallTarget(install,SharedLibraryName(libname,rev),$(INSTBINFLAGS),$(BINDIR)) @@\ 21811d341caSmrgInstallLink(install,ImportLibraryName(libname,rev),ShortImportLibraryName(libname,rev),$(USRLIBDIR)) 21911d341caSmrg 22011d341caSmrg 22111d341caSmrg/* 22211d341caSmrg * ProgramTargetName - This can be simply 'target' or 'target.exe' when 22311d341caSmrg * building on Cygwin proper, as Cygwin automatically appends .exe to compiled 22411d341caSmrg * executables and make, rm, ln, etc. will automatically search for a file 22511d341caSmrg * with .exe appended if the raw file name cannot be found. However, 22611d341caSmrg * building with a cross compiler requires 'target.exe', as the cross 22711d341caSmrg * compiler doesn't know to append .exe, nor do the cross compiler tools 22811d341caSmrg * know to search for files with .exe appended if the raw file name cannot 22911d341caSmrg * be found. 23011d341caSmrg */ 23111d341caSmrg 23211d341caSmrg#define ProgramTargetName(target) Concat(target,.exe) 23311d341caSmrg 23411d341caSmrg 23511d341caSmrg/* 23611d341caSmrg * HostProgramTargetName - Don't add .exe if cross-compiling. 23711d341caSmrg */ 23811d341caSmrg 23911d341caSmrg#ifndef HostProgramTargetName 24011d341caSmrg# if CrossCompiling 24111d341caSmrg# define HostProgramTargetName(target) target 24211d341caSmrg# else 24311d341caSmrg# define HostProgramTargetName(target) ProgramTargetName(target) 24411d341caSmrg# endif 24511d341caSmrg#endif 24611d341caSmrg 24711d341caSmrg 24811d341caSmrg/* 24911d341caSmrg * LinkBuildDLL - Cygwin only rule, similar to LinkBuildModule. 25011d341caSmrg * Unfortunately, we have to create a copy of each DLL in xc/exports/bin; 25111d341caSmrg * linking doesn't work, the executables (e.g. xkbcomp) will report 25211d341caSmrg * that they cannot find DLLs (e.g. libX11.dll). 25311d341caSmrg */ 25411d341caSmrg 25511d341caSmrg#ifdef UseInstalled 25611d341caSmrg#define LinkBuildDLL(lib) $(_NULLCMD_) 25711d341caSmrg#else 25811d341caSmrg#define LinkBuildDLL(lib) MakeDir($(BUILDBINDIR)) @@\ 25911d341caSmrg RemoveFile($(BUILDBINDIR)/lib) @@\ 26011d341caSmrg cd $(BUILDBINDIR) && $(CP) $(BUILDBINTOP)/$(CURRENT_DIR)/lib . 26111d341caSmrg#endif 26211d341caSmrg 26311d341caSmrg#ifndef LinkImportLibrary 26411d341caSmrg#ifdef UseInstalled 26511d341caSmrg#define LinkImportLibrary(lib, importlib) $(_NULLCMD_) 26611d341caSmrg#else 26711d341caSmrg#define LinkImportLibrary(lib, importlib) MakeDir($(BUILDLIBDIR)) @@\ 26811d341caSmrg RemoveFile($(BUILDLIBDIR)/importlib) @@\ 26911d341caSmrg cd $(BUILDLIBDIR) && $(LN) lib importlib 27011d341caSmrg#endif 27111d341caSmrg#endif /* LinkImportLibrary */ 27211d341caSmrg 27311d341caSmrg 27411d341caSmrg/* 27511d341caSmrg * LinkBuildBinary - This rule normally creates a link in xc/exports/bin 27611d341caSmrg * to a binary, but we create an actual copy of the binary. 27711d341caSmrg * Creating a link causes the DLLs that the binary depend on, such as 27811d341caSmrg * libX11.dll, not to be found. Copying the binary causes the runtime 27911d341caSmrg * directory to be xc/exports/bin, which is the location of the DLLs, thus, 28011d341caSmrg * the DLLs can now be found by the binary. Phew... 28111d341caSmrg * 28211d341caSmrg * Note that sometimes the binary is not an executable. One example 28311d341caSmrg * is the rgb binary file. 28411d341caSmrg * 28511d341caSmrg * Passing -p preserves the attributes as the date and prevents useless 28611d341caSmrg * rebuilds. 28711d341caSmrg * 28811d341caSmrg * ProgramTargetName is passed to LinkBuildBinary if the binary 28911d341caSmrg * is actually an executable; thus, we do not wrap the binary name 29011d341caSmrg * with ProgramTargetName here. 29111d341caSmrg */ 29211d341caSmrg 29311d341caSmrg#ifndef LinkBuildBinary 29411d341caSmrg#define LinkBuildBinary(binary) @@\ 29511d341caSmrgall:: binary @@\ 29611d341caSmrg MakeDir($(BUILDBINDIR)) @@\ 29711d341caSmrg RemoveFile($(BUILDBINDIR)/binary) @@\ 29811d341caSmrg cd $(BUILDBINDIR) && $(CP) -p $(BUILDBINTOP)/$(CURRENT_DIR)/binary . 29911d341caSmrg#endif /* LinkBuildBinary */ 30011d341caSmrg 30111d341caSmrg/* 30211d341caSmrg * ProfiledRelocatableTarget - generate rules to produce a profiled 30311d341caSmrg * relocatable object file instead of a library. Differs from Imake.rules 30411d341caSmrg * by passing '--oformat pe-i386' to ld. 30511d341caSmrg */ 30611d341caSmrg 30711d341caSmrg#ifndef ProfiledRelocatableTarget 30811d341caSmrg#define ProfiledRelocatableTarget(objname,objlist) @@\ 30911d341caSmrgAllTarget(Concat(objname,_p.Osuf)) @@\ 31011d341caSmrg @@\ 31111d341caSmrgConcat(objname,_p.Osuf): objlist $(EXTRALIBRARYDEPS) @@\ 31211d341caSmrg RemoveFile($@) @@\ 31311d341caSmrg $(LD) -X -r --oformat pe-i386 objlist -o $@ 31411d341caSmrg 31511d341caSmrg#endif /* ProfiledRelocatableTarget */ 31611d341caSmrg 31711d341caSmrg 31811d341caSmrg/* 31911d341caSmrg * DebuggedRelocatableTarget - generate rules to produce a debuggable 32011d341caSmrg * relocatable object file instead of a library. Differs from Imake.rules 32111d341caSmrg * by passing '--oformat pe-i386' to ld. 32211d341caSmrg */ 32311d341caSmrg 32411d341caSmrg#ifndef DebuggedRelocatableTarget 32511d341caSmrg#define DebuggedRelocatableTarget(objname,objlist) @@\ 32611d341caSmrgAllTarget(Concat(objname,_d.Osuf)) @@\ 32711d341caSmrg @@\ 32811d341caSmrgConcat(objname,_d.Osuf): objlist $(EXTRALIBRARYDEPS) @@\ 32911d341caSmrg RemoveFile($@) @@\ 33011d341caSmrg $(LD) -X -r --oformat pe-i386 objlist -o $@ 33111d341caSmrg 33211d341caSmrg#endif /* DebuggedRelocatableTarget */ 33311d341caSmrg 33411d341caSmrg 33511d341caSmrg/* 33611d341caSmrg * DependDependencyStatement - Imake.rules wraps $(DEPEND) in 33711d341caSmrg * ProgramTargetName(), which causes cross compiling to think that 33811d341caSmrg * $(DEPEND) hasn't been built, as $(DEPEND) is a host tool, and should 33911d341caSmrg * not be wrapped with ProgramTargetName(). Perhaps there should be 34011d341caSmrg * a HostProgramTargetName()... 34111d341caSmrg */ 34211d341caSmrg 34311d341caSmrg#ifndef DependDependencyStatement 34411d341caSmrg#if HasMakefileSafeInclude 34511d341caSmrg#define DependDependencyStatement() @@\ 34611d341caSmrgDependFileName:: $(DEPEND) 34711d341caSmrg#else 34811d341caSmrg#define DependDependencyStatement() @@\ 34911d341caSmrgdepend:: $(DEPEND) 35011d341caSmrg#endif 35111d341caSmrg#endif 35211d341caSmrg 35311d341caSmrg 35411d341caSmrg/* 35511d341caSmrg * DependDependency - Imake.rules wraps $(DEPEND) in ProgramTargetName(). 35611d341caSmrg * This doesn't work when cross compiling, see the locally defined 35711d341caSmrg * DependDependencyStatement comment (above) for more information. 35811d341caSmrg */ 35911d341caSmrg 36011d341caSmrg#ifndef DependDependency 36111d341caSmrg#ifdef UseInstalled 36211d341caSmrg#define DependDependency() /**/ 36311d341caSmrg#else 36411d341caSmrg#define DependDependency() @@\ 36511d341caSmrgDependDependencyStatement() @@\ 36611d341caSmrg @@\ 36711d341caSmrgNoCmpScript($(DEPEND)) @@\ 36811d341caSmrg @@\ 36911d341caSmrg$(DEPEND): @@\ 37011d341caSmrg @echo "checking $@ over in $(DEPENDSRC) first..."; \ @@\ 37111d341caSmrg cd $(DEPENDSRC) && $(MAKE) makedependonly; \ @@\ 37211d341caSmrg echo "okay, continuing in $(CURRENT_DIR)" 37311d341caSmrg 37411d341caSmrg#endif /* UseInstalled */ 37511d341caSmrg#endif /* DependDependency */ 37611d341caSmrg 37711d341caSmrg 37811d341caSmrg/* 37911d341caSmrg * ImakeDependency - Imake.rules wraps $(IMAKE) in ProgramTargetName(), 38011d341caSmrg * which doesn't work when cross compiling, as imake is supposed to be a 38111d341caSmrg * host program. See the locally defined DependDependencyStatement 38211d341caSmrg * comment (above) for more information. 38311d341caSmrg */ 38411d341caSmrg 38511d341caSmrg#ifndef ImakeDependency 38611d341caSmrg#ifdef UseInstalled 38711d341caSmrg#define ImakeDependency(target) /**/ 38811d341caSmrg#else 38911d341caSmrg#define ImakeDependency(target) @@\ 39011d341caSmrgtarget:: $(IMAKE) @@\ 39111d341caSmrg @@\ 39211d341caSmrgNoCmpScript($(IMAKE) $(IMAKE).Osuf) @@\ 39311d341caSmrg @@\ 39411d341caSmrg$(IMAKE) $(IMAKE).Osuf: @@\ 39511d341caSmrg -@(cd $(IMAKESRC) && if [ -f Makefile ]; then \ @@\ 39611d341caSmrg echo "checking $@ in $(IMAKESRC) first..."; $(MAKE) imakeonly; else \ @@\ 39711d341caSmrg echo "bootstrapping $@ from Makefile.ini in $(IMAKESRC) first..."; \ @@\ 39811d341caSmrg $(MAKE) -f Makefile.ini BOOTSTRAPCFLAGS="$(BOOTSTRAPCFLAGS)"; fi; \ @@\ 39911d341caSmrg echo "okay, continuing in $(CURRENT_DIR)") 40011d341caSmrg#endif /* UseInstalled */ 40111d341caSmrg#endif /* ImakeDependency */ 40211d341caSmrg 40311d341caSmrg 40411d341caSmrg/* 40511d341caSmrg * ResourceObjectRule - Build a Windows resouce file (.res) into 40611d341caSmrg * an object file (.o) that can be linked in with the executable 40711d341caSmrg * or library being built. 40811d341caSmrg */ 40911d341caSmrg 41011d341caSmrg#ifndef ResourceObjectRule 41111d341caSmrg#define ResourceObjectRule(basename,depends,options) @@\ 41211d341caSmrgAllTarget(basename.RESsuf) @@\ 41311d341caSmrgbasename.RESsuf: basename.RCsuf depends @@\ 41411d341caSmrg RemoveFile($@) @@\ 41511d341caSmrg ClearmakeOSName \ @@\ 41611d341caSmrg WindresCmd basename.RCsuf options -O coff -o basename.RESsuf @@\ 41711d341caSmrgclean:: @@\ 41811d341caSmrg RemoveFiles(basename.RESsuf) 41911d341caSmrg 42011d341caSmrg#endif /* ResourceObjectRule */ 42111d341caSmrg 42211d341caSmrg/* The arglist can get quite long. Make sure we can delete it though */ 42311d341caSmrg#ifndef MakeFonts 42411d341caSmrg# define MakeFonts() @@\ 42511d341caSmrgall:: $(OBJS) @@\ 42611d341caSmrg @@\ 42711d341caSmrgMakeFontsDir($(OBJS)) @@\ 42811d341caSmrg @@\ 42911d341caSmrgclean:: @@\ 43011d341caSmrg find -name "*.pcf" -o -name "*.pcf.Z" -o -name "*.pcf.gz" | xargs -r rm 43111d341caSmrg#endif /* MakeFonts */ 43211d341caSmrg 43311d341caSmrg#ifndef IncludeMakefile 43411d341caSmrg#define IncludeMakefile(file) @@sinclude file 43511d341caSmrg#endif 43611d341caSmrg 43711d341caSmrg 43811d341caSmrg#ifndef ProjectUnsharedLibReferences 43911d341caSmrg#define ProjectUnsharedLibReferences(varname,libname,libsource,buildlibdir) @@\ 44011d341caSmrgConcat3(DEP,varname,LIB) = _UseCat($(USRLIBDIR)/,buildlibdir/,LibraryTargetName(libname)) @@\ 44111d341caSmrgConcat(varname,LIB) = LoaderLibPrefix Concat(-l,libname) $(Concat(varname,EXTLIB)) @@\ 44211d341caSmrgLintLibReferences(varname,libname,libsource) 44311d341caSmrg#endif 44411d341caSmrg 44511d341caSmrgXONLYEXTLIB = -lwsock32 446