##
## These variables are printed with a standard 'emerge info' in
## portage as of 2.0.51-r5. They are sorted regardless of order here.
##
ACCEPT_KEYWORDS
CC
CXX
CFLAGS
CBUILD
CHOST
CONFIG_PROTECT
CONFIG_PROTECT_MASK
CPPFLAGS
CTARGET
CXXFLAGS
DISTDIR
FEATURES
FCFLAGS
FFLAGS
GENTOO_MIRRORS
INSTALL_MASK
LANG
LC_ALL
LDFLAGS
MAKEOPTS
PORTAGE_COMPRESS
PORTAGE_COMPRESS_FLAGS
PORTAGE_CONFIGROOT
PORTAGE_TMPDIR
PORTDIR
PORTDIR_OVERLAY
SYNC
USE
USE_PYTHON
PORTAGE_RSYNC_OPTS
PORTAGE_RSYNC_EXTRA_OPTS
