]> git.sesse.net Git - rdpsrv/blob - Xserver/config/cf/README
Import X server from vnc-3.3.7.
[rdpsrv] / Xserver / config / cf / README
1 $TOG: README /main/66 1997/05/20 10:05:36 kaleb $
2
3
4
5
6 $XFree86: xc/config/cf/README,v 1.1.1.9.2.3 1998/01/23 12:35:07 dawes Exp $
7
8 The easiest way to write an Imakefile is to find another one that does
9 something similar and copy/modify it!
10
11 To change any of these variables, edit the site.def file.
12
13 Imake.tmpl provides defaults for the following variables:
14
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
152
153 X11.tmpl provides defaults for the following variables:
154
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
330
331
332 Library.tmpl provides defaults for the following variables:
333
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?
343
344
345 Server.tmpl provides defaults for the following variables:
346
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?
352
353
354 Threads.tmpl provides defaults for the following variables:
355
356         LocalThreads            whether to enable multi-threading support
357         LocalThreadsDefines     -D flags needed in this directory
358
359
360 An <os>Lib.rules file provides defaults for the following variables:
361
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++
371
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.
376
377 An <os>Lib.tmpl file provides defaults for the following variables:
378
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
433
434 The following variables are used by some part of the tree:
435
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
457
458
459 Make Variables
460
461 The following make variables are used by imake rules and may be set in
462 an individual Imakefile.
463
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
475                         the Xlib Imakefile.
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
484                         link time.
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.
507
508
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.
513
514 DEPLIBS                 library dependencies for ComplexProgramTarget
515 SRCS                    source files used by ComplexProgramTarget and
516                         DependTarget.
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
528
529 Variables that can be set on the make command line:
530
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".
541
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
545 them:
546
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.
553
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.
557
558
559 Comments
560
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.
565 (The "XCOMM" will
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.
569
570
571 Imake variables
572
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.
577
578
579 Examples
580
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
583 distribution:
584
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
590
591 Common Rules
592
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."
596
597 Basic program-building rules
598
599 All of these except NormalProgramTarget also generate rules to install
600 the program and its manual page, and to generate dependencies.
601
602 SimpleProgramTarget     Use if there is only one program to be made
603                         and it has only one source file.
604
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.
610
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,
620                         OBJS2, and DEPLIBS2.
621 ComplexProgramTarget_3  Use after ComplexProgramTarget_2 for the
622                         third program in a directory.  Uses SRCS3,
623                         OBJS3, and DEPLIBS3.
624
625 NormalProgramTarget     Build a program.  Can be used multiple times
626                         with different arguments in the same Imakefile.
627
628 Lower level rules, often used with NormalProgramTarget
629
630 InstallProgram          install a program.
631
632 InstallManPage          install a manual page.
633
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.
637
638 Manual page rules, commonly used only in special documentation directories:
639
640 InstallManPage
641 InstallManPageLong
642 InstallManPageAliases
643
644 Other rules:
645
646 SpecialCObjectRule      Compile a C file with special flags.
647 AllTarget               Declare additional targets to build.
648 InstallAppDefaults      Install X application defaults file.
649
650 Imakefile for directory with subdirectories
651
652 XCOMM this is a sample Imakefile for a directory containing subdirectories
653 #define IHaveSubdirs
654 #define PassCDebugFlags CDEBUGFLAGS="$(CDEBUGFLAGS)"
655 SUBDIRS = list of subdirs ...
656 MakeSubdirs($(SUBDIRS))
657 DependSubdirs($(SUBDIRS))
658
659
660 Common Targets
661
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.
666
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
674                         header files.
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.
680 lint                    Run lint.
681 tags                    Create a tags file.