This changes the build OBJDIR from the older style of /usr/obj/<srcdir> for
native builds, and /usr/obj/<target>.<target_arch>/<srcdir> for cross builds to
a new simpler format of /usr/obj/<srcdir>/<target>.<target_arch>. This
new format is used regardless of cross or native build. It allows
easier management of multiple source tree object directories.
The UNIFIED_OBJDIR option will be removed and its feature made permanent
for the 12.0 release.
Relnotes: yes (don't note UNIFIED_OBJDIR option since it will be removed)
Prior work: D3711 D874
Reviewed by: gjb, sjg
Discussed at: https://lists.freebsd.org/pipermail/freebsd-arch/2016-May/017805.html
Discussed with: emaste
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D12840
Copying the source VCS ID from WITH_/WITHOUT_* into the generated
src.conf.5 is not necessary, as it is generally possible to determine
the same information using the VCS to examine commit metadata. The
individual source files also match the name of the option recorded in
the generated file, so it is clear from where the content originated.
The copied IDs generate extraneous, non-content noise in the generated
src.conf.5 in some cases, including the first time the file is generated
on a stable branch. In addition, the source file $FreeBSD$ tags are not
expanded by git or other non-Subversion VCSs, which means that makeman
previously could not be used in a non-Subversion working tree.
I accept that there's some desire to keep these, but on balance believe
there is more benefit in removing them.
Reviewed by: imp, ngie
MFC after: 1 month
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D7997
That doesn't work (mandoc complains about the macro being empty).
That's what I get for being clever and not verifying before committing
things again *sigh*.
MFC after: 1 month
X-MFC with: r315766
Partyhat to: ngie
Sponsored by: Dell EMC Isilon
On some targets 'make showconfig' currently reports both 'no' and 'yes'
for some options. For example:
% make TARGET=mips showconfig | grep SSP
MK_SSP = no
MK_SSP = yes
Emit a warning on encountering a duplicated variable, and skip the
second entry.
Sponsored by: The FreeBSD Foundation
It may only be used with WITH_AUTO_OBJ, which the WITH_DIRDEPS_BUILD does. We
could support this in the normal build as well if we forced creating the directory
and setting .OBJDIR.
Sponsored by: EMC / Isilon Storage Division
Also note that these env-only vars can be specified on the command line.
This fixes the dependent options that are env-only (such as WITH_META_MODE
and WITH_AUTO_OBJ) to properly display their dependencies.
Sponsored by: EMC / Isilon Storage Division
This is a workaround for WITH_LDNS_UTILS forcing BIND_UTILS off. It can
be reverted when we no longer have these conflicting options, or made more
general if we grow more cases like this.
the architecture, reflect this in documentation. For such
options, both WITH_FOO and WITHOUT_FOO description files should
be provided.
Prodded by: des
- Setting a build option may enforce other build options, try harder
to detect this case.
- Setting a build option may change other option's default value,
try harder to detect this case.
default to the value of MK_KERBEROS unless set explicitly by
WITH_GSSAPI/WITHOUT_GSSAPI. (This introduces another type of
MK_* variables which itself is questionable.)
- Teach tools/build/options/makeman script that generates the
src.conf(5) manpage about the new type of MK_* variables.
- Fix broken logic in lib/Makefile.