Fichero /etc/make.conf de FreeBSD

/etc/make.conf es el fichero de configuración del sistema de compilación make de FreeBSD, y es leído cada vez que se usa la orden make. Configurándolo adecuadamente, las compilaciones de las bibliotecas y ejecutables se optimizarán para el hardware de nuestra computadora, y además podremos omitir la compilación de partes del sistema que no necesitemos.

En /usr/share/examples/etc/make.conf hay un fichero de ejemplo, que comenta muchas (no sé si todas) de las opciones disponibles. La página de manual make.conf(5) también proporciona información.

Éste es el fichero que tengo en mi servidor doméstico. Me gustaría saber que opciones usais y recomendais los demás.

PERL_VER=5.8.7
PERL_VERSION=5.8.7
CPUTYPE=athlon         # para que procesador optimizar el código generado
CFLAGS= -O2 -pipe      # directiva de optimización adecuada para gcc
CXXFLAGS+=-O3          # opciones del compilador para código C++
COPTFLAGS=-O -pipe     # optimizaciones especiales del núcleo
NO_GAMES=true          # do not build games (games/ subdir)
NO_I4B=true            # do not build isdn4bsd package
NO_INET6=true          # do not build IPv6 related programs and libraries
NO_NIS=true            # do not build NIS support and related programs
NO_PROFILE=true        # Avoid compiling profiled libraries
NO_SENDMAIL=true       # do not build sendmail and related programs
# DOC_LANG=
SUP_UPDATE=yes
SUP=            /usr/local/bin/cvsup
SUPFLAGS=       -g -L 2
SUPHOST=        cvsup.es.FreeBSD.org
SUPFILE=        /root/standard-supfile
PORTSSUPFILE=   /root/ports-supfile

En documentación vieja se observará el uso del NOPROFILE en vez de NO_PROFILE, pero como se advierte en la sección Rebuilding “world” del manual y en el fichero UPDATING, esto ha cambiado:

20041221:
By a popular demand, a lot of NOFOO options were renamed
to NO_FOO (see bsd.compat.mk for a full list). The old
spellings are still supported, but will cause annoying
warnings on stderr. Make sure you upgrade properly (see
the COMMON ITEMS: section later in this file).

Tratándose de un servidor, no necesita monitor ni el sistema de ventanas X. En un comentario de un foro, alguien recomendaba hace unos años añadir estas líneas:

NO_X= true
NO_GUI= true
WITHOUT_X11= yes
WITHOUT_XPM= yes

¿Esta recomendación sigue siendo válida en FreeBSD 6.0?

Un comentario en “Fichero /etc/make.conf de FreeBSD

  1. Creo que todavia siguen siendo validos muchos de los parametros conocidos, aqui comparto mi make.conf

    #
    #=============================================================
    # Victor Reyes
    # Good as of July 1st, 2006
    #
    # /etc/make.conf, if present, will be read by make applying settings
    # that controls the compilation of the sources, documentation and
    # ported applications on RUBY running FreeBSD 6.1-RELEASE
    #=============================================================
    #

    #=============================================================
    # Global settings
    CPUTYPE?=pentium4 # Processor used for generated code
    CFLAGS= -O -pipe # Compiler settings for C code
    CXXFLAGS+= -fconserve-space # Compiler settings for C++ code
    COPTFLAGS= -O2 -pipe # Compiler settings for the kernel
    MAKE_SHELL?=sh # Shell to be used by make(1)
    INSTALL=install -C # Enable install(1) to compare before install
    MTREE_FOLLOWS_SYMLINKS= -L # Enable mtree(8) to follow symlinks
    ENABLE_SUID_SSH= # Enable ssh(1) with setuid bit turned on
    ENABLE_SUID_NEWGRP= # Enable newgrp(1) with setuid bit turned on
    BOOTWAIT=3000 # Time to wait for a keypress before booting the kernel.
    WITH_BIND_LIBS= # Install the BIND libs and include files

    #=============================================================
    # To avoid building various parts of the base system:
    NO_ACPI= # do not build acpiconf(8) and related programs
    NO_BLUETOOTH= # do not build Bluetooth related stuff
    NO_GAMES= # do not build games (games/ subdir)
    NO_I4B= # do not build isdn4bsd package
    NO_INFO= # do not make or install info files
    NO_MAN= # do not build manual pages
    NO_RCMDS= # do not build or install BSD r* commands (rsh, etc).
    NO_SHARE= # do not go into the share subdir
    NO_SHAREDOCS= # do not build the 4.4BSD legacy docs
    NO_USB= # do not build usbd(8) and related programs
    NO_INET6= # do not build IPv6 related programs and libraries
    NO_NIS= # do not build NIS support and related programs.
    PPP_NO_NAT= # do not build with NAT support (see make.conf(5))
    PPP_NO_NETGRAPH= # do not build with Netgraph support
    PPP_NO_RADIUS= # do not build with RADIUS support
    PPP_NO_SUID= # build with normal permissions
    NO_SENDMAIL= # do not build sendmail and related programs
    NO_PROFILE= # Avoid compiling profiled librarie

    #=============================================================
    # CVSup update flags.
    SUP_UPDATE=
    SUP= /usr/local/bin/cvsup
    SUPFLAGS= -g -L 2
    SUPHOST= cvsup15.FreeBSD.org
    SUPFILE= /usr/local/etc/cvsup/standard-supfile
    PORTSSUPFILE= /usr/local/etc/cvsup/ports-supfile

    #=============================================================
    # Kernel to build
    KERNCONF=RUBY

Los comentarios están cerrados.