Commit Graph

330 Commits

Author SHA1 Message Date
Warner Losh
2694e8c7f4 Move NO_WERROR from CROSSENV to BMAKE. In CROSSENV it disables it for
the entire build.  We only want it for the bootstrap process.

Submitted by: ru
2001-12-13 17:00:59 +00:00
Warner Losh
68f04dad74 Add NO_WERROR to the cross building environment so that we do not bail on
warnings generated by earlier versions of the compilers when bootstrapping.

Also a minor formatting nit in the tools list.

Reviewed by: markm
2001-12-13 01:37:45 +00:00
Alexey Zelkin
5f4a79e5fe Get rid of unsed since rev 1.109 of lib/Makefile WANT_CSRG_LIBM define.
Also replace internal make variable _libm with hardcoded path to lib/msun

Reviewed by:	bde
2001-12-11 16:10:26 +00:00
John Baldwin
b69cb6342c Just to be pedantic and more aesthetically pleasing, move the secure/
top-level subdirectory prior to share/ so that the top-level directories
are processed in alphabetical order.
2001-12-06 07:44:47 +00:00
David E. O'Brien
09b50a9891 Add the CVS knob so it may be overridden (or have options added).
Submitted by:	Andrea Campi <andrea@webcom.it>
2001-11-19 17:43:29 +00:00
Makoto Matsushita
b721f69c14 Don't cleandir also if MODULES_WITH_WORLD.
MFC after:	3 days
2001-11-16 03:02:34 +00:00
Makoto Matsushita
acd9c8a8a1 Typo fix (my test version doesn't have this...) 2001-11-15 07:09:00 +00:00
Makoto Matsushita
6a798cfa81 Run "make cleandir" if NO_MODULES are set, or there is no sys/modules
directory.  Previous commit breaks buildkernel if NO_MODULES was set.
Sorry...

Noticed by: mike
2001-11-15 07:04:23 +00:00
Makoto Matsushita
4271dfbcdd "make cleandir" before building a kernel and modules.
This will hopefully fix the recent 'I cannot compile linux module with
buildworld' problem.  MFC will come shortly.

Submitted by:		imura@ryu16.org
2001-11-14 16:48:47 +00:00
Makoto Matsushita
2ec2294625 Set full-path of cvsup.
In src/Makefile rev 1.232, environment variable PATH is set explicitly
to /sbin:/bin:/usr/sbin:/usr/bin.  As a result, binaries located on
non-standard path cannot be executed without full-path (it's the change
of this revision).

However, cvsup is not in our base system -- you lose if you try to
"make update" without setting SUP in make.conf or command line argument.
I think it is safe to assume that cvsup is located at /usr/local/bin,
and it would help other people who first try to do "make update".

PR:		31932
MFC after:	1 day
2001-11-13 15:47:40 +00:00
David E. O'Brien
2335a3d70a Bring Gawk back. There just isn't any other POSIX compliant AWK out there.
The biggest thing missing from Bell-Labs AWK is the character class regexes.
2001-11-02 23:48:32 +00:00
David E. O'Brien
491beb71f3 Add 'awk' to the build-tools, so that the small utility used to build
one of the source files is made for the host, not target.
2001-11-01 06:14:42 +00:00
Ruslan Ermilov
444ff633bf Fix cross-building further.
Introduce ${TARGET} defaulting to ${MACHINE} which should be set to
whatever your target ${MACHINE} is, and use that with world-related
stages.  That is, to build pc98 on alpha, one now needs to set both
TARGET_ARCH=i386 and TARGET=pc98.

The scope of ${TARGET} is limited to Makefile.inc1 and cross-tools.

In particular, this change was tested to fix:

1.  Cross building of "alpha" on i386.  The breakage was introduced
    by rev. 1.10 to sbin/i386/Makefile (missing <machine/cronyx.h>).

2.  Descending into machine-specific subdirs for a different arch.
    Previously, sbin/i386 and usr.sbin/boot0cfg were descended into
    when cross-building "alpha" or pc98 on i386.

3.  Fixes pc98 cross-building which was horribly broken, caused by
    not setting MACHINE correctly (most ${MACHINE} == pc98 checking
    Makefiles put -DPC98 to CFLAGS).
2001-10-25 07:28:55 +00:00
Ruslan Ermilov
4448c79e47 Fix cross-building, etc:
1.  To cross-build, one now needs to set TARGET_ARCH, and not the
    MACHINE_ARCH.  MACHINE_ARCH should never be changed manually!

2.  Initialize DESTDIR= explicitly for bootstrap-tools, build-tools,
    and cross-tools stages.  This fixes broken header and library
    dependencies problem.  We build them in the host environment,
    and obviously want them to depend on host headers and libraries.
    The problem with broken header dependencies for bootstrap-tools
    and cross-tools was already partially solved (see BOOTSTRAPPING
    tests in bsd.prog.mk and bsd.lib.mk), but it was still there for
    build-tools if the user ran "make world DESTDIR=/foo".  Also,
    for all of these stages, the library dependencies were broken
    because of how bsd.libnames.mk define DPADD members.

    We still provide a glue to install bootstrap- and cross-tools
    under the ${WORLDTMP}.

    Removed PATH overrides for bootstrap-, build-, and cross-tools
    stages.  There is just no reason why we would need to override
    it, and the hacks to clean up the ${WORLDTMP} in the -DNOCLEAN
    case are no longer needed with fixes from this step.

    That is, we now never use ${WORLDTMP} headers and libraries,
    and we don't use any ${WORLDTMP} installed binaries during
    these stages.  Again, these stages depend solely on the host
    environment, including compiler, headers, and libraries.

3.  Moved "miniperl" back from cross-tools (it has nothing to do
    with a cross-compiler) to build-tools where it belongs.  The
    change from step 1 let to do this.  Also, to make this work,
    build-tools targets of "cc_tools" and "miniperl" were modified
    to call "depend".  Here follow the detailed explanations.

    There are two categories of build tools, for now.  In the first
    category there are "cc_tools" and "miniperl".  They occupy the
    whole (sub)directory, and nothing needs to be done in this
    subdirectory later during the "all" stage.  They are also
    constructed using system makefiles.  We must build the .depend
    early in the build-tools stage because:

    1)  They use (and depend on) the host environment.

    2)  If we don't do this in build-tools, the "depend" stage of
        buildworld will do this for us; wrong library and header
        dependencies will be recorded (DESTDIR=${WORLDTMP}) and,
        what's worse, the "all" stage may then clobber the
        build-architecture format tools (that we built in the
        build-tools stage) with the target-architecture format
        ones, breaking cross build.

    In the second category there are all other build-tools.  They
    share their directory with the "main" module that needs them
    in the "all" stage, and they don't show up themselves in the
    .depend file.  The portion of this fix was already committed
    in gnu/usr.bin/cc/cc_tools/Makefile,v 1.52.

4.  "libperl" is no longer a build tool, and "miniperl" is the
    stand-alone application.  I had to make this change because
    build-tools and "all" stages share the same object directory.
    Without this change, if we cross compile, libperl.a is first
    built for the build architecture during the build-tools stage
    (for the purposes of immediate linkage with "miniperl").
    Later on, the "all" stage sees this library as up-to-date,
    and doesn't rebuild it.  The effect is that the wrong format
    static libperl library is installed with installworld.

5.  Fixed "includes" to install secure/lib/libtelnet headers if
    required.

Reviewed by:	bde
2001-09-29 13:17:54 +00:00
Ruslan Ermilov
b4e13f7b2b Removed touch(1) from the list of installworld tools that
was added in previous revision for no apparent reason.

Submitted by:	bde
2001-09-25 12:17:52 +00:00
Mark Murray
9356546b0a Add which(1) the stuff that we need early on. The perl build needs it
to find miniperl.
2001-09-20 12:24:10 +00:00
Ruslan Ermilov
a1e0e968b7 Run the bootstrap-tools' and cross-tools' stages with BOOTSTRAPPING
flag defined.  This replaces the WORLD flag that got lost in revision
1.96.
2001-09-17 11:50:36 +00:00
Bruce Evans
02d4de1533 Fixed world breakage. mkdir was not copied to ${INSTALLTMP}, but it is
used by src/include/Makefile in the SHARED=symlinks case.
2001-08-29 09:11:03 +00:00
Paul Richards
934372e226 Change the name of KRNLDEFDIR to KERNCONFDIR.
Suggested by Bruce, since the latter is more acceptable for a variable
that is externally visible.

Fix a style nit with a long line.
2001-08-27 12:01:46 +00:00
Paul Richards
f981dd25d1 Add a variable KRNLDEFDIR that specifies where to find the kernel
config files.

It defaults to KRNLCONFDIR.
2001-08-26 18:39:07 +00:00
Mark Murray
a1a21b0eb7 More libss removal. 2001-08-26 17:47:21 +00:00
Mark Murray
e2e0201cf6 Adjust dependancies; now that a PAM module (pam_unix) can change
NIS passwords, libpam needs rpc dependancies.
2001-08-26 17:45:56 +00:00
Kris Kennaway
4870a3d346 Say goodbye to libss, which somehow managed to crouch hidden in the tree
for long after it was used.
2001-08-19 21:32:52 +00:00
David E. O'Brien
1687fcd346 Use a build-tool to create the .mgc files.
Submitted by:	ru (partial)
Obtained from:	NetBSD (basic idea)
Reviewed by:	bde, ru
2001-08-17 17:21:38 +00:00
Thomas Moestl
c4a5ef6ef3 Add some features to libdevstat, and overhaul the interface a bit:
1.) prefix all functions in the library with devstat_ (compatability
    functions are available for all functions that were chaned in an
    incompatible way, but are deprecated).
2.) Add a pointer to a kvm_t as the first argument to functions that
    used to get their information via sysctl; they behave the same
    as before when NULL is passed as this argument, otherwise, the
    information is obtained via libkvm using the supplied handle.
3.) Add a new function, devstat_compute_statistics(), that is intended
    to replace the old compute_stats() function. It offers more
    statistics data, and has a more flexible interface.

libdevstat does now require libkvm; a library depedency is added, so
that libkvm only needs to be explicitely specified for statically linked
programs.
The library major version number is bumped.

Submitted by:	Sergey A. Osokin <osa@freebsd.org.ru>, ken (3)
Reviewed by:	ken
2001-08-04 18:25:48 +00:00
Dima Dorfman
7bd0b86765 Enable the new libmp in the build, and disable libgmp and its
henchmen.
2001-07-29 08:58:22 +00:00
Mark Murray
132463cacb Axe S/Key. OPIE is the true and faithful successor. 2001-07-09 17:49:34 +00:00
Peter Wemm
9488e5f340 Part 2 of gensetdefs de-orbit burn. linker sets are now self contained
for ELF, see src/sys/linker_set.h log.
2001-06-14 01:35:23 +00:00
Ruslan Ermilov
d531238a37 WARNS= is fully functional again. 2001-06-13 15:18:11 +00:00
Ruslan Ermilov
8411c946f5 - Restore -nostdinc that got lost in rev.1.105; we don't
want host headers during `buildworld'.

- During `buildworld', install headers in a "copy" mode
  until we decide what to do with the (currently broken)
  SHARED=symlinks.

- Temporarily run `buildworld' with -DNO_WERROR, which
  effectively disabled the -Werror bit of recently added
  WARNS=X feature.  This is required because adding the
  -nostdinc bit back revealed bugs in some header files
  that were hiding after not using -nostdinc.
  It is unclear currently how exactly (and why) -nostdinc
  affects gcc(1) warnings.
2001-06-11 18:09:08 +00:00
Ruslan Ermilov
3f628ce112 Bootstrap install(1). 2001-05-28 16:54:02 +00:00
Ruslan Ermilov
a24874dccd Add kbdcontrol(1) to bootstrap-tools.
This fixes the upgrade path breakage in usr.sbin/sysinstall.
2001-05-14 17:21:02 +00:00
Jeroen Ruigrok van der Werven
19a271529e Remove xlint from build-tools. This needs to be fixed in a different way. 2001-04-26 17:54:24 +00:00
Jeroen Ruigrok van der Werven
1048d3c9eb Add usr.bin/xlint to build-tools. 2001-04-24 20:19:29 +00:00
Gregory Neil Shapiro
0a51d0d9fd ${MAKEOBJDIRPREFIX}/usr/src/i386/usr/include/isc was being created as a plain
file during the bootstrapping process of a buildworld and contained the
last isc include file to be installed.  It was meant to be a directory for
the isc include files.
2001-04-24 02:57:42 +00:00
Ruslan Ermilov
d8d4bc9ab4 Add groff to bootstrap-tools. 2001-04-18 12:20:28 +00:00
Kenneth D. Merry
3393f8daa3 Rewrite of the CAM error recovery code.
Some of the major changes include:

	- The SCSI error handling portion of cam_periph_error() has
	  been broken out into a number of subfunctions to better
	  modularize the code that handles the hierarchy of SCSI errors.
	  As a result, the code is now much easier to read.

	- String handling and error printing has been significantly
	  revamped.  We now use sbufs to do string formatting instead
	  of using printfs (for the kernel) and snprintf/strncat (for
	  userland) as before.

	  There is a new catchall error printing routine,
	  cam_error_print() and its string-based counterpart,
	  cam_error_string() that allow the kernel and userland
	  applications to pass in a CCB and have errors printed out
	  properly, whether or not they're SCSI errors.  Among other
	  things, this helped eliminate a fair amount of duplicate code
	  in camcontrol.

	  We now print out more information than before, including
	  the CAM status and SCSI status and the error recovery action
	  taken to remedy the problem.

	- sbufs are now available in userland, via libsbuf.  This
	  change was necessary since most of the error printing code
	  is shared between libcam and the kernel.

	- A new transfer settings interface is included in this checkin.
	  This code is #ifdef'ed out, and is primarily intended to aid
	  discussion with HBA driver authors on the final form the
	  interface should take.  There is example code in the ahc(4)
	  driver that implements the HBA driver side of the new
	  interface.  The new transfer settings code won't be enabled
	  until we're ready to switch all HBA drivers over to the new
	  interface.

src/Makefile.inc1,
lib/Makefile:		Add libsbuf.  It must be built before libcam,
			since libcam uses sbuf routines.

libcam/Makefile:	libcam now depends on libsbuf.

libsbuf/Makefile:	Add a makefile for libsbuf.  This pulls in the
			sbuf sources from sys/kern.

bsd.libnames.mk:	Add LIBSBUF.

camcontrol/Makefile:	Add -lsbuf.  Since camcontrol is statically
			linked, we can't depend on the dynamic linker
			to pull in libsbuf.

camcontrol.c:		Use cam_error_print() instead of checking for
			CAM_SCSI_STATUS_ERROR on every failed CCB.

sbuf.9:			Change the prototypes for sbuf_cat() and
			sbuf_cpy() so that the source string is now a
			const char *.  This is more in line wth the
			standard system string functions, and helps
			eliminate warnings when dealing with a const
			source buffer.

			Fix a typo.

cam.c:			Add description strings for the various CAM
			error status values, as well as routines to
			look up those strings.

			Add new cam_error_string() and
			cam_error_print() routines for userland and
			the kernel.

cam.h:			Add a new CAM flag, CAM_RETRY_SELTO.

			Add enumerated types for the various options
			available with cam_error_print() and
			cam_error_string().

cam_ccb.h:		Add new transfer negotiation structures/types.

			Change inq_len in the ccb_getdev structure to
			be "reserved".  This field has never been
			filled in, and will be removed when we next
			bump the CAM version.

cam_debug.h:		Fix typo.

cam_periph.c:		Modularize cam_periph_error().  The SCSI error
			handling part of cam_periph_error() is now
			in camperiphscsistatuserror() and
			camperiphscsisenseerror().

			In cam_periph_lock(), increase the reference
			count on the periph while we wait for our lock
			attempt to succeed so that the periph won't go
			away while we're sleeping.

cam_xpt.c:		Add new transfer negotiation code.  (ifdefed
			out)

			Add a new function, xpt_path_string().  This
			is a string/sbuf analog to xpt_print_path().

scsi_all.c:		Revamp string handing and error printing code.
			We now use sbufs for much of the string
			formatting code.  More of that code is shared
			between userland the kernel.

scsi_all.h:		Get rid of SS_TURSTART, it wasn't terribly
			useful in the first place.

			Add a new error action, SS_REQSENSE.  (Send a
			request sense and then retry the command.)
			This is useful when the controller hasn't
			performed autosense for some reason.

			Change the default actions around a bit.

scsi_cd.c,
scsi_da.c,
scsi_pt.c,
scsi_ses.c:		SF_RETRY_SELTO -> CAM_RETRY_SELTO.  Selection
			timeouts shouldn't be covered by a sense flag.

scsi_pass.[ch]:		SF_RETRY_SELTO -> CAM_RETRY_SELTO.

			Get rid of the last vestiges of a read/write
			interface.

libkern/bsearch.c,
sys/libkern.h,
conf/files:		Add bsearch.c, which is needed for some of the
			new table lookup routines.

aic7xxx_freebsd.c:	Define AHC_NEW_TRAN_SETTINGS if
			CAM_NEW_TRAN_CODE is defined.

sbuf.h,
subr_sbuf.c:		Add the appropriate #ifdefs so sbufs can
			compile and run in userland.

			Change sbuf_printf() to use vsnprintf()
			instead of kvprintf(), which is only available
			in the kernel.

			Change the source string for sbuf_cpy() and
			sbuf_cat() to be a const char *.

			Add __BEGIN_DECLS and __END_DECLS around
			function prototypes since they're now exported
			to userland.

kdump/mkioctls:		Include stdio.h before cam.h since cam.h now
			includes a function with a FILE * argument.

Submitted by:	gibbs (mostly)
Reviewed by:	jdp, marcel (libsbuf makefile changes)
Reviewed by:	des (sbuf changes)
Reviewed by:	ken
2001-03-27 05:45:52 +00:00
Ruslan Ermilov
aeebb4e76d Add missing NOSECURE check for `includes' target.
Reviewed by:	markm
2001-03-26 12:46:17 +00:00
Ruslan Ermilov
d9d1a7bb94 Enhancement to 1.99 -> 1.100.
Avoid EPERM from ln(1) in a different (proper) way.
2001-03-22 09:54:25 +00:00
Ruslan Ermilov
afcf05e46a setlocale(3) has been fixed to match POSIX standard:
LC_ALL takes precedence over other LC_* envariables.
2001-03-02 16:52:14 +00:00
John Baldwin
7de7569f50 MACHINE_ARCH is the target arch to crossbuild to, not TARGET_ARCH.
Requested by:	marcel
2001-02-22 22:58:24 +00:00
John Baldwin
682d4db4c8 Document TARGET_ARCH. 2001-02-22 08:27:17 +00:00
Bruce Evans
58445af0f8 Removed some garbage (genassym(8) and its infrastructure). 2001-02-17 06:06:14 +00:00
Mark Murray
c1f3d84722 Fix make world. 2001-02-14 19:48:51 +00:00
Peter Wemm
2f74661cc7 Provide backwards compatable recognition of ${KERNEL}. You should be
able to use KERNEL= again with buildkernel, but it will point you at
KERNCONF= and press on regardless.
2001-01-23 09:52:50 +00:00
Peter Wemm
6d84d742df Sigh, I thought we still had the rm -rf objdir stuff in make world, which
would have taken care of the possibility of buildkernel crossing over
from one binutils set to another.  Back out the part about turning off
'make clean' if the 'make depend' is still active, but add a NO_KERNELCLEAN
target instead that works like NOCLEAN but just for the kernel.
2001-01-22 23:29:13 +00:00
Peter Wemm
51dfb94794 Use 'make clean' instead of 'config -r', and only if the 'depend' step has
been skipped.  We went to a lot of trouble to make the 'blow away' stage
unneeded, and it has not been needed for quite some time.
2001-01-22 23:10:01 +00:00
Warner Losh
5963db0f2e As threatened in hackers@ on Friday, obviate the need for a buildworld
to preceed a buildkernel.

The buildworld is still required when upgrading across major releases,
across binutil upgrades and when config changes version.  If
buildkernel breaks, and you haven't done a buildworld, then do not
complain unless you do a buildworld and it still breaks.
2001-01-22 08:07:58 +00:00
Peter Wemm
c1ae5e3dce Using "KERNEL" for buildkernel was a very very bad mistake. $KERNEL is
already used by the kernel makefiles themselves, and this leads to a lot
of trouble when people put "KERNEL=MYKERNEL" in make.conf.  Bite the bullet
and change it to KERNCONF instead, before it gets too far entrenched.

The kernel Makefiles use ${KERNEL} as the name of what to install the
kernel as, eg: /boot/${KERNEL}/kernel or /${KERNEL}.  This leads to much
unhappiness with things like /LOCAL instead of /kernel.  buildkernel is
severely limited as it is only useful directly after a buildworld.

Reviewed by: jhb
2001-01-22 07:29:48 +00:00
Jordan K. Hubbard
c80a5c4c6e Also add some timing information for kernel builds so that it's
easy to do "make world kernel |grep -e '^>>>'" and get a complete
event log.
2001-01-21 23:44:41 +00:00
Peter Wemm
26379603c0 Create a build-tools target for sysinstall and rtermcap. This is still
not right because rtermcap would be reading the *host* termcap, not
from the termcap in the src tree.  Besides, /usr/sbin/sysinstall
(not the crunched one in /stand) should use the runtime termcap
not the precompiled set.
2001-01-19 09:24:00 +00:00
KATO Takenori
3e530495b9 Removed pc98-hack of aout tools. 2000-12-24 14:58:34 +00:00
Marcel Moolenaar
d6deedefeb Fix cross-building once again.
Forgotten by: ache
2000-12-03 20:29:31 +00:00
Marcel Moolenaar
0a0743b52a Fix release, broken by the perl cross-build fixes.
The distribute target is basicly the same as an install. For
perl, this means that miniperl is needed. Since miniperl is
only present in the object directory, we need to make sure
the path is set correctly. To do this, we have make release
use a new distribworld target that sets the path before doing
a make distribute.
2000-11-21 04:37:30 +00:00
Marcel Moolenaar
ad879ce955 Fix cross-building.
o  Move building libperl and miniperl from build-tools to
   cross-tools. libperl uses MACHINE_ARCH to determine the
   right configuration, which doesn't match the build
   machine when cross-building if they are built as build-
   tools.
o  Since miniperl needs to be built as a cross-tool, it
   needs to be installed under /usr/obj so that it can be
   used (cross-tools have a special object directory to
   avoid build conflicts. As a downside, you can't easily
   run cross-tools from their object directory). Remove
   the install and distribute override targets. To avoid
   having miniperl installed by installworld, remove it
   from SUBDIR.
o  We can't pickup miniperl from the object directory but
   since it's installed, depend on PATH. This is save,
   because the makefiles are run with a known path.
o  Build libperl again as part of the library target. A
   _libperl variable existed, but it was never defined.
o  Add chmod to the list of saved tools, because perl
   conditionally uses it during install.

The bootstrap-tools and cross-tools targets are modified to
avoid building profiled and shared libraries. While here,
have these targets build static binaries instead of shared
binaries.

Approved by: markm
2000-11-20 02:17:34 +00:00
David E. O'Brien
cb6f68576a libgcc now needs to be built earlier in the build.
Submitted by:	jdp
2000-11-10 22:02:06 +00:00
David E. O'Brien
ae7c8a2bb8 * Bring back the guts of crt{i,n}.S. This allows C++ exceptions to work
when using the egcs and gcc-devel ports, along with GCC built from stock
public FSF sources.  With out this change, FreeBSD will be removed from
the list of systems GCC 3.0 must be evaluated on before release.  With
the effort some of us put into getting FreeBSD on this list, we should
not turn this effort into a waste, else we might not be worth fighting
for in the future.  (note that Alpha and IA-64 versions of crt{i,n}.S
are needed)

* Switch from our own crt{begin,in} to those created from GCC's crtstuff.c.
This will allow us to switch to DWARF2 exceptions in the future, along with
staying in sync with any future GCC requirements.

* Break out our ELF branding bits into a seperate file.  Currently this
is now included by our crt1.c files (since this functionality was part of
our native crtbegin.c).  Later crtbrand.o will be merged in the creation
of crti.o.
2000-10-28 21:26:48 +00:00
Joseph Koshy
a62264fb74 Fail the 'buildkernel' target if not even one of the specified kernel configuration
files was found.

Reviewed by:	obrien
2000-10-25 04:31:32 +00:00
David E. O'Brien
13387c45eb Number the stages in the documentation to match what is printed out when
running.
2000-10-13 01:19:36 +00:00
Justin T. Gibbs
18ebc2eaa1 This is really gross.
If a user decides to forego a make depend during "make buildkernel",
they should get what they deserve if no previous make depend has
been run for that kernel.  Instead, the build process includes
special instructions to unconditionally rebuild aicasm.  When aicasm
moved to its own directory, this hack broke.

Correct the hack until a get buy off on killing it.
2000-09-18 03:35:49 +00:00
Warner Losh
66bea2a025 Add reinstallkernel target. Does same thing as installkernel, but
executes the reinstall target rather than the install target that
installkernel does.
2000-09-17 21:02:58 +00:00
Dag-Erling Smørgrav
a3f02cc072 Include libfetch in the includes target. 2000-09-09 14:37:06 +00:00
Peter Wemm
1b73d196cb USA_RESIDENT is no longer required for buildworld, do not force it. 2000-09-09 04:42:34 +00:00
David E. O'Brien
ae78d52fe5 Allow one to specify what the installed kernel's name is by setting
"INSTKERNNAME".

Reviewed by:	marcel
2000-09-03 02:58:39 +00:00
Josef Karthauser
6fd0f27267 Define SUPHOST. If this is set a '-h ${SUPHOST}' is added to the
SUPFLAGS when a 'make update' is run.  This means that the supfile
doesn't need to be edited because the -h will override the
CHANGE_THIS.FreeBSD.org host.
2000-08-13 12:36:40 +00:00
Sheldon Hearn
ef10227633 Make the update target consistent; both ports and doc are updated
if their SUPFILE variables are defined _and_ NO_PORTSUPDATE and
NO_DOCUPDATE respectively are not defined.

Previously, only ports was updated and there was no way to prevent
this without undefining its SUPFILE variable.

PR:		17514
Reported by:	Udo Erdelhoff <ue@nathan.ruhr.de>
2000-08-07 14:35:49 +00:00
Marcel Moolenaar
f7ff24ef81 Fix buildkernel and installkernel when KERNEL is defined in
/etc/make.conf.

PR: 20325
Submitted by: Johan Karlsson <k@numeri.campus.luth.se>
2000-08-03 05:52:22 +00:00
Marcel Moolenaar
a5061fba1f Argh... mtree has been removed from the bootstrap-tools. In that
case we need to save it in installworld. That latter I forgot...

Pointy hat: me
2000-07-23 21:30:35 +00:00
Marcel Moolenaar
dce97721ea Name all kernels 'kernel'. This fixes the incompatible behaviour
of the buildkernel and installkernel targets where the kernel
was called after the config name.

While here, fix the brokenness of the installkernel target. It
used to use ${IMAKEENV}, but since that has a very restricted
PATH, it couldn't find make(1). Use ${CROSSENV} instead.
2000-07-23 17:38:32 +00:00
Marcel Moolenaar
fa90cca2fc Remove mtree for bootstrap-tools. The -L switch change has been
backed out.
2000-07-23 16:43:03 +00:00
Marcel Moolenaar
a0982e9309 Don't save cp(1) in installworld. Its use has been replaced by
a use of install.
2000-07-23 00:20:56 +00:00
Marcel Moolenaar
eb263e0408 Add awk and wc to the list of copied binaries for the installworld
target. These are needed by liloldr.

Found by: make release
2000-07-20 03:03:23 +00:00
Marcel Moolenaar
39b909dad3 Add cp(1) to the list of binaries we need to save. The cp(1) command
is used by the installation of ld-elf.so when an existing version
exists.
2000-07-19 22:48:52 +00:00
Marcel Moolenaar
2e826432aa Don't save install-info. We already have that built. We'll use
the one we built anyway.
2000-07-19 18:18:21 +00:00
Marcel Moolenaar
767ab900c6 Save any binaries we use by installworld, so that we won't use the
binaries we just installed. This allows a future upgrade target to
install a new system without intermediate reboots and also
prevents conflicts for parallel make runs where we might exec a
binary that's being installed at the same time.
2000-07-19 04:41:59 +00:00
Andrey A. Chernov
7d66a72a06 Move mtree to bootstrap-tools and add PATH=${TMPPATH} to IMAKEENV to pick it 2000-07-18 01:49:05 +00:00
Andrey A. Chernov
199b3e8349 Add mtree to cross-tools to make it updated for new -L option
It must solve make world breakage
2000-07-18 00:21:05 +00:00
Mark Murray
58804eace2 Perl's version number needs to change. 2000-07-02 16:15:03 +00:00
Mark Murray
f307c8a7ed Rearrange Perl's build priority; it needs to get made earlier. 2000-06-25 15:02:18 +00:00
Brian Somers
59bb1d9c7b Add -DNO_KERNELDEPEND and -DNO_KERNELCONFIG
Not reviewed by: sheldonh
2000-06-15 10:00:20 +00:00
Brian Somers
625de7fe92 Set KERNEL=${INSTALLKERNEL} doing a make install in /sys/conf 2000-06-09 10:42:36 +00:00
Yoshihiro Takahashi
a82162d4bb GENERIC98 is removed. 2000-05-05 08:02:15 +00:00
Garrett Wollman
fc5361f9d8 Make gperf be a bootstrap-tool, since we now depend on features of
the specific version in -current.

Approved in principle by: marcel
2000-04-27 21:24:43 +00:00
Garrett Wollman
095a235e17 Revert my changes to make gperf a build-tool; that was the wrong thing.
All builds had been broken; now just upgrade builds are until I or
someone else can figure out the Right Thing.
2000-04-27 19:38:57 +00:00
Garrett Wollman
85a00bb01f Add gperf(1) to build tools. It should have been one before, but
gcc does not depend on version-specific gperf behavior (yet).
2000-04-27 16:43:45 +00:00
Sheldon Hearn
6892430807 Create ${KRNLOBJDIR} before running config(8), since config(8) does
not create required parent directories of the kernel compile
directory specified with its -d option.
2000-04-27 09:20:18 +00:00
Kris Kennaway
9ad4708e6a Unbreak make world (libpam depends on libopie) 2000-04-17 03:50:53 +00:00
Sheldon Hearn
f67ecfeb4c Fix the buildkernel and installkernel targets for the case where
KERNEL specifies multiple kernels.

PR:		17536
Submitted by:	Johan Karlsson <k@numeri.campus.luth.se>
2000-03-30 13:06:53 +00:00
Ruslan Ermilov
8d76bd014c Get rid of "sticky" files when updating sources with cvs(1).
Approved by:	peter
2000-03-29 07:30:44 +00:00
Kris Kennaway
bb49f794f5 Buildworld fixes for NO_OPENSSH and NO_OPENSSL
Approved by:	jkh
2000-03-09 06:29:05 +00:00
Mark Murray
5bf514a380 A lot of tools need to be built before compilation proper can happen. 2000-02-28 21:04:38 +00:00
Mark Murray
84a9e747fa We have a new world order in libraries.
Goodbye libdes; Welcome libcrypto.
2000-02-24 23:03:16 +00:00
Jordan K. Hubbard
3da5eca4bf Docfix: Note krb5 flags.
PR:		16818
Submitted by:	martti.kuparinen@nomadiclab.com
2000-02-20 09:13:30 +00:00
Ruslan Ermilov
858b447106 Now that bsd.lib.mk has PRECIOUSLIB feature back (rev 1.91),
we need -DNOFSCHG at stage 4 (building libraries) to support
non-root buildworlds.

Reviewed by:	<buildworld@current.freebsd.org>
2000-02-03 09:43:17 +00:00
David E. O'Brien
6f96b351c2 The readline includes handling was moved down a level in
src/gnu/libreadline -- reflect that change here.

Ok'ed by:	JKH
2000-01-30 20:57:58 +00:00
Warner Losh
f0d6a66558 Back out 1.134. It works from 3.3R, but breaks cross compilation for too
little gain.  I'll work out the issues after 4.0R is out.
2000-01-29 08:39:07 +00:00
Warner Losh
e208d1083f Remove Fortran from build tools. It isn't needed to build the system
and costs us an extra 2% to build it for no reason.  It may break
building cross compilation environments for fortran, but that isn't
officially supported at this time anyway (also, the % of our user base
that would use that is < .001% imho).  This does't break fortran (it
is built again later anyway).

Reviewed by: obrien
Tested by: make buildworld and make buildworld -DNOCLEAN
2000-01-28 21:15:24 +00:00
Mark Murray
d092560c58 Build Kerberos5 if the correct macro is set. This is not for the
faint_hearted; serious hackers only!
2000-01-24 20:11:53 +00:00
Kris Kennaway
f8c52b7c27 Require USA_RESIDENT to be 'NO' or 'YES' if building secure/
Reviewed by:	marcel
2000-01-19 04:03:48 +00:00
Ruslan Ermilov
85dd55e473 Finally resolve the texinfo issue by moving it
from the cross-tools to the bootstrap-tools.

Requested by:	bde, marcel
2000-01-18 11:00:24 +00:00
Ruslan Ermilov
7e3e88c674 For some reason compiler should be the last in the list of cross-tools.
Unbroke the world by moving gnu/usr.bin/texinfo before gnu/usr.bin/cc.

Submitted by:	Jim Bloom <bloom@acm.org>
2000-01-18 07:26:20 +00:00
Ruslan Ermilov
4928e3ce0a Add gnu/usr.bin/texinfo to the list of cross-tools.
We need an up-to-date `makeinfo' and `install-info'
at `world' and `install' stages.

Pointed out by:	bde
2000-01-17 15:33:34 +00:00
Marcel Moolenaar
d8180fbd67 Add gross hack to work around bogus dependency information created
by gnu/usr.bin/cc/cc_tools/Makefile. This bug is painfully visible
when making buildworld with -DNOCLEAN. This work around is beyond
dirty...
2000-01-12 14:33:00 +00:00
Marcel Moolenaar
2a7a0de6a7 Fix broken installkernel target. Don't use the WMAKE context to
install; use the IMAKE context.

Reported by: sheldonh
2000-01-12 10:00:36 +00:00
Marcel Moolenaar
15e1a3068c Revert gratuitous change in rev. 1.123 which broke building world
as non-root.

Breakage caused by: green
2000-01-11 16:23:51 +00:00
David E. O'Brien
ae41b16cf0 Remove Bison from "bootstrap-tools" as we don't use it to build anything
in /usr/src/ anymore.
2000-01-11 13:19:57 +00:00
Brian Feldman
559048567a This is the second half of unbreaking the world build. Add a -DNOHTML
corollary for -DNOINFO and -DNOMAN.  I'll fix this properly (add
specific HTML doc magic) in the .mk files later; right now, just
unbreak the world.
2000-01-11 12:51:56 +00:00
Marcel Moolenaar
d4ab519ba8 Add the -r flag to CONFIGARGS instead of assigning to it so that
it's more easy to build a kernel with debugging information.

Suggested by: sheldonh
2000-01-11 10:44:37 +00:00
Marcel Moolenaar
f3bb8dbd87 Add a buildkernel and an installkernel target. With these targets
users can more easily upgrade.

buildworld now makes usr.sbin/config in bootstrap-tools so that
when you first make buildworld, buildkernel will use config(8)
from the temp. world tree (and of course also the compiler).

Which kernel to built is determined by the KERNEL variable. You
can have as many kernels listed as you like. When a config file
exists for the given MACHINE it will be built. When KERNEL has
not been defined it will be set to "GENERIC GENERIC98".

The first valid kernel named in the list will be used by the
installkernel target.

When NOCLEAN is defined the kernel object directory is *not*
removed by config first. This is in line with normal buildworld
behaviour.

The buildkernel target makes aicasm in sys/dev/aic7xxx first and
unconditionally. This hack allows us to cross-build kernels and
can go away when the problem is solved in a structural way.
2000-01-09 17:56:40 +00:00
Marcel Moolenaar
1d19afde95 Add btxld to the list of cross-tools on machines that don't have it
natively (ie non-i386 architectures).
2000-01-04 14:12:12 +00:00
Mark Murray
37379a446b Grrrr... This was supoosed to go with the commit to kerberosIV/.../libroken's
Makefile.

Fix make world by building appropriate build-tools.

Submitted by:	 marcel
1999-12-30 10:31:21 +00:00
David E. O'Brien
a886640d01 Restore changes I spammed. 1999-12-29 14:47:00 +00:00
David E. O'Brien
253745e1fc Allow the specification of a prefix for gcc to find all the various bits.
If one wishes to anchor the compiler toolchain tree somewhere other than /,
all one needs to do is set "TOOLS_PREFIX" to a different rooting.

Submitted by:	marcel (in a different format and reworked by me)
1999-12-29 14:42:46 +00:00
Kris Kennaway
4712894e59 Only make beforeinstall in libcrypto/libssl if they actually exist. I haven't
imported these on Freefall yet for the reasons previously explained.

Noticed by:	asami
1999-12-29 14:18:51 +00:00
Satoshi Asami
1a75f3dd99 Oops, the previous commit was bogus. I shouldn't commit something without
reading all my mail.

I still don't understand why this was was committed on freefall before
the libcrypto and libssl subdirectories were imported on freefall though.
1999-12-29 13:57:31 +00:00
Satoshi Asami
019d7e0fc5 Typo (libcrypto -> libcrypt). 1999-12-29 13:33:54 +00:00
Kris Kennaway
47dbe12fc0 Build openssl properly during make world. 1999-12-28 16:22:50 +00:00
Marcel Moolenaar
7377751f18 Don't build caesar as a tool. fortune(6) doesn't depend on it
anymore. Update comments and variable names as well to wipe out any
traces that may confuse people in the future.
1999-12-23 19:18:28 +00:00
Marcel Moolenaar
3eafbc1a3a Revert previous commit, and
o  Add genassym to the list of cross-tools
o  Remove sh hashing work-around, we don't need it anymore
o  Clean more directories in WORLDTMP when NOCLEAN is specified

The sh hashing work-around is not needed anymore, because we don't
trigger the bug anymore.

When NOCLEAN is not defined, we wipe out the complete WORLDTMP,
including the object directories of the tools we have built. When
NOCLEAN is defined, we remove anything that we install anyway, which
is usr/bin, usr/games, usr/include, usr/lib and usr/sbin.
1999-12-23 11:25:34 +00:00
Andrey A. Chernov
02fdddce34 Add ${WORLDTMP}/sbin to ${STRICTTMPPATH} - sysctl not found otherwise 1999-12-22 20:27:45 +00:00
Marcel Moolenaar
7676262457 o make SHARED=symlinks a caller defined instead of a callee defined
property. This fixes the includes target when DESTDIR is empty.
o  Do not make build-tools for f771 when NO_FORTRAN is defined.
o  Add new build stage. See below.
o  Change banners so that staging information is displayed.

The addition of the build-tools target broke the upgrade path because
we couldn't make use of previously built tools that were made for
compatibility reasons. Doing so would also result in the cross-compiler
being used and that is exactly what had to be avoided.

This is solved by designating the bootstrap-tools stage for building
anything that is needed for compatibility only and to create a new
stage (started after the build-tools stage) that handles cross-tools
building. We now have the following stages:
1. bootstrap-tools (for compatibility issues only)
2. build-tools
3. cross-tools (what it says)
4. world
5. install

Stages 1-4 (inclusive) are handled by buildworld.
Stage 5 is handled by installworld.

Any more stages and I'll join Nik in his quest for the
holy grail^W^Wworld :-)
1999-12-20 10:32:11 +00:00
Marcel Moolenaar
5233a96cd1 Don't build usr.sbin/pcvt/keycap on anything other than i386 when
building the libraries target. pcvt is i386 specific.
1999-12-17 11:23:56 +00:00
Marcel Moolenaar
bfc59eb8e0 o Add games/caesar to the list of bootstrap-tools so that a
buildworld doesn't break because the host doesn't have any
   games installed,
o  Add a new build stage: TMAKE. TMAKE builds all the build-tools
   targets in the respective makefiles. Note that these targets
   don't use the bootstrap tools,
o  Add elf2exe to the bootstrap-tools when cross-building Alpha on
   other platforms,
o  Add ${WORLDTMP}/usr/games to TMPPATH,
o  Remove ${WORLDTMP}/usr/bin even when NOCLEAN is defined. This
   prevents using any bootstrap-tools previously installed. Most
   importantly, it prevents using the cross-compiler when we still
   need the native compiler.

The current stages are BMAKE, TMAKE, XMAKE and IMAKE in that order.
BMAKE builds bootstrap-tools that either solve compatibility problems
      or are needed as cross-tools,
TMAKE builds the support tools necessary by some parts in the source
      tree and also performs the cleandir and par-obj targets,
XMAKE builds the includes, libraries and everything (resp.), and
IMAKE installs the world. This stage needs further work if it's to be
      used to install -current over -stable for example.

This is the last major update towards cross-building.
1999-12-16 13:47:34 +00:00
Bill Fumerola
f647fd1549 It is possible for someone to want to 'make update' wht SUPFILE not defined
while SUPFILE1 or PORTSSUPFILE are defined.
1999-12-16 01:21:48 +00:00
Marcel Moolenaar
4ac29d1e8a Add colldef to the list of tools. It's needed on older systems. 1999-12-12 22:24:08 +00:00
Marcel Moolenaar
0dd0e829e5 o Add gensetdefs to the list of tools.
o  Don't set CFLAGS in the bootstrap env. It is very likely to be
   overridden my any CFLAGS setting in /etc/make.conf. Setting it
   here is almost useless. So far, it doesn't seem necessary.
1999-12-12 21:24:07 +00:00
Yoshihiro Takahashi
845eb5375c Build a.out tools if MACHINE_ARCH == i386 and MACHINE == pc98.
The boot2 for pc98 is still a.out program.

I made the original patch, and many problems were fixed by Marcel Moolenaar.
1999-12-12 03:54:58 +00:00
Marcel Moolenaar
3f2aa30a37 Don't add MACHINE_ARCH to MAKEOBJDIRPREFIX when not cross-building.
This should fix make release.

Reported by: jhay, phk
1999-12-11 17:05:36 +00:00
Marcel Moolenaar
f80df2fa88 o Don't make games/fortune/strfile if games does not exist or NOGAMES
has been defined.
o  Make libraries before making depend.
1999-12-10 16:13:41 +00:00
Marcel Moolenaar
08265f35e5 Remove installworld related settings that I had as a safety-net and
for development. :-/
1999-12-10 11:24:06 +00:00
Marcel Moolenaar
0ea234de3c More cross-building related changes:
o  Build tools before doing anything in or with the object tree.
o  Tools don't use the object tree any more, but have there object
   tree located in the temp. world.
o  Use the proper make env. for cleaning and building the object tree.
o  Don't create kernel include subdirectories in the temp. world. These
   are removed later on and replaced by symlinks.
o  Change the layout of the object tree:

The temp. world now is /usr/obj/${MACHINE_ARCH}${.CURDIR}/${BUILD_ARCH}.
/usr/obj can be set/changed by using MAKEOBJDIRPREFIX, and {.CURDIR}
obviously depends on where the source tree is located. MACHINE_ARCH
is the arch. for which the world is to be build and BUILD_ARCH is the
arch. on which we are building.

The object tree now is /usr/obj/${MACHINE_ARCH}${.CURDIR}.

This allows concurrent cross-builds and allows the object tree to be
shared on different archs., each doing the same cross-build. This of
course assumes that the output on Alpha (for example) is the same as
the output of an Alpha cross-build on i386 (for example).

The use of NOCLEAN is is still dangerous, but should be usable in many
more situations than before. It should now be possible to safely
restart an interrupted build with NOCLEAN without side-effects. Because
the tools don't share the object tree with the normal (cross-build), no
tools have to be rebuild.
1999-12-10 10:48:20 +00:00
Marcel Moolenaar
7466caf46a Don't make gdb, objc and f77 when building tools. 1999-12-09 16:40:27 +00:00
Marcel Moolenaar
aae5d68824 Make sure the links to the source tree end up in the source tree. 1999-12-09 13:36:16 +00:00
Marcel Moolenaar
db10927bf0 o Add usr/lib/compat/aout to the temp world. This is needed by release.
o If you can't beat them, join them: use symlinks to populate the obj
  tree. This avoids using mtree.
1999-12-09 10:45:09 +00:00
Marcel Moolenaar
894157f536 Restore the upgrade path from -stable to -current and prepare for
non-root cross-building.

o  Makefile.inc0 is not used anymore.
o  The legacy aout build has been removed.
o  Selectively build tools *before* building includes/libraries.
o  Avoid using mtree to populate the obj tree.
1999-12-08 13:45:11 +00:00
Julian Elischer
e13b3c7870 Place netgraph entry into alphabetical position
along with the misplaced entries that it was next to.
1999-11-25 20:05:07 +00:00
David E. O'Brien
30fdccdc20 Revert to rev 1.91. Revs 1.9{2,3} were causing problems for people with
pre-Aug 4.0-CURRENT worlds and those with pre-GCC 2.95.2 worlds.

The problem with pre-Aug worlds is the installed Byacc and Bison doesn't
have necessary changes to compile either GCC 2.95 or EGCS 1.1.x.

The problem with pre-GCC 2.95 worlds is libgcc is built with the wrong
compiler.  See rev 1.17 of src/gnu/lib/libgcc/Makefile (which used to live
in src/gnu/usr.bin/cc/libgcc) + commit messge for details of the requirements.
1999-11-24 06:04:11 +00:00
Marcel Moolenaar
6de9679e89 Fix some bugs and make some policy changes.
o  Send libmytinfo back to the afterlife. It was revived by mistake,
o  Make gnu/lib/libgcc before making lib/libpam. This dependency has
   been overlooked in constructing the list,
o  make depend before make all. It's by using make depend that the
   dependency was found in the first place and we need it to prevent
   cleaning everything up before we start,
o  Don't specify -DNOINFO -DNOMAN for the libraries target. Let the
   target handle it. We can do away with a single run over the libs
   if we make everything while we're there and only install the
   libraries in the object tree.
1999-11-23 18:52:12 +00:00
Marcel Moolenaar
be4512ece9 Build tools against the host's includes and libraries. Also, don't
build make(1) twice and merge the bootstrap-libraries and libraries
targets.

This change solves the bug where build-tools, compiled against the
includes and libraries built from the sources failed to run on the
host, as was the case with the sigset_t change. With this update, a
buildworld will fail if the tools won't compile on the host. This
is solved in further commits where backward compatibility of the
tools is enlarged.

The libraries target has been fixed. The libraries are now build in
the proper order, satisfying the dependencies. The comment is updated
to reflect this.

The linux module and netboot have been removed from the list of tools.
More to follow.

Reviewed by: bde, imp
1999-11-21 20:06:03 +00:00
Marcel Moolenaar
f5c0c6abaa Remove CROSS_MAKE_FLAGS. 1999-11-15 17:07:45 +00:00
Marcel Moolenaar
0917704bd4 ${MACHINE} -> ${MACHINE_ARCH}
All Makefiles now use MACHINE_ARCH for the target architecture.
Unification is required for cross-building.

Tags added to:
	sys/boot/Makefile
	sys/boot/arc/loader/Makefile
	sys/kern/Makefile
	usr.bin/cpp/Makefile
	usr.bin/gcore/Makefile
	usr.bin/truss/Makefile

usr.bin/gcore/Makefile:
	fixed typo: MACHINDE -> MACHINE_ARCH
1999-11-14 13:54:44 +00:00
Julian Elischer
5dd05de905 install netgraph.h a bit earlier.
Submitted by:	Boris Popov <bp@butya.kz>
1999-10-25 14:50:13 +00:00
Boris Popov
f24bb3a4b3 Make libncp actually compiled.
Reviewed by:	mdodd
1999-10-14 06:40:46 +00:00
Peter Wemm
6d77c2defa Add libkvm to the includes target. 1999-10-04 14:57:38 +00:00
Mark Murray
1f687ff1e7 Minor (but important) comment change. 1999-09-20 20:27:09 +00:00
Bruce Evans
7dd5e27cc6 FIxed disorder in the comments about library build order. 1999-09-04 13:25:57 +00:00
Mark Murray
da52b932b9 Further preparation for tn3270's demise. 1999-08-31 06:53:39 +00:00
Peter Wemm
4c2a26e352 Update for ncurses5 aftermath.. 1999-08-30 08:33:15 +00:00
Peter Wemm
97d92980a9 $Id$ -> $FreeBSD$ 1999-08-28 01:35:59 +00:00
John Polstra
4f1b474e39 Remove f2c-related stuff from the "includes" target and from a
comment.  Fixes broken make world.
1999-08-08 22:26:09 +00:00