Commit Graph

35 Commits

Author SHA1 Message Date
christos fdd8676a97 get rid of old style `` command substitution in shell and use $() instead. 2022-03-29 22:48:04 +00:00
apb 91fe922f05 Add LINKSOWN, LINKSGRP, and LINKSMODE variables for use by bsd.links.mk
when installing hard links.  They have no effect except when using a
metalog, in which case the information is added to the metalog.  In
the future, these variables may be replaced by a method for explicitly
recording hard links in a metadata log.

Also change a few things that called ${INSTALL_LINK} without going
through bsd.links.mk.

Reviewed by perry and joerg.  This should fix PR 24457 and PR 41155.
2009-04-10 16:16:12 +00:00
isaki 1fe1c1d477 Make configlinksinstall work correctly even if CONFIGSYMLINKS is
defined but empty.
2009-03-01 09:42:41 +00:00
dbj b41feff50f fixes for installing into a case insensitive $DESTDIR
when files may have hard links to a a name that only differs by case
  - change install to unconditionally remove its temporary file
    when installing hard links with -r.  This avoids problems when
    built with posix rename(2) semantics and reinstalling an existing
    hard link.
  - rework hard link targets in bsd.man.mk and bsd.links.mk
    to use makefile constructs instead of shell constructs
  - always reinstall hard links that may have case conflicts, even
    when MKUPDATE=yes, this ensures that they get added to METALOG
  - remove man pages which were hard linked to themselves in libform
  - remove improper hard link command for existing man page in libkrb5
  - fix libl's makefile to include bsd.lib.mk at end
  - remove shell quoting in link target for test's [.1 man page
2006-09-11 22:24:09 +00:00
jwise 8bc0f5da0f Now that we have real build system support for syspkgs, remove someone's
half-implemented idea of building `syspkgs' (really a few giant blobs of the
same granularity of the old sets) using install(1).
2006-03-16 18:43:34 +00:00
lukem aca67b86d3 Fix parallel build race in CONFIGSYMLINKS & CONFIGLINKS by
makeing configlinksinstall depend upon configfilesinstall.
2005-08-31 05:08:24 +00:00
christos c4d334e77e check for defined before checking for empty to ease a 1.6 transition 2004-06-25 02:05:39 +00:00
lukem 5be4460d43 Support CONFIGLINKS, which is similar to LINKS, except that they're installed
with the 'configinstall' target instead of the 'install' target.
2004-05-16 09:44:38 +00:00
lukem 95820dab0e Add CONFIGFILES & CONFIGSYMLINKS; similar semantics to FILES & SYMLINKS
yet installed by 'configinstall' not 'install'.
(CONFIGFILES uses FILES{DIR,MODE,OWN,GRP,NAME}{,_*} as per FILES)
2004-05-13 13:05:53 +00:00
lukem 84a4748659 Cosmetically tweak how .PHONY is used by (generally) providing it as a source,
instead of using it as a target with all the rules as its sources.
2004-01-29 01:48:45 +00:00
lukem 4c858a92f3 Support MAKEVERBOSE more effectively. 2003-11-07 00:05:24 +00:00
lukem 7cacdc7670 pull in <bsd.sys.mk> for TOOL_* incase this is used with USETOOLS=never 2003-07-28 01:00:52 +00:00
lukem 14fc1c5b77 <bsd.init.mk> is a good idea 2003-07-20 14:53:10 +00:00
lukem a36d55e898 LINKS: use stat -qf '%d %i' $l to read the device & inode # of the source
and target (and rely upon a non-zero exit value to indicate a missing file),
instead instead of unconditionally installing the link.

SYMLINKS: use   stat -qf '%Y' $l   to read a symlink's target (and rely upon
a non-zero exit value to indicate a missing file or non-symlink),
instead of   test -h $l && ls -ld $l | awk '{print $NF}'    , since
the former is quicker and more concise.

This resolves PR toolchain/16885 from David Laight.
2003-07-20 14:49:44 +00:00
perry 8885724457 Pass 1 of SYSPKG changes to automatically add tags=pkgname_pkg to METALOG.
Not quite ready for prime time yet.
2002-10-22 18:48:27 +00:00
lukem 9aa0322535 don't bother with "rm -f $$t" before ${INSTALL_LINK} or ${INSTALL_SYMLINK},
as they default to using install(1) -r.
the rm can cause problems in certain situations, such as moving a library or
shared linker that install(1) depends upon to another location and replacing
it with a (sym)link.
2002-08-24 13:12:38 +00:00
sommerfeld 36dc09c47d make(1) specifies, regarding :: targets:
Sources for a target do not accumulate over dependency lines
	when this operator is used.

An unstated implication of this is that when parallel builds are done,
each separate instance of the target can be scheduled independantly.
As a result, the linksinstall target with commands could be executed
too early during a parallel build since they didn't actually have a
dependancy on "realinstall".

To fix this, correct the linksinstall:: realinstall dependancy by
eliminating the command-less linksinstall target, and moving the
dependancy to the other linksinstall target.
2002-04-30 14:29:01 +00:00
pk ad92811bb5 `linksinstall' cannot be issued in parallel with other realinstall sources. 2002-03-21 12:59:56 +00:00
mycroft 09819b05ef Don't use .PHONY for targets that are actually installed. Instead use force
dependencies.  (Among other things, `make -t install' does something vaguely
sensible now.)
2002-02-11 21:14:58 +00:00
perry 550b1df8d6 replace instances of ln with ${INSTALL_LINK} and ${INSTALL_SYMLINK} 2001-11-19 04:46:07 +00:00
tv 1129ed4afe Improve readability and reduce redundant redundancy in share/mk; add some
descriptive comments.  The guts of hostprog, lib, and prog are mostly
unchanged; this will be done in another pass.

Make several things work properly with UNPRIVILEGED set, and make the
install-time "cmp" logic work for MANZ.  Also reimplement INCS{DIR,NAME}_foo
(requested by wiz) in a backwards compatible way.

Reviewed by christos.
2001-11-02 05:21:47 +00:00
cgd 4aa53dcd31 test -h, not test -L. 2000-07-07 04:35:35 +00:00
simonb db352c9bba Change SYMLINKS so that the link isn't recreated if it already points
to the right place (much the same as bsd.obj.mk already does).
2000-04-23 07:58:17 +00:00
mycroft dc75306e58 Make sure the `rm' and `ln' for a link are in the same shell command.
(The reason for this is obscure...)
2000-02-26 19:02:40 +00:00
drochner 72db33dc5a fix link creation:
-put "echo"s for the daughter Makefile into a subshell to get them all
 into the Makefile (instead of stdout - should fix PR misc/9336 by
 Bernd Ernesti)
-change operator for "realall" back to ":" - rules are supposed to
 accumulate, and "::" clashes with the definition in <bsd.own.mk>
-call sub-make with the "all" target to make sure we don't get just
 the first rule
2000-02-10 18:18:01 +00:00
mycroft 6235a29e6b Fix a bogon that caused some symlinks to not be installed. 2000-01-24 06:54:27 +00:00
mycroft fe5f9c4b53 Adjust symlink crap for all/realall changes. 2000-01-22 19:45:41 +00:00
castor c57180f21e Change make to ${MAKE} to allow standard make to be overridden. 1998-12-31 15:28:52 +00:00
mycroft e5ae95698c Always rebuild links, since dependencies don't DTRT. 1997-05-10 10:55:19 +00:00
mycroft 4e5d05c9cc Automatically add the .c files corresponding to .l and .y files to DPSRCS.
Automatically add DPSRCS to CLEANFILES.
1997-05-09 13:25:46 +00:00
mycroft bb8827f7d1 Various simplifications. 1997-05-07 15:53:28 +00:00
mycroft 2da111c521 Make most of the install targets .PRECIOUS. 1997-05-06 21:29:33 +00:00
mycroft 5acae7b6ea Add a pile of missing .PHONYs. 1997-05-06 20:54:31 +00:00
christos f897bfdce7 Don't make bogus dependencies with symlinks sources. 1997-03-28 15:07:28 +00:00
christos 25f6ec749f make rules update:
- add UPDATE and BUILD features
- add new FILES, INCS, SCRIPTS variables
- allow man pages source installation
1997-03-24 21:54:12 +00:00