Commit Graph

137 Commits

Author SHA1 Message Date
ru
c038cf79bc 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
obrien
ecb38cbb28 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
imp
d02820933a 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
imp
c1e8fb5735 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
markm
4a699309bd 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
280c812a6f Require USA_RESIDENT to be 'NO' or 'YES' if building secure/
Reviewed by:	marcel
2000-01-19 04:03:48 +00:00
ru
dcbdb5226a 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
ru
797a6a6a89 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
ru
0c446b50ad 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
b3cbdee2df 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
0629c623f1 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
ce97d4e2f1 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
obrien
9beb3f0c14 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
green
337536d08b 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
e3541373f4 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
95725fb615 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
2fa2c9145f 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
markm
fa7f8012ef 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
obrien
5833a81d0d Restore changes I spammed. 1999-12-29 14:47:00 +00:00
obrien
93a4595777 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
828cc41432 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
asami
c8088d2f64 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
asami
26ec75f5d2 Typo (libcrypto -> libcrypt). 1999-12-29 13:33:54 +00:00
kris
9fcc87ee97 Build openssl properly during make world. 1999-12-28 16:22:50 +00:00
marcel
228628f228 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
5576b0e9c7 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
ache
ad08d537b0 Add ${WORLDTMP}/sbin to ${STRICTTMPPATH} - sysctl not found otherwise 1999-12-22 20:27:45 +00:00
marcel
e6efc666b6 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
a01979aae1 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
2fc90b3d39 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
billf
8f0bc716b8 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
62e4ce7669 Add colldef to the list of tools. It's needed on older systems. 1999-12-12 22:24:08 +00:00
marcel
77b901cde4 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
nyan
a83bb7db11 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
42703df3e0 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
5693cc7fec 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
7cd0cfdd77 Remove installworld related settings that I had as a safety-net and
for development. :-/
1999-12-10 11:24:06 +00:00
marcel
10df6826ec 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
97c58bede2 Don't make gdb, objc and f77 when building tools. 1999-12-09 16:40:27 +00:00
marcel
4292393ca2 Make sure the links to the source tree end up in the source tree. 1999-12-09 13:36:16 +00:00
marcel
b361be314c 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
0dee71c6de 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
b7eefd664c Place netgraph entry into alphabetical position
along with the misplaced entries that it was next to.
1999-11-25 20:05:07 +00:00
obrien
c059163dab 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
3d952d61b5 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
85c31833cb 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
865f6a6801 Remove CROSS_MAKE_FLAGS. 1999-11-15 17:07:45 +00:00
marcel
b6a67d6d2b ${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
b2f46323bb install netgraph.h a bit earlier.
Submitted by:	Boris Popov <bp@butya.kz>
1999-10-25 14:50:13 +00:00
bp
35189c6734 Make libncp actually compiled.
Reviewed by:	mdodd
1999-10-14 06:40:46 +00:00