1XCOMM $XFree86: xc/config/cf/ServerLib.tmpl,v 3.0tsi Exp $
2/*
3 * Server Library imakefile info - this contains any special
4 * redefinitions, etc. that Imakefiles in the various server library
5 * subtrees will need.
6 *
7 * Before including this, you must set the following boolean variables:
8 * DoSharedLib, DoNormalLib, DoDebugLib, DoProfileLib
9 *
10 */
11
12#ifndef DoNormalLib
13#define DoNormalLib	YES
14#endif
15
16#ifndef LibraryDefines
17#define LibraryDefines StandardDefines
18#endif
19#ifndef LibraryCDebugFlags
20#define LibraryCDebugFlags DefaultCDebugFlags
21#endif
22#ifndef SeparateSharedCompile
23#define SeparateSharedCompile YES
24#endif
25#ifndef SharedServerLibraryDef
26#define SharedServerLibraryDef $(__NOOP__)
27#endif
28
29#ifndef LibraryCcCmd
30#if DoSharedLib && defined(SharedLibraryCcCmd)
31#define LibraryCcCmd SharedLibraryCcCmd
32#else
33#define LibraryCcCmd CcCmd
34#endif
35#endif
36#ifndef LibraryCCOptions
37#if DoSharedLib && defined(SharedLibraryCCOptions)
38#define LibraryCCOptions SharedLibraryCCOptions
39#else
40#define LibraryCCOptions DefaultCCOptions
41#endif
42#endif
43
44#if DoDebugLib
45#define _DebuggedLibMkdir() LibMkdir(debugger)
46#define _DebuggedObjCompile(options) DebuggedLibObjCompile(options)
47#define _DebuggedCleanDir() LibCleanDir(debugger)
48#else
49#define _DebuggedLibMkdir() $(_NULLCMD_)
50#define _DebuggedObjCompile(options) $(_NULLCMD_)
51#define _DebuggedCleanDir() $(_NULLCMD_)
52#endif
53
54#if DoProfileLib
55#define _ProfiledLibMkdir() LibMkdir(profiled)
56#define _ProfiledObjCompile(options) ProfiledLibObjCompile(options)
57#define _ProfiledCleanDir() LibCleanDir(profiled)
58#else
59#define _ProfiledLibMkdir() $(_NULLCMD_)
60#define _ProfiledObjCompile(options) $(_NULLCMD_)
61#define _ProfiledCleanDir() $(_NULLCMD_)
62#endif
63
64#if !DoNormalLib
65#define _NormalLibMkdir() $(_NULLCMD_)
66#define _NormalObjCompile(options) $(_NULLCMD_)
67#define _NormalCleanDir() $(_NULLCMD_)
68#else
69#if DoSharedLib && SeparateSharedCompile
70#define _NormalLibMkdir() LibMkdir(unshared)
71#define _NormalObjCompile(options) UnsharedLibObjCompile(options)
72#define _NormalCleanDir() LibCleanDir(unshared)
73#else
74#define _NormalLibMkdir() $(_NULLCMD_)
75#define _NormalObjCompile(options) NormalLibObjCompile(options)
76#define _NormalCleanDir() $(_NULLCMD_)
77#endif
78#endif
79
80#if !DoSharedLib || (DoNormalLib && !SeparateSharedCompile)
81#define _SharedObjCompile(options) $(_NULLCMD_)
82#else
83#if SeparateSharedCompile
84#define _SharedObjCompile(options) NormalSharedLibObjCompile(options)
85#else
86#define _SharedObjCompile(options) NormalLibObjCompile(options)
87#endif
88#endif
89
90#define SRCsuf c
91#define Isuf i
92
93#ifndef LibraryObjectRule
94#define LibraryObjectRule()						@@\
95all::									@@\
96	_DebuggedLibMkdir()						@@\
97	_ProfiledLibMkdir()						@@\
98	_NormalLibMkdir()						@@\
99									@@\
100includes::								@@\
101	_DebuggedLibMkdir()						@@\
102	_ProfiledLibMkdir()						@@\
103	_NormalLibMkdir()						@@\
104									@@\
105.SRCsuf.Osuf:								@@\
106	_DebuggedObjCompile($(_NOOP_))					@@\
107	_ProfiledObjCompile($(_NOOP_))					@@\
108	_NormalObjCompile($(_NOOP_))					@@\
109	_SharedObjCompile(SharedServerLibraryDef)			@@\
110									@@\
111clean::									@@\
112	_DebuggedCleanDir()						@@\
113	_ProfiledCleanDir()						@@\
114	_NormalCleanDir()						@@\
115
116#endif /* LibraryObjectRule */
117
118#ifndef SpecialLibObjectRule
119#define SpecialLibObjectRule(objs,depends,options)			@@\
120objs: depends								@@\
121	_DebuggedObjCompile(options)					@@\
122	_ProfiledObjCompile(options)					@@\
123	_NormalObjCompile(options)					@@\
124	_SharedObjCompile(options)					@@\
125
126#endif /* SpecialLibObjectRule */
127
128#ifndef SpecialCLibObjectRule
129#define SpecialCLibObjectRule(basename,depends,options)			@@\
130SpecialLibObjectRule(basename.Osuf,basename.SRCsuf depends,options)	@@\
131									@@\
132basename.Isuf: basename.SRCsuf depends					@@\
133	CPPOnlyCompile(basename.SRCsuf,options)				@@\
134									@@\
135CenterLoadTarget(debug_src,basename.SRCsuf,NullParameter,$(ALLDEFINES) options)
136#endif /* SpecialCLibObjectRule */
137
138#if DoSharedLib
139LibraryObjectRule()
140#else
141NormalLibraryObjectRule()
142#endif
143