Commit Graph

96 Commits

Author SHA1 Message Date
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
tron fce29e26d8 Honor contents of "CLEANFILES" in "cleandir" target. 2005-04-19 08:41:37 +00:00
jmc 567190270a If USETOOLS != yes then depend on the system tmac directory, not DESTDIR since
USETOOLS=no/never means the system groff is being used so depending on
anything except it's tmac files makes no sense (and prevents builds with
USETOOLS=no/never from working as PR#23067 points out)
2004-06-23 15:28:19 +00:00
lukem 7f363470cf oops in previous; can't call cleanhtml in cleandir at this time 2004-01-29 05:25:51 +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 f8780e2dfa Support MAKEVERBOSE when installing man symlinks.
Note; this makes symlink installation more "chatty" in the MAKEVERBOSE=2
case, but results in more consistent operation for that level.
2003-11-06 22:59:03 +00:00
lukem 130ab7336b Rework how MAKEVERBOSE operates:
*	Don't bother prefixing commands with a line of  ${_MKCMD}\
	and instead rely upon "make -s".  This is less intrusive on
	all the Makefiles than the former.  Idea from David Laight.

    *	Rename the variables use to print messages.  The scheme now is:
	    _MKMSG_FOO		Run  _MKMSG 'foo'
	    _MKTARGET_FOO	Run  _MKMSG_FOO ${.TARGET}
	From discussion with Alistair Crooks.
2003-10-21 10:01:19 +00:00
lukem 4ccb31e74a Provide _MKMSG{BUILD,CREATE,COMPILE,FORMAT,INSTALL,LINK,LEX,YACC} to display
${_MKMSG} "  ...  {$.TARGET}"  and use appropriately.

Provide _MKMSGLINK.m to provide "link" message by itself (without ${.TARGET})

Replace _MKSHCMD with _MKSHECHO
2003-10-19 03:00:55 +00:00
lukem f1e290c260 implement MAKEVERBOSE for rules which are of the form:
@cmp -s ${.ALLSRC} ${.TARGET} || ( echo cmd && cmd )
2003-10-18 16:41:19 +00:00
lukem 03b6213598 Implement MAKEVERBOSE to control how "verbose" the standard make(1) rules are.
Supported values:
    0	Minimal output ("quiet")
    1	Describe what is occurring
    2	Describe what is occurring and echo the actual command ("verbose")
	This is the default, and is equivalent to the previous behaviour.
2003-10-18 15:33:59 +00:00
lukem 518360ab1a pull in <bsd.files.mk> incase LNFILES is used by <bsd.man.mk> user. 2003-09-03 05:40:12 +00:00
lukem f134f3dc38 Add MKUNPRIVED; if not no has the same semantics as if UNPRIVED was defined.
Replace defined(UNPRIVED) tests with ${MKUNPRIVED} != "no"

Add MKUPDATE; if not no has the same semantics as if UPDATE was defined.
Replace defined(UPDATE) tests with ${MKUPDATE} != "no"

Improve documentation for these and other make flags.
2003-07-18 08:26:01 +00:00
lukem 4d63406463 Add MKMANZ; if not set to "no", compress the manual pages at installation time.
This replaces the previous  .if defined (MANZ) behaviour, although the latter
will set MKMANZ=yes for compatibility purposes.

Don't bother with -P-bou in TOOL_ROFF_HTML; it doesn't appear to be
necessary with groff 1.19.

Fix NOHTML implementation to be consistent with other NOxxx / MKxxx
variables, and expose the user-tweakable MKHTML.
2003-07-18 02:52:51 +00:00
lukem 001c68bd94 Rename a large chunk of the make(1) variables which refer to a
program/tool from "FOO" to "TOOL_FOO".  The new variables are:
	TOOL_ASN1_COMPILE  TOOL_CAP_MKDB  TOOL_CAT  TOOL_CKSUM  TOOL_COMPILE_ET
	TOOL_CONFIG  TOOL_CRUNCHGEN  TOOL_CTAGS  TOOL_DB  TOOL_EQN  TOOL_FGEN
	TOOL_GENCAT  TOOL_GROFF  TOOL_HEXDUMP  TOOL_INDXBIB  TOOL_INSTALLBOOT
	TOOL_INSTALL_INFO  TOOL_M4  TOOL_MAKEFS  TOOL_MAKEINFO  TOOL_MAKEWHATIS
	TOOL_MDSETIMAGE  TOOL_MENUC  TOOL_MKCSMAPPER  TOOL_MKESDB
	TOOL_MKLOCALE  TOOL_MKMAGIC  TOOL_MKTEMP  TOOL_MSGC  TOOL_MTREE
	TOOL_PAX  TOOL_PIC  TOOL_PREPMKBOOTIMAGE  TOOL_PWD_MKDB  TOOL_REFER
	TOOL_ROFF_ASCII  TOOL_ROFF_DVI  TOOL_ROFF_HTML  TOOL_ROFF_PS
	TOOL_ROFF_RAW  TOOL_RPCGEN  TOOL_SOELIM  TOOL_SUNLABEL  TOOL_TBL
	TOOL_UUDECODE  TOOL_VGRIND  TOOL_ZIC

For each, provide default in <bsd.sys.mk> of the form:
	TOOL_FOO?=	foo
and for the ${USETOOLS}=="yes" case in <bsd.own.mk>, provide override:
	TOOL_FOO=	${TOOLDIR}/bin/${_TOOL_PREFIX}foo

Document all of these in bsd.README.

This cleans up a chunk of potential (and actual) namespace collision
within our build infrastructure, as well as improves consistency in
the share/mk documentation and provision of appropriate defaults for
each of these variables.
2003-07-10 10:33:58 +00:00
wiz 61ddcbc141 Adapt CATDEPS/HTMLDEPS for groff-1.19. 2003-06-30 18:49:05 +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
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
ross a3f340931b Honor MANSUBDIR when installing md html pages. 2002-02-07 01:56:02 +00:00
ross 57170e8ef5 fix html sources, they were depending on -mdoc, not -mdoc2html 2002-02-07 00:52:23 +00:00
christos e7f0a97835 s/.NOSUFF/.MADE/ 2002-02-04 17:25:44 +00:00
christos 944602ca01 Apply a .NOSUFF: directive to targets we don't want to have processed by
the suffix rules engine.
2002-02-03 21:40:14 +00:00
mrg e5a41e331a generate man pages into a temporary file and rename it if groff succeeds.
this avoids a problem where groff was dumping core and leaving empty
manpage.catN files, that would later not be rebuilt.
2002-01-06 01:27:25 +00:00
tv 35bea081fe Always depend on ${MANPAGES}, so deliberately pre-generated files are
built automatically (even without a ${MANSUFFIX}).
2001-12-17 21:27:45 +00:00
jmc 9083f42414 There's no need for TMACDIR here after all. Anything using it is using it for
FILES installs so it can't have DESTDIR in front of it (and those Makefiles
all explicitly set it).
2001-11-28 23:32:16 +00:00
tv 8f2c8e583f Fix the :U's used with ${UPDATE} so that stray values don't get put into
the .PHONY: target.
2001-11-28 20:19:08 +00:00
jmc 20bb75f3c3 Separate out TMACDIR's use for install's from it's dependency function.
The dependency should be against the TOOLDIR files (is USETOOLS=yes) but
installs will always use ${DESTDIR}/usr/share/tmac.

Without this if people do not have /usr/share/tmac/tmac.andoc on their
systems while building the build will break in the groff areas due to
the dependency rules.
2001-11-28 05:01:28 +00:00
perry 550b1df8d6 replace instances of ln with ${INSTALL_LINK} and ${INSTALL_SYMLINK} 2001-11-19 04:46:07 +00:00
thorpej c08a9b5abe Need bsd.sys.mk for the GROFF definition in the non-USETOOLS case. 2001-11-17 20:38:45 +00:00
tv b5cd2489b2 Major overhaul of src/tools and host toolchain. Summary of changes:
* Rewrite src/tools Make logic to work like the rest of the tree wrt
  "dependall" and "install".  The old "make build" hack is gone.

* Remove the MKTOOLS logic.  This was linked to the "make build" hack,
  and was only needed because TOOLDIR originally had no writable default.

* Redo the GNU configure/make logic to make it fit reasonably in a
  BSD make wrapper.  Use new ${.ALLTARGETS} variable to scan for
  targets in $(srcdir), and mark them with .MADE: to prevent rebuilding.

* Only build cross tools in src/tools; remove some messy logic in
  src/usr.* and src/gnu/usr.* that would do target filename rewriting
  (improves consistency and readability).

* Add the ability to build cross gdb at tool build time by setting
  MKCROSSGDB (default no) to "yes" in mk.conf.

* Add src/tools/groff and set up paths to work with this cross groff.
2001-11-12 23:16:17 +00:00
enami 97ab45c39d Don't try to build nonexistent compressed man page. 2001-11-04 00:30:52 +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
tv d0f9e45413 Rather than explicitly saying "clean cleandir:" all the time, make clean
a dependency of cleandir (so that "make cleandir" implies "make clean").
2001-08-14 07:02:13 +00:00
tv dd70bf30ad Make "distclean" a REAL synonym for "cleandir" by actually aliasing it
in <bsd.own.mk>, rather than sprinkling it in all the .mk files (and
some Makefiles throughout the tree).
2001-06-01 17:49:32 +00:00
sommerfeld 263f3e581d Suppress duplicate entries in ALLFILES, FILES, INCS, DEPINCS, INFOFILES,
NLSALL, CATPAGES, MANPAGES, HTMLPAGES, and SCRIPTS.
2001-05-08 03:19:51 +00:00
simonb 0f020a8ccc Don't overwrite catman pages if there's no difference between the old
and the new pages.  As per discussion on tech-install (a little while
ago).
2001-03-21 04:04:15 +00:00
tron 148a50300a Back out last change as there is no measurable performance gain. 2001-03-05 14:17:06 +00:00
tron df07a57fe4 Invoke "groff" directly when building manual pages, "nroff" is just a
shell script wrapper. This saves at least one fork(2) and one exec(2)
while creating each manual page and should thus speed up builds.
2001-03-05 06:52:12 +00:00
phil fe4560a9a3 Get the correct command line using groff instead of nroff. 2000-09-26 15:33:28 +00:00
phil ec49e039c2 Add rules to make and install html pages in /usr/share/man/html* 2000-09-22 05:37:57 +00:00
itojun 424b5f77fb MLINK optimization based on timestamp. 2000-08-13 06:56:25 +00:00
itojun 531e380d08 do not test $UPDATE nor file existence, on "MLINKS" installation.
the check will leave original manpage and linked manpage unsynchronized,
as we use hard link instead of symlinks.

this backs out 1.37 -> 1.38 change.
2000-08-13 06:36:29 +00:00
mycroft befa5650d3 Minor rearrangement. 2000-06-06 09:22:00 +00:00
mycroft 34e1bda46a Use ODE make(1) features to eliminate extra variables and move several things
outside of .for loops.  (Needs more work to completely eliminate .for.)

XXX Don't look at this stuff.  It will make your head hurt.
2000-06-06 05:40:47 +00:00
erh ad351344c0 Add NOPATH to prevent .cat* files in the search path from interfering. 2000-02-19 22:54:08 +00:00
mycroft 3e13200b73 Make `dependall' play nicely with SUBDIR, using a hack similar to `realinstall'
for both `depend' and `all'.
Also, remove the old hack that invokes an extra shell for .depend, now that
make(1) has been fixed.
2000-01-22 19:31:00 +00:00
perry 9ad44ce879 Add a "dependall" target, which does a "make depend" and then "make all"
in a single directory. This is useful in "make build" because by doing
the build immediately after the depend, all sources will typically
still be in the buffer cache, thus saving significant time over doing
a "make depend" on all the directories and then a "make all".
1999-09-14 01:31:11 +00:00
fredb 1008436afc Permit "make all install", as well as "make foo install" (where foo would be
installed by "make install") without setting of BUILD. All cases where BUILD
is already set are unchanged from the old behavior.

"make all install" is now practically equivalent to "make BUILD= all install",
but without actually setting build.

Fixes pr's 8313, 3894.
1999-09-04 21:48:33 +00:00
simonb 7987e3b34d Add ${INSTPRIV} to ${INSTALL} commands. 1999-08-21 06:17:45 +00:00