README revision d7ffce2a
11cc8c64fSmrgThe xorg-cf-files package contains the data files for the imake utility, 21cc8c64fSmrgdefining the known settings for a wide variety of platforms (many of which 318eba588Smrghave not been verified or tested in over a decade), and for many of the 41cc8c64fSmrglibraries formerly delivered in the X.Org monolithic releases. 518eba588Smrg 61cc8c64fSmrgThe X Window System used imake extensively up through the X11R6.9 release, 7b5d2086dSmrgfor both full builds within the source tree and external software. 818eba588SmrgX has since moved to GNU autoconf and automake for its build system in 918eba588SmrgX11R7.0 and later releases, but still maintains imake for building existing 10b5d2086dSmrgexternal software programs that have not yet converted. 11b5d2086dSmrg 121cc8c64fSmrgMore information about Imake and its usage may be found in the resources 131cc8c64fSmrgat: 14b5d2086dSmrg http://www.snake.net/software/imake-stuff/ 15b5d2086dSmrg http://www.kitebird.com/imake-book/ 16b5d2086dSmrg 171cc8c64fSmrgAll questions regarding this software should be directed at the 18b9bb67cbSmrgXorg mailing list: 19b9bb67cbSmrg 2018eba588Smrg http://lists.freedesktop.org/mailman/listinfo/xorg 2118eba588Smrg 2218eba588SmrgPlease submit bug reports to the Xorg bugzilla: 231cc8c64fSmrg 241cc8c64fSmrg https://bugs.freedesktop.org/enter_bug.cgi?product=xorg 25b9bb67cbSmrg 261cc8c64fSmrgThe master development code repository can be found at: 271cc8c64fSmrg 28b9bb67cbSmrg git://anongit.freedesktop.org/git/xorg/util/cf 2918eba588Smrg 30b5d2086dSmrg http://cgit.freedesktop.org/xorg/util/cf 31b5d2086dSmrg 32b5d2086dSmrgFor patch submission instructions, see: 33b5d2086dSmrg 34b5d2086dSmrg http://www.x.org/wiki/Development/Documentation/SubmittingPatches 35b9bb67cbSmrg 36b9bb67cbSmrgFor more information on the git code manager, see: 37b9bb67cbSmrg 38b9bb67cbSmrg http://wiki.x.org/wiki/GitPage 3918eba588Smrg 4018eba588Smrg------------------------------------------------------------------------------ 4118eba588Smrg 4218eba588Smrg$Xorg: README,v 1.4 2000/08/18 04:03:58 coskrey Exp $ 4318eba588Smrg$XFree86: xc/config/cf/README,v 1.20 2003/04/14 20:35:50 herrb Exp $ 4418eba588Smrg 4518eba588SmrgThe easiest way to write an Imakefile is to find another one that does 4618eba588Smrgsomething similar and copy/modify it! 47b9bb67cbSmrg 48b9bb67cbSmrgTo change any of these variables, edit the site.def file. 49b9bb67cbSmrg 5018eba588SmrgImake.tmpl provides defaults for the following variables: 5118eba588Smrg 5218eba588Smrg AlternateIncRoot compiler needs -I to find project includes 5318eba588Smrg AlternateUsrLibDir linker needs -L to find project libraries 5418eba588Smrg ArCmd command used to create libraries 5518eba588Smrg ArCmdBase program name part of ArCmd 5618eba588Smrg ArAddCmd flags to have ArCmdBase add files to a library 5718eba588Smrg ArExtCmd flags to have ArCmdBase extract files 5818eba588Smrg AsCmd command used to run assembler 5918eba588Smrg BootstrapCFlags missing cpp symbols needed to get started 6018eba588Smrg BourneShell command used to run Bourne Shell 6118eba588Smrg CCsuf suffix that C++ source files have 6218eba588Smrg CURDIR current directory relative to top of sources 6318eba588Smrg CcCmd command to run C compiler 6418eba588Smrg CompressCmd command to run compress program 6518eba588Smrg ConstructMFLAGS System V option to set MFLAGS make variable 6618eba588Smrg CpCmd command to copy one file to another 6718eba588Smrg CplusplusCmd command to run C++ compiler 6818eba588Smrg CplusplusFilt command to run C++ name demangler 6918eba588Smrg CplusplusYaccCmd command to produce C++ source from yacc source 7018eba588Smrg CppCmd command to run C preprocessor 7118eba588Smrg CrossCompiling cross compiling? (not fully supported) 7218eba588Smrg DebuggableCDebugFlags C compiler -I's and -D's to turn on debug info 7318eba588Smrg DefaultCCOptions default special C compiler options 7418eba588Smrg DefaultCDebugFlags debug/optimize flags for programs 7518eba588Smrg DefaultUsrBin program directory used even if PATH not set 76b9bb67cbSmrg DependFlags extra makedepend flags 77b9bb67cbSmrg DoRanlibCmd boolean for system uses ranlib 7818eba588Smrg EqnCmd command used for eqn 79b9bb67cbSmrg ExecableScripts boolean for systems that can exec() #!/bin/sh 80b9bb67cbSmrg ExpandManNames boolean to expand man pages names to long form 81b9bb67cbSmrg ExtraFilesToClean extra files to remove on make clean 82b9bb67cbSmrg ExtraLibraries system-specific libraries need to link 83b9bb67cbSmrg ExtraLoadFlags system-specific loader flags 841cc8c64fSmrg FileManSuffix man suffix for file format pages 851cc8c64fSmrg FilesToClean files to delete in make clean 861cc8c64fSmrg FortranCmd command to run Fortran compiler 87b9bb67cbSmrg FortranDebugFlags flags for Fortran debug info 88b5d2086dSmrg FortranFlags Fortran compiler flags 89b5d2086dSmrg GzipCmd command to run gzip program 90b9bb67cbSmrg HasBSD44Sockets boolean for system has BSD4.4 sockets 91b9bb67cbSmrg HasBsdMake use the 4.4BSD variant of the make program? 92b9bb67cbSmrg HasBsearch boolean for libc has bsearch() 93b9bb67cbSmrg HasBrokenCCForLink boolean for brain damaged cc driver 94b9bb67cbSmrg HasCenterLineC boolean for system has CenterLine C compiler 9518eba588Smrg HasCenterLineCplusplus boolean for system has CenterLine C++ compiler 9618eba588Smrg HasClearmake use Clearcase's clearmake make program? 9718eba588Smrg HasCodeCenter boolean for system has CodeCenter 9818eba588Smrg HasCookieMaker boolean for system has xauth cookie generator 9918eba588Smrg HasCplusplus system has a C++ compiler? 10018eba588Smrg HasDECnet system has DECnet? 101b5d2086dSmrg HasFortran boolean for system has Fortran compiler 102b9bb67cbSmrg HasGcc boolean for system has GNU gcc compiler 103b9bb67cbSmrg HasGcc2 boolean for system has GNU gcc 2.x compiler 104b9bb67cbSmrg HasGcc2ForCplusplus use gcc 2 for C++ programs? 105b9bb67cbSmrg HasGnuMake use the GNU make program? 106b9bb67cbSmrg HasGhostPCL boolean for system has GhostPCL 107b9bb67cbSmrg HasGhostScript boolean for system has GhostScript 108b9bb67cbSmrg HasKrbIV system has Kerberos version IV support? 109b9bb67cbSmrg HasKrb5 system has Kerberos version 5 support? 110b9bb67cbSmrg HasLargeTmp boolean for system has /tmp space 111b9bb67cbSmrg HasLatex system has LaTeX document preparation software 11218eba588Smrg HasLibCrypt boolean for system has libcrypt 113b5d2086dSmrg HasMotif boolean for system has Motif 114b9bb67cbSmrg HasMotif2 boolean for system has Motif2 or OpenMotif 115b9bb67cbSmrg HasNdbm boolean for system has ndbm routines 116b5d2086dSmrg HasPoll use poll() syscall? 11718eba588Smrg HasPurify boolean for system has Purify 11818eba588Smrg HasPutenv boolean for libc has putenv() 11918eba588Smrg HasSecureRPC boolean for Sun Secure RPC 12018eba588Smrg HasSetProcTitle boolean for setproctitle() 12118eba588Smrg HasSetUserContext boolean for setusercontext() 12218eba588Smrg HasSentinel boolean for system has Sentinel available 12318eba588Smrg HasSharedLibraries boolean for system has shared libraries 12418eba588Smrg HasShm boolean for System V shared memory 12518eba588Smrg HasSockets boolean for system has BSD sockets 12618eba588Smrg HasStrcasecmp boolean for system implements str[n]casecmp 12718eba588Smrg HasStreams use STREAMS I/O interface? 12818eba588Smrg HasSymLinks boolean for system has symbolic links 12918eba588Smrg HasTestCenter boolean for system has TestCenter 13018eba588Smrg HasVarDirectory boolean for system has /var 13118eba588Smrg HasVFork boolean for system has vfork() 13218eba588Smrg HasVoidSignalReturn boolean for POSIX signal() procs 13318eba588Smrg HasZlib boolean for system has libz 13418eba588Smrg IncludeSharedObjectInNormalLib define for static libs to include 13518eba588Smrg -fPIC objects on relevant archs 13618eba588Smrg IncRoot parent of X11 include directory 13718eba588Smrg InstBinFlags install flags for binaries 13818eba588Smrg InstDatFlags install flags for data files 13918eba588Smrg InstIncFlags install flags for header files 14018eba588Smrg InstKmemFlags install flags for xload to get at /dev/kmem 14118eba588Smrg InstLibFlags install flags for libraries 142b5d2086dSmrg InstManFlags install flags for manual pages 14318eba588Smrg InstPgmFlags install flags for normal programs 14418eba588Smrg InstUidFlags install flags for xterm to chown /dev/ptys 14518eba588Smrg InstallCmd command to install files 146b5d2086dSmrg KrbIVIncludes where to include KerberosIV header files from 147b5d2086dSmrg KrbIVLibraries where to load KerberosIV libraries from 148b5d2086dSmrg Krb5Includes where to include Kerberos header files from 149b5d2086dSmrg Krb5Libraries where to load Kerberos libraries from 150b5d2086dSmrg LdCmd command to run loader 151b5d2086dSmrg LdCombineFlags flags for incremental loading 15218eba588Smrg LexCmd command to run lex 153b5d2086dSmrg LexLib library for programs using lex output 154b5d2086dSmrg LintCmd command to run lint 155b5d2086dSmrg LintLibFlag flags to generate lint libraries 156b5d2086dSmrg LintOpts lint options to control strictness 157b5d2086dSmrg LnCmd command to link two files 158b5d2086dSmrg LoaderLibPrefix loader flags before libraries 159b5d2086dSmrg LocalRulesFile site-specific file with additional imake rules 160b5d2086dSmrg LocalTmplFile file with additional imake variables 161b5d2086dSmrg MacroFile name of machine-dependent config params file 162b5d2086dSmrg MacroIncludeFile <MacroFile> 163b5d2086dSmrg MakeCmd command to run make 164b5d2086dSmrg Malloc0ReturnsNull boolean for malloc(0) == NULL 165b5d2086dSmrg Malloc0ReturnsNullDefines -D's to build libX11/libXt 166b5d2086dSmrg MathLibrary library for programs using C math functions 167b5d2086dSmrg MkCookieCmd command to generate an xauth cookie 168b5d2086dSmrg MsMacros macro flag for TroffCmd, normally "-ms" 169b5d2086dSmrg MvCmd command to rename a file 170b5d2086dSmrg NdbmDefines -D's to turn on use of ndbm routines 171b5d2086dSmrg NeedConstPrototoypes whether const is supported 17218eba588Smrg NeedFunctionPrototypes whether or not to force function prototypes 17318eba588Smrg NeedNestedPrototypes whether nested prototypes are supported 174b5d2086dSmrg NeedVarargsPrototypes whether varargs prototypes are supported 17518eba588Smrg NeedWidePrototypes whether or not to widen function prototypes 176b5d2086dSmrg NoOpCDebugFlags C compiler flags to not debug or optimize 177b5d2086dSmrg NoRConst YES if const for structs of funcs is bad 17818eba588Smrg OSMajorVersion major version number of operating system 17918eba588Smrg OSMinorVersion minor version number of operating system 18018eba588Smrg OSName operating system name 18118eba588Smrg OSTeenyVersion maintenance version number of operating system 182b5d2086dSmrg OptimizedCDebugFlags C compiler flags to turn on optimization 183b5d2086dSmrg XtPopdownConformance XtPopdown conformans to the specification 184b5d2086dSmrg PreProcessCmd command to run /lib/cpp on scripts 185b5d2086dSmrg RanlibCmd command to clean up libraries 186b5d2086dSmrg RanlibInstFlags flags to ranlib after copying 18718eba588Smrg ResourceConfigurationManagement boolean for Xt's Resource Configuration 18818eba588Smrg Management 189b5d2086dSmrg RmCmd command to delete files 19018eba588Smrg ShLibDir directory in which to install shared libraries 191b5d2086dSmrg StandardCppDefines -D's for running cpp 192b5d2086dSmrg StandardDefines -D's for running C compiler 19318eba588Smrg StandardIncludes -I's for running C compiler 19418eba588Smrg StripInstalledPrograms boolean for sites that want to install -s 195b5d2086dSmrg SystemV boolean for systems that are at least SVR2 19618eba588Smrg SystemV4 boolean for SVR4 systems 197b5d2086dSmrg TOPDIR relative path to top of sources 198b5d2086dSmrg TagsCmd command to run tags 199b5d2086dSmrg TblCmd command to run tbl 200b5d2086dSmrg TroffCmd command to run troff to get PostScript 201b5d2086dSmrg UNCOMPRESSPATH command to run uncompress (obsolete) 20218eba588Smrg UnalignedReferencesAllowed boolean for unaligned copies ok 20318eba588Smrg UsrLibDir directory in which to install libraries 20418eba588Smrg YaccCmd command to run yacc 20518eba588Smrg 20618eba588SmrgX11.tmpl provides defaults for the following variables: 207b5d2086dSmrg 208b5d2086dSmrg AdmDir directory containing system log files 209b5d2086dSmrg AllocateLocalDefines -D's to turn on alloca() (should be in Imake.tmpl) 210b5d2086dSmrg BDFTOSNFFILT command to run bdftosnf 211b5d2086dSmrg BaseExtensionDefines universal extensions to use 21218eba588Smrg BinDir directory in which to install programs 213b5d2086dSmrg BuildAppgroup build AppGroup extension in server 21418eba588Smrg BuildCup build Colormap Utilization extension in server 21518eba588Smrg BuildDBE build DOUBLE-BUFFER extension 216b5d2086dSmrg BuildDmx build Distributed Multihead X server and extension 21718eba588Smrg BuildDPMS build Display Power Management Signaling extension 21818eba588Smrg BuildFontServer build font server 219b5d2086dSmrg BuildFonts build pcf fonts 220b5d2086dSmrg BuildIncRoot relative path to location of headers in build 221b5d2086dSmrg BuildIncTop path from build includes directory to top 222b5d2086dSmrg BuildEVI build EVI server extension 223b5d2086dSmrg BuildLBX build LBX (aka X.fast) server extension 224b5d2086dSmrg BuildMultibuffer build Multibuffer extension (obsolete) 225b5d2086dSmrg BuildPlugin build xrx plug-in for web browsers 226b5d2086dSmrg BuildRECORD Build RECORD extension 22718eba588Smrg BuildServer build X server 22818eba588Smrg BuildXAudio build Audio 229b5d2086dSmrg BuildXAServer build Audio server 23018eba588Smrg BuildXCSecurity Build Security Extension 23118eba588Smrg BuildXInputExt build X Input extension (requires ddx support, 23218eba588Smrg which exists only in Xhp and XFree86) 23318eba588Smrg BuildXInputLib build X Input library 23418eba588Smrg BuildXKB build X Keyboard Extension? 235b5d2086dSmrg BuildXKBlib build X Keyboard Extension into Xlib? 23618eba588Smrg UseXKBInClients Use XKB functions in normal clients? 23718eba588Smrg ConfigDir install directory for config files 238b5d2086dSmrg ConnectionFlags -D's for supported transports 23918eba588Smrg ContribDir location of user-contributed sources 24018eba588Smrg DebugLibFS build libFS_d.a 24118eba588Smrg DebugLibICE build libICE_d.a 24218eba588Smrg DebugLibSM build libSM_d.a 24318eba588Smrg DebugLibX11 build libX11_d.a 24418eba588Smrg DebugLibXau build libXau_d.a 24518eba588Smrg DebugLibXaw build libXaw_d.a 24618eba588Smrg DebugLibXdmcp build libXdmcp_d.a 24718eba588Smrg DebugLibXext build libXext_d.a 24818eba588Smrg DebugLibXi build libXi_d.a 24918eba588Smrg DebugLibXmu build libXmu_d.a 25018eba588Smrg DebugLibXt build libXt_d.a 25118eba588Smrg DebugLibXtst build libXtst_d.a 25218eba588Smrg DebugLibXag build libXag_d.a 25318eba588Smrg DebugOldX build liboldX_d.a 25418eba588Smrg DefaultCursorTheme name of default cursor theme 25518eba588Smrg DefaultFSConfigFile default font server config file 25618eba588Smrg DefaultFontPath default server font path 25718eba588Smrg DefaultRGBDatabase default server rgb color database 25818eba588Smrg DefaultSystemPath default system xdm PATH environment variable 25918eba588Smrg DefaultSystemShell default /bin/sh 26018eba588Smrg DefaultUserPath default user xdm PATH environment variable 26118eba588Smrg DependCmd command to run makedepend 26218eba588Smrg DependDir build directory containing makedepend program 26318eba588Smrg DriverManDir directory in which to install driver man pages 26418eba588Smrg DriverManSuffix man suffix for driver pages 26518eba588Smrg ExtensionDefines -D's for universal extensions 26618eba588Smrg ExtensionOSDefines -D's for additional extensions 26718eba588Smrg FontCompilerFlags flags for bdftosnf 26818eba588Smrg FontDefines -D's to turn on font options 269b5d2086dSmrg FontDir directory in which to install fonts 27018eba588Smrg FontFilters -D's to specify font conversion filters 27118eba588Smrg FontOSDefines -D's for which fonts to support 272b5d2086dSmrg ForceNormalLib force building of .a in addition to shared lib 273b5d2086dSmrg GzipFontCompression boolean for using gzip instead of compress 274b5d2086dSmrg HasXdmAuth boolean for using XDM-AUTHORIZATION-1; 275b5d2086dSmrg needs Wraphelp.c, see Release Notes 276b5d2086dSmrg InstallAppDefFiles install new app defaults files over old? 277b5d2086dSmrg InstallFSConfig install fs config file over old? 278b5d2086dSmrg InstallLibManPages boolean for installing library man pages 279b5d2086dSmrg InstallSecurityConfig install server security policy file over old? 280b5d2086dSmrg InstallXdmConfig install xdm config files over old? 281b5d2086dSmrg InstallXinitConfig install xinit config files over old? 282b5d2086dSmrg KrbIVDefines defines for use with KerberosIV 283b5d2086dSmrg LibDir directory in which to install X11 support files 284b5d2086dSmrg LibManSuffix man suffix for library pages 285b5d2086dSmrg LibmanDir directory in which to install library man pages 286b5d2086dSmrg LintlibDir directory in which to install lint libs 287b5d2086dSmrg ManDir directory in which to install program man pages 288b5d2086dSmrg ManDirectoryRoot parent of man directories relative to root 289b5d2086dSmrg ManPath full path of parent directory 290b5d2086dSmrg ManSourcePath common prefix of man page directories 291b5d2086dSmrg ManSuffix man suffix for programs 292b5d2086dSmrg MiscManSuffix man suffix for miscellaneous pages 293b5d2086dSmrg MiscManDir directory in which to install misc man pages 294b5d2086dSmrg NeedDefaultDepLibs boolean for enabling default DEPLIBS 295b5d2086dSmrg NlsDir directory in which to install nls files 296b5d2086dSmrg NormalLibFS build libFS.a 297b5d2086dSmrg NormalLibICE build libICE.a 298b5d2086dSmrg NormalLibSM build libSM.a 29918eba588Smrg NormalLibX11 build libX11.a 300b5d2086dSmrg NormalLibXau build libXau.a 301b5d2086dSmrg NormalLibXaw build libXaw.a 302b5d2086dSmrg NormalLibXdmcp build libXdmcp.a 303b5d2086dSmrg NormalLibXext build libXext.a 304b5d2086dSmrg NormalLibXi build libXi.a 305b5d2086dSmrg NormalLibXmu build libXmu.a 306b5d2086dSmrg NormalLibXt build libXt.a 307b5d2086dSmrg NormalLibXtst build libXtst.a 308b5d2086dSmrg NormalLibXag build libXag.a 309b5d2086dSmrg NormalOldX build liboldX.a 310b5d2086dSmrg OsNameDefines If uname(2) unavailable, set to -DOS_NAME=OSName 311b5d2086dSmrg PrimaryScreenResolution resolution of default server screen 312b5d2086dSmrg ProfileLibFS build libFS_p.a 313b5d2086dSmrg ProfileLibICE build libICE_p.a 314b5d2086dSmrg ProfileLibSM build libSM_p.a 315b5d2086dSmrg ProfileLibX11 build libX11_p.a 316b5d2086dSmrg ProfileLibXau build libXau_p.a 31718eba588Smrg ProfileLibXaw build libXaw_p.a 31818eba588Smrg ProfileLibXdmcp build libXdmcp_p.a 31918eba588Smrg ProfileLibXext build libXext_p.a 32018eba588Smrg ProfileLibXi build libXi_p.a 32118eba588Smrg ProfileLibXmu build libXmu_p.a 32218eba588Smrg ProfileLibXt build libXt_p.a 32318eba588Smrg ProfileLibXtst build libXtst_p.a 32418eba588Smrg ProfileLibXag build libXag_p.a 325b5d2086dSmrg ProfileOldX build liboldX_p.a 326b5d2086dSmrg ProjectX version indicating this is the X Window System 327b5d2086dSmrg RemoveTargetProgramByMoving boolean for rm -f that doesn't 328b5d2086dSmrg SHELLPATH -D for /bin/sh 329b5d2086dSmrg ServerConfigDir directory for server security config files 330b5d2086dSmrg ServerDefines complete -D's for server 331b5d2086dSmrg ServerExtraDefines special -D's for server 332b5d2086dSmrg ServerOSDefines OS -D's for server 333b5d2086dSmrg ServerAssertDefines -DNDEBUG for no assertions, /**/ for assertions 334b5d2086dSmrg SharedLibFS boolean for making sharable libFS.so 335b5d2086dSmrg SharedLibICE boolean for making sharable libICE.so 336b5d2086dSmrg SharedLibSM boolean for making sharable libSM.so 337b5d2086dSmrg SharedLibX11 boolean for making sharable libX11.so 338b5d2086dSmrg SharedLibXau boolean for making sharable libXau.so 33918eba588Smrg SharedLibXaw boolean for making sharable libXaw.so 340b5d2086dSmrg SharedLibXdmcp boolean for making sharable libXdmcp.so 341b5d2086dSmrg SharedLibXext boolean for making sharable libXext.so 342b5d2086dSmrg SharedLibXi boolean for making sharable libXi.so 343b5d2086dSmrg SharedLibXmu boolean for making sharable libXmu.so 344b5d2086dSmrg SharedLibXt boolean for making sharable libXt.so 345b5d2086dSmrg SharedLibXtst boolean for making sharable libXtst.so 346b5d2086dSmrg SharedLibXag boolean for making sharable libXag.so 347b5d2086dSmrg SharedOldX boolean for making sharable liboldX.so 34818eba588Smrg ShmDefines MIT-SHM define 349b5d2086dSmrg TwmDir directory in which to install twm config files 350b5d2086dSmrg UseCCMakeDepend boolean for using alternate makedepend script 351b5d2086dSmrg UseRgbTxt use rgb.txt file as is instead of DBM-compiled 352b5d2086dSmrg VarDirectory directory in /var for logs, etc., and config 353b5d2086dSmrg VendorHasX11R6_3libXext don't need Security & AppGroup in xrx plug-in 354b5d2086dSmrg XAppLoadDir directory in which to install app defaults 355b5d2086dSmrg XFileSearchPathBase base file search path 356b5d2086dSmrg XFileSearchPathDefault default path to search for app defaults files 357b5d2086dSmrg XInputDefines XINPUT define 358b5d2086dSmrg XMalloc0ReturnsNullDefines -D's specifically for libX11 359b5d2086dSmrg XawClientDepLibs DEPLIBS for clients that use Xaw 360b5d2086dSmrg XawClientLibs LOCAL_LIBRARIES for clients that use Xaw 361b5d2086dSmrg XdmConfigurationSubdirectory name of default xdm configuration 362b5d2086dSmrg XdmDir directory in which to install xdm files 363b5d2086dSmrg XdmServersType type of xdm Xservers file to install 364b5d2086dSmrg XinitDir directory in which to install xinit files 365b5d2086dSmrg XPrintDir parent of X Print server config directory 366b5d2086dSmrg XprtServer build the X Print server 367b5d2086dSmrg XpRasterDDX include the raster print ddx driver 368b5d2086dSmrg XpColorPclDDX include the color PCL print ddx driver 369b5d2086dSmrg XpMonoPclDDX include the monochrome PCL print ddx driver 370b5d2086dSmrg XpPostScriptDDX include the PostScript print ddx driver 371b5d2086dSmrg XpPdfDDX include the PDF print ddx driver 372b5d2086dSmrg XpSvgDDX include the SVG print ddx driver 37318eba588Smrg XmanLocalSearchPath non-standard path for man pages 37418eba588Smrg XtErrorPrefix leading text in XtError() msg; eg. 'X Toolkit ' 37518eba588Smrg XtWarningPrefix leading text in XtWarning()msg, same as above 37618eba588Smrg XtMalloc0ReturnsNullDefines -D's specifically for libXt 37718eba588Smrg ZBDFTOSNFFILT -D to run uncompress and bdftosnf (obsolete) 37818eba588Smrg 37918eba588Smrg 38018eba588SmrgLibrary.tmpl provides defaults for the following variables: 381b5d2086dSmrg 382b5d2086dSmrg AvoidNullMakeCommand for makes that spout about $(_NULLCMD_) 383b5d2086dSmrg LibraryCCOptions special C compiler options for libraries 384b5d2086dSmrg LibraryCDebugFlags library debug/optimize flags to override defs 385b5d2086dSmrg LibraryCcCmd command to run C compiler in libraries 386b5d2086dSmrg LibraryCplusplusOptions special C++ options for libraries 38718eba588Smrg LibraryCplusplusDebugFlags library debug/optimize flags for C++ 38818eba588Smrg LibraryCplusplusCmd command to run C++ compiler in libraries 389b5d2086dSmrg LibraryDefines -D's for libraries 390b5d2086dSmrg SeparateSharedCompile shared and unshared libs use same binaries? 391b5d2086dSmrg 392b5d2086dSmrg 39318eba588SmrgServer.tmpl provides defaults for the following variables: 394b5d2086dSmrg 395b5d2086dSmrg ServerCCOptions server C compiler options to override defaults 396b5d2086dSmrg ServerCcCmd command to run C compiler in server 397b5d2086dSmrg ServerCDebugFlags server debug/opt compiler flags 398b5d2086dSmrg ServerDefines server standard -D's 399b5d2086dSmrg InstallServerSetUID does this system need X server suid to root? 400b5d2086dSmrg 401b5d2086dSmrg 402b5d2086dSmrgThreads.tmpl provides defaults for the following variables: 403b5d2086dSmrg 404b5d2086dSmrg LocalThreads whether to enable multi-threading support 40518eba588Smrg LocalThreadsDefines -D flags needed in this directory 40618eba588Smrg 407b5d2086dSmrg 408b5d2086dSmrgAn <os>Lib.rules file provides defaults for the following variables: 409b5d2086dSmrg 410b5d2086dSmrg HasSharedLibraries boolean for using shared libraries 41118eba588Smrg SharedDataSeparation boolean indicating separate data/code 412b5d2086dSmrg SharedCodeDef -D's for compiling shared library files 413b5d2086dSmrg SharedLibraryDef -D's for defining which kind of shared lib 414b5d2086dSmrg ShLibIncludeFile location of the <os>Lib.tmpl file 415b5d2086dSmrg SharedLibraryLoadFlags loader flags when making the library 416b5d2086dSmrg UseExportLists boolean for using an export list 417b5d2086dSmrg PositionIndependentCFlags PIC compiler flags for C 41818eba588Smrg PositionIndependentCplusplusFlags PIC compiler flags for C++ 41918eba588Smrg 42018eba588Smrg Note: PositionIndependentCplusplusFlags is only required if the 42118eba588Smrg C and C++ compilers use different flags to build PIC code. The 42218eba588Smrg default configuration will try to use PositionIndependentCFlags 42318eba588Smrg for both C and C++ compiles. 42418eba588Smrg 42518eba588SmrgAn <os>Lib.tmpl file provides defaults for the following variables: 426b5d2086dSmrg 427b5d2086dSmrg SharedFSReqs required libs for libFS.so 428b5d2086dSmrg SharedFSRev version number for libFS.so 429b5d2086dSmrg SharedICEReqs required libs for libICE.so 430b5d2086dSmrg SharedICERev version number for libICE.so 431b5d2086dSmrg SharedOldXReqs required libs for liboldX.so 432b5d2086dSmrg SharedOldXRev version number for liboldX.so 433b5d2086dSmrg SharedSMReqs required libs for libSM.so 434b5d2086dSmrg SharedSMRev version number for libSM.so 435b5d2086dSmrg SharedX11Reqs required libs for libX11.so 436b5d2086dSmrg SharedX11Rev version number for libX11.so 43718eba588Smrg SharedXauReqs required libs for libXau.so 438b5d2086dSmrg SharedXauRev version number for libXau.so 43918eba588Smrg SharedXawReqs required libs for libXaw.so 440b5d2086dSmrg SharedXawRev version number for libXaw.so 441b5d2086dSmrg SharedXdmcpReqs required libs for libXdmcp.so 442b5d2086dSmrg SharedXdmcpRev version number for libXdmcp.so 443b9bb67cbSmrg SharedXextReqs required libs for libXext.so 444b9bb67cbSmrg SharedXextRev version number for libXext.so 4451cc8c64fSmrg SharedXiReqs required libs for libXi.so 4461cc8c64fSmrg SharedXiRev version number for libXi.so 4471cc8c64fSmrg SharedXmuReqs required libs for libXmu.so 4481cc8c64fSmrg SharedXmuRev version number for libXmu.so 4491cc8c64fSmrg SharedXtReqs required libs for libXt.so 450b9bb67cbSmrg SharedXtRev version number for libXt.so 4511cc8c64fSmrg SharedXtstReqs required libs for libXtst.so 4521cc8c64fSmrg SharedXtstRev version number for libXtst.so 4531cc8c64fSmrg SharedXmReqs required libs for libXm.so 4541cc8c64fSmrg SharedXmRev version number for libXm.so 4551cc8c64fSmrg SharedMrmReqs required libs for libMrm.so 456b5d2086dSmrg SharedMrmRev version number for libMrm.so 457b5d2086dSmrg SharedUilReqs required libs for libUil.so 458b5d2086dSmrg SharedUilRev version number for libUil.so 459b5d2086dSmrg SharedTtReqs required libs for libtt.so 460b5d2086dSmrg SharedTtRev version number for libtt.so 4611cc8c64fSmrg SharedPamReqs required libs for libpam.so 462b9bb67cbSmrg SharedPamRev version number for libpam.so 4631cc8c64fSmrg SharedDtSvcReqs required libs for libDtSvc.so 4641cc8c64fSmrg SharedDtSvcRev version number for libDtSvc.so 465b9bb67cbSmrg SharedDtSearchReqs required libs for libDtSearch.so 46618eba588Smrg SharedDtSearchRev version number for libDtSearch.so 467b9bb67cbSmrg SharedDtWidgetReqs required libs for libDtWidget.so 468b9bb67cbSmrg SharedDtWidgetRev version number for libDtWidget.so 469b9bb67cbSmrg SharedDtHelpReqs required libs for libDtHelp.so 470b9bb67cbSmrg SharedDtHelpRev version number for libDtHelp.so 471b9bb67cbSmrg SharedDtPrintReqs required libs for libDtPrint.so 472b9bb67cbSmrg SharedDtPrintRev version number for libDtPrint.so 473b9bb67cbSmrg SharedDtTermReqs required libs for libDtTerm.so 474b9bb67cbSmrg SharedDtTermRev version number for libDtTerm.so 475b9bb67cbSmrg SharedDtMrmReqs required libs for libDtMrm.so 476b9bb67cbSmrg SharedDtMrmRev version number for libDtMrm.so 477b9bb67cbSmrg 478b9bb67cbSmrgVendor.cf files and/or site/host specific .def files may define the 479b9bb67cbSmrgfollowing variables: 4801cc8c64fSmrg 481b5d2086dSmrg ProjectRoot The directory under which the installation 482b5d2086dSmrg will operate. This value will be hard coded 483b5d2086dSmrg into some programs. As a result do not use it 484b5d2086dSmrg to specify the installation directory for a 485b5d2086dSmrg cross compiled system, use DESTDIR to 486b5d2086dSmrg accomplish that task. 4871cc8c64fSmrg 4881cc8c64fSmrgThe following variables are used by some part of the tree: 489b5d2086dSmrg 490b5d2086dSmrg AckToolset programs/Xserver/hw/xfree86 491b5d2086dSmrg BuildChooser build the xdm chooser program? 492b5d2086dSmrg SharedLibXdmGreet use xdm shared dynamic greeter library? 493b5d2086dSmrg LatexCmd command to run LaTeX on a document 494b5d2086dSmrg DvipsCmd command to turn .dvi file into PostScript 495b5d2086dSmrg MotifBC using Motif 1.1.1, 1.1.2, or 1.1.3? 496b5d2086dSmrg GetValuesBC compat GetValues behavior for broken apps? 497b5d2086dSmrg NeedBerklib application needs libXbsd? 498b5d2086dSmrg SvgaConfig default SVGA configuration 499b5d2086dSmrg HasGetReturnAddress util/memleak 500b5d2086dSmrg HasShadowPasswd system has getspnam() function 501b5d2086dSmrg XnestServer build X server with Xlib-based ddx 502b5d2086dSmrg XVirtualFramebufferServer build X server with virtual memory framebuffer 503b5d2086dSmrg WebServer host:port of your Web server (see programs/xrx) 504b5d2086dSmrg HtmlDir path used by Web server for HTML and RX docs 505b5d2086dSmrg CgiBinDir path used by Web server for CGI programs 506b5d2086dSmrg ProxyManager ICE network ID to contact a running proxymngr 507b5d2086dSmrg XdmxServer build Distributed Multihead X server 508b5d2086dSmrg 509b5d2086dSmrg 51018eba588SmrgMake Variables 5111cc8c64fSmrg 51218eba588SmrgThe following make variables are used by imake rules and may be set in 51318eba588Smrgan individual Imakefile. 51418eba588Smrg 51518eba588SmrgDEFINES program-specific -D flags and other arguments 516b5d2086dSmrg to pass to the C compiler, lint, and makedepend. 517b5d2086dSmrgDEPEND_DEFINES program-specific flags in addition to 518b5d2086dSmrg $(DEFINES) to pass to lint and makedepend. 519b5d2086dSmrg This is usually used when there are special 520b5d2086dSmrg compilation rules for individual files, and 521b5d2086dSmrg the defines passed to those files affect 522b9bb67cbSmrg makedepend results. If they can be passed to 5231cc8c64fSmrg all files during the makedepend step without 52418eba588Smrg affecting the results for other files, 52518eba588Smrg DEPEND_DEFINES is used to do that. Example is 52618eba588Smrg the Xlib Imakefile. 52718eba588SmrgINCLUDES program-specific -I flags. 528b5d2086dSmrgHEADERS .h files to install with "make includes" and 529b5d2086dSmrg "make install". If this Imakefile includes 530b5d2086dSmrg Library.tmpl there are no headers, include 531b5d2086dSmrg this line instead of a HEADERS definition: 532b5d2086dSmrg #define LibHeaders NO 533b5d2086dSmrgREQUIREDLIBS when building a shared library, other libraries used 534b5d2086dSmrg by this library that should be referenced at 535b5d2086dSmrg link time. 536b5d2086dSmrgLINTLIBS program-specific libraries for lint. 537b5d2086dSmrgLOCAL_LDFLAGS program-specific flags for the linker. 538b5d2086dSmrgLOCAL_LIBRARIES project libraries (usually specified 539b5d2086dSmrg as -lname) needed by this program. 5401cc8c64fSmrg For example, "-lXt -lXext -lX11". 54118eba588Smrg Used by SimpleProgramTarget and 54218eba588Smrg ComplexProgramTarget* rules. 54318eba588Smrg Do not include any system-specific libraries here. 54418eba588SmrgSYS_LIBRARIES system libraries (usually specified 54518eba588Smrg as -lname) needed by this program. 54618eba588Smrg For example "MathLibrary". 54718eba588Smrg Do not include any system-specific libraries 548b5d2086dSmrg such as "-lnsl" here; they are automatically 549b5d2086dSmrg added to the link command by the 550b5d2086dSmrg vendor-specific .cf file. 551b5d2086dSmrgSUBDIRS for an Imakefile in a directory containing 552b5d2086dSmrg subdirectories, this names the subdirectories. 553b5d2086dSmrg Such an Imakefile also needs to #define IHaveSubdirs 554b9bb67cbSmrg and call MakeSubdirs() and DependSubdirs(). 555b5d2086dSmrgMANSUFFIX suffix used by InstallManPage* rules. 556b5d2086dSmrg May be set to $(LIBMANSUFFIX), $(FILEMANSUFFIX), or 557b5d2086dSmrg $(MISCMANSUFFIX) in directories for libraries or data 558b5d2086dSmrg files. 559b5d2086dSmrg 560b5d2086dSmrg 56118eba588SmrgRule-specific variables that may be set in an individual Imakefile. 562b5d2086dSmrgIf you aren't using these rules, you may need variables with a similar 56318eba588Smrgfunction, but you need not use these names. However, following these 564b5d2086dSmrgconventions may make your Imakefile easier to read and maintain. 565b5d2086dSmrg 566b5d2086dSmrgDEPLIBS library dependencies for ComplexProgramTarget 56718eba588SmrgSRCS source files used by ComplexProgramTarget and 568b5d2086dSmrg DependTarget. 569b9bb67cbSmrgOBJS object files used by ComplexProgramTarget 57018eba588SmrgPROGRAMS default target used with ComplexProgramTarget_(n) 571b9bb67cbSmrgSRCS1 source files used by ComplexProgramTarget_1 572b5d2086dSmrgOBJS1 object files used by ComplexProgramTarget_1 573b5d2086dSmrgDEPLIBS1 library dependencies for ComplexProgramTarget_1 574b9bb67cbSmrgSRCS2 source files used by ComplexProgramTarget_2 575b5d2086dSmrgOBJS2 object files used by ComplexProgramTarget_2 576b5d2086dSmrgDEPLIBS2 library dependencies for ComplexProgramTarget_2 577b5d2086dSmrgSRCS3 source files used by ComplexProgramTarget_3 578b5d2086dSmrgOBJS3 object files used by ComplexProgramTarget_3 579b5d2086dSmrgDEPLIBS3 library dependencies for ComplexProgramTarget_3 580b9bb67cbSmrg 581b9bb67cbSmrgVariables that can be set on the make command line: 58218eba588Smrg 58318eba588SmrgDESTDIR directory under which "make install" should 584b9bb67cbSmrg install instead of "/"; used only for testing 585b5d2086dSmrg "make install" rules, binary package building, 586b5d2086dSmrg and specifying alternative installation directories 587b9bb67cbSmrg for cross compiles. 588b5d2086dSmrgFILE file for "lint1" target to run lint on. 589b5d2086dSmrgCDEBUGFLAGS -g and/or -O flag to control C compiler optimization. 590b9bb67cbSmrgCXXDEBUGFLAGS -g and/or -O flag to control C++ optimization. 591b9bb67cbSmrgLDSTRIPFLAGS flag to have linker strip objects (typically -x). 592b5d2086dSmrg Typically set to the empty string to prevent 593b5d2086dSmrg the linker from stripping objects; use this 5941cc8c64fSmrg way when setting CDEBUGFLAGS to "-g". 5951cc8c64fSmrg 596b5d2086dSmrgThese variables are set in project-specific files such as X11.tmpl. 5971cc8c64fSmrgThey should NOT be set in an Imakefile. These variables are sometimes 5981cc8c64fSmrgmisused; they are included here to remind Imakefile writers NOT to use 5991cc8c64fSmrgthem: 6001cc8c64fSmrg 6011cc8c64fSmrgEXTRA_DEFINES project-specific -D flags 6021cc8c64fSmrgEXTRA_INCLUDES project-specific -I flags 6031cc8c64fSmrgEXTRA_ICONFIGFILES Additional project-specific imake config files 604b9bb67cbSmrg to add to ICONFIGFILES. 6051cc8c64fSmrg This is a list of files that define variables 606b9bb67cbSmrg that might affect compilation of some files. 6071cc8c64fSmrg 6081cc8c64fSmrgMany other make variables are set up by the imake config files and can 6091cc8c64fSmrgbe used in an Imakefile. The easiest way to discover them is to look 6101cc8c64fSmrgat the Makefile generated by an empty Imakefile. 6111cc8c64fSmrg 6121cc8c64fSmrg 6131cc8c64fSmrgComments 6141cc8c64fSmrg 61518eba588SmrgUse C comment syntax in an Imakefile for comments that should not 61618eba588Smrgappear in the resulting Makefile. 61718eba588SmrgUse "XCOMM" at the start of each 618b5d2086dSmrgline to produce a comment that will appear in the Makefile. 6191cc8c64fSmrg(The "XCOMM" will 62018eba588Smrgbe translated into the Makefile comment character "#" by imake.) 621b9bb67cbSmrgDo NOT use "#" as a comment character in Imakefiles; it confuses the C 622b9bb67cbSmrgpreprocessor used by imake on some systems. 62318eba588Smrg 624b9bb67cbSmrg 625b9bb67cbSmrgImake variables 626b9bb67cbSmrg 627b9bb67cbSmrgDon't abuse the variables in X11.tmpl that describe 628b9bb67cbSmrgparticular pieces of X by using them to describe your own subsystems. 629b9bb67cbSmrgInstead, create new variables that are defaulted using 630b9bb67cbSmrgImake.tmpl variables. 631b5d2086dSmrg 632b5d2086dSmrg 633b9bb67cbSmrgExamples 634b9bb67cbSmrg 635b9bb67cbSmrgSince the easiest way to write an Imakefile is to start with one that 636b9bb67cbSmrgworks, here are some short, easy-to-read Imakefile examples in the X 637b9bb67cbSmrgdistribution: 638b9bb67cbSmrg 639b9bb67cbSmrgwith subdirs: config/Imakefile 640b9bb67cbSmrglibrary: lib/Xau/Imakefile 641b9bb67cbSmrgsimple program: programs/xdpyinfo/Imakefile 642b9bb67cbSmrgcomplex progs: programs/xclipboard/Imakefile 643b9bb67cbSmrgcomplex prog: programs/xmodmap/Imakefile 644b9bb67cbSmrg 645b5d2086dSmrgCommon Rules 646b9bb67cbSmrg 647b9bb67cbSmrgHere are some of the common rules for building programs. How to use 648b9bb67cbSmrgthem is described in Imake.rules and in the O'Reilly book "Software 649b9bb67cbSmrgPortability with imake." 650b9bb67cbSmrg 651b9bb67cbSmrgBasic program-building rules 652b9bb67cbSmrg 653b9bb67cbSmrgAll of these except NormalProgramTarget also generate rules to install 654b5d2086dSmrgthe program and its manual page, and to generate dependencies. 655b5d2086dSmrg 656b5d2086dSmrgSimpleProgramTarget Use if there is only one program to be made 657b5d2086dSmrg and it has only one source file. 658b9bb67cbSmrg 65918eba588SmrgComplexProgramTarget Use if there is only one program to be made 66018eba588Smrg and it has multiple source files. Set SRCS to 66118eba588Smrg the names of the source files, set OBJS to 66218eba588Smrg the names of the object files, and set DEPLIBS 66318eba588Smrg to the libraries that this program depends on. 66418eba588Smrg 66518eba588SmrgComplexProgramTarget_1 Like ComplexProgramTarget, but uses SRCS1, 666b9bb67cbSmrg OBJS1, and DEPLIBS1 and can be used with 667b9bb67cbSmrg ComplexProgramTarget_2 and ComplexProgramTarget_3 668b9bb67cbSmrg to build up to three programs in the same directory. 669b9bb67cbSmrg Set PROGRAMS to the programs built by all of 670b9bb67cbSmrg these rules. For more than 3 programs, use 671b9bb67cbSmrg NormalProgramTarget for each. 672b9bb67cbSmrgComplexProgramTarget_2 Use after ComplexProgramTarget_1 for the 673b9bb67cbSmrg second program in a directory. Uses SRCS2, 674b9bb67cbSmrg OBJS2, and DEPLIBS2. 675b9bb67cbSmrgComplexProgramTarget_3 Use after ComplexProgramTarget_2 for the 676b9bb67cbSmrg third program in a directory. Uses SRCS3, 677b9bb67cbSmrg OBJS3, and DEPLIBS3. 678b9bb67cbSmrg 679b9bb67cbSmrgNormalProgramTarget Build a program. Can be used multiple times 680b9bb67cbSmrg with different arguments in the same Imakefile. 681b9bb67cbSmrg 682b9bb67cbSmrgLower level rules, often used with NormalProgramTarget 683b9bb67cbSmrg 684b9bb67cbSmrgInstallProgram install a program. 685b9bb67cbSmrg 686b9bb67cbSmrgInstallManPage install a manual page. 687b9bb67cbSmrg 688b9bb67cbSmrgInstallDirectory install a directory. 689b9bb67cbSmrg 690b9bb67cbSmrgDependTarget() include once at end of Imakefile with 691b9bb67cbSmrg NormalProgramTarget rules or that uses Library.tmpl. 692b9bb67cbSmrg Generates dependencies for files named in SRCS. 693b9bb67cbSmrg 694b9bb67cbSmrgManual page rules, commonly used only in special documentation directories: 695b9bb67cbSmrg 696b9bb67cbSmrgInstallManPage 697b9bb67cbSmrgInstallManPageLong 698b9bb67cbSmrgInstallManPageAliases 699b9bb67cbSmrg 700b9bb67cbSmrgOther rules: 701b9bb67cbSmrg 702b9bb67cbSmrgSpecialCObjectRule Compile a C file with special flags. 703b9bb67cbSmrgAllTarget Declare additional targets to build. 704b9bb67cbSmrgInstallAppDefaults Install X application defaults file. 705b9bb67cbSmrg 706b9bb67cbSmrgImakefile for directory with subdirectories 707b9bb67cbSmrg 70818eba588SmrgXCOMM this is a sample Imakefile for a directory containing subdirectories 709b9bb67cbSmrg#define IHaveSubdirs 710b9bb67cbSmrg#define PassCDebugFlags CDEBUGFLAGS="$(CDEBUGFLAGS)" 711b9bb67cbSmrgSUBDIRS = list of subdirs ... 712b9bb67cbSmrgMakeSubdirs($(SUBDIRS)) 713b9bb67cbSmrgDependSubdirs($(SUBDIRS)) 714b9bb67cbSmrg 715b9bb67cbSmrg 716b9bb67cbSmrgCommon Targets 717b9bb67cbSmrg 718b9bb67cbSmrgThese targets are typically NOT defined explicitly by the Imakefile 719b9bb67cbSmrgwriter; rather they are generated automatically by imake rules. 720b5d2086dSmrgThey are listed here for the convenience of people using the resulting 721b9bb67cbSmrgMakefile, not people writing the original Imakefile. 722b9bb67cbSmrg 723b9bb67cbSmrgall Default rule; builds whatever is in this directory. 724b9bb67cbSmrgMakefile Remake the Makefile (use after changing Imakefile). 725b9bb67cbSmrg Run "make depend" after. 726b9bb67cbSmrgMakefiles Remake all Makefiles in subdirectories. (Does 727b9bb67cbSmrg nothing if no subdirectories.) 7281cc8c64fSmrg Run "make depend" after. 729b9bb67cbSmrgincludes Generate and install in the tree any necessary 730b9bb67cbSmrg header files. 731b5d2086dSmrgdepend Update dependencies in the Makefile calculated 732b9bb67cbSmrg by examining the source files. 733b9bb67cbSmrginstall Install what "make all" built on the system. 734b9bb67cbSmrginstall.man Install manual pages. 735b9bb67cbSmrgclean Remove built objects and other derived files. 736b9bb67cbSmrglint Run lint. 737b9bb67cbSmrgtags Create a tags file. 738b9bb67cbSmrg