111d341caSmrgXCOMM $XFree86: xc/config/cf/ServerLib.tmpl,v 3.0tsi Exp $
211d341caSmrg/*
311d341caSmrg * Server Library imakefile info - this contains any special
411d341caSmrg * redefinitions, etc. that Imakefiles in the various server library
511d341caSmrg * subtrees will need.
611d341caSmrg *
711d341caSmrg * Before including this, you must set the following boolean variables:
811d341caSmrg * DoSharedLib, DoNormalLib, DoDebugLib, DoProfileLib
911d341caSmrg *
1011d341caSmrg */
1111d341caSmrg
1211d341caSmrg#ifndef DoNormalLib
1311d341caSmrg#define DoNormalLib	YES
1411d341caSmrg#endif
1511d341caSmrg
1611d341caSmrg#ifndef LibraryDefines
1711d341caSmrg#define LibraryDefines StandardDefines
1811d341caSmrg#endif
1911d341caSmrg#ifndef LibraryCDebugFlags
2011d341caSmrg#define LibraryCDebugFlags DefaultCDebugFlags
2111d341caSmrg#endif
2211d341caSmrg#ifndef SeparateSharedCompile
2311d341caSmrg#define SeparateSharedCompile YES
2411d341caSmrg#endif
2511d341caSmrg#ifndef SharedServerLibraryDef
2611d341caSmrg#define SharedServerLibraryDef $(__NOOP__)
2711d341caSmrg#endif
2811d341caSmrg
2911d341caSmrg#ifndef LibraryCcCmd
3011d341caSmrg#if DoSharedLib && defined(SharedLibraryCcCmd)
3111d341caSmrg#define LibraryCcCmd SharedLibraryCcCmd
3211d341caSmrg#else
3311d341caSmrg#define LibraryCcCmd CcCmd
3411d341caSmrg#endif
3511d341caSmrg#endif
3611d341caSmrg#ifndef LibraryCCOptions
3711d341caSmrg#if DoSharedLib && defined(SharedLibraryCCOptions)
3811d341caSmrg#define LibraryCCOptions SharedLibraryCCOptions
3911d341caSmrg#else
4011d341caSmrg#define LibraryCCOptions DefaultCCOptions
4111d341caSmrg#endif
4211d341caSmrg#endif
4311d341caSmrg
4411d341caSmrg#if DoDebugLib
4511d341caSmrg#define _DebuggedLibMkdir() LibMkdir(debugger)
4611d341caSmrg#define _DebuggedObjCompile(options) DebuggedLibObjCompile(options)
4711d341caSmrg#define _DebuggedCleanDir() LibCleanDir(debugger)
4811d341caSmrg#else
4911d341caSmrg#define _DebuggedLibMkdir() $(_NULLCMD_)
5011d341caSmrg#define _DebuggedObjCompile(options) $(_NULLCMD_)
5111d341caSmrg#define _DebuggedCleanDir() $(_NULLCMD_)
5211d341caSmrg#endif
5311d341caSmrg
5411d341caSmrg#if DoProfileLib
5511d341caSmrg#define _ProfiledLibMkdir() LibMkdir(profiled)
5611d341caSmrg#define _ProfiledObjCompile(options) ProfiledLibObjCompile(options)
5711d341caSmrg#define _ProfiledCleanDir() LibCleanDir(profiled)
5811d341caSmrg#else
5911d341caSmrg#define _ProfiledLibMkdir() $(_NULLCMD_)
6011d341caSmrg#define _ProfiledObjCompile(options) $(_NULLCMD_)
6111d341caSmrg#define _ProfiledCleanDir() $(_NULLCMD_)
6211d341caSmrg#endif
6311d341caSmrg
6411d341caSmrg#if !DoNormalLib
6511d341caSmrg#define _NormalLibMkdir() $(_NULLCMD_)
6611d341caSmrg#define _NormalObjCompile(options) $(_NULLCMD_)
6711d341caSmrg#define _NormalCleanDir() $(_NULLCMD_)
6811d341caSmrg#else
6911d341caSmrg#if DoSharedLib && SeparateSharedCompile
7011d341caSmrg#define _NormalLibMkdir() LibMkdir(unshared)
7111d341caSmrg#define _NormalObjCompile(options) UnsharedLibObjCompile(options)
7211d341caSmrg#define _NormalCleanDir() LibCleanDir(unshared)
7311d341caSmrg#else
7411d341caSmrg#define _NormalLibMkdir() $(_NULLCMD_)
7511d341caSmrg#define _NormalObjCompile(options) NormalLibObjCompile(options)
7611d341caSmrg#define _NormalCleanDir() $(_NULLCMD_)
7711d341caSmrg#endif
7811d341caSmrg#endif
7911d341caSmrg
8011d341caSmrg#if !DoSharedLib || (DoNormalLib && !SeparateSharedCompile)
8111d341caSmrg#define _SharedObjCompile(options) $(_NULLCMD_)
8211d341caSmrg#else
8311d341caSmrg#if SeparateSharedCompile
8411d341caSmrg#define _SharedObjCompile(options) NormalSharedLibObjCompile(options)
8511d341caSmrg#else
8611d341caSmrg#define _SharedObjCompile(options) NormalLibObjCompile(options)
8711d341caSmrg#endif
8811d341caSmrg#endif
8911d341caSmrg
9011d341caSmrg#define SRCsuf c
9111d341caSmrg#define Isuf i
9211d341caSmrg
9311d341caSmrg#ifndef LibraryObjectRule
9411d341caSmrg#define LibraryObjectRule()						@@\
9511d341caSmrgall::									@@\
9611d341caSmrg	_DebuggedLibMkdir()						@@\
9711d341caSmrg	_ProfiledLibMkdir()						@@\
9811d341caSmrg	_NormalLibMkdir()						@@\
9911d341caSmrg									@@\
10011d341caSmrgincludes::								@@\
10111d341caSmrg	_DebuggedLibMkdir()						@@\
10211d341caSmrg	_ProfiledLibMkdir()						@@\
10311d341caSmrg	_NormalLibMkdir()						@@\
10411d341caSmrg									@@\
10511d341caSmrg.SRCsuf.Osuf:								@@\
10611d341caSmrg	_DebuggedObjCompile($(_NOOP_))					@@\
10711d341caSmrg	_ProfiledObjCompile($(_NOOP_))					@@\
10811d341caSmrg	_NormalObjCompile($(_NOOP_))					@@\
10911d341caSmrg	_SharedObjCompile(SharedServerLibraryDef)			@@\
11011d341caSmrg									@@\
11111d341caSmrgclean::									@@\
11211d341caSmrg	_DebuggedCleanDir()						@@\
11311d341caSmrg	_ProfiledCleanDir()						@@\
11411d341caSmrg	_NormalCleanDir()						@@\
11511d341caSmrg
11611d341caSmrg#endif /* LibraryObjectRule */
11711d341caSmrg
11811d341caSmrg#ifndef SpecialLibObjectRule
11911d341caSmrg#define SpecialLibObjectRule(objs,depends,options)			@@\
12011d341caSmrgobjs: depends								@@\
12111d341caSmrg	_DebuggedObjCompile(options)					@@\
12211d341caSmrg	_ProfiledObjCompile(options)					@@\
12311d341caSmrg	_NormalObjCompile(options)					@@\
12411d341caSmrg	_SharedObjCompile(options)					@@\
12511d341caSmrg
12611d341caSmrg#endif /* SpecialLibObjectRule */
12711d341caSmrg
12811d341caSmrg#ifndef SpecialCLibObjectRule
12911d341caSmrg#define SpecialCLibObjectRule(basename,depends,options)			@@\
13011d341caSmrgSpecialLibObjectRule(basename.Osuf,basename.SRCsuf depends,options)	@@\
13111d341caSmrg									@@\
13211d341caSmrgbasename.Isuf: basename.SRCsuf depends					@@\
13311d341caSmrg	CPPOnlyCompile(basename.SRCsuf,options)				@@\
13411d341caSmrg									@@\
13511d341caSmrgCenterLoadTarget(debug_src,basename.SRCsuf,NullParameter,$(ALLDEFINES) options)
13611d341caSmrg#endif /* SpecialCLibObjectRule */
13711d341caSmrg
13811d341caSmrg#if DoSharedLib
13911d341caSmrgLibraryObjectRule()
14011d341caSmrg#else
14111d341caSmrgNormalLibraryObjectRule()
14211d341caSmrg#endif
143