1 $TOG: README /main/66 1997/05/20 10:05:36 kaleb $
6 $XFree86: xc/config/cf/README,v 1.1.1.9.2.3 1998/01/23 12:35:07 dawes Exp $
8 The easiest way to write an Imakefile is to find another one that does
9 something similar and copy/modify it!
11 To change any of these variables, edit the site.def file.
13 Imake.tmpl provides defaults for the following variables:
15 AlternateIncRoot compiler needs -I to find project includes
16 AlternateUsrLibDir linker needs -L to find project libraries
17 ArCmd command used to create libraries
18 ArCmdBase program name part of ArCmd
19 ArAddCmd flags to have ArCmdBase add files to a library
20 ArExtCmd flags to have ArCmdBase extract files
21 AsCmd command used to run assembler
22 BootstrapCFlags missing cpp symbols needed to get started
23 BourneShell command used to run Bourne Shell
24 CCsuf suffix that C++ source files have
25 CURDIR current directory relative to top of sources
26 CcCmd command to run C compiler
27 CompressCmd command to run compress program
28 GzipCmd command to run gzip program
29 ConstructMFLAGS System V option to set MFLAGS make variable
30 CpCmd command to copy one file to another
31 CplusplusCmd command to run C++ compiler
32 CplusplusFilt command to run C++ name demangler
33 CplusplusYaccCmd command to produce C++ source from yacc source
34 CppCmd command to run C preprocessor
35 CrossCompiling cross compiling? (not fully supported)
36 DebuggableCDebugFlags C compiler -I's and -D's to turn on debug info
37 DefaultCCOptions default special C compiler options
38 DefaultCDebugFlags debug/optimize flags for programs
39 DefaultUsrBin program directory used even if PATH not set
40 DependFlags extra makedepend flags
41 DoRanlibCmd boolean for system uses ranlib
42 EqnCmd command used for eqn
43 ExecableScripts boolean for systems that can exec() #!/bin/sh
44 ExpandManNames boolean to expand man pages names to long form
45 ExtraFilesToClean extra files to remove on make clean
46 ExtraLibraries system-specific libraries need to link
47 ExtraLoadFlags system-specific loader flags
48 FileManSuffix man suffix for file format pages
49 FilesToClean files to delete in make clean
50 FortranCmd command to run Fortran compiler
51 FortranDebugFlags flags for Fortran debug info
52 FortranFlags Fortran compiler flags
53 HasBSD44Sockets boolean for system has BSD4.4 sockets
54 HasBsdMake use the 4.4BSD variant of the make program?
55 HasBsearch boolean for libc has bsearch()
56 HasBrokenCCForLink boolean for brain damaged cc driver
57 HasCenterLineC boolean for system has CenterLine C compiler
58 HasCenterLineCplusplus boolean for system has CenterLine C++ compiler
59 HasClearmake use Clearcase's clearmake make program?
60 HasCodeCenter boolean for system has CodeCenter
61 HasCplusplus system has a C++ compiler?
62 HasDECnet system has DECnet?
63 HasFortran boolean for system has Fortran compiler
64 HasGcc boolean for system has GNU gcc compiler
65 HasGcc2 boolean for system has GNU gcc 2.x compiler
66 HasGcc2ForCplusplus use gcc 2 for C++ programs?
67 HasGnuMake use the GNU make program?
68 HasKrb5 system has Kerberos version 5 support?
69 HasLargeTmp boolean for system has /tmp space
70 HasLatex system has LaTeX document preparation software
71 HasLibCrypt boolean for system has libcrypt
72 HasNdbm boolean for system has ndbm routines
73 HasPoll use poll() syscall?
74 HasPurify boolean for system has Purify
75 HasPutenv boolean for libc has putenv()
76 HasSecureRPC boolean for Sun Secure RPC
77 HasSetUserContext boolean for setusercontext()
78 HasSentinel boolean for system has Sentinel available
79 HasSharedLibraries boolean for system has shared libraries
80 HasShm boolean for System V shared memory
81 HasSockets boolean for system has BSD sockets
82 HasStrcasecmp boolean for system implements str[n]casecmp
83 HasStreams use STREAMS I/O interface?
84 HasSymLinks boolean for system has symbolic links
85 HasTestCenter boolean for system has TestCenter
86 HasVarDirectory boolean for system has /var
87 HasVFork boolean for system has vfork()
88 HasVoidSignalReturn boolean for POSIX signal() procs
89 HasZlib boolean for system has libz
90 IncRoot parent of X11 include directory
91 InstBinFlags install flags for binaries
92 InstDatFlags install flags for data files
93 InstIncFlags install flags for header files
94 InstKmemFlags install flags for xload to get at /dev/kmem
95 InstLibFlags install flags for libraries
96 InstManFlags install flags for manual pages
97 InstPgmFlags install flags for normal programs
98 InstUidFlags install flags for xterm to chown /dev/ptys
99 InstallCmd command to install files
100 Krb5Includes where to include Kerberos header files from
101 Krb5Libraries where to load Kerberos libraries from
102 LdCmd command to run loader
103 LdCombineFlags flags for incremental loading
104 LexCmd command to run lex
105 LexLib library for programs using lex output
106 LintCmd command to run lint
107 LintLibFlag flags to generate lint libraries
108 LintOpts lint options to control strictness
109 LnCmd command to link two files
110 LoaderLibPrefix loader flags before libraries
111 LocalRulesFile site-specific file with additional imake rules
112 LocalTmplFile file with additional imake variables
113 MacroFile name of machine-dependent config params file
114 MacroIncludeFile <MacroFile>
115 MakeCmd command to run make
116 Malloc0ReturnsNull boolean for malloc(0) == NULL
117 Malloc0ReturnsNullDefines -D's to build libX11/libXt
118 MathLibrary library for programs using C math functions
119 MsMacros macro flag for TroffCmd, normally "-ms"
120 MvCmd command to rename a file
121 NdbmDefines -D's to turn on use of ndbm routines
122 NeedConstPrototoypes whether const is supported
123 NeedFunctionPrototypes whether or not to force function prototypes
124 NeedNestedPrototypes whether nested prototypes are supported
125 NeedVarargsPrototypes whether varargs prototypes are supported
126 NeedWidePrototypes whether or not to widen function prototypes
127 NoOpCDebugFlags C compiler flags to not debug or optimize
128 NoRConst YES if const for structs of funcs is bad
129 OSMajorVersion major version number of operating system
130 OSMinorVersion minor version number of operating system
131 OptimizedCDebugFlags C compiler flags to turn on optimization
132 PreProcessCmd command to run /lib/cpp on scripts
133 RanlibCmd command to clean up libraries
134 RanlibInstFlags flags to ranlib after copying
135 RmCmd command to delete files
136 ShLibDir directory in which to install shared libraries
137 StandardCppDefines -D's for running cpp
138 StandardDefines -D's for running C compiler
139 StandardIncludes -I's for running C compiler
140 StripInstalledPrograms boolean for sites that want to install -s
141 SystemV boolean for systems that are at least SVR2
142 SystemV4 boolean for SVR4 systems
143 TOPDIR relative path to top of sources
144 TagsCmd command to run tags
145 TblCmd command to run tbl
146 TroffCmd command to run troff to get PostScript
147 UNCOMPRESSPATH command to run uncompress
148 UnalignedReferencesAllowed boolean for unaligned copies ok
149 UsrLibDir directory in which to install libraries
150 VarDirectory directory in /var for logs, etc., and config
151 YaccCmd command to run yacc
153 X11.tmpl provides defaults for the following variables:
155 AdmDir directory containing system log files
156 AllocateLocalDefines -D's to turn on alloca()
157 BDFTOSNFFILT command to run bdftosnf
158 BaseExtensionDefines universal extensions to use
159 BinDir directory in which to install programs
160 BuildAppgroup build AppGroup extension
161 BuildFontServer build font server
162 BuildFonts build pcf fonts
163 BuildIncRoot relative path to location of headers in build
164 BuildIncTop path from build includes directory to top
165 BuildLBX build LBX (aka X.fast) server extension
166 BuildPexExt build PEX server extension and fonts
167 BuildPhigs build Phigs (obsolete)
168 BuildServer build X server
169 BuildXAudio build Audio
170 BuildXAServer build Audio server
171 BuildXIE build X Image Extension
172 BuildDIS build Document Imaging Subset of XIE
173 BuildXCSecurity Build Security Extension
174 BuildXInputExt build X Input extension (requires ddx support,
175 which exists only in Xhp)
176 BuildXInputLib build X Input library
177 BuildXKB build X Keyboard Extension?
178 BuildXKBlib build X Keyboard Extension into Xlib?
179 UseXKBInClients Use XKB functions in normal clients?
180 BuildDBE build DOUBLE-BUFFER extension
181 BuildMultibuffer build Multibuffer extension (obsolete)
182 BuildRECORD Build RECORD extension
183 BuildPlugin build xrx plug-in for web browsers
184 ConfigDir install directory for config files
185 ConnectionFlags -D's for supported transports
186 ContribDir location of user-contributed sources
187 DebugLibFS build libFS_d.a
188 DebugLibICE build libICE_d.a
189 DebugLibPex build libPEX5_d.a
190 DebugLibSM build libSM_d.a
191 DebugLibX11 build libX11_d.a
192 DebugLibXau build libXau_d.a
193 DebugLibXaw build libXaw_d.a
194 DebugLibXdmcp build libXdmcp_d.a
195 DebugLibXext build libXext_d.a
196 DebugLibXi build libXi_d.a
197 DebugLibXie build libXie_d.a
198 DebugLibXmu build libXmu_d.a
199 DebugLibXt build libXt_d.a
200 DebugLibXtst build libXtst_d.a
201 DebugLibXag build libXag_d.a
202 DebugOldX build liboldX_d.a
203 DefaultFSConfigFile default font server config file
204 DefaultFontPath default server font path
205 DefaultRGBDatabase default server rgb color database
206 DefaultSystemPath default system xdm PATH environment variable
207 DefaultSystemShell default /bin/sh
208 DefaultUserPath default user xdm PATH environment variable
209 DependCmd command to run makedepend
210 DependDir build directory containing makedepend program
211 ExtensionDefines -D's for universal extensions
212 ExtensionOSDefines -D's for additional extensions
213 FontCompilerFlags flags for bdftosnf
214 FontDefines -D's to turn on font options
215 FontDir directory in which to install fonts
216 FontFilters -D's to specify font conversion filters
217 FontOSDefines -D's for which fonts to support
218 ForceNormalLib force building of .a in addition to shared lib
219 GzipFontCompression boolean for using gzip instead of compress
220 HasXdmAuth boolean for using XDM-AUTHORIZATION-1;
221 needs Wraphelp.c, see Release Notes
222 InstallAppDefFiles install new app defaults files over old?
223 InstallFSConfig install fs config file over old?
224 InstallLibManPages boolean for installing library man pages
225 InstallSecurityConfig install server security policy file over old?
226 InstallXdmConfig install xdm config files over old?
227 InstallXinitConfig install xinit config files over old?
228 LibDir directory in which to install X11 support files
229 LibManSuffix man suffix for library pages
230 LibmanDir directory in which to install library man pages
231 LintlibDir directory in which to install lint libs
232 ManDir directory in which to install program man pages
233 ManDirectoryRoot parent of man directories relative to root
234 ManPath full path of parent directory
235 ManSourcePath common prefix of man page directories
236 ManSuffix man suffix for programs
237 NeedDefaultDepLibs boolean for enabling default DEPLIBS
238 NlsDir directory in which to install nls files
239 NormalLibFS build libFS.a
240 NormalLibICE build libICE.a
241 NormalLibPex build libPEX5.a
242 NormalLibPhigs build libphigs.a
243 NormalLibSM build libSM.a
244 NormalLibX11 build libX11.a
245 NormalLibXau build libXau.a
246 NormalLibXaw build libXaw.a
247 NormalLibXdmcp build libXdmcp.a
248 NormalLibXext build libXext.a
249 NormalLibXi build libXi.a
250 NormalLibXie build libXie.a
251 NormalLibXmu build libXmu.a
252 NormalLibXt build libXt.a
253 NormalLibXtst build libXtst.a
254 NormalLibXag build libXag.a
255 NormalOldX build liboldX.a
256 OsNameDefines beats me
257 PexApiDir PEX include file location
258 PexCCOptions special options for building PEX library
259 PexCDebugFlags special flags for building PEX library
260 PexClientDefines special -D's for building PEX clients
261 PexDipexDefines special -D's for building PEX di files
262 PexPhigsDefines special -D's for building PEX library
263 PexShmIPC boolean for using shared memory in phigsmon
264 PhigsInclude include directory for phigs clients
265 PrimaryScreenResolution resolution of default server screen
266 ProfileLibFS build libFS_p.a
267 ProfileLibICE build libICE_p.a
268 ProfileLibPex build libPEX5_p.a
269 ProfileLibSM build libSM_p.a
270 ProfileLibX11 build libX11_p.a
271 ProfileLibXau build libXau_p.a
272 ProfileLibXaw build libXaw_p.a
273 ProfileLibXdmcp build libXdmcp_p.a
274 ProfileLibXext build libXext_p.a
275 ProfileLibXi build libXi_p.a
276 ProfileLibXie build libXie_p.a
277 ProfileLibXmu build libXmu_p.a
278 ProfileLibXt build libXt_p.a
279 ProfileLibXtst build libXtst_p.a
280 ProfileLibXag build libXag_p.a
281 ProfileOldX build liboldX_p.a
282 ProjectX version indicating this is the X Window System
283 RemoveTargetProgramByMoving boolean for rm -f that doesn't
284 SHELLPATH -D for /bin/sh
285 ServerConfigDir directory for server security config files
286 ServerDefines complete -D's for server
287 ServerExtraDefines special -D's for server
288 ServerOSDefines OS -D's for server
289 ServerAssertDefines -DNDEBUG for no assertions, /**/ for assertions
290 SharedLibFS boolean for making sharable libFS.so
291 SharedLibICE boolean for making sharable libICE.so
292 SharedLibPex boolean for making sharable libPEX5.so
293 SharedLibPhigs boolean for making sharable libphigs.so
294 SharedLibSM boolean for making sharable libSM.so
295 SharedLibX11 boolean for making sharable libX11.so
296 SharedLibXau boolean for making sharable libXau.so
297 SharedLibXaw boolean for making sharable libXaw.so
298 SharedLibXdmcp boolean for making sharable libXdmcp.so
299 SharedLibXext boolean for making sharable libXext.so
300 SharedLibXi boolean for making sharable libXi.so
301 SharedLibXie boolean for making sharable libXie.so
302 SharedLibXmu boolean for making sharable libXmu.so
303 SharedLibXt boolean for making sharable libXt.so
304 SharedLibXtst boolean for making sharable libXtst.so
305 SharedLibXag boolean for making sharable libXag.so
306 SharedOldX boolean for making sharable liboldX.so
307 ShmDefines MIT-SHM define
308 TwmDir directory in which to install twm config files
309 UseCCMakeDepend boolean for using alternate makedepend script
310 UseRgbTxt use rgb.txt file as is instead of DBM-compiled
311 VendorHasX11R6_3libXext don't need Security & AppGroup in xrx plug-in
312 XAppLoadDir directory in which to install app defaults
313 XFileSearchPathBase base file search path
314 XFileSearchPathDefault default path to search for app defaults files
315 XInputDefines XINPUT define
316 XMalloc0ReturnsNullDefines -D's specifically for libX11
317 XawClientDepLibs DEPLIBS for clients that use Xaw
318 XawClientLibs LOCAL_LIBRARIES for clients that use Xaw
319 XdmConfigurationSubdirectory name of default xdm configuration
320 XdmDir directory in which to install xdm files
321 XdmServersType type of xdm Xservers file to install
322 XinitDir directory in which to install xinit files
323 XPrintDir parent of X Print server config directory
324 XprtServer build the X Print server
325 XmanLocalSearchPath non-standard path for man pages
326 XtErrorPrefix leading text in XtError() msg; eg. 'X Toolkit '
327 XtWarningPrefix leading text in XtWarning()msg, same as above
328 XtMalloc0ReturnsNullDefines -D's specifically for libXt
329 ZBDFTOSNFFILT -D to run uncompress and bdftosnf
332 Library.tmpl provides defaults for the following variables:
334 AvoidNullMakeCommand for makes that spout about $(_NULLCMD_)
335 LibraryCCOptions special C compiler options for libraries
336 LibraryCDebugFlags library debug/optimize flags to override defs
337 LibraryCcCmd command to run C compiler in libraries
338 LibraryCplusplusOptions special C++ options for libraries
339 LibraryCplusplusDebugFlags library debug/optimize flags for C++
340 LibraryCplusplusCmd command to run C++ compiler in libraries
341 LibraryDefines -D's for libraries
342 SeparateSharedCompile shared and unshared libs use same binaries?
345 Server.tmpl provides defaults for the following variables:
347 ServerCCOptions server C compiler options to override defaults
348 ServerCcCmd command to run C compiler in server
349 ServerCDebugFlags server debug/opt compiler flags
350 ServerDefines server standard -D's
351 InstallServerSetUID does this system need X server suid to root?
354 Threads.tmpl provides defaults for the following variables:
356 LocalThreads whether to enable multi-threading support
357 LocalThreadsDefines -D flags needed in this directory
360 An <os>Lib.rules file provides defaults for the following variables:
362 HasSharedLibraries boolean for using shared libraries
363 SharedDataSeparation boolean indicating separate data/code
364 SharedCodeDef -D's for compiling shared library files
365 SharedLibraryDef -D's for defining which kind of shared lib
366 ShLibIncludeFile location of the <os>Lib.tmpl file
367 SharedLibraryLoadFlags loader flags when making the library
368 UseExportLists boolean for using an export list
369 PositionIndependentCFlags PIC compiler flags for C
370 PositionIndependentCplusplusFlags PIC compiler flags for C++
372 Note: PositionIndependentCplusplusFlags is only required if the
373 C and C++ compilers use different flags to build PIC code. The
374 default configuration will try to use PositionIndependentCFlags
375 for both C and C++ compiles.
377 An <os>Lib.tmpl file provides defaults for the following variables:
379 SharedFSReqs required libs for libFS.so
380 SharedFSRev version number for libFS.so
381 SharedICEReqs required libs for libICE.so
382 SharedICERev version number for libICE.so
383 SharedOldXReqs required libs for liboldX.so
384 SharedOldXRev version number for liboldX.so
385 SharedPexReqs required libs for libPEX5.so
386 SharedPexRev version number for libPEX5.so
387 SharedSMReqs required libs for libSM.so
388 SharedSMRev version number for libSM.so
389 SharedX11Reqs required libs for libX11.so
390 SharedX11Rev version number for libX11.so
391 SharedXauReqs required libs for libXau.so
392 SharedXauRev version number for libXau.so
393 SharedXawReqs required libs for libXaw.so
394 SharedXawRev version number for libXaw.so
395 SharedXdmcpReqs required libs for libXdmcp.so
396 SharedXdmcpRev version number for libXdmcp.so
397 SharedXextReqs required libs for libXext.so
398 SharedXextRev version number for libXext.so
399 SharedXiReqs required libs for libXi.so
400 SharedXiRev version number for libXi.so
401 SharedXieReqs required libs for libXie.so
402 SharedXieRev version number for libXie.so
403 SharedXmuReqs required libs for libXmu.so
404 SharedXmuRev version number for libXmu.so
405 SharedXtReqs required libs for libXt.so
406 SharedXtRev version number for libXt.so
407 SharedXtstReqs required libs for libXtst.so
408 SharedXtstRev version number for libXtst.so
409 SharedXmReqs required libs for libXm.so
410 SharedXmRev version number for libXm.so
411 SharedMrmReqs required libs for libMrm.so
412 SharedMrmRev version number for libMrm.so
413 SharedUilReqs required libs for libUil.so
414 SharedUilRev version number for libUil.so
415 SharedTtReqs required libs for libtt.so
416 SharedTtRev version number for libtt.so
417 SharedPamReqs required libs for libpam.so
418 SharedPamRev version number for libpam.so
419 SharedDtSvcReqs required libs for libDtSvc.so
420 SharedDtSvcRev version number for libDtSvc.so
421 SharedDtSearchReqs required libs for libDtSearch.so
422 SharedDtSearchRev version number for libDtSearch.so
423 SharedDtWidgetReqs required libs for libDtWidget.so
424 SharedDtWidgetRev version number for libDtWidget.so
425 SharedDtHelpReqs required libs for libDtHelp.so
426 SharedDtHelpRev version number for libDtHelp.so
427 SharedDtPrintReqs required libs for libDtPrint.so
428 SharedDtPrintRev version number for libDtPrint.so
429 SharedDtTermReqs required libs for libDtTerm.so
430 SharedDtTermRev version number for libDtTerm.so
431 SharedDtMrmReqs required libs for libDtMrm.so
432 SharedDtMrmRev version number for libDtMrm.so
434 The following variables are used by some part of the tree:
436 AckToolset programs/Xserver/hw/xfree86
437 BuildChooser build the xdm chooser program?
438 SharedLibXdmGreet use xdm shared dynamic greeter library?
439 LatexCmd command to run LaTeX on a document
440 DvipsCmd command to turn .dvi file into PostScript
441 MotifBC using Motif 1.1.1, 1.1.2, or 1.1.3?
442 GetValuesBC compat GetValues behavior for broken apps?
443 NeedBerklib application needs libXbsd?
444 SvgaConfig default SVGA configuration
445 HasGetReturnAddress util/memleak
446 HasShadowPasswd system has getspnam() function
447 XnestServer build X server with Xlib-based ddx
448 XVirtualFramebufferServer build X server with virtual memory framebuffer
449 XpRasterDDX include the raster print ddx driver
450 XpColorPclDDX include the color PCL print ddx driver
451 XpMonoPclDDX include the monochrome PCL print ddx driver
452 XpPostScriptDDX include the PostScript print ddx driver
453 WebServer host:port of your Web server (see programs/xrx)
454 HtmlDir path used by Web server for HTML and RX docs
455 CgiBinDir path used by Web server for CGI programs
456 ProxyManager ICE network ID to contact a running proxymngr
461 The following make variables are used by imake rules and may be set in
462 an individual Imakefile.
464 DEFINES program-specific -D flags and other arguments
465 to pass to the C compiler, lint, and makedepend.
466 DEPEND_DEFINES program-specific flags in addition to
467 $(DEFINES) to pass to lint and makedepend.
468 This is usually used when there are special
469 compilation rules for individual files, and
470 the defines passed to those files affect
471 makedepend results. If they can be passed to
472 all files during the makedepend step without
473 affecting the results for other files,
474 DEPEND_DEFINES is used to do that. Example is
476 INCLUDES program-specific -I flags.
477 HEADERS .h files to install with "make includes" and
478 "make install". If this Imakefile includes
479 Library.tmpl there are no headers, include
480 this line instead of a HEADERS definition:
481 #define LibHeaders NO
482 REQUIREDLIBS when building a shared library, other libraries used
483 by this library that should be referenced at
485 LINTLIBS program-specific libraries for lint.
486 LOCAL_LDFLAGS program-specific flags for the linker.
487 LOCAL_LIBRARIES project libraries (usually specified
488 as -lname) needed by this program.
489 For example, "-lXt -lXext -lX11".
490 Used by SimpleProgramTarget and
491 ComplexProgramTarget* rules.
492 Do not include any system-specific libraries here.
493 SYS_LIBRARIES system libraries (usually specified
494 as -lname) needed by this program.
495 For example "MathLibrary".
496 Do not include any system-specific libraries
497 such as "-lnsl" here; they are automatically
498 added to the link command by the
499 vendor-specific .cf file.
500 SUBDIRS for an Imakefile in a directory containing
501 subdirectories, this names the subdirectories.
502 Such an Imakefile also needs to #define IHaveSubdirs
503 and call MakeSubdirs() and DependSubdirs().
504 MANSUFFIX suffix used by InstallManPage* rules.
505 May be set to $(LIBMANSUFFIX) or $(FILEMANSUFFIX) in
506 directories for libraries or data files.
509 Rule-specific variables that may be set in an individual Imakefile.
510 If you aren't using these rules, you may need variables with a similar
511 function, but you need not use these names. However, following these
512 conventions may make your Imakefile easier to read and maintain.
514 DEPLIBS library dependencies for ComplexProgramTarget
515 SRCS source files used by ComplexProgramTarget and
517 OBJS object files used by ComplexProgramTarget
518 PROGRAMS default target used with ComplexProgramTarget_(n)
519 SRCS1 source files used by ComplexProgramTarget_1
520 OBJS1 object files used by ComplexProgramTarget_1
521 DEPLIBS1 library dependencies for ComplexProgramTarget_1
522 SRCS2 source files used by ComplexProgramTarget_2
523 OBJS2 object files used by ComplexProgramTarget_2
524 DEPLIBS2 library dependencies for ComplexProgramTarget_2
525 SRCS3 source files used by ComplexProgramTarget_3
526 OBJS3 object files used by ComplexProgramTarget_3
527 DEPLIBS3 library dependencies for ComplexProgramTarget_3
529 Variables that can be set on the make command line:
531 DESTDIR directory under which "make install" should
532 install instead of "/"; used only for testing
533 "make install" rules.
534 FILE file for "lint1" target to run lint on.
535 CDEBUGFLAGS -g and/or -O flag to control C compiler optimization.
536 CXXDEBUGFLAGS -g and/or -O flag to control C++ optimization.
537 LDSTRIPFLAGS flag to have linker strip objects (typically -x).
538 Typically set to the empty string to prevent
539 the linker from stripping objects; use this
540 way when setting CDEBUGFLAGS to "-g".
542 These variables are set in project-specific files such as X11.tmpl.
543 They should NOT be set in an Imakefile. These variables are sometimes
544 misused; they are included here to remind Imakefile writers NOT to use
547 EXTRA_DEFINES project-specific -D flags
548 EXTRA_INCLUDES project-specific -I flags
549 EXTRA_ICONFIGFILES Additional project-specific imake config files
550 to add to ICONFIGFILES.
551 This is a list of files that define variables
552 that might affect compilation of some files.
554 Many other make variables are set up by the imake config files and can
555 be used in an Imakefile. The easiest way to discover them is to look
556 at the Makefile generated by an empty Imakefile.
561 Use C comment syntax in an Imakefile for comments that should not
562 appear in the resulting Makefile.
563 Use "XCOMM" at the start of each
564 line to produce a comment that will appear in the Makefile.
566 be translated into the Makefile comment character "#" by imake.)
567 Do NOT use "#" as a comment character in Imakefiles; it confuses the C
568 preprocessor used by imake on some systems.
573 Don't abuse the variables in X11.tmpl that describe
574 particular pieces of X by using them to describe your own subsystems.
575 Instead, create new variables that are defaulted using
576 Imake.tmpl variables.
581 Since the easiest way to write an Imakefile is to start with one that
582 works, here are some short, easy-to-read Imakefile examples in the X
585 with subdirs: config/Imakefile
586 library: lib/Xau/Imakefile
587 simple program: programs/xdpyinfo/Imakefile
588 complex progs: programs/xclipboard/Imakefile
589 complex prog: programs/xmodmap/Imakefile
593 Here are some of the common rules for building programs. How to use
594 them is described in Imake.rules and in the O'Reilly book "Software
595 Portability with imake."
597 Basic program-building rules
599 All of these except NormalProgramTarget also generate rules to install
600 the program and its manual page, and to generate dependencies.
602 SimpleProgramTarget Use if there is only one program to be made
603 and it has only one source file.
605 ComplexProgramTarget Use if there is only one program to be made
606 and it has multiple source files. Set SRCS to
607 the names of the source files, set OBJS to
608 the names of the object files, and set DEPLIBS
609 to the libraries that this program depends on.
611 ComplexProgramTarget_1 Like ComplexProgramTarget, but uses SRCS1,
612 OBJS1, and DEPLIBS1 and can be used with
613 ComplexProgramTarget_2 and ComplexProgramTarget_3
614 to build up to three programs in the same directory.
615 Set PROGRAMS to the programs built by all of
616 these rules. For more than 3 programs, use
617 NormalProgramTarget for each.
618 ComplexProgramTarget_2 Use after ComplexProgramTarget_1 for the
619 second program in a directory. Uses SRCS2,
621 ComplexProgramTarget_3 Use after ComplexProgramTarget_2 for the
622 third program in a directory. Uses SRCS3,
625 NormalProgramTarget Build a program. Can be used multiple times
626 with different arguments in the same Imakefile.
628 Lower level rules, often used with NormalProgramTarget
630 InstallProgram install a program.
632 InstallManPage install a manual page.
634 DependTarget() include once at end of Imakefile with
635 NormalProgramTarget rules or that uses Library.tmpl.
636 Generates dependencies for files named in SRCS.
638 Manual page rules, commonly used only in special documentation directories:
642 InstallManPageAliases
646 SpecialCObjectRule Compile a C file with special flags.
647 AllTarget Declare additional targets to build.
648 InstallAppDefaults Install X application defaults file.
650 Imakefile for directory with subdirectories
652 XCOMM this is a sample Imakefile for a directory containing subdirectories
654 #define PassCDebugFlags CDEBUGFLAGS="$(CDEBUGFLAGS)"
655 SUBDIRS = list of subdirs ...
656 MakeSubdirs($(SUBDIRS))
657 DependSubdirs($(SUBDIRS))
662 These targets are typically NOT defined explicitly by the Imakefile
663 writer; rather they are generated automatically by imake rules.
664 They are listed here for the convenience of people using the resulting
665 Makefile, not people writing the original Imakefile.
667 all Default rule; builds whatever is in this directory.
668 Makefile Remake the Makefile (use after changing Imakefile).
669 Run "make depend" after.
670 Makefiles Remake all Makefiles in subdirectories. (Does
671 nothing if no subdirectories.)
672 Run "make depend" after.
673 includes Generate and install in the tree any necessary
675 depend Update dependencies in the Makefile calculated
676 by examining the source files.
677 install Install what "make all" built on the system.
678 install.man Install manual pages.
679 clean Remove built objects and other derived files.
681 tags Create a tags file.