1XCOMM $Xorg: xf86.tmpl,v 1.3 2000/08/17 19:41:48 cpqbld Exp $
2
3
4
5XCOMM $XFree86: xc/config/cf/xf86.tmpl,v 3.32 2002/11/14 21:01:14 tsi Exp $
6
7#ifdef BuilderEMailAddr
8BUILDERADDR = BuilderEMailAddr
9#else
10BUILDERADDR = "xorg@freedesktop.org"
11#endif
12BUGMSG = -DBUILDERADDR='$(BUILDERADDR)'
13
14#if defined(XF86DriverSDK)
15    BUILDMODULEDIR = $(DRIVERSDKMODULEDIR)
16    BUILDMODULETOP = ..
17    TOP_INCLUDES = TopIncludes
18   IMAKE_DEFINES = -DXF86DriverSDK=1
19#ifdef UseInstalled
20       IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(TOP) -I$(IRULESRC) \
21		   $(IMAKE_DEFINES) $(IMAKE_WARNINGS)
22#else
23       IMAKE_CMD = $(IMAKE) -I$(TOP) -I$(IRULESRC) \
24		   $(IMAKE_DEFINES) $(IMAKE_WARNINGS)
25#endif
26
27#undef ImakeSubCmdHelper
28#ifdef UseInstalled
29#define ImakeSubCmdHelper $(IMAKE) -DUseInstalled -I$(IMAKETOP) \
30			  -I$(IRULESRC) $(IMAKE_DEFINES) $(IMAKE_WARNINGS)
31#else
32#define ImakeSubCmdHelper $(IMAKEPREFIX)$(IMAKE) -I$(IMAKETOP) \
33			  $(IMAKE_DEFINES) $(IMAKE_WARNINGS) \
34			  -I$(IMAKEPREFIX)$(IRULESRC)
35#endif
36#endif
37
38#ifndef JoystickSupport
39#define JoystickSupport		NO
40#endif
41
42/*
43 * Module support: These overrides must be here, not in xf86.rules,
44 * because they will replace rules after having seen the first lines
45 * of Imakefile (include <Server.tmpl>)
46 */
47
48
49#ifndef HasGccMergeConstants
50#define HasGccMergeConstants	NO
51#endif
52
53#if HasGccMergeConstants && DoLoadableServer && !MakeDllModules
54MODULE_GCC_FLAGS = -fno-merge-constants
55#endif
56
57#if defined(IHaveModules) && MakeDllModules
58MODULE_PIC_FLAGS = $(PICFLAGS)
59#endif
60
61MODULE_CFLAGS = $(MODULE_PIC_FLAGS) $(MODULE_GCC_FLAGS)
62
63#if defined(IHaveModules)
64# if DoLoadableServer
65MODULE_DEFINES = -DIN_MODULE -DXFree86Module
66# else
67MODULE_DEFINES = -DXFree86Module
68# endif
69#endif
70
71#if defined(IHaveModules) && DoLoadableServer
72
73/* This overrides the ObjectCompile in Imake.rules! */
74#undef ObjectCompile
75#define ObjectCompile(options) RemoveFile($@)                           @@\
76	ClearmakeOSName\
77	$(MODCC) $(MODCFLAGS) options -c $*.c
78
79/* This overrides an AssembleObject in xf86.rules or in an os-dependent
80 * rules file (currently only minix.cf and os2.rules (uncritical))
81 */
82#define ModCPPOnlyAsm(basename,options) RemoveFile(basename.i)		@@\
83	$(MODCPP) AsmDefines $(DEFINES) $(INCLUDES) options basename.S | \	@@\
84		grep -v '^\#' > basename.i
85
86#undef AssembleObject
87#define AssembleObject(basename,flags) ModCPPOnlyAsm(basename,flags)	@@\
88	RemoveFile(basename.o)						@@\
89	$(MODAS) $(MODASFLAGS) -o basename.o basename.i			@@\
90	RemoveFile(basename.i)
91
92/* This overrides the NormalRelocatableTarget in Imake.rules */
93#undef NormalRelocatableTarget
94#define	NormalRelocatableTarget(objname,objlist)			@@\
95AllTarget(objname.Osuf)							@@\
96									@@\
97objname.Osuf: objlist $(EXTRALIBRARYDEPS)				@@\
98	RemoveFile($@)							@@\
99	$(MODLD) $(MODLDCOMBINEFLAGS) objlist -o $@
100
101/* This overrides the NormalDepRelocatableTarget in Imake.rules */
102#undef NormalDepRelocatableTarget
103#define	NormalDepRelocatableTarget(objname,deplist,objlist)		@@\
104AllTarget(objname.Osuf)							@@\
105									@@\
106objname.Osuf: deplist $(EXTRALIBRARYDEPS)				@@\
107	RemoveFile($@)							@@\
108	$(MODLD) $(MODLDCOMBINEFLAGS) objlist -o $@
109
110/* This overrides the RanLibrary in Imake.rules */
111#if DoRanlibCmd || NeedModuleRanlib
112#undef RanLibrary
113#define RanLibrary(args) $(MODRANLIB) args
114#endif
115
116/* This overrides the MakeLibrary rule in Imake.rules */
117#undef MakeLibrary
118#define MakeLibrary(libname,objlist) $(MODAR) libname objlist
119
120/* This overrides the LibraryTargetName rule in Imake.rules */
121#undef LibraryTargetName
122#define LibraryTargetName(libname)Concat(lib,libname.a)
123
124/* This disables an OS/2 rule */
125#undef BuildLibSupportLibs
126#define BuildLibSupportLibs(dummy)
127
128#endif /* IHaveModules */
129