Commit Graph

48 Commits

Author SHA1 Message Date
bdrewery
924e487caa Reapply r295227: Stop hiding link install commands.
This was lost in the release-pkg merge in r298107.

Sponsored by:	Dell EMC Isilon
2017-11-06 19:33:50 +00:00
bdrewery
24eb8f6c6a DIRDEPS_BUILD: Fix '/' in group names creating a bad cookie.
This is reworking the change in r296585 but to still properly install
the files.  This limits the change to only the DIRDEPS_BUILD logic
for what it considers the name of the staging set, which is what the
cookie name is based off of.

Sponsored by:	Dell EMC Isilon
MFC after:	1 week
2016-12-03 05:29:35 +00:00
bdrewery
0ec7daaa0c Revert r296585.
This broke installing dtrace test files.  It was poorly tested.

Reported by:	markj
Pointyhat to:	bdrewery
MFC after:	1 week
2016-12-03 05:29:31 +00:00
gjb
1c7e318a9a MFH
Sponsored by:	The FreeBSD Foundation
2016-03-10 21:16:01 +00:00
bdrewery
fa20ffcb72 These group names may be used as a cookie, so replace any non-fs-safe characters.
One example is in cddl/usr.sbin/dtrace/tests/common/aggs.  It could be
fixed but other uses of this would break, especially in the
DIRDEPS_BUILD which uses the group names for stage cookies.

MFC after:	1 week
Sponsored by:	EMC / Isilon Storage Division
2016-03-09 22:45:00 +00:00
gjb
955ce29ea3 MFH
Sponsored by:	The FreeBSD Foundation
2016-03-02 16:14:46 +00:00
bdrewery
d0f17612a7 DIRDEPS_BUILD: Fix some things building in MAKELEVEL0.
For PROGS this was recursing twice since MAKELEVEL0 is for 'dirdeps'
which then really builds in a sub-make.

Sponsored by:	EMC / Isilon Storage Division
2016-02-26 22:13:48 +00:00
gjb
a44dc347a7 MFH
Sponsored by:	The FreeBSD Foundation
2016-02-08 12:16:01 +00:00
bdrewery
c848707b79 Fix style and remove excess / for installing SYMLINKS.
Sponsored by:	EMC / Isilon Storage Division
2016-02-04 01:08:51 +00:00
bdrewery
e6b730a42a Stop hiding link install commands.
This is no longer needed now that a .for loop is used rather
than inline shell script.

Sponsored by:	EMC / Isilon Storage Division
2016-02-04 01:08:42 +00:00
gjb
ccde53b74b MFH r289384-r293170
Sponsored by:	The FreeBSD Foundation
2016-01-04 19:19:48 +00:00
bdrewery
1b224bebd4 Make installing to a non-existent directory an error.
Before this, if a file was installed to DESTDIR/some/dir and that directory
was missing due to not having ran 'make distrib-dirs' yet, the file would
be installed as 'some/dir'.  For something like bsd.incs.mk with INCLUDEDIR
being a sub-directory of /usr/include, this could result in all of the headers
being installed to a file rather than getting a directory of them.

Now it will error that the file/directory does not exist rather than hide
the issue.

Another option being discussed is to implement GNU's install -D flag which
would auto create any missing directories.

This is a mitigation of the problem.  The proper order to the build is to
run 'make distrib-dirs' first, but that can be forgotten if building from
a sub-directory after updating the source code to the latest revision.

MFC after:	2 weeks
Sponsored by:	EMC / Isilon Storage Division
2015-10-15 22:49:56 +00:00
gjb
609a691ada MFH to r289370
Sponsored by:	The FreeBSD Foundation
2015-10-15 17:36:56 +00:00
bdrewery
2606e8ae5c Revert r289282 for now as the interaction with a directory containing
bsd.files.mk and bsd.subdir.mk is recursing too many times.
2015-10-14 19:30:04 +00:00
bdrewery
e08f0663f7 Replace the out-of-place includes/files/config handling in bsd.subdir.mk with
more typical ALL_SUBDIR_TARGETS entries and target hooks in bsd.incs.mk,
bsd.files.mk and bsd.confs.mk.

This allows the targets to be NOPs if unneeded and still work with the
shortcut 'make includes' to build and then install in a parallel-safe manner.

Sort and re-indent the ALL_SUBDIR_TARGETS with the new entries.

Sponsored by:	EMC / Isilon Storage Division
2015-10-14 02:37:30 +00:00
bdrewery
c54a8cc39c Correct a comment in bsd.incs.mk forgotten in r274662 and copied into bsd.confs.mk.
The bsd.confs.mk may be wrong but for now fix it.

Sponsored by:	EMC / Isilon Storage Division
2015-10-14 00:43:29 +00:00
bapt
373087d736 Merge from head 2015-10-09 22:45:54 +00:00
bapt
9bfb62646b Remove extra space badly merged 2015-10-07 06:31:01 +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
bapt
f57d905465 Merge from head 2015-10-01 09:36:43 +00:00
bdrewery
99f1862333 META_MODE: Fix staging not respecting _DIR overrides.
This fixes atf-c.h not properly being installed to /usr/include/ (in
the stagedir) via its override of 'INCSDIR_atf-c.h= ${INCLUDEDIR}'.

This fixes building things that depend on atf.

Staging seems to ignore OWN/GRP/MODE settings and needs further exploration.

Sponsored by:	EMC / Isilon Storage Division
2015-09-25 05:15:27 +00:00
bapt
b59c5e751e Merge from head 2015-09-12 11:41:31 +00:00
bapt
e432526cab Simplify symlinks on include files by using bmake's multivariable .for loops 2015-06-21 22:27:52 +00:00
bapt
35a6f0a11c Merge from head 2015-06-15 10:56:01 +00:00
sjg
60ff4eb0df Merge from head 2015-05-26 21:52:57 +00:00
bapt
fff6c6a5b7 Merge from HEAD 2015-05-07 23:18:23 +00:00
bapt
79de2555b1 Rework PRIVATELIB
Now when a lib is marked as PRIVATELIB it is renamed into libprivate$foo instead
of being installed in /usr/lib/private and playing with rpath.

Also allow to install headers for PRIVATELIBS in that case the headers will be
installed in /usr/include/private/$foo

Keep the headers under a private namespace to prevent third party build system
to easily find them to ensure they are only used on purpose.

This allows for non base applications to statically link against a library in
base which is linked to a privatelib

Treating PRIVATELIBS as regular libraries allows to push them into our current
compatX packages if needed.

While here finish promotion of libevent as PRIVATELIB
Install header for bsdstat and libucl

Differential Revision:	https://reviews.freebsd.org/D2365
Reviewed by:	brooks, des
Discussed with:	imp
2015-05-04 16:28:54 +00:00
bapt
f746c0075f Makes it more flexible to tag and define a target package 2015-02-13 00:16:05 +00:00
bapt
68eae5df4b Tag the metalog with a global default sets of tags that will be used to decide
what will go in which package, more finer grain tagging to come
2015-02-10 22:29:07 +00:00
sjg
b137080f19 Merge from head@274682 2014-11-19 01:07:58 +00:00
imp
04342bcb51 Acutally, replaces NO_INCS with WITHOUT_INCLUDES and make
WITHOUT_TOOLCHAIN imply it instead.

Sponsored by: Netflix
2014-11-18 17:06:44 +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
5e568154a0 Merge head 2014-04-28 07:50:45 +00:00
imp
edf11b5e7e Eliminate NO_INCS. It is used one place, and MK_TOOLCHAIN=no will
handle the job just as well. Opt for simplicity rather than one more
option.
2014-04-25 19:25:45 +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
64fca9118b We may only have INCSLINKS, and STAGE_SYMLINKS should all be full paths. 2013-02-16 01:20:56 +00:00
obrien
3028e3f8ab Sync with HEAD. 2013-02-08 16:10:16 +00:00
sjg
933720a26c Because the target of SYMLINKS is typically a full path, we
"stage" them to the stage tree rather than a location within.
2013-01-23 00:46:53 +00:00
brooks
6c2d158aba Replace all known uses of ln in the build process with appropriate
install -l invocations via new INSTALL_LINK and INSTALL_SYMLINK
variables.

Sponsored by:	DARPA, AFRL
Reviewed by:	ian, ray, rpaulo
2013-01-21 22:40:39 +00:00
sjg
0672f433b5 defined(${group}NAME) is also a trigger for special handling 2012-11-08 21:40:05 +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
ru
388e590f95 Reimplementation of world/kernel build options. For details, see:
http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html

The src.conf(5) manpage is to follow in a few days.

Brought to you by:	imp, jhb, kris, phk, ru (all bugs are mine)
2006-03-17 18:54:44 +00:00
ru
19edb751d7 Handle NO_INCS solely inside bsd.incs.mk. 2006-02-03 16:50:32 +00:00
phk
7a7a209869 Don't install includes if NO_TOOLCHAIN 2005-08-03 09:26:01 +00:00
harti
f2968c80c9 Make sure the only thing that follows .endif or .else is a comment. 2005-04-11 07:13:29 +00:00
ru
734b0dc514 Try really hard to fix parallel installs. Add a bunch of .ORDER
directives to ensure that all realinstall sub-tasks are executed
after beforeinstall, similarly ensure that all afterinstall sub-
tasks are executed after realinstall.  Demonstration:

all: task1 task2
.ORDER: task1 task2

task2: task2_subtask
.ORDER: task1 task2_subtask

task1 task2 task2_subtask:
	@sleep `jot -r 1 0 1.0`
	@echo ${.TARGET}

Without the second .ORDER directive, task2_subtask can be run in
parallel with task1.

Spotted by:	Andrea Campi <andrea@webcom.it>
2002-07-03 12:28:03 +00:00
ru
f5faaf6181 Rename includes' to buildincludes'.
Rename `incsinstall' to `installincludes'.
Make `includes' a -j safe shortcut for `buildincludes' + `installincludes'.
`buildincludes' and `installincludes' are SUBDIR friendly, if run directly.
2002-05-15 16:19:54 +00:00
ru
59049318b6 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".
2002-05-12 16:01:00 +00:00