README revision 919
333fe280eb574439ef3f828d8755dd9e243ec855Andreas GustafssonThis is documentation of the Makefile system used in this tree.
276e28f813ffef042d5a6e9f3373ef4e2ad37996Mark Andrews
a6a23642eaf383add7a0be045c01e7dd8278ccafAndreas GustafssonGeneral Overview:
250ed9e230b3903b1b264dd1ed2f691fc7cd2f8fAndreas Gustafsson-----------------
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsThis tree builds dozens of open source modules that are each released
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsseparately and delivered as source in seperate tarballs. These modules
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsare organized in subdirectories based on the X.Org module list, though
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsmodules from other sources are included as appropriate. For instance,
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsthe application xterm is built in open-src/app/xterm, while the fontconfig
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewslibrary is in open-src/lib/fontconfig.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsIn this tree, the term "module" is used for a specific set of source built
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsgenerally from a single tarball from upstream, such as xterm or fontconfig.
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsThe directories grouping these together are referred to as "module type"
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsdirectories - app, lib, font, etc. Each module is thus found in a
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewssubdirectory of the form open-src/<module type>/<module> . Various flags
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewscan be set at either the individual module level or for all modules of a
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsmodule type.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsFor each module, at build time the tarball is unpacked, patches applied for
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewspost-release bug fixes or customizations, and then the build is run.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsTo allow building both 32-bit and 64-bit versions in the same build,
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsthis all happens in subdirectories named build_32 & build_64 in each
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsmodules' directory. Since those subdirectories are competely recreatable
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsfrom the source tarball and patches, rebuilding the tree or running make clean
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewssimply removes them entirely and recreates them.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsYou should be able to run make commands in any module directory or
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsmodule-type directory, though since most of the intermodule dependencies
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsare not declared, many modules will break unless you've done a full-tree
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsbuild at some point to populate the proto area with the bits needed.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews=============================================================================
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMake targets you can build in each module:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews------------------------------------------
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsFor most of these you can append _32 or _64 to do just the 32-bit or 64-bit
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsversions of the targets, while the version listed here repeats for all build
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewstypes set in the BUILD_TYPES variable. These are defined in the
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsopen-src/common/Makefile.inc file, though open-src/<module type>/Makefile.inc
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsmay add additional rules needed for modules of that type.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsmake clean
2895f101b5585a19015ac2c2c1e1812ac467fa12Automatic Updater Completely removes build_* directories.
2895f101b5585a19015ac2c2c1e1812ac467fa12Automatic Updater
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsmake source
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Creates build_* directories by unpacking sources from tarball
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews and applying patches.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
250ed9e230b3903b1b264dd1ed2f691fc7cd2f8fAndreas Gustafssonmake configure
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews Runs GNU autoconf script or similar configuration steps if
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews needed, including autoreconf or delibtoolize if variables are set.
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews (Runs make source first if needed.)
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsmake build
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Compile the software into the binaries that get installed.
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews (Runs make configure first if needed.)
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsmake install
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews Install files into the proto area where make_release_packages
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews will pull them from to make packages and where other parts of
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews the build will use them. (Runs make build first if needed.)
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsmake all (or just "make" with no arguments)
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews equivalent to make build for most modules
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsmake debug
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews same as make all, but with compiler optimization flags changed
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews to "-g". (Note that if you haven't done a make clean first,
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews doesn't force a recompile, so running make debug in a directory
0ddeab91cf922fd977f37318620b4c69dccf8364Automatic Updater you already built non-debug may not actually build debug versions.)
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updatermake debug-install
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updater same as make install, but with compiler optimization flags changed
7a7a44400d49122d4cc207b43922a7b9c5afe443Automatic Updater to "-g". (See warning on make debug about doing a make clean first.)
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrewsmake download
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews If open-src/tarballs does not contain the tarball needed for this
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews module, download it from $(SOURCE_URL). (See "Building from git"
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews section below if MODULE_VERSION=git.)
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsmake regen-patches
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Create a directory new/ containing patches generated against the
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews current tarball. Useful when updating to a new version and patches
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews still apply, but you want to get rid of warnings about patch fuzz
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews and line offsets.
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafssonmake git-update
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson See "Building from git" section below.
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater=============================================================================
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic UpdaterMake targets you can build in parent directories:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews-------------------------------------------------
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark AndrewsIn the top-level open-src directory, or any of the module type directories,
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrewsyou can run these make commands to run the appropriate targets for all modules
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrewsin that directory. The Makefiles at each level all include the same rules
089c63b69cdf6803aa8901aae3f2fbae58969511Automatic Updaterfrom open-src/common/Makefile.subdirs to define these.
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrewsmake all
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews Run make all in all subdirectories.
089c63b69cdf6803aa8901aae3f2fbae58969511Automatic Updater
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrewsmake clean
1f8dc520d4bbc5406d551724282df1e5f7626e19Automatic Updater Run make clean in all subdirectories.
1f8dc520d4bbc5406d551724282df1e5f7626e19Automatic Updater
1f8dc520d4bbc5406d551724282df1e5f7626e19Automatic Updatermake World
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson Run make clean in all subdirectories, then make all in all subdirs.
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrewsmake install
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews Run make install in all subdirectories.
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafssonmake download
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews Run make download in all subdirectories.
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrewsmake source
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Run make source in all subdirectories.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsmake git-update
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson Run make git-update in all subdirectories.
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson
97bb3725292d3f74bcb0a32be6a76b2da34ba494Andreas Gustafssonmake debug-build
428dc9698871ecfeda63eab31cd3523dd4befb31Mark Andrews Run make debug-build in all subdirectories.
97bb3725292d3f74bcb0a32be6a76b2da34ba494Andreas Gustafsson
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafssonmake debug-install
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews Run make debug-install in all subdirectories.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews=============================================================================
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas GustafssonVariables that can be set in the Makefile for each module:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews----------------------------------------------------------
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas GustafssonRequired for all modules:
276e28f813ffef042d5a6e9f3373ef4e2ad37996Mark Andrews
8b1cba45ade83893c009b37f47d5478e97eb61d2Automatic UpdaterMODULE_NAME
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews - Name of the module being built - usually the same as the name of the
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews directory it's being built in and the tarball used for the sources.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODULE_VERSION
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews - Version of the source to use, used by default in the tarball name and
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews source directory unpacked from it.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Special values:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews "git" - see "Building from git" below
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews "src" - used when there is no upstream tarball, only local sources
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews "NONE" - used when no build_* directories are created
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark AndrewsRequired for some modules:
71eeac3530eabb7f70f4b6bdba5addb40a5bca27Mark Andrews
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas GustafssonSUN_PACKAGE
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Package name that this module is shipped in, to list in attributes section
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews of man page
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews * Required if SUNTOUCHED_MANPAGES is not empty
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODULE_STABILITY
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson - Interface Stability to list in attributes section of man page
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson * Required if SUNTOUCHED_MANPAGES is not empty
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsLIBNAME
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Name of library built in this module
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews * Required for lib modules if SUNTOUCHED_MANPAGES is not empty
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews or if *.spec files are being used to set library versioning information.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
97bb3725292d3f74bcb0a32be6a76b2da34ba494Andreas GustafssonOptional, default is empty:
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark AndrewsSOURCE_UNCOMPRESS
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews - Command to use to uncompress tarball, if not bzcat
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark AndrewsSOURCE_PATCHES
8dcabaace18bbfd2f9a09a0cb0f524cbb326cbabMark Andrews - Patches to apply to the sources after unpacking the tarball
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updater Entries can be either a simple file name or filename,flags
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updater to specify flags to be passed to gpatch. The flags argument
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson is most commonly used to specify -p1 to ignore the a/ & b/ path
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews prefixes in git-generated patch files - if no flags are specified,
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews -p0 is passed to treat paths as relative to the top of $(BUILD_DIR).
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark AndrewsADDITIONAL_SOURCE_DIR
9011c72c568aedd03709f56f21d639fd55944a74Automatic Updater - Directory containing additional source files to be linked into the
4a71c59d2bf32585c5dd18f4630d5f10e56a1ab3Automatic Updater build directory by the default_source rule.
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark AndrewsSUNTOUCHED_MANPAGES
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Man pages to add Solaris attributes section and other common Solaris
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews man page conventions to, via the open-src/common/suntouch-manpages.pl
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews script.
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson
2fd63cf561135572339d4e2ff0c06695e3dcf1baMark AndrewsMODULE_SUNTOUCH_MAN_FLAGS
3cddb2c552ee6582e8db0849c28747f6b6ca57feAutomatic Updater - Additional flags to pass to open-src/common/suntouch-manpages.pl, such as
3cddb2c552ee6582e8db0849c28747f6b6ca57feAutomatic Updater -p /usr/bin to add a path of /usr/bin to the command in the synopsis.
3cddb2c552ee6582e8db0849c28747f6b6ca57feAutomatic Updater Available flags are:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews -a '{attribute, value}, ...' - entries for Attributes section table
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews -l libname - add library line to synopsis
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews -p path - add path to command in synopsis
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsFIX_PC_FILES
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson - Names of pkgconfig .pc or .pc.in files in the module, which will be
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson "fixed" to add required -R flags for linking libraries with and remove
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson unnecessary Requires.privates lines from.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas GustafssonMODULE_SOURCE_DEPS, MODULE_CONFIGURE_DEPS,
2fd63cf561135572339d4e2ff0c06695e3dcf1baMark AndrewsMODULE_BUILD_DEPS, MODULE_INSTALL_DEPS
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson - Makefile targets/rules that the default_* rules list as dependencies
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark AndrewsMODULE_ADD_SOURCE_TARGETS, MODULE_ADD_CONFIGURE_TARGETS,
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODULE_ADD_BUILD_TARGETS, MODULE_ADD_INSTALL_TARGETS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Additional targets/rules run by "make source", "make configure", etc.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews in addition to default_* if *_TARGETS is not overridden.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas GustafssonMODULE_CONFIG_OPTS
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson - Additional arguments passed to configure script by default_config rule
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas GustafssonMODULE_CONFIG_ENV
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Additional environment variables passed to configure script
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews by default_config rule
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas GustafssonMODULE_CFLAGS
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson - C Compiler flags passed to configure via CFLAGS variable by
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews default_config rule.
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updater
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic UpdaterMODULE_CXXFLAGS
97bb3725292d3f74bcb0a32be6a76b2da34ba494Andreas Gustafsson - C++ Compiler flags passed to configure via CXXFLAGS variable by
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews default_config rule.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODULE_CPPFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - C preprocessor flags (-I & -D) passed to configure via CPPFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews variable by default_config rule.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODULE_DEBUG_FLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - C Compiler flags passed to configure via CFLAGS variable by
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews default_config rule when building debug versions (such as via "make debug")
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODULE_LDFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Linker flags passed to configure via LDFLAGS variable by default_config
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews rule.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsUSE_DEFAULT_CONFIG_CPPFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - If set to "no", don't pass the normal set of -I flags in CPPFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews to configure script in default_config rule. MODULE_CPPFLAGS and
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews MODTYPE_CPPFLAGS will still be passed.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsUSE_DEFAULT_CONFIG_LDFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - If set to "no", don't pass the normal set of linker flags in LDFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews to configure script in default_config rule. MODULE_LDFLAGS and
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews MODTYPE_LDFLAGS will still be passed.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsUSE_DEFAULT_CONFIG_ENV
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - If set to "no", don't pass the normal set of default environment variables
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews to configure script in default_config rule. MODULE_CONFIG_ENV and
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews MODTYPE_CONFIG_ENG will still be passed.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsAUTORECONF
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - If set to "yes", the default_config rule will run autoreconf before
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews running configure, to regenerate autoconf/automake/libtool created
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews files after patches have been applied to the *.ac/*.am/*.in source files.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsDELIBTOOLIZE
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - If set to "yes", the default_config rule will run the script
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews open-src/common/delibtoolize.pl to remove libtool calls from Makefiles
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews after running configure.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODULE_LD_OPTIONS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Additional options passed via LD_OPTIONS environment variable to
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews force options to be used by ld, regardless of options passed by
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews libtool/compiler etc. Used by default_build & default_install rules.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODULE_BUILD_ENV
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Additional environment variables passed when calling make
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews by default_build & default_install rules
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODULE_MAKEFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Additional command line arguments passed when calling make
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews by default_build & default_install
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODULE_BUILD_MAKEFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Additional command line arguments passed when calling make
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews by default_build
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODULE_INSTALL_MAKEFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Additional command line arguments passed when calling make
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews by default_install
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsEXTRA_LICENSES
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Additional files containing copyright & license information for this module,
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews beyond what's in LICENSE_FILE, such as subsets for specific packages.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Will be copied under their own names to $(PROTODIR)/licenses/<path>/
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews for use by include statements in package copyright.add files, where
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews path is the same as the directory & subdirectory the module source is in.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Files are looked for relative to module directory, include $(SOURCE_DIR)/
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews in the filename to look relative to the top-level source directory.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsOptional, with non-empty default:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews* Important, for these, to override the default values, you must not only
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews set the variable, but set another variable <variable>_SET=yes before the
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Makefile.inc is included to prevent the default from being set. For
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews example:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews SOURCE_URL=http://fontconfig.org/release/$(SOURCE_TARBALL_NAME)
089c63b69cdf6803aa8901aae3f2fbae58969511Automatic Updater SOURCE_URL_SET=yes
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODULE_COMPILER
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Compiler to use, either "suncc" or "gcc".
089c63b69cdf6803aa8901aae3f2fbae58969511Automatic Updater Default: $(DEFAULT_COMPILER) setting in common/Makefile.init,
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews which is set to suncc in the master sources.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODULE_MAKE
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - make command to use, either "$(MAKE)" or "$(GNUMAKE)".
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Default: "$(MAKE)" (which is assumed to be Solaris make, not GNU).
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODULE_PREFIX
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Prefix to install files under, passed to configure scripts via --prefix.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Default: $(X11_DIR) (aka /usr).
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsSOURCE_DIRNAME
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Directory that will be created when the source tarball is unpacked.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Default: $(MODULE_NAME)-$(MODULE_VERSION)
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsSOURCE_TARBALL_NAME
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Name of tarball file under open-src/tarballs directory for this module.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Set to "NONE" if there is no upstream tarball.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Default: $(SOURCE_DIRNAME).tar.bz2
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsSOURCE_TARBALL_DIR
2895f101b5585a19015ac2c2c1e1812ac467fa12Automatic Updater - For X.Org sources, what directory the source tarball & git repo is in
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews on freedesktop.org - usually the same as the module type directory in
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews this tree.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Default: $(MODTYPE)
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsSOURCE_URL
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - URL to download the SOURCE_TARBALL from when running "make download"
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Default: $(XORG_RELEASES_URL)/$(SOURCE_TARBALL_DIR)/$(SOURCE_TARBALL_NAME)
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsGIT_URL
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - URL to check out the current sources via the git code manager if
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews MODULE_VERSION is set to "git" - see "Building from git" below
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Default: $(XORG_GIT_URL)/$(SOURCE_TARBALL_DIR)/$(MODULE_NAME).git
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsBUILD_TYPES
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - What type of output to build for this module - usually the word-size of
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews the binaries built (32 and/or 64), but may be set to any string if other
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews distinctions are useful. For most modules that don't build binaries,
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews (fonts, proto headers, docs, etc.) it's set to 32 for simplicity.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews For each value xx in this list, a build_xx directory will be made and
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews the source_xx, configure_xx, build_xx and install_xx rules run.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Default: 32
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsSOURCE_TARGETS, CONFIGURE_TARGETS, BUILD_TARGETS, INSTALL_TARGETS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Makefile targets/rules to run for "make source", "make configure",
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews "make build", and "make install"
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Defaults: default_source, default_configure, default_build, default_install
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews The *_TARGETS may be appended to by setting the MODTYPE_ADD_*_TARGETS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews and/or MODULE_ADD_*_TARGETS variables.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsAUTOCONF_TARGET
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - File created by running the default_configure rule. If this file exists,
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews make will not run the default_configure rule - if it does not exist, it
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews will be run.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Default: $(SOURCE_DIR)/Makefile
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsLICENSE_FILE
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - File containing copyright & license information for this module.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Will be copied to $(PROTODIR)/licenses/<path>/COPYING
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews for use by include statements in package copyright.add files, where
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews path is the same as the directory & subdirectory the module source is in.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews File is looked for first in module directory, if not found there,
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews in top-level source directory (SOURCE_DIR).
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Default: COPYING
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODULE_MTLEVEL
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - For modules in the lib directory, Multi-thread safety level to list in
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews attributes section of SUNTOUCHED_MANPAGES
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews Default: See XInitThreads(3X11)
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews=============================================================================
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsVariables that can be set in the Makefile.inc for each module type:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews-------------------------------------------------------------------
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsSome settings are common to most, if not all of the modules of a given
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewstype. For those, these variables can be set in
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsopen-src/<module_type>/Makefile.inc - they have the same meanings and uses
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsas the MODULE_* versions documented above, and appear in commands before
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsthe MODULE_* versions - the general pattern is
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews foo=<tree-wide-defaults> $(MODTYPE_foo) $(MODULE_foo)
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsRequired for all module types:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsMODTYPE
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Name of the directory for this module type, usually the same as the
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews directory for the module type in X.Org's source trees.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsOptional, default is empty:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_SUNTOUCH_MAN_FLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_SOURCE_DEPS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_CONFIGURE_DEPS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_BUILD_DEPS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_INSTALL_DEPS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_ADD_SOURCE_TARGETS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_ADD_CONFIGURE_TARGETS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_ADD_BUILD_TARGETS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_ADD_INSTALL_TARGETS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_CONFIG_OPTS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_CONFIG_ENV
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_CFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_CXXFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_CPPFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_DEBUG_FLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_LDFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_LD_OPTIONS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_BUILD_ENV
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_MAKEFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_BUILD_MAKEFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_INSTALL_MAKEFLAGS
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsOptional, with non-empty default:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews[See note in module variable section about setting _SET variables to override]
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_COMPILER
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater - MODTYPE_MAKE
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - MODTYPE_PREFIX
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews=============================================================================
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsSetting per-platform variables:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews-------------------------------
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsopen-src/common/Makefile.init defines $MACH to be either sparc or i386
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsfor the platform being built. You can reference this variable in the
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsnames of other variables to set different values for each platform.
089c63b69cdf6803aa8901aae3f2fbae58969511Automatic UpdaterFor instance, to build only 64-bit on SPARC, but both 32-bit and 64-bit
089c63b69cdf6803aa8901aae3f2fbae58969511Automatic Updateron x86/x64, you can do:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews BUILD_TYPES_sparc=64
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews BUILD_TYPES_i386=32 64
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews BUILD_TYPES=$(BUILD_TYPES_$(MACH))
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews BUILD_TYPES_SET=yes
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews=============================================================================
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsVariables you may want to customize for your site/tree:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsXORG_RELEASES_URL & SF_DOWNLOADS_URL (set in open-src/common/Makefile.init)
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews- urls for X.Org & sourceforge mirrors to download tarballs from
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsFDO_GIT_URL (set in open-src/common/Makefile.init)
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews- url for git repositories hosted on freedesktop.org, including
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews X.Org, Mesa, pixman, etc. - defaults to anonymous git over http, can
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews change to use another protocol if needed
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews=============================================================================
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsTools for developers to use:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsSome tools to ease development are available in the util/build-tools
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsdirectory of the tree.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsfind-build-errors - looks for a log/buildit-XW file (or another file you
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews specify on the command line) and tries to isolate out just the
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews build errors for easier reading than the raw build logs.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews If you did buildit -p, also shows packaging errors.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsxmake - when you change one file in a large module like xserver and just
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews want to rebuild in that subdirectory of the build_32 or build_64
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews tree, running xmake will attempt to run make or gmake in that
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews directory with the same flags and environment variables that would
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews be passed from running make in the module make directory
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews=============================================================================
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsBuilding from git:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsFor debugging and development purposes, such as working on the merge of
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsa X.org release still in development, you can choose to to check out a
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsthe upstream sources from a the git repository instead of a tarball.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsYou must *NOT* check in to the master gate a module using this feature,
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewssince this would produce a build that's not reproducible and changing
3cddb2c552ee6582e8db0849c28747f6b6ca57feAutomatic Updaterunexpectedly.
3cddb2c552ee6582e8db0849c28747f6b6ca57feAutomatic Updater
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsTo use this, set MODULE_VERSION to "git" in a module's Makefile.
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsTo check out a branch other than master, add GIT_BRANCH="branch-name".
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsOnce you've done this "make download" will clone the git repo initially, and
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews"make git-update" will update an existing repo. The clone will be located
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsin the $(MODULE_NAME)-git subdirectory in the module directory, and the
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews"make source" command will copy it instead of unpacking a tarball.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews=============================================================================
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsKnown deficiencies (aka TODO):
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsThings we should fix someday, but haven't had time to do yet, include:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews- Builds are slow. Painfully slow. Things we might be able to do to
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews speed them up include:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Using a cache of configure script results shared among all the
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews components in the tree
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Setting up proper parallel make rules so that multi-core/cpu
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews machines can build more than one bit at a time.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews - Profiling the builds to see where bottlenecks are
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
3b2c6af63e0367c6eabe0a21ca23841ca87cd22fAutomatic Updater- There aren't dependency relationships listed in most of the module
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews makefiles - you can't bringover the tree and just cd open-src/xserver/xorg
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews and make, because it won't find many of the dependencies - pretty much you
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews have to run ./buildit at the toplevel first to build the entire tree and then
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews go to work on the module you care about. It would be cool if it would do
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews this for you (like I believe the ON tree does), though tracking down all the
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews dependencies will probably take a while - getting them done for xserver/xorg
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews first would be most useful.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews=============================================================================
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
089c63b69cdf6803aa8901aae3f2fbae58969511Automatic UpdaterCopyright 2009 Sun Microsystems, Inc. All rights reserved.
089c63b69cdf6803aa8901aae3f2fbae58969511Automatic UpdaterUse is subject to license terms.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsPermission is hereby granted, free of charge, to any person obtaining a
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewscopy of this software and associated documentation files (the "Software"),
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsto deal in the Software without restriction, including without limitation
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsthe rights to use, copy, modify, merge, publish, distribute, sublicense,
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsand/or sell copies of the Software, and to permit persons to whom the
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsSoftware is furnished to do so, subject to the following conditions:
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsThe above copyright notice and this permission notice (including the next
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsparagraph) shall be included in all copies or substantial portions of the
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsSoftware.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsTHE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsDEALINGS IN THE SOFTWARE.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews