Commit Graph

298 Commits

Author SHA1 Message Date
Ruslan Ermilov
9f3089acef An empty CPUTYPE now means ``the default CPUTYPE'' in bsd.cpu.mk.
If there was no CPUTYPE assignment in /etc/make.conf, this would
cause the ``CPUTYPE assignment type'' check to falsely fail.

Reported by:	johan

Fixed this by making sure we always pass the non-empty CPUTYPE.
Also make sure we use the correct set of share/mk files in our
test.
2002-08-05 08:54:26 +00:00
Ruslan Ermilov
32f8ca450d TARGET_CPUTYPE should exist solely in Makefile.inc1, similar to
TARGET_ARCH and TARGET.  This is problematic when one has the =
(unconditional) type of assigment for CPUTYPE in /etc/make.conf.
(This would override what was set on the command line to "make
buildworld".)

Add a (horrible) kludge to Makefile.inc1 to check the type of
assignment for CPUTYPE (only for those who attempts to set it to
a different value).  Fix an example make.conf.  Fix the kernel's
build-tools target (aicasm only at the moment) to catch up with
bsd.cpu.mk,v 1.15 (BOOTSTRAPPING replaced with NO_CPU_CFLAGS in
Makefile.inc1's BMAKE).

Reviewed by:	jhb
2002-08-02 18:04:22 +00:00
John Baldwin
22e256fded - Define NO_CPU_CFLAGS during BMAKE and TMAKE (and thus XMAKE) so that
bsd.cpu.mk doesn't have to worry about compilers other than the current
  version.
- Allow TARGET_CPUTYPE to override CPUTYPE in bsd.cpu.mk.
- Treat an empty CPUTYPE the same as an undefined CPUTYPE.
- For buildworld, buildkernel, etc., define TARGET_CPUTYPE to CPUTYPE for
  native builds and define it to be empty for cross-builds.
  TARGET_CPUTYPE is only defined if it is not already defined via the
  commandline or environment.
2002-07-31 03:56:03 +00:00
Ruslan Ermilov
609b7b3189 Inline ${_cxx_consumers}. 2002-07-24 23:08:57 +00:00
Peter Wemm
6b3086807f We're done with 1.287 and 1.288 now.
Submitted by: ru
2002-07-24 22:44:19 +00:00
Ruslan Ermilov
6faeb36914 Pass -DBOOTSTRAPPING to the kernel's build tool (sys/dev/aic7xxx/aicasm).
This way, it has a chance to be built with gcc 2.95.x (using the bandaid
in share/mk/bsd.cpu.mk,v 1.11).

Feedback timeout from:	gordon
2002-07-11 16:43:59 +00:00
Juli Mallett
b0346d3494 libufs does not need built before most things, after all.
Submitted by:	bde, ru
2002-07-01 17:51:43 +00:00
Juli Mallett
a306cfd13a Add libufs to prebuild_libs, since lots of things will want it, in time. 2002-07-01 05:43:11 +00:00
Ruslan Ermilov
072f6798f8 Make NO_OPENSSL actually imply NO_OPENSSH, as documented in make.conf(5). 2002-06-21 08:54:03 +00:00
Maxim Sobolev
f9382a3cad Don't try to build libssh if NO_OPENSSL is defined because NO_OPENSSL implies
NO_OPENSSH.
2002-06-16 14:24:51 +00:00
Ruslan Ermilov
4093807dd9 libfetch now depends on libcrypto and libssl. 2002-06-06 13:45:46 +00:00
Ruslan Ermilov
99b73fffb8 On behalf of lib/compat/compat4x.i386/libusb.so.0.bz2.uu,v 1.1,
added uudecode(1) to bootstrap-tools.
2002-05-31 13:04:09 +00:00
Peter Wemm
3c67aa80ec Ignore a c++ that is version other than 3.1 if it does not also match
cc's version.  libgcc.a will have been clobbered and will no longer have
the old c++ support.

Submitted by:	jhb
2002-05-30 19:46:34 +00:00
Peter Wemm
f119dc7c54 Bandaid for helping people who have a broken /usr/bin/c++ installation.
This only affects the -current early adopters and developers who have
done a 'make world' in the last few weeks and as a result installed a
gcc-3.1 version of /usr/bin/c++ but without the corresponding library
support that this now requires.  This is a temporary hack that should be
deleted within a few weeks.  In this case we will use the existing
gperf/groff one last time around for the early stage1 bootstrap.  (This
isn't so bad, because we were unconditionally using the host one before)
2002-05-29 03:59:20 +00:00
Peter Wemm
0367ff7599 Put on peril sensitive sunglasses and turn C++ stuff back on. 2002-05-29 00:48:14 +00:00
Ruslan Ermilov
6af587dcab Fixed the world breakage caused by my last commit.
NOMAN is defined when building bootstrap-tools.

Submitted by:	jhay
2002-05-28 07:30:21 +00:00
Ruslan Ermilov
a6290aac9e Bootstrap makewhatis(1). 2002-05-27 15:51:38 +00:00
Ruslan Ermilov
02c0301fa7 Move elf2aout to usr.sbin/.
Approved by:	jake
2002-05-25 13:29:47 +00:00
Ruslan Ermilov
b501b9b5c1 Bootstrap elf2aout(1) for sparc64; used to build sys/boot/sparc64/boot1. 2002-05-20 14:42:48 +00:00
David E. O'Brien
d246873e61 Back out rev 1.278. Seems we grew a getconf(1) that requires it. 2002-05-18 18:23:04 +00:00
David E. O'Brien
17dbb17920 Remove local patch that crept in. 2002-05-18 18:17:13 +00:00
David E. O'Brien
ef446fb2c6 Don't build gperf. 2002-05-18 00:20:01 +00:00
Mark Murray
10b2978e07 Remove the perl bits from the build. 2002-05-16 08:55:59 +00:00
Ruslan Ermilov
83f56d9ae4 Make sure to not yet build the GNU C++, but still allow
for the C++ progs to be built with e.g. an old compiler,
CXX=/usr/bin/c++, for the time being.
2002-05-15 16:29:45 +00:00
Ruslan Ermilov
5d86203733 Rename includes' to buildincludes'.
Rename `incsinstall' to `installincludes'.
Make `includes' a -j safe shortcut for `buildincludes' + `installincludes'.
`buildincludes' and `installincludes' are SUBDIR friendly, if run directly.
2002-05-15 16:19:54 +00:00
Ruslan Ermilov
1fbb6ab569 Restore comment that got lost in revision 1.265. 2002-05-14 08:30:40 +00:00
Ruslan Ermilov
1b690a4832 Do not run includes' and incsinstall' in parallel.
Spotted by:	jhay

Parallel worlds and releases should be working again.
2002-05-14 07:30:40 +00:00
Ruslan Ermilov
c7b111cba8 Added new bsd.incs.mk which handles installing of header files
via INCS.  Implemented INCSLINKS (equivalent to SYMLINKS) to
handle symlinking include files.  Allow for multiple groups of
include files to be installed, with the powerful INCSGROUPS knob.
Documentation to follow.

Added standard `includes' and `incsinstall' targets, use them
in Makefile.inc1.  Headers from the following makefiles were
not installed before (during `includes' in Makefile.inc1):

	kerberos5/lib/libtelnet/Makefile
	lib/libbz2/Makefile
	lib/libdevinfo/Makefile
	lib/libform/Makefile
	lib/libisc/Makefile
	lib/libmenu/Makefile
	lib/libmilter/Makefile
	lib/libpanel/Makefile

Replaced all `beforeinstall' targets for installing includes
with the INCS stuff.

Renamed INCDIR to INCSDIR, for consistency with FILES and SCRIPTS,
and for compatibility with NetBSD.  Similarly for INCOWN, INCGRP,
and INCMODE.

Consistently use INCLUDEDIR instead of /usr/include.

gnu/lib/libstdc++/Makefile and gnu/lib/libsupc++/Makefile changes
were only lightly tested due to the missing contrib/libstdc++-v3.
I fully tested the pre-WIP_GCC31 version of this patch with the
contrib/libstdc++.295 stuff.

These changes have been tested on i386 with the -DNO_WERROR "make
world" and "make release".
2002-05-12 16:01:00 +00:00
David E. O'Brien
428019989d Quiet the peanut gallary and back out magical "breakage". 2002-05-12 13:37:59 +00:00
David E. O'Brien
bd7ce31c9a Turn off groff and gperf -- they will not compile with the in-tree Gcc 3.1. 2002-05-10 00:50:43 +00:00
Dag-Erling Smørgrav
c3bb8639af Add rpcgen to the bootstrap tools. 2002-05-09 20:48:19 +00:00
David E. O'Brien
fdc6a23f0e `beforeinstall' w/the csu bits is a nop. 2002-05-09 20:36:42 +00:00
David E. O'Brien
1b860b61d4 Build our native CSU bits before the compiler-specific ones.
This helps in the compiler build.
2002-05-08 20:35:12 +00:00
David E. O'Brien
ce7c5cc8ef Make NO_CXX, really mean NO_CXX. 2002-05-07 07:49:12 +00:00
Bruce Evans
61e86e72c8 Sorted the directories in the rule for the includes target as much as
possible.
2002-04-30 23:29:00 +00:00
Ruslan Ermilov
8f1f55e9ae Milestone #2 in cross-arch make releases. They now work!
You need to set TARGET_ARCH and possibly TARGET, the same
way you normally do it for a cross build(7).

Renamed `distribworld' to a more natutal `distributeworld'.

Put pwd_mkdb(8) under ${INSTALLTMP}; for `distributeworld'.
2002-04-30 11:50:01 +00:00
Ruslan Ermilov
d6e61d989b Back out part of the revision 1.261: "etc" indeed needs to be
last for "distribute" to succeed -- the "make makedb" part of
the etc/Makefile:distribution target should be the last thing
made.
2002-04-30 11:46:49 +00:00
Ruslan Ermilov
64b06e7897 Make crunchide(1) a cross-tool; needed for cross-arch "make release".
Note that a.out is only supported for the non-cross i386 case.
2002-04-30 09:34:53 +00:00
Ruslan Ermilov
d672a60908 Parallel "make release" fixes. 2002-04-29 15:22:01 +00:00
Ruslan Ermilov
6bde859f40 Milestone #1 in cross-arch make releases.
Do not install games and profiled libraries to the ${CHROOTDIR}
with the initial installworld.

Eliminate the need in the second installworld.  For that, make sure
_everything_ is built in the "world" environment, using the right
tool chain.

Added SUBDIR_OVERRIDE helper stuff to Makefile.inc1.  Split the
buildworld process into stages, and skip some stages when
SUBDIR_OVERRIDE is set (used to build crypto, krb4, and krb5
dists).

Added NO_MAKEDB_RUN knob to Makefile.inc1 to avoid running
makewhatis(1) at the end of installworld (used when making crypto,
krb4, and krb5 dists).

In release/scripts/doFS.sh, ensure that the correct boot blocks are
used.

Moved the creation of the "crypto" dist from release.5 to
release.2.

In release.3 and doMFSKERN, build kernels in the "world"
environment.  KERNELS now means "additional" kernels, GENERIC is
always built.

Ensure we build crunched binaries in the "world" environment.
Obfuscate release/Makefile some more (WMAKEENV) to achieve this.

Inline createBOOTMFS target.

Use already built GENERIC kernel modules to augment mfsfd's
/stand/modules.  GC doMODULES as such.

Assorted fixes:

Get rid of the "afterdistribute" target by moving the single use
of it from sys/Makefile to etc/Makefile's "distribute".

Makefile.inc1: apparently "etc" no longer needs to be last for
"distribute" to succeed.

gnu/usr.bin/perl/library/Makefile.inc: do not override the
"install" and "distribute" targets, do it the "canonical" way.

release/scripts/{man,cat}pages-make.sh: make sure Perl manpages and
catpages appear in the right dists.  Note that because Perl does
not respect the MANBUILDCAT (and NOMAN), this results in a loss of
/usr/share/perl/man/cat* empty directories.  This will be fixed
soon.

Turn MAKE_KERBEROS4 into a plain boolean variable (if it is set it
means "make KerberosIV"), as documented in the make.conf(5)
manpage.  Most of the userland makefiles did not test it for "YES"
anyway.

XXX Should specialized kerberized libpam versions be included into
the krb4 and krb5 dists?  (libpam.a would be incorrect anyway if
both krb4 and krb5 dists were choosen.)

Make sure "games" dist is made before "catpages", otherwise games
catpages settle in the wrong dist.

Fast build machine provided by: Igor Kucherenko <kivvy@sunbay.com>
2002-04-26 17:55:27 +00:00
Gregory Neil Shapiro
b56f8802e5 Despite the fact that it is documented in the handbook, the release notes,
and UPDATING and has been posted to both freebsd-current and
freebsd-stable, users are still not adding the required smmsp user and
group before doing an installworld.  Therefore, don't let users do an
installworld unless they have followed directions.

Add a new installcheck Makefile target which installworld runs before
actually starting the installation.  This target can be used by other parts
of userland as well.  The first addition to the target is to check for the
smmsp user and group if NO_SENDMAIL isn't defined.

Others may add checks to this target as they see fit.

MFC after:	1 week
2002-04-20 19:04:59 +00:00
Ruslan Ermilov
92815c0c3a Sort _startup_libs, _prebuild_libs, and _generic_libs lists alphabetically.
Submitted by:	bde, ru
2002-04-16 14:38:15 +00:00
Ruslan Ermilov
dc173bd818 Keep up with lib/Makefile,v 1.64 (uhh). 2002-04-16 14:35:01 +00:00
Dag-Erling Smørgrav
5de7148cc9 Fix incorrect ordering in previous commit. 2002-04-15 15:31:25 +00:00
Dag-Erling Smørgrav
004e686359 Add libypclnt to the prebuild library list, and record its dependency on
librpcsvc.
2002-04-15 11:31:52 +00:00
Dag-Erling Smørgrav
761139b173 Add libypclnt to the includes target. 2002-04-13 07:24:14 +00:00
Ruslan Ermilov
4d8bba465e Add a tool (and the first application of it) that could be used
to automate building of libraries.

Prodded by:	bde
2002-04-12 19:46:25 +00:00
Ruslan Ermilov
b2490f915f I now don't seem to be able to reproduce the -DNOCLEAN buildworld
breakage with ioctl.c.  The .depend file should track dependencies
just fine, and the worst we can have is to miss new ioctls.

But I still think it's a good idea to have -DNOCLEAN build produce
the same ioctl.c as it would without -DNOCLEAN.

Prodded for a long time by:	bde
2002-04-11 14:49:32 +00:00
Ruslan Ermilov
0445498680 Don't special case i386/pc98, replace it with the smarter logic
of setting ${TARGET} -- make it default to ${MACHINE} if we are
not cross-building, and ${TARGET_ARCH} otherwise.

Set MAKEOBJDIREPREFIX based on ${TARGET}, not on ${TARGET_ARCH}.
This is useful if you want to cross-build pc98 worlds on i386.
2002-04-11 13:43:50 +00:00
Ruslan Ermilov
66002be3e8 Avoid cleaning modules twice in `buildkernel'. 2002-04-08 15:11:29 +00:00