History log of /freebsd-current/Makefile
Revision Date Author Comments
# 49a3780a 24-Jan-2024 Mark Johnston <markj@FreeBSD.org>

build: Order kernel-toolchain and buildkernel targets

MFC after: 1 week


# a6b892e1 13-Mar-2024 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20240309

Intersting/relevant changes since bmake-20240108

ChangeLog since bmake-20240108

2024-03-10 Simon J Gerraty <sjg@beast.crufty.net>

* boot-strap: tests can take a long time; use a cookie to
skip them if bmake has not been updated since tests last
ran successfully.

* Makefile: Cygwin handles MANTARGET man

* unit-tests/Makefile: set BROKEN_TESTS for Cygwin

2024-03-09 Simon J Gerraty <sjg@beast.crufty.net>

* VERSION (_MAKE_VERSION): 20240309
Merge with NetBSD make, pick up
o set .ERROR_EXIT to the exit status of .ERROR_TARGET
this allows a .ERROR target to ignore the case of
.ERROR_EXIT==6 which just means that the build actually
failed somewhere else.

2024-03-04 Simon J Gerraty <sjg@beast.crufty.net>

* VERSION (_MAKE_VERSION): 20240303

* var.c: on IRIX we need both inttypes.h and stdint.h

2024-03-01 Simon J Gerraty <sjg@beast.crufty.net>

* VERSION (_MAKE_VERSION): 20240301
Merge with NetBSD make, pick up
o export variables with value from target scope
when appropriate.

2024-02-12 Simon J Gerraty <sjg@beast.crufty.net>

* VERSION (_MAKE_VERSION): 20240212
Merge with NetBSD make, pick up
o remove unneeded conditional-compilation toggles
INCLUDES, LIBRARIES, POSIX, SYSVINCLUDE, SYSVVARSUB,
GMAKEEXPORT NO_REGEX and SUNSHCMD

* configure.in: add check for regex.h

* var.c: replace use of NO_REGEX with HAVE_REGEX_H

2024-02-04 Simon J Gerraty <sjg@beast.crufty.net>

* VERSION (_MAKE_VERSION): 20240204
Merge with NetBSD make, pick up
o var.c: fix some lint (-dL) mode parsing issues

2024-02-02 Simon J Gerraty <sjg@beast.crufty.net>

* VERSION: (_MAKE_VERSION): 20240202
Merge with NetBSD make, pick up
o make.1: note that arg to :D and :U can be empty
o var.c: $$ is not a parse error when .MAKE.SAVE_DOLLARS=no

mk/ChangeLog since bmake-20240108

2024-03-09 Simon J Gerraty <sjg@beast.crufty.net>

* install-mk (MK_VERSION): 20240309

* meta.sys.mk: _metaError: if .ERROR_EXIT == 6, we do not
want to save the .ERROR_META_FILE

2024-02-20 Simon J Gerraty <sjg@beast.crufty.net>

* install-mk (MK_VERSION): 20240220

* sys.dirdeps.mk, dirdeps-targets.mk, init.mk:
do not set .MAIN: dirdeps in sys.dirdeps.mk
dirdeps-targets.mk will do that for top-level builds
and init.mk will do it for others.
This allows a Makefile which has no need of 'dirdeps' to
set .MAIN for itself and "just work".

2024-02-18 Simon J Gerraty <sjg@beast.crufty.net>

* bsd.*.mk: for makefiles that get a bsd. symlink,
use _this in multiple inclusion tags since .PARSEFILE will not
DTRT when such a makefile is included directly by Makefile and
automatically (without bsd. prefix).
Since we cannot guarantee that our sys.mk will be used, we provide
a default _this in each makefile that gets a bsd. prefix such that
the value is the same regardless of bsd. prefix.

* subdir.mk: drop the !target guard on $SUBDIR_TARGETS

2024-02-12 Simon J Gerraty <sjg@beast.crufty.net>

* install-mk (MK_VERSION): 20240212

* SPDX-License-Identifier: BSD-2-Clause
Add SPDX-License-Identifier to inidicate that I consider
my copyright on any of these makefiles equivalent to BSD-2-Clause

* autoconf.mk: allow for configure.ac as currently recommended

* subdir.mk: support @auto
which is replaced with each subdir that
has a [Mm]akefile.

* subdir.mk: include local.subdir.mk if it exists.

* subdir.mk: rework to handle .WAIT

2024-02-11 Simon J Gerraty <sjg@beast.crufty.net>

* subdir.mk: _SUBDIRUSE report the target we are entering subdirs for.

2024-02-10 Simon J Gerraty <sjg@beast.crufty.net>

* prog.mk: treat empty SRCS the same as undefined

2024-02-02 Simon J Gerraty <sjg@beast.crufty.net>

* Avoid undefined errors in lint (-dL) mode

* man.mk (CMT2DOC_FLAGS): note that -mm does mdoc(7)

2024-01-28 Simon J Gerraty <sjg@beast.crufty.net>

* install-mk (MK_VERSION): 20240128

* FILES: add ccm.dep.mk for C++ modules
add suffixes.mk for common location for generic SUFFIX rules.

* auto.dep.mk autodep.mk meta.autodep.mk: include ccm.dep.mk
replace OBJ_EXTENSIONS with OBJ_SUFFIXES

* autodep.mk: leverage CXX_SUFFIXES for __depsrcs
and update style (spaces around = etc)

* init.mk: add OBJS_SRCS_FILTER to filter SRCS when
setting OBJS

* meta2deps.py: handle multiple ./ embedded in path better.


# 378c74fa 13-Feb-2024 Dag-Erling Smørgrav <des@FreeBSD.org>

Import tzcode 2024a


# 76e31da7 01-Feb-2024 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2024a


# a5ff9005 26-Jan-2024 Emmanuel Vadot <manu@FreeBSD.org>

pkgbase: Create two new rules for creating repo

This adds two new rules named create-packages-kernel-repo and
create-packages-world-repo.
The goal of those rules is to create the {kernel,world} packages and
after that the repository.
It helps a lot for developing with pkgbase by adding the dev machine
repository created by those rules on top of the official pkgbase one.

Differential Revision: https://reviews.freebsd.org/D43623
Reviewed by: bapt, emaste
Sponsored by: Beckhoff Automation GmbH & Co. KG


# 883a1b00 02-Jan-2024 Warner Losh <imp@FreeBSD.org>

Makefile: Deorbit fmake support

fmake has been out of the tree for 10 years / 5 major releases now. The
need to bootstrap from it has been gone for at least 6 if not 8
years. While we may still need to bootstrap bmake, we don't need to do
it from fmake, so only retail the infrastructure to update from bmake to
bmake. Retain, for now, the WANT_MAKE_VERSION stuff, though we're always
up to date when building from supported and quasi-supported platforms.

Also remove all the checks to see if .PARSEDIR is defined. It is always
defined and was an early, fail-safe way to tell fmake from bmake during
the transition.

Adjust comments that refer to old fmake and remove those no longer
relevant.

Sponsored by: Netflix
Reviewed by: brooks
Pull Request: https://github.com/freebsd/freebsd-src/pull/980


# 893fe32c 22-Dec-2023 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2023d


# 99b8c0c3 17-Nov-2023 Baptiste Daroussin <bapt@FreeBSD.org>

pkgbase: create source package

FreeBSD-src for all the sources but the kernel
FreeBSD-src-sys just for the kernel

MFC After: 3 days
Reviewed by: manu
Differential Revision: https://reviews.freebsd.org/D42651


# e56a937c 04-Oct-2023 Baptiste Daroussin <bapt@FreeBSD.org>

bsddialog: Import version 1.0


# ecf01a8e 23-Aug-2023 Jessica Clarke <jrtc27@FreeBSD.org>

Makefile: Support universe-toolchain on non-FreeBSD

We currently pass MACHINE and MACHINE_ARCH as TARGET and TARGET_ARCH
respectively for universe-toolchain, but on non-FreeBSD these may not
have values that we understand (e.g. on Linux it will be x86_64 rather
than amd64) for TARGET/TARGET_ARCH (note that we do support them for
MACHINE/MACHINE_ARCH). Since the choice is a bit arbitrary and merely
determines what LLVM's default triple will be, use amd64 on non-FreeBSD
as a known-good default.

Reviewed by: jhb
Differential Revision: https://reviews.freebsd.org/D41545


# 9b3517a4 21-Aug-2023 Dag-Erling Smørgrav <des@FreeBSD.org>

Import unifdef 2.11


# d0b2dbfa 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/


# 98d03dca 27-Jul-2023 Warner Losh <imp@FreeBSD.org>

universe: Demote armv6 to an extra architecture.

Per discussions over how to lighten the load of armv6, move it to an
extra arch. You can still build TARGET_ARCH=armv6 if you desire, but
it won't be built as part of 'make universe' without -DEXTRA_TARGETS.

Sponsored by: Netflix


# d81da4c9 26-Jul-2023 Jessica Clarke <jrtc27@FreeBSD.org>

Makefile.inc1: Add new buildetc and installetc targets

These implement the steps that etcupdate (and mergemaster) need in order
to build their pristine trees, avoiding the need to use internal targets
and variables. Additionally, buildetc includes the steps needed to build
with BUILD_WITH_STRICT_TMPPATH enabled, since we need some host tools to
be available during the various build and install steps.

Reviewed by: jhb, imp
Differential Revision: https://reviews.freebsd.org/D41205


# 8fc3059b 26-Jul-2023 Jessica Clarke <jrtc27@FreeBSD.org>

Makefile.inc1: Split _cleanworldtmp out from _worldtmp

This mirrors _cleanobj vs _obj, and will be used by etcupdate to ensure
its build tree has host tools available when BUILD_WITH_STRICT_TMPPATH
is enabled by default (whether in the source tree, like CheriBSD, or in
a system config file).

Note that due to line length the .MAKE .PHONY dependency line is split
into two, one for the filtered WMAKE_TGTS and one for the filtered
.ALLTARGETS.

Reviewed by: brooks, jhb
Differential Revision: https://reviews.freebsd.org/D41190


# eafd0283 26-Jul-2023 Jessica Clarke <jrtc27@FreeBSD.org>

Makefile: Automatically generate list of libcompat targets

Reviewed by: brooks, jhb
Differential Revision: https://reviews.freebsd.org/D41179


# 71944acb 15-Jul-2023 Warner Losh <imp@FreeBSD.org>

lua: Update to 5.4.6

Sponsored by: Netflix


# 3e39ce56 27-Jun-2023 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20230622

Relevant/interesting changes:

o optimize string matching for ':M' and ':N'
o warn about malformed patterns in ':M', ':N' and '.if make(...)'
o allow guards to be targets as well as variables
The guard targets may include variable references like
__${.PARSEDIR:tA}/${.PARSEFILE}__
o optimization for makefiles protected from multiple-inclusion
skip even opening the file after first include.
o var.c: do not allow delete of readOnly variable
o parse.c: .break takes no args


# da1ef2d6 13-May-2023 Simon J. Gerraty <sjg@FreeBSD.org>

Move MACHINE/MACHINE_ARCH handling to sys.machine.mk

Rather than define the TARGETS and TARGET_ARCHES in src/Makefile
put them in sys.machine.mk so they can also be leveraged by
non-top-level builds.

We have TARGET_MACHINE_LIST as the list of MACHINES we build for.

For each MACHINE we have a MACHINE_ARCH_LIST_${MACHINE}
and the first entry of each list is used as default for
MACHINE_ARCH_${MACHINE}

We can now remove a bunch of MACHINE_ARCH.* handling from
local.sys.dirdeps*mk

Reviewed by: imp
Sponsored by: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D40083


# 29866ecb 27-Mar-2023 Andrew Turner <andrew@FreeBSD.org>

Update the Arm Optimized Routines

Import the v23.01 release of the Arm Optimized Routines [1]. This updates
the license to MIT OR Apache-2.0 WITH LLVM-exception.

[1] https://github.com/ARM-software/optimized-routines/tree/v23.01

Approved by: core (License change)
Sponsored by: Arm Ltd


# 48847a88 18-Apr-2023 Dag-Erling Smørgrav <des@FreeBSD.org>

Import tzcode 2023a


# 51d8a8b4 24-Apr-2023 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20230414

Relevant/interesting changes:

* make.1: document seemingly unexplained Error code 6.
o compat.c: CompatDeleteTarget skip .PHONY targets to be
consistent with JobDeleteTarget.
o job.c: fix memory leak in handling sysv :from=to modifiers
o unit tests for .MAKE.META.IGNORE_{FILTER,PATHS,PATTERNS}
o var.c: fix parsing of unevaluated subexpressions with
unbalanced '{}'
o cond.c: reduce complexity of evaluating expressions


# 0df4d8ad 20-Apr-2023 Simon J. Gerraty <sjg@FreeBSD.org>

Add jobs.mk to allow for target-jobs

jobs.mk automates -j$JOB_MAX and capturing build log based on target.

Compute a default for JOB_MAX in local.sys.mk

Reviewed by: stevek, imp
Differential Revision: https://reviews.freebsd.org/D39683


# 1ca12bd9 12-Apr-2023 John Baldwin <jhb@FreeBSD.org>

Remove the riscv64sf architecture.

Reviewed by: jrtc27, arichardson, br, kp, imp, emaste
Differential Revision: https://reviews.freebsd.org/D39496


# e31cd852 22-Mar-2023 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2023a


# f4d51098 09-Feb-2023 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20230208

ChangeLog since bmake-20230126

* VERSION (_MAKE_VERSION): 20230208
Merge with NetBSD make, pick up
o var.c: always use SCOPE_GLOBAL for :_ to avoid problems
when it has been used within conditional expressions

* install-sh: if making directories ensure umask is set
to match mode.

* Makefile: use DIRMODE for directories and
NONBINMODE for man pages and mk files


# 755d9301 01-Sep-2022 Kyle Evans <kevans@FreeBSD.org>

Import Lua 5.4.4


# 30d7d06f 01-Sep-2022 Kyle Evans <kevans@FreeBSD.org>

Import lua 5.4.3


# 2e36ab23 27-Jan-2023 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20230126

Relevant/interesting changes (see ChangeLog for more):

o variables like .newline and .MAKE.{GID,PID,PPID,UID}
should be read-only.
o .[NO]READONLY: for control of read-only variables
o .SYSPATH: for controlling the path searched for makefiles
o allow for white-space between command specifiers @+-
o add more details to warning 'Extra targets ignored'
o make.1: sync list of built-in variables with reality
sort list of built-in variables
o cond.c: add more details to error message for numeric comparison
o job.c: fix handling of null bytes in output
o Allow .break to terminate a .for loop early
o var.c: fix out-of-bounds errors when parsing
o fix exit status for '-q' (since 1994)


# 370110fd 27-Jan-2023 John Baldwin <jhb@FreeBSD.org>

universe: Switch GCC toolchains to GCC 12.

Reviewed by: imp, emaste
Differential Revision: https://reviews.freebsd.org/D38230


# b3392d84 24-Jan-2023 Allan Jude <allanjude@FreeBSD.org>

Import zstd 1.5.2


# 34ac629b 20-Jan-2023 Alex Richardson <arichardson@FreeBSD.org>

Shell-escape assignments to PATH in the top-level makefiles

Since 16fbf0191243e7c9dff6615b1424b5d39186b36c PATH is no longer set
to a hardcoded value on non-FreeBSD build hosts, so we can end up with
spaces in $PATH. Instead of only escaping PATH I updated all `env PATH=`
uses in the toplevel makefile. While many of these currently can't
contain any special characters (since the build would have failed
already), in theory this gets us closer to allowing build/source
directory to contain e.g. spaces.


# 16fbf019 19-Jan-2023 Jake Freeland <jfree@FreeBSD.org>

Makefile: Avoid sanitizing PATH on non-FreeBSD systems

Allow the build process to find host binaries during the host-symlinks target when
cross-building on non-FreeBSD systems. Whilst most non-FreeBSD systems have all
the needed tools in /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin (the final
path added by host-symlinks itself), Homebrew for macOS on Arm defaults to
/opt/homebrew/bin, other more niche systems may also deviate and users may
expect tools in a customised PATH to be picked up, unlike on FreeBSD where we
want to ensure everything comes from base. In particular, (un)xz are needed
from Homebrew on macOS, and thus cannot be found on Arm without this.

Note that non-FreeBSD builds enforce BUILD_WITH_STRICT_TMPPATH, and so the
actual main build steps will still use a sanitised PATH.

Reviewed by: jrtc27, arichardson
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D37991


# 28fbd282 15-Jan-2023 Gregory Neil Shapiro <gshapiro@FreeBSD.org>

Import sendmail 8.17.1


# 85639444 13-Dec-2022 Dag-Erling Smørgrav <des@FreeBSD.org>

Import tzcode 2022g


# cc16bfc3 13-Dec-2022 Dag-Erling Smørgrav <des@FreeBSD.org>

Import tzcode 2022f


# a24d752d 16-Aug-2022 Philip Paeps <philip@FreeBSD.org>

Import tzcode 2022c


# 9b5369d3 16-Aug-2022 Philip Paeps <philip@FreeBSD.org>

Unsplit vendor import of tzcode 2010n

Historically, to work around CVS limitations, imports on the tzcode
vendor branch were split into subdirectories, which were then merged to
their respective counterparts in contrib. In the Git era, this split is
unnecessary and adds more work.

Undo the split for the most recent vendor import of tzcode 2010n to
prepare for the vendor import of tzcode 2022c.


# 9f36c6bf 29-Nov-2022 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2022g


# 46649025 28-Oct-2022 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2022f


# e6d47601 04-Oct-2022 Dries Michiels <driesm@FreeBSD.org>

Makefile: replace mergemaster references with etcupdate

Similar to UPDATING and handbook changes, treat Makefile the same.

PR: 260822
Approved by: jhb, philip
Differential Revision: https://reviews.freebsd.org/D36877


# 9f24fda5 25-Sep-2022 Alfonso S. Siciliano <asiciliano@FreeBSD.org>

contrib/bsddialog: Import version 0.4

Improvements and changes to integrate bsddialog(1) with scripts in BASE.
Overview:

* New options. --and-widget, --keep-tite, --calendar.
* Change output format. Menus and --print-maxsize.
* Redefine sizing. Fixed rows, cols and menurows became at the most.
* Add DIAGNOSTICS. Error messages for bad arguments and options.
* Add keys. Space for --menu, fast keys for --msgbox and --yesno.
* Text. Change default text modification, add --cr-wrap.

See /usr/src/contrib/bsddialog/CHANGELOG '2022-09-24 Version 0.4'
for more detailed information.


# 2c9fd765 03-Sep-2022 Alfonso S. Siciliano <asiciliano@FreeBSD.org>

contrib/bsddialog: Import version 0.3

New features overview:
* Unicode. User interface handles multi-column characters. API can
handle char* like a multibyte character string. Internally wide
characters are used for keyboard input, to adapt word wrapping and
dynamic text auto-sizing for multi-column characters.
* Forms refactoring. Complete rewrite deleting libformw dependency.
* Theme. New utility options to save and load custom theme at run-time.
* TUI navigation. Added keys to navigate input components. Changed
default focus behavior of input dialogs to be LGPL-dialog-like; a new
option can set the previous whiptail-like behavior.

See /usr/src/contrib/bsddialog/CHANGELOG '2022-08-29 Version 0.3'
for more detailed information.


# adf59137 15-Aug-2022 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2022c


# 79499b48 10-Aug-2022 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2022b


# 31a96ca5 27-Jul-2022 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20220726

Relevant/interesting changes:

* Auto-create objdir for bmake/unit-tests if appropriate


# 9dfbda25 20-May-2022 John Baldwin <jhb@FreeBSD.org>

Switch to GCC 9 for the GCC tinderbox.

This also adds arm and riscv to the GCC tinderbox.

Reviewed by: emaste (older version)
Differential Revision: https://reviews.freebsd.org/D26202


# 971fa603 16-Mar-2022 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2022a


# 2f8d4418 12-Mar-2022 Alfonso S. Siciliano <asiciliano@FreeBSD.org>

bsddialog: Import version0.2

This version provides improvements and fixes mainly to use bsddialog
utility in bsdinstall/scripts. The lib API is not broken so the
previous converted utilities (tzsetup, distextract, etc.) are OK.

Approved by: bapt (mentor)
Differential Revision: https://reviews.freebsd.org/D34458


# 3e65b7d9 11-Feb-2022 Warner Losh <imp@FreeBSD.org>

cleankernel: A target to delete the kernel compile file

With the meta-build, it's always a NO_CLEAN build. Provide a way to
remove so one can rebuild from scratch. 'cleankernel' will delete the
kernel and modules object directories. Document this in build(7).

Sponsored by: Netflix
Reviewed by: debdrup, markj
Differential Revision: https://reviews.freebsd.org/D32978


# c0f397da 02-Feb-2022 Toomas Soome <tsoome@FreeBSD.org>

import terminus-font-4.49.1


# 02db4a12 28-Jan-2022 Alfonso Siciliano <alfsiciliano@gmail.com>

bsddialog: import version 0.1


# 6f6fbfa3 15-Jan-2022 Ed Maste <emaste@FreeBSD.org>

Remove quotes around Makefile .error/.warn/.info strings

The text after .error et al is emitted verbatim.

Reviewed by: sjg
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D33904


# 21baf42c 11-Jan-2022 John Baldwin <jhb@FreeBSD.org>

Add list-old-{dirs,files,libs} targets.

These targets generate a raw list of the candidate old files roughly
corresponding to the values of OLD_DIRS, OLD_FILES, and OLD_LIBS.
Currently list-old-files also includes uncompressed manpages in
addition to compressed manpages.

Use these targets in the implementation of check-old-* and
delete-old-* to replace duplicated logic.

Reviewed by: imp, emaste
Sponsored by: The University of Cambridge, Google Inc.
Differential Revision: https://reviews.freebsd.org/D33327


# b68d6892 06-Jan-2022 Warner Losh <imp@FreeBSD.org>

libsoft: Remove targets to generate libsoft

Remove the targets needed to make and install libsoft.

Sponsored by: Netflix


# 8cfd7a6a 21-Dec-2021 Piotr Kubaj <pkubaj@FreeBSD.org>

Let powerpc64le live as not experimental architecture.

Summary: It's currently just as stable as powerpc64, with more ports working.

Reviewers: alfredo, bdragon, luporl, jhibbits, #manpages

Subscribers: imp

Differential Revision: https://reviews.freebsd.org/D33610


# 2935fe82 18-Dec-2021 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20211212

Relevant changes see ChangeLog for details:

Add support for ${.SUFFIXES} as read-only variable.

Fix memory leak in cond.c

Punt on write errors - ENOSPC etc.

Lots of code refactoring, rework to reduce memory allocations.

More unit-tests.


# dd55767b 14-Dec-2021 Warner Losh <imp@FreeBSD.org>

Test various header files to ensure they can be included by themselves.

A number of header files in sys/* have, going back to 7th Edition Unix
in 1979, reqiured other files (like sys/types.h) to compile. Likewise
the 4BSD networking code has had prerequisites. However, going back to
around the turn of the 21st century, other systems have made them be
independently include-able (wide-spread header include protection
post-dates 7th edition Unix by maybe 3 or so years judging from USENET
source postings). Start down the path of making them all independently
include-able by creating this test that fails buildworld when they are
not.

The file 'badfiles.inc' contains a list of the currently broken files
that cannot be included w/o any prerequisites. As files are fixed, 'make
badfiles.inc' should be re-run to remove them from the list. Note: All
files that start with an underscore are considered internal and not
tested.

Please note: once a file is removed from badfiles.inc, it must pass on
all architectures. Buildworld through at least the _includes target is
needed to ensure its working (though a buildkernel should also be done
on all architectures as well).

Sponsored by: Netflix
Reviewed by: brooks, markj
Differential Revision: https://reviews.freebsd.org/D32498


# 857c66bb 24-Nov-2021 Baptiste Daroussin <bapt@FreeBSD.org>

bsddialog: import snapshot as of 2021-11-24


# 322b341d 18-Nov-2021 Warner Losh <imp@FreeBSD.org>

Remove mips from universe

Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D32851


# e9bf778a 15-Nov-2021 Baptiste Daroussin <bapt@FreeBSD.org>

mandoc: import v1.14.6


# 9530c11c 01-Oct-2021 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2021c


# a5725262 26-Sep-2021 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2021b


# 16a84834 22-Sep-2021 Baptiste Daroussin <bapt@FreeBSD.org>

dma: import git snapshot 2021-07-10


# 2482ea42 03-Aug-2021 Bryan Drewery <bdrewery@FreeBSD.org>

Revert "Fix native-xtools build"

This reverts commit 36269b82318280ef184c953b90674f5905e0f53f.

This had an unintended change included.


# 36269b82 03-Aug-2021 Bryan Drewery <bdrewery@FreeBSD.org>

Fix native-xtools build

Fixes https://github.com/freebsd/poudriere/issues/894
Fixes: d0c737e18 ("Makefile: Fix MAKEOBJDIRPREFIX command-line")
X-MFC-With: d0c737e18


# d0c737e1 20-Jul-2021 Jessica Clarke <jrtc27@FreeBSD.org>

Makefile: Fix MAKEOBJDIRPREFIX command-line variable check for bmake

Unlike the old fmake, running make FOO=bar when using bmake doesn't put
FOO=bar in .MAKEFLAGS at the top level, it instead just puts FOO in
.MAKEOVERRIDES and the full MAKEFLAGS will be formed for sub-makes.
Moreover, this only applies for sub-makes in rules, so this doesn't
apply to those in shell assignments. This means that the current check
does not catch make MAKEOBJDIRPREFIX=..., only those defined in config
files. Thus we must also check .MAKEOVERRIDES explicitly.

Reviewed by: sjg
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D31015


# f9f37c00 22-Feb-2021 Alex Richardson <arichardson@FreeBSD.org>

Import Arm Optimized Routines v21.02

We already have copies of some of these files in the repository without a
vendor import and we should really be using contrib/ instead.
We should also be able to use some of the math functions to allow the
tests to pass on AArch64 (and other architectures) instead of just x86.
We should also be able to reuse some of the tests for the kyua testsuite.

Imported using
```
curl -L https://github.com/ARM-software/optimized-routines/tarball/e823e3abf5f89ecba58a10fc0fd82c13d9984b6b | tar --strip-components=1 -xvzf -
git add .
```


# e290182b 11-Jun-2021 John Baldwin <jhb@FreeBSD.org>

Remove 'make update'.

In the CVS days this used be a wrapper around either CVS or CVSup and
used to support updating src, doc, and ports checkouts. With the move
to subversion this only supported updating src and was itself a
wrapper around 'svn update'. With Git, users are probably better off
using appropriate Git commands directly to update without needing an
explicit make target as a wrapper.

Reviewed by: bcr, imp, emaste
Differential Revision: https://reviews.freebsd.org/D30736


# 881fcf9c 22-Mar-2021 Baptiste Daroussin <bapt@FreeBSD.org>

libedit: vendor import snapshot 20200710


# eb8bf6bb 06-Mar-2021 Bryan Drewery <bdrewery@FreeBSD.org>

Fix 'make bmake' top-level bootstrapping.

Fixes: ee10666327b62


# 7fa2f2a6 06-Jan-2021 Alex Richardson <Alexander.Richardson@cl.cam.ac.uk>

Rename NO_WERROR -> MK_WERROR=no

As suggested in D27598. This also supports MK_WERROR.clang=no and
MK_WERROR.gcc=no to support the existing NO_WERROR.<compiler> uses.

Reviewed By: brooks
Differential Revision: https://reviews.freebsd.org/D27601


# cee3932f 02-Jan-2021 Toomas Soome <tsoome@FreeBSD.org>

import terminus-font-4.48


# 96b88ac7 29-Dec-2020 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2020f


# 0ea45b9c 25-Dec-2020 Kyle Evans <kevans@FreeBSD.org>

Import lua 5.4.2


# f6ae9767 24-Dec-2020 Conrad Meyer <cem@FreeBSD.org>

Import zstd 1.4.8


# b239e697 23-Dec-2020 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2020e


# 1b65f0bd 19-Nov-2020 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20201117

o allow env var MAKE_OBJDIR_CHECK_WRITABLE=no to skip writable
checks in InitObjdir. Explicit .OBJDIR target always allows
read-only directory.

o Fix building and unit-tests on non-BSD.

o More code cleanup and refactoring.

o More unit tests


# cf82304d 14-Nov-2020 Kyle Evans <kevans@FreeBSD.org>

Makefile: re-wordsmith the blurb about xtoolchain ports

The new version only includes a specific version once, and uses the one
that's currently advised by tinderbox: -gcc6.

It also advises just installing the pkg, but mentions in a side-note at the
end where to find the source in the ports tree.

Reviewed by: jrtc27
Suggested by: jhb (use default from tinderbox)
Differential Revision: https://reviews.freebsd.org/D26820


# 302da1a3 07-Nov-2020 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20201101

Lots of new unit-tests increase code coverage.

Lots of refactoring, cleanup and simlpification to reduce
code size.

Fixes for Bug 223564 and 245807

Updates to dirdeps.mk and meta2deps.py


# 0ac8aa55 02-Nov-2020 Emmanuel Vadot <manu@FreeBSD.org>

pkgbase: Add incremental packages

This adds a new target update-packages which will create the new packages
compared to the last run.

This is how to use it:
At this point we cut a release
$ make buildworld ...
$ make buildkernel
$ make packages

There is now a PKG_VERSION directory with latest link pointing to it
Distribute the packages to server

$ something something that update the source tree
$ make buildworld ...
$ make buildkernel
$ make update-packages
You know have a PKG_VERSION directory in the REPODIR and latest link pointing to it.
In PKG_VERSION dir only the packages which differs from the latest run are
named PKG_VERSION, otherwise the old packages are there.

The process is :
Build the new packages in the PKG_VERSION directory
Compare the internal data with the PKG_VERSION_FROM version. The comparison is done
by checking the internal hash of the packages.
By default PKG_VERSION_FROM is set to what the latest link points to.
If the old and new version matches, we rm the new package and cp the old one.

Differential Revision: https://reviews.freebsd.org/D25984


# f8bfb27f 21-Oct-2020 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2020d


# 3421f527 16-Oct-2020 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2020c


# 5f2aaba4 16-Oct-2020 Kyle Evans <kevans@FreeBSD.org>

Makefile: add a small blurb about building with gcc xtoolchain

The key details are to install the appropriate flavor of devel/freebsd-gcc9
and pass CROSS_TOOLCHAIN while building.

Suggested by: kib


# 2a40e13a 16-Oct-2020 Kyle Evans <kevans@FreeBSD.org>

lua: update to 5.3.6

This release contains some minor bugfixes; notably:
- 2x minor Makefile fixes (not used in base)
- Long brackets with a huge number of '=' overflow some internal buffer
arithmetic.
- Joining an upvalue with itself can cause a use-after-free crash.

See here for examples: http://www.lua.org/bugs.html#5.3.5


# bf0cf8df 08-Oct-2020 Warner Losh <imp@FreeBSD.org>

Eliminate building LINT makefiles

LINT config files are about to be checked in directly. Eliminate
building them by hand here from NOTES files.

Reviewed by: kevans
Differential Revision: https://reviews.freebsd.org/D26540


# 0e134558 07-Oct-2020 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2020b


# b75abea4 22-Sep-2020 Brandon Bergren <bdragon@FreeBSD.org>

[PowerPC64LE] Set up powerpc.powerpc64le architecture

This is the initial set up for PowerPC64LE.

The current plan is for this arch to remain experimental for FreeBSD 13.

This started as a weekend learning project for me and kinda snowballed from
there.

(More to follow momentarily.)

Reviewed by: imp (earlier version), emaste
Sponsored by: Tag1 Consulting, Inc.
Differential Revision: https://reviews.freebsd.org/D26399


# 6bbc783f 05-Sep-2020 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20200902

Lots of code refactoring, simplification and cleanup.
Lots of new unit-tests providing much higher code coverage.
All courtesy of rillig at netbsd.

Other significant changes:

o new read-only variable .SHELL which provides the path of the shell
used to run scripts (as defined by the .SHELL target).

o new debug option -dl: LINT mode, does the equivalent of := for all
variable assignments so that file and line number are reported for
variable parse errors.


# dce3fcd4 25-Aug-2020 Alex Richardson <arichardson@FreeBSD.org>

Fix typo in r364325 that broke tinderbox with -DBUILD_WITH_STRICT_TMPPATH

${TARGET_ARCH} is empty here which results in empy MAKE_PARAMS being
passed to the buildkernel phase. This breaks the build when using the
strict TMPPATH since cc will not be included in $PATH.

Reviewed By: jhb


# 7d0c2b11 17-Aug-2020 John Baldwin <jhb@FreeBSD.org>

Add a USE_GCC_TOOLCHAINS knob to make universe.

This uses GCC toolchains instead of LLVM on architectures supported by
GCC. Currently this uses GCC 6 on aarch64, amd64, i386, and mips.

Although this does also try to use GCC 6 on powerpc, it is always
skipped for now since a powerpc-gcc6 package is not available and the
structure of make universe makes it hard to skip a subset of arches
for a target. This should be short-lived as freebsd-gcc9 does include
a powerpc-gcc9 package so powerpc should work once this switches to
GCC 9.

Discussed with: emaste
Differential Revision: https://reviews.freebsd.org/D25732


# abd272d7 08-Jun-2020 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20200606

Relevant items from ChangeLog:

o dir.c: cached_stats - don't confuse stat and lstat results.
o var.c: add :Or for reverse sort.


# bc64b5ce 23-May-2020 Conrad Meyer <cem@FreeBSD.org>

Import Zstd 1.4.5


# b897d72a 20-May-2020 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20200517

Changes since 20181221 are mostly portability related
hence the large gap in versions imported.

There are however some bug fixes, and a rework of filemon handling.
In NetBSD make/filemon/filemon_ktrace.c allows use of fktrace
and elimination of filemon(4) which has not had the TLC it needs.

FreeBSD filemon(4) is in much better shape, so bmake/filemon/filemon_dev.c
allows use of that, with a bit less overhead than the ktrace model.

Summary of changes from ChangeLog

o str.c: empty string does not match % pattern
plus unit-test changes
o var.c: import handling of old sysV style modifier using '%'
o str.c: refactor brk_string
o meta.c: meta_oodate, CHECK_VALID_META is too aggressive for CMD
a blank command is perfectly valid.
o meta.c: meta_oodate, check for corrupted meta file
earlier and more often.
* meta.c: meta_compat_parent check for USE_FILEMON
patch from Soeren Tempel
o meta.c: fix compat mode, need to call meta_job_output()
o job.c: extra fds for meta mode not needed if using filemon_dev
o meta.c: avoid passing NULL to filemon_*() when meta_needed()
returns FALSE.
o filemon/filemon_{dev,ktrace}.c: allow selection of
filemon implementation. filemon_dev.c uses the kernel module
while filemon_ktrace.c leverages the fktrace api available in
NetBSD. filemon_ktrace.c can hopefully form the basis for
adding support for other tracing mechanisms such as strace on
Linux.
o meta.c: when target is out-of-date per normal make rules
record value of .OODATE in meta file.
o parse.c: don't pass NULL to realpath(3)
some versions cannot handle it.
o parse.c: ParseDoDependency: free paths rather than assert

plus more unit-tests


# 6d9daf7d 29-Apr-2020 Jakub Wojciech Klama <jceel@FreeBSD.org>

Import lib9p 7ddb1164407da19b9b1afb83df83ae65a71a9a66.

Approved by: trasz (mentor)
MFC after: 1 month
Sponsored by: Conclusive Engineering


# b19042cb 28-Apr-2020 Bryan Drewery <bdrewery@FreeBSD.org>

Use universe-toolchain config(8)

This is a temporary hack to aid with config(8) changing in r360443.
It will not work for all cases.

env PATH is used because universe-toolchain is only built when worlds
are built, and then only if clang is needed, so it may not exist.

universe-toolchain needs to be expanded to always be built, inspected to
remove non-cross-build-safe tools, used for buildworld/buildkernel,
and potentially incremental build support.

Sponsored by: Dell EMC


# 545922d6 23-Apr-2020 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2020a


# be68b4b3 31-Mar-2020 Warner Losh <imp@FreeBSD.org>

Add powerpcspe to the EXTRA_TARGETS

Currently, powerpcspe is broken with clang. Add it to the EXTRA_TARGETS until
that's fixed.

Reviewed by: brooks, bdrewery, emaste (LGTM)
MFC After: 3 days
Differential Revision: https://reviews.freebsd.org/D24212


# c9870c15 31-Mar-2020 Warner Losh <imp@FreeBSD.org>

Fix make kernels to match original commit message

make kernels was originally documented (in commit r295099) as the same as make
universe -DJUST_BUILD_KERNELS. However, it used the UNIVERSE_TARGET=buildkernel
which is subtly different in that it also builds the toolchains and doesn't
build the LINT modules unless they happened to already exist in the tree. This
unbreaks POLA and just builds the kernels, including LINT, now rather than all
that other stuff as well. When the commit originally happened, the two just
differed by the LINT bug. r335711 introduced the universe dependency on the
toolchain that wasn't present before, which diverged the two further. This
restores the original intent of r295099.

Reviewed by: brooks, bdrewery, emaste (LGTM)
MFC After: 3 days
Differential Revision: https://reviews.freebsd.org/D24212


# a7783b5a 31-Mar-2020 Warner Losh <imp@FreeBSD.org>

Make universe configuration more consistent with rest of system

Add 'WITHOUT_WORLDS' and 'WITHOUT_KERNELS' as aliases for the inconsistently
named MAKE_JUST_KERNELS and MAKE_JUST_WORLDS respectively. I always forget the
MAKE_ part (or is it BUILD_), and it's inconsistent with everything
else. Document the new things, but leave speculation of any eventual MAKE_JUST_*
deprecation out of the manuals and comments.

Reviewed by: brooks, bdrewery, emaste (LGTM)
MFC After: 3 days
Differential Revision: https://reviews.freebsd.org/D24212


# ff4c0e6f 24-Mar-2020 John Baldwin <jhb@FreeBSD.org>

Disable rarely used architecture variants in make universe by default.

If EXTRA_TARGETS is defined, build all supported architecture
variants. By default, build architecture variants needed to provide
code coverage or that are commonly used.

Use this to disable building of all the hard-float and little-endian
MIPS architecture variants along with n32 by default.

Reviewed by: rpokala
Discussed with: imp, emaste
Differential Revision: https://reviews.freebsd.org/D24178


# 4a4c9a0f 23-Mar-2020 Alex Richardson <arichardson@FreeBSD.org>

Use Clang and LLD as the default toolchain for MIPS

Now that we have updated the in-tree version of LLVM to 10.0, we have all the
necessary LLVM changes to use Clang+LLD as the default toolchain for MIPS.

Relnotes: yes
Reviewed By: emaste, jhb, brooks, kevans
Differential Revision: https://reviews.freebsd.org/D23204


# 5672c764 02-Feb-2020 Warner Losh <imp@FreeBSD.org>

Per the firm plan, start to remove sparc64

The sparc64 architecture is being removed from FreeBSD 13, starting
now. This removes it from the top level only. It is the only
architecture that didn't see substantial work after the call to get
things working with the external toolchain.


# e48503ff 08-Jan-2020 John Baldwin <jhb@FreeBSD.org>

Use clang and lld as the default toolchain for RISCV.

- Enable clang and lld as system toolchains.
- Don't use external GCC for universe by default.
- Re-enable riscv64sf since it builds fine with clang + lld.

Reviewed by: emaste, mhorne
Relnotes: yes
Sponsored by: DARPA
Differential Revision: https://reviews.freebsd.org/D23089


# 0840c1db 07-Jan-2020 John Baldwin <jhb@FreeBSD.org>

Don't fail universe kernel stage for TARGET_ARCHes without a kernel config.

This fixes a regression in r356418 where the entire universe would
fail early due to an undefined make target when a given TARGET_ARCH
had no associated kernel configs. This is true for all of the
hard-float mips TARGET_ARCHes currently.

Pointy hat to: me
Reviewed by: emaste
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D23071


# 57496d6c 07-Jan-2020 John Baldwin <jhb@FreeBSD.org>

Remove support for using GCC 4.2.1 from make tinderbox.

Reviewed by: emaste
Differential Revision: https://reviews.freebsd.org/D23054


# 20723f18 06-Jan-2020 John Baldwin <jhb@FreeBSD.org>

Enable powerpc in make tinderbox using clang instead of GCC.

powerpcspe is disabled for now until clang/llvm issues with spe
have been fixed.

Reviewed by: imp
Differential Revision: https://reviews.freebsd.org/D23031


# 0b2b53a2 06-Jan-2020 John Baldwin <jhb@FreeBSD.org>

Only build kernels for enabled TARGET_ARCHes in make universe/tinderbox.

Previously, all of the kernels for a given TARGET were built if that
target was enabled. This was implemented by having each kernel built
via a universe_kernconf_<KERNEL> target that was depended on by a
universe_kernconfs target. However, this meant that if one did a
build with a limited set of TARGET_ARCH values for a given TARGET,
kernels could be built for which we hadn't built a world or toolchain.
For example, 'make TARGETS=mips TARGET_ARCHES_mips=mips64' would build
mips32 kernels.

Fix this by adding an extra layer of indirection in the kernel make
targets. universe_kernconf_<KERNEL> is now a dependency of a new
universe_kernconfs_<TARGET_ARCH>. universe_kernconfs in turn depends
on a list of universe_kernconfs_<target_arch> values, but only the
values enabled in TARGET_ARCHES_<TARGET>.

Reviewed by: imp
MFC after: 1 month
Differential Revision: https://reviews.freebsd.org/D23031


# 0865e2bb 03-Jan-2020 John Baldwin <jhb@FreeBSD.org>

Use the freebsd-gcc6 toolchains instead of powerpc64-xtoolchain-gcc.

Reviewed by: brooks
Differential Revision: https://reviews.freebsd.org/D23029


# d0d8c097 02-Jan-2020 Andrew Turner <andrew@FreeBSD.org>

Add the missing trailing '/' when setting TARGET_ARCH from TARGET

This should fix the build when setting TARGET but not TARGET_ARCH.

Sponsored by: DARPA, AFRL


# eb4977bd 01-Jan-2020 Warner Losh <imp@FreeBSD.org>

Remove arm/arm as a valid target.

TARGET=arm now defaults to TARGET_ARCH=armv7
TARGET_ARCH=arm is no longer valid.

Bump __FreeBSD_version to 1300073

Tested with make universe. Any stale LINT-V5 config files remaining in the tree
will fail the universe build. However, LINT-V5 was removed in r355119.

This retirement has been planned since last summer. The armv5 port is fragile:
it works OK for some peeople, and fails badly for others. There's a number of
subtle bugs in busdma, pmap and other MD parts of thee system that present
themselves under load or in unusual circumstances (like fsck after a
crash). stable/8, branched 10 years ago, was the last reliable release. Since
the support burden is larger then the benefit, the consensus view is armv5
should be removed from the tree.

Discussed with: arm@ mailing list and arm developer community.


# 2d823aa1 20-Nov-2019 Pedro F. Giffuni <pfg@FreeBSD.org>

Import openresolv 3.9.0

More information at: https://roy.marples.name/projects/openresolv


# ea684039 05-Nov-2019 Conrad Meyer <cem@FreeBSD.org>

Import Zstd 1.4.4


# e55890a9 03-Nov-2019 Conrad Meyer <cem@FreeBSD.org>

Take arm.arm (armv5) out of universe

It's on the chopping block in two months, the CI tinderbox doesn't bother with
it anymore either, and buildworld fails today due to an issue linking clang.
It's not worth investigating and it just eats up CPU cycles running universe
builds.


# b411a285 14-Oct-2019 John Baldwin <jhb@FreeBSD.org>

Disconnect powerpc from the default tinderbox for now.

The wrong toolchain was set in MAKE_PARAMS_powerpc, however, there are
some other issues preventing powerpc from building in tinderbox:

1) There is no powerpc-gcc and powerpc-xtoolchain-gcc port that
provides an external 32-bit powerpc GCC toolchain.

2) On other targets, the same toolchain can build all of the
architectures for a given target. MIPS achieves this by always
setting -mabi and -EB/-EL explicitly instead of relying on the
compiler's default architecture. PowerPC might be able to do the
same thing, but as of today, powerpc-gcc would be required for
powerpc and powerpcspe and powerpc64-gcc would be required for
powerpc64. Our existing logic for make universe does not permit
per-MACHINE_ARCH toolchains.

I tried hacking TARGETS_powerpc to only include powerpc64 when
powerpc64-gcc was present, and while that skipped the 32-bit worlds,
it tried to build all the kernels.

Reported by: jeff
Discussed with: imp


# 2f9520d5 09-Oct-2019 Warner Losh <imp@FreeBSD.org>

Wordsmith and simplify

Simplify expressions as suggested by jhb. The extra indirection made
sense in earlier versions of this patch, but not the final one.

While here, apply suggestion from emaste for wording of universe.
Also wordsmith awkwardly worded comment about when we effectively
neuter the universe build for an architecture.

Once llvm 9.0 has been vetted for mips and powerpc, I'll take them out
of these lists.


# 3f376e4b 09-Oct-2019 Warner Losh <imp@FreeBSD.org>

Don't compile old gcc 4.2.1 archs by default in universe/tinderbox.

Only compile clang supporting architectures of amd64, arm, arm64,
i386, and riscv as part of universe. Compile the other architectures
if MAKE_OBSOLETE_GCC is defined. In all cases, explicit lists of
architectures in TARGETS= on the command line override.

For mips, powerpc and sparc64, do the same thing we do for risvc when
MAKE_OBSOLETE_GCC isn't defined and short-circuit their universe build
with an echo saying to install the xtoolchain port or pkg.

PR: 241134
Discussed on: arch@ (https://lists.freebsd.org/pipermail/freebsd-arch/2019-August/019674.html)
Differential Revision: https://reviews.freebsd.org/D21942


# c1d45320 01-Oct-2019 Kyle Evans <kevans@FreeBSD.org>

Add a top-level makeman target

Abstracting away the details of how src.conf(5) is generated is arguably a
good thing; do so with a top-level makeman target.


# 01e5ca17 28-Sep-2019 Emmanuel Vadot <manu@FreeBSD.org>

Import DTS files from Linux 5.3


# fb69e223 11-Aug-2019 Xin LI <delphij@FreeBSD.org>

Vendor import bzip2 -- upgrade to version 1.0.8.


# df2bb80b 24-Jul-2019 Emmanuel Vadot <manu@FreeBSD.org>

pkgbase: Add the sub stage-packages targets to TGTS

This helps when you don't want to run the dependencies targets.

Reviewed by: bapt
Differential Revision: https://reviews.freebsd.org/D20955


# 8d01e58d 01-Jul-2019 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2019b


# 7897e222 27-Jun-2019 Xin LI <delphij@FreeBSD.org>

Vendor import bzip2 -- upgrade to version 1.0.7.


# 707b2d65 24-May-2019 Mark Johnston <markj@FreeBSD.org>

Modernize the MAKE_JUST_KERNELS hint in the top-level makefile.

It doesn't make sense to limit to -j12 anymore, build scalability
is better than it used to be. Fold the hint into the description
of the universe target.

Reviewed by: imp
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D20342


# 3f774a5e 18-Apr-2019 Conrad Meyer <cem@FreeBSD.org>

import zstd 1.4.0


# 78b78a6d 09-Apr-2019 Enji Cooper <ngie@FreeBSD.org>

Fix a typo when sanity checking in the bootstrap-tools target

The path is incorrect for the linker in the error message. It should have been
/usr/bin/ld, not /usr/bin/cc .

Reviewed by: emaste
Approved by: emaste (mentor)
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D19852


# 8f0c7012 29-Mar-2019 Baptiste Daroussin <bapt@FreeBSD.org>

Import mandoc 1.4.5


# beecab94 26-Mar-2019 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2019a


# f55287d3 21-Jan-2019 Simon J. Gerraty <sjg@FreeBSD.org>

Import bearssl-6433cc2


# 00380ae2 30-Dec-2018 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2018h


# af73257b 28-Dec-2018 Conrad Meyer <cem@FreeBSD.org>

import zstd 1.3.8


# 7c5f370d 10-Nov-2018 Eric van Gyzen <vangyzen@FreeBSD.org>

Update comment about 'universe' disk usage

It's 167 GB now (or 81 GB with ZFS lz4).

MFC after: 2 weeks
Sponsored by: Dell EMC Isilon


# 0a9fcf32 07-Nov-2018 Brooks Davis <brooks@FreeBSD.org>

Add a top-level make target to rebuild all sysent files.

The sysent target is useful when changing makesyscalls.sh, when
making paired changes to syscalls.master files, or in a future where
freebsd32 sysent entries are built from the default syscalls.master.

Reviewed by: bdrewery
Obtained from: CheriBSD
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D17899


# 8f62bca4 05-Nov-2018 Alex Richardson <arichardson@FreeBSD.org>

Allow building world without inheriting $PATH

Inheriting $PATH during the build phase can cause the build to fail when
compiling on a different system due to missing build tools or incompatible
versions somewhere in $PATH. This has cause build failures for us before
due to the jenkins slaves still running FreeBSD 10.
Listing the tools we depend on explicitly instead of just using whatever
happens to be in $PATH allows us to check that we don't accidentally add a
new build dependency.

All tools that do no need to be bootstrapped will now be symlinked to
${WORLDTMP}/legacy/bin and during the build phase $PATH will only contain
${WORLDTMP}. There is also a new variable "BOOTSTRAP_ALL_TOOLS" which can
be set to force compiling almost all bootstrap tools instead of symlinking
them. This will not bootstrap tools such as cp,mv, etc. since they may be
used during the build and for those we should really only be using POSIX
compatible options.

Furthermore, this change is required in order to be able to build on
non-FreeBSD hosts. While the same binaries may exist on Linux/MacOS they
often accept different flags or produce incompatible output.

Approved By: brooks (mentor)
Differential Revision: https://reviews.freebsd.org/D16815


# 706cfae4 22-Oct-2018 Conrad Meyer <cem@FreeBSD.org>

import zstd 1.3.7


# 42239e68 22-Oct-2018 Conrad Meyer <cem@FreeBSD.org>

import zstd 1.3.4


# 1767cc49 22-Oct-2018 Conrad Meyer <cem@FreeBSD.org>

import zstd 1.3.3


# 2f05a751 19-Oct-2018 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2018f


# e6d4316a 09-Oct-2018 Brooks Davis <brooks@FreeBSD.org>

Don't include the broken riscv64sf TARGET_ARCH in universe.

riscv64sf has been broken due to duplicate symbols for months and
degrades the quality of universe builds. Remove it until this is
resolved leaving a comment to it is not re-added.

PR: 232085
Reviewed by: emaste
Approved by: re (gjb, kib)
Sponsored by: DARPA, AFRL


# 1f1d4007 20-Sep-2018 Baptiste Daroussin <bapt@FreeBSD.org>

import mandoc 1.14.1


# a43ce912 13-Sep-2018 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.1.1.


# 43a67e02 14-Aug-2018 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.2p.


# 8b6b96c9 17-Jul-2018 Warner Losh <imp@FreeBSD.org>

As discussed several times on freebsd-arch, start to decommission armeb.

Remove armeb/arm from KNOWN_ARCHS.
Remove armeb from arm universe targets.

Differential Revision: https://reviews.freebsd.org/D16257


# b38b45af 28-Jun-2018 Bryan Drewery <bdrewery@FreeBSD.org>

tinderbox: If the clang lookup fails fallback to the old default behavior.

This fixes errors from the MK_CLANG_BOOTSTRAP/MK_LLD_BOOTSTRAP lookups
to not force using XCC/XLD but to rather just build them as normal by
allowing their own bootstrap logic to work.

MFC after: 3 weeks
X-MFC-with: r335711 r335769
Sponsored by: Dell EMC


# 32cec12c 28-Jun-2018 John Baldwin <jhb@FreeBSD.org>

Include existing MAKE_PARAMS_<target> when determining the universe toolchain.

This fixes a warning for each RISCV target during universe by passing in
the required CROSS_TOOLCHAIN setting which will in turn set
CROSS_BINUTILS_PREFIX correctly. It also ensures that a tinderbox build
uses the correct compiler for riscv. Previously it was using the shared
clang compiler instead of riscv64-gcc.

Reviewed by: bdrewery
Sponsored by: DARPA / AFRL
Differential Revision: https://reviews.freebsd.org/D16049


# 37e29448 27-Jun-2018 Devin Teske <dteske@FreeBSD.org>

Fix typo in top-level Makefile

Submitted by: Ben Widawsky <ben.widawsky@intel.com>
MFC after: 3 days
X-MFC-to: stable/11 stable/10
Sponsored by: Smule, Inc.
Differential Revision: https://reviews.freebsd.org/P186


# 01f124b4 27-Jun-2018 Bryan Drewery <bdrewery@FreeBSD.org>

tinderbox: Only build clang/lld once if needed.

Need to handle LLD_BOOTSTRAP separately (for archs like i386).
This would be much better off with an off-by-default option like
SHARED_TOOLCHAIN that universe force-enabled. Then a normal buildworld
would store the toolchain there if enabled and otherwise in WORLDTMP
with only the 1 arch selected.

MFC after: 3 weeks
Sponsored by: Dell EMC


# 58167238 27-Jun-2018 Bryan Drewery <bdrewery@FreeBSD.org>

tinderbox: Give details about kernel builds.

This is a bit noisy now but it was silent before leading to
wondering if it was doing anything.

MFC after: 1 week
Suggested by: rpokala
Sponsored by: Dell EMC


# d4060185 20-Jun-2018 Bryan Drewery <bdrewery@FreeBSD.org>

Only look for NOTES as needed.

Sponsored by: Dell EMC


# a7d84af8 20-Jun-2018 Bryan Drewery <bdrewery@FreeBSD.org>

Add WITH_SYSTEM_LINKER, on by default, that avoids building lld when possible.

This works similar to WITH_SYSTEM_COMPILER added in r300354. It only
supports lld via WITH_LLD_BOOTSTRAP.

When both SYSTEM_COMPILER and SYSTEM_LINKER logic passes then libclang
will not build in cross-tools. If either check fails though then
libclang is built.

The .info is reworked to notify when libclang will be built since if
either clang or lld needs to be rebuilt, but not the other, the
notification can lead to confusion on why "clang is building".

-fuse-ld= is not used with this method so some combinations of compiler
and linker are expected to fail.

A new 'make test-system-linker' target is added to see the logic results.

Makefile.inc1:
CROSS_BINUTILS_PREFIX support had to be moved higher up so that XLD
could be set and MK_LLD_BOOTSTRAP disabled before checking SYSTEM_LINKER
logic as done with SYSTEM_COMPILER. This also required moving where
bsd.linker.mk was read since XLD needs to be set before parsing it. This
creates a situation where src.opts.mk can not test LINKER_FEATURES or
add LLD_BOOTSTAP to BROKEN_OPTIONS.

Reviewed by: emaste (earlier version)
Sponsored by: Dell EMC
Differential Revision: https://reviews.freebsd.org/D15894


# ff3a8b34 24-May-2018 Ed Maste <emaste@FreeBSD.org>

Restore arm, riscv, sparc64, and mips to UNIVERSE after r334128


# e98bbcf9 23-May-2018 Matt Macy <mmacy@FreeBSD.org>

libpmcstat: compile in events based on json description


# e5646a62 04-May-2018 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2018e


# 87ec209e 26-Apr-2018 Ed Maste <emaste@FreeBSD.org>

Import ELF Tool Chain snapshot at r3614

From http://svn.code.sf.net/p/elftoolchain/code/


# 02be298e 27-Mar-2018 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.2o.


# 52b750c8 23-Mar-2018 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2018d


# 9d5beec1 03-Mar-2018 Bryan Drewery <bdrewery@FreeBSD.org>

Don't read SRC_ENV_CONF for MAKEOBJDIRPREFIX guard.

This is mostly to allow using MAKEOBJDIRPREFIX in src-env.conf on stable where
src.sys.obj.mk is not going to be MFC'd. It is still valid on head but
effectively a NOP due to MAKEOBJDIRPREFIX being handled differently in
src.sys.obj.mk.

Reported by: eadler
MFC after: 1 week
Sponsored by: Dell EMC


# 207efdb3 07-Feb-2018 Warner Losh <imp@FreeBSD.org>

Add a note about why we have the conditional before including
bsd.compiler.mk. It's so fmake from older 9.x systems still
works (still a supported build config, and having the note here
will let us know when we can cull it more easily).

Also pull in a related change from include to sinclude from
arichardson@'s cross building work, as well as it's companion in
Makefile.inc1 with a note about why we do the odd thing there.

Submitted by: archardson
Differential Revision: https://reviews.freebsd.org/D14241


# 95eff7c0 06-Feb-2018 Alex Richardson <arichardson@FreeBSD.org>

crossbuild: Make the CHECK_TIME variable work on Linux

Linux /usr/bin/find doesn't understand the -mtime -0s flag.
Instead create a temporary file and compare that file's mtime to
sys/sys/param.h to check whether the clock is correct.

Reviewed By: jhb, imp
Approved By: jhb (mentor)
Differential Revision: https://reviews.freebsd.org/D14157


# b6a2820b 23-Jan-2018 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2018c


# fd06f809 16-Jan-2018 Kyle Evans <kevans@FreeBSD.org>

Create vendor-sys/libfdt from libfdt in vendor/dtc

There are no plans at the moment to continue updating GPL dtc in the tree as
BSDL dtc is slowly replacing it.

We use libfdt in the kernel and loaders, so fork off the libfdt bits from
vendor/dtc into vendor-sys/libfdt rather than continuing to update
vendor/dtc when we have no intention of updating anything in userland as a
result of these imports.

This also leaves us with a vendor branch whose content has a consistent
license- the entirety of libfdt is dual license, GPL/BSD, although that was
not a primary concern.


# 6477c267 16-Jan-2018 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2018a


# 2f36e4ec 12-Jan-2018 Kyle Evans <kevans@FreeBSD.org>

Import dtc 1.4.6


# 4f94f84d 07-Dec-2017 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.2n.


# 1ccacaed 06-Dec-2017 Bryan Drewery <bdrewery@FreeBSD.org>

tinderbox/universe: Don't execute KERNCONFS lookup if not needed.

Sponsored by: Dell EMC


# 9ef3e71c 06-Dec-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Revert r325529: No longer needed after r325699.

Sponsored by: Dell EMC


# c07e635a 28-Nov-2017 Warner Losh <imp@FreeBSD.org>

Import Lua 3.5.4

Downloaded from https://www.lua.org/ftp/lua-5.3.4.tar.gz


# 573a3ef0 21-Nov-2017 Warner Losh <imp@FreeBSD.org>

Use TARGET_ARCH=riscv64 when TARGET=riscv

The supported targets are riscv64 and riscv64sf. Use the former when
building with a bare TARGET=riscv and it is the more common one.

Sponsored by: Netflix


# a7fa261e 18-Nov-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Move top-level AUTO_OBJ logic to Makefile.sys.inc.

Sponsored by: Dell


# 1cbb5888 17-Nov-2017 Warner Losh <imp@FreeBSD.org>

Remove build system support for lint.

Differential Revision: https://reviews.freebsd.org/D13124


# d7a699d3 13-Nov-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Rework r325568 so all 'make LINT' targets work.

Reported by: ngie
Sponsored by: Dell EMC Isilon


# d8d24cec 10-Nov-2017 Bryan Drewery <bdrewery@FreeBSD.org>

META_MODE: Avoid some logic if disabled and allow enabling with make argument.

Sponsored by: Dell EMC Isilon


# 58d86ed3 10-Nov-2017 Bryan Drewery <bdrewery@FreeBSD.org>

AUTO_OBJ: Disable in non-build targets.

There's no reason to create object directories for targets like 'installworld'
or 'distributeworld', and the others in this list. Specifying MK_AUTO_OBJ as a
make argument allows circumventing this if needed for some reason.

This fixes mergemaster creating a full object tree due to doing a 'make
installconfig' tree walk.

Reported by: Mark Millard
Sponsored by: Dell EMC Isilon


# 6555da9c 10-Nov-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Remove rerelease target that was added in r38978.

I'm not sure what this target is but it doesn't exist now and doesn't seem
to have existed before.

Sponsored by: Dell EMC Isilon


# 9cde684d 10-Nov-2017 Bryan Drewery <bdrewery@FreeBSD.org>

native-xtools: Fix for GCC archs.

- This also adds in a _cleanobj step as needed.
- This redirects TARGET/TARGET_ARCH to NXB_TARGET/NXB_TARGET_ARCH in
Makefile.inc1 as the main build needs to be for MACHINE rather
than TARGET.

First build the toolchain and then use that as an external toolchain
to build the needed directories and NXB_TARGET-toolchain, all as
MACHINE files though via TARGET_TRIPLE=MACHINE_TRIPLE.

The NXBDIRS is evaluated in the 'everything' submake as it needs to be
based on TARGET's src.opts.mk values, such as MK_GCC=yes when building
on a MK_CLANG=yes MACHINE. This can likely be changed to a specific
_native-xtools-everything target later and the funky late evaluation
of SUBDIR_OVERRIDE removed.

X-MFC-With: r325001
Pointyhat to: bdrewery
MFC after: 2 months
Sponsored by: Dell EMC Isilon


# faa5a80e 09-Nov-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Deal with src.conf for top-level MAKEOBJDIRPREFIX guard.

- Don't discard SRCCONF value since it may incorrectly have MAKEOBJDIRPREFIX
in it.
- Add note about src.conf not being a suitable place for MAKEOBJDIRPREFIX.

Sponsored by: Dell EMC Isilon


# 653667f9 09-Nov-2017 Baptiste Daroussin <bapt@FreeBSD.org>

import zstd 1.3.2


# 4556d079 08-Nov-2017 Bryan Drewery <bdrewery@FreeBSD.org>

universe: Fix creating LINT files with AUTO_OBJ.

These are expected to be created in .CURDIR.

Reported by: kib
Sponsored by: Dell EMC Isilon


# 1ca30d8e 07-Nov-2017 Bryan Drewery <bdrewery@FreeBSD.org>

AUTO_OBJ: Don't create TARGET. directories during 'make universe'.

Reported by: rpokala
Sponsored by: Dell EMC Isilon


# 2f4c7d14 04-Nov-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Simplify location of bootstrap make.

Sponsored by: Dell EMC Isilon


# 5fecb1f1 02-Nov-2017 Bryan Drewery <bdrewery@FreeBSD.org>

AUTO_OBJ is unsafe at the moment as it is for some reason removing /etc with _cleanobj.


# aee3a96e 02-Nov-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Something is very wrong


# b6a9311a 02-Nov-2017 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.2m.


# ade1697b 01-Nov-2017 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20171028

From ChangeLog

2017-10-28 Simon J. Gerraty <sjg@bad.crufty.net>

* VERSION: 20171028
Merge with NetBSD make, pick up
o main.c: ignore empty MAKEOBJDIR

* Makefile.config.in:
make @prefix@ @machine*@ and @default_sys_path@ defaults.

2017-10-05 Simon J. Gerraty <sjg@bad.crufty.net>

* VERSION: 20171005

* unit-tests/dotwait.mk: redirect stderr through pipe for more
consistent result on some platforms.

2017-08-13 Simon J. Gerraty <sjg@bad.crufty.net>

* machine.sh: entry for AIX

2017-08-12 Simon J. Gerraty <sjg@bad.crufty.net>

* VERSION (_MAKE_VERSION): Move the setting of _MAKE_VERSION
to a file that can be included by configure as well as make.
This allows configure to set set _MAKE_VERSION in make-bootstrap.sh

2017-08-10 Simon J. Gerraty <sjg@bad.crufty.net>

* Makefile (_MAKE_VERSION): 20170810
Merge with NetBSD make, pick up
o meta.c: if target is in subdir we only need subdir name in
meta_name.


# c10062b9 01-Nov-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Add a 'make cleanuniverse'.

This will remove all build files for the source directory
when MK_UNIFIED_OBJDIR is enabled.

Sponsored by: Dell EMC Isilon


# 051c25db 28-Oct-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Suggest TARGET/TARGET_ARCH, XDEV/XDEV_ARCH are depcrecated in r269031.

MFC after: 2 weeks
Sponsored by: Dell EMC Isilon


# 5bd47cc5 28-Oct-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Change native-xtools to not install by default; add a native-xtools-install.

Without this the user has to mess with 'make -f Makefile.inc1 ...' to figure
out where the files are installed in the OBJDIR and then they need to copy them
to where they really wanted them. Using DESTDIR may be problematic after
r325001 as well.

The files will be installed to DESTDIR/NXTP where NXTP defaults to /nxb-bin.

MFC after: 2 weeks
Sponsored by: Dell EMC Isilon


# 7441e255 28-Oct-2017 Bryan Drewery <bdrewery@FreeBSD.org>

build(7): Document native-xtools.

MFC after: 2 weeks
Sponsored by: Dell EMC Isilon


# 24830684 28-Oct-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Fix xdev TARGET/TARGET_ARCH assertion and expand to native-xtools.

The top of Makefile.inc1 requires TARGET/TARGET_ARCH be defined. Just
building 'make xdev' would already set them, so this error was never
triggered. Moving it to Makefile fixes the problem.

MFC after: 2 weeks
Sponsored by: Dell EMC Isilon


# bb3f65ea 28-Oct-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Disable AUTO_OBJ as a make argument to ensure it really is disabled.

If the user sets this to yes as a make argument too we still want
to ensure these do not get enabled.

Sponsored by: Dell EMC Isilon


# 5d3db21c 28-Oct-2017 Philip Paeps <philip@FreeBSD.org>

Import tzdata 2017c


# 98be9985 10-Oct-2017 Enji Cooper <ngie@FreeBSD.org>

Add appropriate safety belts for riscv so it compiles out of the box when MK_COVERAGE ==yes


# abba600e 06-Oct-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Import mandoc 1.14.3


# 0b972ac9 05-Oct-2017 Warner Losh <imp@FreeBSD.org>

Support armv7 builds for userland

Make armv7 as a new MACHINE_ARCH.

Copy all the places we do armv6 and add armv7 as basically an
alias. clang appears to generate code for armv7 by default. armv7 hard
float isn't supported by the the in-tree gcc, so it hasn't been
updated to have a new default.

Support armv7 as a new valid MACHINE_ARCH (and by extension
TARGET_ARCH).

Add armv7 to the universe build.

Differential Revision: https://reviews.freebsd.org/D12010


# 8c36b043 13-Sep-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

Import libedit 2017-09-05

Obtained from: NetBSD


# a0c1f53e 31-Aug-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Import ctfdump from OpenBSD (ISC license)

For now import it from my own github repository which is a fork
of mpi@OpenBSD's version for portability issues. This will be switched
to mpi's version once portability issues will have been addressed

Discussed with: mpi@
Obtained from: OpenBSD


# 902c8ce7 22-Aug-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Import zstd 1.3.1


# 96dd05dd 16-Aug-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Quote ${MAKE} when passing in env in case it contains spaces.

Downstream we are wrapping MAKE with a limits(1) call which
interferes with these non-quoted cases.

Sponsored by: Dell EMC Isilon


# 7709b2ae 12-Aug-2017 Warner Losh <imp@FreeBSD.org>

Make _TO_CPUARCH macro for ARCH to CPUARCH conversions

Consolidate all the regular expressions to convert from MACHINE_ARCH
to MACHINE_CPUARCH into a variable and use that variable in preference
to the almost identical copies in the tree (which should have been
identical).

Differential Revision: https://reviews.freebsd.org/D11986


# 75b6c55c 31-Jul-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Import mandoc 1.14.2


# 6d2909f6 26-Jul-2017 Ed Maste <emaste@FreeBSD.org>

genericize target exclusion for missing external toolchain

Previously we excluded riscv from make universe / tinderbox if the
required xtoolchain package was not installed. Make that logic generic
so that we can loop over multiple architectures, in preparation to test
patches to have other architectures rely on external toolchain.

Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D11652


# 99eedcd6 24-Jul-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Add some .ORDER for distrib-dirs, distribute, distribution and distributeworld.

Reported by: Mark Millard
MFC after: 2 weeks
Sponsored by: Dell EMC Isilon


# 56028c60 23-Jul-2017 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20170720

compat.c: pass SIGINT etc onto child and wait for it to exit
before we self-terminate.


# 7ef48313 15-Jul-2017 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20170711

Several misc cleanups, refactor main() to reduce size.
Adds -v option to always fully expand variables (only interesting to NetBSD)
And in particular (from ChangeLog):

o meta.c: ensure command output in meta file has ending newline
even when filemon not being used.
When matching ${.MAKE.META.IGNORE_PATTERNS} do not use
pathname via ':L' since any ':' in pathname breaks that.
Instead set a '${.p.}' to pathname in the target context and
use that.


# affe9eaf 14-Jul-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Import zstd 1.3.0


# f3f213a6 09-Jul-2017 Emmanuel Vadot <manu@FreeBSD.org>

Update the DTS file from Linux 4.12


# 275219cf 23-Jun-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Expose only the create-packages-* targets since they set needed DEST/DIRDIR.

The other targets just fail confusingly otherwise.

MFC after: 2 weeks
Sponsored by: Dell EMC Isilon


# e02aaf7b 23-Jun-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Allow ALWAYS_BOOTSTRAP_MAKE to force bmake bootstrapping.

MFC after: 2 weeks
Sponsored by: Dell EMC Isilon


# 7e2482d6 12-Jun-2017 Ian Lepore <ian@FreeBSD.org>

By popular demand: change MAKE_GENERIC_KERNELS to MAKE_LINT_KERNELS.

It appears that the same arches that lack GENERIC kernel configs also lack
LINT. But enough different arches get built to ensure a kernel change
should build everywhere (32 and 64 bit, clang and old gcc, little and big
endian).


# 1f14b5e4 12-Jun-2017 Ian Lepore <ian@FreeBSD.org>

Add support for "make universe_kernels -DMAKE_GENERIC_KERNELS" to build
just the GENERIC kernels for each arch (including variations such as
GENERIC-NODEBUG, GENERIC64, etc).

This helps with quickly doing a test build for all[*] arches without
building dozens of variant kernels for the arches that have lots of
hardware/board/system variations.

[*] Not all arches have a generic kernel (but they probably should for
test-building purposes, even if it can't boot on any real hardware).


# 7ad21139 08-Jun-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Import mandoc 2017-06-08


# 1a9cc831 04-Jun-2017 Bryan Drewery <bdrewery@FreeBSD.org>

META_MODE: Add framework to force rebuilding for major ABI changes.

Normally META_MODE ignores host files for "meta mode" decisions on whether a
file should be rebuilt or not. This is because a simple installworld can
update timestamps and cause the next build to rebuild all host tools, when the
previous ones may not have any changes in the source tree. These tools are
normally still ABI compatible. They are only rebuilt if NO_META_IGNORE_HOST is
set from the workaround/hack in r301467.

One of the major problems with this is when a host tool has objects spread
across many revisions that have mixed-ABI. For example, if struct stat were to
change on the host, some objects for a tool may have different ideas of that
struct's definition. If just 1 source file were modified and rebuilt and
linked into the tool, then that toll will have mixed-ABI objects and crash.
This exact thing happened with the ino64 commit in r301467 followed by a
trivial update to libbfd in r318750. The resulting binary would crash in
buildworld.

Sponsored by: Dell EMC Isilon


# 12df5ad9 25-May-2017 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.2l.


# 0b13d2e5 10-May-2017 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20170510


# ffcbc2d7 06-May-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Import Zstandard 1.2.0
Among changes: threading support is now default and supports freebsd


# f62a02334 20-Apr-2017 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20170420

Only use -C arg "as is" if it contains no relative component.
Fix Main_SetObjdir() for relative paths (eg obj).
Fix a number of coverity complaints.


# a19eddc3 15-Apr-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Import zstd 1.1.4


# 85813b0c 14-Apr-2017 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20170413


# 848d5e92 13-Apr-2017 Bryan Drewery <bdrewery@FreeBSD.org>

Cache compiler metadata and reuse it at installworld time.

Right after cross-tools, a compiler-metadata.mk file is created that
stores all of the bsd.compiler.mk metadata. It is then read in
with a fail-safe during installworld time.

The file is explicitly removed when invoking cross-tools to ensure that
a stale file is not left around from odd manual 'make _cross-tools' ->
'make installworld' invocations.

This fixes several issues:
- With WITH_SYSTEM_COMPILER (default yes on head and no on releng/11.0):
If you build on a system where the bootstrap compiler does not
build due to the host compiler matching the in-tree one, but then
installworld on another system where that logic fails (a
bootstrap compiler is needed), the installworld immediately fails
with:
sh: cc: not found
Note that fixing this logic may then hit a case where a rebuild is
attempted in installworld. Normally cc would be ran with
'CFLAGS+=ERROR-tried-to-rebuild-during-make-install' to cause an
error such as:
cc: error: no such file or directory: 'ERROR-tried-to-rebuild-during-make-install'
However, now it will just fail with the 'cc: not found' error.
Inspection of the compile line will show
'ERROR-tried-to-rebuild-during-make-install'; It's not useful to
set CC to anything other than 'cc' during install as it is more
helpful to see the attempted compile rather than some other bogus
error.
- This now avoids running bsd.compiler.mk (cc executions) even more
during installworld. There are compiler-dependent SUBDIR in the
tree which required having a compiler during install.

There is at least 1 case where CC is still executed in the install,
such as from a LOOKUP!= in secure/lib/libcrypto/Makefile.inc checking
for 'vzeroall' support. This is not significant for installworld
as the lookup has a fallback (and hides its error) and only modifies CFLAGS,
thus it's not worth fixing.

PR: 212877
MFC after: 2 weeks
Sponsored by: Dell EMC Isilon


# 6d7d1e1e 12-Apr-2017 Ruslan Bukin <br@FreeBSD.org>

Include RISC-V target to universe build.

Check if RISC-V external toolchain package is installed,
otherwise skip build.

Reviewed by: emaste
Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D10344


# 1b766820 08-Apr-2017 Ed Maste <emaste@FreeBSD.org>

Unconditionally include arm64 in make universe / tinderbox

As of r316629 FreeBSD/arm64 uses the in-tree LLD linker by default, and
does not require an external an aarch64-binutils port or package.

Sponsored by: The FreeBSD Foundation


# 896ba7c2 27-Mar-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Import tzdata 2017b


# f059bd1e 09-Mar-2017 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

Import dtc 1.4.3

Obtained from: https://www.kernel.org/pub/software/utils/dtc/dtc-1.4.3.tar.gz


# 60a7ffec 06-Mar-2017 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20170301


# 696a89ee 19-Feb-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Import mandoc 1.4.1rc2


# 70f1d4d7 30-Jan-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

Import libedit 2016-03-21

Obtained from: NetBSD


# ace5731a 29-Jan-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

Import openresolv 3.9.0

Obtained from: http://roy.marples.name/projects/openresolv


# 2b375b4e 27-Jan-2017 Yoshihiro Takahashi <nyan@FreeBSD.org>

Remove pc98 support completely.
I thank all developers and contributors for pc98.

Relnotes: yes


# 53151736 26-Jan-2017 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.2k.


# ef747657 21-Jan-2017 Baptiste Daroussin <bapt@FreeBSD.org>

Import mandoc cvs snapshot 20170121 (pre 1.14)


# 05949431 04-Jan-2017 Xin LI <delphij@FreeBSD.org>

Add missing files in zlib 1.2.8.


# 316d5882 02-Jan-2017 Dimitry Andric <dim@FreeBSD.org>

Vendor import of compiler-rt trunk r290819:
https://llvm.org/svn/llvm-project/compiler-rt/trunk@290819


# b9b4b0cc 19-Dec-2016 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20161212

From ChangeLog
2016-12-12 Simon J. Gerraty <sjg@bad.crufty.net>

* Makefile (_MAKE_VERSION): 20161212
Merge with NetBSD make, pick up
o main.c: look for obj.${MACHINE}-${MACHINE_ARCH} too.

2016-12-09 Simon J. Gerraty <sjg@bad.crufty.net>

* Makefile (_MAKE_VERSION): 20161209
Merge with NetBSD make, pick up
o main.c: cleanup setting of .OBJDIR
o parse.c: avoid coredump from (var)=val

2016-11-26 Simon J. Gerraty <sjg@bad.crufty.net>

* Makefile (_MAKE_VERSION): 20161126
Merge with NetBSD make, pick up
o make.c: Make_OODate: report src node name if path not set

2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net>

* Makefile (_MAKE_VERSION): 20160926
Merge with NetBSD make, pick up
o support for .DELETE_ON_ERROR: (remove targets that fail)

2016-09-26 Simon J. Gerraty <sjg@bad.crufty.net>

* Makefile MAN: tweak .Dt to match ${PROG}

mk/ChangeLog

2016-12-12 Simon J. Gerraty <sjg@bad.crufty.net>

* install-mk (MK_VERSION): 20161212

* meta2deps.py: set pid_cwd[pid] when we process 'C'hdir,
rather than when we detect pid change.

2016-12-07 Simon J. Gerraty <sjg@bad.crufty.net>

* install-mk (MK_VERSION): 20161207

* meta.stage.mk: add stage_as_and_symlink for staging packages.
We build foo.tgz stage_as foo-${VERSION}.tgz but want to be able
to use foo.tgz to reference the latest staged version - so we
make foo.tgz a symlink to it.
Using a target to do both operations ensures we stay in sync.

2016-11-26 Simon J. Gerraty <sjg@bad.crufty.net>

* install-mk (MK_VERSION): 20161126

* dirdeps.mk: set DIRDEPS_CACHE before we include local.dirdeps.mk
so it can add dependencies.

2016-10-10 Simon J. Gerraty <sjg@bad.crufty.net>

* dirdeps.mk: set DEP_* before we expand .MAKE.DEPENDFILE_PREFERENCE
do that they can influence the result correctly.

* dirdeps.mk (${DIRDEPS_CACHE}): make sure we pass on TARGET_SPEC

* dirdeps.mk: Add ONLY_TARGET_SPEC_LIST and NOT_TARGET_SPEC_LIST
similar to ONLY_MACHINE_LIST and NOT_MACHINE_LIST

2016-10-05 Simon J. Gerraty <sjg@bad.crufty.net>

* dirdeps.mk: remove dependence on jot (normal situations anyway).
Before we read another Makefile.depend* set DEP_* vars from
_DEP_TARGET_SPEC in case it uses any of them with :=
When bootstrapping, trim any ,* from extention of chosen _src
Makefile.depend* to get the machine value we subst for.

2016-09-30 Simon J. Gerraty <sjg@bad.crufty.net>

* dirdeps.mk: use TARGET_SPEC_VARS to qualify components added to
DEP_SKIP_DIR and DEP_DIRDEPS_FILTER

* sys.mk: extract some bits to sys.{debug,vars}.mk
for easier re-use by others.

2016-09-23 Simon Gerraty <sjg@sjg-mba13>

* lib.mk: Use ${PICO} for extension for PIC objects.
default to .pico (like NetBSD) safe on case insensitive filesystem.

2016-08-19 Simon J. Gerraty <sjg@bad.crufty.net>

* meta.sys.mk (META_COOKIE_TOUCH): use ${.OBJDIR}/${.TARGET:T} as default


# 2e0a58c9 04-Dec-2016 Baptiste Daroussin <bapt@FreeBSD.org>

Import tzdata 2016j


# 7804dd52 16-Nov-2016 Ruslan Bukin <br@FreeBSD.org>

Add full softfloat and hardfloat support for RISC-V.

Hardfloat is now default (use riscv64sf as TARGET_ARCH
for softfloat).

Sponsored by: DARPA, AFRL
Differential Revision: https://reviews.freebsd.org/D8529


# 8a1be49e 03-Nov-2016 Glen Barber <gjb@FreeBSD.org>

Import tzdata2016i.

Sponsored by: The FreeBSD Foundation


# 5bca2215 31-Oct-2016 Ruslan Bukin <br@FreeBSD.org>

Add full softfloat and hardfloat support for MIPS.

This adds new target architectures for hardfloat:
mipselhf mipshf mips64elhf mips64hf.

Tested in QEMU only.

Sponsored by: DARPA, AFRL
Sponsored by: HEIF5
Differential Revision: https://reviews.freebsd.org/D8376


# dc9b124d 21-Oct-2016 Justin Hibbits <jhibbits@FreeBSD.org>

Create a new MACHINE_ARCH for Freescale PowerPC e500v2

Summary:
The Freescale e500v2 PowerPC core does not use a standard FPU.
Instead, it uses a Signal Processing Engine (SPE)--a DSP-style vector processor
unit, which doubles as a FPU. The PowerPC SPE ABI is incompatible with the
stock powerpc ABI, so a new MACHINE_ARCH was created to deal with this.
Additionaly, the SPE opcodes overlap with Altivec, so these are mutually
exclusive. Taking advantage of this fact, a new file, powerpc/booke/spe.c, was
created with the same function set as in powerpc/powerpc/altivec.c, so it
becomes effectively a drop-in replacement. setjmp/longjmp were modified to save
the upper 32-bits of the now-64-bit GPRs (upper 32-bits are only accessible by
the SPE).

Note: This does _not_ support the SPE in the e500v1, as the e500v1 SPE does not
support double-precision floating point.

Also, without a new MACHINE_ARCH it would be impossible to provide binary
packages which utilize the SPE.

Additionally, no work has been done to support ports, work is needed for this.
This also means no newer gcc can yet be used. However, gcc's powerpc support
has been refactored which would make adding a powerpcspe-freebsd target very
easy.

Test Plan:
This was lightly tested on a RouterBoard RB800 and an AmigaOne A1222
(P1022-based) board, compiled against the new ABI. Base system utilities
(/bin/sh, /bin/ls, etc) still function appropriately, the system is able to boot
multiuser.

Reviewed By: bdrewery, imp
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D5683


# e656c34a 26-Sep-2016 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.2j.


# e1b48387 22-Sep-2016 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.2i.


# 5a194ab4 16-Sep-2016 Andrew Turner <andrew@FreeBSD.org>

Remove generated files that shouldn't have been added

Reported by: cognet
Sponsored by: The FreeBSD Foundation


# 16237819 16-Sep-2016 Andrew Turner <andrew@FreeBSD.org>

Import the Linaro Cortex Strings library from
https://git.linaro.org/toolchain/cortex-strings.git

Sponsored by: The FreeBSD Foundation


# cdfa59c8 08-Sep-2016 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20160818

Interesting changes:

o meta.c: move handling of .MAKE.META.IGNORE_* to meta_ignore()
so we can call it before adding entries to missingFiles.
Thus we do not track files we have been told to ignore.
o meta_oodate: apply .MAKE.META.IGNORE_FILTER (if defined) to
pathnames, and skip if the expansion is empty.
Useful for dirdeps.mk when checking DIRDEPS_CACHE.
o meta.c: remove all missingFiles entries that match a deleted
dir.
o main.c: set .ERROR_CMD if possible.


# 9e2f435f 31-Aug-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Add a 'make print-dir' that simply traverses all directories and prints them.

This is useful for finding connected directories.

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


# c8de0c57 12-Aug-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Avoid showing the bootstrap make command for check-old, etc.

Reported by: koobs
MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


# 014db25b 11-Aug-2016 Enji Cooper <ngie@FreeBSD.org>

Update ^/vendor/NetBSD/tests/dist to a more recent snapshot

Pulled on "Thu Aug 11 18:01:19 PDT 2016"


# 6597f1f8 08-Aug-2016 Bryan Drewery <bdrewery@FreeBSD.org>

make world: Allow installworld to be ran in parallel.

This has been safe for a while.

Sponsored by: EMC / Isilon Storage Division


# b17f5b22 24-Jul-2016 Bryan Drewery <bdrewery@FreeBSD.org>

SYSTEM_COMPILER: Rework the logic to allow a 'make test-system-compiler'.

1. Always calculate what the expected values are.
2. Add 'make test-system-compiler' to show all of the computed values
vs the wanted values.
3. Extend the .info line to buildkernel/kernel-toolchain/toolchain/_cross-tools.
4. Consolidate all of the logic to one condition.

MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division


# f3fbd1c0 23-Jul-2016 Dimitry Andric <dim@FreeBSD.org>

Vendor import of lldb release_39 branch r276489:
https://llvm.org/svn/llvm-project/lldb/branches/release_39@276489


# 51072bd6 23-Jul-2016 Dimitry Andric <dim@FreeBSD.org>

Vendor import of libc++ release_39 branch r276489:
https://llvm.org/svn/llvm-project/libcxx/branches/release_39@276489


# 2b6b257f 23-Jul-2016 Dimitry Andric <dim@FreeBSD.org>

Vendor import of clang release_39 branch r276489:
https://llvm.org/svn/llvm-project/cfe/branches/release_39@276489


# 01095a5d 23-Jul-2016 Dimitry Andric <dim@FreeBSD.org>

Vendor import of llvm release_39 branch r276489:
https://llvm.org/svn/llvm-project/llvm/branches/release_39@276489


# 05798824 23-Jul-2016 Baptiste Daroussin <bapt@FreeBSD.org>

Update to mdocml 1.13.4


# b987685f 12-Jul-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Revert r302670 and r302671 for now.

MACHINE_CPUARCH smells like MACHINE except for arm64/aarch64 which
has it backwards.


# 8a6bdc13 12-Jul-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Create one list of replacements for MACHINE_CPUARCH as MACHINE_CPUARCH_SUB.

This also adds missing s/aarch64/arm64 to the sys.mk version and also
adds back armv6hf for universe since it was added to the sys.mk version
in r300438.

MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division
Differential Revision: https://reviews.freebsd.org/D7159


# e5bf62aa 22-Jun-2016 Bryan Drewery <bdrewery@FreeBSD.org>

WITH_META_MODE: Whitelist 'make kernel-toolchain'

Approved by: re (blanket, META_MODE)
Sponsored by: EMC / Isilon Storage Division


# 9c8809d7 21-Jun-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Fix top-level builds with fmake / 9.x.

Reported by: allanjude
Approved by: re (marius)
Sponsored by: EMC / Isilon Storage Division


# 8f8c2477 15-Jun-2016 Bryan Drewery <bdrewery@FreeBSD.org>

WITH_META_MODE: Whitelist 'make kernel' and 'make world'.

installkernel is technically META_MODE safe but doesn't need an explicit
approval to use it since it's all disabled via .PHONY.

world uses 'make -B installworld' which already will disable META_MODE
via the -B (.MAKE.MODE=compat) usage.

Approved by: re (implicit)
Sponsored by: EMC / Isilon Storage Division


# d9760718 15-Jun-2016 Bryan Drewery <bdrewery@FreeBSD.org>

tinderbox/universe: Only show arm64 warning if it was in the TARGETS list.

This was a flaw in my change in r287903 but also in the original change
in r282156 since it used empty(${TARGETS}) rather than empty(TARGETS).

Reported by: lidl
Approved by: re (gjb)
Sponsored by: EMC / Isilon Storage Division


# 3a3594e5 14-Jun-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Fix makeman showing dependency of DIRDEPS_BUILD->META_MODE.

This broke in r301887 with the meta mode whitelist. 'make showconfig'
still needs WITH_META_MODE support.

Approved by: re (implicit)
Sponsored by: EMC / Isilon Storage Division


# b6d5c4f5 14-Jun-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Fix build from stable/10 with fmake.

This was broken in r301888.

fmake does not look in share/mk by default and thus does not yet
have MK_META_MODE set with default.

Pointyhat to: bdrewery
Approved by: re (implicit)
Sponsored by: EMC / Isilon Storage Division


# b8ef21b8 14-Jun-2016 Bryan Drewery <bdrewery@FreeBSD.org>

WITH_META_MODE: Lessen the filemon(4) requirement scope.

- Move the sys.mk filemon requirement to bsd.init.mk as a warning.
This is intended only to show when building directly in a subdirectory
without filemon loaded.
- Move the error into Makefile and only apply it when building
from the META_TGT_WHITELIST target list.

-DNO_FILEMON can be used to suppress both the warning and the error but
makes WITH_META_MODE less useful. It will only compare build commands
in this mode rather than track all dependencies.

This fixes installing from a jail which doesn't need filemon in this
phase [1].

Reported by: Nikolai Lifanov <lifanov@mail.lifanov.com> [1]
Approved by: re (implicit)
Sponsored by: EMC / Isilon Storage Division


# 2c6fc926 14-Jun-2016 Bryan Drewery <bdrewery@FreeBSD.org>

WITH_META_MODE: Whitelist targets that are meta-mode-safe.

META_TGT_WHITELIST is added to define which build targets are safe for
meta mode. See comments for more details.

This fixes 'make delete-old-libs' to properly show the interactive
prompt.

Approved by: re (implicit)
Sponsored by: EMC / Isilon Storage Division


# 341d14b4 14-Jun-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Add more missing .PHONY

Approved by: re (implicit)
Sponsored by: EMC / Isilon Storage Division


# 43830b3b 09-Jun-2016 Dag-Erling Smørgrav <des@FreeBSD.org>

upstream hg 0289cde234a0


# e6b08231 08-Jun-2016 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20160606

From ChangeLog:

o dir.c: extend mtimes cache to others via cached_stat()


# 6f4b2e7f 05-Jun-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Only include bsd.compiler.mk for bmakes that use -m .../share/mk by default.

Otherwise they error when trying to include the file, which also has
its own dependencies.

Sponsored by: EMC / Isilon Storage Division


# 3681768c 05-Jun-2016 Bryan Drewery <bdrewery@FreeBSD.org>

WITH_META_MODE: Enable bmake's missing meta rebuild feature


# bd246467 05-Jun-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Fix bmake version upgrade logic to use the new bmake.

Otherwise it was only used on the next build.

This was a flaw in r295980.

MFC after: 3 days
Sponsored by: EMC / Isilon Storage Division


# e944e081 05-Jun-2016 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20160604

Interesting items from ChangeLog:

o cached_realpath(): avoid hitting filesystem more than necessary.
o meta.c: refactor need_meta decision, add knobs for
missing meta file and filemon data wrt out-of-datedness.
o meta.c: missing filemon data is only relevant if we read a
meta file.
Also do not return oodate for a missing metafile if gn->path
points to .CURDIR


# df0cfa3b 01-Jun-2016 Kurt Lidl <lidl@FreeBSD.org>

Reviewed by: rpaulo
Approved by: rpaulo
Obtained from: NetBSD external/bsd/blacklist @ 20160409
Relnotes: YES
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D5912


# 205b961b 27-May-2016 Peter Grehan <grehan@FreeBSD.org>

Initial bhyve native graphics support.

This adds emulations for a raw framebuffer device, PS2 keyboard/mouse,
XHCI USB controller and a USB tablet.

A simple VNC server is provided for keyboard/mouse input, and graphics
output.

A VGA emulation is included, but is currently disconnected until an
additional bhyve change to block out VGA memory is committed.

Credits:
- raw framebuffer, VNC server, XHCI controller, USB bus/device emulation
and UEFI f/w support by Leon Dang
- VGA, console/g, initial VNC server by tychon@
- PS2 keyboard/mouse jointly done by tychon@ and Leon Dang
- hypervisor framebuffer mem support by neel@

Tested by: Michael Dexter, in a number of revisions of this code.

With the appropriate UEFI image, FreeBSD, Windows and Linux guests can
installed and run in graphics mode using the UEFI/GOP framebuffer.


# 361da738 27-May-2016 Peter Grehan <grehan@FreeBSD.org>

Create branch for bhyve graphics import.


# e917534a 20-May-2016 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20160512

Interesting changes (from ChangeLog):
o meta.c: ignore paths that match .MAKE.META.IGNORE_PATTERNS
this is useful for gcov builds.
o propagate errors from filemon(4).
o meta.c: apply realpath() before matching against metaIgnorePaths
o allow makefile to set .MAKE.JOBS


# 2c0e9e2a 18-May-2016 Warner Losh <imp@FreeBSD.org>

Make armv6 hard float abi by default. Kill armv6hf.
Allow CPUTYPE=soft to build the current soft-float abi libraries.
Add UPDATING entry to announce this.

Approved by: re@ (gjb)


# 57f1256b 03-May-2016 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.2h.


# f62610d7 18-Apr-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Follow-up r298220: Don't pass down META_MODE which will still enable it.

Reported by: Nikolai Lifanov <lifanov@mail.lifanov.com>
Sponsored by: EMC / Isilon Storage Division


# d7698c07 18-Apr-2016 Bryan Drewery <bdrewery@FreeBSD.org>

META_MODE: Disable during installworld and similar.

META_MODE may create cookies during staging of files to WORLDTMP that would
also prevent installation of the files to the final DESTDIR, since the cookie
already exists. This is not yet the case but will be soon. Prevent other
similar issues by disabling META_MODE for any top-level install targets.

Sponsored by: EMC / Isilon Storage Division


# 4fc7e3db 17-Apr-2016 Pedro F. Giffuni <pfg@FreeBSD.org>

Import openresolv 3.8.0

Obtained from: http://roy.marples.name/projects/openresolv


# a561b106 14-Apr-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Mark some more .PHONY targets.

Sponsored by: EMC / Isilon Storage Division


# 9b8f7eaf 14-Apr-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Define the *soft targets properly.

Sponsored by: EMC / Isilon Storage Division


# 497e8091 30-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Remove the old depend (mkdep) code and make FAST_DEPEND the one true way.

Reviewed by: emaste, hselasky (partial), brooks (brief)
Discussed on: arch@
Sponsored by: EMC / Isilon Storage Division
Differential Revision: https://reviews.freebsd.org/D5742


# b7ff84ad 18-Mar-2016 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20160315


# bb52d711 12-Mar-2016 Warner Losh <imp@FreeBSD.org>

Use the newly minted Makefile.libcompat to implement libsoft libraries
for the armv6 ABI switch. This also make WITH_LIBSOFT functional on
the arm platform. As a transition thing, this seems to work even
without switching the ABI (we basically build the same libraries
twice when MK_LIBSOFT=yes until the ABI cut over next
month). MK_LIBSOFT remains default no.


# dfb898be 11-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Avoid MK_TESTS error on stable/10 by just preventing SUBDIR recursion.


# abaf3e4e 11-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Avoid bmake upgrade NO_MAN warning by just setting MAN to empty.

Suggested by: imp


# 7b526e77 11-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Revert r296645 as it breaks stable/10->head builds.


# e32a2cbe 10-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

FAST_DEPEND: Use .dinclude to enable full .depend logic in bmake.

The inclusion of .MAKE.DEPENDFILE (.depend) has special logic in make
to ignore stale/missing dependencies. bmake 20160220 added a '.dinclude'
directive that uses the special logic for .depend when including the file.

This fixes a build error when a file is moved or deleted that exists in a
.depend.OBJ file. This happened in r292782 when sha512c.c "moved" and an
incremental build of lib/libmd would fail with:
make: don't know how to make /usr/src/lib/libcrypt/../libmd/sha512c.c. Stop

Now this will just be seen as a stale dependency and cause a rebuild:
make: /usr/obj/usr/src/lib/libmd/.depend.sha512c.o, 13: ignoring stale .depend for /usr/src/lib/libcrypt/../libmd/sha512c.c
--- sha512c.o ---
...
This rebuild will only be done once since the .depend.sha512c.o will
be updated on the build with the -MF flags.

This also removes -MP being passed for the .depend.OBJ generation (which
would create fake targets for system headers) since the logic is no
longer needed to protect from missing files.

Sponsored by: EMC / Isilon Storage Division


# b88b2327 10-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Fix bmake upgrade NO_MAN warnings.

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


# 12529798 10-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Fix make -n upgrade_checks.

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


# d58aa195 10-Mar-2016 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20160307


# 0481f785 08-Mar-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Don't ever create object directories here with MK_AUTO_OBJ.

Sponsored by: EMC / Isilon Storage Division


# 9aeed18a 01-Mar-2016 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.2g.


# 6baa733d 28-Feb-2016 Pedro F. Giffuni <pfg@FreeBSD.org>

Import openresolv 3.7.3

Obtained from: http://roy.marples.name/projects/openresolv


# 4593a7cd 28-Feb-2016 Pedro F. Giffuni <pfg@FreeBSD.org>

Import libedit 2016-02-27

Obtained from: NetBSD


# 89660f21 24-Feb-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Add order for installworld/installkernel.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# 22944b41 24-Feb-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Support a WANT_MAKE_VERSION.

This will be used soon for .dinclude support in FAST_DEPEND.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# 3a3f435f 23-Feb-2016 Glen Barber <gjb@FreeBSD.org>

Include a 'package-pkg' target, intended for use for
architectures we do not provide upstream pkg(8) packages.

This is not tied to anything as-is, and likely will break
your system if used (based on experience with testing with
powerpc).

There is an overwhelming amount of evil happening here,
so until the issues are fixed, it will not be tied into the
'packages' target.

Sponsored by: The FreeBSD Foundation


# 2fc5d2d1 13-Feb-2016 Dimitry Andric <dim@FreeBSD.org>

Vendor import of lldb release_38 branch r260756:
https://llvm.org/svn/llvm-project/lldb/branches/release_38@260756


# 888a1820 10-Feb-2016 Ed Maste <emaste@FreeBSD.org>

Import ELF Tool Chain snapshot revision 3395

This is close to the upcoming 0.7.1 release.

From http://svn.code.sf.net/p/elftoolchain/code


# d29df4d0 09-Feb-2016 Baptiste Daroussin <bapt@FreeBSD.org>

Fix make universe when running with non POSIX/C locales using a locale sensitive
pattern

Reported by: many
Submitted by: jilles


# a5395435 09-Feb-2016 Glen Barber <gjb@FreeBSD.org>

Add logic to rotate the package repository, keyed on PKG_VERSION,
and create a 'latest' symlink to the PKG_VERSION repository path.

Suggested by: des
Sponsored by: The FreeBSD Foundation


# ea85204f 08-Feb-2016 Dag-Erling Smørgrav <des@FreeBSD.org>

Rename the signpackages target to sign-packages, and include it in the
packages meta-target so 'make packages' now does everything.


# ee1627c4 08-Feb-2016 Dag-Erling Smørgrav <des@FreeBSD.org>

Split the packages target into stage-packages and create-packages to make
it possible to roll new packages from an existing build without having to
restage them.


# 71b7fa12 07-Feb-2016 Enji Cooper <ngie@FreeBSD.org>

Simplify running the FreeBSD test suite

Replace `make regress` (legacy test make target) and `make test` (incomplete
test make target added with the FreeBSD test suite) with make check as it's
consistent with other open source projects.

`make check` defaults to running tests from `.OBJDIR`, but can be overridden
with the `CHECKDIR` variable.

Add `make checkworld` target to simplify running the FreeBSD test suite from
`TESTSBASE` (i.e. the top-level tests directory), similar to buildworld.

Document `make check` and `make checkworld` in build(7).

Other minor changes:

- Rename intermediate file (`Kyuafile.auto`) to `Kyuafile` to simplify
`make check`.
- Remove terse warnings attached to `beforetest`/`aftertest`.
- Add kyua binary check to check target in suite.test.mk; error out if it's
not found

The MFC is [partly] contingent on other build related changes being MFCed.

Differential Revision: https://reviews.freebsd.org/D4406
MFC after: 2 months
X-MFC to: stable/10
Relnotes: yes
Reviewed by: bdrewery, Evan Cramer <eccramer@gmail.com>
Sponsored by: EMC / Isilon Storage Division


# c729c396 06-Feb-2016 Pedro F. Giffuni <pfg@FreeBSD.org>

Import libedit 2016-01-16

Obtained from: NetBSD


# 83b79794 02-Feb-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Add order for installworld/distribution.

Sponsored by: EMC / Isilon Storage Division


# 4ad86760 31-Jan-2016 Pedro F. Giffuni <pfg@FreeBSD.org>

Import openresolv 3.7.2

Obtained from: http://roy.marples.name/projects/openresolv


# 94d8b152 31-Jan-2016 Ian Lepore <ian@FreeBSD.org>

Add make universe targets "kernels" and "worlds".

"make kernels" is now shorthand for "make universe -DMAKE_JUST_KERNELS"
"make worlds" is now shorthand for "make universe -DMAKE_JUST_WORLDS"

The kernels target includes modules (unless you add -DNO_MODULES).

And of course you can still add all the other universe options, such as
"make kernels TARGETS=arm" to build kernels for all arm arches, or
TARGET_ARCH=armv6 to build all armv6 kernels, etc.

Reviewed by: imp


# c188d4ca 28-Jan-2016 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.2f.


# 3d98f473 27-Jan-2016 Glen Barber <gjb@FreeBSD.org>

Add 'stagekernel' target, which invokes 'distributekernel'
with -DNO_ROOT to create the METALOG mtree(8) file.

Separate the default STAGEDIR for world (WSTAGEDIR) and kernel
(KSTAGEDIR).

Fix the 'create-kernel-packages' target to work properly.

Evaluate if 'kernel' is set when invoking mtree-to-plist.awk,
which splits the kernel and kernel.debug into separate plist
files.

Fix METALOG creation when building/packaging multiple kernels.

Sponsored by: The FreeBSD Foundation


# d46f0432 25-Jan-2016 Glen Barber <gjb@FreeBSD.org>

Add a 'signpackages' target, which creates the pkg repository
metadata files and uses the path of PKGSIGNKEY for signing,
if set.

Sponsored by: The FreeBSD Foundation


# ca083421 15-Jan-2016 Baptiste Daroussin <bapt@FreeBSD.org>

Import mdocml CVS snapshot 20160116


# 63c612de 07-Jan-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Always try to upgrade to bmake if not already using it.

This is mostly targetting stable/10 which requires bmake to build and
has issues upgrading from <10.

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division
PR: 198062


# 0e87e3cb 06-Jan-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Revert r293286. It was not intended to come in yet.


# 3ba0785a 06-Jan-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Move the MAKEOBJDIRPREFIX value guard to sys.mk and expand to MAKEOBJDIR.

This will ensure that the variable was not set as a make override, in
make.conf, src.conf or src-env.conf. It allows setting the value in
src-env.conf when using WITH_AUTO_OBJ since that case properly handles
changing .OBJDIR (except if MAKEOBJDIRPREFIX does not yet exist which is
being discussed to be changed).

This change allows setting a default MAKEOBJDIRPREFIX via local.sys.env.mk.

Sponsored by: EMC / Isilon Storage Division


# 9e6d3549 06-Jan-2016 Dimitry Andric <dim@FreeBSD.org>

Vendor import of lldb trunk r256945:
https://llvm.org/svn/llvm-project/lldb/trunk@256945


# 5a5c549f 30-Dec-2015 Dimitry Andric <dim@FreeBSD.org>

Vendor import of lld trunk r256633:
https://llvm.org/svn/llvm-project/lld/trunk@256633


# 45b53394 30-Dec-2015 Dimitry Andric <dim@FreeBSD.org>

Vendor import of clang trunk r256633:
https://llvm.org/svn/llvm-project/cfe/trunk@256633


# 6c770d66 25-Dec-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20151220


# 43aa90e5 14-Dec-2015 Ed Maste <emaste@FreeBSD.org>

Update advice on obj disk space requirements

The Makefile is not the best place for this information, but at least it
is now less out of date.


# 1fdcc5e5 11-Dec-2015 Ruslan Bukin <br@FreeBSD.org>

Start support for the RISC-V 64-bit architecture developed by UC Berkeley.

RISC-V is a new ISA designed to support computer research and education, and
is now become a standard open architecture for industry implementations.

This is a minimal set of changes required to run 'make kernel-toolchain'
using external (GNU) toolchain.

The FreeBSD/RISC-V project home: https://wiki.freebsd.org/riscv.

Reviewed by: andrew, bdrewery, emaste, imp
Sponsored by: DARPA, AFRL
Sponsored by: HEIF5
Differential Revision: https://reviews.freebsd.org/D4445


# 7c6c27a0 07-Dec-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20151201


# 737d7e8d 03-Dec-2015 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.2e.


# b67490a3 01-Dec-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Fix errors being ignored in many phases of the build since the bmake integration.

Say it with me, "I will not chain commands with && in Makefiles"

This was originally fixed and explained quite well by bde@ in r36074. The
initial bmake integration caused 'set -e' to stop being used which lead to
r252419. Later 'set -e' expectations were fixed with bmake in r254980.

Because of the && here, errors would be ignored when building in parallel and
a dependency failed. Such as bootstrap-tools since it builds everything in
parallel. If any tool failed in obj/depend/all, it would just ignore the error
and continue to build. This later would result in cascaded errors that only
confused the real issue. This could also cause commands after the failed
command to still execute, leading to more confusion.

This should be fine if the command is in a sub-shell such as: (cmd1 && cmd2)

This reverts r252419.

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


# 948f327e 13-Nov-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Rename META_MODE option to DIRDEPS_BUILD

This allows META_FILES option to be renamed META_MODE.
Also add META_COOKIE_TOUCH for use in targets that can benefit
from a cookie when in meta mode.

Differential Revision: https://reviews.freebsd.org/D4153
Reviewed by: bdrewery


# 2753ba1a 09-Nov-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Move 'make cleandir' from Makefile to Makefile.inc1.

This leads the way for fixing cross-build cleanup, and eventually replacing
'cleandir' with it during the build.

Sponsored by: EMC / Isilon Storage Division
MFC after: 2 weeks


# 9160419c 07-Nov-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Add built-in ccache build support via WITH_CCACHE_BUILD option.

ccache is mostly beneficial for frequent builds where -DNO_CLEAN is not
used to achieve a safe pseudo-incremental build. This is explained in
more detail upstream [1] [2]. It incurs about a 20%-28% hit to populate the
cache, but with a full cache saves 30-50% in build times. When combined with
the WITH_FAST_DEPEND feature it saves up to 65% since ccache does cache the
resulting dependency file, which it does not do when using mkdep(1)/'CC
-E'. Stats are provided at the end of this message.

This removes the need to modify /etc/make.conf with the CC:= and CXX:=
lines which conflicted with external compiler support [3] (causing the
bootstrap compiler to not be built which lead to obscure failures [4]),
incorrectly invoked ccache in various stages, required CCACHE_CPP2 to avoid
Clang errors with parenthesis, and did not work with META_MODE.

The option name was picked to match the existing option in ports. This
feature is available for both in-src and out-of-src builds that use
/usr/share/mk.

Linking, assembly compiles, and pre-processing avoid using ccache since it is
only overhead. ccache does nothing special in these modes, although there is
no harm in calling it for them.

CCACHE_COMPILERCHECK is set to 'content' when using the in-tree bootstrap
compiler to hash the content of the compiler binary to determine if it
should be a cache miss. For external compilers the 'mtime' option is used
as it is more efficient and likely to be correct. Future work may optimize the
'content' check using the same checks as whether a bootstrap compiler is needed
to be built.

The CCACHE_CPP2 pessimization is currently default in our devel/ccache
port due to Clang requiring it. Clang's -Wparentheses-equality,
-Wtautological-compare, and -Wself-assign warnings do not mix well with
compiling already-pre-processed code that may have expanded macros that
trigger the warnings. GCC has so far not had this issue so it is allowed to
disable the CCACHE_CPP2 default in our port.

Sharing a cache between multiple checkouts, or systems, is explained in
the ccache manual. Sharing a cache over NFS would likely not be worth
it, but syncing cache directories between systems may be useful for an
organization. There is also a memcached backend available [5]. Due to using
an object directory outside of the source directory though you will need to
ensure that both are in the same prefix and all users use the same layout. A
possible working layout is as follows:
Source: /some/prefix/src1
Source: /some/prefix/src2
Source: /some/prefix/src3
Objdir: /some/prefix/obj
Environment: CCACHE_BASEDIR='${SRCTOP:H}' MAKEOBJDIRPREFIX='${SRCTOP:H}/obj'
This will use src*/../obj as the MAKEOBJDIRPREFIX and tells ccache to replace
all absolute paths to be relative. Using something like this is required due
to -I and -o flags containing both SRC and OBJDIR absolute paths that ccache
adds into its hash for the object without CCACHE_BASEDIR.

distcc can be hooked into by setting CCACHE_PREFIX=/usr/local/bin/distcc.
I have not personally tested this and assume it will not mix well with
using the bootstrap compiler.

The cache from buildworld can be reused in a subdir by first running
'make buildenv' (from r290424).

Note that the cache is currently different depending on whether -j is
used or not due to ccache enabling -fdiagnostics-color automatically if
stderr is a TTY, which bmake only does if not using -j.

The system I used for testing was:
WITNESS
Build options: -j20 WITH_LLDB=yes WITH_DEBUG_FILES=yes WITH_CCACHE_BUILD=yes
DISK: ZFS 3-way mirror with very slow disks using SSD l2arc/log.
The arc was fully populated with src tree files and ccache objects.
RAM: 76GiB
CPU: Intel(R) Xeon(R) CPU L5520 @2.27GHz
2 package(s) x 4 core(s) x 2 SMT threads = hw.ncpu=16

The WITH_FAST_DEPEND feature was used for comparison here as well to show
the dramatic time savings with a full cache.

buildworld:
x buildworld-before
+ buildworld-ccache-empty
* buildworld-ccache-full
% buildworld-ccache-full-fastdep
# buildworld-fastdep
+-------------------------------------------------------------------------------+
|% * # +|
|% * # +|
|% * # xxx +|
| |A |
| A|
| A |
|A |
| A |
+-------------------------------------------------------------------------------+
N Min Max Median Avg Stddev
x 3 3744.13 3794.31 3752.25 3763.5633 26.935139
+ 3 4519 4525.04 4520.73 4521.59 3.1104823
Difference at 95.0% confidence
758.027 +/- 43.4565
20.1412% +/- 1.15466%
(Student's t, pooled s = 19.1726)
* 3 1823.08 1827.2 1825.62 1825.3 2.0785572
Difference at 95.0% confidence
-1938.26 +/- 43.298
-51.5007% +/- 1.15045%
(Student's t, pooled s = 19.1026)
% 3 1266.96 1279.37 1270.47 1272.2667 6.3971113
Difference at 95.0% confidence
-2491.3 +/- 44.3704
-66.1952% +/- 1.17895%
(Student's t, pooled s = 19.5758)
# 3 3153.34 3155.16 3154.2 3154.2333 0.91045776
Difference at 95.0% confidence
-609.33 +/- 43.1943
-16.1902% +/- 1.1477%
(Student's t, pooled s = 19.0569)

buildkernel:
x buildkernel-before
+ buildkernel-ccache-empty
* buildkernel-ccache-empty-fastdep
% buildkernel-ccache-full
# buildkernel-ccache-full-fastdep
@ buildkernel-fastdep
+-------------------------------------------------------------------------------+
|# @ % * |
|# @ % * x + |
|# @ % * xx ++|
| MA |
| MA|
| A |
| A |
|A |
| A |
+-------------------------------------------------------------------------------+
N Min Max Median Avg Stddev
x 3 571.57 573.94 571.79 572.43333 1.3094401
+ 3 727.97 731.91 728.06 729.31333 2.2492295
Difference at 95.0% confidence
156.88 +/- 4.17129
27.4058% +/- 0.728695%
(Student's t, pooled s = 1.84034)
* 3 527.1 528.29 528.08 527.82333 0.63516402
Difference at 95.0% confidence
-44.61 +/- 2.33254
-7.79305% +/- 0.407478%
(Student's t, pooled s = 1.02909)
% 3 400.4 401.05 400.62 400.69 0.3306055
Difference at 95.0% confidence
-171.743 +/- 2.16453
-30.0023% +/- 0.378128%
(Student's t, pooled s = 0.954969)
# 3 201.94 203.34 202.28 202.52 0.73020545
Difference at 95.0% confidence
-369.913 +/- 2.40293
-64.6212% +/- 0.419774%
(Student's t, pooled s = 1.06015)
@ 3 369.12 370.57 369.3 369.66333 0.79033748
Difference at 95.0% confidence
-202.77 +/- 2.45131
-35.4225% +/- 0.428227%
(Student's t, pooled s = 1.0815)

[1] https://ccache.samba.org/performance.html
[2] http://www.mail-archive.com/ccache@lists.samba.org/msg00576.html
[3] https://reviews.freebsd.org/D3484
[5] https://github.com/jrosdahl/ccache/pull/30

PR: 182944 [4]
MFC after: 3 weeks
Sponsored by: EMC / Isilon Storage Division
Relnotes: yes


# e9fcefce 23-Oct-2015 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.2d.


# ce40971c 21-Oct-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20151020


# 56585ab5 17-Oct-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Rework the 'make -n -n' feature such that '-n' recurses and '-N' does not.

Bmake has a documented feature of '-N' to skip executing commands which is
specifically intended for debugging top-level builds and not recursing into
sub-directories. This matches the older 'make -n' behavior we added which made
'-n -n' the recursing target and '-n' a non-recursing target.

Removing the '-n -n' feature allows the build to work as documented in
the bmake manpage with '-n' and '-N'. The older '-n -n' feature was also
not documented anywhere that I could see.

Note that the ${_+_} var is still needed as currently bmake incorrectly
executes '+' commands when '-N' is specified.

The '-n' and '-n -n' features were broken for several reasons prior to this.
r251748 made '_+_' never expand with '-n -n' which resulted in many
sub-directories not being visited until fixed 2 years later in r288391, and
many targets were given .MAKE over the past few years which resulted in
non-sub-make commands, such as rm and ln and mtree, to be executed.

This should also allow removing some indirection hacks in bsd.subdir.mk and
other cases of .USE that have a .MAKE by using '+'.

Sponsored by: EMC / Isilon Storage Division
Discussed on: arch@ (mostly silence)


# e07b2be5 16-Oct-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Tweak the guard more to suggest 'all' if SUBDIR_OVERRIDE is specified. In that
case 'all' does make sense.

MFC after: 2 weeks
X-MFC-With: r289411
Sponsored by: EMC / Isilon Storage Division


# 824f98d3 15-Oct-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Tweak the default target to not suggest 'all' since it really doesn't do
anything useful for most users.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# ba831a2c 14-Oct-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Consider top-level targets to be .PHONY as bmake won't build them
otherwise if a file with the same name is found in the directory.

MFC after: 1 week
Sponsored by: EMC / Isilon Storage Division


# 2bcf1d42 09-Oct-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Add installconfig as a top level target


# fa5e9cbb 29-Sep-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Fix the .MAKE added in r251750 to properly support the historical -n -n.

The condition used matches the condition in sys.mk for setting _+_ to blank
or +.

With this -n will continue to not descend into Makefile.inc1, while -n -n will
and cause Makefile.inc1's target to run with -n.

MFC after: 2 weeks
Sponsored by: EMC / Isilon Storage Division


# a87f765b 16-Sep-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Rework r287900 to keep arm64/aarch64 stable in the TARGETS list.

This is relevant for makeman using the 'make targets' output in src.conf(5).

This makes a _UNIVERSE_TARGETS that removes arm64 if the build
requirements are not met.


# f80c5b81 16-Sep-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Get arm64/aarch64 into 'make targets' output to fix makeman.


# b779ff2b 12-Sep-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Rename kernel-pkgs into create-kernel-packages to be consistent with world


# 61b9a725 06-Sep-2015 Dimitry Andric <dim@FreeBSD.org>

Import libc++ 3.7.0 release (r246257).


# c07d7b3a 09-Jul-2015 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.1p.


# 1c9b3241 03-Jul-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Fix generation of src.conf.5

Since makeman turns all options on, we need to guard somethings from
make(showconfig)


# 65faab7f 22-Jun-2015 Simon J. Gerraty <sjg@FreeBSD.org>

targets now needs .PHONY


# d667f112 16-Jun-2015 Andrew Turner <andrew@FreeBSD.org>

Move the universe done dependency on the worlds completing out of the
loop, we only need to add it once.

Obtained from: ABT Systems Ltd


# 0b5f5ef2 16-Jun-2015 Andrew Turner <andrew@FreeBSD.org>

Remove unneeded dependencies, these are now handled through the _done
target.

Obtained from: ABT Systems Ltd


# 1272c4aa 16-Jun-2015 Andrew Turner <andrew@FreeBSD.org>

Add a new target universe_${target}_done to print the completion message.
Without this we could print this message in the wrong place when building
with MAKE_JUST_WORLDS is set.

Obtained from: ABT Systems Ltd


# 149da95c 16-Jun-2015 Andrew Turner <andrew@FreeBSD.org>

Add a universe_${target}_worlds target to simplify the logic to find when
to start building kernels.

Obtained from: ABT Systems Ltd


# 35c9a2a9 16-Jun-2015 Warner Losh <imp@FreeBSD.org>

A more compatible fix to MK_META_MODE not being defined. Also, encase
bmake specific constructs not needed for make bootstrap so fmake
doesn't see them. This works with fmake just well enough for us to
build bmake to build the rest of the tree without fatal errors. Tested
only with fmake package.


# 6cdaf31e 16-Jun-2015 Andrew Turner <andrew@FreeBSD.org>

Add a comment to the end of the world and kernel cases in the universe
target to help follow the make magic.

Obtained from: ABT Systems Ltd


# 054fbb2f 14-Jun-2015 Craig Rodrigues <rodrigc@FreeBSD.org>

If MK_META_MODE is unset, assume a value of no.

This is needed to build HEAD on FreeBSD 10.1,
which has bmake, but does not have
/usr/share/mk/src.opts.mk

Reviewed by: sjg
Reported by: jenkins


# 15533bcc 12-Jun-2015 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.1o.


# a9745f9a 11-Jun-2015 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.1n.


# c86c1f12 10-Jun-2015 Simon J. Gerraty <sjg@FreeBSD.org>

bmake-20150606


# 1fc3d968 10-Jun-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Since sys.mk now handles META_MODE and META_FILES options
we need not worry about them here.
Checking for .PARSEDIR no longer needed.


# c21ae9a3 10-May-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20150505 detect typo's in .if variable references.


# e995a96d 04-May-2015 Glen Barber <gjb@FreeBSD.org>

Import openresolv 3.7.0.

PR: 199854
Obtained from: http://roy.marples.name/projects/openresolv
Sponsored by: The FreeBSD Foundation


# 504f34b3 28-Apr-2015 Ed Maste <emaste@FreeBSD.org>

Don't add arm64 to universe builds if the user provided a TARGETS list

Differential Revision: https://reviews.freebsd.org/D2375
Reported by: andrew
Reviewed by: andrew, imp
Sponsored by: The FreeBSD Foundation


# 3f29603d 27-Apr-2015 Enji Cooper <ngie@FreeBSD.org>

Fix a typo (linnker -> linker)


# 023e89e5 19-Apr-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20150418


# f384739d 16-Apr-2015 Ed Maste <emaste@FreeBSD.org>

Add arm64 to universe if binutils is available.

arm64 relies on an external binutils port or package right now, because
the in-tree linker from binutils 2.17.50 does not support arm64. Add
arm64 to universe if the linker is available. If not output a message
that arm64 is skipped.

buildworld and buildkernel use the external binutils automatically, so
it's sufficient to run 'pkg install aarch64-binutils' to build
FreeBSD/arm64.

Differential Revision: https://reviews.freebsd.org/D2302
Reviewed by: andrew, imp
Sponsored by: The FreeBSD Foundation


# fb911942 24-Mar-2015 Dimitry Andric <dim@FreeBSD.org>

Vendor import of lld trunk r233088:
https://llvm.org/svn/llvm-project/lld/trunk@233088


# 52bff0d7 23-Mar-2015 Rui Paulo <rpaulo@FreeBSD.org>

Import lua 5.3.0.


# 28e1e3e2 21-Mar-2015 Warner Losh <imp@FreeBSD.org>

Make TARGET_ARCH=powerpc64 work without TARGET=powerpc.


# 3d203085 20-Mar-2015 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.1m.


# 8daa8167 19-Mar-2015 Andrew Turner <andrew@FreeBSD.org>

Start to import support for the AArch64 architecture from ARM. This change
only adds support for kernel-toolchain, however it is expected further
changes to add kernel and userland support will be committed as they are
reviewed.

As our copy of binutils is too old the devel/aarch64-binutils port needs
to be installed to pull in a linker.

To build either TARGET needs to be set to arm64, or TARGET_ARCH set to
aarch64. The latter is set so uname -p will return aarch64 as existing
third party software expects this.

Differential Revision: https://reviews.freebsd.org/D2005
Relnotes: Yes
Sponsored by: The FreeBSD Foundation


# 42450b49 15-Mar-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Create a "packages" target takes care of all the magic


# 0ae9da15 15-Mar-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Import mdocml 1.13.3


# ca0abefb 04-Mar-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Add new create-world-packages target to generated the packages out of world

Dynamically figure out the list of targets based on tags passed on the mtrees
First sanity check that all packages have existing manifests
Generate the packages

Please note that for now the mtree needs more work as it has duplicate entries,
everything is not yet tagged

The packages now have generic entries and needs to be customize


# d3c5aaa4 02-Mar-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Import CVS snapshot of mandoc as of 20150302


# da75c2cc 27-Feb-2015 Warner Losh <imp@FreeBSD.org>

Import from device-tree git://xenbits.xen.org/people/ianc/device-tree-rebasing.git @c8c1b3a77934768c7f7a4a9c10140c8bec529059


# c69a9896 10-Feb-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Add a new target make stageworld which basically does the same job as:
make installworld distribution but preparing the mtree the same way
distributeworld does and respecting -DNO_ROOT


# e931a20c 08-Feb-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Plug kernel-pkgs target to the list of valid targets


# 8f508667 16-Jan-2015 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.1l.


# 5b6fd65d 12-Jan-2015 Baptiste Daroussin <bapt@FreeBSD.org>

Import libedit 2014-01-09

Obtained from: NetBSD


# c6485458 08-Jan-2015 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.1k.


# ca9211ec 07-Jan-2015 Dimitry Andric <dim@FreeBSD.org>

Import compiler-rt trunk r224034.

https://llvm.org/svn/llvm-project/compiler-rt/trunk@224034


# 2612bc21 25-Dec-2014 Baptiste Daroussin <bapt@FreeBSD.org>

Import mandoc 1.13.2


# 5eccfb5c 22-Dec-2014 Ed Maste <emaste@FreeBSD.org>

Import elftoolchain rev 3130

From svn.code.sf.net/p/elftoolchain/code/trunk


# 81bffeea 02-Dec-2014 Baptiste Daroussin <bapt@FreeBSD.org>

Import CVS version of mandoc as of 20141201


# aa9bd11d 30-Nov-2014 Simon J. Gerraty <sjg@FreeBSD.org>

If we are doing META_MODE use targets/Makefile as top-level
since this one isn't suitable.


# 9f4dbff6 24-Nov-2014 Dimitry Andric <dim@FreeBSD.org>

Vendor import of clang RELEASE_350/final tag r216957 (effectively, 3.5.0 release):
https://llvm.org/svn/llvm-project/cfe/tags/RELEASE_350/final@216957


# 5ca98fd9 24-Nov-2014 Dimitry Andric <dim@FreeBSD.org>

Vendor import of llvm RELEASE_350/final tag r216957 (effectively, 3.5.0 release):
https://llvm.org/svn/llvm-project/llvm/tags/RELEASE_350/final@216957


# 52c0e955 22-Nov-2014 Baptiste Daroussin <bapt@FreeBSD.org>

Import mandoc 1.13.1


# 58ab7656 15-Oct-2014 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.1j.


# 478290db 30-Sep-2014 Enji Cooper <ngie@FreeBSD.org>

Check in first src/tests snapshot from NetBSD anoncvs

Sources were obtained like so:

% export CVSROOT="anoncvs@anoncvs.NetBSD.org:/cvsroot"
% cvs -z9 co -D "09/30/2014 20:45" -P src/tests
% mv src/tests/* tests/dist/.

'*CVS*' has been added to svn:ignore to ease updating periodically from
upstream

Some line ending issues had to be resolved with test outputs and scripts
via dos2unix and by deleting the eol-style property set in usr.bin/sort

Discussed with: rpaulo
Sponsored by: EMC / Isilon Storage Division


# 9a56205f 08-Sep-2014 Enji Cooper <ngie@FreeBSD.org>

Add vendor import for pjdfstest

This vendor import code was obtained from
https://github.com/pjd/pjdfstest/commit/abf03c3a47745d4521b0e4aa141317553ca48f91

Approved by: rpaulo (mentor)
Phabric: D743
Sponsored by: EMC / Isilon Storage Division


# 1c64231e 05-Sep-2014 Kevin Lo <kevlo@FreeBSD.org>

Revert r271159, Mis-patched the tree.

Pointed out by: kib


# 6bd03b20 05-Sep-2014 Kevin Lo <kevlo@FreeBSD.org>

The USB LED driver for the Dream Cheeky WebMail Notifier.

Reviewed by: hselasky


# 75872267 18-Aug-2014 Warner Losh <imp@FreeBSD.org>

Create the native-xtools target. This target creates only the cross
building toolchain for the host computer. This toolchain produces
TARGET_ARCH and assumes the rest of the system contains libraries for
the target. It is intended to be used in a "qemu-user jail" where all
the binaries would otherwise be the target architecture's to build
ports. However, emulation of the compilers is too slow, so we build
native binaries for that. Rather than use the xdev produced binaries,
with all their weird links and paths, these binaries use the native
paths. They will not work unless installed into the qemu-user jail.

Differential Revision: https://phabric.freebsd.org/D518
Reviewed by: sbruno@


# cb686480 07-Aug-2014 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.1i.


# 0aafd404 24-Jul-2014 Warner Losh <imp@FreeBSD.org>

Add compat shims for XDEV and XDEV_ARCH so we don't break all the
users of them. Also, add a note to updating. We'll keep these shims at
least until the 12 branch.


# 1dd381bf 13-Jul-2014 Julio Merino <jmmv@FreeBSD.org>

Explicitly disable the build of tests when building bmake.

During "make buildworld", building bmake is (one of) the very first steps
and we should not be building any of its tests. Conceptually, this is the
right thing to do 1) for build simplicity reasons and 2) because there is
no need to build any tests this early on.

In practice, this fixes tinderbox builds of CURRENT from 9.x when MK_TESTS
is enabled. This is because bsd.test.mk needs some modern bmake features
not present in 9.x (:tW) and tinderbox is forcing the build to use the
CURRENT share/mk files from the very beginning (see r266617). By skipping
the build of the tests when still using the host make, we omit the problem.
Arguably, what tinderbox is doing is wrong and needs to be addressed, but
that is a separate issue.


# 9e488366 10-Jul-2014 Warner Losh <imp@FreeBSD.org>

Separate out the links creation from the other targets. This was
supposed to have been done for the original commit, but somebody
forgot.

Pointy-hat-to: imp@


# 50f73640 02-Jul-2014 Marcel Moolenaar <marcel@FreeBSD.org>

Remove ia64 from the list of known architectures and add an entry to
UPDATING. This is the first step towards the removal of ia64 from
head. A buildworld for ia64 will now yield:

% make buildworld
make[1]: "/usr/src/Makefile.inc1" line 151: Unknown target ia64:ia64.

While here, trim the ia64-specific additions from ObsoleteFiles.inc

Discussed at: BSDcan


# 769742d3 02-Jul-2014 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20140620


# e599b42e 27-Jun-2014 Jung-uk Kim <jkim@FreeBSD.org>

Import ACPICA 20140627.


# 2e22f5e2 06-Jun-2014 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.1h.

Approved by: so (delphij)


# 4a67213f 21-May-2014 Gregory Neil Shapiro <gshapiro@FreeBSD.org>

Import sendmail 8.14.9


# e8bad5dc 10-May-2014 Warner Losh <imp@FreeBSD.org>

grep -L returns non-zero status if none of the files had the pattern
in them. This is often the case, so just ignore the return
code. Actual errors that are found will also be detected downstream in
the rare cases where the return code is 2 instead of 1.


# 93654dca 10-May-2014 Warner Losh <imp@FreeBSD.org>

We haven't done anything with _UPGRADING in ~forever (was present, but
not needed, in FreeBSD 6.x, and has been absent in newer versions).
This was needed to upgrade from 3.x -> 4.x, once upon a time.


# 4d9b013a 10-May-2014 Warner Losh <imp@FreeBSD.org>

Remove a few more vestiges of allowing WITHOUT_BMAKE to imply you want
to buid with fmake.


# dd581d4b 06-May-2014 Warner Losh <imp@FreeBSD.org>

No need to install man pages for bootstrapping new make. Some
environments (that I can't reproduce locally, but that others have
reported) seem to get tripped up by this man page install. There's
really no need to do it, so turn off the man pages using the most
portable method. We can't just directly set MK_MAN=no here because
we're bootstrapping in the host environment and such a setting was
forbidden until very recently. NO_MAN= can produce a warning, but for
now the warning is benign.


# d0312744 05-May-2014 Warner Losh <imp@FreeBSD.org>

Remove support for WITHOUT_BMAKE. bmake is now the only make that can
build world, so it is the only make we build or install. fmake is
still in the tree, but disconnected, and upgrades from older systems
that still have bmake has not been removed, but its state has not been
tested (it should work given how minimal the work to upgrade to bmake
is).


# a7c93c3d 05-May-2014 Simon J. Gerraty <sjg@FreeBSD.org>

If building WITH_META_FILES we do not want STAGING


# 7621eebb 30-Apr-2014 Warner Losh <imp@FreeBSD.org>

Omit from the universe build all config files tagged with
#NO_UNIVERSE. Many of these config files are important examples, but
add little to no regresive value to the intended purpose of
UNIVERSE. We now build over 120 kernels during universe. There's
really little to no value to this over building say 60 or even 30 of
them (either is still a way too big number). This is especially true
for kernels that are nothing more than including a common base and
adding a static DTB file. Start by pruning 1/3 of the arm kernels that
add little regresion value.


# 4b55d360 29-Apr-2014 Brooks Davis <brooks@FreeBSD.org>

Merge from CheriBSD:

commit 1d1b908107255ffdff4d17f015d8f057d73cc6cb
Author: Brooks Davis <brooks@one-eyed-alien.net>
Date: Fri Mar 28 16:24:45 2014 +0000

Add a long needed seatbelt.

Exit with an error when make is called without a target at the top level
rather than poluting the source tree and causing use confusion in future
builds.

commit a9d9aa341b2f4308a227ab460ba85f1f287ad028
Author: Brooks Davis <brooks@one-eyed-alien.net>
Date: Tue Apr 29 16:06:12 2014 +0000

Simplify seatbelt added in 1d1b908 based in feedback.

Discussed with: imp@FreeBSD.org

Reviewed by: imp
Sponsored by: DARPA, AFRL


# 5b79f581 21-Apr-2014 Julio Merino <jmmv@FreeBSD.org>

Prevent building tests when bootstrapping make.

Should fix the breakage reported by tinderbox when WITHOUT_BMAKE is set,
which was probably introduced in r263346..


# 2eabb61c 14-Apr-2014 Christian Brueffer <brueffer@FreeBSD.org>

Document the xdev* targets.

PR: 188519
Submitted by: Idwer Vollering <vidwer at gmail.com>
Reviewed by: bapt
MFC after: 1 week


# f40d4bd2 12-Apr-2014 Warner Losh <imp@FreeBSD.org>

We no longer support upgrading from FreeBSD 4, so we don't need the
NOMAN and NOSHARED defines here. They have been obsolete for almost a
decade anyway.


# 06369e39 08-Apr-2014 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.1g.

Approved by: benl (maintainer)


# 89cbdc85 01-Apr-2014 Warner Losh <imp@FreeBSD.org>

Remove support for legacy mips*eb names. Remove tests for
TARGET_BIG_ENDIAN.


# 73279d41 22-Mar-2014 Andrew Turner <andrew@FreeBSD.org>

Add a new ARM TARGET_ARCH, armv6hf. This is considered experimental.

This targets the existing ARMv6 and ARMv7 SoCs that contain a VFP unit.
This is an optional coprocessors may not be present in all devices, however
it appears to be in all current SoCs we support.

armv6hf targets the VFP variant of the ARM EABI and our copy of gcc is too
old to support this. Because of this there are a number of WITH/WITHOUT
options that are unsupported and must be left as the default value. The
options and their required value are:
* WITH_ARM_EABI
* WITHOUT_GCC
* WITHOUT_GNUCXX

In addition, without an external toolchain, the following need to be left
as their default:
* WITH_CLANG
* WITH_CLANG_IS_CC

As there is a different method of passing float and double values to
functions the ABI is incompatible with existing armv6 binaries. To use
this a full rebuild of world is required. Because no floating point values
are passed into the kernel an armv6 kernel with VFP enabled will work with
an armv6hf userland and vice versa.


# 0d4a4b13 27-Feb-2014 Warner Losh <imp@FreeBSD.org>

Bring in Ian Campbell's pruned dts repo.
From git://xenbits.xen.org/people/ianc/device-tree-rebasing.git
commit efa963ec806366c9628dfd1269316bb93b7ecb15
Merge: a72ba09 459c249
Author: Ian Campbell <ian.campbell@citrix.com>
Date: Wed Feb 26 08:39:16 2014 +0000

Merge tag 'v3.14-rc4-dts'

Linux 3.14-rc4


# 337c43ff 23-Feb-2014 Baptiste Daroussin <bapt@FreeBSD.org>

Import libucl into vendor

UCL is heavily infused by nginx configuration as the example of a convenient
configuration system. However, UCL is fully compatible with JSON format and is
able to parse json files.

UCL is used by pkg(8) for its configuration file as well for the manifest format
in packages, it will be used in base for the pkg boostrap (signature checking
and configuration file parsing.)

libucl has been developped and is maintained by vsevolod@


# c48517e8 20-Feb-2014 Baptiste Daroussin <bapt@FreeBSD.org>

Import dma 89702b7f14 (2013-02-13) into vendors


# 3d011e30 31-Jan-2014 Ulrich Spörlein <uqs@FreeBSD.org>

Import mdocml version 1.12.3


# 939bdb9f 26-Jan-2014 Warner Losh <imp@FreeBSD.org>

Import dtc git at 6a15eb2350426d285130e4c9d84c0bdb6575547a (last rev before bison became required)


# d4343fd8 26-Jan-2014 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20140101


# 2dc7f781 22-Jan-2014 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.1f.

Approved by: so (delphij), benl (silence)


# 5265ace0 15-Jan-2014 Kai Wang <kaiw@FreeBSD.org>

Initial import of elftoolchain r2974.

Obtained from: elftoolchain.org


# f8af5cf6 21-Dec-2013 Dimitry Andric <dim@FreeBSD.org>

Vendor import of llvm release_34 branch r197841 (effectively, 3.4 RC3):
https://llvm.org/svn/llvm-project/llvm/branches/release_34@197841


# 1b169702 16-Oct-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Make it possible to buildworld, while producing .meta files to aid
debugging.


# e8192c89 22-Sep-2013 Andrew Turner <andrew@FreeBSD.org>

Remove the armv6eb architecture as it is unused, and almost certainly
broken. None of our kernels can boot armv6eb. The little-endian kernels do
not have the required code to be able to switch endian when running a
big-endian executable.

Approved by: re (gjb)


# 425df3c1 19-Sep-2013 Ed Maste <emaste@FreeBSD.org>

Further refinement to bmake bootstrapping

Include PROGNAME and DESTDIR in ${MMAKE} so that it doesn't need to be
passed to each make invocation.

Suggested by: hrs
Reviewed by: hrs
Approved by: re (gjb)


# 42a6a985 11-Sep-2013 Ed Maste <emaste@FreeBSD.org>

Fix make bootstrapping with WITH_DEBUG_FILES=

A HEAD buildworld on 9.x first bootstraps bmake, but this failed when
building with standalone debug. Pass in the PROGNAME override to the
'make all' stage as well as 'make install' so that the .debug file is
created with the correct name.

Reviewed by: sjg
Sponsored by: The FreeBSD Foundation
Approved by: re (rodrigc)


# 7261834d 05-Sep-2013 Simon J. Gerraty <sjg@FreeBSD.org>

During universe/tinderbox export MAKE_JOB_ERROR_TOKEN=no
This avoids aborting everything when one kernel fails.

Reviewed by: obrien


# 55ec07f9 05-Sep-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20130904


# 2990d0a7 26-Aug-2013 Dag-Erling Smørgrav <des@FreeBSD.org>

Import an LDNS-based implementation of host(1).


# 1c0270ef 16-Aug-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Don't let user specified DESTDIR, break building our chosen make.


# a6822ce8 16-Aug-2013 Simon J. Gerraty <sjg@FreeBSD.org>

When we need to build using the in-tree make,
switch at the earliest opportunity.
In the case of fmake vs bmake, this helps ensure correct load handling.

Reviewed by: obrien


# 05ddbb8d 11-Aug-2013 Cy Schubert <cy@FreeBSD.org>

Import IP-Filter 5.1.2 into vendor branches using the existing license that
the current version of IP-Filter in FreeBSD is under as per email received
from Darren Reed on Mon, 08 Jul 2013 23:54:16 +1000.

Approved by: glebius (Mentor), Darren Reed <darrenr@reed.wattle.id.au>


# e0f69e1d 01-Aug-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20130730 - allows folk to supress job tokens.


# 4234b977 24-Jul-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Fix bug in universe where if upgrade_checks wants a new make,
it gets built 16 times in parallel in the same location.
While we are at it, until we finish getting rid of fmake,
be explicit about the make we want to use, thus avoid the problem
of the temp make being the wrong version.

Reviewed by: obrien


# f27f4705 18-Jul-2013 Cy Schubert <cy@FreeBSD.org>

As per the developers handbook (5.3.1 step 1), prepare the vendor trees for
import of new ipfilter vendor sources by flattening them.

To keep the tags consistent with dist, the tags are also flattened.

Approved by: glebius (Mentor)


# 0ff7433d 07-Jul-2013 Alfred Perlstein <alfred@FreeBSD.org>

Correct typo specifying jflags.


# a7abf892 07-Jul-2013 Alfred Perlstein <alfred@FreeBSD.org>

Document tip on how to build all kernels quickly.


# d3187057 14-Jun-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Flag recursive make targets with .MAKE
so that job token pipe is passed to them.
To avoid surprising anyone, only add .MAKE to ${TGTS} when -n
has not been specified (at least for Makefile).

Reviewed by: obrien


# 45f33ab2 05-Jun-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20130604


# 5a968130 04-Jun-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Ensure this makefile and anything it runs, does so without meta mode.
Allows buildworld etc.


# 5a37b9e1 03-Jun-2013 Simon J. Gerraty <sjg@FreeBSD.org>

bmake does not like universe_${target}_prologue in the .ORDER
when there is an explicit dependency for it anyway.
Remove it so both bmake and fmake do the same thing.

Reviewed by: OBrien


# 021a0587 29-May-2013 Chris Rees <crees@FreeBSD.org>

Make the instruction order for buildworld agree with UPDATING and the
Handbook.

Reviewed by: imp, bdrewery, netchild
Approved by: gjb (mentor)


# 11023dc6 27-May-2013 Ed Schouten <ed@FreeBSD.org>

Import compiler-rt r182741.


# dca4585d 20-May-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20130520 to keep us in sync.


# 4c67ba2c 16-May-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Reverse the sense of the test wrt bmake, and guard against
MK_BMAKE not being defined.


# 13c9cf4c 11-Apr-2013 Simon J. Gerraty <sjg@FreeBSD.org>

If doing buildworld -DWITH_BMAKE make sure bmake does the build.


# a3058216 09-Apr-2013 Dimitry Andric <dim@FreeBSD.org>

Ensure make -j N universe works correctly, by checking for an up-to-date
make before starting the universe targets themselves. Otherwise, all of
the targets would attempt to build make simultaneously, overwriting each
other's copies of the make object files and executable. This could lead
to strange errors, for example when partially-written make executables
are invoked.

Also amend r216620, to make the rest of universe wait properly until the
upgrade_checks target is finished, by adding universe_${target}_prologue
to the .ORDER target. Otherwise, make will be too smart for its own
good, and start building the universe targets simultaneously with the
prologues anyway.

MFC after: 1 week


# 55d28bad 08-Apr-2013 Ed Schouten <ed@FreeBSD.org>

Vendor import of NetBSD's mtree at 2013-04-08.


# 4a16efa3 08-Apr-2013 Dimitry Andric <dim@FreeBSD.org>

Vendor import of llvm trunk r178860:
http://llvm.org/svn/llvm-project/llvm/trunk@178860


# 3784f43e 01-Apr-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20130330


# 10098a6e 30-Mar-2013 Andrew Turner <andrew@FreeBSD.org>

When building universe ensure the required worlds are finished before
starting the kernels. Before this the kernels would be built as part of the
last architecture universe target. There can cause problems when this world
finishes before the other worlds as the host compiler may be picked up
rather than the target compiler.

The solution is to add a target to build the universe kernels that depends
on all the world targets finishing. As we may not be building a world only
depend on it when MAKE_JUST_KERNELS is undefined.


# e95bfcdd 21-Feb-2013 Brooks Davis <brooks@FreeBSD.org>

Vendor import of NetBSD's unvis(1) at 2013-02-21


# 7fc1dbca 21-Feb-2013 Brooks Davis <brooks@FreeBSD.org>

Vendor import of NetBSD's vis(1) at 2013-02-21


# f3b8b34a 13-Feb-2013 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.1e.

Approved by: secteam (delphij, simon), benl (silence)


# 70bd6b31 31-Jan-2013 Simon J. Gerraty <sjg@FreeBSD.org>

Import bmake-20130123

Approved by: marcel (mentor)


# 58aabf08 18-Jan-2013 Andrew Turner <andrew@FreeBSD.org>

Import compiler-rt r172839.


# 89a652b2 21-Dec-2012 Brooks Davis <brooks@FreeBSD.org>

Vendor import of NetBSD's mtree at 2012-12-21


# 13cc256e 02-Dec-2012 Dimitry Andric <dim@FreeBSD.org>

Vendor import of clang release_32 branch r168974 (effectively, 3.2 RC2):
http://llvm.org/svn/llvm-project/cfe/branches/release_32@168974


# 522600a2 02-Dec-2012 Dimitry Andric <dim@FreeBSD.org>

Vendor import of llvm release_32 branch r168974 (effectively, 3.2 RC2):
http://llvm.org/svn/llvm-project/llvm/branches/release_32@168974


# 3c4ee57d 03-Nov-2012 Marcel Moolenaar <marcel@FreeBSD.org>

Add the buildLINT convenience target, handy for build automation.
The automation can set TARGET_ARCH and TARGET and then make various
top-level targets, including buildLINT and buildkernel (with
KERNCONF=LINT). Previously there was no way to generate the LINT
kernel configuration without having to do something exceptionally
painful.


# 211d2d51 18-Oct-2012 Ulrich Spörlein <uqs@FreeBSD.org>

Vendor import of mdocml 1.12.1

It is a suite of ISC licensed tools to compile and render mdoc/man pages and
will replace groff for formatting manpages in the base system.

http://mdocml.bsd.lv/


# 0815243c 06-Oct-2012 Marcel Moolenaar <marcel@FreeBSD.org>

Add support for bmake. This includes:
1. Don't do upgrade_checks when using bmake. As long as we have WITH_BMAKE,
there's a bootstrap complication in ths respect. Avoid it. Make the
necessary changes to have upgrade_checks work wth bmake anyway.
2. Remove the use of -E. It's not needed in our build because we use ?= for
the respective variables, which means that we'll take the environment
value (if any) anyway.
3. Properly declare phony targets as phony as bmake is a lot smarter (and
thus agressive) about build avoidance.
4. Make sure CLEANFILES is complete and use it on .NOPATH. bmake is a lot
smarter about build avoidance and should not find files we generate in
the source tree. We should not have files in the repository we want to
generate, but this is an easier way to cross this hurdle.
5. Have behavior under bmake the same as it is under make with respect to
halting when sub-commands fail. Add "set -e" to compound commands so
that bmake is informed when sub-commands fail.
6. Make sure crunchgen uses the same make as the rest of the build. This
is important when the make utility isn't called make (but bmake for
example).
7. While here, add support for using MAKEOBJDIR to set the object tree
location. It's the second alternative bmake looks for when determining
the actual object directory (= .OBJDIR).

Submitted by: Simon Gerraty <sjg@juniper.net>
Submitted by: John Van Horne <jvanhorne@juniper.net>


# 49350233 25-Sep-2012 Ed Schouten <ed@FreeBSD.org>

Vendor import NetBSD's libedit of "2012/09/25 10:41:11 UTC".

Obtained from: NetBSD


# f59c1f67 12-Sep-2012 David E. O'Brien <obrien@FreeBSD.org>

Not all Pmake derivatives silently handle empty shell output, so ensure there
is something for make(1) to consume. Bmake gives output such as:
"warning: Couldn't read shell's output for "/bin/sh -c true"
Note we parted from traditional Pmake behavior in r18864 / r18255.


# 7750ad47 22-Aug-2012 Marcel Moolenaar <marcel@FreeBSD.org>

Sync FreeBSD's bmake branch with Juniper's internal bmake branch.

Requested by: Simon Gerraty <sjg@juniper.net>


# 902a7b52 19-Aug-2012 Dimitry Andric <dim@FreeBSD.org>

Vendor import of llvm trunk r162107:
http://llvm.org/svn/llvm-project/llvm/trunk@162107


# 4da573d9 14-Aug-2012 Oleksandr Tymoshenko <gonzo@FreeBSD.org>

Merging of projects/armv6, part 3

r238211:
Support TARGET_ARCH=armv6 and TARGET_ARCH=armv6eb

This adds a new TARGET_ARCH for building on ARM
processors that support the ARMv6K multiprocessor
extensions. In particular, these processors have
better support for TLS and mutex operations.

This mostly touches a lot of Makefiles to extend
existing patterns for inferring CPUARCH from ARCH.
It also configures:
* GCC to default to arm1176jz-s
* GCC to predefine __FreeBSD_ARCH_armv6__
* gas to default to ARM_ARCH_V6K
* uname -p to return 'armv6'
* make so that MACHINE_ARCH defaults to 'armv6'
It also changes a number of headers to use
the compiler __ARM_ARCH_XXX__ macros to configure
processor-specific support routines.

Submitted by: Tim Kientzle <kientzle@freebsd.org>


# bae61446 23-Jul-2012 Warner Losh <imp@FreeBSD.org>

Import dtc from git://git.jdl.com/software/dtc
hash f807af192828222dee7a5c9f94d999673bb4d8a1


# 0758ab5e 11-Jul-2012 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 1.0.1c.

Approved by: benl (maintainer)


# 8724452f 11-Jul-2012 Jung-uk Kim <jkim@FreeBSD.org>

Import ACPICA 20120711.


# e324b4bc 03-Jul-2012 David E. O'Brien <obrien@FreeBSD.org>

Add "hier" as an alternate spelling of "hierarchy" to match hier(9).


# 2b8b5455 27-Jun-2012 Jung-uk Kim <jkim@FreeBSD.org>

Import OpenSSL 0.9.8x.


# 63faed5b 14-Apr-2012 Dimitry Andric <dim@FreeBSD.org>

Vendor import of llvm trunk r154661:
http://llvm.org/svn/llvm-project/llvm/trunk@r154661


# 84db023e 28-Mar-2012 Juli Mallett <jmallett@FreeBSD.org>

Assume a big-endian default on MIPS and drop the "eb" suffix from MACHINE_ARCH.
This makes our naming scheme more closely match other systems and the
expectations of much third-party software. MIPS builds which are little-endian
should require and exhibit no changes. Big-endian TARGET_ARCHes must be
changed:
From: To:
mipseb mips
mipsn32eb mipsn32
mips64eb mips64

An entry has been added to UPDATING and some foot-shooting protection (complete
with warnings which should become errors in the near future) to the top-level
base system Makefile.


# 3e95821f 12-Mar-2012 Juli Mallett <jmallett@FreeBSD.org>

Add a kernel-toolchains target like the toolchains target, but building only
the parts of the toolchain necessary to build kernels.


# 262eab04 16-Feb-2012 Sergey Kandaurov <pluknet@FreeBSD.org>

delete-old does not have delete-old-libs dependency.
Reflect this in the comment.

PR: conf/163993
Submitted by: Eugen Konkov <kes-kes at yandex ru>
MFC after: 3 days


# 219fb048 31-Dec-2011 Ed Schouten <ed@FreeBSD.org>

Import compiler-rt r147390.


# f73031b4 20-Nov-2011 Glen Barber <gjb@FreeBSD.org>

Replace 'chflags' with 'file flags' in a comment, since 'chflags'
is a command, not a flag itself.

While here, wrap a line for readability.

Submitted by: arundel
MFC after: 3 days
X-MFC-With: 227769, 227770


# 6ef8f2a6 20-Nov-2011 Glen Barber <gjb@FreeBSD.org>

Fix the note in r227769 to be less specific to the immutable flag.

Submitted by: arundel
MFC after: 3 days
X-MFC-With: r227769


# 123ba50f 20-Nov-2011 Glen Barber <gjb@FreeBSD.org>

Add a note to src/Makefile that explains that 'rm' runs twice because the
second invocation only needs to operate on files with the immutable flag
set.

Submitted by: arundel (via private email) (original version)
Discussed on: -toolchain@
MFC after: 3 days


# 36981b17 20-Oct-2011 Dimitry Andric <dim@FreeBSD.org>

Vendor import of clang release_30 branch r142614:
http://llvm.org/svn/llvm-project/cfe/branches/release_30@142614


# 30815c53 20-Oct-2011 Dimitry Andric <dim@FreeBSD.org>

Vendor import of llvm release_30 branch r142614:
http://llvm.org/svn/llvm-project/llvm/branches/release_30@142614


# 093c93c3 12-Sep-2011 Hiroki Sato <hrs@FreeBSD.org>

Import of openresolv 3.4.4.

Obtained from: http://roy.marples.name/projects/openresolv
Approved by: re (kib)


# 69c488cd 15-Jun-2011 Ruslan Ermilov <ru@FreeBSD.org>

It's a bit odd, but "make update" in src/ can also update the ports/,
doc/, and now www/ trees, but only using the "cvsup" transport.

When "make update" is run using a tree's makefile, it can also use
"cvs" (except for www/) and "svn" (only src/).

Clean up documentation and code regarding "make update":

- Increase oddness by adding support for WWWSUPFILE and NO_WWWUPDATE to
Makefile.inc1 (analogous to PORTSSUPFILE/NO_PORTSUPDATE and
DOCSUPFILE/NO_DOCUPDATE; WWWSUPFILE already supported by www/Makefile).

- Document all trees that support CVS_UPDATE.

- Document all trees that support SUP_UPDATE.

- Document SVN_UPDATE.

- Document NO_WWWUPDATE.

- make.conf(5) mistakenly said that *SUPFILE* had defaults.

- Add an example entry for WWWSUPFILE.


# 56fe8f14 12-Jun-2011 Dimitry Andric <dim@FreeBSD.org>

Vendor import of llvm trunk r132879:
http://llvm.org/svn/llvm-project/llvm/trunk@132879


# 4b547324 13-May-2011 Attilio Rao <attilio@FreeBSD.org>

Disconnect sun4v architecture from the three.

Some files keep the SUN4V tags as a code reference, for the future,
if any rewamped sun4v support wants to be added again.

Reviewed by: marius
Tested by: sbruno
Approved by: re


# 01af97d3 02-May-2011 Dimitry Andric <dim@FreeBSD.org>

Vendor import of clang trunk r130700:
http://llvm.org/svn/llvm-project/cfe/trunk@130700


# 6b943ff3 02-May-2011 Dimitry Andric <dim@FreeBSD.org>

Vendor import of llvm trunk r130700:
http://llvm.org/svn/llvm-project/llvm/trunk@130700


# 447552ca 29-Apr-2011 John Baldwin <jhb@FreeBSD.org>

Add the mipsn32eb TARGET_ARCH to the list of mips targets for the
XLRN32 kernel config.

Reviewed by: imp, jmallet


# efc6da70 11-Apr-2011 Bjoern A. Zeeb <bz@FreeBSD.org>

If building (custom) FreeBSD images people tend to patch param.h. In case
this happens just before the build is started (within the same second)
CHECK_TIME actually triggers thinking param.h is in the future (see f_Xtime,
c_Xtime logi in find(1) sources for the details in !F_EXACTTIME case).
Using the -mtime -0s (seconds, rather than no unit) avoids this 1s race.

Submitted by: ed (2009-05-03)
Reviewed by: cperciva (2009-05-03), emaste
Tested by: bz (for almost two years)
MFC after: 4 days


# f415f37c 09-Apr-2011 Doug Barton <dougb@FreeBSD.org>

Update recommendation for mergemaster. The -a and -i options are exclusive.

PR: docs/156271
Submitted by: Fedor Dikarev <fedor.dikarev@gmail.com>


# 703cb613 31-Mar-2011 David E. O'Brien <obrien@FreeBSD.org>

Vendor import NetBSD's libedit of "2010/06/01 18:20:26 UTC".

Obtained from: NetBSD


# 8dfe73ba 31-Mar-2011 David E. O'Brien <obrien@FreeBSD.org>

Vendor import NetBSD's libedit of "2007/01/12 16:31:13 UTC".

Obtained from: NetBSD


# 75d35a37 30-Mar-2011 David E. O'Brien <obrien@FreeBSD.org>

Vendor import NetBSD's libedit of "2005/08/02 12:11:14 UTC".

Obtained from: NetBSD


# f592be44 30-Mar-2011 David E. O'Brien <obrien@FreeBSD.org>

Vendor import NetBSD's libedit of "2001/09/29 17:52:10 UTC".

Obtained from: NetBSD


# 4d860275 30-Mar-2011 David E. O'Brien <obrien@FreeBSD.org>

Vendor import NetBSD's libedit of "1997-06-25 01:14:45 -0700".

Obtained from: NetBSD


# 8e56b8ee 18-Mar-2011 Hajimu UMEMOTO <ume@FreeBSD.org>

Import openresolv-3.4.1.


# 99ad39c8 02-Mar-2011 Nathan Whitehorn <nwhitehorn@FreeBSD.org>

Improve the distributeworld target in Makefile.inc1 and update the release
infrastructure to use it. make distributeworld can now be used without
preparing its environment first and installs games into its distribution
using the regular make distribute logic instead of post-processing with
a script.

Also add two new targets, packageworld and packagekernel, that tar up the
results of distributeworld and distributekernel (also new), respectively.


# 141aca1f 01-Mar-2011 John Baldwin <jhb@FreeBSD.org>

Fully honor KERNSRCDIR for 'make universe' if it is set.

MFC after: 1 week


# bca07a45 20-Feb-2011 Dimitry Andric <dim@FreeBSD.org>

Vendor import of clang trunk r126079:
http://llvm.org/svn/llvm-project/cfe/trunk@126079


# cf099d11 19-Feb-2011 Dimitry Andric <dim@FreeBSD.org>

Vendor import of llvm trunk r126079:
http://llvm.org/svn/llvm-project/llvm/trunk@126079


# 4e889921 10-Feb-2011 John Baldwin <jhb@FreeBSD.org>

- Add a new UNIVERSE_TARGET variable for 'make universe'. If it is set,
then that target is invoked for each architecture rather than the
default action of building world and kernels for each architecture.
- Add a 'make toolchains' wrapper which uses UNIVERSE_TARGET to build
toolchains for all architectures.
- Document JFLAG, MAKE_JUST_KERNELS, and MAKE_JUST_WORLDS variables for
'make universe'.

Reviewed by: bz
MFC after: 1 week


# b3840844 02-Feb-2011 Warner Losh <imp@FreeBSD.org>

Setting TARGET and TARGET_ARCH needs to be done in _MAKE, not in the
TGTS rule as _MAKE is used elsewhere. This should fix make world.


# fda074e4 31-Jan-2011 Warner Losh <imp@FreeBSD.org>

Move the architecture guessing from Makefile.inc1 to Makefile. We
need to do this because variables specified on the command line
override those specified in the Makefile. This is why we also moved
from TARGET to _TARGET in Makefile, and then set TARGET on the command
line when we fork a submake with Makefile.inc1.

This makes mips/mips work again, even without the workaround committed to
lib/libc/Makefile.


# f1d16bd8 25-Jan-2011 Bjoern A. Zeeb <bz@FreeBSD.org>

Back out r217734. [1]

Properly document what `make targets` is supposed to list to avoid
further confusion given the place the target sits. Should have happened
with r217125.

Requested by: imp [1]
Reviewed by: rwatson


# 1ffa3abd 23-Jan-2011 Bjoern A. Zeeb <bz@FreeBSD.org>

For `make tinderbox` there is no need to print the extra commands.

MFC after: 5 days


# 2933a1ce 22-Jan-2011 Bjoern A. Zeeb <bz@FreeBSD.org>

Make `make tinderbox` work with MAKEOBJDIRPREFIX set (or in possibly other
combinations) by forcing FAILFILE into .CURDIR as we do for all other
universe output files. [1] Similarly make FAILFILE start with "_." as well.

Reviewed by: silence-on-src [1]
MFC after: 6 days


# 841241fc 22-Jan-2011 Bjoern A. Zeeb <bz@FreeBSD.org>

In `make targets` print the make variable TARGETS as we expect it rather
than the grammatically better sounding variant without the 'S'. This
allows copy and paste and is less confusing.


# eee8163b 22-Jan-2011 Bjoern A. Zeeb <bz@FreeBSD.org>

Properly document what the top-level `make tinderbox` does.

Reviewed by: jmallett
MFC After: 3 days
X-MFC: build.7 only


# 47c221b6 11-Jan-2011 Warner Losh <imp@FreeBSD.org>

Provide up-to-date estimates that are pessimal today...


# ff34e7e3 11-Jan-2011 Warner Losh <imp@FreeBSD.org>

Proving once again, I can't typo: fix a type.


# 3acc4367 11-Jan-2011 Warner Losh <imp@FreeBSD.org>

Minor improvements in the wording of a comment. Document tinderbox target.


# 64fe77a5 07-Jan-2011 Warner Losh <imp@FreeBSD.org>

make targets

This produces a list of currently supported targets. Here "supported"
means "built in make universe" on the theory that those targets are
more supported than any that might work in 'make buildworld TARGET=x
TARGET_ARCH=y' since the latter are less tested.

Suggested by: rwatson


# cd2ae253 07-Jan-2011 Warner Losh <imp@FreeBSD.org>

Retire TARGET_ABI.

Implement MACHINE_ARCH=mips64e[lb] to build N64 images. This replaces
MACHINE_ARCH=mipse[lb] TARGET_ABI=n64.

MACHINE_ARCH=mipsn32e[lb] has been added, but currently requires
WITHOUT_CDDL due to atomic issues in libzfs. I've not investigated
this much, but implemented this to preserve as much of the TARGET_ABI
functionality that I could. Since its presence doesn't affect the
working cases, I've kept it in for now.

Added mips64e[lb] to make universe, so more kernels build.

And I think this (finally) closes the curtain on the tbemd tree.


# 92f64fb9 03-Jan-2011 Warner Losh <imp@FreeBSD.org>

When TARGET_ARCH_${kernel} gets set, it is using the host's config,
not the one we build as part of make world. This means that make
universe will fail if building on a too-old current or any stable
system prior to a few days ago in weird ways (parse errors from
shell). This copes with these old systems in two ways:

(1) Works around the WARNING: issue by filtering all warnings that
sneak onto stdout.

(2) if TARGET_ARCH_${kernel} winds up being empty, then we error out
immediately with a semi-useful error message. This usually comes from
config not groking -m.

Ideally, we'd use a buildworld's config here, but that's tricky, so
I'll leave that detail to others to fix (it has to be done post make
world for the arch rather than at the top level makefile). This
should make 'make universe' usable from recent 8-stable systems
(recent == last few months or so) for building -current. They have
-m, but spewed warnings out stdout. Older systems will now at least
get a firm error early rather than a confusing error late.


# 5f523ccd 23-Dec-2010 Warner Losh <imp@FreeBSD.org>

Redirect stderr from config to /dev/null. config -m is printing lots
of annoying warnings when dealing with arm. The arm config files need
to be fixed, but this restricts the output to a more useful place.


# 8e7c4a05 18-Dec-2010 Nathan Whitehorn <nwhitehorn@FreeBSD.org>

Reconnect arm to the universe build, and connect big-endian MIPS and ARM
and powerpc64 to universe for the first time. In general, provide
(slightly hacky) knowledge of multi-architecture TARGETs to universe as
well as the ability to distinguish the correct toolchain for a given
kernel using config -m.


# 6c054d2b 16-Dec-2010 John Baldwin <jhb@FreeBSD.org>

Pass JFLAG as JFLAG from tinderbox to universe. This gives the same
semantics for JFLAG with tinderbox as for universe. Previously doing
'make JFLAG=-j4 tinderbox' was equivalent to 'make -j4 universe'
(i.e. 4 worlds in parallel) rather than 'make JFLAG=-j4 universe'
(i.e. worlds in sequence, each built with -j4).

MFC after: 1 month


# fd3744dd 02-Dec-2010 Simon L. B. Nielsen <simon@FreeBSD.org>

Import OpenSSL 0.9.8q.


# f2c43d19 21-Nov-2010 Simon L. B. Nielsen <simon@FreeBSD.org>

Import OpenSSL 0.9.8p.


# dfc91ccb 13-Nov-2010 Warner Losh <imp@FreeBSD.org>

Add mips back to universe


# e8dce5b9 09-Nov-2010 Warner Losh <imp@FreeBSD.org>

Complete the integration of tbemd branch into head.

TARGET_BIG_ENDIAN is now completely dead, except where it was
originally supposed to be used (internally in the toolchain building).

TARGET_ARCH has changed in three cases:
(1) Little endian mips has changed to mipsel.
(2) Big endian mips has changed to mipseb.
(3) Big endian arm has changed to armeb.

Some additional changes are needed to make 'make universe' work on arm
and mips after this change, so those are commented out for now.

UPDATING information will be forthcoming. Any remaining rough edges
will be hammered out in -current.


# 217b6143 21-Oct-2010 Ed Schouten <ed@FreeBSD.org>

Import compiler-rt r117047.


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# be311536 02-Oct-2010 David E. O'Brien <obrien@FreeBSD.org>

Vendor import bzip2 -- upgrade to version 1.0.6.


# 5a93e3ae 02-Oct-2010 David E. O'Brien <obrien@FreeBSD.org>

Flatten the bzip2 vendor area in preparations for the 1.0.6 import.


# d39c594d 17-Sep-2010 Dimitry Andric <dim@FreeBSD.org>

Vendor import of llvm r114020 (from the release_28 branch):
http://llvm.org/svn/llvm-project/llvm/branches/release_28@114020

Approved by: rpaulo (mentor)


# 4ba67500 13-Jul-2010 Roman Divacky <rdivacky@FreeBSD.org>

Update clang to r108243.


# 66e41e3c 13-Jul-2010 Roman Divacky <rdivacky@FreeBSD.org>

Update LLVM to r108243.


# 3c5326bf 13-Jun-2010 Rafal Jaworowski <raj@FreeBSD.org>

Connect FDT infrastructure to the build system.

Reviewed by: imp
Sponsored by: The FreeBSD Foundation


# 0883ccd9 04-May-2010 Roman Divacky <rdivacky@FreeBSD.org>

Update clang to r103004.


# d7f7719e 04-May-2010 Roman Divacky <rdivacky@FreeBSD.org>

Update LLVM to r103004.


# 104bd817 02-Apr-2010 Roman Divacky <rdivacky@FreeBSD.org>

Update LLVM to r100181.


# 0cedaa6c 31-Mar-2010 Simon L. B. Nielsen <simon@FreeBSD.org>

Import OpenSSL 0.9.8n.


# b3aa5b38 28-Mar-2010 Doug Barton <dougb@FreeBSD.org>

MFC r205290:

MAKE_JUST_WORLDS


# 456f2594 27-Mar-2010 Bjoern A. Zeeb <bz@FreeBSD.org>

MFC r201815:

To avoid hardcoding further kernel configuration names for
make universe, split the logic into two parts:
- 1st to build worlds and generate kernel configs like LINT.
- 2nd to build kernels for a given TARGET architecture correctly
finding all newly generated configs, not knowing anything about
LINT anymore.

MFC rr201960:

Use uname -m [1] and rename BUILD_ARCH to XMACHINE[2].

Submitted by: nyan[1], imp[2]

MFC r202095:

Rather than using an extra variable, only call uname if really needed and
then directly assign the result.

Submitted by: jmallett


# c0c7bca4 21-Mar-2010 Roman Divacky <rdivacky@FreeBSD.org>

Update clang to r99115.


# 3453d746 18-Mar-2010 Doug Barton <dougb@FreeBSD.org>

For those of us mere mortals who do not aspire to the lofty heights
of kernel hackery, add MAKE_JUST_WORLDS so that we can take part in
the 'make universe' goodnes without using unecessary time and resources.


# 4a37f65f 16-Mar-2010 Roman Divacky <rdivacky@FreeBSD.org>

Update clang to r98631.


# c7be98c2 15-Mar-2010 Xin LI <delphij@FreeBSD.org>

Vendor import of zlib 1.2.4 (trimmed).


# fe0506d7 09-Mar-2010 Marcel Moolenaar <marcel@FreeBSD.org>

Create the altix project branch. The altix project will add support
for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting
is a two-module system, consisting of a base compute module and a
CPU expansion module. SGI's NUMAFlex architecture can be an excellent
platform to test CPU affinity and NUMA-aware features in FreeBSD.


# 589fec8b 03-Mar-2010 Warner Losh <imp@FreeBSD.org>

Give make kernel-toolchain a one-liner here. Although documented in
build(7), many people look here for a quick reminder...


# 67a71b31 03-Mar-2010 Roman Divacky <rdivacky@FreeBSD.org>

Update LLVM to 97654.


# f7a1b476 28-Feb-2010 Simon L. B. Nielsen <simon@FreeBSD.org>

Import OpenSSL 0.9.8m.


# b7b62f41 27-Feb-2010 Rafal Jaworowski <raj@FreeBSD.org>

Update DTC to git d75b33af676d0beac8398651a7f09037555a550b.

Obtained from: git://git.jdl.com/software/dtc.git


# cb591ed2 27-Feb-2010 Rafal Jaworowski <raj@FreeBSD.org>

Initial import of the Device Tree Compiler (DTC) package v1.2.0.

Obtained from: git://git.jdl.com/software/dtc.git


# 6bca9132 22-Feb-2010 Xin LI <delphij@FreeBSD.org>

Flattern zlib vendor tree.


# 989df958 23-Jan-2010 Roman Divacky <rdivacky@FreeBSD.org>

Update LLVM to r94309.


# b7490d8f 19-Jan-2010 Ed Schouten <ed@FreeBSD.org>

Back out the change to Makefile made in r202628.

It was just a local modification to build the i386 and amd64 more
quickly.


# 91bfd816 19-Jan-2010 Ed Schouten <ed@FreeBSD.org>

Recommit r193732:

Remove __gnu89_inline.

Now that we use C99 almost everywhere, just use C99-style in the pmap
code. Since the pmap code is the only consumer of __gnu89_inline, remove
it from cdefs.h as well. Because the flag was only introduced 17 months
ago, I don't expect any problems.

Reviewed by: alc

It was backed out, because it prevented us from building kernels using a
7.x compiler. Now that most people use 8.x, there is nothing that holds
us back. Even if people run 7.x, they should be able to build a kernel
if they run `make kernel-toolchain' or `make buildworld' first.


# 0e96a56a 14-Jan-2010 Ruslan Ermilov <ru@FreeBSD.org>

Flatten out vendor tree.


# 5f5bb1d1 11-Jan-2010 Bjoern A. Zeeb <bz@FreeBSD.org>

Rather than using an extra variable, only call uname if really needed and
then directly assign the result.

Submitted by: jmallett
MFC after: 24 days
X-MFC with: r201815


# 9c6a3d82 09-Jan-2010 Bjoern A. Zeeb <bz@FreeBSD.org>

Use uname -m [1] and rename BUILD_ARCH to XMACHINE[2].

Submitted by: nyan[1], imp[2]
MFC after: 27 days
X-MFC with: r201815


# 3c55ed70 08-Jan-2010 Bjoern A. Zeeb <bz@FreeBSD.org>

To avoid hardcoding further kernel configuration names for
make universe, split the logic into two parts:
- 1st to build worlds and generate kernel configs like LINT.
- 2nd to build kernels for a given TARGET architecture correctly
finding all newly generated configs, not knowing anything about
LINT anymore. (*)

(*) If you know better/cleaner/... ways to do this, let me know.

Discussed on/with: arch, jhb, rwatson
MFC after: 1 month


# abe15e55 01-Jan-2010 Roman Divacky <rdivacky@FreeBSD.org>

Updaet clang to 92395.


# 571945e6 15-Dec-2009 Roman Divacky <rdivacky@FreeBSD.org>

Update LLVM to 91430.


# 1569ce68 01-Dec-2009 Roman Divacky <rdivacky@FreeBSD.org>

Update clang to r90226.


# 06f9d401 01-Dec-2009 Roman Divacky <rdivacky@FreeBSD.org>

Update LLVM to r90226.


# b3d5a323 18-Nov-2009 Roman Divacky <rdivacky@FreeBSD.org>

Update clang to r89205.


# 907da171 18-Nov-2009 Roman Divacky <rdivacky@FreeBSD.org>

Update LLVM to r89205.


# 36bf506a 04-Nov-2009 Roman Divacky <rdivacky@FreeBSD.org>

Update LLVM to r86025.


# 4a142eb2 23-Oct-2009 Roman Divacky <rdivacky@FreeBSD.org>

Update LLVM to r84949.


# 4c8b2481 14-Oct-2009 Roman Divacky <rdivacky@FreeBSD.org>

Update clang to r84119.


# 59850d08 14-Oct-2009 Roman Divacky <rdivacky@FreeBSD.org>

Update llvm to r84119.


# b2f21fb0 22-Jun-2009 Ed Schouten <ed@FreeBSD.org>

Update LLVM sources to r73879.


# 518099af 07-Jun-2009 Simon L. B. Nielsen <simon@FreeBSD.org>

Import OpenSSL 0.9.8k.


# ec2b103c 02-Jun-2009 Ed Schouten <ed@FreeBSD.org>

Import Clang, at r72732.


# 009b1c42 02-Jun-2009 Ed Schouten <ed@FreeBSD.org>

Import LLVM, at r72732.


# a982207b 26-May-2009 Ed Schouten <ed@FreeBSD.org>

Vendor import of ee 1.4.2.


# f85e6b52 01-Apr-2009 Bjoern A. Zeeb <bz@FreeBSD.org>

Add a new world named 'mips' to our universe.

Discussed with: imp


# 25bacc78 13-Mar-2009 Warner Losh <imp@FreeBSD.org>

Implement the xdev target. When you define XDEV=arch XDEV_ARCH=arch,
you can build the cross development tools and install them as
$XDEV-freebsd-xxx for each tool. This allows one to use autoconf to
find the tools for cross building scenarios.


# 22188e6a 14-Jan-2009 Sam Leffler <sam@FreeBSD.org>

vendor import of 0.5.11


# 17914a6e 14-Jan-2009 Sam Leffler <sam@FreeBSD.org>

flatten vendor branch


# bfa765fe 27-Dec-2008 Bjoern A. Zeeb <bz@FreeBSD.org>

Permit digits at the beginning and end of kernel config file names for
`make universe'. This catches a few more arm and, once enabled, mips
configs and permits having local configs named like NOINET6.

Reviewed by: phk
MFC after: 4 weeks


# 603ca3cb 17-Dec-2008 Sam Leffler <sam@FreeBSD.org>

enable support for st_flags and st_gen


# a6b691a8 17-Dec-2008 Sam Leffler <sam@FreeBSD.org>

Apply the big hammer:
o remove all of compat except for pwcache and strstuftoll; these might
end up in libutil or similar so keep them in the subdir
o mv getid.c up to the top level; this looks like something that'll be
makefs-specific
o eliminate private versions of .h files in sys; use system files instead
o eliminate private ffs_tables.c; use the system version directly (might
want to adopt const'ification at some point but that's the only diff I
can see)
o mv remaining code from sys to ffs and strip out unused bits; this now
becomes part of makefs
o add compat defs and shims to makefs.h
o strip all vestiges of nbtool_config.h, compat_defs.h, etc.
o fixup includes after file shuffling
o rename system #defines that do implicit byte swapping to have an _swap
suffix; e.g. DIRSIZ -> DIRSIZ_SWAP, cg_inosused -> cg_inosused_swap; if
we ever add endian-agnostic support to the kernel these can go back to
their original names
o strip some netbsd'isms that aren't worth shim'ing (e.g. _DIAGASSERT)

Code compiles w/o complaints but is untested.


# e86288c3 17-Dec-2008 Sam Leffler <sam@FreeBSD.org>

First step toward proper mtree integration:
o use mtree code directly from ../mtree; s/spec(fp)/mtree_readspec(fp)/
(assume this will eventually go in usr.sbin)
o nuke st_rdev use; there's no reason to create filesystems with device nodes
o shim missing compat bits for inotype and nodetoino
o remove now unneeded compat/mtree bits, pack_dev.?, and stat_flags.?
o temporarily move getid.c code up to compat to keep this building


# 4eb58ef4 17-Dec-2008 Sam Leffler <sam@FreeBSD.org>

split stanzas in preparation for better integration


# 4bb9ca57 30-Nov-2008 Alfred Perlstein <alfred@FreeBSD.org>

Provide a 'tinderbox' target that compiles enough of FreeBSD that
a developer can rest reasonably assured that the tinderbox will not
be broken. This target leverages most of 'universe' but will exit
non-zero and output a summary at the end.

"make tinderbox"


# 89eac01a 27-Nov-2008 Sam Leffler <sam@FreeBSD.org>

not needed


# d972528d 27-Nov-2008 Sam Leffler <sam@FreeBSD.org>

virgin import of ath hal


# 4dde1648 24-Nov-2008 Warner Losh <imp@FreeBSD.org>

Remove the dump_node and vispath routines from compat/mtree/spec.c.
They aren't needed, and were the only users of the compat/vis.[ch]
files. As such, remove them from the Makefile.


# 33367c7f 24-Nov-2008 Dag-Erling Smørgrav <des@FreeBSD.org>

Change the universe target to warn the user for every world or kernel that
fails. The error message includes a reference to the relevant log file.

Approved by: phk
MFC after: 1 week


# b6842439 23-Nov-2008 Sam Leffler <sam@FreeBSD.org>

prepare makefs for import to base


# a5c6cfa0 12-Nov-2008 Robert Watson <rwatson@FreeBSD.org>

Vendor import of OpenBSM 1.1 alpha2, which incorporates the following
changes since the last imported OpenBSM release:

OpenBSM 1.1 alpha 2

- Include files in OpenBSM are now broken out into two parts: library builds
required solely for user space, and system includes, which may also be
required for use in the kernels of systems integrating OpenBSM. Submitted
by Stacey Son.
- Configure option --with-native-includes allows forcing the use of native
include for system includes, rather than the versions bundled with OpenBSM.
This is intended specifically for platforms that ship OpenBSM, have adapted
versions of the system includes in a kernel source tree, and will use the
OpenBSM build infrastructure with an unmodified OpenBSM distribution,
allowing the customized system includes to be used with the OpenBSM build.
Submitted by Stacey Son.
- Various strcpy()'s/strcat()'s have been changed to strlcpy()'s/strlcat()'s
or asprintf(). Added compat/strlcpy.h for Linux.
- Remove compatibility defines for old Darwin token constant names; now only
BSM token names are provided and used.
- Add support for extended header tokens, which contain space for information
on the host generating the record.
- Add support for setting extended host information in the kernel, which is
used for setting host information in extended header tokens. The
audit_control file now supports a "host" parameter which can be used by
auditd to set the information; if not present, the kernel parameters won't
be set and auditd uses unextended headers for records that it generates.

OpenBSM 1.1 alpha 1

- Add option to auditreduce(1) which allows users to invert sense of
matching, such that BSM records that do not match, are selected.
- Fix bug in audit_write() where we commit an incomplete record in the
event there is an error writing the subject token. This was submitted
by Diego Giagio.
- Build support for Mac OS X 10.5.1 submitted by Eric Hall.
- Fix a bug which resulted in host XML attributes not beingguments so that const strings can be passed
as arguments to tokens. This patch was submitted by Xin LI.
- Modify the -m option so users can select more then one audit event.
- For Mac OS X, added Mach IPC support for audit trigger messages.
- Fixed a bug in getacna() which resulted in a locking problem on Mac OS X.
- Added LOG_PERROR flag to openlog when -d option is used with auditd.
- AUE events added for Mac OS X Leopard system calls.

Obtained from: TrustedBSD Project
Sponsored by: Apple Inc.


# 4b5f8caf 12-Nov-2008 Robert Watson <rwatson@FreeBSD.org>

Flatten OpenBSM vendor tree in preparation for new OpenBSM vendor
import.


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# f646fedc 26-Sep-2008 Xin LI <delphij@FreeBSD.org>

Vendor import of netcat from OPENBSD_4_4

Obtained from: OpenBSD
MFC after: 7.1-RELEASE


# bb1499d2 21-Sep-2008 Simon L. B. Nielsen <simon@FreeBSD.org>

Vendor import of OpenSSL 0.9.8i.


# 7699430e 01-Sep-2008 Dag-Erling Smørgrav <des@FreeBSD.org>

When I flattened the dist tree, some files that had been removed in prior
vendor imports were inadvertantly resurrected. Re-remove them.


# 6d999fe8 27-Aug-2008 Peter Wemm <peter@FreeBSD.org>

Pass 2 of flattening sendmail vendor area.


# c4a78426 23-Aug-2008 Simon L. B. Nielsen <simon@FreeBSD.org>

Flatten OpenSSL vendor tree.


# 7d150a86 07-Aug-2008 Edwin Groothuis <edwin@FreeBSD.org>

Cleanup (cont)

Remove Makefile, which isn't part of the distributed sources.

Remove Theory, which isn't part of the distributed source but came
out of /vendor/tzcode/.

Approved by: bde (mentor, implicit)


# af252fa7 07-Aug-2008 Edwin Groothuis <edwin@FreeBSD.org>

Flatting the vendor dist tree of tzdata.

Approved by: bde (mentor, implicit), des


# e3ae3b09 22-Jul-2008 Dag-Erling Smørgrav <des@FreeBSD.org>

Properly flatten openssh/dist.


# bd49a167 17-Jun-2008 Bjoern A. Zeeb <bz@FreeBSD.org>

Back out rev. 1.352 (SVN rev 179842) as phk pointed out that
SRCCONF was omitted here to be able to build non standard trees
with universe as well.


# fbb8871a 17-Jun-2008 Bjoern A. Zeeb <bz@FreeBSD.org>

For make universe, in addition to make.conf, also ignore a
src.conf with possibe non-default options.

Reviewed by: ru
MFC after: 10 days


# 12ed81c0 25-May-2008 John Birrell <jb@FreeBSD.org>

Backout the change to remove sun4v.

Note that sun4v is currently broken on T2000 hardware so it's pretty
much a lame duck at this point.


# 5a94dc22 24-May-2008 John Birrell <jb@FreeBSD.org>

Remove sun4v from the list of arches in 'make universe'. There has been
no active development on it for over a year now and it isn't
reliable under a simple buildworld. Developers can't be expected to
test code targeted for it.


# 139fb43d 22-May-2008 John Birrell <jb@FreeBSD.org>

Add a knob to allow just the kernels to be built during a 'make universe'.
This is useful when wanting to retry a broken build using NOCLEAN and the
buildworlds are known to have completed.


# fbf4979a 29-Apr-2008 Robert Watson <rwatson@FreeBSD.org>

Mention -U and -ai arguments to mergemaster in a comment for the
general mergemaster line.

MFC after: 3 days
Suggested by: Ben Laurie


# 753eda06 31-Mar-2008 Pav Lucistnik <pav@FreeBSD.org>

Double up the necessary size of /usr/obj to 800MB

PR: misc/99735
Reported by: Philip M. Gollucci <pgollucci@p6m7g8.com>,
Maxim Konovalov <maxim@macomnet.ru>


# ec51d61f 25-Mar-2008 Ruslan Ermilov <ru@FreeBSD.org>

Add code that should catch the most common case when date/time is
set incorrectly.


# 79e19f08 30-Jan-2008 John Baldwin <jhb@FreeBSD.org>

Add a note pointing to build(7) for more info.

MFC after: 1 week
Reviewed by: ru


# e2be0fd0 12-Dec-2007 Warner Losh <imp@FreeBSD.org>

We don't need to invent BSDMAKE. ${MAKE} is sufficient.

Submitted by: jmallet@


# 6029ad99 11-Dec-2007 Warner Losh <imp@FreeBSD.org>

Don't assume that make(1) is a bsd-like make program. It might not be. This
only matters in the early stages of bootstrapping, of course, but gnu make can't
handle bsd make Makefiles at all if they use any of the 'dot' directives, which
src/Makefile has in abudnance.


# 61858771 18-Oct-2007 Xin LI <delphij@FreeBSD.org>

Do not bail out for cleanworld target just because
chflags is failed.


# 32cd239b 16-May-2007 Dag-Erling Smørgrav <des@FreeBSD.org>

Expose all of {check,delete}-old{,-dirs,-files,-libs}.

MFC after: 3 weeks


# 1bdb3fb9 02-Apr-2007 Marcel Moolenaar <marcel@FreeBSD.org>

Introduce a variable TARGETS that can be set on the make command line
and that controls which platforms are being built as part of a "make
universe". By default TARGETS is set to the 8 platforms currently
being built. This variable is useful for running or re-running a
"make universe" with only a selected set of platforms. This makes the
universe target slightly more useful in cases the universe is limited
to a developer's scope or objectives. For example, when a universe
failed for a particular platform and fixes need to be tested for that
particular platform then a developer can restart the universe for
only that platform, even if the initial universe is still building
other platforms.


# 9a0b4798 27-Nov-2006 Ruslan Ermilov <ru@FreeBSD.org>

Add arm to universe.


# ba70462c 21-Nov-2006 John Birrell <jb@FreeBSD.org>

Remove the NO_CTF option. It would have been required to support
DTrace.


# 618fd0a6 01-Nov-2006 John Birrell <jb@FreeBSD.org>

When building an upgraded make, don't worry about processing it for
use with DTrace because the normal buildworld will do that when the
tools are built.


# b7e440b5 16-Oct-2006 John Birrell <jb@FreeBSD.org>

Add sun4v to the 'universe'.


# 1fde59f3 08-Sep-2006 Ruslan Ermilov <ru@FreeBSD.org>

In "make universe", utilize simplified cross-build synopsis,
"make TARGET=<machine> build*", now that it actually works.

Prompted by: imp


# ac4a4f14 22-Jun-2006 Warner Losh <imp@FreeBSD.org>

Per weak consensus on this topic, remove suggestion to set
HISTORICAL_MAKE_WORLD from the text that's output. This was committed
against the previous consensus. Leave the documentation in this file
as a compromose. The HISTORICAL_MAKE_WORLD knob is intentionally
obfuscated and we only trust people smart enough to read the Makefile
to use it. All others have no business using it due to its danger,
unless DESTDIR is set.

Dissentors: grog, obrien, trhodes


# 2c5e89c2 21-Jun-2006 David E. O'Brien <obrien@FreeBSD.org>

Note a short-cut in the build procedure.


# fb55e855 06-Jun-2006 Tom Rhodes <trhodes@FreeBSD.org>

Simply running ``make world'' will bomb unless you dig up the
undocumented HISTORICAL_MAKE_WORLD variable and set it. Note it
here so the blow up will not really be a surprise to people who
read.

Link the buildingworld chapter of our handbook in the README
while I'm here.


# 621e4ae1 06-Jun-2006 Warner Losh <imp@FreeBSD.org>

Create a new target 'buildenvvars'. This target reports the build
environment for cross building (the same one you'd get interactively
in make buildenv). This cannot be a simple

make -f Makefile.inc1 -V WMAKEENV

because in PATH is not set correctly unless one takes a trip through
the Makefile/Makefile.inc1 indirection, the logic of which is too
large to reproduce outside of Makefiles.


# becc5c62 26-May-2006 Alexander Leidinger <netchild@FreeBSD.org>

Connect the kernel subsystem API documentation generation framework to
the build infrastructure: "make doxygen"

Changes to the man pages will be made when some defaults are revisited.

Requested by: gnn


# bedda288 11-May-2006 John Baldwin <jhb@FreeBSD.org>

Disconnect Alpha from 'make universe'.


# c3ed02cf 18-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

Add the new "showconfig" target that displays build configuration.

Suggested by: phk


# 902f7c5b 15-Mar-2006 Ruslan Ermilov <ru@FreeBSD.org>

Make ${SUBDIR_TARGETS} work at the uppermost level as well.


# f1fb2096 01-Mar-2006 Yaroslav Tykhiy <ytykhiy@gmail.com>

Do not discard the current value of __MAKE_CONF when testing
whether MAKEOBJDIRPREFIX is set at a wrong place.

Reviewed by: ru
MFC after: 3 days


# e9729318 28-Nov-2005 Ruslan Ermilov <ru@FreeBSD.org>

Fix a bug in previous revision: skip LINT if it exists, not NOTES
(the source for LINT), as I initially intended.


# d72ae1ea 28-Nov-2005 Ruslan Ermilov <ru@FreeBSD.org>

universe: don't attempt to compile DEFAULTS and don't compile LINT twice.


# e2a36081 23-Jul-2005 Alexander Leidinger <netchild@FreeBSD.org>

Add delete-old and delete-old-libs targets:
- removes obsolete files/dirs or libraries.
- works in interactive (default) and batch mode
- respects DISTDIR
- documented in UPDATING and build(7)

The head of the file ObsoleteFiles.inc contains instructions how to add
obsolete files/dirs/libs to the list. Obviously one should add obsolete
files to this list, when he removes a file/dir/lib from the basesystem.

Additionally add check-old target:
- allows re@ to check if a file on the obsolete list resurfaces

Design goals:
- allows full control by the user (default interactive mode)
- possibility of scripted removal of obsolete files (batch mode)
- opt-in removal of files (explicit list of files)
- seperate removal of libs (2 delete targets)

Important design decissions:
- structured list of files to remove instead of a plain text file:
* allows to remove additional files if a NO_foo knob is specified
without the need to change the targets (no NO_foo knob is respected
yet)
- not using mtree like NetBSD does:
* mtree doesn't has an interactive mode

Discussed on: arch (long ago), current (this year)
Additional input from: re (hrs)
Approved by: mentor (joerg)


# dd0f3923 19-Jul-2005 Ruslan Ermilov <ru@FreeBSD.org>

- Embed the "buildkernels" target into the "universe" target so that
the "make -n universe" output looks more builder (human) friendly.

- Wrap the "universe" target into a ".if make(universe)"; it's only
intended to be called directly so it should be safe to do it.


# a59f6433 15-Jul-2005 Ruslan Ermilov <ru@FreeBSD.org>

Make the `distrib-dirs' target official and working properly
when cross-building (installing). (This is useful for NFS
installing world/kernel to another architecture machine.)


# ece6831d 16-Jun-2005 Ruslan Ermilov <ru@FreeBSD.org>

Provide 32-bit runtime support on amd64 as a separate distribution, lib32.

Prodded by: obrien
Nodded by: peter
Approved by: re


# 012a8b3f 01-Mar-2005 Hartmut Brandt <harti@FreeBSD.org>

Repo-copy tools/regression/usr.bin/make to tools/build/make_check
and adjust the path in the Makefile for the upgrade_checks target.
These checks are really feature upgrade checks that should be fast
and just find out whether we need to build a new make before
proceeding with other targets like buildworld. This makes the
place free for a real regression test suite in the old place.


# 9bdd3e84 26-Feb-2005 Ruslan Ermilov <ru@FreeBSD.org>

Added the convenience "distribution" target which calls the
target of the same name from src/etc/Makefile with a proper
environment, suitable to be used during upgrades and cross-
builds.


# 20bfae84 26-Feb-2005 Ruslan Ermilov <ru@FreeBSD.org>

Added the "buildenv" target, for developers only!

CAVEAT: if you run tcsh(1) from within this target, this will
reset your PATH making this target mostly useless. Careful!

Submitted by: jmg, ru


# 83c7ade9 21-Dec-2004 Ruslan Ermilov <ru@FreeBSD.org>

NOSHARED -> NO_SHARED


# e653b48c 21-Dec-2004 Ruslan Ermilov <ru@FreeBSD.org>

Start the dreaded NOFOO -> NO_FOO conversion.

OK'ed by: core


# e9bddef1 16-Dec-2004 Ruslan Ermilov <ru@FreeBSD.org>

Previous revision didn't fix all cases. For example,
testing for variables that are always defined (e.g.,
"make -V CC") would still print a false warning. Fix
this by only passing a submake the MAKEOBJDIRPREFIX=*
argument if it was present. As a result, we loose
the check for -DMAKEOBJDIRPREFIX, or an esoteric
"MAKEOBJDIRPREFIX = foo" (with embedded spaces), but
these are unorthodox enough to not care about them.

The make(1) bug mentioned in the previous revision
was just fixed in make/main.c,v 1.109.


# 26e8ef3f 12-Dec-2004 Marcel Moolenaar <marcel@FreeBSD.org>

Unbreak the MAKEOBJDIRPREFIX variable check by avoiding bugs in make(1).
When make flags are passed to make in the environment, the string is
chopped up in an (argc,argv) vector. This happens in brk_string() and
the chopped up string is stored in static buffer. When this includes
something like "-V BINMAKE", then a pointer into the static buffer is
put on the variables list for evaluation later. However, brk_string()
is used for more than just chopping up the MAKEFLAGS env. variable, so
it's very likely that the static buffer is clobbered. In fact, this is
exactly what happens.
The result is that _MAKEOBJDIRPREFIX gets assigned whatever garbage
the child make happens to emit, causing the test to fail. Like this:

pluto2% cd /usr/src
pluto2% make -V BINMAKE
"/q/6.x/src/Makefile", line 94: MAKEOBJDIRPREFIX can only be set in environment, not as a global (in /etc/make.conf) or command-line variable.
pluto2% make -dv -V BINMAKE | & grep _MAKEOBJDIRPREFIX
Global:_MAKEOBJDIRPREFIX = }

The fix is to not use MAKEFLAGS for this, but simple pass the flags
as arguments. Ideally make(1) should be fixed but that's beyond the
scope of my attention span.

This fixes release.


# 89f087e8 07-Dec-2004 Hartmut Brandt <harti@FreeBSD.org>

Fix builds with a read-only directory and a make upgrade. This is done
by forcing the creation of an object directory for the make regression
tests. Let make handle the tracking of the dependency and installation
of test_shell script.

Submitted by: ru


# 1d9468ee 05-Nov-2004 Peter Wemm <peter@FreeBSD.org>

Convert tools/lib32/build.sh into world connectable hooks. This still
rates pretty high on the "hack!" scale, but it works for me. Adding
-DWANT_LIB32 to the world build command line, or 'WANT_LIB32=yes' to
/etc/make.conf will include the 32 bit libraries with the build.

I have not made this default behavior. Cross compiling this stuff is an
adventure I have not investigated.

This is still a WIP. We needed this at work so that we could install from
a readonly obj tree - lib32/build.sh wasn't up to that.


# 588dbe0a 18-Oct-2004 Ruslan Ermilov <ru@FreeBSD.org>

Fixed MAKEOBJDIRPREFIX variable type check in case the env(1)
binary is not in PATH, as is the case with installworld, etc.


# d18c9906 18-Aug-2004 Ruslan Ermilov <ru@FreeBSD.org>

My take at improving the universe: allow the worlds to be
built in parallel. Examples:

make universe
Build worlds sequentially, each world sequentially.

make universe JFLAG=-j4
Build worlds sequentially, each world in parallel.

make -j4 universe
make -j4 universe JFLAG=-j2
Build four worlds in parallel, each world will be
built in parallel too. World parallelization is
set to four in the first synopsis, and to two in
the second.

make -j4 universe JFLAG=-B
Build worlds in parallel, each world sequentially.

("world" == buildworld followed by buildkernels.)

Prayers: obrien, phk


# 0ec443a0 18-Aug-2004 Ruslan Ermilov <ru@FreeBSD.org>

Moved the MAKEOBJDIRPREFIX check from Makefile.inc1 to Makefile,
to suppress warnings with installworld and distributeworld when
env(1) cannot be found in the PATH.


# 088cf0fb 09-Aug-2004 Hartmut Brandt <harti@FreeBSD.org>

Make make recurse into sub-directories and sub-makes when given
two -n flags. If only one -n flag is given the old behaviour
is retained (POLA). In order to make this working for installworld
change the IMAKEENV in this case so that the tools are found
(we have no temporary installation environment in this case).

Submitted by: ru (IMAKEENV part)


# 1f6483e4 23-Jul-2004 Ken Smith <kensmith@FreeBSD.org>

The doc team reworked the section of the handbook describing how to
rebuild things, further discouraging 'make world'. The title of
that section is now changed...


# 954c5b43 18-Jul-2004 Mark Murray <markm@FreeBSD.org>

Rename a preposterously long name with one that might look a bit
more professional. While here, write a few lines of explanatory
text to explain what its for.

Discussed with: rwatson
With hat: core


# 96c370cc 17-Jul-2004 David E. O'Brien <obrien@FreeBSD.org>

Add an "out" to the now required BS of defining DESTDIR.


# 44f4ffe2 17-Jul-2004 Marcel Moolenaar <marcel@FreeBSD.org>

Properly terminate a quoted string in the previous commit. Oddly
enough this only seems to cause problems with -jX so went unnoticed
until now.


# 0a945825 15-Jul-2004 Marcel Moolenaar <marcel@FreeBSD.org>

As per discussions on current@, protect unsuspecting users from
trying to upgrade their system with make world instead of following
the preferred and suggested sequence of commands. The fact remains
that make world does not upgrade the kernel.
Allow make world when DESTDIR has been specified, including when
DESTDIR specifies the root file system. Otherwise, print a useful
warning and fail.

Reviewed, tested and scrutinized by: gad@


# 0d4e175d 09-Jul-2004 Poul-Henning Kamp <phk@FreeBSD.org>

Add a JFLAG which can be used to speed up universe:
make universe JFLAG=-j12


# 43fc6762 13-Apr-2004 Dag-Erling Smørgrav <des@FreeBSD.org>

Add a kernel-toolchain target which only builds the bits required to build
a kernel. This is essentially the same as the toolchain target, except
that it does not build headers and libraries.

Submitted by: ru


# 839274c7 24-Mar-2004 Ruslan Ermilov <ru@FreeBSD.org>

Added the `toolchain' top-level target, which builds enough of
buildworld, up to and including libraries, except for actually
building the world.

Requested by: many


# 6e14763e 02-Mar-2004 Ruslan Ermilov <ru@FreeBSD.org>

Protect shell expansions.


# 506f4c06 29-Feb-2004 Johan Karlsson <johan@FreeBSD.org>

Add amd64 to universe.

Approved by: peter


# 224f0698 19-Feb-2004 Garance A Drosehn <gad@FreeBSD.org>

Change the 'realclean' target name to be 'cleanworld', to match other
targets like buildworld, installworld.

Suggested by: obrien


# 1a974787 19-Feb-2004 Garance A Drosehn <gad@FreeBSD.org>

Improvements on the 'make realclean' target. Some are style improvements,
but the biggest issue is that there are situatons when
${.OBJDIR} == ${.SRCDIR}, and in those situations the previous version
would happily remove all your /usr/src while it was cleaning out the objects.
Not that *you* would be happy about it... Thanks to bde for immediately
noticing this serious possibility.

More improvements will be made to this target, but I wanted to commit this
safer version right now, before anyone lost their /usr/src due to it.

Reviewed by: bde
MFC after: 10 days


# 2047c5d3 16-Feb-2004 Garance A Drosehn <gad@FreeBSD.org>

Add a 'realclean' target, which simply and quickly removes everything
that was built in previous 'make buildworld' and 'make buildkernel'. The
target knows enough to run a 'chflags -R 0' and a second 'rm' if the first
'rm' ran into any errors while removing files.

Suggested by: email with Richard Coleman Re: upcoming 64b-time_t changes.
Reviewed by: imp, marcel, and others on -hackers
MFC after: 1 week


# ef7af95a 08-Dec-2003 Peter Wemm <peter@FreeBSD.org>

Put on some factor 30+ bikeshed repellent and export the internal
Makefile.inc1 underscore targets with a big warning that they are
intentionally undocumented, subject to change without notice and
might poison your dog etc. If you don't know what they are, then they
are not meant for you to use.

I've added these by hand to so many many trees that I've lost count. I
find them rather useful.


# 2a6e9f88 07-Nov-2003 Kris Kennaway <kris@FreeBSD.org>

Don't allow the 'make' target (which rebuilds make for bootstrapping)
to become confused by a file called 'make' in /usr/src

Submitted by: ru


# 829340b1 04-Oct-2003 Ruslan Ermilov <ru@FreeBSD.org>

Retired the "most" and "installmost" targets -- they just
do not have a chance to work nowadays as we have a lot of
internal libraries in lib/.

Discussed with: marcel, wollman


# b797df80 30-Aug-2003 Ruslan Ermilov <ru@FreeBSD.org>

Cosmetics: folded BITGTS into TGTS.


# d911f786 27-Aug-2003 Marcel Moolenaar <marcel@FreeBSD.org>

Limit testing for an up-to-date version of make(1) to the world and
buildworld targets by default, but allow it to be done for all user
targets by introducing a boolean option, named ALWAYS_CHECK_MAKE.

This change is by no means perfect and I don't even want to claim
this to be a solution. It does however address the fact that not
everybody likes to see make(1) rebuilt simply because the regression
test failed for some reason or other, including pilot error. It
therefore serves the purpose of keeping the crowd happy until we
have something better or simply reached a compromise.

The reasons for changing the default behaviour are:
o It avoids a negative, possibly non-intuitive option,
o It's according to POLA and fond of feet,
o Only buildworld is documented to do its best to be
successful at reasonably cost.

Reviewed by: gad, imp, obrien, peter


# 5ab77811 06-Aug-2003 Ruslan Ermilov <ru@FreeBSD.org>

- Don't print "elf" before printing "make world" (aout support has been
removed).

- Avoid using printf(1) where a simple shell's built-in echo is enough.


# 9d1086a6 19-Jul-2003 Ruslan Ermilov <ru@FreeBSD.org>

The `mk' target is long dead.


# ef2c779b 19-Jul-2003 Ruslan Ermilov <ru@FreeBSD.org>

Use an up-to-date make binary in the upgrade_checks target if
one is already available. This avoids sometimes unnecessary
step of attempting to rebuild the make binary again which may
fail at all if, for example, one has removed his /usr/include
before doing an installworld (to keep /usr/include tidied up).

Pointed out by: kris, marcel


# ead4296e 04-Jul-2003 Ruslan Ermilov <ru@FreeBSD.org>

Don't hardcore PATH into BINMAKE; the latter should only be
comprised of the path to a make(1) binary (possibly the one
built by the "make" target in this Makefile), and a path to
a fresh share/mk. The idea is to allow "make release" pick
up the right "make" binary, if one exists.

This fixes release.5 I broke with the last commit here; the
second PATH here was overriding the right one from WMAKEENV
while rebuilding the "build-tools" for crunched binaries.


# 5dc63117 04-Jul-2003 Ruslan Ermilov <ru@FreeBSD.org>

Fixed style bugs related to parentheses in Makefile.inc1.

Submitted by: bde

Fixed nearby bug: propagate the root Makefile's idea of
the appropriate "make" binary down to release/Makefile.


# b31745f5 22-Jun-2003 Ruslan Ermilov <ru@FreeBSD.org>

Do the upgrade checks quietly.


# 0147d2aa 22-Jun-2003 Hidetoshi Shimokawa <simokawa@FreeBSD.org>

Allow installkernel.debug and reinstallkernel.debug.


# 5e9b1e9f 02-Apr-2003 Warner Losh <imp@FreeBSD.org>

Kill upgrade target docs. It too is stale.

Submitted by: ru


# 32265563 02-Apr-2003 Warner Losh <imp@FreeBSD.org>

Kill aout to elf upgrade path. From an old comment in the makefile:

# If -DWANT_AOUT is specified, a `make world' with OBJFORMAT=elf will
# update the legacy support for aout. This includes all libraries, ld.so
# and boot objects. This part of build should be regarded as
# deprecated and you should _not_ expect to be able to do this past the
# release of 4.0. You have exactly one major release to move entirely
# to elf.

Now that we're past 5.0, these aren't needed at all anymore and it is
well past its freshness date.


# 20902bd3 27-Feb-2003 Ruslan Ermilov <ru@FreeBSD.org>

Don't make buildworld and buildkernel in parallel.
And this is probably what you expect when you say
"make -jX buildworld buildkernel".


# 301c4069 19-Feb-2003 Ruslan Ermilov <ru@FreeBSD.org>

Don't spam sys/${MACHINE}/conf/ with _.${MACHINE}.makeLINT.

Submitted by: johan


# 1f4f7670 19-Feb-2003 Ruslan Ermilov <ru@FreeBSD.org>

Fixed universe.

Folded pc98 into the common case.
Retired ${JFLAG} (``make -jX universe'' should work).


# a3961cf4 18-Feb-2003 Poul-Henning Kamp <phk@FreeBSD.org>

Fix make universe's kernel builds on pc98: We need to pass both ARCH
and TARGET_ARCH.


# 76499f15 29-Jan-2003 Ruslan Ermilov <ru@FreeBSD.org>

Part 3/3 of unbreaking cross releases:

When we call "distributeworld" as part of "make release", we set
MACHINE and MACHINE_ARCH to point to TARGET and TARGET_ARCH; this
confused src/Makefile's idea of what ${MAKEPATH}, and consequently
${MAKE}, is (well, it still confuses ${MAKEPATH}, but see below).

To overcome this problem, we now take the following approach:

- We preserve the make(1)'s idea of its argv[0], ${MAKE}.
- We check to see if ${MAKE} passes the regression tests.
- If it does, we use it. Otherwise, we build and use an
up-to-date make(1).

This fix is still not quite right, in a situation where a single
/usr/obj is shared between different architecture machines, but
it is less critical and I hope to fix that soon.


# d98744aa 30-Dec-2002 Jens Schweikhardt <schweikh@FreeBSD.org>

Minor typo fixes and whitespace cleanups.


# deadd433 14-Dec-2002 Warner Losh <imp@FreeBSD.org>

Build kernels for pc98 just like the other platforms. Also, remove
one space to make the dates line up for easy mental math.

# Too bad only i386 and pc98 are the only parts of the universe
# currently buildable on my box :-(


# 280e7ae9 03-Dec-2002 Bruce A. Mah <bmah@FreeBSD.org>

Minor, cosmetic change to buildworld output to make it reflect
rev. 1.270 more accurately.

Reviewed by: ru
Approved by: re (jhb)


# 2e84ab94 02-Dec-2002 Ruslan Ermilov <ru@FreeBSD.org>

If /usr/bin/make fails to pass the regression tests, it might not
be suitable for building. The old action here was to upgrade the
make in /usr/bin. This is both bogus and does not work under non
root. So, rather than overwriting the existing /usr/bin/make, we
now install it into a safe location, and use it from there.

Reviewed by: imp, marcel
Approved by: re (rwatson)


# 113cf9e6 28-Nov-2002 Ruslan Ermilov <ru@FreeBSD.org>

Moved make(1) regression tests from src/Makefile to where they
belong (src/tools/regression/usr.bin/make), and use the latter
to test if make(1) is adequate for building the world.

Approved by: re


# 11c10660 02-Oct-2002 Poul-Henning Kamp <phk@FreeBSD.org>

PC98 is not a true architecture, but a subarchitecture of i386, so we need
to use a slightly differnt command to PC98::buildworld.


# 89d0989f 01-Oct-2002 Poul-Henning Kamp <phk@FreeBSD.org>

Add pc98 to universe target.
Remember about /usr/obj and look for conf/NOTES in the right place.


# 77c1699f 25-Sep-2002 Poul-Henning Kamp <phk@FreeBSD.org>

Add "make universe" target which:

for each arch i386 sparc64 alpha ia64
make buildworld TARGET_ARCH=$arch
if NOTES found
make LINT
foreach kern ${arch}/conf/[A-Z0-9]*
make buildkernel TARGET_ARCH=$arch KERNCONF=$kern

Errors from the individual steps are ignored and the stdout+stderr
are saved in distinct files in root of the source tree with names
like: _.${arch}.${target}

On my dual 1.6G Athlon it takes roughly four hours to run this target.


# 66422f5b 16-Sep-2002 Peter Wemm <peter@FreeBSD.org>

Initiate deorbit burn for the i386-only a.out related support. Moves are
under way to move the remnants of the a.out toolchain to ports. As the
comment in src/Makefile said, this stuff is deprecated and one should not
expect this to remain beyond 4.0-REL. It has already lasted WAY beyond
that.

Notable exceptions:
gcc - I have not touched the a.out generation stuff there.
ldd/ldconfig - still have some code to interface with a.out rtld.
old as/ld/etc - I have not removed these yet, pending their move to ports.
some includes - necessary for ldd/ldconfig for now.

Tested on: i386 (extensively), alpha


# 7b2f27b0 31-Aug-2002 Peter Wemm <peter@FreeBSD.org>

Deal with bootstrapping from an old -current (almost exactly a year old)
which fails the make tests (doesn't understand ${notdef:U}) and therefore
fails on __FBSDID in usr.bin/make/*. -DBOOTSTRAPPING is no help here since
this is before we are using the new share/mk/* files, and it would conflict
with the builtin -DBOOTSTRAPPING support later.. so use a different flag.


# 6c00ce58 20-Jul-2002 Ruslan Ermilov <ru@FreeBSD.org>

Indentation.


# 0dfe6a12 20-Jul-2002 Ruslan Ermilov <ru@FreeBSD.org>

Upgrade make(1) if not passing the ``.if defined(notdef) && ${notdef:U}''
test (revealed by bsd.lib.mk,v 1.134).


# 1b71212b 24-Jun-2002 Matthew Dillon <dillon@FreeBSD.org>

correct syntax in last commit


# dbc3719d 23-Jun-2002 Matthew Dillon <dillon@FreeBSD.org>

Document TARGET_ARCH


# af2dc868 03-Jun-2002 Ruslan Ermilov <ru@FreeBSD.org>

Reimplement FILES support using bsd.files.mk with the
same set of features as in recently added bsd.incs.mk
(FILESGROUPS, accessibility from both bsd.prog.mk and
bsd.lib.mk, de-pessimized typical installation path,
etc.) New standard targets: buildfiles, installfiles,
and files (buildfiles + installfiles).


# 8f88cb84 29-May-2002 David E. O'Brien <obrien@FreeBSD.org>

Line up the make world completed output.


# 28d2080a 24-May-2002 Ruslan Ermilov <ru@FreeBSD.org>

Forgot to commit this for the `includes' -> `buildincludes',
`incsinstall' -> `installincludes' changes.


# c7b111cb 12-May-2002 Ruslan Ermilov <ru@FreeBSD.org>

Added new bsd.incs.mk which handles installing of header files
via INCS. Implemented INCSLINKS (equivalent to SYMLINKS) to
handle symlinking include files. Allow for multiple groups of
include files to be installed, with the powerful INCSGROUPS knob.
Documentation to follow.

Added standard `includes' and `incsinstall' targets, use them
in Makefile.inc1. Headers from the following makefiles were
not installed before (during `includes' in Makefile.inc1):

kerberos5/lib/libtelnet/Makefile
lib/libbz2/Makefile
lib/libdevinfo/Makefile
lib/libform/Makefile
lib/libisc/Makefile
lib/libmenu/Makefile
lib/libmilter/Makefile
lib/libpanel/Makefile

Replaced all `beforeinstall' targets for installing includes
with the INCS stuff.

Renamed INCDIR to INCSDIR, for consistency with FILES and SCRIPTS,
and for compatibility with NetBSD. Similarly for INCOWN, INCGRP,
and INCMODE.

Consistently use INCLUDEDIR instead of /usr/include.

gnu/lib/libstdc++/Makefile and gnu/lib/libsupc++/Makefile changes
were only lightly tested due to the missing contrib/libstdc++-v3.
I fully tested the pre-WIP_GCC31 version of this patch with the
contrib/libstdc++.295 stuff.

These changes have been tested on i386 with the -DNO_WERROR "make
world" and "make release".


# 76fdd728 07-May-2002 John W. De Boskey <jwd@FreeBSD.org>

Bring doc up-to-date with current buildworld/buildkernel practices.

Reviewed by: jhb


# afeaaa84 07-May-2002 Ruslan Ermilov <ru@FreeBSD.org>

Added internal, non-recursive (SUBDIR) versions of the `all-man'
and `maninstall' targets. This fixes the issue where each subdir
was descended into twice during "make all", and also resurrects
the standardization of `maninstall'.

Urged by: bde


# 8f1f55e9 30-Apr-2002 Ruslan Ermilov <ru@FreeBSD.org>

Milestone #2 in cross-arch make releases. They now work!

You need to set TARGET_ARCH and possibly TARGET, the same
way you normally do it for a cross build(7).

Renamed `distribworld' to a more natutal `distributeworld'.

Put pwd_mkdb(8) under ${INSTALLTMP}; for `distributeworld'.


# d672a609 29-Apr-2002 Ruslan Ermilov <ru@FreeBSD.org>

Parallel "make release" fixes.


# 6bde859f 26-Apr-2002 Ruslan Ermilov <ru@FreeBSD.org>

Milestone #1 in cross-arch make releases.

Do not install games and profiled libraries to the ${CHROOTDIR}
with the initial installworld.

Eliminate the need in the second installworld. For that, make sure
_everything_ is built in the "world" environment, using the right
tool chain.

Added SUBDIR_OVERRIDE helper stuff to Makefile.inc1. Split the
buildworld process into stages, and skip some stages when
SUBDIR_OVERRIDE is set (used to build crypto, krb4, and krb5
dists).

Added NO_MAKEDB_RUN knob to Makefile.inc1 to avoid running
makewhatis(1) at the end of installworld (used when making crypto,
krb4, and krb5 dists).

In release/scripts/doFS.sh, ensure that the correct boot blocks are
used.

Moved the creation of the "crypto" dist from release.5 to
release.2.

In release.3 and doMFSKERN, build kernels in the "world"
environment. KERNELS now means "additional" kernels, GENERIC is
always built.

Ensure we build crunched binaries in the "world" environment.
Obfuscate release/Makefile some more (WMAKEENV) to achieve this.

Inline createBOOTMFS target.

Use already built GENERIC kernel modules to augment mfsfd's
/stand/modules. GC doMODULES as such.

Assorted fixes:

Get rid of the "afterdistribute" target by moving the single use
of it from sys/Makefile to etc/Makefile's "distribute".

Makefile.inc1: apparently "etc" no longer needs to be last for
"distribute" to succeed.

gnu/usr.bin/perl/library/Makefile.inc: do not override the
"install" and "distribute" targets, do it the "canonical" way.

release/scripts/{man,cat}pages-make.sh: make sure Perl manpages and
catpages appear in the right dists. Note that because Perl does
not respect the MANBUILDCAT (and NOMAN), this results in a loss of
/usr/share/perl/man/cat* empty directories. This will be fixed
soon.

Turn MAKE_KERBEROS4 into a plain boolean variable (if it is set it
means "make KerberosIV"), as documented in the make.conf(5)
manpage. Most of the userland makefiles did not test it for "YES"
anyway.

XXX Should specialized kerberized libpam versions be included into
the krb4 and krb5 dists? (libpam.a would be incorrect anyway if
both krb4 and krb5 dists were choosen.)

Make sure "games" dist is made before "catpages", otherwise games
catpages settle in the wrong dist.

Fast build machine provided by: Igor Kucherenko <kivvy@sunbay.com>


# b25a566d 23-Apr-2002 Ruslan Ermilov <ru@FreeBSD.org>

Merge bsd.obj.mk's version of the _SUBDIR target with bsd.subdir.mk.

Ensure all standard targets honor SUBDIR. Now `make obj' descends into
SUBDIRs even if NOOBJ is set (some descendants may still need an object
directory, but we do not have such precedents). Now `make install' in
non-bsd.subdir.mk makefiles runs `afterinstall' target _after_ `install'
in SUBDIRs, like we do in bsd.subdir.mk. Nothing depended on the wrong
order anyway.

Fixed `distribute' targets (except for the bsd.subdir.mk version) so that
they do not depend on _SUBDIR; `distribute' calls `install' which already
depends on _SUBDIR.

De-standardize `maninstall', otherwise manpages would be installed twice.
(To be revised later.)


# b56f8802 20-Apr-2002 Gregory Neil Shapiro <gshapiro@FreeBSD.org>

Despite the fact that it is documented in the handbook, the release notes,
and UPDATING and has been posted to both freebsd-current and
freebsd-stable, users are still not adding the required smmsp user and
group before doing an installworld. Therefore, don't let users do an
installworld unless they have followed directions.

Add a new installcheck Makefile target which installworld runs before
actually starting the installation. This target can be used by other parts
of userland as well. The first addition to the target is to check for the
smmsp user and group if NO_SENDMAIL isn't defined.

Others may add checks to this target as they see fit.

MFC after: 1 week


# 912422f0 03-Mar-2002 Giorgos Keramidas <keramida@FreeBSD.org>

Makefile.inc0 is no longer used.
Update comments to reflect that.

Approved by: dd, silence in -audit.


# ceeb1caa 08-Feb-2002 Ruslan Ermilov <ru@FreeBSD.org>

FreeBSD 4.1 bootstrapping aid (``:C'' make(1) modifier used
by gnu/usr.bin/binutils/as/Makefile.inc0 is not there).

XXX: make(1) should return with a non-zero exit status here.


# 918fb560 27-Mar-2001 Ruslan Ermilov <ru@FreeBSD.org>

Make it possible to build manpages for the entire source tree.


# bc4311be 04-Mar-2001 David E. O'Brien <obrien@FreeBSD.org>

End words with a `.'.
Fixed spacing messed up in rev 1.244.


# afcf05e4 02-Mar-2001 Ruslan Ermilov <ru@FreeBSD.org>

setlocale(3) has been fixed to match POSIX standard:
LC_ALL takes precedence over other LC_* envariables.


# 6333b4a2 13-Feb-2001 Jordan K. Hubbard <jkh@FreeBSD.org>

Cosmetic fix: Document targets at the top in a uniform way.


# 59084d0c 05-Dec-2000 David E. O'Brien <obrien@FreeBSD.org>

Add back displaying the `world' start time when displaying the stop time.
However, don't prefix it with '>>>', so those greping for times will
not see it.


# 8fd61eaf 01-Dec-2000 Jordan K. Hubbard <jkh@FreeBSD.org>

Also list kernel target so one can get to it.


# 63b02f90 01-Dec-2000 Jordan K. Hubbard <jkh@FreeBSD.org>

Document the "kernel" target.


# 0a0743b5 20-Nov-2000 Marcel Moolenaar <marcel@FreeBSD.org>

Fix release, broken by the perl cross-build fixes.

The distribute target is basicly the same as an install. For
perl, this means that miniperl is needed. Since miniperl is
only present in the object directory, we need to make sure
the path is set correctly. To do this, we have make release
use a new distribworld target that sets the path before doing
a make distribute.


# 3cbf71ae 07-Nov-2000 Jordan K. Hubbard <jkh@FreeBSD.org>

While we're still arguing over debugging output, at least be in a
self-consistent state.

Requested by: bde


# 42067725 05-Nov-2000 Jordan K. Hubbard <jkh@FreeBSD.org>

MFS: eliminate duplicate start line


# 737ffab7 19-Sep-2000 Mark Murray <markm@FreeBSD.org>

Pass the reinstallkernel target through from Makefile to Makefile.inc1.


# 00eb8cbd 31-Jul-2000 Alexander Langer <alex@FreeBSD.org>

Mention the buildkernel/installkernel targets in the documentation.


# 84a9e747 24-Feb-2000 Mark Murray <markm@FreeBSD.org>

We have a new world order in libraries.

Goodbye libdes; Welcome libcrypto.


# 549f978a 09-Jan-2000 Marcel Moolenaar <marcel@FreeBSD.org>

Add the buildkernel and installkernel targets.
While here fix some minor style bugs (whitespacing) and move the
make target from Makefile.upgrade to this file.
Simplify the make target to make it readable.


# 3e3a3133 23-Dec-1999 Marcel Moolenaar <marcel@FreeBSD.org>

Descent into sub-makes with a fixed PATH. The PATH does not contain
/usr/games on purpose. All tools in /usr/games are built as part of
the tool stages to support building world on machines without games.

This fixes any build problems that have been caused by non-standard
paths and also removes the primary objection for not using absolute
paths.


# 6e59a256 08-Dec-1999 Marcel Moolenaar <marcel@FreeBSD.org>

Oops! bypassing Makefile.inc0 without adding a `world' target is not
a good idea. Adding `world' to Makefile is save, because all hairy
bits are in Makefile.inc1 anyway.


# 894157f5 08-Dec-1999 Marcel Moolenaar <marcel@FreeBSD.org>

Restore the upgrade path from -stable to -current and prepare for
non-root cross-building.

o Makefile.inc0 is not used anymore.
o The legacy aout build has been removed.
o Selectively build tools *before* building includes/libraries.
o Avoid using mtree to populate the obj tree.


# 1379f879 18-Sep-1999 John Birrell <jb@FreeBSD.org>

Remove a comment about setting objformat to elf by default. We've
done that already.

Change the -DWANT_AOUT comment to refer to 4.0 so that it sounds less
silly.


# 97d92980 27-Aug-1999 Peter Wemm <peter@FreeBSD.org>

$Id$ -> $FreeBSD$


# e74ce1d5 31-Jul-1999 Tim Vanderhoek <hoek@FreeBSD.org>

Comment change: "Be warned, this will update your installed system, except
for the configuration files in the /etc directory." .... and the kernel.


# 990cbc64 29-Mar-1999 David E. O'Brien <obrien@FreeBSD.org>

Change !defined(NOAOUT) knob to defined(WANT_AOUT).


# 7785c4f2 20-Mar-1999 Jordan K. Hubbard <jkh@FreeBSD.org>

Note that the upgrade target exists, and what it does.

Requested by: Wayne M Barnes <stabilizer@klentaq1.emergingtech.org>


# 8bc83b23 17-Feb-1999 Mike Smith <msmith@FreeBSD.org>

Use ${MAKE} not 'make -f'

Submitted by: tfreak@fluffybunny.jaded.net


# 1c67f883 26-Jan-1999 Jordan K. Hubbard <jkh@FreeBSD.org>

Frob the upgrade target to be a bit more inclusive. This appears to
be a good bit more successful at doing automated upgrades than the
previous aout-to-elf target, anyway. I'll MF3 in a couple of days
depending on how this does.


# 41da0323 28-Dec-1998 Peter Wemm <peter@FreeBSD.org>

Dip my toes into the fire and zap the leftover lkm hooks.. It seems they
try and recurse if the lkm dir exists for some reason but there isn't any
Makefile there. (eg: stray files prevented cvs update -P from removing the
empty dirs)


# 45e5f8f9 17-Oct-1998 Bruce Evans <bde@FreeBSD.org>

Restored all lost user targets that are supported by bsd.subdir.mk:
checkdpadd, lint, maninstall, objlink, regress and tags.

Removed bogus user target cleanobj. It is the non-recursive base of
the cleandir target, so it is not useful (or usable) here.


# d297a4c5 29-Sep-1998 Jordan K. Hubbard <jkh@FreeBSD.org>

Add back a few useful targets lost in the reshuffle.
Reviewed by: jb


# cd486f4d 28-Sep-1998 John Birrell <jb@FreeBSD.org>

The legacy stuff needs gobs more space in the obj tree. 165->260 Mb.


# ce53af53 14-Sep-1998 Jordan K. Hubbard <jkh@FreeBSD.org>

Restore default implict behavior of running the all target we had before.


# db23f9b3 10-Sep-1998 Andrey A. Chernov <ache@FreeBSD.org>

Revive hierarchy again.
Please commit only patches, not whole files!


# 2b0daddd 09-Sep-1998 John Birrell <jb@FreeBSD.org>

Add the missing rerelease target back.

Reported by: Justin Gibbs.

Add the move-aout-libs upgrade target so that people who have already
gone elf can put their libraries through the mincer. Anyone who hasn't
deleted aout libraries from /usr/lib (but has done a make world putting
the new aout libs in /usr/lib/aout) will be asked for confirmation
to delete them one by one.


# dac1e6e6 07-Sep-1998 Andrey A. Chernov <ache@FreeBSD.org>

Revive hierarchy target


# 4c1e0b35 04-Sep-1998 John Birrell <jb@FreeBSD.org>

YAMT (yet another missing target). It's a shame that these have to
be visible to the user. Maybe `make release' should call the backend
directly.


# 5eb5dd76 04-Sep-1998 John Birrell <jb@FreeBSD.org>

Add the distribute target that make release wants.


# 11a09d82 31-Aug-1998 John Birrell <jb@FreeBSD.org>

Add the clean cleandepend and cleanobj targets back.


# 11fb97da 30-Aug-1998 John Birrell <jb@FreeBSD.org>

E-day build system changes.

- Moved most of the guts of Makefile to Makefile.inc1 to become the
backend for the build system.
- The new Makefile doesn't suffer from problems including the wrong
sys.mk because it doesn't use anything in there or bsd.own.mk. So,
from now on, the proper build command is just `make world' (or
buildworld).
- The intermediate makefiles called Makefile.inc0 and Makefile.upgrade
fiddle with the OBJFORMAT and MAKEOBJDIRPREFIX variables so that
both aout and elf object trees can coexist. Makefile.upgrade contains
the aout->elf transition build.
- A cross build environment is now very close to reality. Specifying
TOOLDIR, setting OBJFORMAT and MAKEOBJDIRPREFIX allow that.

See the comments in Makefile for more info.


# cf5656e8 17-Aug-1998 John Birrell <jb@FreeBSD.org>

Build objformat on all architectures.


# fba6da92 04-Aug-1998 Bruce Evans <bde@FreeBSD.org>

Fully enable the optimization of not building dependencies unless NOCLEAN
is set. It was disabled in the -j case. See rev.1.173.


# 6697f536 04-Aug-1998 Peter Wemm <peter@FreeBSD.org>

Descend into etc always; src/etc/sendmail/Makefile has make.conf hooks
for building and installing a local sendmail.cf..

I'm a little nervous about the implications of having an obj dir built
under etc (to get to the obj dir for sendmail), but the make rules appear
to DTRT.


# cf94fb21 03-Aug-1998 Bruce Evans <bde@FreeBSD.org>

Fixed building -current under 2.2.6 using `make world'. Moved some
recently added definitions from sys.mk to bsd.own.mk. Include the
src-relative bsd.own.mk in src/Makefile to pick up all new definitions.
Don't check that MACHINE_ARCH is defined in src/Makefile, since it is
(and should have been) guaranteed to be defined.


# 0ae9a94a 02-Aug-1998 Wolfram Schneider <wosch@FreeBSD.org>

Malformed conditional if MACHINE_ARCH is not defined. From rev 1.195.


# 1d86f959 07-Jul-1998 Bruce Evans <bde@FreeBSD.org>

Oops, don't build tools for building games, etc. when we're not building
games, etc.

Define _BUILD_TOOLS in sub-makes for building tools. This will be used
to avoid using uninstalled tools in colldef and mklocale.


# 27406826 06-Jul-1998 Bruce Evans <bde@FreeBSD.org>

Build internal tools in build-tools so that they have some chance of
working when the target system is not binary compatible. Use various
hacks to work around minor problems in the source and binary tree
layouts:
- caesar and strfile are built normally (the source layout is good),
then installed by copying them to ${WORLDTMP}/usr/bin (they are
installed in ${WORLDTMP}/usr/games, but I don't want to put that
in $PATH).
- colldef and mklocale are built and installed normally. Messy and
incomplete relative path searches for them and caesar and strfile
can now go away.
- internal tools that aren't installed are now built and left lying
around for the `make all' pass to use. If the target system is
not binary compatible, it is critical that these tools don't get
rebuilt. Cleaning of the obj tree before building the internal
tools should ensure this.
- most internal tools are built using internal build-tools targets,
but tn3270 is simpler for a change - it has all the tools in a
separate tree, so they can be built using `make all'.


# 6943ec80 17-Jun-1998 Bruce Evans <bde@FreeBSD.org>

Added yacc to the bootstrap tools. It is needed very early to
build at least compile_et and lex, and although almost any version
of yacc could work, the version in -stable doesn't actually work
with -current makefiles because it doesn't support -o.

Submitted by: Ian Holland <ianh@tortuga.com.au>


# e2fea9c5 12-Jun-1998 Peter Wemm <peter@FreeBSD.org>

join(1) is used by lorder, add it to build-tools. (otherwise, things get
ugly when an a.out /usr/bin/join sees the elf LD_LIBRARY_PATH from a
'make world' and it's a.out ld.so tries to load the elf libc.so.)


# 70c9f974 09-Jun-1998 Bruce Evans <bde@FreeBSD.org>

Quick fixes for the mtree bootstrap:
- don't announce `mtree' as `mtools'.
- don't install to ${DESTDIR}/usr/sbin (which often doesn't exist if
DESTDIR is set and may be read-only if DESTDIR is not set).
- install to (${WORLDTMP}/usr/sbin so that the new mtree is actually
in $PATH if DESTDIR is set.
- don't use the host make or the host sys.mk. This is probably
unimportant.
- use a temporary obj dir like the one for `make'. This was mainly
necessary because I forgot to remove the MAKEOBJDIRPREFIX unsetting
which was just a bug for mtree. A non-quick fix would handle mtree
more like a bootstrap tool (the only additional complications are to
create ${BINDIR} and avoid excessive cleaning). Except a non-quick
fix would change much more.


# f55eda87 07-Jun-1998 Søren Schmidt <sos@FreeBSD.org>

Compile mtree before it is used, this is a hack, but make world has
failed since new functionality was introduced in mtree.


# 8f24c563 05-Jun-1998 Joseph Koshy <jkoshy@FreeBSD.org>

-DALLLANG is now obsolete in "src/Makefile"; move to "src/release/Makefile".

PR: 6685


# 00ef3836 05-Jun-1998 Bruce Evans <bde@FreeBSD.org>

Don't run the target's ldconfig or build it as a tool. If target == host
(in particular, if DESTDIR is empty or "/"), then the host's ldconfig will
be the target's ldconfig by the time it is run.

Fixed disordering of env.

Don't know too much about libcrypt. Use exactly the same definition of
_libcrypt as lib/Makefile.

Don't build strip twice.


# 9e3b9b4d 05-Jun-1998 Bruce Evans <bde@FreeBSD.org>

Fixed bogotification of the lex bootstrap in rev.1.186 and the previous
commit - don't wander off to bootstrap mtree and include in the middle
of bootstrapping lex, and don't forget what we were doing and build
some lex obj dirs twice.


# 7c780e8e 05-Jun-1998 Jordan K. Hubbard <jkh@FreeBSD.org>

Add mtree to bootstrap targets now that peter has added a new
keyword to it which will otherwise call the next target to fall over
on transitioning systems.


# 44600413 03-Jun-1998 John Birrell <jb@FreeBSD.org>

Build aout bootstrap tools only on i386.

`make world' now works on alpha!


# ad6833e4 04-Jun-1998 Philippe Charnier <charnier@FreeBSD.org>

Typos.


# e4b5626a 02-Jun-1998 John Hay <jhay@FreeBSD.org>

Don't build perl in build-tools: if NOPERL is defined.


# 1b53d90e 02-Jun-1998 Peter Wemm <peter@FreeBSD.org>

Fix brain-fart. "usr.bin/reinstall" should be "sbin/ldconfig".
No comment. *-<:-)

Submitted by: "Pierre Y. Dampure" <pierre.dampure@k2c.co.uk>


# c6bf2e49 01-Jun-1998 Peter Wemm <peter@FreeBSD.org>

ldconfig is used at the end of installworld.


# f40a876b 30-May-1998 John Hay <jhay@FreeBSD.org>

Add a test to see if the secure directory exists, before deciding which
crypt library should be used when building bootstrap-libraries. This
make it work on machines that don't have the secure directory.
Thanks to Paul Allenby <pallenby@mikom.csir.co.za> for bringing it to
my attention.


# 78beb0d5 28-May-1998 Jordan K. Hubbard <jkh@FreeBSD.org>

Whoops! Committed the wrong version of that file - here's the one which
works.


# 873e8456 28-May-1998 Jordan K. Hubbard <jkh@FreeBSD.org>

Move sh after awk in build tools - sh requires awk to build. Add id
to list of bootstrap tools.
Submitted by: jhay


# 215c9a37 28-May-1998 Peter Wemm <peter@FreeBSD.org>

Only pre-build the "default" libcrypt, since it gets to set the symlinks
for the rest of the build. I'm not certain, but I think this determines
which crypt() goes into /sbin/init. This change shouldn't hurt anyway. :-)

Based on a suggestion by: bde


# 452bbab3 27-May-1998 Peter Wemm <peter@FreeBSD.org>

Urgent fix for bootstrap target. If the old symlinks are pointing to the
real source tree, the bootstrap target would attempt have cpio copy the
files over themselves, unlinking them first. I think this only happened
with make -DNOCLEAN world at the transition between a symlinked
objdir/tmp/usr/include/{sys,net,..} and real files.


# 6f9fb94e 27-May-1998 Peter Wemm <peter@FreeBSD.org>

Replace the partial symlink tree to src/sys/* in $OBJDIR/tmp/usr/include
with real copies. I'm sick of !@#&!^!@#*& mtree chowning directories in
my src/sys/* tree after it follows the symlinks. I still believe that
mtree is broken for doing this (introduced in mtree.c rev 1.5).


# 090fc164 27-May-1998 Peter Wemm <peter@FreeBSD.org>

On the other hand, when /usr/bin/as is really a link to objformat, it's not
helpful to stop it running /usr/libexec/aout/as for real while bootstrapping.
Only force a strict path when we really have built all the tools in
$OBJDIR/tmp/usr/libexec/*.


# 1907cbbd 27-May-1998 Peter Wemm <peter@FreeBSD.org>

Move objformat after binutils, otherwise we get chicken/egg problems when
building ELF. It may be that binutils and objformat need to both be moved
earlier in the list though, but that can wait till the dust settles.


# dfd93f4d 27-May-1998 Søren Schmidt <sos@FreeBSD.org>

Compile & use objformat as it was intended to, I have no idea why
that failed for me before :(


# cabb97dc 26-May-1998 Søren Schmidt <sos@FreeBSD.org>

ELF preparation step 2:

Move a.out libraries to /usr/lib/aout to make space for ELF libs.
Make rtld usr /usr/lib/aout as default library path.
Make ldconfig reject /usr/lib as an a.out library path.
Fix various Makefiles for LIBDIR!=/usr/lib breakage.

This will after a make world & reboot give a system that no
longer uses /usr/lib/*, infact one could remove all the old
libraries there, they are not used anymore.

We are getting close to an ELF make world, but I'll let this
all settle for a week or two...


# 77dfb966 25-May-1998 Søren Schmidt <sos@FreeBSD.org>

ELF preparation step 1:

Move our old a.out utils to /usr/libexec/aout.
Enable binutils and put the utils in /usr/libexec/elf
Enable objformat, a little helper program that calls the right
utils based on /etc/objformat and $OBJFORMAT.

This will enable the ELF generating tools.
Remember that this is only step one, the system is still compiled
and run in a.out format ONLY.

Problem left to solve: The BSD manpages wins over the GNU equivalents
as the are installed last. We need to distinguish between the manpages
somehow...


# 0c2e53a8 17-May-1998 John Birrell <jb@FreeBSD.org>

Make perl a build tool since it is required during a make depend.
This should fix the problem people have been having with perl/usub.


# 86f9ecba 16-May-1998 John Birrell <jb@FreeBSD.org>

Now that FreeBSD/Alpha can be installed on a disk and run on its own,
a bootstrap build under NetBSD is an option.

This makefile will require further changes to ignore aout tools.


# 7b97e2bb 15-May-1998 Bruce Evans <bde@FreeBSD.org>

Don't use `&&' in any shell commands here. Using it to give conditional
execution is usually unnecessary in BSD Makefiles because BSD make
invokes shells with -e. Using it to give conditional execution is
often wrong in BSD makefiles because BSD make joins shell commands
when invoked in certain ways (in particular, as `make -jN'). Example
makefile:
---
clean:
cd /
false && true
rm -rf * # a dangerous command
---
This should terminate after the `false && true' command fails, but
it doesn't when the commands are joined (`false && true' is a non-
simple command, so -e doesn't cause termination). The b-maked version:
---
clean:
cd /
false; true
rm -rf * # a dangerous command
---
terminates after the `false' command fails (`false' is a simple
command, so -e causes termination). However, for versions of
make like gnu make that don't invoke shells with -e, this change
completely breaks the makefile.

This is one of the fixes for the bug suite that caused `make world'
to sometimes put raw cpp output in .depend files. Building of cc
sometimes failed, but the failure did not terminate the build
immediately, and various wrong versions of the cc components were
used until one was wrong enough to cause a fatal error.


# b7099879 10-May-1998 Bruce Evans <bde@FreeBSD.org>

Removed share/info from build-tools. It should never have been there,
and became redundant when it was put in SUBDIR, and became bogus when
WORLDTMP was introduced, and became broken when INFODIR was introduced.

PR: 6138


# a6919ef8 08-May-1998 John Birrell <jb@FreeBSD.org>

Fix the problem people are having building -current on a -stable system.
The headers that are installed in WORLDTMP are part of the interface
that includes libraries like libc, so they must be installed together.
This means that lib-tools and build-tools should be merged. The FreeBSD
build only works in hosted form where it is assumed that the installed
version contains adequate tools to build the latest release.


# e66437e7 01-May-1998 Bruce Evans <bde@FreeBSD.org>

Added patch to build-tools (now needed to make gdb, sigh).

Pointed out by: andreas


# 1c9df6b4 27-Apr-1998 Bruce Evans <bde@FreeBSD.org>

Don't build dependencies unless NOCLEAN is set. This speeds up
`make world' by about 14% here (down to 4490 seconds real on a
K6/233). Temporarily skip this optimization when building with
-j, since there are still many broken makefiles.

Fixed NOCLEANDIR option. Cleaning of `.depend' was broken.

Put -nostdinc in CFLAGS, not in CC, and don't override the default
CC. This fixes enforcing use of ${WORLDTMP}/usr/include.

Don't install library man pages in ${WORLDTMP}.


# 29c03682 26-Apr-1998 Jordan K. Hubbard <jkh@FreeBSD.org>

Use more reasonable defaults for SUP variables (and print them
correctly) now that sup is long since dead and buried.


# 3f99ca53 25-Apr-1998 Andreas Klemm <andreas@FreeBSD.org>

make includes has to execute "make beforeinstall" in src/lib/libcalendar
as well, otherwise "make depend" during "make buildworld" fails in
usr.bin/ncal


# 29844c8f 24-Apr-1998 Bruce Evans <bde@FreeBSD.org>

Don't build shared libraries twice for `make world'. This reduces
`make world' times by about 10%. Use a new `bootstrap-libraries'
target to build just enough (static) libraries to bootstrap the
tools, and delay building of shared libraries until all the tools
have been built.

Fixed `/usr/bin/make world'. The version of `make' that we buildis
nand use is named "make", not ${MAKE}.


# 878739de 19-Apr-1998 Dmitrij Tejblum <dt@FreeBSD.org>

Cosmetic: put '@' in front of a very long command.


# 5019f318 26-Mar-1998 Mark Murray <markm@FreeBSD.org>

Make the decision to compile kerberosIV a bit more secure by looking
for the appropriate directory.


# 47e0b716 19-Mar-1998 Bruce Evans <bde@FreeBSD.org>

Build the initial `make' in the temporary build tree so that its forced
cleaning doesn't affect the normal copy. Save a little time by not doing
unnecessary clean, depend nd cleandepend steps.

Reviewed by: mckay@freebsd.org

Added xargs to build-tools. It may be used for kdump and truss.


# 279e9981 16-Mar-1998 Bruce Evans <bde@FreeBSD.org>

Restored an (apparently unnecessary) -B for installing lib-tools.
The install target is -j-unsafe in general, so we use -B for
installing everything in `make world'.


# 42fce637 14-Mar-1998 Bruce Evans <bde@FreeBSD.org>

Don't force NOPIC for building tools at all for now, so that some
(slightly stale) shared libraries get installed before non-tools
are linked. The 2-stage build of the libraries has never really
worked, since we link to the libraries built in the first stage.


# ff854580 14-Mar-1998 Bruce Evans <bde@FreeBSD.org>

Don't force NOPIC or NOSHARED for building tools in the NOCLEAN case,
so that dirtier-than-previously tools aren't left lying around to be
installed.

Filter out NOPIC from ${MK_FLAGS} for `make ${OBJDIR}' for ld (and
some other things), so that the obj dir for ld/rtld always gets
re-made.

Fixed a literal "make".


# 13a8a449 13-Mar-1998 Bruce Evans <bde@FreeBSD.org>

Build all tools shared, and don't build any shared libraries for tools.

Build libraries (for linking the tools to) in a more correct order
(for linking freshly created shared libraries to each other). This
is probably a no-op now that shared libraries for tools aren't
built, but I didn't test any intermediate versions. Security-related
directories that are not built by default may now be misordered
for the shared case.

Don't build libcompat specially. It isn't used for tools, and
shouldn't be used in /usr/src (it is only used for IPXrouted and
crufty games).

Added missing ${.CURDIR} to existence tests for library directories.
Existence tests for top-level directories are still broken.

Test for library directories actually being built, not for directories
above them.


# 4a9d3efb 12-Mar-1998 Bruce Evans <bde@FreeBSD.org>

compile_et is now used early to build includes for libss, so build it
earlier. This is probably unnecessary.

Added now-necessary -B for installing headers for libss.

Removed now-unnecessary -B for building cleandepend for rpcgen.


# 228e718f 12-Mar-1998 Bruce Evans <bde@FreeBSD.org>

Fixed missing SHLIBDIR in GCC_EXEC_PREFIX.

Add the path to the source .mk files to the beginning of .MAKEFLAGS
instead of to the end, so that there is more chance of it having
priority. Additions in /etc/make.conf still have priority for
sub-makes if they are also at the beginning, although this is
probably not wanted for building /usr/src.

Use ${MK_FLAGS} for building dependencies for tools. This saves
time building dependencies for tools that won't be created (mainly
profiled libraries) and will be necessary to give correct dependencies
when tools are built static.

Spell the object directory as ${OBJDIR} consistently (even when we know
that ${OBJDIR} == "obj").

Print ${DESTDIR} in messages where appropriate.

Fixed some misformattings.


# 46986e68 12-Mar-1998 Bruce Evans <bde@FreeBSD.org>

Separated header creation from header installation in libss. Create
the libss headers before installing them in `make world'.


# b97da423 19-Feb-1998 John Birrell <jb@FreeBSD.org>

Change the bootstrap makefile inclusion to be general based on the
MACHINE. This lets me play with porting to m68k too. 8-) That is a
good test for portability because MACHINE != MACHINE_ARCH and m68k is
big endian.


# 165932dd 18-Feb-1998 Nate Williams <nate@FreeBSD.org>

MF22:
- After the install has been done, but before makedb is run, run
'ldconfig -R' to pick up new shlib dependencies.

Suggested by: Amancio and a whole lot of other folks


# dbf1ec59 06-Feb-1998 Adam David <adam@FreeBSD.org>

-DNOTOOLS to not rebuild any tools during buildworld


# cf763a57 10-Jan-1998 John Birrell <jb@FreeBSD.org>

Test for ${MACHINE} == "alpha" and include the bootstrap makefile instead
of doing the normal build. When the alpha bootstrap is complete (there
is more work to do!), the alpha will build like the i386 does now.
I changed i386 references to ${MACHINE} now that we're multi-architecture.


# 68cd0c9a 10-Oct-1997 Satoshi Asami <asami@FreeBSD.org>

Do not use -B in initial build of "make". It doesn't exist in 2.1.x.
Instead, list the targets one per command line.

Reviewed by: bde
Submitted by: bde (part)


# ff2daf7b 07-Oct-1997 Bruce Evans <bde@FreeBSD.org>

Removed uneeded ${.MAKEFLAGS} again.
Originally committed in: rev.1.141
Spammed by: rev.1.149 (mouldy parallel make diffs)


# 39245839 06-Oct-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Having to review all changes to this file _very_ carefully
led me to find 2 more errors which were there before. :)


# 191ae5bc 06-Oct-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Hooboy!

Did I ever spam this file good with that last commit. Despite 3
reviewers, we still managed to revoke the eBones fixes, TCL 8.0 support,
libvgl and a host of other new things from this file in the process of
parallelizing the Makefile. DOH! I think we need more pointy hats - this
particular incident is worthy of a small children's birthday party's worth of
pointy hats. ;-)

I certainly intend to take more care with the processing of aged diffs
in the future, even if it does mean reading through 20K's worth of them.
I might also be a bit more anal about asking for more up-to-date changes
before looking at them. ;)


# 2c545ac5 05-Oct-1997 Steve Passe <fsmp@FreeBSD.org>

Removed redundant 'all' arg to " Making Make" target.
Removed "-r RELENG_2_2" from 'update' target.


# 4a3b1f84 05-Oct-1997 Mark Murray <markm@FreeBSD.org>

How the heck did this get back??


# 97fe7f47 05-Oct-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Changes to support full make parallelism (-j<n>) in the world
target.
Reviewed by: <many different folks>
Submitted by: Nickolay N. Dudorov" <nnd@nnd.itfs.nsk.su>


# 1e1ff621 28-Sep-1997 Stephen McKay <mckay@FreeBSD.org>

When bootstrapping lex, the object directory for lex/lib would be deleted
without being recreated. A read-only source compile would then fail shortly
afterwards trying to write .depend into the source tree.


# 542552a4 28-Sep-1997 Mark Murray <markm@FreeBSD.org>

Change for KTH KerberosIV.
-DMAKE_EBONES is changed to -DMAKE_KERBEROS4


# c09eac88 26-Sep-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

When making make, do cleandir *before* objdir or we'll end
up with a blown objdir for the depend stage, leaving the
.depend file in ${SRCDIR} instead.


# d7f4fc69 16-Sep-1997 Bruce Evans <bde@FreeBSD.org>

Backed out rev.1.136 and rev.1.144. Force SHARED=symlinks in a different
way - for buildworld only.

Rev.1.136 broke the (deprecated) external includes target. Rev.1.144 was
a half-baked backout of rev.1.136. It broke SHARED=symlinks for the
buildworld target and installation of subdirs of src/include for the
includes target.


# 825cbd58 14-Sep-1997 Rodney W. Grimes <rgrimes@FreeBSD.org>

When calling the src/include Makefile use the shorthand ``all beforeinstall''
inplace of ``all installhdrs symlinks'' so those of us who run with
SHARED=copies get the right results.


# a13c81d8 05-Sep-1997 Peter Wemm <peter@FreeBSD.org>

Back out use of -m, since 2.1.x apparently do not have it. (sigh..)


# cf68c4fb 31-Aug-1997 Peter Wemm <peter@FreeBSD.org>

Fix the ${BINFORMAT} definition problem during 'make {build}world'. The
wrong switches were being passed to 'make' that caused sys.mk to come from
the /usr/share/mk location but the bsd.*.mk files to come from the
source tree in src/share/mk. This was bound to break sooner or later.

Submitted by: Dmitrij Tejblum <dima@tejblum.dnttm.rssi.ru>


# c2f5ca64 26-Aug-1997 Peter Wemm <peter@FreeBSD.org>

Remove unneeded ${.MAKEFLAGS} being explicitly passed on via the command
line..

PR: 4368


# 5c2de1d7 25-Aug-1997 Bruce Evans <bde@FreeBSD.org>

Use new installhdrs target to install tcl includes.


# a98622df 21-Aug-1997 Bruce Evans <bde@FreeBSD.org>

Added directories in the includes target so that it installs
everything that a full install would (modulo bugs in rpcsvc/Makefile).
The missing things weren't used (except for mp.h from libmp), but
there are relatively few of them and it's easier to be complete.


# 912dc4f0 21-Aug-1997 Bruce Evans <bde@FreeBSD.org>

Restored rev.1.122, which was clobbered by copying from -stable in
rev.1.134.

Split long lines.


# dfd35b65 18-Aug-1997 Peter Wemm <peter@FreeBSD.org>

Pass command line args to 'buildworld' and 'installworld' etc. Otherwise
'make -DNOCLEAN world' is completely ignored.


# 1dd53538 18-Aug-1997 Peter Wemm <peter@FreeBSD.org>

In the includes target, call the header install target explicitly and then
call the 'symlinks' target to build the /usr/obj/tmp/install/sys tree since
In the includes target, call the header install target explicitly and then
call the 'symlinks' target to build the /usr/obj/tmp/install/sys tree since
we set this up manually earlier, and if we do a 'make all install', we
replace the symlink tree in the obj dirs with new copies of the files
which breaks any chance of -DNOCLEAN working.


# 3dfd5a62 17-Aug-1997 Andreas Klemm <andreas@FreeBSD.org>

fix a make world problem.
updated beforeinstall target.
mp.h from gnu/lib/libgmp.h has to be installed to /usr/include
so that usr.bin/chkey and usr.bin/newkey can be compiled.


# f9998d9b 12-Aug-1997 Satoshi Asami <asami@FreeBSD.org>

Merge from -stable; NOTCL hook in beforeinstall.


# 2799473b 04-Aug-1997 Satoshi Asami <asami@FreeBSD.org>

Merge buildworld/installworld patch to Makefile from RELENG_2_2. Patch
a couple *.mk files to enable -current world building on really old
machines (e.g., 2.1.5).

Reviewed by: too many many people to list here, special thanks to bde


# 4460c39e 31-Jul-1997 Satoshi Asami <asami@FreeBSD.org>

More whitespace/tab fixes.

Submitted by: bde


# caaf2b4b 31-Jul-1997 Satoshi Asami <asami@FreeBSD.org>

Consistently use tabs in the leading comments.

Submitted by: bde (yes, I'm serious)


# 436821e9 08-Jun-1997 John Fieber <jfieber@FreeBSD.org>

Remove sgml stuff from the build-tools target. It is no longer used
in a make world.


# 89780415 08-Jun-1997 John Hay <jhay@FreeBSD.org>

Add libmp and libz to the includes target. This makes "make includes -DCLOBBER;
make depend; make all" work. I think there should be a better than adding
each library directory here.


# 1b87a2d5 25-May-1997 Peter Wemm <peter@FreeBSD.org>

make beforeinstall in libalias from the includes target


# 5c496949 21-May-1997 Satoshi Asami <asami@FreeBSD.org>

Fix comment about LOCAL_DIRS. Now it works as advertised. :)


# d50204c1 21-May-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Remove evil MAKE_LOCAL and MAKE_PORTS hacks and replace them with
a simpler, more general LOCAL_DIRS hack.
Reviewed by: asami


# 62eb403e 13-May-1997 Peter Wemm <peter@FreeBSD.org>

Forgot to commit this.. Do a 'make all' in src/include before trying
to install it. Otherwise osreldate.h breaks.

Pointed out by: Doug Rabson <dfr@nlsystems.com>


# b02cab92 10-May-1997 Bruce Evans <bde@FreeBSD.org>

Use `mk' files in share/mk (relative to the top level of the source
tree) instead of the system default ones in /usr/share/mk. This
only works for makes run from the top level, and a few not too out
of date system makefiles must be present to start up. Bootstraps
from can still be done from scratch by giving the path to an up to
date share/mk on the command line.

Removed bootstrap `mk' target and use of it. The bootstrap didn't
actually work for the non-null DESTDIR case.


# cb6e7ccb 02-May-1997 John Birrell <jb@FreeBSD.org>

Change default build to include libc_r, but allow disadvantaged souls
to turn off the build.


# 594f943d 30-Apr-1997 Bruce Evans <bde@FreeBSD.org>

Bootstrap the info `dir' file from here.


# 598c1e50 09-Apr-1997 John Polstra <jdp@FreeBSD.org>

Process "lib/csu/i386" at the beginning of the "libraries" target,
instead of in the middle of it. Soon, "c++rt0.o" will be linked
into all shared libraries. An up-to-date version of it must be in
place before any shared libraries are built.

This is one piece of the solution for PR gnu/3035 (gcc -shared).


# 0017e6c0 02-Apr-1997 Andrey A. Chernov <ache@FreeBSD.org>

Back out csu fix, because it was just fixed differently


# 05266ef4 02-Apr-1997 Andrey A. Chernov <ache@FreeBSD.org>

For csu/i386 add "all" before "beforeinstall", because "beforeinstall"
wants to install "all" targets which not exist at this stage


# 4ffab444 23-Feb-1997 Peter Wemm <peter@FreeBSD.org>

Revert $FreeBSD$ to $Id$


# 5342201a 21-Jan-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Add uudecode to lib-tools so that the -p option is available for
the later build in lib/compat/* for those systems upgrading from source.

Pointed-Out-By: John Hay <jhay@zibbi.mikom.csir.co.za>


# 1130b656 14-Jan-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Make the long-awaited change from $Id$ to $FreeBSD$

This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore. This update would have been
insane otherwise.


# 225e93b6 12-Jan-1997 John Polstra <jdp@FreeBSD.org>

Add "lib/csu/i386" to the "includes" target, so that <dlfcn.h> is
installed before it is needed.
Noticed by: David Conran <lucifer@maths.uq.oz.au>


# 35d98ca7 11-Jan-1997 Steve Price <steve@FreeBSD.org>

Remove yacc from the lib-tools target since it is now
back to its original form.

Requested by: jkh


# 9abd8172 11-Jan-1997 Joshua Peck Macdonald <jmacd@FreeBSD.org>

Add -DNOINFO to MK_FLAGS, that's okay right? The comment says
MK_FLAGS contains -DNOMAN and -DNOPROFILE for speed, so I assume
NOINFO is okay as well.

Add gnu/usr.bin/texinfo to build-tools so everything does the right
thing.


# 17440902 06-Jan-1997 Jordan K. Hubbard <jkh@FreeBSD.org>

Add yacc to lib-tools target, now that it's been changed.


# df183ef1 20-Dec-1996 Satoshi Asami <asami@FreeBSD.org>

Add comment on -DALLLANG.

Suggested by: max


# 8d558e03 25-Nov-1996 Andrey A. Chernov <ache@FreeBSD.org>

Use LC_TIME=C instead of LC_TIME= (POSIX)


# 32ec48a5 01-Nov-1996 Adam David <adam@FreeBSD.org>

use NOSHARE variable to skip 'share' directory, useful for shared installations
or for faster make of executables.


# f3c4dd0d 25-Oct-1996 Bruce Evans <bde@FreeBSD.org>

Improved comment about `all' target.

Use a for loop instead of massive duplication in the build-tools target.


# bd4739cb 13-Oct-1996 Peter Wemm <peter@FreeBSD.org>

oops, how did this get into the reinstall target? :-]
Must have been a cut/paste foulup... The whole idea of 'make reinstall'
is that it doesn't build anything from the source server mount.


# 81beb58a 05-Oct-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Add awk to build target.
Submitted-By: jhay


# a42830af 05-Oct-1996 Andrey A. Chernov <ache@FreeBSD.org>

Use SUP and SUPFLAGS variables to change them to cvsup if needed


# e1782509 04-Oct-1996 Peter Wemm <peter@FreeBSD.org>

Add some 'world' hooks for libg++-2.7.2, specifically the new libstdc++
directory. Also, add gnu/usr.bin/as to the lib-tools target since libgcc
generates weak symbols, and libstdc++/libg++ use them. ie: coming from a
2.1.x system will fail without 'as'.


# 5ae1e220 21-Sep-1996 Andrey A. Chernov <ache@FreeBSD.org>

Unlocalize `date`


# c2e40bde 19-Sep-1996 Peter Wemm <peter@FreeBSD.org>

Hooks to attempt to get 'make world' working with gcc-2.7.2.1. It's
worked for me, but no guarantees yet.

Basically, move cc earlier to lib-tools target, before libraries are
built. libgcc is built at the same time, so it's special entry is
removed from the libraries target. Also, add bison/gperf immediately
before cc, since they are needed to build cc and are not present on an
earler-than-2.2 system. (libgcc is partly built with the freshly compiled
gcc-2.7.2.1, since it uses __attribute__'s that were not present until now)

This _should_ be enough to get running from older releases, perhaps as far
back as 2.0.5.


# 6fcd2a47 18-Sep-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Add 3 small lines which add to the utility of the "finished on `date`"
output in the world target.


# 1e76740a 09-Sep-1996 John Fieber <jfieber@FreeBSD.org>

Add usr.bin/sgmls to the build-tools target.
This should prevent make world from falling over in share/doc.


# b7a48796 30-Aug-1996 Peter Wemm <peter@FreeBSD.org>

- cosmetic change to 'make world'
- do an explicit 'make all' in include/rpcsvc in 'make includes' as
a 'make install' is not supposed to build anything.


# ae04a796 24-Aug-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Revert all the make depend changes.


# 5f87a4a8 23-Aug-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Get rid of all the explicit calls to make depend.


# e452601b 07-Aug-1996 Nate Williams <nate@FreeBSD.org>

Removed extraneous .endif that was left during OBJDIR cleanup.

Noticed by: phk


# 2f155942 07-Aug-1996 Peter Wemm <peter@FreeBSD.org>

Move tsort back to lib-tools where it belongs, and add a "specially
for bootstrap" tweak to the lex Makefile to stop it building the library
too early.

This untangles things a bit more, it stops new bootstraps failing because
libl/libfl uses 'ld -O' before ld is updated.


# e326fc73 07-Aug-1996 Peter Wemm <peter@FreeBSD.org>

Correct spelling of NOOBJDIR (I mistakenly wrote NOOBJ).
Closes PR#1451 (Ph. Charnier <charnier@xp11.frmug.org>) and
PR#1453 (Peter Mutsaers <plm@xs4all.nl>)


# 0f802bcd 03-Aug-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

The bootstrap target in src/Makefile has the wrong order for lex/tsort
because lex has a library (libln.a) and bsd.lib.mk has been modified to use
'tsort -q'. Tsort has not been build yet...

tsort should be before lex. [Whoops! Thanks! -jkh]

Submitted-By: roberto@keltia.freenix.fr (Ollivier Robert)


# 5f354572 03-Aug-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Add tsort to bootstrap targets.


# a962de47 27-Jul-1996 Peter Wemm <peter@FreeBSD.org>

General tidy-up of Makefile. The objective was to make it clear and
readable, as well as fix up some of the warts along the way. Among the
things fixed is the infamous "cd foo && make depend all install" bogon,
which is particularly important for users of the -DNOCLEAN option.

Also, a few typo and DESTDIR fixes and a -DNOGAMES hack from Gary Jennejohn.


# 89f044eb 20-Jul-1996 James Raynard <jraynard@FreeBSD.org>

Fix typo in Makefile.

Reviewed (informally!) by jkh.


# caf93ef5 01-Jul-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Add make to the bootstrap targets (I thought I committed this 3 days ago -
sheesh!).


# 5e72817c 27-Jun-1996 Poul-Henning Kamp <phk@FreeBSD.org>

Add beforeinstall decent into libtcl


# c12745e1 27-Jun-1996 Peter Wemm <peter@FreeBSD.org>

Comment out the:
.if exists(contrib)
SUBDIR+= contrib
.endif
because it now tries to decend into the new contrib dir which doesn't
have a Makefile.


# 2edcca74 26-Jun-1996 Nate Williams <nate@FreeBSD.org>

Added libftpio to 'includes'.


# cd9a2f5c 23-Jun-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Bring in my changes for removing the pestilent obj links (unless you
really want them) from /usr/src. This is the final version of the
patches, incorporating the feedback I've received from -current.


# ba16a676 22-Jun-1996 Paul Traina <pst@FreeBSD.org>

Ask CVS to run in quiet mode, which makes it easier to see what the
update actually did.


# 16a34ebd 20-Jun-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Add pre-world and post-world hooks so that people can do site specific
cleanup or preinitializion of /usr/src before and after the world target
is run.


# faa0e467 20-Jun-1996 Adam David <adam@FreeBSD.org>

libforms is no more


# 32c1db06 19-Jun-1996 Nate Williams <nate@FreeBSD.org>

Don't try to do a 'make bootstrap all install' in one commend. Break it
into two make commands so that make will recognize that it doesn't need
to buid scan.c w/lex.


# d7d0ca4c 19-Jun-1996 Nate Williams <nate@FreeBSD.org>

Added lex to the bootstrap target.


# 6a8d432d 04-May-1996 Mark Murray <markm@FreeBSD.org>

1) make -DCLOBBER not remove most of /usr/lib
2) make all the 'pre-targets' not install profiled libraries and man pages
to speed up the bootstrap in a 'make world'


# 03130cca 24-Mar-1996 Paul Richards <paul@FreeBSD.org>

Re-instate the bootstrap target which can be used to build tools
that can't be built by older OS versions.

Use it to install the lint binaries.


# 0b802df8 11-Mar-1996 Jordan K. Hubbard <jkh@FreeBSD.org>

Add a hint that a make world is done so people don't think that the last
command (makewhatis) is running forver. :)


# 5b16f1c5 17-Feb-1996 Peter Wemm <peter@FreeBSD.org>

do the 'include-tools' as part of the world target (like lib-tools and
build-tools) so that a "make includes" doesn't spam your build tree.


# 0a400493 11-Feb-1996 Mark Murray <markm@FreeBSD.org>

Remove reference to old des library.


# 72ef2e60 29-Jan-1996 Nate Williams <nate@FreeBSD.org>

Added 'install' to the inclde-tools target, as it has a new options "-C"
which is used when installing the include files.

Submitted by: John Hay -- John.Hay@csir.co.za


# b201f166 29-Jan-1996 Nate Williams <nate@FreeBSD.org>

Kludge alert!

Add new 'include-tools' target, which the 'includes' target depends on.
Currently, it consists of rpcgen.


# 358a579f 01-Jan-1996 Peter Wemm <peter@FreeBSD.org>

Add libutil/beforeinstall to the includes target


# 99924d36 26-Dec-1995 Paul Traina <pst@FreeBSD.org>

Add rpcgen to build-tools target.


# 3344d6f2 28-Nov-1995 Nate Williams <nate@FreeBSD.org>

Added 'install' to the lib-tools target since it is uses the new '-C' flag
to install libraries to avoid messing up dependencies.


# c2e64318 26-Nov-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Bring forward libkadm change from 2.1


# 4620010d 24-Nov-1995 Peter Wemm <peter@FreeBSD.org>

Add -DNOCLEAN option which totally and utterly disables any form of
cleaning during a make. This may give you more rope to hang yourself if
you are caught with some subtle dependency on installed binaries in your
build, but if you are doing daily 'make -DNOCLEAN world' it's not too bad
at all. It could take as little as 30 minutes to do an entire sync-up of
your binaries if everything's up to date, especially if you are using
'INSTALL=install -C' in /etc/make.conf (highly recomended!).

Also, add a "reinstall" target. You can do a 'make DESTDIR=/mnt reinstall'
where /mnt is the nfs root of a machine and you get the install parts of
the make world run on it.

I saw this on -hackers quite some time ago and included it in my Makefile
and have been using it on and off for a while. Alas, I cannot find the
actual message with the author's name...


# a95f76aa 09-Nov-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Add: cd ${.CURDIR}/eBones/lib/libkrb && ${MAKE} beforeinstall
to includes target. Now the world will build on a new 2.1 system again.


# 6e16e5de 05-Nov-1995 John Fieber <jfieber@FreeBSD.org>

Add sgmlfmt to build-tools target so a make world with current source
on a <= 2.0.5 system does not fall over.


# 2e10cdcd 26-Oct-1995 Poul-Henning Kamp <phk@FreeBSD.org>

Changed "tools" to "build-tools".
Suggested by: Peter Wemm


# 7c0553d9 24-Oct-1995 Nate Williams <nate@FreeBSD.org>

Build all of the libraries: targets libs in the same manner. Append the
optional ${CLEANDIR} and ${OBJDIR} targets to those missng them.

Also, check for the existance of all library targets before building
them to follow convention.


# adc11894 24-Oct-1995 Poul-Henning Kamp <phk@FreeBSD.org>

Added symorder to tools target.
Suggested by: rgrimes.


# f9467acb 16-Sep-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Remove extraneous blank in libraries target (from 2.1).


# 22ade35a 16-Sep-1995 Justin T. Gibbs <gibbs@FreeBSD.org>

Update for the new location of eBones.

Submitted by: Paul Traina <pst@freefall.freebsd.org>


# b032e1f9 14-Sep-1995 Andrey A. Chernov <ache@FreeBSD.org>

Enhance sup update to run with 3 supfiles: standard/ports/secure


# 901dabe8 30-Aug-1995 David Greenman <dg@FreeBSD.org>

Brought forward the change in 1.57.4.1 - add build of zic(8) to tools rule..


# 8a06732e 03-Aug-1995 Satoshi Asami <asami@FreeBSD.org>

We don't have libftp anymore, so why don't we stop trying to do a
make beforeinstall in it. :)


# 236bb303 29-May-1995 Rodney W. Grimes <rgrimes@FreeBSD.org>

Remove trailing whitespace.


# b6333dea 12-May-1995 Rodney W. Grimes <rgrimes@FreeBSD.org>

Submitted by: jkh

Build lib/libncurses and lib/libtermcap early in the libraries: target
as other libraries depend on them.


# 361b945d 05-May-1995 Rodney W. Grimes <rgrimes@FreeBSD.org>

Add usr.sbin/pcvt/keycap to libraries: target.


# a22c4568 05-May-1995 Rodney W. Grimes <rgrimes@FreeBSD.org>

In target libraries: make and install libcompat before all other
libraries. This fixes the make -DCLOBBER world problem.

Check that gnu exists before attempting to build the libraries in
that branch of the tree.


# 639fb258 27-Apr-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Add libftp to list of beforeinstall targets in the include rule.
Submitted by: John Hay <jhay@mikom.csir.co.za>


# 012872c1 28-Mar-1995 Søren Schmidt <sos@FreeBSD.org>

Fixed most: target gnu/usr.sbin was install not all


# e080a7f0 26-Mar-1995 Rodney W. Grimes <rgrimes@FreeBSD.org>

We must do include and lib first so that the perl *.ph generation
works correctly as it uses the header files installed by this.


# b3a028f7 23-Mar-1995 Rodney W. Grimes <rgrimes@FreeBSD.org>

Add gnu/usr.bin/ld to lib-tools: since you need this compiled very
early if you are running a back release.


# 2c0e14c2 23-Mar-1995 Rodney W. Grimes <rgrimes@FreeBSD.org>

Fixed last defined(WANT_MSUN) -> !defined(WANT_CSRG_LIBM) in the src tree.


# 3cc5ba43 19-Mar-1995 Andreas Schulz <ats@FreeBSD.org>

Correct one little typing error from Rod :-).
lib/lib/pcap -> lib/libpcap.


# df9059a6 19-Mar-1995 Rodney W. Grimes <rgrimes@FreeBSD.org>

Add installation of include files from libpcap.


# 5a9e9cba 18-Mar-1995 Rodney W. Grimes <rgrimes@FreeBSD.org>

Use new mtree file to rebuild /usr/include.


# 48c51d32 16-Mar-1995 Poul-Henning Kamp <phk@FreeBSD.org>

Have include be the first $SUBDIR, this avoid install failure with the
kludgeous install rule in perl/x2p.

Pointed out by: rgrimes


# 5eef9019 14-Mar-1995 Ollivier Robert <roberto@FreeBSD.org>

Add gnu/usr.sbin in the installmost and most targets.
Reviewed by: roberto
Submitted by: Remy.Card@blaise.ibp.fr


# d3b1e73d 06-Mar-1995 Stefan Eßer <se@FreeBSD.org>

Add missing double quote (") in "echo".

Submitted by: wolf@kintaro.cologne.de


# 7cd21d19 05-Mar-1995 Nate Williams <nate@FreeBSD.org>

Since at least one utility depends on it (GNU diff), install the gnu regex
include file (gnuregex.h) in the includes target.


# 16c634b1 25-Feb-1995 Poul-Henning Kamp <phk@FreeBSD.org>

use etc:distrib-dirs instead of release:hierarchy. remove SUBDIR reference
to release.


# 232fcad2 09-Feb-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Eliminate a duplicate line.
Submitted by: Heikki Suonsivu <hsu@cs.hut.fi>


# b3e643c1 24-Jan-1995 Andrey A. Chernov <ache@FreeBSD.org>

Add libscsi to includes target


# 84d1a184 24-Jan-1995 Andrey A. Chernov <ache@FreeBSD.org>

Add libforms to includes target


# 41be2d70 21-Jan-1995 Garrett Wollman <wollman@FreeBSD.org>

`make world' fixes from Pat Barron, Mark Murray.
Closes PR #156.


# 401de747 20-Jan-1995 Garrett Wollman <wollman@FreeBSD.org>

Add libcom_err to `includes' target so CLOBBERing the world works again (we
hope).


# 562e312d 19-Jan-1995 Garrett Wollman <wollman@FreeBSD.org>

Added `compile_et' and `mk_cmds' to lib-tools target, as they are needed
to build `libss'. Also delete bogus old /usr/sbin/compile_et at this time
(sorry, it was the only way I could think of to make sure it died).


# b0625a3d 13-Jan-1995 Garrett Wollman <wollman@FreeBSD.org>

Delete obsolete references to kerberosIV.


# 0351215e 11-Jan-1995 Jordan K. Hubbard <jkh@FreeBSD.org>

Ack! Mk must go before cleandist in the world rule now. Otherwise
cleandist will fall over at gnu/lib/libreadline/doc when bsd.info.mk
is not found.


# 65b94a0d 03-Jan-1995 Nate Williams <nate@FreeBSD.org>

Added new lib-tools target used in make world which rebuilds and
installs 'ar', 'nm', and 'ranlib' to avoid bootstrapping problems from
the old utils which don't support the long archive names.


# 5426275f 03-Dec-1994 Andrey A. Chernov <ache@FreeBSD.org>

Add libtermcap to includes target


# 750f81de 14-Nov-1994 Poul-Henning Kamp <phk@FreeBSD.org>

More changes for the "distribute" target.


# 8046c4e2 07-Nov-1994 Andrey A. Chernov <ache@FreeBSD.org>

Add gnu/include to includes target


# cd5f9662 01-Nov-1994 Paul Traina <pst@FreeBSD.org>

Make make world -DCLOBBER work again .. grrr


# ac08bc0c 15-Oct-1994 Garrett Wollman <wollman@FreeBSD.org>

For those who want a little more control over their build process...

Added two new targets, `most' and `mostinstall', which compile and
install (respectively) just the binaries from just the ``core'' parts
of the system. This makes it easier to do something like the following
(which I do):

# cd /usr/src
# make obj depend
(scrutinize make output)
# make most
# make mostinstall

...which will not confuse things by installing new libraries, /usr/share,
games, gcc (two extra times), and so on. Obviously, if you do this, then
you have to be careful to watch for changes in include files and make macros,
and do the appropriate thing in those cases. (It usually still doesn't
involve building GCC three times or libc six.)


# 4affe09b 11-Oct-1994 Andrey A. Chernov <ache@FreeBSD.org>

Add libdialog to beforeinstall section


# 33c4dab4 08-Oct-1994 Andrey A. Chernov <ache@FreeBSD.org>

libmytinfo, libncurses added to 'make beforeinstall' sequence


# b8afcd33 30-Sep-1994 Paul Richards <paul@FreeBSD.org>

If WANT_MSUN is defined then math.h needs to be installed from the
msun library.


# 9687bf0b 29-Sep-1994 Paul Traina <pst@FreeBSD.org>

make includes needs to do a beforeinstall in libskey


# c368d11d 29-Sep-1994 Geoff Rehmet <csgr@FreeBSD.org>

First level of changes for bringing in eBones (kerberos).
- Get rid of inverse logic (NOKERBEROS and NOEBONES) in src/makefile,
and replace with MAKE_KERBEROS and MAKE_EBONES. (Far fewer contortions,
and both default to off.) IF YOU WANT KERBEROS, YOU HAVE TO EXPLICITLY
DEFINE ONE OF THESE.
- Make Makefiles kerberos-aware.


# c0a88f5e 23-Sep-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

Spell hierarchy correctly :-(.


# 2bb47396 23-Sep-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

Converted to use release/Makefile hieriarchy:.

Disabled SUBDIR+= etc until I get done with the conversion.


# 267994de 18-Sep-1994 Poul-Henning Kamp <phk@FreeBSD.org>

Need to call on libmd in "includes" target.


# 0eec3684 16-Sep-1994 Garrett Wollman <wollman@FreeBSD.org>

Per discussion on the mailing-lists, move LKMs from /sbin to /lkm, and
arrange for that directory to get created by mtree. Also, process secure
directory after all the others, because the programs there may overlay
ones installed from the main part of the tree.


# 499fec7f 11-Sep-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

Enable call to beforeinstall for libg++ and add one for libreadline.


# 72181495 09-Sep-1994 Geoff Rehmet <csgr@FreeBSD.org>

Changes required for bringing in eBones (kerberosIV - des + des ;-))
- check for directory "eBones"
- add checks for define "NOEBONES"
- get includes and libraries targets set up.


# 2a262b3a 02-Sep-1994 Paul Richards <paul@FreeBSD.org>

Taken update rule out of world target so it doesn't try and sup and
update every time you build world if you've enabled it.

Merged all the gnu library targets into one. libg++ isn't in the
gnu/lib/Makefile anyway so it's still disabled.

Enabled building of lex library -- this was stopping make world working.

Submitted by: Paul Richards


# ce234f12 26-Aug-1994 Paul Richards <paul@FreeBSD.org>

Removed an echo about directories not being enabled.

I removed libkern for the libraries target in the last commit too but
forgot to mention it.
Reviewed by:
Submitted by:


# 95516197 26-Aug-1994 Paul Richards <paul@FreeBSD.org>

Added an update target. It does nothing by default but you
can enable things in /etc/make.conf if you wish for those
who might want to use it.

directories has got enabled by this patch too whch I hadn't meant
to do but there's no harm in it since the mtree stuff has been
pulled over now.

Reviewed by:
Submitted by:


# 58b3334f 25-Aug-1994 Paul Richards <paul@FreeBSD.org>

Added libkern to list of libraries to build.
Deleted mdec target, the bootblocks should get built during
the normal build process now that the sys/Makefile works.

Submitted by: Paul Richards


# c87afe6e 25-Aug-1994 Paul Richards <paul@FreeBSD.org>

Removed all refernces to *26 directories.
Reviewed by:
Submitted by:


# 2a407ae5 20-Aug-1994 Geoff Rehmet <csgr@FreeBSD.org>

- turn NOCRYPT off
- add NOSECURE and NOKERBEROS
- turn NOKERBEROS on
- add secure directory

(NOCRYPT now has a blanket effect over src/secure and src/kerberosIV,
while NOSECURE and NOKERBEROS control these indiviually.)
Submitted by: Geoff


# 269f64ea 15-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Whoops, nuke libobjc until we have it too.
Submitted by: jkh


# 769e29bd 14-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

cc -> cc26 for now.
Submitted by: jkh


# 9e091cd6 14-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Kill an errant libg++ entry.
Submitted by: jkh


# 3540f0e1 13-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

This is the first attempt to drag the top level Makefile Rod sent me
into 2.0. It will surely need more work.
Submitted by: jkh


# f5b35288 10-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Remove kerberosIV until it works or is replace with eBones.. It's
hosing my build worlds..
Submitted by: jkh


# 15e31b9b 07-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Remove `old' directory.
Submitted by: jkh


# c762b52d 07-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Whap games too, for now. As people add this stuff back, they can
change the Makefiles, but I'm trying to get as much of the world to
build as possible at the moment.
Submitted by: jkh


# 51ef3880 07-Aug-1994 Jordan K. Hubbard <jkh@FreeBSD.org>

Remove contrib, add gnu to reflect current state of the tree so that I can
at least build obj links from the top.
Submitted by:


# c3d9b0f0 26-May-1994 Rodney W. Grimes <rgrimes@FreeBSD.org>

BSD 4.4 Lite Top Level Sources