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/*
159944bff83Smrg * 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/*
166944bff83Smrg * MakeDLL
16711d341caSmrg */
16811d341caSmrg
16911d341caSmrg#define MakeDLL(libname,solist,rev)					@@\
17011d341caSmrg    MakeDLLProg(libname,solist,$(CC),rev)
17111d341caSmrg
17211d341caSmrg/*
173944bff83Smrg * 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/*
405944bff83Smrg * ResourceObjectRule - Build a Windows resource 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