README 29 KB

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