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