Commit Graph

194 Commits

Author SHA1 Message Date
lukem fb684df6a8 fix DESTDIR checks if !defined(DESTDIR) 2002-12-26 12:01:48 +00:00
lukem fdbcc834bb * Add two new (experimental) targets:
buildworld	Builds a distribution into DESTDIR as per
			"make distribution", except that DESTDIR
			*must* be defined and *must not* be "" or "/".

	installworld	Copies (using distrib/sets/maketars -i ...) from
			${DESTDIR} to ${INSTALLWORLDDIR} (defaults == `/'),
			and then runs "postinstall-check" against
			${INSTALLWORLDDIR}.
			If ${INSTALLWORLDDIR} == "/", ensure that
			`uname -s` == "NetBSD" and `uname -m` == ${MACHINE},
			to prevent nasty accidents...

* Tweak some comments
2002-12-21 16:43:33 +00:00
lukem cc7d629612 improve previous; show times at end of distribution/release/snapshot as well 2002-12-02 08:27:03 +00:00
lukem a826bbcb62 show the start time at the end of the build as well.
inspired by [misc/18173] from Julio Merino.
2002-12-02 08:23:41 +00:00
lukem ac422fecfe Add do-{target} aliases for: cleandir obj includes
to be consistent with the other do-TARGET targets for make build.
(These are not used by "make build" per se, they're just to make my
life easier)
2002-11-29 23:48:37 +00:00
itohy cbb1f0fb0f MKDYNAMICROOT for a.out 2002-11-12 14:33:48 +00:00
lukem d7d0f4149a move BUILDING.mdoc -> doc/BUILDING.mdoc 2002-09-21 08:19:27 +00:00
thorpej 3b08abd277 * Eliminate the USE_NEW_TOOLCHAIN variable. Instead, split it into
two variables:

  TOOLCHAIN_MISSING -- set to "yes" on platforms for which there is
  no working in-tree toolchain (hppa, ns32k, sh5, x86_64).

  EXTERNAL_TOOLCHAIN -- if defined by the user, points to the root of
  an external toolchain (e.g. /usr/local/gnu).  This enables the cross-build
  framework even for TOOLCHAIN_MISSING platforms.

  If TOOLCHAIN_MISSING is set to "yes", MKGDB, MKBFD, and MKGCC are all
  unconditionally set to "no", since the bits are not there to build.

  If EXTERNAL_TOOLCHAIN is set, MKGCC is unconditionally set to "no",
  since the external toolchain's compiler is not in-sync with the
  in-tree compiler support components (e.g. libgcc).

* Set MACHINE_CPU much earlier in bsd.own.mk, so that more tests in
  that file can use it.
2002-09-17 23:18:25 +00:00
thorpej cb6a0e6be0 Add a do-lib-libc target which is processed after do-lib-csu. This
ensures that the results of the libc build are available to other
lib builds (notably, llib-lc.ln).
2002-09-14 16:46:24 +00:00
lukem c2b25c67f3 print date when make {distribution,release,snapshot} finished 2002-08-30 06:30:33 +00:00
lukem 0cedce33e5 add "do-ld.elf_so" target, which builds & installs libexec/ld.elf_so.
call after do-gnu-lib but before do-build.
2002-08-26 04:40:20 +00:00
lukem 6e26645246 descend into "rescue" 2002-08-22 02:23:23 +00:00
uwe b00bce7880 Fix botch in previous. Actually do "build" for "distribution". 2002-07-10 23:44:54 +00:00
thorpej 9f5077e3a3 After running the body of the "distribution" target, do a "checkflist", so
that people doing fresh builds into NFS root areas will know if their builds
are incomplete.
2002-07-10 18:55:20 +00:00
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