Commit Graph

21 Commits

Author SHA1 Message Date
sjg
44636d2ebb Update to bmake-20160315
Archive member handling works again
meta mode, treat missing reads as for writes.

Update dirdeps.mk - much improved startup time.
Update meta.stage.mk - avoid ln when chmod required.
2016-03-18 20:03:09 +00:00
sjg
218c7825fe Merge bmake-20160307 2016-03-11 01:35:39 +00:00
bdrewery
e3347af437 META MODE: Don't double stage SYMLINKS for shared libraries.
This also fixes truncating the path that the links were installed to, which
was most likely going to be the same directory the library was in anyhow.

Let bsd.sys.mk handle SYMLINKS via stage_symlinks.  stage_libs continues to
handle the SHLIB_LINK though since it is not a SYMLINKS.

This fixes a race, seen easily in lib/libthr, where libpthread_p.a is created
by both stage_libs and stage_symlinks resulting in 'ln: File exists'.

Sponsored by:	EMC / Isilon Storage Division
Discussed with:	sjg
2015-11-13 22:27:24 +00:00
sjg
dee7614f48 In jobs mode we can use .ORDER to force stage_links to run after other
stage_* targets.
In non-jobs mode we can achieve the same result by simply introducing
the targets in the correct order.
Thus in bsd*.mk we simply add targets to STAGE_TARGETS which we
realize in meta.stage.mk

Reviewed by: bdrewery
2015-10-07 00:24:27 +00:00
bdrewery
8debd9fb6f META_MODE: Fix stage_links not running in the right order without -j.
This fixes staging errors for non-parallel builds that have LINKS.

Creating hardlinks must always happen after the actual files are installed.
The staging code was protected by an .ORDER statement that only affected
parallel -j builds but not non-parallel builds.  Fix this by making the
real stage_links.SET (stage_links.links, stage_links.mlinks, etc) targets
depend on the main targets for all of the other possible staging needs.  For
example, stage_links.links will depend on stage_as and stage_files, which have
their own dependencies to stage_as.prog or stage_files.prog or stage_files.SET,
which is enough to satistfy the ordering.

Also remove the requirement that symlinks be created last, as they can
safely be made without the source being present unlike hardlinks.  This also
fixes symlinks to come before hardlinks as it is possible, in theory, to
hardlink a symlink.  This is not actually supported here though.

Sponsored by:	EMC / Isilon Storage Division
2015-10-02 06:24:09 +00:00
sjg
0e75339fd1 Normally a staging conflict causes an error.
When bootstrapping different options, it is handy to be able to
make those warnings.
2015-06-16 23:06:43 +00:00
sjg
008d7c831f Add META_MODE support.
Off by default, build behaves normally.
WITH_META_MODE we get auto objdir creation, the ability to
start build from anywhere in the tree.

Still need to add real targets under targets/ to build packages.

Differential Revision:       D2796
Reviewed by: brooks imp
2015-06-13 19:20:56 +00:00
sjg
723ea0be93 Latest dirdeps.mk and meta.stage.mk
Add support for dirdeps cache
and allow full path as key for STAGE_AS_*
2015-05-26 21:03:41 +00:00
sjg
e40629df4e Use latest version 2014-11-20 22:42:40 +00:00
sjg
aa628f3a57 We want to use stage_includes as a hook, so use NO_STAGE_INCLUDES
in include/Makefile to suppress normal behavior
2014-05-16 14:47:18 +00:00
sjg
6ef8a250e0 We may need to supress SHLIB_LINKS with NO_SHLIB_LINKS 2014-05-10 00:26:40 +00:00
sjg
39a494e86f Ensure _objroot is correctly formatted 2013-10-13 00:17:24 +00:00
sjg
76506db45d Add stage-install.sh so we can do away with the need to have
$STAGE_OBJTOP/include for src/include.
2013-04-19 18:45:03 +00:00
sjg
5da41246ca Sync latest versions 2013-04-14 01:21:20 +00:00
sjg
4ad62aafad Allow staging to be help up (by .WAIT) until other
bits of all: are done.
2013-03-08 22:02:08 +00:00
sjg
c5f0bdef1d One .ORDER should suffice 2013-03-08 00:23:42 +00:00
sjg
220600f181 Stage*(): return early if no args, and thow error if cp etc., fails. 2013-03-08 00:05:34 +00:00
sjg
b18825ad60 Simplify handling of chmod 2013-02-26 05:44:12 +00:00
sjg
80fef2e8b8 Handle chmod of staged files/links 2013-01-29 00:10:05 +00:00
sjg
ffa58f9062 Latest version from Crufty 2012-11-08 21:15:57 +00:00
marcel
9dd41e3647 Sync FreeBSD's bmake branch with Juniper's internal bmake branch.
Requested by: Simon Gerraty <sjg@juniper.net>
2012-08-22 19:25:57 +00:00