Commit Graph

338 Commits

Author SHA1 Message Date
riastradh 5278b8e44d Makefile: Run `postinstall -d /', not `postinstall -d //'.
This happens when doing `build.sh install=/'.  The message is less
confusing and it makes postinstall's job simpler for detecting when
it's installing to / rather than somewhere else.
2023-09-08 12:01:56 +00:00
lukem 922f5e2588 more NBUILDJOBS deprecation
The NBUILDJOBS option was deprecated in 2002;
there's no need to keep warning about it,
remove from params / show-params,
and only document as obsolete.
2023-06-11 10:43:51 +00:00
lukem 439f74ef3e build.sh: add show-params operation
Add show-params operation to the makefile target, and reword
params operation to describe what it's done since 2012.

(In 2012-11-04 the Makefile's previous params target was renamed
to show-params and a new params target was added to save a 'params'
file, and build.sh wasn't adapted.)
2023-06-02 20:48:09 +00:00
lukem dac6dcb8de Deprecate extsrc/, EXTSRCSRCDIR, MKEXTSRC
Remove support for building extsrc/:
1. Makefile: remove do-extsrc target.
2. build.sh: remove options -y and -Y extsrcdir.
3. distrib/sets: remove support for extsrc in various tools
   including the options -L ext and -y, and the extsrc sets.
4. doc/BUILDING.mdoc: remove docs for extsrc/, EXTSRCSRCDIR, MKEXTSRC (etc)
5. bsd.own.mk and various Makefiles: remove support for extsrc/,
   EXTSRCSRCDIR, MKEXTSRC.

As proposed on tech-kern and tech-userlevel on 2022-01-07
and followed up on 2022-08-21.
2022-08-21 07:10:03 +00:00
rillig c5b32978c5 Makefile: fix location of postinstall program for MAKEVERBOSE > 2
If MAKEVERBOSE > 2, each shell command from a make target is echoed.
This resulted in two additional words ending up in the variable
_POSTINSTALL.  Noticed by Brad Harder.

Before:
$ make -v _POSTINSTALL MAKEVERBOSE=3
echo .../usr.sbin/postinstall .../usr.sbin/postinstall/postinstall ...

After:
$ make -v _POSTINSTALL MAKEVERBOSE=3
.../usr.sbin/postinstall/postinstall ...
2022-03-19 14:35:13 +00:00
uwe b5d9d2935c G/c spurious whitespace. 2020-10-29 20:26:24 +00:00
christos bace1e14aa automatically remove old debug files for modules. 2020-05-15 16:34:44 +00:00
kamil 1a5f018b01 Enhance the support of LLVM sanitizers
Define _REENTRANT for MKSANITIZER build. This is needed for at least stdio
code. This caused new build issued with duplicated symbols in few places
and rump kernel code picking different code paths borrowed from libc.
Handle all this in one go.

Add bsd.sanitizer.mk to share common code used by programs and libraries.

Switch from realall to beforeinstall target in .syms files. This is more
reliable in MKSANITIZER.
2019-08-27 22:48:53 +00:00
kamil a0f3a067f2 Correct the build rules of LLVM sanitizers
Fix generation of .a.syms files in LLVM sanitizers. The old rules weren't
functional and sometimes they were fatal in the build.

Add the .a.syms files to distribution sets.
These files are generated only in certain .a files in 64bit version of
sanitizers.

Correct the location of files with LLVM sanitizers. Move the LLVM sanitizer
entries from base to comp files.
2019-08-26 04:49:45 +00:00
kamil ae9c7cb925 Rework the LLVM compiler_rt build rules
Register external/bsd/compiler_rt as a _SUBDIR. This will allow to handle
properly includes specific for compiler_rt.

Centralize build_install target for external/bsd/compiler_rt.

With the above changes MKOBJDIR is now respected properly for me.

Do not install LLVM sanitizers into TOOLDIR for !HAVE_LLVM.
2019-08-25 06:06:48 +00:00
kamil 4ed00d96e7 Enhance MKSANITIZER support
Add i386 support for LLVM sanitizers.

Add new build phases do-sanitizer-* for building LLVM sanitizers after libs
and before other programs. This phase is important as sanitizers need
to link with libs and sanitized programs must link with sanitizer runtimes.
2019-08-23 06:38:27 +00:00
martin bebf19fa06 Use the generated "postinstall" in the objdir for postinstall-check
and postinstall-fix targets - we do not have a simple postinstall script
in the source tree any more.
2019-06-14 09:12:42 +00:00
martin cbca735b30 Fix editor mishap 2019-06-06 14:51:43 +00:00
maya 87431fdd37 .WAIT for tools to complete.
There's a lot of waits inside tools, but nothing that promises that we haven't
started doing the next subdir in the top level.

Shows up as warnings in the cleandir stage on releng builds:

cleandir ===> external/mit/xorg/server/drivers/xf86-video-suncg6
cleandir ===> lib/libpam/modules/pam_deny
sh: /home/builds/ab/HEAD-llvm/sparc64/201811091720Z-tools/bin/nbawk: not found
nbmake[9]: "../../Makefile.xf86-driver" line 23: warning: "/home/builds/ab/HEAD-llvm/sparc64/201811091720Z-tools/bin/nbawk '/^PACKAGE_VERSION=/ {                match($1, "[0-9]+\\.[0-9]+\\.[0-9]+");  version = substr($1, RSTART, RLENGTH);  } END { print version }'                        /home/source/ab/HEAD-llvm/xsrc/external/mit/xf86-video-ati/dist/configure" returned non-zero status
sh: /home/builds/ab/HEAD-llvm/sparc64/201811091720Z-tools/bin/nbawk: not found
2018-11-11 07:43:35 +00:00
pgoyette f1de59e03f Re-add files that were accidentally deleted in my previous commit. 2018-05-02 07:34:44 +00:00
pgoyette 653cac4418 Synch with HEAD 2018-05-02 07:19:58 +00:00
mrg c62ada779a include bsd.clean.mk so that we actually clean up the attempted "params" 2018-03-13 03:06:28 +00:00
uwe 4800414994 Include somewhat misleadingly named do-x11 into BUILDTARGETS even with
NOBINARIES set (subject to MKX11).
2017-12-06 19:34:00 +00:00
uwe 491346357b do-x11 target builds and installs only the tools and libraries, X11
programs are built during the regular recursive build in extsrc.  Edit
its description accordingly and move it before do-build to match their
order in BUILDTARGETS.

While here, drop the "either" clause that has lost its "or" a few
years ago when xfree86 reachover was removed.
2017-12-06 19:27:56 +00:00
christos 9c2811ef9f Add NOBINARIES, useful to build tools are libraries which is what's needed
for mknative.
2017-10-04 23:54:33 +00:00
christos 7c333c1d16 don't descend into gnu 2017-04-11 14:04:15 +00:00
christos 0e4ae56f9f fix direct reference to texinfo, bleh 2016-01-14 02:51:25 +00:00
mrg cf4dd8937a remove the xfree86 reachover makefiles and the vast majority of
the support in the rest of the source tree.

X11 sets could use some cleaning up perhaps (just deletion, as
we've never really marked the old X11R6 as obsolete for native
xorg using platforms so far either.)
2015-07-23 08:03:24 +00:00
matt 30074b3e8a Add MKCOMPATX11 knob for making X11 compat libraries. 2015-06-27 16:21:07 +00:00
matt 589b128fbc Support building the xorg X11 libraries under MKCOMPAT.
Add XORG_MACHINE_ARCH to compat's bsd.*.mk
Turn xorg makekeys and makestrs into real host tools which are installed into
${TOOLSDIR}
2015-06-24 22:20:24 +00:00
martin 2d0cfa998a PR 49870: pass the xsrc path to postinstall 2015-05-03 15:13:13 +00:00
joerg 72e6048ca0 Reorganise the way xorg is build. Move build of makestrs into src/tools
as it is needed for the "includes" phase. Make it symlink all necessary
headers in obj to decouple it from "includes" itself, breaking the
dependency cycle. Move the do-x11 target between do-lib and do-build, so
that libraries can get the benefit of build_install (correct .WAIT
behavior) and everything else like "includes" uses the plain SUBDIR
entry in external/mit.
2015-01-07 20:42:01 +00:00
snj 5a351217dd iso -> images 2014-11-05 08:19:17 +00:00
plunky 57d482b751 remove obsolete BUILD_CC_LIB_BASEDIR and BUILD_CC_LIB_BASETARGET vars 2014-08-18 07:52:40 +00:00
apb cbe3db24b8 Run "postinstall fix obsolete_stand" just before checkflist,
if we are building with DESTDIR != /
2014-06-16 09:06:26 +00:00
apb 8409b23d8e Pass -m MACHINE -a MACHINE_ARCH to postinstall 2014-06-16 09:04:43 +00:00
apb 60cea4e204 Pass SED=${TOOL_SED:Q} to postinstall. 2014-06-16 07:11:52 +00:00
mrg 26f35dd6b6 remove the build support for GCC 4.1, and any hacks i found for it.
there could still be more -- i only looked for lines matching
both "HAVE_GCC" and "4" as words (grep -w.)
2014-06-13 01:17:45 +00:00
mrg afa90f2bf5 prepare for moving GCC 4.5 into gcc.old:
- convert to using ${EXTERNAL_GCC_SUBDIR}
- define base-external-gpl3-gcc* subdir as GCC_SUBDIR
- use <bsd.init.mk> over <bsd.own.mk> for a bunch of places; mostly
  because it arranges for ../Makefile.inc to be included earlier, and
  don't bother including the latter if the former is already included.
- move all .PATH: settings after <bsd.{own,lib}.mk> so that all
  valid variables are set before it is evaluated
- rename mknative-gcc* to match their subdir name.

XXX the relationship between the Makefile.inc/Makefile.gcc_path files
    is kind of sketchy, it would be great if this was fixed.
2014-02-26 09:54:32 +00:00
christos 2b043c75b6 eliminate use of bsd.sys.mk from Makefiles 2014-01-16 01:15:32 +00:00
joerg 85363808c6 hp700 rescue/ldd fails on -j16 build if usr.bin/ldd/elf32/libldd_elf32.a
hasn't been made yet. Add an explicit .WAIT before rescue to avoid this.
2013-07-16 09:52:21 +00:00
apb 3e31590ff0 Add src/etc/Makefile.params, containing the definition of the
RELEASEVARS variable, and commands related to printing the values of
the variables whose names are in RELEASEVARS.

Add an awk script to remove noise printed by "make -j" or high levels
of MAKEVERBOSE, so we get only the variables names and values.  The
values are escaped so that variables containing embedded newlines,
quotation marks, and backslashes, are passed through safely.

Adapt src/etc/Makefile and src/Makefile to use the new ${PRINT_PARAMS}
command defined in src/etc/Makefile.params.

Now ${DESTDIR}/etc/release and the params file in the top-level
.OBJDIR should never contain unwanted noise, even after a build with
MAKEVERBOSE=4.
2012-12-03 13:53:28 +00:00
joerg 54f191bfce Move the build_install logic from lib/Makefile into share/mk and re-use
it for tools. The existing logic broke for the LLVM build with the
recent .ORDER changes in make.
2012-11-15 23:51:53 +00:00
apb 1c0de10687 Create a "params" file in the top-level .OBJDIR during "make build".
This file will contain the values of all variables that can affect
the build process.  Take care not to update the file's timestamp if
the contents do not change.

${_SRC_TOP_OBJ}/params is referenced by ${_NETBSD_VERSION_DEPENDS} in
bsd.own.mk.

Rename the old "params" target to "show-params".  This simply
prints the values of the variables that can affect the build.
2012-11-04 11:02:11 +00:00
joerg 933525b99b Implement build_install in src/lib/Makefile, which traverses the
subdirectories and invokes dependall/install. Do this in groups
delimited by .WAIT to ensure that depending libraries can use the
installed versions and don't need to know the locations in the source
tree.

Use this new target in src/Makefile to replace most of the adhoc library
logic with two special cases, src/lib and src/compat. Adjust
sys/Makefile to include the module directory when building them. Add
some necessary .WAITs in src/lib/Makefile to reflect the dependencies
from src/Makefile and also add the rump libraries here.
2012-08-17 16:22:27 +00:00
apb 611a930af0 Add HOST_SH to _POSTINSTALL_ENV; needed for
usr.sbin/postinstall/postinstall revision 1.145.
2012-08-15 12:50:12 +00:00
apb 07086c66b3 Pass STAT=${TOOL_STAT:Q} through to postinstall. 2012-08-14 13:12:15 +00:00
apb 610473e207 TOOL_GREP is defined in share/mk/bsd.own.mk, but is not actually built
from tools/Makefile.  So don't try to use it here.
2012-08-14 13:04:09 +00:00
apb 8e0231f0a0 Pass all relevant tool variables to postinstall, not just a subset. 2012-08-14 12:37:41 +00:00
apb fe68d40e36 Fix unbalanced quotes in .if ${MKRUMP} != "no" 2012-08-14 12:19:16 +00:00
christos bf89823a75 exclude rump targets if MKRUMP = no 2012-08-08 14:00:31 +00:00
veego ed1ef0512a Add usr.bin to the exclude list for make includes.
This is no longer needed after flex was moved to the external framework.
2012-04-21 08:28:00 +00:00
abs 3a4ca493bc s/is the not root/is not the root/ in a comment - from Snader_LB 2012-01-24 17:37:34 +00:00
tsutsui 3cf69f27e2 Add "live-image" and "install-image" target support to build.sh.
"live-image" target builds pre-installed disk images that can be used on
emulators or boot from USB memory sticks to try NetBSD without installation.
Currently amd64, i386, pmax, sparc, sparc64, sun2, sun3, and vax
(which have working emulators and don't require extra tools like preparing
 msdosfs or partitioning MD label structures) support this target.

"install-image" target builds an bootable installation disk image that can
be used as an install CD but burned into USB memory sticks etc.
Current only amd64 and i386 (which would support USB boot) have this target.

For more details (and known issue) see following posts on netbsd-bugs@:
http://mail-index.NetBSD.org/netbsd-bugs/2011/08/06/msg023639.html
http://mail-index.NetBSD.org/netbsd-bugs/2011/09/23/msg024207.html
http://mail-index.NetBSD.org/netbsd-bugs/2011/12/07/msg025166.html
http://mail-index.NetBSD.org/netbsd-bugs/2011/12/08/msg025178.html

No particular comments about implementation, and
"go ahead" comments from mrg@, riz@ and christos@.

Closes PR toolchain/45153 and PR misc/45155.
2012-01-22 03:53:29 +00:00
apb 5f70d1f98e Move the code for creating src/BUILDING from "make build-docs" in
src/Makefile to "make regen" in src/doc/Makefile, and update a comment
in doc/BUILDING.mdoc to match.
2011-09-09 14:23:37 +00:00