Commit Graph

784 Commits

Author SHA1 Message Date
Yaroslav Tykhiy
519bc416ca Decouple the install tools from the main system as much as possible.
I.e., not only copy them to a scratch dir, but also make them use saved
copies of libraries and locale files.  That gives us several benefits:

1) ABI breakages should no longer affect installworld over the live system.

2) It becomes safe to run installworld while still running the old kernel.
   However, it can be reasonable to save the old /rescue before that to be
   able to run the old reboot(8), as the new binaries are rather likely to
   fail with the old kernel.  Anyhow, it's now possible to upgrade a system
   in a single reboot _reliably_.

3) With a bit of hackery around rtld(8), it becomes possible to do destructive
   cross-installs, e.g., i386->amd64 over the live system.

The only shared item left between the old and new systems is rtld(8),
which cannot be run from a saved copy easily because its full
pathname is stored in the respective field of each ELF executable.
(In theory, that field could be overridden, e.g., from the environment,
but this can lead to security issues.)  That's why a destructive
cross-install isn't possible w/o hackery yet.

Fruitful ideas by:	ru
Reviewed by:		ru
Tested with:		audit(4)
2007-10-31 09:26:42 +00:00
Ed Maste
1602894ecf If a required install tool is missing, provide a more friendly error
message (instead of cp's usage info).
2007-10-15 13:50:46 +00:00
David E. O'Brien
946367b8e2 Tweak the handling of "WITHOUT_LIBPTHREAD". Also remove the accidental
treatment of 'LIBKSE' as an "old style" knob.

Submitted by:	ru
Approved by:	re(kensmith)
2007-10-09 23:31:11 +00:00
David E. O'Brien
65c045e964 Repo copy libpthreads to libkse.
This introduces the WITHOUT_LIBKSE nob,
and changes WITHOUT_LIBPTHREADS to mean with neither threading libs.
Approved by:	re(kensmith)
2007-10-09 13:42:34 +00:00
Ruslan Ermilov
2d79741969 Revise the list of directories we manually create under
${WORLDTMP} and ${LIB32TMP}; some of them are no longer
needed, and some were never needed.

Approved by:	re (kensmith)
2007-10-01 18:24:46 +00:00
Ruslan Ermilov
152f2a4a96 Always install libpthread.* symlinks if at least one of
the threading libraries is built.  This simplifies the
logic in makefiles that need to check if the pthreads
support is present.  It also fixes a bug where we would
build a threading library that we shouldn't have built:
for example, building with WITHOUT_LIBTHR and the default
value of DEFAULT_THREADING_LIB (libthr) would mistakenly
build the libthr library, but not install it.

Approved by:	re (kensmith)
2007-10-01 18:22:32 +00:00
Xin LI
5224b41a98 Add sed(1) to cross tools. We do want newly built version during
buildworld.

Approved by:	re (rwatson)
2007-07-10 10:17:32 +00:00
Ruslan Ermilov
a1cdbf3265 lex(1) no longer installs headers into GCC-internal dirs
(since src/usr.bin/lex/Makefile,v 1.20).
2007-05-26 20:17:19 +00:00
Dag-Erling Smørgrav
98a0900ab4 Revision 1.576 removed too much. I didn't notice because my /usr is on
ZFS, which doesn't support flags...
2007-05-19 20:34:29 +00:00
Alexander Kabaev
25a362d725 GCC will now properly link libc with all shared objects in order to record
their dependency on libc and its versioned symbols. For that to work,
libc needs to be built before any other shared library that might depend
on it. Add necessary glue to make that happen.
2007-05-19 03:34:59 +00:00
Dag-Erling Smørgrav
f27f825839 Don't use a subshell where it isn't needed.
Noticed by:	John E Hein <jhein@timing.com>
2007-05-16 20:16:06 +00:00
Dag-Erling Smørgrav
32cd239bbd Expose all of {check,delete}-old{,-dirs,-files,-libs}.
MFC after:	3 weeks
2007-05-16 08:46:35 +00:00
Dag-Erling Smørgrav
84478d58d1 Remove stray comment which broke delete-old-dirs. 2007-05-16 08:39:46 +00:00
Dag-Erling Smørgrav
d1e75b81e3 Partially revert the check-old / delete-old modifications to clarify the
logic.

Apply similar modifications to {check,delete}-old-dirs, which I had
overlooked.
2007-05-16 08:37:40 +00:00
Dag-Erling Smørgrav
ca224410bc Restore previous behaviour of aborting delete-old* if rm failed.
Pointed out by:	netchild
MFC after:	3 weeks
2007-05-14 14:41:52 +00:00
Dag-Erling Smørgrav
61305271cd Greatly speed up {check,delete}-old* by replacing make loops with sh loops.
MFC after:	3 weeks
2007-05-13 18:15:50 +00:00
Daniel Eischen
00fb440c1a Enable symbol versioning by default. Use WITHOUT_SYMVER to disable it.
Warning, after symbol versioning is enabled, going back is not easy
(use WITHOUT_SYMVER at your own risk).

Change the default thread library to libthr.

There most likely still needs to be a version bump for at least the
thread libraries.  If necessary, this will happen later.
2007-05-13 14:12:40 +00:00
Pawel Jakub Dawidek
1c22c47c35 Link libzpool, ztest and zdb against libpthread.
Requested by:	ru
2007-04-17 15:52:37 +00:00
Pawel Jakub Dawidek
ceef0c312c Connect ZFS to the build. 2007-04-06 02:13:30 +00:00
Rong-En Fan
31b4134f7b Enable ncurses wide character support
Approved by:	delphij (mentor)
Tested by:	kris on pointyhat (early version), current@
2007-03-09 12:11:58 +00:00
Ruslan Ermilov
857be7a47c Bump the bootstrapping requirements for gensnmptree(1) and remove
a note in UPDATING that tried to work around the build breakage.

Tested by:	jhb
OK'ed by:	njl
2007-03-01 15:42:23 +00:00
Ruslan Ermilov
51804c7973 Resurrect one of the patches from attic and refine the
lib32 build somewhat.  Specifically, instead of spamming
${CC} et al with -I${LIB32TMP}/usr/include which can be
harmful (as has been demonstrated by the ncursesw WIP),
use slightly different approach to achieve the same goal.
This also simplifies things a bit.

Prodded by:	rafan
2007-02-28 20:06:21 +00:00
Dag-Erling Smørgrav
9c827cecbd Clean the lib32 object directory with cleandir rather than rm -rf.
Discussed with:	ru
MFC after:	2 weeks
2007-02-27 13:02:29 +00:00
Rong-En Fan
af5b5a0f15 Switch to new ncurses build glue
Approved by:	delphij
2007-01-20 07:48:10 +00:00
Ruslan Ermilov
638b0a3e1a There was a timeframe where crunchgen(1) was broken; force
an upgrade during the build so those who are affected can
build world again.
2006-11-27 19:38:28 +00:00
Ruslan Ermilov
87b8c12df5 There doesn't seem to be a real reason for include/ to be installed
so early.
2006-11-13 05:52:11 +00:00
John Birrell
61517751a7 Add sun4v to the TARGET_ARCH when just TARGET is set (like pc98 is done).
This is required for 'make universe'.
2006-10-16 22:18:13 +00:00
Kip Macy
ddd5342909 buildworld fixes for sun4v
not sure why pmap.c is included as it is unchanged

Approved by: rwatson (mentor)
Reviewed by: jmg
2006-10-09 04:58:45 +00:00
Ruslan Ermilov
49e62f1cb3 Shuffle _*_libs assigments (no functional changes). 2006-10-07 19:26:46 +00:00
Ruslan Ermilov
b193556269 - Prebuild libgssapi only if building with Kerberos support.
- Remove libnetgraph from the list of prebuilt libraries as
  no other library depends on it (snmp_netgraph.so does not
  count as we don't build it in the "libraries" target).

- Restore libssh dependencies when compiling with Kerberos
  support.
2006-10-07 18:34:08 +00:00
Ruslan Ermilov
89edd7e555 Previous revision wasn't enough for "make TARGET=<machine> build*"
to work.  Some build-tools that are part of cross-tools (cc_tools)
also need to know the proper values of TARGET_ARCH and TARGET, so
tell them.
2006-09-08 10:09:02 +00:00
Ruslan Ermilov
0f31538c9d While experimenting with cross-building by specifying just TARGET,
I found one bug.  Pass our idea of TARGET_ARCH and TARGET down to
XMAKE, the cross-tools make.  Previously it worked because usually
TARGET_ARCH was specified on the initial make's command line.
This should also allow us to simplify the "universe" target, which
I'm currently testing.
2006-09-07 20:27:56 +00:00
Ruslan Ermilov
d2f03ebb1a Added timestamping to buildworld, similar to buildkernel. 2006-09-07 19:36:16 +00:00
Ruslan Ermilov
e6cb78fbd4 - Rewrite logic to guess TARGET_ARCH/TARGET to be more readable,
but without changes in behavior.

- Add sanity checking for TARGET_ARCH/TARGET.
2006-09-07 16:41:30 +00:00
Warner Losh
ffbebdce7f make "make TARGET=foo" work correctly. Before, it would fail to set
TARGET_ARCH correctly.  Now it does, even for pc98.  We should suggest
TARGET=foo in preference to TARGET_ARCH because the former is
unambiguous and the latter isn't, so update the docs.

This means that a long standing gripe I've had with this comes to a
close.  I can build pc98 w/o specify both things.  make TARGET=arm
works (rather than trying to build a arm:amd64 image and dying badly
in the attempt).

If you specify only TARGET_ARCH, then you get the old behavior.

# we can likely simplify the UNIVERSE target now to use this, but I'm not
# up for breaking that tonight :-).

# We should consider adding some kind of sanity check for TARGET_ARCH
# and TARGET.
2006-09-07 07:37:16 +00:00
Warner Losh
1bb2049ec1 Always make obj when building the libraries. This never hurts, and
helps some cross-architecture building tool installation patches that
I'm developing.
2006-08-24 17:02:26 +00:00
Ruslan Ermilov
2b46c64c9c Remove alpha left-overs. 2006-08-22 08:03:01 +00:00
Alexander Leidinger
c49d3a7d07 Remove sade from build-tools, the tinderbox problem should be fixed now. 2006-08-09 11:03:06 +00:00
Yoshihiro Takahashi
2d0fba0551 Add the sade to build-tools list. This fixes a tinderbox. 2006-08-09 02:27:31 +00:00
Alexander Leidinger
dad9051355 Fix doxygen target.
Submitted by:	"Alexander Mogilny" <sg@astral.ntu-kpi.kiev.ua>
Pointy hat to:	netchild
2006-08-02 15:26:15 +00:00
Warner Losh
6f13c7adde Also need to quote values so they can be passed on correctly. 2006-06-06 18:07:58 +00:00
Warner Losh
621e4ae168 Create a new target 'buildenvvars'. This target reports the build
environment for cross building (the same one you'd get interactively
in make buildenv).  This cannot be a simple

        make -f Makefile.inc1 -V WMAKEENV

because in PATH is not set correctly unless one takes a trip through
the Makefile/Makefile.inc1 indirection, the logic of which is too
large to reproduce outside of Makefiles.
2006-06-06 16:24:54 +00:00
Alexander Leidinger
becc5c626d Connect the kernel subsystem API documentation generation framework to
the build infrastructure: "make doxygen"

Changes to the man pages will be made when some defaults are revisited.

Requested by:	gnn
2006-05-26 18:10:06 +00:00
Poul-Henning Kamp
f6ce2a64f7 Send the pcvt(4) driver off to retirement. 2006-05-17 09:33:15 +00:00
Ruslan Ermilov
d6acfaf5e6 Sort bootstrap-tools entries. 2006-03-31 14:10:35 +00:00
Ruslan Ermilov
03e21a94e4 Rebuild gensnmptree(1) on 700014 systems too. While 700014 corresponds
to post January 26 systems where gensnmptree(1) code was already fixed,
there was a timeframe between February 14 and February 27 when
usr.sbin/bsnmpd/ including gensnmptree was disconnected from build, so
if you upgraded in this timeframe, you ended up with the 700014 system
but still with a buggy gensnmptree binary.  This also means not being
able to buildworld now.

Reported by:	jhb
Attention:	harti, keramida
2006-03-30 13:50:48 +00:00
Ruslan Ermilov
cea557add0 Extend coverage of the MK_IPX build option to the following:
- <netipx> headers [1]
- IPX library (libipx)
- IPX support in ifconfig(8)
- IPXrouted(8)
- new MK_NCP option

New MK_NCP build option controls:

- <netncp> and <fs/nwfs> headers
- NCP library (libncp)
- ncplist(1) and ncplogin(1)
- mount_nwfs(8)
- ncp and nwfs kernel modules

User knobs: WITHOUT_IPX, WITHOUT_IPX_SUPPORT, WITHOUT_NCP.

[1] <netsmb/netbios.h> unconditionally uses <netipx> headers
so they are still installed.  This needs to be dealt with.
2006-03-20 14:24:58 +00:00
Maxime Henrion
ca404c7dca Change the default SUP command to use csup instead of CVSup for
"make update" when SUP_UPDATE is defined.
2006-03-19 15:36:56 +00:00
Ruslan Ermilov
5740a2b62d Convert NO_PROFILE and NO_LIB32 to new style. 2006-03-18 21:37:05 +00:00
Ruslan Ermilov
c3ed02cf4f Add the new "showconfig" target that displays build configuration.
Suggested by:	phk
2006-03-18 14:30:23 +00:00
Ruslan Ermilov
e1fe3dba5c 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
Ruslan Ermilov
6cb9d90a51 When building for pc98, don't create stray objects in the
usr.sbin/pcvt/keycap source directory.

Found by:	phk
MFC after:	3 days
2006-03-16 07:31:50 +00:00
Giorgos Keramidas
00602d0926 After revision 1.4 of `src/usr.sbin/bsnmpd/bsnmpd/Makefile' the
gensnmptree utility is required at "make depend" time, because it
is used to generate `oid.h' for bsnmpd.

This means that all versions of HEAD before 2004/01/23 16:22:49 need
gensnmptree as a bootstrap util when it's not already installed as
part of the base system.  The first __FreeBSD_version that we can
assume this can work is 700014 which happened after the gensnmptree
change (in -r 1.263 of `src/sys/sys/param.h', at 2006/02/17 14:14:15).

For __FreeBSD_version values before 700014 add gensnmptree to the
bootstrap tools, to allow upgrades from versions of FreeBSD before
that date.

Approved by:	ru, harti
2006-03-09 12:55:02 +00:00
Ruslan Ermilov
e8a71dcc2f Detect that the "audit" group is missing earlier during install. 2006-02-27 09:17:39 +00:00
Alexander Leidinger
8a32134cdd A file can also be a link, so check not only for a file, but also for a link
in the delete-old and check-old targets.

We don't install a lib (libXY.so.Z) as a link, but an user may have created
something like this. This is dangerous if this link points to a different
version of the lib. So check for a link also in the *-lib targets (an
annoyed user which absolutely wants this redirection of a lib should use
libmap.conf instead of a link).

A directory can also be a link, but in this case just echo a message to
remove it by hand.
2006-02-18 16:58:21 +00:00
Doug Rabson
38311499cc Revert the previous change - the lib32 build should work now. 2006-01-02 17:52:16 +00:00
Doug Rabson
29af427b83 Temporarily disable the kerberos5 lib32 build while I try to fix it
properly.
2006-01-02 10:03:35 +00:00
Doug Rabson
c0b9f4fe65 Add a new extensible GSS-API layer which can support GSS-API plugins,
similar the the Solaris implementation. Repackage the krb5 GSS mechanism
as a plugin library for the new implementation. This also includes a
comprehensive set of manpages for the GSS-API functions with text mostly
taken from the RFC.

Reviewed by: Love Hörnquist Åstrand <lha@it.su.se>, ru (build system), des (openssh parts)
2005-12-29 14:40:22 +00:00
David E. O'Brien
667d8d10c7 Use cross-compile friendly spelling of CPUTYPE.
Submitted by:	ru
2005-12-07 22:55:29 +00:00
Ruslan Ermilov
620b3a0c1d Style, no functional changes. 2005-12-07 20:01:12 +00:00
David E. O'Brien
21c4855ebe SSE2 comes thru the users choice of CPUTYPE. 2005-12-07 17:42:27 +00:00
David E. O'Brien
fef891f794 Default to producing 'k8' COMPAT_32BIT bits, but allow override. 2005-12-07 17:41:10 +00:00
Warner Losh
637750b988 Back out my sh -> ${SHELL} change, since it will be a few days before
I can fix it better.

Requested by: ru@
2005-12-06 23:37:11 +00:00
Doug Ambrisko
c26efd485e Switch BUILD_ARCH in Makefile to use uname -p suggested by ru.
Switch strncpy to strlcpy suggested by gad and issue found by pjd.
Add to uname(3) man page describing:
	UNAME_s
	UNAME_r
	UNAME_v
	UNAME_m
Add to getosreldate(3) man page describing:
	OSVERSION

Submitted by:	ru, pjd/gad
Reviewed by:	ru (man pages)
2005-12-03 05:11:07 +00:00
Doug Ambrisko
d630a05f40 Add support to easily build FreeBSD unpacked in a chroot of another
FreeBSD machine.  To do this add the man 1 uname changes to __xuname.c
so we can override the settings it reports.  Add OSVERSION override
to getosreldate.  Finally which Makefile.inc1 to use uname -m instead
of  sysctl -n hw.machine_arch to get the arch. type.

With these change you can put a complete FreeBSD OS image into a
chroot set:
	UNAME_s=FreeBSD
	UNAME_r=4.7-RELEASE
	UNAME_v="FreeBSD $UNAME_r #1: Fri Jul 22 20:32:52 PDT 2005 fake@fake:/usr/obj/usr/src/sys/FAKE"
	UNAME_m=i386
	UNAME_p=i386
	OSVERSION=470000
on an amd64 or i386 and it just work including building ports and using
pkg_add -r etc.  The caveat for this example is that these patches
have to be applied to FreeBSD 4.7 and the uname(1) changes need to
be merged.  This also addresses issue with libtool.

This is usefull for when a build machine has been trashed for an
old release and we want to do a build on a new machine that FreeBSD
4.7 won't run on ...
2005-12-02 00:50:30 +00:00
Warner Losh
d53cdc6c43 In make buildenv, spell sh as ${SHELL}. In this case, we don't want
to hard code /bin/sh since we're forking it for the user to type
commands into.  As such, ${SHELL} is the preferred thing users type
commands into.
2005-12-01 17:08:56 +00:00
Ruslan Ermilov
4b2095e85b Revert revision 1.416 and don't create a hierarchy before installing
a kernel.  It's slower and is generally only applicable to RELENG_4.
2005-11-25 10:12:58 +00:00
Ruslan Ermilov
1580b6c355 Unbreak installworld. 2005-11-22 20:47:43 +00:00
Ruslan Ermilov
0da07b29c3 Get rid of SPECIAL_INSTALLCHECKS variable that isn't settable
by a user.  Instead, add individual checks as dependencies to
the main "installcheck" target.  Make sure that installkernel
etc. depend on it (including the UID/GID checks).
2005-11-22 12:02:41 +00:00
Ruslan Ermilov
05359b9bb5 Fold some common stuff into a macro ${KMAKE}. 2005-11-22 11:31:03 +00:00
Ruslan Ermilov
be174d0cbd Add the NO_INCS knob to bsd.prog.mk and bsd.lib.mk to not include
bsd.incs.mk, and use it when installing 32-bit compat libraries
on amd64.  This causes it to *not* overwrite native headers with
i386 versions, which was the case with <fenv.h> and <vgl.h>.

PR:		amd64/83806
Prodded by:	bde
MFC after:	1 week
2005-11-19 06:45:44 +00:00
Ruslan Ermilov
006846f7ae Speed up stale catpages hunting by not running sed(1) for every catpage. 2005-11-12 19:31:30 +00:00
Ruslan Ermilov
0f8bb094ff Don't check DESTDIR when making distributeworld; the latter expects
DISTDIR.

Reported by:	nyan
2005-11-12 19:28:46 +00:00
Ruslan Ermilov
e4a93f1ef8 Add missing shared library interdependencies. 2005-11-10 18:07:07 +00:00
Ruslan Ermilov
e576df395b Require DESTDIR to be set when installing for a different architecture. 2005-11-07 15:03:04 +00:00
Ruslan Ermilov
6660f1d7c1 Serialize access to the info/dir file; needed for parallel installs.
Reported by:	scottl

I'm not very fond of using the non-standard lockf(1) here, but I
have no better idea at the moment.  NetBSD uses ln(1) to create a
lock file, but this approach can result in a deadlock if make is
interrupted, leaving an orphaned lock file.
2005-11-03 08:56:39 +00:00
Ruslan Ermilov
338953fb3d Force an upgrade to Groff 1.19.2. 2005-10-20 11:22:30 +00:00
Brian Somers
188a72ee1f Fix a couple of typos 2005-08-23 07:58:55 +00:00
Alexander Leidinger
a332ab6c8e Fix the "unexpected operator" bug some people are seeing.
First noticed by:	kris
2005-08-20 09:27:08 +00:00
Alexander Leidinger
edd04c6f2b Remove cat-pages without corresponding man-pages. 2005-08-07 13:47:25 +00:00
Ruslan Ermilov
8dee041406 - clean ${LIB32TMP} in _worldtmp
- clean ${OBJTREE}/lib32 in _cleanobj
- ensure that ${WORLDTMP} exists in build32
2005-08-05 23:48:58 +00:00
Ruslan Ermilov
467610da0d - Remove duplicate setting from LIB32MAKE definition.
- Install lib32 bits using the real install(1) program.
2005-08-03 20:27:06 +00:00
Ruslan Ermilov
c8ef0ed51d Make delete-old* and friends useable for cross-builds. 2005-08-03 20:09:59 +00:00
Alexander Leidinger
1b24254bec - Only make the delete-old related parts visible if one of the 3 targets
are called (wrapped in ".if make(...)"). This may reduce the amount of
  memory needed for all other targets (the file lists are already large
  and they will grow further).
- Be verbose in the batch case of the delete-old part too.
2005-07-30 18:02:20 +00:00
Dag-Erling Smørgrav
77d2ce5d21 Enforce the native environment requirement for {check,delete}-old-* at
run time, not parse time.  This unbreaks cross-builds.

Pointy hat to:	netchild
2005-07-30 06:14:12 +00:00
Alexander Leidinger
af3e19a68c - Move recently added dir into the correct section.
- Add a note about the organisation of the sections.
 - Expand shell globs (they worked in a previous version of the delete-old
   target, but not in this one).
 - Use the correct way of checking for a native environment. [1]
 - Add some more obsolete files.
 - Fix some bad english. [1]

Suggested by:	ru [1]
Approved by:	mentor (joerg)
2005-07-29 21:45:46 +00:00
Dag-Erling Smørgrav
c9275efacc Disable thread support in BIND. It appears to reduce performance rather
than increase it, and seems to be the cause of the memory leaks which some
users have reported.

Requested by:	dougb
MFC after:	5 days
2005-07-25 14:44:11 +00:00
Alexander Leidinger
e2a3608153 Add delete-old and delete-old-libs targets:
- removes obsolete files/dirs or libraries.
  - works in interactive (default) and batch mode
  - respects DISTDIR
  - documented in UPDATING and build(7)

The head of the file ObsoleteFiles.inc contains instructions how to add
obsolete files/dirs/libs to the list. Obviously one should add obsolete
files to this list, when he removes a file/dir/lib from the basesystem.

Additionally add check-old target:
  - allows re@ to check if a file on the obsolete list resurfaces

Design goals:
  - allows full control by the user (default interactive mode)
  - possibility of scripted removal of obsolete files (batch mode)
  - opt-in removal of files (explicit list of files)
  - seperate removal of libs (2 delete targets)

Important design decissions:
  - structured list of files to remove instead of a plain text file:
    * allows to remove additional files if a NO_foo knob is specified
      without the need to change the targets (no NO_foo knob is respected
      yet)
  - not using mtree like NetBSD does:
    * mtree doesn't has an interactive mode

Discussed on:		arch (long ago), current (this year)
Additional input from:	re (hrs)
Approved by:		mentor (joerg)
2005-07-23 14:23:30 +00:00
Ruslan Ermilov
a59f6433d7 Make the `distrib-dirs' target official and working properly
when cross-building (installing).  (This is useful for NFS
installing world/kernel to another architecture machine.)
2005-07-15 14:38:54 +00:00
Alexander Kabaev
2b9fc5e637 Exclude build32 target from the list of toolchain and kernel-toolchain
dependencies. We do not need to build 32bit compat tools to compile
a kernel.

Approved by:	re (scottl)
Reported by:	jhb
2005-07-07 00:58:41 +00:00
Ruslan Ermilov
ece6831d38 Provide 32-bit runtime support on amd64 as a separate distribution, lib32.
Prodded by:	obrien
Nodded by:	peter
Approved by:	re
2005-06-16 18:16:14 +00:00
Ruslan Ermilov
cb1e3c19f0 Allow to override the compiler, linker, and assembler used to build 32-bit
shim libraries on amd64.
2005-06-06 09:39:46 +00:00
Ruslan Ermilov
c0913e73f9 Add install-info to the list of install tools now that we don't
always bootstrap texinfo.

Reported by:	scottl
2005-05-31 04:45:47 +00:00
Ruslan Ermilov
49bf419db0 Stop redundantly rebuilding texinfo on the next __FreeBSD_version bump. 2005-05-23 11:15:16 +00:00
Warner Losh
7d23fba22f Remove lame and ineffectual attempt to fix ipf breakage of tenderbox. 2005-05-01 17:36:09 +00:00
Warner Losh
a4f4bae7f5 Add some subversive code to cleandir: remove the sbin/ipf tree
entirely to fix the tinderbox machine.  This change will be reverted
once the tinderboxen are tindering again.
2005-04-30 16:09:23 +00:00
Peter Wemm
39d2cd6f98 Merge from RELENG_5: invert WITH_LIB32 into NO_LIB32 so that we build the
32 bit libraries by default.  Define NO_LIB32 in make.conf if you do not
want this.
2005-04-06 01:55:43 +00:00
Peter Wemm
6459b7dabc Fix the lib32 build for amd64 after v1.238 of src/include/Makefile (imp).
That change exposed the fact that I'd forgotten to set $MACHINE here.
2005-04-06 01:41:08 +00:00
Ruslan Ermilov
6eb46c30aa Fix AMD64 cross-builds when WITH_LIB32 is defined.
(Initially spotted by kris@ on RELENG_5.)
2005-03-27 19:35:09 +00:00
Ruslan Ermilov
9d11d2b6d0 Protect against DESTDIR being set during the build of build32.
Reported by:	pav
2005-03-22 14:22:47 +00:00
Ruslan Ermilov
f09a3cc462 Add hacks that I use to test cross-builds (by building on
native and foreign architectures and comparing products).
They eliminate most of the differences caused by different
object directory paths, timestamping, and identification.

(Note WORLDTMP was renamed to ${OBJTREE}${.CURDIR}/tmp.)
2005-03-02 16:40:51 +00:00
Ruslan Ermilov
0c5397aa69 Bootstrap pwd_mkdb(8) and use its new feature during "make distribute". 2005-02-28 22:55:43 +00:00
David E. O'Brien
30d7f067a4 Accept the old user interface for NO_CLEAN as it is a POLA violation as
we've eventually changed the user interface of a common command.
2005-02-28 09:23:38 +00:00
Ruslan Ermilov
6067dba1bf Unbreak buildworld. 2005-02-28 07:16:39 +00:00
Ruslan Ermilov
edc431123e Make the format of LC_COLLATE files architecture independent. 2005-02-27 20:31:13 +00:00
Ruslan Ermilov
8945135e1f Bootstrap gencat(1).
OK'ed by:	phantom
2005-02-27 19:13:41 +00:00
Ruslan Ermilov
9bdd3e8497 Added the convenience "distribution" target which calls the
target of the same name from src/etc/Makefile with a proper
environment, suitable to be used during upgrades and cross-
builds.
2005-02-27 12:11:35 +00:00
Ruslan Ermilov
88e7c7a466 Make it clear we no longer support source upgrades from
versions prior to 5.3.
2005-02-27 11:51:46 +00:00
Ruslan Ermilov
552b98b913 Add missing continuation. 2005-02-27 11:48:45 +00:00
Ruslan Ermilov
6ad80d4f0d As threatened, drop support for source upgrades from pre-5.3.
Inspired by:	obrien
2005-02-27 11:22:58 +00:00
Ruslan Ermilov
20bfae8441 Added the "buildenv" target, for developers only!
CAVEAT: if you run tcsh(1) from within this target, this will
reset your PATH making this target mostly useless.  Careful!

Submitted by:	jmg, ru
2005-02-26 22:02:18 +00:00
Ruslan Ermilov
3fb3a43079 Make the format of LC_CTYPE files architecture independent by
introducing the disk formats for _RuneLocale and friends.

The disk formats do not have (useless) pointers and have 32-bit
quantities instead of rune_t and long.  (htonl(3) only works
with 32-bit quantities, so there's no loss).

Bootstrap mklocale(1) when necessary.  (Bootstrapping from 4.x
would be trivial (verified), but we no longer provide pre-5.3
source upgrades and this is the first commit to actually break
it.)
2005-02-26 21:47:54 +00:00
Ruslan Ermilov
6fe37d1365 Add endianness support to cap_mkdb(1), useful for cross builds. 2005-02-22 23:29:54 +00:00
Ruslan Ermilov
eac161ef14 Add lorder(1) to the list of bootstrap-tools. 2005-02-19 10:25:42 +00:00
Ruslan Ermilov
fb64060c5c Allow to cross-build amd64 on non-i386. 2005-02-19 10:23:34 +00:00
Ruslan Ermilov
951e4d1c91 In crunchgen(1), when calling make(1), don't redirect stderr to stdout,
just rely on the exit status to detect an error.  This makes crunchgen(1)
safe to use with certain make(1) debugging flags.

MFC after:	1 week
2005-01-20 10:49:03 +00:00
David E. O'Brien
4e6242dfa7 Remove the special sparc64 time_t support.
If someone isn't running with a 64-bit time_t by now, they don't
track -CURRENT and would probably go to RELENG_5 vs. 6-CURRENT.
2004-12-29 19:39:06 +00:00
Ruslan Ermilov
0f399181d3 Further fix the case mentioned in rev. 1.302. The
intent was (and still is) that if a user has say
CPUTYPE=i686 set in /etc/make.conf, we don't print
the assignment type warning unless TARGET_CPUTYPE
is overridden.

Unfortunately, the implementation was buggy, and
only recent changes to bsd.cpu.mk that swapped
canonical and alias values of some CPU types made
the bug apparent.

Here's what happens here.

- CPUTYPE=i686 is set in /etc/make.conf,
- bsd.cpu.mk reset it to "pentiumpro",
- Makefile.inc1 compares this canonical value
  with the result of the following test,

make -f /dev/null CPUTYPE=pentiumpro -V CPUTYPE

and expects the result to be "pentiumpro" too,
but "i686" is returned, here's why.  We have two
CPUTYPE variables, global, set to "i686" in
/etc/make.conf, and command-line (of a higher
precedence), set to "pentiumpro".

The following part of bsd.cpu.mk,

.  elif ${CPUTYPE} == "i686"
CPUTYPE = pentiumpro

which is responsible for converting aliases to
canonical values, sees the value of the CPUTYPE
command-line variable first, "pentiumpro", and
no conversion is done -- the net effect is that
CPUTYPE global stays with its old value "i686",
and "make -V CPUTYPE" (which prints variables
in the global context) returns "i686".

The fix was to pass the CPUTYPE in the test above
as an environment variable instead of as a command
line variable, i.e.,

CPUTYPE=pentiumpro make -f /dev/null -V CPUTYPE

This time, CPUTYPE global is still set to "i686"
initially (by /etc/make.conf), and an envieronment
variable CPUTYPE (of a lower precedence) is set
to "pentiumpro".  The .elif sees it's set to
"i686" and resets it to "pentiumpro", and so
"make -V" returns "pentiumpro".

NB: these various types of make(1) variables can
be very painful, especially when combined with
"make -V".
2004-12-22 22:00:01 +00:00
Ruslan Ermilov
f45a5bbda4 NOCLEAN -> NO_CLEAN
NOCLEANDIR -> NO_CLEANDIR
2004-12-21 12:21:26 +00:00
Ruslan Ermilov
6495335e69 NOSHARE -> NO_SHARE 2004-12-21 12:13:23 +00:00
Ruslan Ermilov
582ef25f94 NOHTML -> NO_HTML 2004-12-21 12:05:11 +00:00
Ruslan Ermilov
39a855c2a1 NOGAMES -> NO_GAMES 2004-12-21 10:36:54 +00:00
Ruslan Ermilov
a216173556 NOCRYPT -> NO_CRYPT 2004-12-21 10:16:04 +00:00
Ruslan Ermilov
83c7ade90a NOSHARED -> NO_SHARED 2004-12-21 09:59:45 +00:00
Ruslan Ermilov
00fbd40770 NOFSCHG -> NO_FSCHG 2004-12-21 09:53:14 +00:00
Ruslan Ermilov
ab7a294721 NODOCCOMPRESS -> NO_DOCCOMPRESS
NOINFO -> NO_INFO
NOINFOCOMPRESS -> NO_INFOCOMPRESS
NOLINT -> NO_LINT
NOPIC -> NO_PIC
NOPROFILE -> NO_PROFILE
2004-12-21 09:33:47 +00:00
Ruslan Ermilov
f1f6253f4f NOLIBC_R -> NO_LIBC_R
NOLIBPTHREAD -> NO_LIBPTHREAD
NOLIBTHR -> NO_LIBTHR
2004-12-21 09:00:26 +00:00
Ruslan Ermilov
e653b48c80 Start the dreaded NOFOO -> NO_FOO conversion.
OK'ed by:	core
2004-12-21 08:47:35 +00:00
Ruslan Ermilov
3a35b5b9a5 Minor tweaks in "make update" comments. 2004-12-17 10:11:33 +00:00
Peter Wemm
0228d5b66c Do not leave build droppings in /usr/src for usr.sbin/pcvt/keycap and
usr.bin/lex/lib for the 32 bit libraries on amd64.  Add an explicit
obj for these two directories that are built in for the "libraries" target.
2004-12-01 23:23:14 +00:00
Ruslan Ermilov
d938e8d640 Hopefully fix the "aicasm" build-tool issue when using ${KERNSRCDIR}
different from ${.CURDIR}.

Reported by:	jhb
2004-11-23 09:09:47 +00:00
Peter Wemm
63d76a5f0d In the amd64 hybrid libraries case, move the kerberos5 tools to before
building the kerberos5 includes.  This is not the same patch that
Bjoern A. Zeeb came up with, but the credit still goes to him for finding
the problem.  Thanks!
2004-11-20 23:41:25 +00:00
Peter Wemm
9291686f75 Oops, all my test boxes have NO_KERBEROS set, so I didn't hit the kerberos5
build tools problem.  I'd missed the kerberos5/tools stuff entirely.  Add
the missing bits.
2004-11-15 05:59:10 +00:00
Bjoern A. Zeeb
6c58990d47 Add knob NO_NIS (fka NO_YP_LIBC) and make world compileable when set.
If turned on  no NIS support and related programs will be built.

Lost parts rediscovered by:	Danny Braniss <danny at cs.huji.ac.il>
PR:		bin/68303
No objections:	des, gshapiro, nectar
Reviewed by:	ru
Approved by:	rwatson (mentor)
MFC after:	2 weeks
2004-11-13 20:40:32 +00:00
Ruslan Ermilov
0931d0a9f8 Show stray files during "cvs update". 2004-11-12 13:22:22 +00:00
Peter Wemm
f9faa1eb23 Ruslan told me I should have quoted the arch strings when comparing to
MACHINE_ARCH.  Belatedly get around to doing it.
2004-11-10 23:38:00 +00:00
Peter Wemm
fae9d9992b Change WANT_LIB32 to WITH_LIB32. Sorry for the whiplash folks.
It was pointed out to me that the convention we have is to use WITH_
elsewhere in the system, eg: ports etc.  This is all temporary anyway
and presumably will be inverted to a NO_LIB32 or something like it in
the future.
2004-11-10 23:31:07 +00:00
Peter Wemm
1d9468ee37 Convert tools/lib32/build.sh into world connectable hooks. This still
rates pretty high on the "hack!" scale, but it works for me.  Adding
-DWANT_LIB32 to the world build command line, or 'WANT_LIB32=yes' to
/etc/make.conf will include the 32 bit libraries with the build.

I have not made this default behavior.  Cross compiling this stuff is an
adventure I have not investigated.

This is still a WIP.  We needed this at work so that we could install from
a readonly obj tree - lib32/build.sh wasn't up to that.
2004-11-06 03:14:26 +00:00
Ruslan Ermilov
a35d88931c For variables that are only checked with defined(), don't provide
any fake value.
2004-10-24 15:33:08 +00:00
Peter Wemm
c5ebbe8ff0 Catch another gcc-3.3 c++ include path reference and update it to 3.4. 2004-10-11 23:51:13 +00:00
Doug Barton
2a61444749 1. Add much finer granularity to the NO_BIND knobs with the addition of:
NO_BIND_DNSSEC, NO_BIND_ETC, NO_BIND_NAMED, and NO_BIND_UTILS.

2. Make creation of directories in /usr/include that are only needed
in the WITH_BIND_LIBS case conditional.

Reviewed by:	ru, des
2004-09-27 08:23:43 +00:00
Ruslan Ermilov
e19f6f27a7 Hopefully fix alpha and sparc64 builds: on these architectures,
libpthread is provided by src/lib/libc_r.

Also, removed lib/bind from _generic_libs, "lib" will suffice.
Also, removed redundant lib/bind dependency on lib/libpthread
(as lib/bind is not in the _prebuild_libs, it's not needed).

Prodded by:	trhodes@ reporting that des@ is on the flight
2004-09-21 21:47:05 +00:00
Dag-Erling Smørgrav
cd3ee173f9 Switch from BIND 8 to BIND 9.
Submitted by:	(in part) dougb@, trhodes@
Reviewed by:	dougb@, trhodes@, re@
MFC after:	5 days
2004-09-21 19:01:48 +00:00
Warner Losh
d0beb85305 Although 'Unanimous Consent' appears to be a well defined and used in
the US Senate, Canadian Parliament and Australian Senate, it was
causing some confusion.  After some consultation with Mark Murray,
change this to 'without objection' since often times a plain-speaking
term is preferable to a regionally used term.

Also, clarify that this procedure is to be used when for more mundane
matters that need a sanity check, but don't need the whole, ponderous
voting proceedure that more difficult issues require.  Core members
that read email in any given 48 hour period are trusted enough to know
the difference and to provide the sanity check as necessary.

Reviewed by: markm
2004-09-07 15:19:40 +00:00
Paul Richards
db68d2a6b7 Backout the CVSTAG variable, it could potentially be dangerous if
you track multiple releases in different trees.

Leave the CVSOPTIONS variable there since it could be useful.
2004-08-26 10:24:25 +00:00
Ruslan Ermilov
e5d264a34b Fix "make world DESTDIR=/mnt" to work again. A recent change
to make(1) that causes command-line variables to be passed as
command-line variables to sub-processes that make(1) executes
broke it.  By changing the type of all DESTDIR variables used
internally in Makefile.inc1, from environment to command-line
variables of the highest priority, I was able to "make world"
with success, with the command-line variable DESTDIR set.
2004-08-25 22:06:29 +00:00
Paul Richards
e88261150a Add a CVSTAG makefile variable that can be set in /etc/make.conf that
determines which CVS tag to track when running make update. This makes
it easier to configure a box to track a particular release if it does
automated updates from a cvs repository.
2004-08-24 23:12:16 +00:00
Ruslan Ermilov
7c996c4acc A fix from rev. 1.52 of gnu/usr.bin/cc/cc_tools/Makefile was lost
in rev. 1.57.  Fix this regression by making cc_tools a new-style
build-tool in Makefile.inc1.  For details of what has been fixed,
please see the gnu/usr.bin/cc/cc_tools/Makefile,v 1.52 commit log.

Caught this by accidentally touching param.h while in the process
of cross-buildworld for amd64.
2004-08-18 13:21:40 +00:00
Ruslan Ermilov
0ec443a080 Moved the MAKEOBJDIRPREFIX check from Makefile.inc1 to Makefile,
to suppress warnings with installworld and distributeworld when
env(1) cannot be found in the PATH.
2004-08-18 06:49:56 +00:00
Ruslan Ermilov
bf90c6ee99 sys/boot seems to compile fine on Alpha; unbreak ``make release''.
Prodded by:	re-alpha (wilko)
2004-08-16 18:17:14 +00:00
Hartmut Brandt
88e299900c Ensure that a new gensnmptree is built. This should fix the problems
with the snmp_atm module.
2004-08-11 16:45:20 +00:00
Ruslan Ermilov
72e3b0396f Enforce the check that MAKEOBJDIRPREFIX (if set) is set in environment
only, and not as a global (in /etc/make.conf) or command-line variable.

MAKEOBJDIRPREFIX has never been a global or command-line variable, and
the fact that it works in some scenarios for "make buildworld" doesn't
make it any more correct.  Using it as a global or command-line variable
is error prone, discouraged, costs us lot of false build reports, etc.

This commit is aimed to fix it once and for all.

Anyone potentially objecting to this change is encouraged to read the
make(1) and make.conf(5) manpages, and the comments regarding the use
of the MAKEOBJDIRPREFIX variable in /usr/share/mk/bsd.obj.mk and
/usr/share/examples/etc/make.conf.
2004-08-11 11:02:26 +00:00
Hartmut Brandt
de5b5e45a0 Fix recent breakage in rescue. We need to build a new crunchgen
that will not emit the bad MAKE=make line that caused the breakage.

Submitted by:	ru
2004-08-10 13:18:05 +00:00
Hartmut Brandt
088cf0fb43 Make make recurse into sub-directories and sub-makes when given
two -n flags.  If only one -n flag is given the old behaviour
is retained (POLA).  In order to make this working for installworld
change the IMAKEENV in this case so that the tools are found
(we have no temporary installation environment in this case).

Submitted by:	ru (IMAKEENV part)
2004-08-09 11:38:41 +00:00
David E. O'Brien
e62200e75a The file(1) related build-tool moved to libmagic. 2004-08-09 10:51:01 +00:00
Alexander Kabaev
81efba8c9e Bmake glue for GCC 3.4.2-prerelease. 2004-07-28 05:27:21 +00:00
Hartmut Brandt
be628d2848 Get rid of the THISHOST variable when building on sparc64. The problem
with it is that it is set by calling hostname and hostname isn't normally
in the path at that point.
2004-07-08 09:08:09 +00:00
David E. O'Brien
2c67a07fd0 Third time's a charm?? (the logic was reversed from desired)
Time for sleep...

Submitted by:	ru
2004-06-17 08:06:41 +00:00
David E. O'Brien
6e009069f5 Grrr, use the userland spelling not the kernel tree spelling. 2004-06-17 05:27:56 +00:00
David E. O'Brien
f1e3e1c78f Fall out from Binutils 2.15: disable building the Alpha loader. 2004-06-17 02:59:53 +00:00
Ruslan Ermilov
b4c3fa62f8 Allow buildworld and friends to complete when make(1) is called
with some debug flags (-d).

Noticed by:	Gleb Smirnoff
2004-05-17 16:19:51 +00:00
Ruslan Ermilov
1116791977 Record the libssl.so dependency on libcrypto.so. This should
help some ports that depend on libradius that recently gained
the dependency on libssl.  This is also how the stock OpenSSL
build would link libssl.so on FreeBSD.

Prompted by:	kris
OK'ed by:	markm, nectar
2004-05-13 07:51:47 +00:00
Ruslan Ermilov
466b960f3a Catch up with the current output of tools/make_libdeps.sh:
- Removed the stale dependency of libypclnt on librpcsvc.
- Fixed the dependency graph of libssh.
2004-05-12 07:02:17 +00:00
Ruslan Ermilov
b4b831ef39 - Added rad_demangle() for demangling user-passwords (needed for
MS-CHAPv1 MPPE-keys).
- Added rad_demangle_mppe_key() for demangling mppe-keys (needed
  for MPPE-keys).
- Added some typecasts for avoiding compiler warnings.
- Fix: better handle wrong usage of the lib (if the programmer
  has not called rad_create_request() but rad_put_*(), then a
  weird error message was returned).
- Added a new function for putting the Message-Authenticator.
- Verify the Message-Authenticator, if it was found inside a
  response packet and silently drop the packet, if the validation
  failed.
- Implicitly put the Message-Authenticator, if the EAP-Message
  attribute was added.
- Added some missing defines.

Submitted by:	Michael Bretterklieber
PR:		46555
2004-04-27 15:00:29 +00:00
Hartmut Brandt
9de3b3505c Move the SNMP MIBs and tree definitions from /usr/share/bsnmp to
/usr/share/snmp. This mirrors the use of /usr/local/share/snmp and
makes also more sense when non-bsnmp-specific MIBs go in.
2004-04-14 16:06:19 +00:00
Dag-Erling Smørgrav
43fc676240 Add a kernel-toolchain target which only builds the bits required to build
a kernel.  This is essentially the same as the toolchain target, except
that it does not build headers and libraries.

Submitted by:	ru
2004-04-13 13:42:01 +00:00
Ruslan Ermilov
839274c75b Added the `toolchain' top-level target, which builds enough of
buildworld, up to and including libraries, except for actually
building the world.

Requested by:	many
2004-03-24 08:26:22 +00:00
Ruslan Ermilov
e5b369af8c Removed 3x2 dots I don't like. ;) 2004-03-19 17:57:07 +00:00
Ruslan Ermilov
0aacff4d4d Create /usr/sbin in ${WORLDTMP}. I've accidentally removed it in
revision 1.343, but it's needed for btxld(8), and this fix (along
with the --enable-64-bit-bfd configured BFD on i386) allows other
architectures to successfully cross-build the i386 world.

Tested on: 	alpha
2004-03-19 15:08:58 +00:00
Ruslan Ermilov
ba3ae5543b Comment various stages of buildkernel, symmetrical to buildworld. 2004-03-18 10:17:03 +00:00
Ruslan Ermilov
125499e595 Don't scare non-root users attempting to build world. 2004-03-14 16:44:27 +00:00
Ruslan Ermilov
2f00651dae Create hierarchy before installing a new kernel. This is needed
because we require that a new kernel be installed prior to a new
world, and we may need some new directories to succeed.

Once MFCed, this will also help those poor souls who redundantly
``mv /modules /modules.old'' in RELENG_4 before an installkernel.

Requested by:	many
MFC after:	3 days
2004-03-13 15:46:34 +00:00
Ruslan Ermilov
e436e60bb8 Hide internal implementation details of UID/GID checks from the user. 2004-03-12 13:24:17 +00:00
Ruslan Ermilov
2ff05f90ae Use find(1) instead of ``pw groupshow'' to detect missing groups.
Restore checks for recently added PF groups.

Reviewed by:	mlaier
2004-03-12 13:20:24 +00:00
Gregory Neil Shapiro
7698f25ac3 Use 'pw groupshow' instead of 'id -g' to see if a group exists.
PR:		64073
Submitted by:	jhb
MFC after:	5 days
2004-03-12 03:46:15 +00:00
Max Laier
e12b910d65 Back out id -g checks as they are wrong (sendmail group untouched).
Requested by:	dwhite
Approve by:	dwhite
2004-03-11 00:22:04 +00:00
Max Laier
0ab11e651c Add installcheck for proxy:proxy and authpf.
Suggested by:	ru
Approved by:	bms(mentor)
2004-03-10 16:34:11 +00:00
Garance A Drosehn
171ae50e88 Reword two more lines to avoid wrapping. 2004-03-05 18:16:28 +00:00
Garance A Drosehn
b7d4457608 Minor stylistic improvements in the SPECIAL_INSTALLCHECKS section, mainly
to reduce the number of wrapped lines.

Suggested by:	bde
2004-03-04 18:41:35 +00:00
Bruce Evans
9565bbf3b1 Improved the description of the installkernel targets.
Don't hide what we do to force failures for the installkernel targets
or other targets.
2004-03-04 09:14:30 +00:00
Garance A Drosehn
afc6f08629 Commit the first set of files for changing time_t on freebsd/sparc64
from a 32-bit value to a 64-bit value.  This commit does not actually
change anything.  It merely provides instructions, scripts, and a safety
measure in Makefile.inc1 for people who want to make the change.

The real change to 64-bit time_t's on sparc64 is scheduled to happen
on March 10th, assuming that so major problems are found between now
and then by early-adopters.

Reviewed by:	freebsd-sparc64
2004-03-03 19:36:20 +00:00
Ruslan Ermilov
1e40560424 Drop directory existence checks.
OK'ed by:	bde
2004-02-13 21:52:08 +00:00
Ruslan Ermilov
11bf3600e8 Overhaul of kerberos5/ makefiles. Most significant changes are:
- Dropped support for standalone builds, this was only partially
  supported anyway, and required so much magic in makefiles that
  made life dangerous (e.g., by using the custom yacc rules).

- Got rid of .OBJDIR in makefiles -- makes building of individual
  files possible again.

- Made the .x.c transformations -j safe.

- Reprogrammed LDADD to fix static build of some utilities that
  was broken.

- Fixed LDFLAGS and DPADD in the WITH_OPENLDAP case -- positively
  affects the contents of .depend files.

- Removed redundant .h's from SRCS, only kept those that are
  generated.

- libkrb5/ INCS were bogusly installed again with libgssapi/.

- Made build-tools real tools with their own makefiles in
  separate directories.  This allows us to properly track
  their dependencies, etc.

- Faster build, 21% less of makefile code!

Approved by:	nectar
Reviewed by:	markm
Silence on:	arch
2004-01-31 08:15:57 +00:00
Hartmut Brandt
b6a6dd1872 Create the OID and tree files while building the modules and the daemon
instead of creating them by hand and storing them in the CVS tree. Add
gensnmptree to the bootstrap tools (it is used to generated these files).
This simplifies the update procedure.

Submitted by:	ru
2004-01-23 16:22:49 +00:00
Ruslan Ermilov
bbe8270c50 - Run makewhatis(1) in etc/Makefile at the end of "install".
- Removed redundant and undocumented NO_MAKEDB_RUN knob.
2004-01-22 08:18:37 +00:00
Ruslan Ermilov
5151e7223e Create ${WORLDTMP}/legacy/usr/include/c++/3.3 for usr.bin/lex. 2004-01-17 01:24:13 +00:00
Ruslan Ermilov
33b53e37dc lex(1) prior to flex.skl,v 1.8 and gen.c,v 1.7 requires bootstrapping.
Prodded by:	nectar
2004-01-16 16:06:54 +00:00
Ruslan Ermilov
897ca6ebd9 Alongside revision 1.382, don't build profiled libraries so early
in the build -- it's OK to keep this for the "make all" phase.
2004-01-15 09:50:54 +00:00
Garance A Drosehn
5091e3df70 Fix a problem where 'make installworld' will fail and leave the
system in a messy state *if* the user is upgrading from a system
which has no /libexec to a system which builds a DYNAMICROOT, and
if that user has set DISTDIR (as documented for ports, but it turns
out that the same variable name is used for a completely unrelated
purpose in 'make release').

There are other possible fixes for this issue, and ru@ may later
decide to commit one of those fixes.  I just wanted some fix in
ASAP, and this is the fix that I have tested.

Reviewed by:	bde, imp, and ru
2003-12-09 00:42:44 +00:00
Gordon Tetlow
5257abea22 Invert the condition that installs the dynamic linker early, since
DYNAMICROOT is now the default. Also document -DNO_DYNAMICROOT since
that is going to be a documented feature.

Submitted by:	matusita, rushani
2003-11-16 21:17:43 +00:00
Hartmut Brandt
360b288fd2 The snmp_netgraph module depends on libnetgraph. So add a dependency and
add libnetgraph to the list of prebuilt libraries in the main Makefile.

Reviewed by:	ru
2003-11-12 17:09:13 +00:00
Hartmut Brandt
cd7b6c1eea Make two directories under usr/share/bsnmp that are needed during
library build to install tree definition files and MIBS.

Okay'ed by: ru
2003-11-10 09:00:08 +00:00
Ruslan Ermilov
c54d7e028f Don't be so chatty about building includes. 2003-11-03 21:09:47 +00:00
Ruslan Ermilov
829340b175 Retired the "most" and "installmost" targets -- they just
do not have a chance to work nowadays as we have a lot of
internal libraries in lib/.

Discussed with:	marcel, wollman
2003-10-04 18:53:38 +00:00
Ruslan Ermilov
9ed6055244 Help those attempting to upgrade from static to dynamic root. 2003-09-16 12:53:18 +00:00
Ruslan Ermilov
3d0d5c76b0 Catch up with libpthread/support/Makefile.inc,v 1.6 and revert
Makefile.inc1 revisions 1.365 and 1.367: libc_pic.a is no longer
necessary to build libpthread.so (ie: libkse.so).
2003-09-15 21:18:30 +00:00
Ruslan Ermilov
be01c2220b - No need to create libfoo.so -> libfoo.so.X symlinks in /lib,
as it was decided that our toolchain will revert to looking
  for libraries in /usr/lib only.

- Make /usr/lib/libfoo.so -> /lib/libfoo.so.X symlinks absolute
  so that they still work if /usr is symlinked.

- Remove stale /usr/lib/libfoo.so.X libraries during install.

Discussed with:	gordon, obrien, peter
2003-09-07 14:15:40 +00:00
Scott Long
d61a976bc5 Clarify the numbering of some of the build stages. 2003-09-01 06:43:24 +00:00
Ruslan Ermilov
e95130d934 Revert rev. 1.378, and restore the correct arithmetic expression
syntax.  The

	make buildworld
	mv /usr/include /usr/include.old
	make installworld

issue has been fixed a month ago in Makefile,v 1.285, and there
is no valid reason to continue to keep the wrong syntax here --
buildworld takes care of upgrading a make for you if necessary.
But if you find yourself in an environment with an old make(1)
binary that breaks on this, and this is because you attempted
to run a target other than buildworld, don't whine but try again
with -DALWAYS_CHECK_MAKE defined -- it should do the trick.
Otherwise, if you still have a problem, please report it as a
bug and attach the ``make -dl ...'' output.

Reviewed by:	marcel
2003-08-30 13:48:16 +00:00
Marcel Moolenaar
bb66285c75 Remove the AFM (Anti-Footshooting Measure) added when we split the
5.x signal code from the 4.x signal code. The split happened in
Oct 2002 and we have had 2 releases since then. A kernel older than
5.0-R cannot reasonably be called a -current kernel anymore.

This does not break upgrading from an 10 month older kernel. It just
makes it more exiting.
2003-08-28 20:13:34 +00:00
Warner Losh
c3754771d8 OSRELDATE should fallback to 'unknown' rather than the kernel that's
booted on this machine.  This is a slightly better default to use.

Requested by: ru
2003-08-27 04:49:43 +00:00
Warner Losh
e4df6a7dca Add @ before the shell invocation for the testing of sufficiently new sh.
No need to see this message twice.
2003-08-25 18:30:06 +00:00
Warner Losh
b21d83f121 Fall back to using the kernel version for the OSRELDATE when
/usr/include/osreldate.h doesn't exist on the system.  While this
could be worked around by saying something like 'make includes
OSLRELDATE=0' when this file doesn't exist, it is just as easy to
provide a fallback when the file we know we depend on doesn't exist.
While this doesn't make all targets work w/o a
/usr/include/osreldate.h, because some of the FreeBSD bootstrap tools
use this file.  'make includes' however does work.

Noticed by: peter, obrien (and likely others)
Pointy hat to: imp (for suggesting a method that depended on /usr/include)
2003-08-25 17:48:25 +00:00
Gordon Tetlow
0b0c94741a In preparation for libraries being installed in /lib, add lib to the
list of build directories during the tool creation phase of the build.
2003-08-17 07:50:15 +00:00
Mark Murray
234f7acb7c Don't lint(1) so early in the build. Its OK to keep this for the
"make all" phase.
2003-07-24 18:14:29 +00:00
Gordon Tetlow
234a652964 Apparently we prefer underscores in new options. Sorry for the churn folks.
Requested by:	obrien
2003-07-14 16:21:16 +00:00
Gordon Tetlow
a20c015c92 Forgot that the rescue subdir needs to be a conditional for the
build-tools bit.
2003-07-11 17:01:58 +00:00
Gordon Tetlow
4d938af0ba Turn rescue back on, conditional to NORESCUE. We seem to be split on
using underscores or not, so I just randomly picked a style. I think
I have the logic correct, but if someone wants to give it a once over
that would be good.

Tim submitted a patch to fix the cross-building issues which I tested
with a tinderbox run for sparc64.

Submitted by:	Tim Kientzle <kientzle@acm.org>
2003-07-11 16:57:43 +00:00
Kris Kennaway
dda3614332 Correct makefile syntax error in r1.375. 2003-07-10 05:29:56 +00:00
David E. O'Brien
67599f4512 Style nit. 2003-07-08 01:24:21 +00:00
Gregory Neil Shapiro
d0c749d35f Use 'id' instead of 'grep' to detect the presence of the smmsp user/group.
This fixes the check for users with smmsp in NIS instead of their local
files.

Suggested by:	peter
MFC after:	5 days
2003-07-06 19:37:40 +00:00
Ruslan Ermilov
5dc6311712 Fixed style bugs related to parentheses in Makefile.inc1.
Submitted by:	bde

Fixed nearby bug: propagate the root Makefile's idea of
the appropriate "make" binary down to release/Makefile.
2003-07-04 14:27:06 +00:00
Gordon Tetlow
18ecbedd16 More NO_RESCUE to RESCUE transitions.
Submitted by:	ru
2003-07-02 19:26:19 +00:00
Gordon Tetlow
e9693da9e1 Switch the logic on the /rescue bits from NO_RESCUE to RESCUE, at least
until there is a fix for cross building available.
2003-07-01 23:10:39 +00:00
Ruslan Ermilov
3cc956548f Put rescue/ into a correct slot in the SUBDIR list. Sort bootstrap-,
build-, and cross-tools lists, reformat lists for easier maintenance.

Submitted by:	bde, ru
2003-07-01 12:57:53 +00:00
Ruslan Ermilov
a3d6b3e7d7 Only bootstrap crunchide(1) and build crunchgen(1) when necessary.
The latter needs to be built either if it's used as a cross-tool
(${TARGET_ARCH} != ${MACHINE_ARCH}) or if it has backward compat
issues, like e.g. lack of the AMD64 support.
2003-07-01 12:25:11 +00:00
Gordon Tetlow
4e650399de Do the deed and hookup /rescue to the build. As a result, always build
crunchgen and crunchide as cross-tools.

Submitted by:	Tim Kientzle <kientzle@acm.org>
2003-06-30 05:59:35 +00:00
Sean Kelly
e372405047 - Fix a typo.
PR:		bin/53864
Submitted by:	Lukas Ertl <l.ertl@univie.ac.at>
Approved by:	jeff (mentor)
2003-06-28 04:46:45 +00:00
Hidetoshi Shimokawa
0147d2aa71 Allow installkernel.debug and reinstallkernel.debug. 2003-06-22 10:01:03 +00:00
Warner Losh
c452953245 Minor tweaks to the build process so that we can build 5.1-current on
4.8-stable:

Must build lib/libc before libpthread.  Fix how we do this to be more
consistant with how lists are handled in the file.  Also, don't bother
to prebuild libc if we're not building libpthread.

Submitted by: ru@
Reviewed by: bde@ (before ru@ submitted it)
2003-06-14 17:50:13 +00:00
Dag-Erling Smørgrav
f212249acf Do not bogusly set CSTD to the empty string. 2003-06-14 13:30:32 +00:00
Warner Losh
21e24af3ff Add lib/libc to list of _prebuild_libs because we need the target
built libc_pic.a for libkse.

# This should finally fix the build on 4.x

Submitted by: kan
2003-06-08 04:15:05 +00:00
Warner Losh
59d855a0fe When boot strapping from older systems, don't specify a C standard in
the bootstrap process.  This allows one to more completely build from
a -stable box.

Reviewed by: ru@ (briefly)
2003-06-07 18:16:12 +00:00
David E. O'Brien
652b5a7533 Wrap gperf & groff wth NO_CXX. 2003-05-31 21:29:38 +00:00
Ruslan Ermilov
a0218a2a4d Unbreak world build if NO_OPENSSL is defined but NO_KERBEROS is not.
Submitted by:	Marius Strobl <marius@alchemy.franken.de>
Approved by:	re (jhb)
2003-05-21 21:47:20 +00:00
Dag-Erling Smørgrav
7691f66abf Retire the useless NOSECURE knob.
Approved by:	re (scottl)
2003-05-19 15:52:01 +00:00
Ruslan Ermilov
8ec00e70b1 Unbreak parallel make of _includes after revision 1.356 changes.
Spotted by:	bde
Approved by:	re (scottl)
2003-05-18 20:22:26 +00:00
Ruslan Ermilov
5d29610095 -lbsdxml lives in lib/libexpat. *Blush*
Submitted by:	tmm (Makefile.inc1)
2003-05-18 00:40:22 +00:00
Ruslan Ermilov
81d5f4384e Unbreak world: record libgeom dependency on libbsdxml here too.
Forgotten by:	ru
Submitted by:	des
Verified by:	tools/make_libdeps.sh
Approved by:	re (scottl) (related change)
2003-05-17 23:07:09 +00:00
Ruslan Ermilov
50da533c0e Use the installed world's idea of OSRELDATE rather than the kernel.
This was the initial intent anyway, and it became clear that it is
really necessary to treat it this way, as many people happen to run
with kernel newer than the installed world.

Submitted by:	imp, ru
Approved by:	re (scottl)
2003-05-15 17:59:32 +00:00
Bruce Evans
a270eca53b Install symlinks to individual headers instead of symlinks to directories
in the SHARED=symlinks case.  Symlinks to directories only work if all the
the necessary headers are in 1 directory, but the necessary headers are
scattered for at least ipfilter headers in <netinet>.  This change also
avoids polluting /usr/include with non-headers; the /usr/include hierarchy
is now independent of the setting of SHARED.

Submitted by:	ru (edited to fix netgraph/bluetooth/include and machine/pc)
PR:		44148
2003-05-05 12:54:26 +00:00
Mark Murray
4ee05d2921 Negate the logic of MAKE_KERBEROS5, and replace it with NO_KERBEROS. 2003-05-05 08:44:40 +00:00
Warner Losh
22bd4d16b6 Many developers run with userland != to kernel. While this isn't
supported, it usually works for months at a time.  Allow these people
to override the OSRELDATE of their installed world when things don't
match and the exact OSRELDATE matters and is different than the
kernel.  Now that Makefile.inc1 depends more and more about which date
you have to optimize the pieces it builds, it may be necessary to
pessimize things if its guesses are wrong.

If OSRELDATE is already set, we won't fork the sysctl to find out what
the kernel's date is.

Developers on IRC suggested that they run mismatches all the time as
well.

Reviewed by: obrien
2003-05-04 04:14:10 +00:00
Ruslan Ermilov
dd2aac0249 For the time being, upgrade the whole Groff (to version 1.19),
but stop doing so again on the next __FreeBSD_version bump.
2003-05-01 20:41:03 +00:00
Ruslan Ermilov
01b63a1009 Restore the ordering of NO's and remove one redundant NOLINT.
Reviewed by:	markm
2003-04-30 12:38:20 +00:00
Mark Murray
945e0cea45 Fix "make world" for the WANT_LINT case. The various build tools
must not try to lint(1) stuff at *-tools time; keep the linting
for the actual build (which comes later).
2003-04-30 11:17:33 +00:00
Ruslan Ermilov
007bf12e1e Groff after 2002/10/15 has no known backward compatibility issues,
but we always want the latest macro files.
2003-04-30 10:58:52 +00:00
John Baldwin
69e7419512 Rename KRNLSRCDIR to KERNSRCDIR and allow it to be overridden. The name
change was to be consistent with other overridable variables such as
KERNCONFDIR and KERNCONF.
2003-04-16 21:05:06 +00:00
Ruslan Ermilov
c2400c8ec5 kbdcontrol.c rev. 1.35 and onwards support the KEYMAP_PATH
environment variable, and don't need to be bootstrapped.
2003-04-14 14:46:13 +00:00
Ruslan Ermilov
692ebfe975 yacc(1) with skeleton.c rev. 1.29 in HEAD and rev. 1.28.2.1 in RELENG_4,
and onwards, are believed to not require bootstrapping.
2003-04-13 16:26:31 +00:00
Ruslan Ermilov
da54b929c3 xargs.c rev. 1.10 in HEAD and rev. 1.9.2.1 in RELENG_4,
and onwards, have support for the -J option we need.
2003-04-13 16:05:28 +00:00
Ruslan Ermilov
47c95a33ef elf2aout.c,v 1.6 and onwards have no known backward compatibility issues. 2003-04-13 15:43:29 +00:00
Ruslan Ermilov
710b5ef8fc uudecode.c rev. 1.23 in HEAD and rev. 1.13.2.3 in RELENG_4,
and onwards, have no known backwards compatibility issues.
2003-04-13 15:09:26 +00:00
Ruslan Ermilov
7a9bf94022 Only create directories that are really needed. 2003-04-13 14:34:17 +00:00
Ruslan Ermilov
ad1520bdf4 Install bootstrap-tools into a separate subtree of ${WORLDTMP}.
This allows us to use them as early as possible while building
bootstrap-, build-, and cross-tools.  Some cleanups to follow.

This change resolves the gperf(1) bootstrapping issue (missing
-E option) in gnu/usr.bin/cc/cc1plus while in the cross-tools
stage when upgrading from 4.0-RELEASE.
2003-04-13 11:42:55 +00:00
Ruslan Ermilov
cb66f4dd73 Make sure legacy stuff comes last. Some tools that use
legacy stuff (binutils) depend on this order.

For this to work, provide (and use) specialized versions
of bsd.prog.mk and bsd.lib.mk that include the standard
versions first, then augment CFLAGS, DPADD, LDADD, and
LDFLAGS as necessary, with the legacy stuff.

Tested on:	4.0-RELEASE
2003-04-12 15:07:46 +00:00
Ruslan Ermilov
7552a592f4 libc_gen/basename.c depends on include/libgen.h. 2003-04-11 17:58:17 +00:00
Ruslan Ermilov
c0006b49db Put back the undocumented change from rev. 1.334 too: no
need to create ${WORLDTMP}/legacy/usr/include explicitly.
2003-04-07 00:01:33 +00:00
Warner Losh
5675749e1a Put back parts of 1.335 and 1.336 that 1.337 accidentally backed out.
Submitted by: ru
2003-04-06 23:46:02 +00:00
Warner Losh
1c62f92354 -legacy and /.../legacy/... looks better than build or bootstrap in
the logs, so use that instead.

Submitted by: obrien.
2003-04-06 21:46:44 +00:00