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