make.conf.example: document FFLAGS and FCFLAGS
[portage.git] / cnf / make.conf
index 9c23f09d0d7ee43a7c4fb7912d3d1f762b85fdbe..9e06d57755019b9ef557b9637b3b6ab002f6aae9 100644 (file)
@@ -1,6 +1,5 @@
-# Copyright 1999-2004 Gentoo Foundation
+# Copyright 1999-2011 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Id: /var/cvsroot/gentoo-src/portage/cnf/make.conf,v 1.84.2.5 2005/04/13 15:28:38 jstubbs Exp $
 # Contains local system settings for Portage system
 
 # Please review 'man make.conf' for more information.
 # Example:
 #USE="X gtk gnome -alsa"
 
-# Host Setting
-# ============
-#
-# DO NOT CHANGE THIS SETTING UNLESS YOU ARE USING STAGE1!
-# Change this line as appropriate (i686, i586, i486 or i386).
-# All modern systems (even Athlons) should use "i686-pc-linux-gnu".
-# All K6's are i586.
-CHOST="i686-pc-linux-gnu"
-
 # Host and optimization settings 
 # ==============================
 #
@@ -42,37 +32,22 @@ CHOST="i686-pc-linux-gnu"
 # package (and in some cases the libraries it uses) at default optimizations
 # before reporting errors to developers.
 #
-# -mcpu=<cpu-type> means optimize code for the particular type of CPU without
-# breaking compatibility with other CPUs.
-#
-# -march=<cpu-type> means to take full advantage of the ABI and instructions
-# for the particular CPU; this will break compatibility with older CPUs (for
-# example, -march=athlon-xp code will not run on a regular Athlon, and
-# -march=i686 code will not run on a Pentium Classic.
-#
-# CPU types supported in gcc-3.2 and higher: athlon-xp, athlon-mp,
-# athlon-tbird, athlon, k6, k6-2, k6-3, i386, i486, i586 (Pentium), i686
-# (PentiumPro), pentium, pentium-mmx, pentiumpro, pentium2 (Celeron),
-# pentium3, and pentium4.
-#
-# Note that Gentoo Linux 1.4 and higher include at least gcc-3.2.
-# 
-# CPU types supported in gcc-2.95*: k6, i386, i486, i586 (Pentium), i686
-# (Pentium Pro), pentium, pentiumpro Gentoo Linux 1.2 and below use gcc-2.95*
+# Please refer to the GCC manual for a list of possible values.
 #
-# CRITICAL WARNINGS: ****************************************************** #
-# K6 markings are deceptive. Avoid setting -march for them. See Bug #24379. #
-# Pentium-M CPU's should not enable sse2 until at least gcc-3.4. Bug 50616. #
-# ************************************************************************* #
+#CFLAGS="-O2 -pipe"
 #
-# Decent examples:
-#
-#CFLAGS="-mcpu=athlon-xp -O3 -pipe"
-#CFLAGS="-march=pentium3 -O3 -pipe"
-
 # If you set a CFLAGS above, then this line will set your default C++ flags to
 # the same settings.
 #CXXFLAGS="${CFLAGS}"
+#
+# If you set a CFLAGS above, then this line will set your default FORTRAN 77
+# flags to the same settings.
+#FFLAGS="${CFLAGS}"
+#
+# If you set a FFLAGS above, then this line will set your default FORTRAN
+# flags to the same settings for modern build systems
+#FCFLAGS="${FFLAGS}"
+
 
 # Advanced Masking
 # ================
@@ -111,27 +86,38 @@ CHOST="i686-pc-linux-gnu"
 # PORTDIR is 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.
+#     ***Warning***
+#     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.
 #PORTDIR=/usr/portage
 #
 # DISTDIR is where all of the source code tarballs will be placed for
-#     emerges. The source code is maintained here unless you delete
-#     it. The entire repository of tarballs for gentoo is 9G. This is
-#     considerably more than any user will ever download. 2-3G is
-#     a large DISTDIR.
-#DISTDIR=${PORTDIR}/distfiles
+#     emerges. After packages are built, it is safe to remove any and
+#     all files from this directory since they will be automatically
+#     fetched on demand for a given build. If you would like to
+#     selectively prune obsolete files from this directory, see
+#     eclean from the gentoolkit package. Note that locations under
+#     /usr/portage are not necessarily safe for data storage. See the
+#     PORTDIR documentation for more information.
+#DISTDIR=/usr/portage/distfiles
 #
 # PKGDIR is the location of binary packages that you can have created
 #     with '--buildpkg' or '-b' while emerging a package. This can get
-#     upto several hundred megs, or even a few gigs.
-#PKGDIR=${PORTDIR}/packages
+#     up to several hundred megs, or even a few gigs. Note that
+#     locations under /usr/portage are not necessarily safe for data
+#     storage. See the PORTDIR documentation for more information.
+#PKGDIR=/usr/portage/packages
 #
 # PORT_LOGDIR is the location where portage will store all the logs it
-#     creates from each individual merge. They are stored as NNNN-$PF.log
-#     in the directory specified. This is disabled until you enable it by
-#     providing a directory. Permissions will be modified as needed IF the
-#     directory exists, otherwise logging will be disabled. NNNN is the
-#     increment at the time the log is created. Logs are thus sequential.
-#PORT_LOGDIR=/var/log/portage
+#     creates from each individual merge. 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.
+#PORT_LOGDIR=""
 #
 # PORTDIR_OVERLAY is a directory where local ebuilds may be stored without
 #     concern that they will be deleted by rsync updates. Default is not
@@ -147,19 +133,20 @@ CHOST="i686-pc-linux-gnu"
 #
 # Portage uses wget by default. Here are some settings for some alternate
 # downloaders -- note that you need to merge these programs first before they
-# will be available.
+# will be available. The command should be written to place the fetched file
+# at \${DISTDIR}/\${FILE}.
 #
-# Default fetch command (5 tries, passive ftp for firewall compatibility)
-#FETCHCOMMAND="/usr/bin/wget -t 5 --passive-ftp \${URI} -P \${DISTDIR}"
-#RESUMECOMMAND="/usr/bin/wget -c -t 5 --passive-ftp \${URI} -P \${DISTDIR}"
+# Default fetch command (3 tries, passive ftp for firewall compatibility)
+#FETCHCOMMAND="/usr/bin/wget -t 3 -T 60 --passive-ftp -O \"\${DISTDIR}/\${FILE}\" \"\${URI}\""
+#RESUMECOMMAND="/usr/bin/wget -c -t 3 -T 60 --passive-ftp -O \"\${DISTDIR}/\${FILE}\" \"\${URI}\""
 #
 # Using wget, ratelimiting downloads
-#FETCHCOMMAND="/usr/bin/wget -t 5 --passive-ftp --limit-rate=200k \${URI} -P \${DISTDIR}"
-#RESUMECOMMAND="/usr/bin/wget -c -t 5 --passive-ftp --limit-rate=200k \${URI} -P \${DISTDIR}"
+#FETCHCOMMAND="/usr/bin/wget -t 3 -T 60 --passive-ftp --limit-rate=200k -O \"\${DISTDIR}/\${FILE}\" \"\${URI}\""
+#RESUMECOMMAND="/usr/bin/wget -c -t 3 -T 60 --passive-ftp --limit-rate=200k -O \"\${DISTDIR}/\${FILE}\" \"\${URI}\""
 #
 # Lukemftp (BSD ftp):
-#FETCHCOMMAND="/usr/bin/lukemftp -s -a -o \${DISTDIR}/\${FILE} \${URI}"
-#RESUMECOMMAND="/usr/bin/lukemftp -s -a -R -o \${DISTDIR}/\${FILE} \${URI}"
+#FETCHCOMMAND="/usr/bin/lukemftp -s -a -o \"\${DISTDIR}/\${FILE}\" \"\${URI}\""
+#RESUMECOMMAND="/usr/bin/lukemftp -s -a -R -o \"\${DISTDIR}/\${FILE}\" \"\${URI}\""
 #
 # Portage uses GENTOO_MIRRORS to specify mirrors to use for source retrieval.
 # The list is a space separated list which is read left to right. If you use
@@ -191,7 +178,6 @@ CHOST="i686-pc-linux-gnu"
 # Synchronization is handled by rsync and these settings allow some control
 # over how it is done.
 #
-#
 # SYNC is the server used by rsync to retrieve a localized rsync mirror
 #     rotation. This allows you to select servers that are geographically
 #     close to you, yet still distribute the load over a number of servers.
@@ -205,20 +191,28 @@ CHOST="i686-pc-linux-gnu"
 #   Europe:        "rsync://rsync.europe.gentoo.org/gentoo-portage"
 #   Asia:          "rsync://rsync.asia.gentoo.org/gentoo-portage"
 #   Australia:     "rsync://rsync.au.gentoo.org/gentoo-portage"
+#
+#     If you have multiple Gentoo boxes, it is probably a good idea to have only
+#     one of them sync from the rotations above. The other boxes can then rsync
+#     from the local rsync server, reducing the load on the mirrors.
+#     Instructions for setting up a local rsync server are available here:
+#     http://www.gentoo.org/doc/en/rsync.xml
+#
 #SYNC="rsync://rsync.gentoo.org/gentoo-portage"
 #
-# RSYNC_RETRIES sets the number of times portage will attempt to retrieve
+# PORTAGE_RSYNC_RETRIES sets the number of times portage will attempt to retrieve
 #     a current portage tree before it exits with an error. This allows
 #     for a more successful retrieval without user intervention most times.
-#RSYNC_RETRIES="3"
-#
-# RSYNC_TIMEOUT sets the length of time rsync will wait before it times out
-#     on a connection. Most users will benefit from this setting as it will
-#     reduce the amount of 'dead air' they experience when they run across
-#     the occasional, unreachable mirror. Dialup users might want to set this
-#     value up around the 300 second mark.
-#RSYNC_TIMEOUT=180
-
+#     If set to a negative number, then retry until all possible addresses are
+#     exhausted.
+#PORTAGE_RSYNC_RETRIES="-1"
+#
+# PORTAGE_RSYNC_EXTRA_OPTS can be used to feed additional options to the rsync
+#     command used by `emerge --sync`. This will not change the default options
+#     which are set by PORTAGE_RSYNC_OPTS (don't change those unless you know 
+#     exactly what you're doing).
+#PORTAGE_RSYNC_EXTRA_OPTS=""
+#
 # Advanced Features
 # =================
 #
@@ -228,6 +222,11 @@ CHOST="i686-pc-linux-gnu"
 #     are not filtered.
 #EMERGE_DEFAULT_OPTS=""
 #
+# INSTALL_MASK allows certain files to not be installed into your file system.
+#     This is useful when you wish to filter out a certain set of files from
+#     ever being installed, such as INSTALL.gz or TODO.gz
+#INSTALL_MASK=""
+#
 # MAKEOPTS provides extra options that may be passed to 'make' when a
 #     program is compiled. Presently the only use is for specifying
 #     the number of parallel makes (-j) to perform. The suggested number
@@ -239,107 +238,73 @@ CHOST="i686-pc-linux-gnu"
 #     reduce it further. Default is unset.
 #PORTAGE_NICENESS=3
 #
+# PORTAGE_IONICE_COMMAND provides a command for portage to call in order to
+#     adjust the io priority of portage and it's subprocesses. Default is
+#     unset.
+#PORTAGE_IONICE_COMMAND="ionice -c 3 -p \${PID}"
+#
 # AUTOCLEAN enables portage to automatically clean out older or overlapping
 #     packages from the system after every successful merge. This is the
 #     same as running 'emerge -c' after every merge. Set with: "yes" or "no".
 #     This does not affect the unpacked source. See 'noclean' below.
+#
+#     Warning: AUTOCLEAN="no" can cause serious problems due to overlapping
+#              packages.  Do not use it unless absolutely necessary!
 #AUTOCLEAN="yes"
 #
-# PORTAGE_TMPFS is a location where portage may create temporary files.
-#     If specified, portage will use this directory whenever possible
-#     for all rapid operations such as lockfiles and transient data.
-#     It is _highly_ recommended that this be a tmpfs or ramdisk. Do not
-#     set this to anything that does not give a significant performance
-#     enhancement and proper FS compliance for locks and read/write.
-#     /dev/shm is a glibc mandated tmpfs, and should be a reasonable
-#     setting for all linux kernel+glibc based systems.
-#PORTAGE_TMPFS="/dev/shm"
-#
-# FEATURES are settings that affect the functionality of portage. Most of
-#     these settings are for developer use, but some are available to non-
-#     developers as well. 
-#
-#  'autoaddcvs'  causes portage to automatically try to add files to cvs
-#                that will have to be added later. Done at generation times
-#                and only has an effect when 'cvs' is also set.
-#  'buildpkg'    causes binary packages to be created of all packages that 
-#                are being merged.
-#  'ccache'      enables ccache support via CC.
-#  'collision-protect'
-#                prevents packages from overwriting files that are owned by
-#                another package or by no package at all.
-#  'cvs'         causes portage to enable all cvs features (commits, adds),
-#                and to apply all USE flags in SRC_URI for digests -- for
-#                developers only.
-#  'digest'      causes digests to be generated for all packages being merged.
-#  'distcc'      enables distcc support via CC.
-#  'distlocks'   enables distfiles locking using fcntl or hardlinks. This
-#                is enabled by default. Tools exist to help clean the locks
-#                after crashes: /usr/lib/portage/bin/clean_locks.
-#  'fixpackages' allows portage to fix binary packages that are stored in
-#                PKGDIR. This can consume a lot of time. 'fixpackages' is
-#                also a script that can be run at any given time to force
-#                the same actions.
-#  'gpg'         enables basic verification of Manifest files using gpg.
-#                This features is UNDER DEVELOPMENT and reacts to features
-#                of strict and severe. Heavy use of gpg sigs is coming.
-#  'keeptemp'    prevents the clean phase from deleting the temp files ($T) 
-#                from a merge.
-#  'keepwork'    prevents the clean phase from deleting the WORKDIR.
-#  'test'    causes ebuilds to perform testing phases if they are capable
-#                of it. Some packages support this automaticaly via makefiles.
-#  'noauto'      causes ebuild to perform only the action requested and 
-#                not any other required actions like clean or unpack -- for
-#                debugging purposes only.
-#  'noclean'     prevents portage from removing the source and temporary files 
-#                after a merge -- for debugging purposes only. 
-#  'nostrip'     prevents the stripping of binaries.
-#  'notitles'    disables xterm titlebar updates (which contain status info). 
-#  'parallel-fetch'
-#                do fetching in parallel to compilation
-#  'sandbox'     enables sandboxing when running emerge and ebuild.
-#  'strict'      causes portage to react strongly to conditions that are
-#                potentially dangerous, like missing/incorrect Manifest files.
-#  'userpriv'    allows portage to drop root privileges while it is compiling,
-#                as a security measure.  As a side effect this can remove 
-#                sandbox access violations for users. 
-#  'usersandbox' enables sandboxing while portage is running under userpriv.
-#FEATURES="sandbox buildpkg ccache distcc userpriv usersandbox notitles noclean noauto cvs keeptemp keepwork autoaddcvs"
-#FEATURES="sandbox ccache distcc distlocks autoaddcvs"
-#
-# CCACHE_SIZE sets the space use limitations for ccache. The default size is
-#     2G, and will be set if not defined otherwise and ccache is in features. 
-#     Portage will set the default ccache dir if it is not present in the
-#     user's environment, for userpriv it sets: ${PORTAGE_TMPDIR}/ccache
-#     (/var/tmp/ccache), and for regular use the default is /root/.ccache.
-#     Sizes are specified with 'G' 'M' or 'K'.
-#     '2G' for 2 gigabytes, '2048M' for 2048 megabytes (same as 2G).
+# FEATURES defines actions portage takes by default. This is an incremental
+# variable. See the make.conf(5) man page for a complete list of supported
+# values and their respective meanings.
+#FEATURES="ccache distcc installsources \
+# splitdebug test userpriv usersandbox"
+
+# CCACHE_SIZE and CCACHE_DIR are used to control the behavior of ccache, and
+#     and are only used if "ccache" is in FEATURES.
+#
+# CCACHE_SIZE sets the space limitations for ccache. The default size is
+#     "2G", or 2 gigabytes.  Units are specified with 'G', 'M', or 'K'.
+#
 #CCACHE_SIZE="512M"
 #
+# CCACHE_DIR sets the ccache path.  If not specified, portage will default
+#     to "${PORTAGE_TMPDIR}/ccache".
+#
+#     Note that to display ccache statistics outside of portage, you must
+#     remember to give the correct path to the cache.
+#
+#        $ CCACHE_DIR=/var/tmp/ccache ccache -s 
+#
+#CCACHE_DIR="${PORTAGE_TMPDIR}/ccache"
+
 # DISTCC_DIR sets the temporary space used by distcc.
 #DISTCC_DIR="${PORTAGE_TMPDIR}/.distcc"
-#
-# RSYNC_EXCLUDEFROM is a file that portage will pass to rsync when it updates
-#     the portage tree. Specific chunks of the tree may be excluded from
-#     consideration. This may cause dependency failures if you are not careful.
-#     The file format is one pattern per line, blanks and ';' or '#' lines are
-#     comments. See 'man rsync' for more details on the exclude-from format.
-#RSYNC_EXCLUDEFROM=/etc/portage/rsync_excludes
 
 # logging related variables:
 # PORTAGE_ELOG_CLASSES: selects messages to be logged, possible values are:
-#                          info, warn, error, log
+#                          info, warn, error, log, qa, *
 #                       Warning: commenting this will disable elog
-PORTAGE_ELOG_CLASSES="warn error log"
+PORTAGE_ELOG_CLASSES="log warn error"
 
 # PORTAGE_ELOG_SYSTEM: selects the module(s) to process the log messages. Modules
 #                      included in portage are (empty means logging is disabled):
-#                          save (saves one log per package in $PORTAGE_TMPDIR/elogs)
-#                          custom (passes all messages to $PORTAGE_LOG_COMMAND)
+#                          echo (display messages again when emerge exits)
+#                          save (saves one log per package in $PORT_LOGDIR/elog, 
+#                                /var/log/portage/elog if $PORT_LOGDIR is unset)
+#                          custom (passes all messages to $PORTAGE_ELOG_COMMAND)
 #                          syslog (sends all messages to syslog)
 #                          mail (send all messages to the mailserver defined 
-#                                in $PORTAGE_LOG_MAILURI)
+#                                in $PORTAGE_ELOG_MAILURI)
+#                          save_summary (like "save" but merges all messages
+#                                        in $PORT_LOGDIR/elog/summary.log,
+#                                        /var/log/portage/elog/summary.log if
+#                                        $PORT_LOGDIR is unset)
+#                          mail_summary (like "mail" but sends all messages in
+#                                        a single mail when emerge exits)
 #                      To use elog you should enable at least one module
+#                      The module name may be followed by a colon and a comma
+#                      separated list of loglevels to override PORTAGE_ELOG_CLASSES
+#                      for this module (e.g.
+#                        PORTAGE_ELOG_SYSTEM="mail:warn,error syslog:* save")
 #PORTAGE_ELOG_SYSTEM="save mail"
 
 # PORTAGE_ELOG_COMMAND: only used with the "custom" logging module. Specifies a command
@@ -348,7 +313,7 @@ PORTAGE_ELOG_CLASSES="warn error log"
 #                                       package (see $PVR in ebuild(5))
 #                          ${LOGFILE} - absolute path to the logfile
 #                                              Both variables have to be quoted with single quotes
-#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p '${PACKAGE}' -f '${LOGFILE}'"
+#PORTAGE_ELOG_COMMAND="/path/to/logprocessor -p '\${PACKAGE}' -f '\${LOGFILE}'"
 
 # PORTAGE_ELOG_MAILURI: this variable holds all important settings for the mail
 #                       module. In most cases listing the recipient address and
@@ -357,12 +322,25 @@ PORTAGE_ELOG_CLASSES="warn error log"
 #                       full syntax is:
 #                           address [[user:passwd@]mailserver[:port]]
 #                       where
-#                           address:     recipient address
+#                           address:    recipient address
 #                           user:       username for smtp auth (defaults to none)
 #                           passwd:     password for smtp auth (defaults to none)
 #                           mailserver: smtp server that should be used to deliver the mail (defaults to localhost)
+#                                       alternatively this can also be a the path to a sendmail binary if you don't want to use smtp
 #                           port:       port to use on the given smtp server (defaults to 25, values > 100000 indicate that starttls should be used on (port-100000))
 #                       Examples:
 #PORTAGE_ELOG_MAILURI="root@localhost localhost" (this is also the default setting)
 #PORTAGE_ELOG_MAILURI="user@some.domain mail.some.domain" (sends mails to user@some.domain using the mailserver mail.some.domain)
-#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader excercise ;)
+#PORTAGE_ELOG_MAILURI="user@some.domain user:secret@mail.some.domain:100465" (this is left uncommented as a reader exercise ;)
+
+# PORTAGE_ELOG_MAILFROM: you can set the from-address of logmails with this variable,
+#                        if unset mails are sent by "portage" (this default may fail
+#                        in some environments).
+#PORTAGE_ELOG_MAILFROM="portage@some.domain"
+
+# PORTAGE_ELOG_MAILSUBJECT: template string to be used as subject for logmails. The following
+#                           variables are expanded:
+#                               ${ACTION} - merged, unmerged, or unknown
+#                               ${PACKAGE} - see description of PORTAGE_ELOG_COMMAND
+#                               ${HOST} - FQDN of the host portage is running on
+#PORTAGE_ELOG_MAILSUBJECT="[portage] ebuild log for \${PACKAGE} on \${HOST}"