1d7ffce2aSmrgThe xorg-cf-files package contains the data files for the imake utility, 2d7ffce2aSmrgdefining the known settings for a wide variety of platforms (many of which 3944bff83Smrghave not been verified or tested in almost two decades), and for many of the 4d7ffce2aSmrglibraries formerly delivered in the X.Org monolithic releases. 5d7ffce2aSmrg 6d7ffce2aSmrgThe X Window System used imake extensively up through the X11R6.9 release, 7d7ffce2aSmrgfor both full builds within the source tree and external software. 841fe0c2aSmrgX moved to GNU autoconf and automake for its build system in 2005 for 941fe0c2aSmrgX11R7.0 and later releases, but still provides imake for building existing 1041fe0c2aSmrgexternal software programs that have not yet converted, though we are not 1141fe0c2aSmrgactively maintaining it for new OS or platform releases. 12d7ffce2aSmrg 13d7ffce2aSmrgMore information about Imake and its usage may be found in the resources 14d7ffce2aSmrgat: 15d7ffce2aSmrg http://www.snake.net/software/imake-stuff/ 16d7ffce2aSmrg http://www.kitebird.com/imake-book/ 17d7ffce2aSmrg 18d7ffce2aSmrgAll questions regarding this software should be directed at the 19d7ffce2aSmrgXorg mailing list: 20d7ffce2aSmrg 21b8df70beSmrg https://lists.x.org/mailman/listinfo/xorg 2211d341caSmrg 23944bff83SmrgThe primary development code repository can be found at: 2411d341caSmrg 25b8df70beSmrg https://gitlab.freedesktop.org/xorg/util/cf 2611d341caSmrg 27b8df70beSmrgPlease submit bug reports and requests to merge patches there. 2811d341caSmrg 29d7ffce2aSmrgFor patch submission instructions, see: 30d7ffce2aSmrg 31b8df70beSmrg https://www.x.org/wiki/Development/Documentation/SubmittingPatches 32d7ffce2aSmrg 33d7ffce2aSmrg------------------------------------------------------------------------------ 34d7ffce2aSmrg 35d7ffce2aSmrg$Xorg: README,v 1.4 2000/08/18 04:03:58 coskrey Exp $ 3611d341caSmrg$XFree86: xc/config/cf/README,v 1.20 2003/04/14 20:35:50 herrb Exp $ 3711d341caSmrg 3811d341caSmrgThe easiest way to write an Imakefile is to find another one that does 3911d341caSmrgsomething similar and copy/modify it! 4011d341caSmrg 4111d341caSmrgTo change any of these variables, edit the site.def file. 4211d341caSmrg 4311d341caSmrgImake.tmpl provides defaults for the following variables: 4411d341caSmrg 4511d341caSmrg AlternateIncRoot compiler needs -I to find project includes 4611d341caSmrg AlternateUsrLibDir linker needs -L to find project libraries 4711d341caSmrg ArCmd command used to create libraries 4811d341caSmrg ArCmdBase program name part of ArCmd 4911d341caSmrg ArAddCmd flags to have ArCmdBase add files to a library 5011d341caSmrg ArExtCmd flags to have ArCmdBase extract files 5111d341caSmrg AsCmd command used to run assembler 5211d341caSmrg BootstrapCFlags missing cpp symbols needed to get started 5311d341caSmrg BourneShell command used to run Bourne Shell 5411d341caSmrg CCsuf suffix that C++ source files have 5511d341caSmrg CURDIR current directory relative to top of sources 5611d341caSmrg CcCmd command to run C compiler 5711d341caSmrg CompressCmd command to run compress program 5811d341caSmrg ConstructMFLAGS System V option to set MFLAGS make variable 5911d341caSmrg CpCmd command to copy one file to another 6011d341caSmrg CplusplusCmd command to run C++ compiler 6111d341caSmrg CplusplusFilt command to run C++ name demangler 6211d341caSmrg CplusplusYaccCmd command to produce C++ source from yacc source 6311d341caSmrg CppCmd command to run C preprocessor 6411d341caSmrg CrossCompiling cross compiling? (not fully supported) 6511d341caSmrg DebuggableCDebugFlags C compiler -I's and -D's to turn on debug info 6611d341caSmrg DefaultCCOptions default special C compiler options 6711d341caSmrg DefaultCDebugFlags debug/optimize flags for programs 6811d341caSmrg DefaultUsrBin program directory used even if PATH not set 6911d341caSmrg DependFlags extra makedepend flags 7011d341caSmrg DoRanlibCmd boolean for system uses ranlib 7111d341caSmrg EqnCmd command used for eqn 7211d341caSmrg ExecableScripts boolean for systems that can exec() #!/bin/sh 7311d341caSmrg ExpandManNames boolean to expand man pages names to long form 7411d341caSmrg ExtraFilesToClean extra files to remove on make clean 7511d341caSmrg ExtraLibraries system-specific libraries need to link 7611d341caSmrg ExtraLoadFlags system-specific loader flags 7711d341caSmrg FileManSuffix man suffix for file format pages 7811d341caSmrg FilesToClean files to delete in make clean 7911d341caSmrg FortranCmd command to run Fortran compiler 8011d341caSmrg FortranDebugFlags flags for Fortran debug info 8111d341caSmrg FortranFlags Fortran compiler flags 8211d341caSmrg GzipCmd command to run gzip program 8311d341caSmrg HasBSD44Sockets boolean for system has BSD4.4 sockets 8411d341caSmrg HasBsdMake use the 4.4BSD variant of the make program? 8511d341caSmrg HasBsearch boolean for libc has bsearch() 8611d341caSmrg HasBrokenCCForLink boolean for brain damaged cc driver 8711d341caSmrg HasCenterLineC boolean for system has CenterLine C compiler 8811d341caSmrg HasCenterLineCplusplus boolean for system has CenterLine C++ compiler 8911d341caSmrg HasClearmake use Clearcase's clearmake make program? 9011d341caSmrg HasCodeCenter boolean for system has CodeCenter 9111d341caSmrg HasCookieMaker boolean for system has xauth cookie generator 9211d341caSmrg HasCplusplus system has a C++ compiler? 9311d341caSmrg HasDECnet system has DECnet? 9411d341caSmrg HasFortran boolean for system has Fortran compiler 9511d341caSmrg HasGcc boolean for system has GNU gcc compiler 9611d341caSmrg HasGcc2 boolean for system has GNU gcc 2.x compiler 9711d341caSmrg HasGcc2ForCplusplus use gcc 2 for C++ programs? 9811d341caSmrg HasGnuMake use the GNU make program? 9911d341caSmrg HasGhostPCL boolean for system has GhostPCL 10011d341caSmrg HasGhostScript boolean for system has GhostScript 10111d341caSmrg HasKrbIV system has Kerberos version IV support? 10211d341caSmrg HasKrb5 system has Kerberos version 5 support? 10311d341caSmrg HasLargeTmp boolean for system has /tmp space 10411d341caSmrg HasLatex system has LaTeX document preparation software 10511d341caSmrg HasLibCrypt boolean for system has libcrypt 10611d341caSmrg HasMotif boolean for system has Motif 10711d341caSmrg HasMotif2 boolean for system has Motif2 or OpenMotif 10811d341caSmrg HasNdbm boolean for system has ndbm routines 10911d341caSmrg HasPoll use poll() syscall? 11011d341caSmrg HasPurify boolean for system has Purify 11111d341caSmrg HasPutenv boolean for libc has putenv() 11211d341caSmrg HasSecureRPC boolean for Sun Secure RPC 11311d341caSmrg HasSetProcTitle boolean for setproctitle() 11411d341caSmrg HasSetUserContext boolean for setusercontext() 11511d341caSmrg HasSentinel boolean for system has Sentinel available 11611d341caSmrg HasSharedLibraries boolean for system has shared libraries 11711d341caSmrg HasShm boolean for System V shared memory 11811d341caSmrg HasSockets boolean for system has BSD sockets 11911d341caSmrg HasStrcasecmp boolean for system implements str[n]casecmp 12011d341caSmrg HasStreams use STREAMS I/O interface? 12111d341caSmrg HasSymLinks boolean for system has symbolic links 12211d341caSmrg HasTestCenter boolean for system has TestCenter 12311d341caSmrg HasVarDirectory boolean for system has /var 12411d341caSmrg HasVFork boolean for system has vfork() 12511d341caSmrg HasVoidSignalReturn boolean for POSIX signal() procs 12611d341caSmrg HasZlib boolean for system has libz 12711d341caSmrg IncludeSharedObjectInNormalLib define for static libs to include 12811d341caSmrg -fPIC objects on relevant archs 12911d341caSmrg IncRoot parent of X11 include directory 13011d341caSmrg InstBinFlags install flags for binaries 13111d341caSmrg InstDatFlags install flags for data files 13211d341caSmrg InstIncFlags install flags for header files 13311d341caSmrg InstKmemFlags install flags for xload to get at /dev/kmem 13411d341caSmrg InstLibFlags install flags for libraries 13511d341caSmrg InstManFlags install flags for manual pages 13611d341caSmrg InstPgmFlags install flags for normal programs 13711d341caSmrg InstUidFlags install flags for xterm to chown /dev/ptys 13811d341caSmrg InstallCmd command to install files 13911d341caSmrg KrbIVIncludes where to include KerberosIV header files from 14011d341caSmrg KrbIVLibraries where to load KerberosIV libraries from 14111d341caSmrg Krb5Includes where to include Kerberos header files from 14211d341caSmrg Krb5Libraries where to load Kerberos libraries from 14311d341caSmrg LdCmd command to run loader 14411d341caSmrg LdCombineFlags flags for incremental loading 14511d341caSmrg LexCmd command to run lex 14611d341caSmrg LexLib library for programs using lex output 14711d341caSmrg LintCmd command to run lint 14811d341caSmrg LintLibFlag flags to generate lint libraries 14911d341caSmrg LintOpts lint options to control strictness 15011d341caSmrg LnCmd command to link two files 15111d341caSmrg LoaderLibPrefix loader flags before libraries 15211d341caSmrg LocalRulesFile site-specific file with additional imake rules 15311d341caSmrg LocalTmplFile file with additional imake variables 15411d341caSmrg MacroFile name of machine-dependent config params file 15511d341caSmrg MacroIncludeFile <MacroFile> 15611d341caSmrg MakeCmd command to run make 15711d341caSmrg Malloc0ReturnsNull boolean for malloc(0) == NULL 15811d341caSmrg Malloc0ReturnsNullDefines -D's to build libX11/libXt 15911d341caSmrg MathLibrary library for programs using C math functions 16011d341caSmrg MkCookieCmd command to generate an xauth cookie 16111d341caSmrg MsMacros macro flag for TroffCmd, normally "-ms" 16211d341caSmrg MvCmd command to rename a file 16311d341caSmrg NdbmDefines -D's to turn on use of ndbm routines 164944bff83Smrg NeedConstPrototypes whether const is supported 16511d341caSmrg NeedFunctionPrototypes whether or not to force function prototypes 16611d341caSmrg NeedNestedPrototypes whether nested prototypes are supported 16711d341caSmrg NeedVarargsPrototypes whether varargs prototypes are supported 16811d341caSmrg NeedWidePrototypes whether or not to widen function prototypes 16911d341caSmrg NoOpCDebugFlags C compiler flags to not debug or optimize 17011d341caSmrg NoRConst YES if const for structs of funcs is bad 17111d341caSmrg OSMajorVersion major version number of operating system 17211d341caSmrg OSMinorVersion minor version number of operating system 17311d341caSmrg OSName operating system name 17411d341caSmrg OSTeenyVersion maintenance version number of operating system 17511d341caSmrg OptimizedCDebugFlags C compiler flags to turn on optimization 176944bff83Smrg XtPopdownConformance XtPopdown conformance to the specification 17711d341caSmrg PreProcessCmd command to run /lib/cpp on scripts 17811d341caSmrg RanlibCmd command to clean up libraries 17911d341caSmrg RanlibInstFlags flags to ranlib after copying 18011d341caSmrg ResourceConfigurationManagement boolean for Xt's Resource Configuration 18111d341caSmrg Management 18211d341caSmrg RmCmd command to delete files 18311d341caSmrg ShLibDir directory in which to install shared libraries 18411d341caSmrg StandardCppDefines -D's for running cpp 18511d341caSmrg StandardDefines -D's for running C compiler 18611d341caSmrg StandardIncludes -I's for running C compiler 18711d341caSmrg StripInstalledPrograms boolean for sites that want to install -s 18811d341caSmrg SystemV boolean for systems that are at least SVR2 18911d341caSmrg SystemV4 boolean for SVR4 systems 19011d341caSmrg TOPDIR relative path to top of sources 19111d341caSmrg TagsCmd command to run tags 19211d341caSmrg TblCmd command to run tbl 19311d341caSmrg TroffCmd command to run troff to get PostScript 19411d341caSmrg UNCOMPRESSPATH command to run uncompress (obsolete) 19511d341caSmrg UnalignedReferencesAllowed boolean for unaligned copies ok 19611d341caSmrg UsrLibDir directory in which to install libraries 19711d341caSmrg YaccCmd command to run yacc 19811d341caSmrg 19911d341caSmrgX11.tmpl provides defaults for the following variables: 20011d341caSmrg 20111d341caSmrg AdmDir directory containing system log files 20211d341caSmrg AllocateLocalDefines -D's to turn on alloca() (should be in Imake.tmpl) 20311d341caSmrg BDFTOSNFFILT command to run bdftosnf 20411d341caSmrg BaseExtensionDefines universal extensions to use 20511d341caSmrg BinDir directory in which to install programs 20611d341caSmrg BuildAppgroup build AppGroup extension in server 20711d341caSmrg BuildCup build Colormap Utilization extension in server 20811d341caSmrg BuildDBE build DOUBLE-BUFFER extension 20911d341caSmrg BuildDmx build Distributed Multihead X server and extension 21011d341caSmrg BuildDPMS build Display Power Management Signaling extension 21111d341caSmrg BuildFontServer build font server 21211d341caSmrg BuildFonts build pcf fonts 21311d341caSmrg BuildIncRoot relative path to location of headers in build 21411d341caSmrg BuildIncTop path from build includes directory to top 21511d341caSmrg BuildEVI build EVI server extension 21611d341caSmrg BuildLBX build LBX (aka X.fast) server extension 21711d341caSmrg BuildMultibuffer build Multibuffer extension (obsolete) 21811d341caSmrg BuildPlugin build xrx plug-in for web browsers 21911d341caSmrg BuildRECORD Build RECORD extension 22011d341caSmrg BuildServer build X server 221d7ffce2aSmrg BuildXAudio build Audio 22211d341caSmrg BuildXAServer build Audio server 22311d341caSmrg BuildXCSecurity Build Security Extension 22411d341caSmrg BuildXInputExt build X Input extension (requires ddx support, 22511d341caSmrg which exists only in Xhp and XFree86) 22611d341caSmrg BuildXInputLib build X Input library 22711d341caSmrg BuildXKB build X Keyboard Extension? 22811d341caSmrg BuildXKBlib build X Keyboard Extension into Xlib? 22911d341caSmrg UseXKBInClients Use XKB functions in normal clients? 23011d341caSmrg ConfigDir install directory for config files 23111d341caSmrg ConnectionFlags -D's for supported transports 23211d341caSmrg ContribDir location of user-contributed sources 23311d341caSmrg DebugLibFS build libFS_d.a 23411d341caSmrg DebugLibICE build libICE_d.a 23511d341caSmrg DebugLibSM build libSM_d.a 23611d341caSmrg DebugLibX11 build libX11_d.a 23711d341caSmrg DebugLibXau build libXau_d.a 23811d341caSmrg DebugLibXaw build libXaw_d.a 23911d341caSmrg DebugLibXdmcp build libXdmcp_d.a 24011d341caSmrg DebugLibXext build libXext_d.a 24111d341caSmrg DebugLibXi build libXi_d.a 24211d341caSmrg DebugLibXmu build libXmu_d.a 24311d341caSmrg DebugLibXt build libXt_d.a 24411d341caSmrg DebugLibXtst build libXtst_d.a 24511d341caSmrg DebugLibXag build libXag_d.a 24611d341caSmrg DebugOldX build liboldX_d.a 24711d341caSmrg DefaultCursorTheme name of default cursor theme 24811d341caSmrg DefaultFSConfigFile default font server config file 24911d341caSmrg DefaultFontPath default server font path 25011d341caSmrg DefaultRGBDatabase default server rgb color database 25111d341caSmrg DefaultSystemPath default system xdm PATH environment variable 25211d341caSmrg DefaultSystemShell default /bin/sh 25311d341caSmrg DefaultUserPath default user xdm PATH environment variable 25411d341caSmrg DependCmd command to run makedepend 25511d341caSmrg DependDir build directory containing makedepend program 25611d341caSmrg DriverManDir directory in which to install driver man pages 25711d341caSmrg DriverManSuffix man suffix for driver pages 25811d341caSmrg ExtensionDefines -D's for universal extensions 25911d341caSmrg ExtensionOSDefines -D's for additional extensions 26011d341caSmrg FontCompilerFlags flags for bdftosnf 26111d341caSmrg FontDefines -D's to turn on font options 26211d341caSmrg FontDir directory in which to install fonts 26311d341caSmrg FontFilters -D's to specify font conversion filters 26411d341caSmrg FontOSDefines -D's for which fonts to support 26511d341caSmrg ForceNormalLib force building of .a in addition to shared lib 26611d341caSmrg GzipFontCompression boolean for using gzip instead of compress 26711d341caSmrg HasXdmAuth boolean for using XDM-AUTHORIZATION-1; 26811d341caSmrg needs Wraphelp.c, see Release Notes 26911d341caSmrg InstallAppDefFiles install new app defaults files over old? 27011d341caSmrg InstallFSConfig install fs config file over old? 27111d341caSmrg InstallLibManPages boolean for installing library man pages 27211d341caSmrg InstallSecurityConfig install server security policy file over old? 27311d341caSmrg InstallXdmConfig install xdm config files over old? 27411d341caSmrg InstallXinitConfig install xinit config files over old? 27511d341caSmrg KrbIVDefines defines for use with KerberosIV 27611d341caSmrg LibDir directory in which to install X11 support files 27711d341caSmrg LibManSuffix man suffix for library pages 27811d341caSmrg LibmanDir directory in which to install library man pages 27911d341caSmrg LintlibDir directory in which to install lint libs 28011d341caSmrg ManDir directory in which to install program man pages 28111d341caSmrg ManDirectoryRoot parent of man directories relative to root 28211d341caSmrg ManPath full path of parent directory 28311d341caSmrg ManSourcePath common prefix of man page directories 28411d341caSmrg ManSuffix man suffix for programs 28511d341caSmrg MiscManSuffix man suffix for miscellaneous pages 28611d341caSmrg MiscManDir directory in which to install misc man pages 28711d341caSmrg NeedDefaultDepLibs boolean for enabling default DEPLIBS 28811d341caSmrg NlsDir directory in which to install nls files 28911d341caSmrg NormalLibFS build libFS.a 29011d341caSmrg NormalLibICE build libICE.a 29111d341caSmrg NormalLibSM build libSM.a 29211d341caSmrg NormalLibX11 build libX11.a 29311d341caSmrg NormalLibXau build libXau.a 29411d341caSmrg NormalLibXaw build libXaw.a 29511d341caSmrg NormalLibXdmcp build libXdmcp.a 29611d341caSmrg NormalLibXext build libXext.a 29711d341caSmrg NormalLibXi build libXi.a 29811d341caSmrg NormalLibXmu build libXmu.a 29911d341caSmrg NormalLibXt build libXt.a 30011d341caSmrg NormalLibXtst build libXtst.a 30111d341caSmrg NormalLibXag build libXag.a 30211d341caSmrg NormalOldX build liboldX.a 30311d341caSmrg OsNameDefines If uname(2) unavailable, set to -DOS_NAME=OSName 30411d341caSmrg PrimaryScreenResolution resolution of default server screen 30511d341caSmrg ProfileLibFS build libFS_p.a 30611d341caSmrg ProfileLibICE build libICE_p.a 30711d341caSmrg ProfileLibSM build libSM_p.a 30811d341caSmrg ProfileLibX11 build libX11_p.a 30911d341caSmrg ProfileLibXau build libXau_p.a 31011d341caSmrg ProfileLibXaw build libXaw_p.a 31111d341caSmrg ProfileLibXdmcp build libXdmcp_p.a 31211d341caSmrg ProfileLibXext build libXext_p.a 31311d341caSmrg ProfileLibXi build libXi_p.a 31411d341caSmrg ProfileLibXmu build libXmu_p.a 31511d341caSmrg ProfileLibXt build libXt_p.a 31611d341caSmrg ProfileLibXtst build libXtst_p.a 31711d341caSmrg ProfileLibXag build libXag_p.a 31811d341caSmrg ProfileOldX build liboldX_p.a 31911d341caSmrg ProjectX version indicating this is the X Window System 32011d341caSmrg RemoveTargetProgramByMoving boolean for rm -f that doesn't 32111d341caSmrg SHELLPATH -D for /bin/sh 32211d341caSmrg ServerConfigDir directory for server security config files 32311d341caSmrg ServerDefines complete -D's for server 32411d341caSmrg ServerExtraDefines special -D's for server 32511d341caSmrg ServerOSDefines OS -D's for server 32611d341caSmrg ServerAssertDefines -DNDEBUG for no assertions, /**/ for assertions 327944bff83Smrg SharedLibFS boolean for making shareable libFS.so 328944bff83Smrg SharedLibICE boolean for making shareable libICE.so 329944bff83Smrg SharedLibSM boolean for making shareable libSM.so 330944bff83Smrg SharedLibX11 boolean for making shareable libX11.so 331944bff83Smrg SharedLibXau boolean for making shareable libXau.so 332944bff83Smrg SharedLibXaw boolean for making shareable libXaw.so 333944bff83Smrg SharedLibXdmcp boolean for making shareable libXdmcp.so 334944bff83Smrg SharedLibXext boolean for making shareable libXext.so 335944bff83Smrg SharedLibXi boolean for making shareable libXi.so 336944bff83Smrg SharedLibXmu boolean for making shareable libXmu.so 337944bff83Smrg SharedLibXt boolean for making shareable libXt.so 338944bff83Smrg SharedLibXtst boolean for making shareable libXtst.so 339944bff83Smrg SharedLibXag boolean for making shareable libXag.so 340944bff83Smrg SharedOldX boolean for making shareable liboldX.so 34111d341caSmrg ShmDefines MIT-SHM define 34211d341caSmrg TwmDir directory in which to install twm config files 34311d341caSmrg UseCCMakeDepend boolean for using alternate makedepend script 34411d341caSmrg UseRgbTxt use rgb.txt file as is instead of DBM-compiled 34511d341caSmrg VarDirectory directory in /var for logs, etc., and config 34611d341caSmrg VendorHasX11R6_3libXext don't need Security & AppGroup in xrx plug-in 34711d341caSmrg XAppLoadDir directory in which to install app defaults 34811d341caSmrg XFileSearchPathBase base file search path 34911d341caSmrg XFileSearchPathDefault default path to search for app defaults files 35011d341caSmrg XInputDefines XINPUT define 35111d341caSmrg XMalloc0ReturnsNullDefines -D's specifically for libX11 35211d341caSmrg XawClientDepLibs DEPLIBS for clients that use Xaw 35311d341caSmrg XawClientLibs LOCAL_LIBRARIES for clients that use Xaw 35411d341caSmrg XdmConfigurationSubdirectory name of default xdm configuration 35511d341caSmrg XdmDir directory in which to install xdm files 35611d341caSmrg XdmServersType type of xdm Xservers file to install 35711d341caSmrg XinitDir directory in which to install xinit files 35811d341caSmrg XPrintDir parent of X Print server config directory 35911d341caSmrg XprtServer build the X Print server 36011d341caSmrg XpRasterDDX include the raster print ddx driver 36111d341caSmrg XpColorPclDDX include the color PCL print ddx driver 36211d341caSmrg XpMonoPclDDX include the monochrome PCL print ddx driver 36311d341caSmrg XpPostScriptDDX include the PostScript print ddx driver 36411d341caSmrg XpPdfDDX include the PDF print ddx driver 36511d341caSmrg XpSvgDDX include the SVG print ddx driver 36611d341caSmrg XmanLocalSearchPath non-standard path for man pages 36711d341caSmrg XtErrorPrefix leading text in XtError() msg; eg. 'X Toolkit ' 36811d341caSmrg XtWarningPrefix leading text in XtWarning()msg, same as above 36911d341caSmrg XtMalloc0ReturnsNullDefines -D's specifically for libXt 37011d341caSmrg ZBDFTOSNFFILT -D to run uncompress and bdftosnf (obsolete) 37111d341caSmrg 37211d341caSmrg 37311d341caSmrgLibrary.tmpl provides defaults for the following variables: 37411d341caSmrg 37511d341caSmrg AvoidNullMakeCommand for makes that spout about $(_NULLCMD_) 37611d341caSmrg LibraryCCOptions special C compiler options for libraries 37711d341caSmrg LibraryCDebugFlags library debug/optimize flags to override defs 37811d341caSmrg LibraryCcCmd command to run C compiler in libraries 37911d341caSmrg LibraryCplusplusOptions special C++ options for libraries 38011d341caSmrg LibraryCplusplusDebugFlags library debug/optimize flags for C++ 38111d341caSmrg LibraryCplusplusCmd command to run C++ compiler in libraries 38211d341caSmrg LibraryDefines -D's for libraries 38311d341caSmrg SeparateSharedCompile shared and unshared libs use same binaries? 38411d341caSmrg 38511d341caSmrg 38611d341caSmrgServer.tmpl provides defaults for the following variables: 38711d341caSmrg 38811d341caSmrg ServerCCOptions server C compiler options to override defaults 38911d341caSmrg ServerCcCmd command to run C compiler in server 39011d341caSmrg ServerCDebugFlags server debug/opt compiler flags 39111d341caSmrg ServerDefines server standard -D's 39211d341caSmrg InstallServerSetUID does this system need X server suid to root? 39311d341caSmrg 39411d341caSmrg 39511d341caSmrgThreads.tmpl provides defaults for the following variables: 39611d341caSmrg 39711d341caSmrg LocalThreads whether to enable multi-threading support 39811d341caSmrg LocalThreadsDefines -D flags needed in this directory 39911d341caSmrg 40011d341caSmrg 40111d341caSmrgAn <os>Lib.rules file provides defaults for the following variables: 40211d341caSmrg 40311d341caSmrg HasSharedLibraries boolean for using shared libraries 40411d341caSmrg SharedDataSeparation boolean indicating separate data/code 40511d341caSmrg SharedCodeDef -D's for compiling shared library files 40611d341caSmrg SharedLibraryDef -D's for defining which kind of shared lib 40711d341caSmrg ShLibIncludeFile location of the <os>Lib.tmpl file 40811d341caSmrg SharedLibraryLoadFlags loader flags when making the library 40911d341caSmrg UseExportLists boolean for using an export list 41011d341caSmrg PositionIndependentCFlags PIC compiler flags for C 41111d341caSmrg PositionIndependentCplusplusFlags PIC compiler flags for C++ 41211d341caSmrg 413d7ffce2aSmrg Note: PositionIndependentCplusplusFlags is only required if the 41411d341caSmrg C and C++ compilers use different flags to build PIC code. The 415d7ffce2aSmrg default configuration will try to use PositionIndependentCFlags 41611d341caSmrg for both C and C++ compiles. 41711d341caSmrg 41811d341caSmrgAn <os>Lib.tmpl file provides defaults for the following variables: 41911d341caSmrg 42011d341caSmrg SharedFSReqs required libs for libFS.so 42111d341caSmrg SharedFSRev version number for libFS.so 42211d341caSmrg SharedICEReqs required libs for libICE.so 42311d341caSmrg SharedICERev version number for libICE.so 42411d341caSmrg SharedOldXReqs required libs for liboldX.so 42511d341caSmrg SharedOldXRev version number for liboldX.so 42611d341caSmrg SharedSMReqs required libs for libSM.so 42711d341caSmrg SharedSMRev version number for libSM.so 42811d341caSmrg SharedX11Reqs required libs for libX11.so 42911d341caSmrg SharedX11Rev version number for libX11.so 43011d341caSmrg SharedXauReqs required libs for libXau.so 43111d341caSmrg SharedXauRev version number for libXau.so 43211d341caSmrg SharedXawReqs required libs for libXaw.so 43311d341caSmrg SharedXawRev version number for libXaw.so 43411d341caSmrg SharedXdmcpReqs required libs for libXdmcp.so 43511d341caSmrg SharedXdmcpRev version number for libXdmcp.so 43611d341caSmrg SharedXextReqs required libs for libXext.so 43711d341caSmrg SharedXextRev version number for libXext.so 43811d341caSmrg SharedXiReqs required libs for libXi.so 43911d341caSmrg SharedXiRev version number for libXi.so 44011d341caSmrg SharedXmuReqs required libs for libXmu.so 44111d341caSmrg SharedXmuRev version number for libXmu.so 44211d341caSmrg SharedXtReqs required libs for libXt.so 44311d341caSmrg SharedXtRev version number for libXt.so 44411d341caSmrg SharedXtstReqs required libs for libXtst.so 44511d341caSmrg SharedXtstRev version number for libXtst.so 44611d341caSmrg SharedXmReqs required libs for libXm.so 44711d341caSmrg SharedXmRev version number for libXm.so 44811d341caSmrg SharedMrmReqs required libs for libMrm.so 44911d341caSmrg SharedMrmRev version number for libMrm.so 45011d341caSmrg SharedUilReqs required libs for libUil.so 45111d341caSmrg SharedUilRev version number for libUil.so 45211d341caSmrg SharedTtReqs required libs for libtt.so 45311d341caSmrg SharedTtRev version number for libtt.so 45411d341caSmrg SharedPamReqs required libs for libpam.so 45511d341caSmrg SharedPamRev version number for libpam.so 45611d341caSmrg SharedDtSvcReqs required libs for libDtSvc.so 45711d341caSmrg SharedDtSvcRev version number for libDtSvc.so 45811d341caSmrg SharedDtSearchReqs required libs for libDtSearch.so 45911d341caSmrg SharedDtSearchRev version number for libDtSearch.so 46011d341caSmrg SharedDtWidgetReqs required libs for libDtWidget.so 46111d341caSmrg SharedDtWidgetRev version number for libDtWidget.so 46211d341caSmrg SharedDtHelpReqs required libs for libDtHelp.so 46311d341caSmrg SharedDtHelpRev version number for libDtHelp.so 46411d341caSmrg SharedDtPrintReqs required libs for libDtPrint.so 46511d341caSmrg SharedDtPrintRev version number for libDtPrint.so 46611d341caSmrg SharedDtTermReqs required libs for libDtTerm.so 46711d341caSmrg SharedDtTermRev version number for libDtTerm.so 46811d341caSmrg SharedDtMrmReqs required libs for libDtMrm.so 46911d341caSmrg SharedDtMrmRev version number for libDtMrm.so 47011d341caSmrg 47111d341caSmrgVendor.cf files and/or site/host specific .def files may define the 47211d341caSmrgfollowing variables: 47311d341caSmrg 47411d341caSmrg ProjectRoot The directory under which the installation 47511d341caSmrg will operate. This value will be hard coded 47611d341caSmrg into some programs. As a result do not use it 47711d341caSmrg to specify the installation directory for a 47811d341caSmrg cross compiled system, use DESTDIR to 47911d341caSmrg accomplish that task. 48011d341caSmrg 48111d341caSmrgThe following variables are used by some part of the tree: 48211d341caSmrg 48311d341caSmrg AckToolset programs/Xserver/hw/xfree86 48411d341caSmrg BuildChooser build the xdm chooser program? 48511d341caSmrg SharedLibXdmGreet use xdm shared dynamic greeter library? 48611d341caSmrg LatexCmd command to run LaTeX on a document 48711d341caSmrg DvipsCmd command to turn .dvi file into PostScript 48811d341caSmrg MotifBC using Motif 1.1.1, 1.1.2, or 1.1.3? 48911d341caSmrg GetValuesBC compat GetValues behavior for broken apps? 49011d341caSmrg NeedBerklib application needs libXbsd? 49111d341caSmrg SvgaConfig default SVGA configuration 49211d341caSmrg HasGetReturnAddress util/memleak 49311d341caSmrg HasShadowPasswd system has getspnam() function 49411d341caSmrg XnestServer build X server with Xlib-based ddx 49511d341caSmrg XVirtualFramebufferServer build X server with virtual memory framebuffer 49611d341caSmrg WebServer host:port of your Web server (see programs/xrx) 49711d341caSmrg HtmlDir path used by Web server for HTML and RX docs 49811d341caSmrg CgiBinDir path used by Web server for CGI programs 49911d341caSmrg ProxyManager ICE network ID to contact a running proxymngr 50011d341caSmrg XdmxServer build Distributed Multihead X server 50111d341caSmrg 50211d341caSmrg 50311d341caSmrgMake Variables 50411d341caSmrg 50511d341caSmrgThe following make variables are used by imake rules and may be set in 50611d341caSmrgan individual Imakefile. 50711d341caSmrg 50811d341caSmrgDEFINES program-specific -D flags and other arguments 50911d341caSmrg to pass to the C compiler, lint, and makedepend. 51011d341caSmrgDEPEND_DEFINES program-specific flags in addition to 51111d341caSmrg $(DEFINES) to pass to lint and makedepend. 51211d341caSmrg This is usually used when there are special 51311d341caSmrg compilation rules for individual files, and 51411d341caSmrg the defines passed to those files affect 51511d341caSmrg makedepend results. If they can be passed to 51611d341caSmrg all files during the makedepend step without 51711d341caSmrg affecting the results for other files, 51811d341caSmrg DEPEND_DEFINES is used to do that. Example is 51911d341caSmrg the Xlib Imakefile. 52011d341caSmrgINCLUDES program-specific -I flags. 52111d341caSmrgHEADERS .h files to install with "make includes" and 52211d341caSmrg "make install". If this Imakefile includes 52311d341caSmrg Library.tmpl there are no headers, include 52411d341caSmrg this line instead of a HEADERS definition: 52511d341caSmrg #define LibHeaders NO 52611d341caSmrgREQUIREDLIBS when building a shared library, other libraries used 52711d341caSmrg by this library that should be referenced at 52811d341caSmrg link time. 52911d341caSmrgLINTLIBS program-specific libraries for lint. 53011d341caSmrgLOCAL_LDFLAGS program-specific flags for the linker. 53111d341caSmrgLOCAL_LIBRARIES project libraries (usually specified 53211d341caSmrg as -lname) needed by this program. 53311d341caSmrg For example, "-lXt -lXext -lX11". 53411d341caSmrg Used by SimpleProgramTarget and 53511d341caSmrg ComplexProgramTarget* rules. 53611d341caSmrg Do not include any system-specific libraries here. 53711d341caSmrgSYS_LIBRARIES system libraries (usually specified 53811d341caSmrg as -lname) needed by this program. 53911d341caSmrg For example "MathLibrary". 54011d341caSmrg Do not include any system-specific libraries 54111d341caSmrg such as "-lnsl" here; they are automatically 54211d341caSmrg added to the link command by the 54311d341caSmrg vendor-specific .cf file. 54411d341caSmrgSUBDIRS for an Imakefile in a directory containing 54511d341caSmrg subdirectories, this names the subdirectories. 54611d341caSmrg Such an Imakefile also needs to #define IHaveSubdirs 54711d341caSmrg and call MakeSubdirs() and DependSubdirs(). 54811d341caSmrgMANSUFFIX suffix used by InstallManPage* rules. 54911d341caSmrg May be set to $(LIBMANSUFFIX), $(FILEMANSUFFIX), or 550d7ffce2aSmrg $(MISCMANSUFFIX) in directories for libraries or data 55111d341caSmrg files. 55211d341caSmrg 55311d341caSmrg 55411d341caSmrgRule-specific variables that may be set in an individual Imakefile. 55511d341caSmrgIf you aren't using these rules, you may need variables with a similar 55611d341caSmrgfunction, but you need not use these names. However, following these 55711d341caSmrgconventions may make your Imakefile easier to read and maintain. 55811d341caSmrg 55911d341caSmrgDEPLIBS library dependencies for ComplexProgramTarget 56011d341caSmrgSRCS source files used by ComplexProgramTarget and 56111d341caSmrg DependTarget. 56211d341caSmrgOBJS object files used by ComplexProgramTarget 56311d341caSmrgPROGRAMS default target used with ComplexProgramTarget_(n) 56411d341caSmrgSRCS1 source files used by ComplexProgramTarget_1 56511d341caSmrgOBJS1 object files used by ComplexProgramTarget_1 56611d341caSmrgDEPLIBS1 library dependencies for ComplexProgramTarget_1 56711d341caSmrgSRCS2 source files used by ComplexProgramTarget_2 56811d341caSmrgOBJS2 object files used by ComplexProgramTarget_2 56911d341caSmrgDEPLIBS2 library dependencies for ComplexProgramTarget_2 57011d341caSmrgSRCS3 source files used by ComplexProgramTarget_3 57111d341caSmrgOBJS3 object files used by ComplexProgramTarget_3 57211d341caSmrgDEPLIBS3 library dependencies for ComplexProgramTarget_3 57311d341caSmrg 57411d341caSmrgVariables that can be set on the make command line: 57511d341caSmrg 57611d341caSmrgDESTDIR directory under which "make install" should 57711d341caSmrg install instead of "/"; used only for testing 57811d341caSmrg "make install" rules, binary package building, 57911d341caSmrg and specifying alternative installation directories 58011d341caSmrg for cross compiles. 58111d341caSmrgFILE file for "lint1" target to run lint on. 58211d341caSmrgCDEBUGFLAGS -g and/or -O flag to control C compiler optimization. 58311d341caSmrgCXXDEBUGFLAGS -g and/or -O flag to control C++ optimization. 58411d341caSmrgLDSTRIPFLAGS flag to have linker strip objects (typically -x). 58511d341caSmrg Typically set to the empty string to prevent 58611d341caSmrg the linker from stripping objects; use this 58711d341caSmrg way when setting CDEBUGFLAGS to "-g". 58811d341caSmrg 58911d341caSmrgThese variables are set in project-specific files such as X11.tmpl. 59011d341caSmrgThey should NOT be set in an Imakefile. These variables are sometimes 59111d341caSmrgmisused; they are included here to remind Imakefile writers NOT to use 59211d341caSmrgthem: 59311d341caSmrg 59411d341caSmrgEXTRA_DEFINES project-specific -D flags 59511d341caSmrgEXTRA_INCLUDES project-specific -I flags 59611d341caSmrgEXTRA_ICONFIGFILES Additional project-specific imake config files 59711d341caSmrg to add to ICONFIGFILES. 59811d341caSmrg This is a list of files that define variables 59911d341caSmrg that might affect compilation of some files. 60011d341caSmrg 60111d341caSmrgMany other make variables are set up by the imake config files and can 60211d341caSmrgbe used in an Imakefile. The easiest way to discover them is to look 60311d341caSmrgat the Makefile generated by an empty Imakefile. 60411d341caSmrg 60511d341caSmrg 60611d341caSmrgComments 60711d341caSmrg 60811d341caSmrgUse C comment syntax in an Imakefile for comments that should not 60911d341caSmrgappear in the resulting Makefile. 61011d341caSmrgUse "XCOMM" at the start of each 61111d341caSmrgline to produce a comment that will appear in the Makefile. 61211d341caSmrg(The "XCOMM" will 61311d341caSmrgbe translated into the Makefile comment character "#" by imake.) 61411d341caSmrgDo NOT use "#" as a comment character in Imakefiles; it confuses the C 61511d341caSmrgpreprocessor used by imake on some systems. 61611d341caSmrg 61711d341caSmrg 61811d341caSmrgImake variables 61911d341caSmrg 62011d341caSmrgDon't abuse the variables in X11.tmpl that describe 62111d341caSmrgparticular pieces of X by using them to describe your own subsystems. 62211d341caSmrgInstead, create new variables that are defaulted using 62311d341caSmrgImake.tmpl variables. 62411d341caSmrg 62511d341caSmrg 62611d341caSmrgExamples 62711d341caSmrg 62811d341caSmrgSince the easiest way to write an Imakefile is to start with one that 62911d341caSmrgworks, here are some short, easy-to-read Imakefile examples in the X 63011d341caSmrgdistribution: 63111d341caSmrg 63211d341caSmrgwith subdirs: config/Imakefile 63311d341caSmrglibrary: lib/Xau/Imakefile 63411d341caSmrgsimple program: programs/xdpyinfo/Imakefile 63511d341caSmrgcomplex progs: programs/xclipboard/Imakefile 63611d341caSmrgcomplex prog: programs/xmodmap/Imakefile 63711d341caSmrg 63811d341caSmrgCommon Rules 63911d341caSmrg 64011d341caSmrgHere are some of the common rules for building programs. How to use 64111d341caSmrgthem is described in Imake.rules and in the O'Reilly book "Software 64211d341caSmrgPortability with imake." 64311d341caSmrg 64411d341caSmrgBasic program-building rules 64511d341caSmrg 64611d341caSmrgAll of these except NormalProgramTarget also generate rules to install 64711d341caSmrgthe program and its manual page, and to generate dependencies. 64811d341caSmrg 64911d341caSmrgSimpleProgramTarget Use if there is only one program to be made 65011d341caSmrg and it has only one source file. 65111d341caSmrg 65211d341caSmrgComplexProgramTarget Use if there is only one program to be made 65311d341caSmrg and it has multiple source files. Set SRCS to 65411d341caSmrg the names of the source files, set OBJS to 65511d341caSmrg the names of the object files, and set DEPLIBS 65611d341caSmrg to the libraries that this program depends on. 65711d341caSmrg 65811d341caSmrgComplexProgramTarget_1 Like ComplexProgramTarget, but uses SRCS1, 65911d341caSmrg OBJS1, and DEPLIBS1 and can be used with 66011d341caSmrg ComplexProgramTarget_2 and ComplexProgramTarget_3 66111d341caSmrg to build up to three programs in the same directory. 66211d341caSmrg Set PROGRAMS to the programs built by all of 66311d341caSmrg these rules. For more than 3 programs, use 66411d341caSmrg NormalProgramTarget for each. 66511d341caSmrgComplexProgramTarget_2 Use after ComplexProgramTarget_1 for the 66611d341caSmrg second program in a directory. Uses SRCS2, 66711d341caSmrg OBJS2, and DEPLIBS2. 66811d341caSmrgComplexProgramTarget_3 Use after ComplexProgramTarget_2 for the 66911d341caSmrg third program in a directory. Uses SRCS3, 67011d341caSmrg OBJS3, and DEPLIBS3. 67111d341caSmrg 67211d341caSmrgNormalProgramTarget Build a program. Can be used multiple times 67311d341caSmrg with different arguments in the same Imakefile. 67411d341caSmrg 67511d341caSmrgLower level rules, often used with NormalProgramTarget 67611d341caSmrg 67711d341caSmrgInstallProgram install a program. 67811d341caSmrg 67911d341caSmrgInstallManPage install a manual page. 68011d341caSmrg 68111d341caSmrgInstallDirectory install a directory. 68211d341caSmrg 68311d341caSmrgDependTarget() include once at end of Imakefile with 68411d341caSmrg NormalProgramTarget rules or that uses Library.tmpl. 68511d341caSmrg Generates dependencies for files named in SRCS. 68611d341caSmrg 68711d341caSmrgManual page rules, commonly used only in special documentation directories: 68811d341caSmrg 68911d341caSmrgInstallManPage 69011d341caSmrgInstallManPageLong 69111d341caSmrgInstallManPageAliases 69211d341caSmrg 69311d341caSmrgOther rules: 69411d341caSmrg 69511d341caSmrgSpecialCObjectRule Compile a C file with special flags. 69611d341caSmrgAllTarget Declare additional targets to build. 69711d341caSmrgInstallAppDefaults Install X application defaults file. 69811d341caSmrg 69911d341caSmrgImakefile for directory with subdirectories 70011d341caSmrg 70111d341caSmrgXCOMM this is a sample Imakefile for a directory containing subdirectories 70211d341caSmrg#define IHaveSubdirs 70311d341caSmrg#define PassCDebugFlags CDEBUGFLAGS="$(CDEBUGFLAGS)" 70411d341caSmrgSUBDIRS = list of subdirs ... 70511d341caSmrgMakeSubdirs($(SUBDIRS)) 70611d341caSmrgDependSubdirs($(SUBDIRS)) 70711d341caSmrg 70811d341caSmrg 70911d341caSmrgCommon Targets 71011d341caSmrg 71111d341caSmrgThese targets are typically NOT defined explicitly by the Imakefile 71211d341caSmrgwriter; rather they are generated automatically by imake rules. 71311d341caSmrgThey are listed here for the convenience of people using the resulting 71411d341caSmrgMakefile, not people writing the original Imakefile. 71511d341caSmrg 71611d341caSmrgall Default rule; builds whatever is in this directory. 71711d341caSmrgMakefile Remake the Makefile (use after changing Imakefile). 71811d341caSmrg Run "make depend" after. 71911d341caSmrgMakefiles Remake all Makefiles in subdirectories. (Does 72011d341caSmrg nothing if no subdirectories.) 72111d341caSmrg Run "make depend" after. 72211d341caSmrgincludes Generate and install in the tree any necessary 72311d341caSmrg header files. 72411d341caSmrgdepend Update dependencies in the Makefile calculated 72511d341caSmrg by examining the source files. 72611d341caSmrginstall Install what "make all" built on the system. 72711d341caSmrginstall.man Install manual pages. 72811d341caSmrgclean Remove built objects and other derived files. 72911d341caSmrglint Run lint. 73011d341caSmrgtags Create a tags file. 731