Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src Synch with HEAD
details: https://anonhg.NetBSD.org/src/rev/45d4c9c85ff6
branches: trunk
changeset: 361518:45d4c9c85ff6
user: pgoyette <pgoyette%NetBSD.org@localhost>
date: Wed May 02 07:19:58 2018 +0000
description:
Synch with HEAD
diffstat:
BUILDING | 1115 --------------------------
Makefile | 531 ------------
Makefile.inc | 16 -
UPDATING | 852 --------------------
build.sh | 2399 ----------------------------------------------------------
5 files changed, 0 insertions(+), 4913 deletions(-)
diffs (truncated from 4933 to 300 lines):
diff -r 88a58c10dc3b -r 45d4c9c85ff6 BUILDING
--- a/BUILDING Wed May 02 00:14:56 2018 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1115 +0,0 @@
-BUILDING(8) System Manager's Manual BUILDING(8)
-
-NAME
- BUILDING - Procedure for building NetBSD from source code.
-
-REQUIREMENTS
- NetBSD is designed to be buildable on most POSIX-compliant host systems.
- The basic build procedure is the same whether compiling natively (on the
- same NetBSD architecture) or cross compiling (on another architecture or
- OS).
-
- This source tree contains a special subtree, "tools", which uses the host
- system to create a build toolchain for the target architecture. The host
- system must have at least C and C++ compilers in order to create the
- toolchain (make is not required); all other tools are created as part of
- the NetBSD build process. (See the environment variables section below
- if you need to override or manually select your compilers.)
-
-FILES
- Source tree layout
- doc/BUILDING.mdoc
- This document (in -mdoc troff format; the original copy).
-
- BUILDING This document (in plaintext).
-
- tools/compat/README
- Special notes for cross-hosting a NetBSD build on non-
- NetBSD platforms.
-
- Makefile The main Makefile for NetBSD; should only be run for
- native builds with an appropriately up-to-date version of
- NetBSD make(1). Intended for expert use with knowlege of
- its shortcomings, it has been superseded by the build.sh
- shell script as the recommended means for building NetBSD.
-
- UPDATING Special notes for updating from an earlier revision of
- NetBSD. It is important to read this file before every
- build of an updated source tree.
-
- build.sh Bourne-compatible shell script used for building the host
- build tools and the NetBSD system from scratch. Can be
- used for both native and cross builds, and should be used
- instead of make(1) as it performs additional checks to
- prevent common issues going undetected, such as building
- with an outdated version of make(1).
-
- crypto/dist/, dist/, gnu/dist/
- Sources imported verbatim from third parties, without
- mangling the existing build structure. Other source trees
- in bin through usr.sbin use the NetBSD make(1) "reachover"
- Makefile semantics when building these programs for a
- native host.
-
- external, sys/external
- Sources and build infrastructure for components imported
- (mostly) unchanged from upstream maintainers, sorted by
- applicable license. This is (slowly) replacing the
- crypto/dist, dist, and gnu/dist directories.
-
- distrib/, etc/
- Sources for items used when making a full release
- snapshot, such as files installed in DESTDIR/etc on the
- destination system, boot media, and release notes.
-
- tests/, regress/
- Regression test harness. Can be cross-compiled, but only
- run natively. tests/ uses the atf(7) test framework;
- regress/ contains older tests that have not yet been
- migrated to atf(7).
-
- sys/ NetBSD kernel sources.
-
- tools/ "Reachover" build structure for the host build tools.
- This has a special method of determining out-of-date
- status.
-
- bin/ ... usr.sbin/
- Sources to the NetBSD userland (non-kernel) programs. If
- any of these directories are missing, they will be skipped
- during the build.
-
- external/mit/xorg/
- "Reachover" build structure for modular Xorg; the source
- is in X11SRCDIR.
-
- extsrc/ "Reachover" build structure for externally added programs
- and libraries; the source is in EXTSRCSRCDIR.
-
- Build tree layout
- The NetBSD build tree is described in hier(7), and the release layout is
- described in release(7).
-
-CONFIGURATION
- Environment variables
- Several environment variables control the behaviour of NetBSD builds.
-
- HOST_SH Path name to a shell available on the host system and
- suitable for use during the build. The NetBSD build
- system requires a modern Bourne-like shell with POSIX-
- compliant features, and also requires support for the
- "local" keyword to declare local variables in shell
- functions (which is a widely-implemented but non-
- standardised feature).
-
- Depending on the host system, a suitable shell may be
- /bin/sh, /usr/xpg4/bin/sh, /bin/ksh (provided it is a
- 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
- absolute 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_CXX Path name to C++ compiler used to create the toolchain.
-
- MACHINE Machine type, e.g., "macppc".
-
- MACHINE_ARCH Machine architecture, e.g., "powerpc".
-
- MAKE Path name to invoke make(1) as.
-
- MAKEFLAGS Flags to invoke make(1) with. Note that build.sh
- ignores the value of MAKEFLAGS passed in the
- environment, but allows MAKEFLAGS to be set via the -V
- option.
-
- MAKEOBJDIR Directory to use as the .OBJDIR for the current
- directory. The value is subjected to variable
- expansion by make(1). Typical usage is to set this
- variable to a value involving the use of
- `${.CURDIR:S...}' or `${.CURDIR:C...}', to derive the
- value of .OBJDIR from the value of .CURDIR. Used only
- if MAKEOBJDIRPREFIX is not defined. MAKEOBJDIR can be
- provided only in the environment or via the -O flag of
- build.sh; it cannot usefully be set inside a Makefile,
- including mk.conf or ${MAKECONF}.
-
- MAKEOBJDIRPREFIX Top level directory of the object directory tree. The
- value is subjected to variable expansion by make(1).
- build.sh will create the ${MAKEOBJDIRPREFIX} directory
- if necessary, but if make(1) is used without build.sh,
- then rules in <bsd.obj.mk> will abort the build if the
- ${MAKEOBJDIRPREFIX} directory does not exist. If the
- value is defined and valid, then
- ${MAKEOBJDIRPREFIX}/${.CURDIR} is used as the .OBJDIR
- for the current directory. The current directory may
- be read only. MAKEOBJDIRPREFIX can be provided only in
- the environment or via the -M flag of build.sh; it
- cannot usefully be set inside a Makefile, including
- mk.conf or ${MAKECONF}.
-
- "make" variables
- Several variables control the behavior of NetBSD builds. Unless
- otherwise specified, these variables may be set in either the process
- environment or the make(1) configuration file specified by MAKECONF.
-
- BUILDID Identifier for the build. If set, this should be a short
- string that is suitable for use as part of a file or
- directory name. The identifier will be appended to object
- directory names, and can be consulted in the make(1)
- configuration file in order to set additional build
- parameters, such as compiler flags. It will also be used as
- part of the kernel version string, which can be printed by
- "uname -v".
-
- Default: Unset.
-
- BUILDINFO This may be a multi-line string containing information about
- the build. This will appear in DESTDIR/etc/release, and it
- will be stored in the buildinfo variable in any kernels that
- are built. When such kernels are booted, the sysctl(7)
- kern.buildinfo variable will report this value. The string
- may contain backslash escape sequences, such as "\\"
- (representing a backslash character) and "\n" (representing a
- newline).
-
- Default: Unset.
-
- BUILDSEED GCC uses random numbers when compiling C++ code. This
- variable seeds the gcc random number generator using the
- -frandom-seed flag with this value. By default, it is set to
- NetBSD-(majorversion). Using a fixed value causes C++
- binaries to be the same when built from the same sources,
- resulting in identical (reproducible) builds. Additional
- information is available in the GCC documentation of
- -frandom-seed.
-
- DESTDIR Directory to contain the built NetBSD system. If set,
- special options are passed to the compilation tools to
- prevent their default use of the host system's /usr/include,
- /usr/lib, and so forth. This pathname must be an absolute
- path, and should not end with a slash (/) character. (For
- installation into the system's root directory, set DESTDIR to
- an empty string, not to "/"). The directory must reside on a
- file system which supports long file names and hard links.
-
- Default: Empty string if USETOOLS is "yes"; unset otherwise.
-
- Note: build.sh will provide a default of destdir.MACHINE (in
- the top-level .OBJDIR) unless run in `expert' mode.
-
- EXTSRCSRCDIR
- Directory containing sources of externally added programs and
- libraries. If specified, must be an absolute path.
-
- Default: NETBSDRCDIR/../extsrc, if that exists; otherwise
- /usr/extsrc.
-
- MAKECONF The name of the make(1) configuration file. Only settable in
- the process environment.
-
- Default: "/etc/mk.conf"
-
- MAKEVERBOSE
- Level of verbosity of status messages. Supported values:
-
- 0 No descriptive messages or commands executed by make(1)
- are shown.
-
- 1 Brief messages are shown describing what is being done,
- but the actual commands executed by make(1) are not
- displayed.
-
- 2 Descriptive messages are shown as above (prefixed with a
- `#'), and ordinary commands performed by make(1) are
- displayed.
-
- 3 In addition to the above, all commands performed by
- make(1) are displayed, even if they would ordinarily
- have been hidden through use of the "@" prefix in the
- relevant makefile.
-
- 4 In addition to the above, commands executed by make(1)
- are traced through use of the sh(1) "-x" flag.
-
- Default: 2
-
- MKCATPAGES Can be set to "yes" or "no". Indicates whether preformatted
- plaintext manual pages will be created during a build.
-
- Default: "no"
-
- MKCROSSGDB Can be set to "yes" or "no". Create a cross-gdb as a host
- tool.
-
- Default: "no"
-
- MKDEBUG Can be set to "yes" or "no". Indicates whether debug
- information should be generated for all userland binaries
- compiled. The result is collected as an additional debug.tgz
- and xdebug.tgz set and installed in /usr/libdata/debug.
-
- Default: "no"
-
- MKDEBUGLIB Can be set to "yes" or "no". Indicates whether debug
- information (see MKDEBUG) should also be generated for all
- libraries build.
-
- Default: "no"
-
- MKDOC Can be set to "yes" or "no". Indicates whether system
- documentation destined for DESTDIR/usr/share/doc will be
- installed during a build.
-
- Default: "yes"
-
- MKEXTSRC Can be set to "yes" or "no". Indicates whether extsrc is
- built from EXTSRCSRCDIR.
-
- Default: "no"
-
- MKHTML Can be set to "yes" or "no". Indicates whether preformatted
- HTML manual pages will be built and installed
-
- Default: "yes"
-
- MKHOSTOBJ Can be set to "yes" or "no". If set to "yes", then for
- programs intended to be run on the compile host, the name,
- release, and architecture of the host operating system will
- be suffixed to the name of the object directory created by
- "make obj". (This allows multiple host systems to compile
- NetBSD for a single target.) If set to "no", then programs
- built to be run on the compile host will use the same object
- directory names as programs built to be run on the target.
-
- Default: "no"
-
- MKINFO Can be set to "yes" or "no". Indicates whether GNU Info
- files, used for the documentation for most of the compilation
- tools, will be created and installed during a build.
-
- Default: "yes"
-
Home |
Main Index |
Thread Index |
Old Index