code still applies, but the code attached to it had rotted:
# ../Makefile.inc will put an absolute path to our objdir in CFLAGS.
# Prevent mkdep from using it, so that we don't have to give rules for
# aliases of generated headers.
Many other makefiles seem to have the same bug (i.e., spelling "." as
"${.OBJDIR}" or as an even more complicated alias in -I directives).
The previous commit made things worse by breaking the -j0 case and
moving around the breakage for the -jN case. The fix involves
restoring .ORDER statements that were deleted in the previous commit,
removing wrong special handling of tree-check.h, and rewriting the
generation of fudged dependencies based on an idea I got from the
previous commit (filter out problematic objects first).
/usr/include/sys. Specifically we need /usr/include/machine
since "syslog.h" includes "machine/ansi.h". To be safe we
translate all of /usr/include/* and /usr/include/*/*.
sample error case:
echo "require 'syslog.ph';" | /usr/bin/perl
will fail when syslog.ph tries to include machine/ansi.ph
Submitted by: Doug Ambrisko
Unlike the unisex architecutres we've had so far, mips is bisexual.
These tools can produce either byte sex, and the compiler/make
determines the proper gender to use. Otherwise, we'd have to have had
mipsel and mipseb in all the places that we have just mips. And there
are other complications with doing that (binutils doesn't like to
build mips tools without both byte genders, it seems).
Introduced BINUTIL_ARCH so that other bisexual architectures can a
generic mechanism.
We cannot just define MACHINE_ARCH as mips because we need to
differentiate big and little endian types of binaries. Discussions on
freebsd-arch have hashed out this issue (and the parallel libc
issues). NetBSD is moving towards mipsel and mipseb for their two
flavors of mips ports (in time for 1.4, if this change hasn't already
been accomplished).
I've been building i386 worlds with this tree for a three months with
these files in place with no ill effects.
obj dir is only indirectly related to the location of libtxi.a's obj
dir).
Fixed about 3 style bugs in previous commit.
Fixed my bug in rev.1.7. "../../Makefile.inc" worked as an alias for
"../Makefile.inc" in some cases, but it gives endless recursion when
there is an obj dir in one of the subdirs.
version of makeinfo must be used. The fix breaks bootstrapping of
texinfo by a simple `make' in the texinfo directory -- `make world'
must be used to bootstrap it if you don't know how to do it manually.
Fixed at least 7 style bugs in previous commit.
than ".so". The old extension conflicted with well-established
naming conventions for dynamically loadable modules.
The "clean" targets continue to remove ".so" files too, to deal with
old systems.
o make install ; make install now works
o make all ; make all is quiet the second time
o Dependancies are properliy debugged; this means that make -jN has a
far hihjer likelyhood of working.
o a proper 'link farm' has been constructed for the build. This
dramatically simplifies the dependancy tangle.
o for perldoc's use, all the .pod files are installed.
o the man3 docs are properly compressed.
o the man pages and libary code are installed by the makefiles, not
by a perl script.
o at the end, h2ph is run.
are installed in the same place as on 2.2.*; this will almost
certainly change in the future.
While I'm here, finish off the shared library brouhaha with miniperl.
1) Part of the NOSHARED fix; I messed this up and managed to get
perl installed without being linked to the shared library libperl.so.
This broke Perl in ELF when linking in shared objects.
2) Start of a cleanup of the man3 page location. This will (eventually)
allow for a the ports to put their pages in the "normal" ${PREFIX}-
based location.
3) Nuke cruft.
1) Inspired by JB's finding of a hardcoded /usr/bin/ranlib in the
config files, these have been properly cleaned up and have
been personalised for FreeBSD, not MarkM.
2) Inspired by Peter, copying of the lib/ext etc dirs has been
replaced by a link farm.
3) Common code has been moved to a higher-level Makefile.inc.
This has been tested with a make -j8.
Remove the /usr/bin path to ranlib and just let the build environment
set the path. Running an aout version of ranlib on an elf library
is something we'd prefer not to do. I'm surprised that the build
didn't spit any errors when it did this. Shrug.
1) Fix up the NOSHARED stuff (bde)
2) Accomodate CFLAGS (vanilla)
3) Provide separate files for i386 and alpha (Doug Rabson)
In case 3, the supplied files were corrupted, but the concepts
sound enough, so I just copied what exists into
config.SH-{elf|aout}.{i386|alpha}. Alpha team, go ahead and do what
is necessary on config.SH-elf.alpha. :-)
(Tested by make -j12 buildworld on a 4-cpu SMP box).
Address (but not solve) ELF shareable objects causing perl to
dump core. (I have a heck of a lot to learn about ELF).
Lots of help by: bde, jkh, jb and others