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