Commit Graph

185 Commits

Author SHA1 Message Date
peter
777c5c6b19 Replace the partial symlink tree to src/sys/* in $OBJDIR/tmp/usr/include
with real copies.  I'm sick of !@#&!^!@#*& mtree chowning directories in
my src/sys/* tree after it follows the symlinks.  I still believe that
mtree is broken for doing this (introduced in mtree.c rev 1.5).
1998-05-27 18:50:01 +00:00
peter
ab64afdbb0 On the other hand, when /usr/bin/as is really a link to objformat, it's not
helpful to stop it running /usr/libexec/aout/as for real while bootstrapping.
Only force a strict path when we really have built all the tools in
$OBJDIR/tmp/usr/libexec/*.
1998-05-27 16:33:43 +00:00
peter
d807759e05 Move objformat after binutils, otherwise we get chicken/egg problems when
building ELF.  It may be that binutils and objformat need to both be moved
earlier in the list though, but that can wait till the dust settles.
1998-05-27 15:40:35 +00:00
sos
7328c8129b Compile & use objformat as it was intended to, I have no idea why
that failed for me before :(
1998-05-27 07:59:37 +00:00
sos
d721e2b3d6 ELF preparation step 2:
Move a.out libraries to /usr/lib/aout to make space for ELF libs.
Make rtld usr /usr/lib/aout as default library path.
Make ldconfig reject /usr/lib as an a.out library path.
Fix various Makefiles for LIBDIR!=/usr/lib breakage.

This will after a make world & reboot give a system that no
longer uses /usr/lib/*, infact one could remove all the old
libraries there, they are not used anymore.

We are getting close to an ELF make world, but I'll let this
all settle for a week or two...
1998-05-26 20:12:56 +00:00
sos
dca8a4e1e6 ELF preparation step 1:
Move our old a.out utils to /usr/libexec/aout.
Enable binutils and put the utils in /usr/libexec/elf
Enable objformat, a little helper program that calls the right
utils based on /etc/objformat and $OBJFORMAT.

This will enable the ELF generating tools.
Remember that this is only step one, the system is still compiled
and run in a.out format ONLY.

Problem left to solve: The BSD manpages wins over the GNU equivalents
as the are installed last. We need to distinguish between the manpages
somehow...
1998-05-25 17:34:42 +00:00
jb
29ab05ede8 Make perl a build tool since it is required during a make depend.
This should fix the problem people have been having with perl/usub.
1998-05-18 03:28:02 +00:00
jb
f79fee3571 Now that FreeBSD/Alpha can be installed on a disk and run on its own,
a bootstrap build under NetBSD is an option.

This makefile will require further changes to ignore aout tools.
1998-05-16 22:20:44 +00:00
bde
dd28c4b6c6 Don't use `&&' in any shell commands here. Using it to give conditional
execution is usually unnecessary in BSD Makefiles because BSD make
invokes shells with -e.  Using it to give conditional execution is
often wrong in BSD makefiles because BSD make joins shell commands
when invoked in certain ways (in particular, as `make -jN').  Example
makefile:
---
clean:
	cd /
	false && true
	rm -rf *		# a dangerous command
---
This should terminate after the `false && true' command fails, but
it doesn't when the commands are joined (`false && true' is a non-
simple command, so -e doesn't cause termination).  The b-maked version:
---
clean:
	cd /
	false; true
	rm -rf *		# a dangerous command
---
terminates after the `false' command fails (`false' is a simple
command, so -e causes termination).  However, for versions of
make like gnu make that don't invoke shells with -e, this change
completely breaks the makefile.

This is one of the fixes for the bug suite that caused `make world'
to sometimes put raw cpp output in .depend files.  Building of cc
sometimes failed, but the failure did not terminate the build
immediately, and various wrong versions of the cc components were
used until one was wrong enough to cause a fatal error.
1998-05-15 17:12:00 +00:00
bde
7821aa1124 Removed share/info from build-tools. It should never have been there,
and became redundant when it was put in SUBDIR, and became bogus when
WORLDTMP was introduced, and became broken when INFODIR was introduced.

PR:		6138
1998-05-10 16:51:07 +00:00
jb
788dbde2f1 Fix the problem people are having building -current on a -stable system.
The headers that are installed in WORLDTMP are part of the interface
that includes libraries like libc, so they must be installed together.
This means that lib-tools and build-tools should be merged. The FreeBSD
build only works in hosted form where it is assumed that the installed
version contains adequate tools to build the latest release.
1998-05-08 21:29:35 +00:00
bde
fbc8b389b9 Added patch to build-tools (now needed to make gdb, sigh).
Pointed out by:	andreas
1998-05-02 12:29:48 +00:00
bde
8761852d6a Don't build dependencies unless NOCLEAN is set. This speeds up
`make world' by about 14% here (down to 4490 seconds real on a
K6/233).  Temporarily skip this optimization when building with
-j, since there are still many broken makefiles.

Fixed NOCLEANDIR option.  Cleaning of `.depend' was broken.

Put -nostdinc in CFLAGS, not in CC, and don't override the default
CC.  This fixes enforcing use of ${WORLDTMP}/usr/include.

Don't install library man pages in ${WORLDTMP}.
1998-04-27 16:21:33 +00:00
jkh
d4e94fca44 Use more reasonable defaults for SUP variables (and print them
correctly) now that sup is long since dead and buried.
1998-04-26 08:40:25 +00:00
andreas
503279d8d4 make includes has to execute "make beforeinstall" in src/lib/libcalendar
as well, otherwise "make depend" during "make buildworld" fails in
usr.bin/ncal
1998-04-25 14:32:22 +00:00
bde
0b7970b0d8 Don't build shared libraries twice for `make world'. This reduces
`make world' times by about 10%.  Use a new `bootstrap-libraries'
target to build just enough (static) libraries to bootstrap the
tools, and delay building of shared libraries until all the tools
have been built.

Fixed `/usr/bin/make world'.  The version of `make' that we buildis
nand use is named "make", not ${MAKE}.
1998-04-24 17:13:33 +00:00
dt
a18fa0b44f Cosmetic: put '@' in front of a very long command. 1998-04-19 13:44:52 +00:00
markm
4bab598bc3 Make the decision to compile kerberosIV a bit more secure by looking
for the appropriate directory.
1998-03-26 17:32:24 +00:00
bde
c6c852fdaf Build the initial `make' in the temporary build tree so that its forced
cleaning doesn't affect the normal copy.  Save a little time by not doing
unnecessary clean, depend nd cleandepend steps.

Reviewed by:	mckay@freebsd.org

Added xargs to build-tools.  It may be used for kdump and truss.
1998-03-19 16:43:19 +00:00
bde
9dc1c6daba Restored an (apparently unnecessary) -B for installing lib-tools.
The install target is -j-unsafe in general, so we use -B for
installing everything in `make world'.
1998-03-16 11:58:46 +00:00
bde
e7a4bdb626 Don't force NOPIC for building tools at all for now, so that some
(slightly stale) shared libraries get installed before non-tools
are linked.  The 2-stage build of the libraries has never really
worked, since we link to the libraries built in the first stage.
1998-03-15 04:52:58 +00:00
bde
cf8edad832 Don't force NOPIC or NOSHARED for building tools in the NOCLEAN case,
so that dirtier-than-previously tools aren't left lying around to be
installed.

Filter out NOPIC from ${MK_FLAGS} for `make ${OBJDIR}' for ld (and
some other things), so that the obj dir for ld/rtld always gets
re-made.

Fixed a literal "make".
1998-03-14 13:58:21 +00:00
bde
d7595452a4 Build all tools shared, and don't build any shared libraries for tools.
Build libraries (for linking the tools to) in a more correct order
(for linking freshly created shared libraries to each other).  This
is probably a no-op now that shared libraries for tools aren't
built, but I didn't test any intermediate versions.  Security-related
directories that are not built by default may now be misordered
for the shared case.

Don't build libcompat specially.  It isn't used for tools, and
shouldn't be used in /usr/src (it is only used for IPXrouted and
crufty games).

Added missing ${.CURDIR} to existence tests for library directories.
Existence tests for top-level directories are still broken.

Test for library directories actually being built, not for directories
above them.
1998-03-13 09:41:58 +00:00
bde
a5d16c9474 compile_et is now used early to build includes for libss, so build it
earlier.  This is probably unnecessary.

Added now-necessary -B for installing headers for libss.

Removed now-unnecessary -B for building cleandepend for rpcgen.
1998-03-12 13:19:59 +00:00
bde
c9fd8b59a9 Fixed missing SHLIBDIR in GCC_EXEC_PREFIX.
Add the path to the source .mk files to the beginning of .MAKEFLAGS
instead of to the end, so that there is more chance of it having
priority.  Additions in /etc/make.conf still have priority for
sub-makes if they are also at the beginning, although this is
probably not wanted for building /usr/src.

Use ${MK_FLAGS} for building dependencies for tools.  This saves
time building dependencies for tools that won't be created (mainly
profiled libraries) and will be necessary to give correct dependencies
when tools are built static.

Spell the object directory as ${OBJDIR} consistently (even when we know
that ${OBJDIR} == "obj").

Print ${DESTDIR} in messages where appropriate.

Fixed some misformattings.
1998-03-12 10:55:02 +00:00
bde
16cac37c9c Separated header creation from header installation in libss. Create
the libss headers before installing them in `make world'.
1998-03-12 10:08:50 +00:00
jb
8b2c959bfa Change the bootstrap makefile inclusion to be general based on the
MACHINE. This lets me play with porting to m68k too. 8-) That is a
good test for portability because MACHINE != MACHINE_ARCH and m68k is
big endian.
1998-02-19 07:34:46 +00:00
nate
4d1a238b56 MF22:
- After the install has been done, but before makedb is run, run
  'ldconfig -R' to pick up new shlib dependencies.

Suggested by:   Amancio and a whole lot of other folks
1998-02-19 00:24:43 +00:00
adam
2e3cbdd972 -DNOTOOLS to not rebuild any tools during buildworld 1998-02-06 09:52:34 +00:00
jb
d840a27224 Test for ${MACHINE} == "alpha" and include the bootstrap makefile instead
of doing the normal build. When the alpha bootstrap is complete (there
is more work to do!), the alpha will build like the i386 does now.
I changed i386 references to ${MACHINE} now that we're multi-architecture.
1998-01-11 04:51:02 +00:00
asami
ff70a34059 Do not use -B in initial build of "make". It doesn't exist in 2.1.x.
Instead, list the targets one per command line.

Reviewed by:	bde
Submitted by:	bde (part)
1997-10-10 13:02:36 +00:00
bde
106166caa7 Removed uneeded ${.MAKEFLAGS} again.
Originally committed in: rev.1.141
Spammed by:	rev.1.149 (mouldy parallel make diffs)
1997-10-07 11:32:05 +00:00
jkh
876355fdf2 Having to review all changes to this file _very_ carefully
led me to find 2 more errors which were there before. :)
1997-10-06 10:21:36 +00:00
jkh
2cc758af33 Hooboy!
Did I ever spam this file good with that last commit.  Despite 3
reviewers, we still managed to revoke the eBones fixes, TCL 8.0 support,
libvgl and a host of other new things from this file in the process of
parallelizing the Makefile.  DOH!   I think we need more pointy hats - this
particular incident is worthy of a small children's birthday party's worth of
pointy hats. ;-)

I certainly intend to take more care with the processing of aged diffs
in the future, even if it does mean reading through 20K's worth of them.
I might also be a bit more anal about asking for more up-to-date changes
before looking at them. ;)
1997-10-06 09:58:11 +00:00
fsmp
ae2207eb79 Removed redundant 'all' arg to " Making Make" target.
Removed "-r RELENG_2_2" from 'update' target.
1997-10-05 22:28:50 +00:00
markm
1e056d1bb5 How the heck did this get back?? 1997-10-05 15:39:47 +00:00
jkh
068b44c29a Changes to support full make parallelism (-j<n>) in the world
target.
Reviewed by:	<many different folks>
Submitted by:	Nickolay N. Dudorov" <nnd@nnd.itfs.nsk.su>
1997-10-05 09:40:24 +00:00
mckay
6be15005c9 When bootstrapping lex, the object directory for lex/lib would be deleted
without being recreated.  A read-only source compile would then fail shortly
afterwards trying to write .depend into the source tree.
1997-09-28 16:25:28 +00:00
markm
3afec9b575 Change for KTH KerberosIV.
-DMAKE_EBONES is changed to -DMAKE_KERBEROS4
1997-09-28 09:26:05 +00:00
jkh
ca976808a0 When making make, do cleandir *before* objdir or we'll end
up with a blown objdir for the depend stage, leaving the
.depend file in ${SRCDIR} instead.
1997-09-26 09:31:41 +00:00
bde
92b5fa2eab Backed out rev.1.136 and rev.1.144. Force SHARED=symlinks in a different
way - for buildworld only.

Rev.1.136 broke the (deprecated) external includes target.  Rev.1.144 was
a half-baked backout of rev.1.136.  It broke SHARED=symlinks for the
buildworld target and installation of subdirs of src/include for the
includes target.
1997-09-16 10:45:41 +00:00
rgrimes
a4f2286865 When calling the src/include Makefile use the shorthand ``all beforeinstall''
inplace of ``all installhdrs symlinks'' so those of us who run with
SHARED=copies get the right results.
1997-09-15 05:58:50 +00:00
peter
a81e877d26 Back out use of -m, since 2.1.x apparently do not have it. (sigh..) 1997-09-05 09:11:24 +00:00
peter
d96a624fe2 Fix the ${BINFORMAT} definition problem during 'make {build}world'. The
wrong switches were being passed to 'make' that caused sys.mk to come from
the /usr/share/mk location but the bsd.*.mk files to come from the
source tree in src/share/mk.  This was bound to break sooner or later.

Submitted by:	Dmitrij Tejblum <dima@tejblum.dnttm.rssi.ru>
1997-08-31 21:06:40 +00:00
peter
911be47572 Remove unneeded ${.MAKEFLAGS} being explicitly passed on via the command
line..

PR:  4368
1997-08-26 14:15:25 +00:00
bde
1a13a01a25 Use new installhdrs target to install tcl includes. 1997-08-25 19:40:53 +00:00
bde
7f4f5fc0a0 Added directories in the includes target so that it installs
everything that a full install would (modulo bugs in rpcsvc/Makefile).
The missing things weren't used (except for mp.h from libmp), but
there are relatively few of them and it's easier to be complete.
1997-08-21 15:43:54 +00:00
bde
810e9b3c4c Restored rev.1.122, which was clobbered by copying from -stable in
rev.1.134.

Split long lines.
1997-08-21 15:16:07 +00:00
peter
270364644d Pass command line args to 'buildworld' and 'installworld' etc. Otherwise
'make -DNOCLEAN world' is completely ignored.
1997-08-18 06:54:18 +00:00
peter
b0cea41941 In the includes target, call the header install target explicitly and then
call the 'symlinks' target to build the /usr/obj/tmp/install/sys tree since
In the includes target, call the header install target explicitly and then
call the 'symlinks' target to build the /usr/obj/tmp/install/sys tree since
we set this up manually earlier, and if we do a 'make all install', we
replace the symlink tree in the obj dirs with new copies of the files
which breaks any chance of -DNOCLEAN working.
1997-08-18 06:44:44 +00:00