What is the make.conf file? What is its purpose?
Make.conf is portage's and Funtoo's main configuration file. It contains many variables that define how a package will installed in a Funtoo system. You can customize portage internal variables, such as, portage tree location, sources tarball location, overlays, to name a few. You can customize hardware specs, such as TMPFS, disk limits, GCC compilation flags to achieve best performance, etc. A great deal of this customization is done through the make.conf file. This page will attempt to explain the uses of the make.conf file, different variables that can be added to it, and their uses.
Where does this file reside?
make.conf file is found at
/etc/make.conf is its deprecated location.
# nano /etc/portage/make.conf
* CFLAGS="-march=amdfam10 -O2 -pipe" * CXXFLAGS="-march=amdfam10 -O2 -pipe" * INPUT_DEVICES="evdev" * VIDEO_CARDS="vesa nouveau" * MAKEOPTS="-j 2" * USE="mmx sse" * PYTHON_ABIS="2.7 3.3" * PYTHON_TARGETS="2.7 3.3" * RUBY_TARGETS="ruby21" * ACCEPT_LICENSE="*"
Compile Packages in RAM
Be sure to have activated tmpfs in your kernel.
Under File systems:
File systems Pseudo filesystems [*] Tmpfs virtual memory file system support (former shm fs)
To use tmpfs to unpack sources in ram:
several options for the video cards variable exist. see Video
MAKEOPTS can be used to define how many parallel compilations should occur when you compile a package, which can speed up compilation significantly. A rule of thumb is the number of CPUs (or CPU threads) in your system plus one. If for example you have a dual core processor without hyper-threading, then you would set MAKEOPTS to 3:
If you are unsure about how many processors/threads you have then use /proc/cpuinfo to help you.
(chroot) # grep "processor" /proc/cpuinfo | wc -l 16
Set MAKEOPTS to this number plus one:
LINGUAS tells Portage which local language to compile the system and applications in (those who use LINGUAS variable like OpenOffice). It is not usually necessary to set this if you use English. If you want another language such as French (fr) or German (de), set LINGUAS appropriately: