Gentoo Wiki


Code: man 5 make.conf
MAKE.CONF(5)                                             Portage                                            MAKE.CONF(5)

       make.conf - custom settings for Portage


       This file contains various variables that are used by Portage.  Portage will check the currently-defined environ'
       ment variables first for any settings.  If no environment settings are found, Portage then checks /etc/make.conf.
       If  no  setting  is  found in /etc/make.conf, Portage checks /etc/make.globals. If no setting is found there, the
       profile's default setting is grabbed from /etc/make.profile/make.defaults. Please note  that  all  user  settings
       should be made in the environment or in /etc/make.conf, which is intended to be customized by the user.
       Exceptions  are  incremental  variables such as USE, CONFIG_PROTECT*, and ACCEPT_KEYWORDS.  Incremental variables
       are propagated down from make.defaults to make.globals to make.conf to the environment settings.  Clearing  these
       variables requires a clear-all as in: export USE="-*"

       ACCEPT_KEYWORDS = [space delimited list of KEYWORDS]
              Enable  testing  of ebuilds that have not yet been deemed 'stable'.  Users of the 'x86' architecture would
              set this to '~x86' while ppc users would set this to '~ppc'.   This  is  an  incremental  variable.   Only
              define a ~arch.
              Defaults to the value of $ARCH.

       BUILD_PREFIX = [path]
              Defines the location of the package working directory.
              Defaults to ${PORTAGE_TMPDIR}/portage

       CBUILD This variable is passed by the ebuild scripts to the configure as --build=${CBUILD} only if it is defined.
              Do not set this yourself unless you know what you are doing.

       CCACHE_DIR = [path]
              Defines the location of the ccache working directory.  See the ccache(1) man page for more information.
              Defaults to /var/tmp/ccache

       CCACHE_SIZE = "size"
              This controls the space use limitations for ccache.  The default is 2 gigabytes ('2G').  Sizes are  speci'
              fied with 'G', 'M', or 'K'.

              Use  these  variables  to  set the desired optimization/CPU instruction settings for applications that you
              compile.  Nearly all ebuild files will take advantage of your custom settings, resulting in a Gentoo Linux
              that  is  fully customized to your specifications.  Please use sane settings as some packages will fail to
              compile/run if the optimizations are too extreme.

              For more information, see the Invoking GCC section of the gcc manual:

       CHOST  This variable is passed by the ebuild scripts to the configure step as --host=${CHOST}.  This way you  can
              force the build-host.

              For more information:

       CLEAN_DELAY = integer
              Determines how long the countdown delay will be after running 'emerge clean'.
              Defaults to 5 seconds.

       COLLISION_IGNORE = [space delimited list of files and/or directories]
              This variable allows the user to disable collision-protect for specific files and/or directories.

       CONFIG_PROTECT = [space delimited list of files and/or directories]
              All  files  and/or  directories that are defined here will have "config file protection" enabled for them.
              See the CONFIGURATION FILES section of emerge(1) for more information.

       CONFIG_PROTECT_MASK = [space delimited list of files and/or directories]
              All files and/or directories that are defined here will have "config file protection" disabled  for  them.
              See the CONFIGURATION FILES section of emerge(1) for more information.

              This  variable  is  passed  by  the  ebuild  scripts to the configure as --target=${CTARGET} only if it is

       DISTDIR = [path]
              Defines the location of your local source file repository.  Note that locations under /usr/portage are not
              necessarily safe for data storage.  See the PORTDIR documentation for more information.
              Defaults to /usr/portage/distfiles.

              If this variable contains a directory then symlinks to html documentation will be installed into it.

              Defines  whether  or  not  to ignore audible beeps when displaying important informational messages.  This
              variable is unset by default.

              Options to append to the end of the emerge(1) command line on every invocation.  These options will not be
              appended to the command line if --ignore-default-opts is specified.

              Defines whether or not to ignore short pauses that occur when displaying important informational messages.
              This variable is unset by default.  If it is set to any value pauses are ignored.

       EXTRA_ECONF = [configure options string]
              Contains additional options that econf will append to configure script arguments (see ebuild(5)).

       FEATURES = "sandbox ccache"
              Defines actions portage takes by default.  These options should not be changed by  anyone  but  developers
              and/or  maintainers.   'sandbox'  is  an important part of FEATURES and should not be disabled by default.
              This is an incremental variable.

                     When commiting work to cvs with repoman(1), assume that all existing SRC_URI digests  are  correct.
                     This  feature  also affects digest generation via ebuild(1) and emerge(1) (emerge generates digests
                     only when the digest feature is enabled). Existing digests for files that do not exist  in  ${DIST'
                     DIR}  will  be  automatically  assumed even when assume-digests is not enabled. If a file exists in
                     ${DISTDIR} but it's size does not match the existing digest, the digest will be regenerated regard'
                     less of whether or not assume-digests is enabled. The ebuild(1) digest command has a --force option
                     that can be used to force regeneration of digests.

                     Binary packages will be created for  all  packages  that  are  merged.  Also  see  quickpkg(1)  and
                     emerge(1) --buildpkg and --buildpkgonly options.

                     Build binary packages for just packages in the system set.

              ccache Enable  portage  support  for  the  ccache package.  If the ccache dir is not present in the user's
                     environment, then portage will default to ${PORTAGE_TMPDIR}/ccache.

                     A QA-feature to ensure that a package doesn't overwrite files it doesn't own.  The COLLISION_IGNORE
                     variable can be used to selectively disable this feature.

              digest Autogenerate  digests  for packages when running the emerge(1) command.  If the assume-digests fea'
                     ture is also enabled then existing SRC_URI digests will be reused whenever they are available.

              distcc Enable portage support for the distcc package.

                     Portage uses lockfiles to ensure competing instances don't clobber each other's files. This feature
                     is enabled by default but may cause heartache on less intelligent remote filesystems like NFSv2 and
                     some   strangely   configured   Samba   server   (oplocks   off,    NFS    re-export).    A    tool
                     /usr/lib/portage/bin/clean_locks  exists to help handle lock issues when a problem arises (normally
                     due to a crash or disconnect).

                     Enable fakeroot for the install and package phases when a non-root user runs the ebuild(1) command.

                     Runs  the script that will fix the dependencies in all binary packages.  This is run whenever pack'
                     ages are moved around in the portage tree.  Please note that this can take a lot of time.

                     Force emerges to always try to fetch files from the PORTAGE_BINHOST.   See  make.conf(5)  for  more

              gpg    Check the signatures of Manifests and make sure they are correct.

                     Install source code into /usr/src/debug/${CATEGORY}/${PF} (also see splitdebug). This feature works
                     only if debugedit is installed and CFLAGS is set to include debug information  (such  as  with  the
                     -ggdb flag).

                     Do not delete the ${T} directory after the merge process.

                     Do not delete the ${WORKDIR} directory after the merge process. ${WORKDIR} can then be reused since
                     this feature disables most of the clean phase that runs prior to each build. Due to lack of  proper
                     cleanup,  this  feature  can  interfere with normal emerge operation and therefore it should not be
                     left enabled for more than a short period of time.

                     When mirror is enabled in FEATURES, fetch files even when mirror is also in the ebuild(5)  RESTRICT

                     Automatically perform a metadata transfer when 'emerge --sync' is run.

              mirror Fetch everything in SRC_URI regardless of USE settings, except do not fetch anything when mirror is
                     in RESTRICT.

              noauto When utilizing ebuild(1), only run the function requested.

                     Do not delete the the source and temporary files after the merge process.

              nodoc  Do not install doc files (/usr/share/doc).

              noinfo Do not install info pages.

              noman  Do not install manpages.

                     Prevents the stripping of binaries that are merged to the live filesystem.

                     Disables xterm titlebar updates (which contains status info).

                     Fetch in the background while compiling.

                     Enable sandbox-ing when running emerge(1) and ebuild(1).

                     Enable SELinux sandbox-ing.  Do not toggle this FEATURE yourself.

              severe When checking Manifests, only accept ones that have been signed by a key which you trust.

                     Stands for Smart Filesystem Permissions.  Before merging packages to the live filesystem, automati'
                     cally  search  for  and set permissions on setuid and setgid files.  Files that are setuid have the
                     group and other read bits removed while files that are setgid have the other read bit removed.  See
                     also suidctl below.

              sign   When  commiting  work  to  cvs  with  repoman(1), sign the Manifest with a GPG key.  Read about the
                     PORTAGE_GPG_KEY variable in make.conf(5).

                     Prior to stripping ELF etdyn and etexec files, the debugging info is stored for later use by  vari'
                     ous debuggers.  This feature is disabled by nostrip.  For installation of source code, see install'

              strict Have portage react strongly to conditions that have the potential to be dangerous (like missing  or
                     incorrect digests for ebuilds or distfiles).

                     Have  portage  react  strongly to conditions that may conflict with system security provisions (for
                     example textrels, executable stack).  Read about the QA_STRICT_* variables in make.conf(5).

                     Before merging packages to the live filesystem, automatically strip setuid bits from any file  that
                     is not listed in /etc/portage/suidctl.conf.

              test   Run  package-specific tests during each merge to help make sure the package compiled properly.  See
                     test in ebuild(1) and src_test() in ebuild(5). This feature implies the "test" USE flag.

                     If a file is not claimed by another package in the same slot and it is not protected by CONFIG_PRO'
                     TECT,  unmerge  it  even if the modification time or checksum differs from the file that was origi'
                     nally installed.

                     When portage is run as root, drop privileges to portage:portage  during  the  fetching  of  package

                     Allow  portage  to  drop  root privileges and compile packages as portage:portage without a sandbox
                     (unless usersandbox is also used).

                     Enable the sandbox in the compile phase, when running without root privs (userpriv).

              This variable contains the command used for fetching package sources from the internet.  It  must  contain
              the  full path to the executable as well as the place-holders \${DISTDIR}, \${FILE} and \${URI}.  The com'
              mand should be written to place the fetched file at \${DISTDIR}/\${FILE}.  Also see RESUMECOMMAND.

              Insert your space-seperated list of local mirrors here.  These locations are used to download files before
              the  ones  listed  in  the ebuild scripts. Merging 'mirrorselect' can help.  Entries in this variable that
              have no protocol and simply start with a '/' path separator may be used to specify mounted filesystem mir'

       http_proxy ftp_proxy = [host:port]
              These  vars  are  used  if  the  sources  must  be downloaded from the internet by wget(1).  They are only
              required if you use a proxy server for internet access.

       INSTALL_MASK = [space delimited list of file names]
              Use this variable if you want to selectively prevent certain files from being copied into your file system
              tree.   This  does not work on symlinks, but only on actual files.  Useful if you wish to filter out files
              like HACKING.gz and TODO.gz.

              Use this variable if you want to use parallel make.  For example, if you have a dual-processor system, set
              this  variable to "-j2" or "-j3" for enhanced build performance with many packages. Suggested settings are
              between CPUs+1 and 2*CPUs+1.  For more information, see make(1).

       NOCOLOR = ["true" | "false"]
              Defines if color should be disabled by default.
              Defaults to false.

       PKGDIR = [path]
              Defines the location where created .tbz2 binary packages  will  be  stored.   Note  that  locations  under
              /usr/portage  are  not necessarily safe for data storage.  See the PORTDIR documentation for more informa'
              Defaults to /usr/portage/packages.

              This variable defines the directory in which per-ebuild logs are kept.  Logs are created only when this is
              set.  They are stored as ${CATEGORY}:${PF}:YYYYMMDD-HHMMSS.log in the directory specified. If the direcory
              does not exist, it will be created automatically and group permissions will be  applied  to  it.   If  the
              directory already exists, portage will not modify it's permissions.

              This is the host from which portage will grab prebuilt-binary packages.  The list is a single entry speci'
              fying the full address of the directory serving the tbz2's for your system.  This is only used  when  run'
              ning  with  the  get binary pkg options are given to emerge.  Review emerge(1) for more information.  Note
              that it should point to the 'All' directory on the host that creates the binary packages and  not  to  the
              root of the PKGDIR.

       PORTAGE_COMPRESS = "bzip2"
              This variable contains the command used to compress documentation during the install phase.

              This variable contains flags for the PORTAGE_COMPRESS command.






              Please see /etc/make.conf.example for elog documentation.

       PORTAGE_NICENESS = [number]
              The  value  of  this variable will be added to the current nice level that emerge is running at.  In other
              words, this will not set the nice level, it will increment it.  For more information about nice levels and
              what are acceptable ranges, see nice(1).

              Used by emerge --sync as a timeout for the initial connection to an rsync server.
              Defaults to 15 seconds.

       PORTAGE_RSYNC_EXTRA_OPTS = [rsync options string]
              Additional rsync options to be used by emerge --sync.
              Defaults to no value.

       PORTAGE_RSYNC_OPTS = [rsync options string]
              Default rsync options to be used by emerge --sync.
              Don't change this unless you know exactly what you're doing!
              Defaults  to  "--recursive  --links  --safe-links --perms --times --compress --force --whole-file --delete
              --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'"

              The number of times rsync should retry on failed connections before giving up.
              Defaults to 3.

       PORTAGE_TMPDIR = [path]
              Defines the location of the temporary build directories.
              Defaults to /var/tmp.

       PORTAGE_WORKDIR_MODE = "0700"
              This variable controls permissions for WORKDIR (see ebuild(5)).

       PORTDIR = [path]
              Defines the location of the Portage tree. This is the repository for all profile information  as  well  as
              all ebuilds. If you change this, you must update your /etc/make.profile symlink accordingly.
              Defaults to /usr/portage.
              Data  stored  inside PORTDIR is in peril of being overwritten or deleted by the emerge --sync command. The
              default value of PORTAGE_RSYNC_OPTS will protect the default locations of DISTDIR and  PKGDIR,  but  users
              are  warned that any other locations inside PORTDIR are not necessarily safe for data storage.  You should
              not put other data (such as overlays) in your PORTDIR.  Portage will walk  directory  structures  and  may
              arbitrary add invalid categories as packages.

       PORTDIR_OVERLAY = "[path] [different-path] [etc...]"
              Defines  the  directories in which user made ebuilds may be stored and not overwriten when 'emerge --sync'
              is run.  This is a space delimited list of directories.
              Defaults to no value.

       QA_STRICT_EXECSTACK = "set"
              Set this to cause portage to ignore any QA_EXECSTACK override settings from ebuilds.  See also  ebuild(5).

       QA_STRICT_WX_LOAD = "set"
              Set this to cause portage to ignore any QA_WX_LOAD override settings from ebuilds.  See also ebuild(5).

       QA_STRICT_TEXTRELS = "set"
              Set this to cause portage to ignore any QA_TEXTREL override settings from ebuilds.  See also ebuild(5).

              This  variable contains the command used for resuming package sources that have been partially downloaded.
              It should be defined using the same format as FETCHCOMMAND, and must include any additional option(s) that
              may be necessary in order to continue a partially downloaded file located at \${DISTDIR}/\${FILE}.

       ROOT = [path]
              Use  ROOT  to  specify the target root filesystem to be used for merging packages or ebuilds.  All RDEPEND
              and PDEPEND will be installed into ROOT while all DEPEND will be still be installed  into  /.   Typically,
              you  should  set this setting in the environment rather than in /etc/make.conf itself.  It's commonly used
              for creating new build images.  Make sure you use an absolute path.
              Defaults to /.

       RPMDIR = [path]
              Defines the location where created RPM packages will be stored.
              Defaults to ${PORTDIR}/rpm.

       SYNC = [RSYNC]
              Insert your preferred rsync mirror here.  This rsync server is used to sync the local  portage  tree  when
              'emerge --sync' is run.
              Defaults to rsync://

       USE = [space delimited list of USE items]
              This  variable  contains options that control the build behavior of several packages.  More information in
              ebuild(5).  Possible USE values can be found in /usr/portage/profiles/use.desc.

       USE_EXPAND = [space delimited list of variable names]
              Any variable listed here will be used to augment USE by inserting a new flag for every value in that vari'
              able, so USE_EXPAND="FOO" and FOO="bar bla" results in USE="foo_bar foo_bla".

       USE_EXPAND_HIDDEN = [space delimited list of variable names]
              Names  of  USE_EXPAND variables that should not be shown in the verbose merge list output of the emerge(1)

       USE_ORDER = "env:pkg:conf:defaults:pkginternal:env.d"
              Determines the precedence of layers in the incremental stacking of the USE variable. Precedence  decreases
              from left to right such that env overrides pkg, pkg overrides conf, and so forth.

              Do  not modify this value unless you're a developer and you know what you're doing. If you change this and
              something breaks, we will not help you fix it.

              env    USE from the current environment variables (USE and those listed in USE_EXPAND)

              pkg    Per-package USE from /etc/portage/package.use (see portage(5))

              conf   USE from make.conf

                     USE from make.defaults and package.use in the profile (see portage(5))

                     USE from ebuild(5) IUSE defaults

              env.d  USE from the environment variables defined by files in /etc/env.d/

       Please report bugs via

       Daniel Robbins <>
       Nicholas Jones <>
       Mike Frysinger <>
       Saleem Abdulrasool <>

              Contains variables for the build-process and overwrites those in make.defaults.

              Contains the default variables for the build-process, you should edit /etc/make.conf instead.

              Contains variables customizing colors.

              Contains a list of all global USE flags.

              Contains a list of all local USE variables.

       emerge(1), portage(5), ebuild(1), ebuild(5)

       The /usr/sbin/ script.

       The helper apps in /usr/lib/portage/bin.

Portage 2.1.3                                           Jun 2007                                            MAKE.CONF(5)
Retrieved from ""

Last modified: Wed, 27 Aug 2008 00:45:00 +0000 Hits: 80,563