Commit Graph

180 Commits

Author SHA1 Message Date
drochner 4a475cf859 find the Makefile for postinstall-check in the presence of ${.OBJDIR}s 2002-06-26 16:28:18 +00:00
thorpej acbbadfc02 Fix what rev. 1.176 broke, in particular, doing a priv'd build into
an NFS root area for a diskless client.  In such a situation, you
DO want the postinstall-check to be run.

The circumstances under which postinstall-check is now run:
* UNPRIVED is not set.
* The original target invoked was not distribution, release, or
  snapshot.
2002-06-26 00:10:16 +00:00
enami 448f2a8c1a Fix whitespace usage in comment. 2002-06-20 08:21:59 +00:00
enami fbd7819d66 Change directory to .CURDIR before invoking ${MAKE}. 2002-06-20 08:21:23 +00:00
lukem a4a1de1457 In afterinstall, only run postinstall check if DESTDIR == / (or equivalents).
Fixes [misc/17275] from Gregory McGarry <g.mcgarry@ieee.org>
2002-06-19 00:17:11 +00:00
lukem 42f8815d89 Change -s srcdir and -d destdir so that they don't contain the "/etc" portion.
srcdir now defaults to /usr/src (from /usr/src/etc).
destdir now defaults to / (from /etc).
2002-05-07 02:11:07 +00:00
lukem d918d8f74f Move the METALOG from ${_SRC_TOP_OBJ_} to ${DESTDIR}.
There were too many synchronisation problems with using the former;
including situations such as a "make clean" performed between two
installs to the same DESTDIR would result in a truncated METALOG and
the resultant sets would be missing stuff such as include files that
don't get reinstalled if they haven't changed, even with !UPDATE.
2002-05-03 08:58:45 +00:00
sommerfeld 965e0acae4 Correct BUGS in BUILDING.mdoc now that most ports are USE_NEW_TOOLCHAIN
Obsolete NBUILDJOBS; build.sh just passes -jN through to make(1),
which inherits it cooperatively through the build tree.  Fix
documentation so that it's shown to be deprecated.

If you use build -jN, please save full build logs so that errors due
to missing dependancies can be analyzed and corrected.
2002-05-02 22:13:30 +00:00
bjh21 f44c794643 Use printf rather than echo -n, since the former works on all POSIX systems. 2002-05-02 16:36:21 +00:00
lukem 4d5e7bcd0b we might as well provide a handy "postinstall-fix" target whilst here 2002-04-29 12:14:36 +00:00
lukem 1338b74b9f move postinstall from afterinstall to separate "postinstall-check" target.
requested by Matthias Scheler <tron@zhadum.de>.
2002-04-29 12:09:13 +00:00
lukem f9eb7d99f0 run "./etc/postinstall check" in afterinstall: 2002-04-27 08:11:53 +00:00
tv d42f167bc5 Revert previous so crtbeginS and crtendS are available. 2002-04-11 19:31:06 +00:00
tv d536f9a644 We don't need to do "install" of lib/csu specially. Just install it with
the rest of lib.

(None of lib/* needs csu installed in order to link.  In the USETOOLS!=yes
case, csu may even depend on a newer libc, so installing csu before
compiling host tools in lib/ could break things even worse.)
2002-04-11 19:08:13 +00:00
simonb d94dc50679 Split the _SUBDIR assignment into two assignments so you can do things
like "grep ^_SUBDIR Makefile".
2002-03-11 07:49:24 +00:00
pk 363e8b8dbc Build whatis.db and infodir-meta from the commands list of the afterinstall
target. Remember: inserting `dummy' targets is not equivalent of some
convenient macro expansion; it has side effects!
2002-03-05 16:17:06 +00:00
jmc c4b45e27c6 Restructure infodir-meta to call a proper submake. Put the code into the
install-info gnu subdir as it's the program updating the dir file. This
all has to happen because METALOG depends on _SRC_TOP_OBJ which is now
not defined in the top level Makefile per tv's last commit. Which is fine
as this rule should have gone into a program's Makefile anyways just like
the whatis.db one does.
2002-03-01 06:02:41 +00:00
tv 1493d7d064 If _SRC_TOP_OBJ_ gets set here, we will end up with a directory that may
not be the top level objdir, because "make obj" can happen in the *middle*
of "make build" (long after <bsd.own.mk> is calculated it).  So, pre-set
_SRC_TOP_OBJ_ here so it will not be added to ${.MAKEOVERRIDES}.
2002-02-28 02:22:59 +00:00
tv a194e2ca32 Bomb if NBUILDJOBS is set, as it is badly broken in some way (as described
in toolchain/14837).  This is the root of some problems thought to be of
different causes by users who forget to say that they are using
"build.sh -j"....
2002-02-14 19:17:32 +00:00
lukem a63be975b0 remove METALOG in clean 2002-02-08 16:11:18 +00:00
thorpej ce5a5f9415 Add a wrapper for the "distribution" target, similar to the wrapper
for the "release" target.
2001-11-25 18:31:12 +00:00
perry 575abb014c Add a new target (infodir-meta:) that synthesizes the share/info/dir
file's metadata if UNPRIVED and MKINFO != no. Make afterinstall depend
on it as well as whatis.db.
XXX I wish there was a more rational place to synthesize the metadata,
but I can't think of one. The share/info/dir file is built by all the
world's install-info executions.
2001-11-24 21:53:16 +00:00
tv d027b1e973 No, really revert previous. Recursing to etc works, and I'm in the middle
of fixing distrib right now.  If something's broken, please report it via
the proper channels.
2001-11-20 17:05:02 +00:00
thorpej e5dbd7b652 No, really take etc and distrib out of the default subdir
list.  We've waited too long for the null target sweep.
2001-11-20 15:20:28 +00:00
tv 7b0d893016 Warn when "make build" is started with USE_NEW_TOOLCHAIN on a platform for
which USE_NEW_TOOLCHAIN is not verified to work [is not on by default].
2001-11-15 19:32:19 +00:00
tv 6ba13bbf13 Reverse the order of "make cleandir" and "make obj" back to the way they
were historically.  Discrepancy noted by atatat.
2001-11-13 17:47:16 +00:00
tv af17e1a352 Rather than build in `tools' and `lib' twice, build `tools' and `lib'
completely and install them, then skip recursing into those directories
on the final dependall/install.
2001-11-13 15:56:28 +00:00
tv 7e7d9dbd76 The top level has an objdir now, so make sure to cd to ${.CURDIR} when
recursing in-place.
2001-11-13 03:17:12 +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
tv 79ca4cf1a1 Create an objdir here for storage of timestamps, build-wide data, and so
forth.
2001-11-11 22:40:42 +00:00
tv 3980e269f9 By popular demand, one preformatted version of BUILDING, plaintext, no CRs. 2001-11-01 16:34:21 +00:00
tv 4ef4ea21a1 Revert previous. <bsd.own.mk> already defaults MKOBJDIRS to "no". Also
clean up the evaluation of ${MKOBJDIRS} later -- no need for :Uno.
2001-11-01 16:30:53 +00:00
jmc 5f2c8aaa60 Add back original behavior of MKOBJDIRS defaulting to "no" so it doesn't
force people to set yet another variable to get the expected behavior
2001-11-01 15:48:39 +00:00
jmc 100b449518 Add back logic which forces DESTDIR=/ for the distrib-dirs rule if it's not set
or it's blank. The new toolchain rules set it to blank which can run into
the sanity checks in etc/Makefile
2001-10-31 19:41:54 +00:00
tv c9a6a2c359 * Always descend into "tools" regardless of USETOOLS setting. Instead,
just don't build the tools if USETOOLS!=yes.  This permits objdirs to
  be created even when USETOOLS=no.

* Clean up use of "-m" by specifying it to .MAKEFLAGS: if needed.
2001-10-31 01:20:09 +00:00
tv 972dc83c9b Work around parallelism lossage, because .ORDER doesn't work yet
(noted in PR bin/14404).  This will be fixed back to using .ORDER later.
2001-10-30 17:59:10 +00:00
tv 83805cdad7 Add rules for generating plaintext and HTML versions of the "BUILDING"
document automatically (to be checked in when BUILDING.mdoc is changed).
2001-10-29 19:48:35 +00:00
tv ceb7997de9 Re-add intermediate dependall/install targets (do-lib-csu, do-lib,
do-gnu-lib) to permit restarting broken builds in the middle.
2001-10-24 03:21:20 +00:00
tv f2fc1b7b7d Add shortcut rules to avoid going into distrib on unneeded (and in some
cases, currently broken) targets.
2001-10-24 02:45:34 +00:00
tv 2970104486 Revert previous. etc and distrib do now belong in _SUBDIR; the correct fix
for broken builds is to fix the relevant Makefiles as was done for sparc.
This was done in the interest of simplicity of the system build (and the
fact that there may be a need to descend into these directories in the
near future).
2001-10-24 01:07:13 +00:00
jmc bf87bd3e66 Remove distrib and etc from _SUBDIR. These should never get added to the
subdir list as anything building into them will access them directly (ala
the make release rule or the mtree rule). There were good reasons for
controlling this at the top level before and those should remain in place.

On cleandir and obj builds these should get run through but that's it for
the "normal" rule sets. (This was breaking the builds as make includes doesn't
function inside of distrib for instance).
2001-10-21 08:03:01 +00:00
tv 02f4c7942d Add a couple more shortcut rules for the "tools" subdir to prevent recursion. 2001-10-19 14:17:52 +00:00
tv 04f0c5e946 Change
${USETOOLS} != "no"
to
  ${USETOOLS} == "yes"
to allow USETOOLS to be tri-state:  "yes", "no", or "never".  The use of
these options will be documented in src/BUILDING.
2001-10-19 03:19:01 +00:00
tv 952ac49eba Overhaul and simplify the top level Makefile, and add some sanity checking.
- "make build" cannot be invoked from the command line at the same time as
  any standard recursive target except "obj" and "cleandir", as things like
  "make all release" can lead to unexpected results.

- Put everything in SUBDIR, and auto-weed missing directories.  This allows
  the standard targets to work as expected (including in tools, etc, and
  distrib).

- Leverage .for loops to simplify the prerequisite dependall/install phase
  of compile-time dependencies (lib/csu, lib, gnu/lib).  These are now all
  distilled into one component rule ("do-build").

- Use the actual targets of obj, cleandir, and includes; no need for double
  indirection goop in this case.

- GC all the deprecated "domestic" cruft.  We are officially using (and
  fixing, where appropriate) the cryptosystem integrated into src/crypto.

- Collapse the whatis.db build rule into a dependency of "afterinstall",
  and nuke the "_BUILD" cruft.
2001-10-19 02:35:45 +00:00
nathanw 7f59122d03 Use @true instead of @${TRUE} in includes-foo targets, since there is no
variable TRUE defined in our makefile system.

This prevents "make includes" from breaking with older bsd.subdir.mk, and is
more consistent with the uses of "true" in the rest of the tree.
2001-10-12 21:05:08 +00:00
jwise 5afee0c76e Do not descend into `tools' on make clean{dir,} if USETOOLS=no, as doing
so without TOOLDIR set will blow up.
2001-10-10 17:20:15 +00:00
tv 1c63cc9689 Add "tools" to the list of subdirs for an explicit "make obj" or
"make cleandir".  Fixes PR bin/14177.

"make build"'s logic and the conventional <bsd.subdir.mk> logic probably
need to be split apart here at some point to prevent these kinds of things
from causing odd problems in the future....
2001-10-08 23:42:21 +00:00
tv b9adda39a5 Use ${.CURDIR}/share/mk to include bsd.own.mk and bsd.subdir.mk into this
file in order to get proper definitions for a build.  (Temporary; this
Makefile will be moved to a new name and replaced with a bootstrap Makefile
in the near future.)
2001-10-04 17:59:49 +00:00
mason db2a0203e7 UPDATING (1.38) says:
i386 platform builds must now set TOOLDIR in mk.conf or the
        environment in order to build the system.  This is a pathname
        where host build tools will be installed, and must NOT be
        the same as src/tools.

        (Optionally, USETOOLS=no can be set in the environment if you
        wish to avoid using the separate host toolchain for building a
        subtree.  Otherwise, this will default to "yes" automatically.)

However, building with USETOOLS=no set and no defined TOOLDIR ends up
with breakage, as the do-make-tools target is run regardless of whether
or not USETOOLS is set.

Hence, a wrapper around the body of the do-make-tools target:

.if ${USETOOLS} != "no"
...
.endif

...which makes the build work when USETOOLS=no, with no TOOLDIR set. This
would seem to more accurately match the description put forth in UPDATING.
2001-10-01 17:19:17 +00:00
tv 284306ffbc Put do-make-tools before creating distrib-dirs (as binstall has to be
available before making distrib-dirs).
2001-09-22 12:30:13 +00:00