History log of /freebsd-current/share/mk/local.init.mk
Revision Date Author Comments
# f9df6097 23-Sep-2023 Simon J. Gerraty <sjg@FreeBSD.org>

Add support for host32 for DIRDEPS_BUILD

Allow building 32bit libs for host.

Move CFLAGS additions from local.sys.dirdeps.mk (which is too early
and impacts CFLAGS defaults) to local.sys.mk

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


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

Remove $FreeBSD$: one-line sh pattern

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


# 8561d0b2 22-Apr-2023 Simon J. Gerraty <sjg@FreeBSD.org>

Simplify building host tools during DIRDEPS_BUILD

The whole point of the DIRDEPS_BUILD is to avoid tree walks
and basically build everything in a single pass.
We use the pseudo MACHINE "host" to represent the build host.

When the build host is not FreeBSD or is an older version of FreeBSD
it may need some help to build host-tools.

The directory tools/build does this - building libegacy.

local.sys.mk: create a pseudo option MK_host_egacy to indicate
if tools/build needs to be built for "host".

local.dirdeps.mk: set MK_host_egacy.host to ${MK_host_egacy}
all other DEP_MACHINES will get "no"

This allows a Makefile.depend.options in makefs etc to cause tools/build
to be built for host but only if necessary.

local.init.mk: use ISYSTEM as arg to -isystem so that it can be overridden.
The default remains ${STAGE_INCLUDEDIR}

src.init.mk: if MACHINE is host and we are not FreeBSD
set some MK_ flags the same as tools/build/mk/Makefile.boot.pre and
include src.init.${.MAKE.OS:tl}.mk if it exists.

For older versions of FreeBSD add libegacy when building PROGs for "host"

Also instead of -isystem${STAGE_INCLUDEDIR} we want
-I${STAGE_INCLUDEDIR} and -isystem/usr/include so we override ISYSTEM.
This means any headers we stage for "host" will take precedence over
system headers but #include_next will DTRT.

src.init.linux.mk: add
-I${SRCTOP}/tools/build/cross-build/include/linux
and generally deal with building host tools on Linux.
Eg. static linking does not work so set NO_SHARED= no
Override some HAVE_ flags.

src.sys.env.mk: on linux awk throws an warning about # in newvers.sh
just send stderr to /dev/null

Reviewed by: jrtc27, arichardson
Sponsored by: Juniper Networks, Inc.
Differential Revision: https://reviews.freebsd.org/D39744


# 073ccb9d 07-Dec-2022 Simon J. Gerraty <sjg@FreeBSD.org>

Allow site.*.mk to augment local.*.mk and src.*.mk

Add some extra customization points so that FreeBSD build
can be adapted to local requirements.
We use these to minimize changes to share/mk

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


# 64b522da 31-Mar-2020 Simon J. Gerraty <sjg@FreeBSD.org>

Include ${.CURDIR}/local.init.mk if it exists

This is handy for making local hacks to an app
(eg to build it as tool for non-BSD host)
without making a mess of the code base.

Reviewed by: bdrewery
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org//D24101


# 0b6ba3f2 19-Jan-2016 Bryan Drewery <bdrewery@FreeBSD.org>

Define .MAKE.MODE to normal to avoid the need for :U later.

Sponsored by: EMC / Isilon Storage Division


# 2802302e 25-Nov-2015 Bryan Drewery <bdrewery@FreeBSD.org>

META MODE: Fix MACHINE=host builds.

We need to not use -nostdinc since it breaks building of clang itself. Use
-isystem rather than -I/usr/include and -nostdinc which gets us using
the stage include directory before searching the real host headers.
This allows removing more of the -I hacks to get host headers since the
headers are no longer excluded. The -B seemed unneeded.

This fixes building of secure/lib/libcrypto which was looking at the
/usr/include/openssl/asn1.h header rather than the staged one.

This fixes building of clang which wants to find its own internal
headers in the STAGEDIR/usr/lib/clang/* path.

Sponsored by: EMC / Isilon Storage Division


# 00bd6d0f 11-Nov-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Move META MODE's HOST_CC/CXX/CPP setting to local.meta.sys.mk, which
centralizes the handling of CC and HOST_CC.

This fixes a bug with WITH_CCACHE_BUILD when using MACHINE=host since
CC is overridden in local.init.mk via src.opts.mk long before bsd.compiler.mk
is included.

Originally the ccache implementation was placed in local.init.mk but moved
to bsd.compiler.mk as it seemed more proper and avoided other ordering
issues.

Sponsored by: EMC / Isilon Storage Division


# 208f1083 05-Nov-2015 Bryan Drewery <bdrewery@FreeBSD.org>

Allow 'make buildenv' to work anywhere in the src tree.

Sponsored by: EMC / Isilon Storage Division


# 857b8cc7 06-Oct-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Do not assume host toolchain supports sysroot


# 5c5948ac 30-Sep-2015 Bryan Drewery <bdrewery@FreeBSD.org>

META_MODE: Set HOST_CXX and HOST_CPP and chain them down into CXX/CPP for host builds.

Sponsored by: EMC / Isilon Storage Division


# c1cb0d79 15-Jun-2015 Simon J. Gerraty <sjg@FreeBSD.org>

do not include src.opts.mk from here


# f5374544 10-Jun-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Building on fmake is no longer possible so removed tests for bmake.


# 4113aa90 26-May-2015 Simon J. Gerraty <sjg@FreeBSD.org>

Move META_MODE bits to local.meta.sys.mk

By moving META_MODE bits from local.sys.mk, they are easier
to skip when MK_META_MODE=no

Update some filters to cope with sync from head.

If buildworld etc or WITHOUT_META_MODE disable all the META_MODE
related options.


# 59dd53f1 16-May-2014 Simon J. Gerraty <sjg@FreeBSD.org>

Include src.opts.mk and handle MK_SYSROOT.


# 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>