[BACK]Return to BUILDING CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/BUILDING between version 1.85 and 1.96

version 1.85, 2009/07/12 14:17:18 version 1.96, 2011/09/09 18:48:34
Line 82  CONFIGURATION
Line 82  CONFIGURATION
    Environment variables     Environment variables
      Several environment variables control the behaviour of NetBSD builds.       Several environment variables control the behaviour of NetBSD builds.
   
      HOST_SH           Path name to a POSIX-compliant shell.  If this is not       HOST_SH           Path name to a shell available on the host system and
                        set explicitly, then the default is set using heuris-                         suitable for use during the build.  The NetBSD build
                        tics dependent on the host platform, or from the shell                         system requires a modern Bourne-like shell with POSIX-
                        under which build.sh is executed (if that can be deter-                         compliant features, and also requires support for the
                        mined), or using the first copy of sh found in PATH.                         ``local'' keyword to declare local variables in shell
                        If the host system's /bin/sh is not POSIX-compliant, we                         functions (which is a widely-implemented but non-stan-
                        suggest that you build using commands like                         dardised feature).
   
                              HOST_SH=/path/to/working/shell                         Depending on the host system, a suitable shell may be
                              export HOST_SH                         /bin/sh, /usr/xpg4/bin/sh, /bin/ksh (provided it is a
                              ${HOST_SH} build.sh [options]                         variant of ksh that supports the ``local'' keyword,
                          such as ksh88, but not ksh93), or /usr/local/bin/bash.
   
                          Most parts of the build require HOST_SH to be an abso-
                          lute path; however, build.sh allows it to be a simple
                          command name, which will be converted to an absolute
                          path by searching the PATH.
   
      HOST_CC           Path name to C compiler used to create the toolchain.       HOST_CC           Path name to C compiler used to create the toolchain.
   
Line 104  CONFIGURATION
Line 110  CONFIGURATION
   
      MAKE              Path name to invoke make(1) as.       MAKE              Path name to invoke make(1) as.
   
      MAKEFLAGS         Flags to invoke make(1) with.       MAKEFLAGS         Flags to invoke make(1) with.  Note that build.sh
                          ignores the value of MAKEFLAGS passed in the environ-
                          ment, but allows MAKEFLAGS to be set via the -V option.
   
      MAKEOBJDIR        Directory to use as the .OBJDIR for the current direc-       MAKEOBJDIR        Directory to use as the .OBJDIR for the current direc-
                        tory.  The value is subjected to variable expansion by                         tory.  The value is subjected to variable expansion by
Line 117  CONFIGURATION
Line 125  CONFIGURATION
                        usefully be set inside a Makefile, including mk.conf or                         usefully be set inside a Makefile, including mk.conf or
                        ${MAKECONF}.                         ${MAKECONF}.
   
      MAKEOBJDIRPREFIX  Top level directory of the object directory tree.  If       MAKEOBJDIRPREFIX  Top level directory of the object directory tree.  The
                        specified, must be an absolute path.  If this is                         value is subjected to variable expansion by make(1).
                        defined, ${MAKEOBJDIRPREFIX}/${.CURDIR} is used as the                         build.sh will create the ${MAKEOBJDIRPREFIX} directory
                        .OBJDIR for the current directory.  The current direc-                         if necessary, but if make(1) is used without build.sh,
                        tory may be read only.  MAKEOBJDIRPREFIX can be pro-                         then rules in <bsd.obj.mk> will abort the build if the
                        vided only in the environment or via the -M flag of                         ${MAKEOBJDIRPREFIX} directory does not exist.  If the
                        build.sh; it cannot usefully be set inside a Makefile,                         value is defined and valid, then ${MAKEOBJDIRPRE-
                        including mk.conf or ${MAKECONF}.                         FIX}/${.CURDIR} is used as the .OBJDIR for the current
                          directory.  The current directory may be read only.
                          MAKEOBJDIRPREFIX can be provided only in the environ-
                          ment or via the -M flag of build.sh; it cannot usefully
                          be set inside a Makefile, including mk.conf or
                          ${MAKECONF}.
   
    "make" variables     "make" variables
      Several variables control the behavior of NetBSD builds.  Unless other-       Several variables control the behavior of NetBSD builds.  Unless other-
Line 229  CONFIGURATION
Line 242  CONFIGURATION
   
                  Default: ``yes''                   Default: ``yes''
   
        MKKMOD      Can be set to ``yes'' or ``no''.  Indicates whether kernel
                    modules are built and installed.
   
                    Default: ``yes''
   
      MKLINT      Can be set to ``yes'' or ``no''.  Indicates whether lint(1)       MKLINT      Can be set to ``yes'' or ``no''.  Indicates whether lint(1)
                  will be run against portions of the NetBSD source code during                   will be run against portions of the NetBSD source code during
                  the build, and whether lint libraries will be installed into                   the build, and whether lint libraries will be installed into
Line 295  CONFIGURATION
Line 313  CONFIGURATION
   
                  Default: ``no''                   Default: ``no''
   
      MKSUBPIXEL  Can be set to ``yes'' or ``no''.  For X builds, decides if  
                  subpixel rendering code in FreeType is turned on.  Turned off  
                  by default because of patent issues.  
   
                  Default: ``no''  
   
      MKTTINTERP  Can be set to ``yes'' or ``no''.  For X builds, decides if  
                  the TrueType bytecode interpreter is turned on.  See  
                  http://www.freetype.org/patents.html for details.  
   
                  Default: ``no''  
   
      MKUNPRIVED  Can be set to ``yes'' or ``no''.  Indicates whether an       MKUNPRIVED  Can be set to ``yes'' or ``no''.  Indicates whether an
                  unprivileged install will occur.  The user, group, permis-                   unprivileged install will occur.  The user, group, permis-
                  sions, and file flags, will not be set on the installed                   sions, and file flags, will not be set on the installed
Line 367  CONFIGURATION
Line 373  CONFIGURATION
                  an absolute path.  The main X11R6 source is found in                   an absolute path.  The main X11R6 source is found in
                  X11SRCDIR/xfree/xc.                   X11SRCDIR/xfree/xc.
   
                  Default: ``/usr/xsrc''                   Default: NETBSDRCDIR/../xsrc, if that exists; otherwise
                    /usr/xsrc.
   
      X11FLAVOUR  The style of X11 cross-built, set to either ``Xorg'' or       X11FLAVOUR  The style of X11 cross-built, set to either ``Xorg'' or
                  ``XFree86''.                   ``XFree86''.
Line 534  BUILDING
Line 541  BUILDING
                    INSTALLWORLDDIR is not the root directory if cross compil-                     INSTALLWORLDDIR is not the root directory if cross compil-
                    ing.                     ing.
   
                    The INSTALLSETS environment variable may be set to a list                     The INSTALLSETS environment variable may be set to a space-
                    of distribution sets to be installed.  By default, all sets                     separated list of distribution sets to be installed.  By
                    except ``etc'' and ``xetc'' are installed, so most files in                     default, all sets except ``etc'' and ``xetc'' are
                    INSTALLWORLDDIR/etc will not be installed or modified.                     installed, so most files in INSTALLWORLDDIR/etc will not be
                      installed or modified.
   
                    Note: Before performing this operation with                     Note: Before performing this operation with
                    INSTALLWORLDDIR=/, it is highly recommended that you                     INSTALLWORLDDIR=/, it is highly recommended that you
Line 627  BUILDING
Line 635  BUILDING
                    those as well but currently does not.                     those as well but currently does not.
   
    The "build.sh" script     The "build.sh" script
      This script file is a Bourne shell script designed to build the entire       This script file is a shell script designed to build the entire NetBSD
      NetBSD system on any host with a Bourne shell in /bin/sh, including many       system on any host with a suitable modern shell and some common utili-
      that are not POSIX compliant.  Note that if a host system's /bin/sh is       ties.  The required shell features are described under the HOST_SH vari-
      unusually old and broken, the Korn Shell (/bin/ksh), if available, may be       able.
      a usable alternative.  
        If a host system's default shell does support the required features, then
        we suggest that you explicitly specify a suitable shell using a command
        like
   
              /path/to/suitable/shell build.sh [options]
   
        The above command will usually enable build.sh to automatically set
        HOST_SH=/path/to/suitable/shell, but if that fails, then the following
        set of commands may be used instead:
   
              HOST_SH=/path/to/suitable/shell
              export HOST_SH
              ${HOST_SH} build.sh [options]
   
        If build.sh detects that it is being executed under an unsuitable shell,
        it attempts to exec a suitable shell instead, or prints an error message.
        If HOST_SH is not set explicitly, then build.sh sets a default using
        heuristics dependent on the host platform, or from the shell under which
        build.sh is executed (if that can be determined), or using the first copy
        of sh found in PATH.
   
      All cross-compile builds, and most native builds, of the entire system       All cross-compile builds, and most native builds, of the entire system
      should make use of build.sh rather than just running ``make''.  This way,       should make use of build.sh rather than just running ``make''.  This way,
Line 671  BUILDING
Line 699  BUILDING
   
      install=idir  Install the contents of DESTDIR to idir, using ``make       install=idir  Install the contents of DESTDIR to idir, using ``make
                    installworld''.  Note that files that are part of the                     installworld''.  Note that files that are part of the
                    ``etc'' or ``xetc'' sets will not be installed.                     ``etc'' or ``xetc'' sets will not be installed, unless
                      overridden by the INSTALLSETS environment variable.
   
      kernel=kconf  Build a new kernel.  The kconf argument is the name of a       kernel=kconf  Build a new kernel.  The kconf argument is the name of a
                    configuration file suitable for use by config(1).  If kconf                     configuration file suitable for use by config(1).  If kconf
Line 688  BUILDING
Line 717  BUILDING
                    This command will run ``make cleandir'' on the kernel in                     This command will run ``make cleandir'' on the kernel in
                    question first unless the -u option is given.                     question first unless the -u option is given.
   
        modules       This command will build kernel modules and install them
                      into DESTDIR.
   
      releasekernel=kconf       releasekernel=kconf
                    Install a gzip(1)ed copy of the kernel previously built by                     Install a gzip(1)ed copy of the kernel previously built by
                    kernel=kconf into                     kernel=kconf into
Line 718  BUILDING
Line 750  BUILDING
                ``nbmake-MACHINE-BUILDID''.                 ``nbmake-MACHINE-BUILDID''.
   
      -C cdextras       -C cdextras
                Set the value of CDEXTRA to cdextras which is a space-separated                 Append cdextras to the CDEXTRA variable, which is a space-sepa-
                list of files or directories which will be added in order to                 rated list of files or directories that will be added to the
                the CD-ROM image when used in conjunction with ``iso-image'' or                 CD-ROM image that may be create by the ``iso-image'' or
                ``iso-image-source''.  Files will be added to the root of the                 ``iso-image-source'' operations.  Files will be added to the
                CD-ROM image, whereas directories will be copied recursively.                 root of the CD-ROM image, whereas directories will be copied
                If relative paths are specified, they will be converted to                 recursively.  If relative paths are specified, they will be
                absolute paths before being used.                 converted to absolute paths before being used.  Multiple paths
                  may be specified via multiple -C options, or via a single
                  option whose argument contains multiple space-separated paths.
   
      -D dest   Set the value of DESTDIR to dest.  If a relative path is speci-       -D dest   Set the value of DESTDIR to dest.  If a relative path is speci-
                fied, it will be converted to an absolute path before being                 fied, it will be converted to an absolute path before being
Line 749  BUILDING
Line 783  BUILDING
                ber of CPUs) and (2 * the number of CPUs) are recommended.  Use                 ber of CPUs) and (2 * the number of CPUs) are recommended.  Use
                lower values on machines with limited memory or I/O bandwidth.                 lower values on machines with limited memory or I/O bandwidth.
   
      -M obj    Set MAKEOBJDIRPREFIX to obj.  For instance, if the source       -M obj    Set MAKEOBJDIRPREFIX to obj.  Unsets MAKEOBJDIR.  See ``-O
                directory is /usr/src, a setting of ``-M /usr/obj'' will place  
                build-time files under /usr/obj/usr/src/bin,  
                /usr/obj/usr/src/lib, /usr/obj/usr/src/usr.bin, and so forth.  
                If a relative path is specified, it will be converted to an  
                absolute path before being used.  Unsets MAKEOBJDIR.  See ``-O  
                -obj'' for more information.                 -obj'' for more information.
   
                  For instance, if the source directory is /usr/src, a setting of
                  ``-M /usr/obj'' will place build-time files under
                  /usr/obj/usr/src/bin, /usr/obj/usr/src/lib,
                  /usr/obj/usr/src/usr.bin, and so forth.
   
                  If a relative path is specified, it will be converted to an
                  absolute path before being used.  build.sh imposes the restric-
                  tion that the argument to the -M option must not begin with a
                  ``$'' (dollar sign) character; otherwise it would be too diffi-
                  cult to determine whether the value is an absolute or a rela-
                  tive path.  If the directory does not already exist, build.sh
                  will create it.
   
      -m mach   Set the value of MACHINE to mach, except in some special cases       -m mach   Set the value of MACHINE to mach, except in some special cases
                listed below.  This will also override any value of                 listed below.  This will also override any value of
                MACHINE_ARCH in the process environment with a value deduced                 MACHINE_ARCH in the process environment with a value deduced
Line 791  BUILDING
Line 833  BUILDING
                -n''.                 -n''.
   
      -O obj    Create an appropriate transform macro for MAKEOBJDIR that will       -O obj    Create an appropriate transform macro for MAKEOBJDIR that will
                place the built object files under obj.  For instance, a set-                 place the built object files under obj.  Unsets
                ting of ``-O /usr/obj'' will place build-time files under                 MAKEOBJDIRPREFIX.
                /usr/obj/bin, /usr/obj/lib, /usr/obj/usr.bin, and so forth.  If  
                a relative path is specified, it will be converted to an abso-                 For instance, a setting of ``-O /usr/obj'' will place build-
                lute path before being used.  Unsets MAKEOBJDIRPREFIX.                 time files under /usr/obj/bin, /usr/obj/lib, /usr/obj/usr.bin,
                  and so forth.
   
                  If a relative path is specified, it will be converted to an
                  absolute path before being used.  build.sh imposes the restric-
                  tion that the argument to the -O option must not contain a
                  ``$'' (dollar sign) character.  If the directory does not
                  already exist, build.sh will create it.
   
                In normal use, exactly one of the -M or -O options should be                 In normal use, exactly one of the -M or -O options should be
                specified.  If neither -M nor -O is specified, then a default                 specified.  If neither -M nor -O is specified, then a default
Line 906  HISTORY
Line 955  HISTORY
      The build.sh based build scheme was introduced for NetBSD 1.6 as       The build.sh based build scheme was introduced for NetBSD 1.6 as
      USE_NEW_TOOLCHAIN, and re-worked to TOOLCHAIN_MISSING after that.       USE_NEW_TOOLCHAIN, and re-worked to TOOLCHAIN_MISSING after that.
   
 NetBSD                            May 1, 2009                           NetBSD  NetBSD                         September 9, 2011                        NetBSD

Legend:
Removed from v.1.85  
changed lines
  Added in v.1.96

CVSweb <webmaster@jp.NetBSD.org>