Commit Graph

427 Commits

Author SHA1 Message Date
bdrewery
4d3c809df9 MFC r291605:
Fix errors being ignored in many phases of the build since the bmake
  integration.
2015-12-08 00:27:35 +00:00
bdrewery
28f8b6600d MFC r289360,r289361,r289378,r289430,r289605,r289676:
r289360:
    Add temporary workaround for .MAKE being applied to _worldtmp, since
    r251750.
  r289361:
    Consider top-level targets to be .PHONY as bmake won't build them otherwise
    if a file with the same name is found in the directory.
  r289378:
    Mark sub-make targets as .MAKE and .PHONY to handle -n and always-build
    properly.
  r289430:
    Remove .MAKE from targets that do more than just run sub-makes, such as
    calling rm or mtree.
  r289605:
    Add missing .PHONY for parallel subdir target.
  r289676:
    Add some missing '+', .MAKE, and .PHONY modifiers.
2015-12-04 17:56:10 +00:00
bdrewery
3ce05314f3 MFC r288391:
Fix the .MAKE added in r251750 to properly support the historical -n -n.
2015-10-13 18:44:55 +00:00
garga
a669f5aa38 MFC r270155, r274490, r274593, r274607
Add native-xtools target to stable/10

Differential Revision:	https://reviews.freebsd.org/D2044
Reviewed by:	sbruno@
Approved by:	sbruno@
Sponsored by:	Netgate
2015-04-21 17:02:55 +00:00
ian
03177641a0 MFC r265840: Eliminate spurious warnings when grep doesn't find NO_UNIVERSE 2014-12-27 03:20:34 +00:00
ian
1facc10d63 MFC 265155, 265254:
Omit from the universe build all config files tagged with #NO_UNIVERSE.

  Add FDT to the VYBRID kernel.
2014-05-18 00:21:14 +00:00
brooks
acc2cc1958 MFC r265097:
Merge from CheriBSD:

commit 1d1b908107255ffdff4d17f015d8f057d73cc6cb
Author: Brooks Davis <brooks@one-eyed-alien.net>
Date:   Fri Mar 28 16:24:45 2014 +0000

    Add a long needed seatbelt.

    Exit with an error when make is called without a target at the top level
    rather than poluting the source tree and causing use confusion in future
    builds.

commit a9d9aa341b2f4308a227ab460ba85f1f287ad028
Author: Brooks Davis <brooks@one-eyed-alien.net>
Date:   Tue Apr 29 16:06:12 2014 +0000

    Simplify seatbelt added in 1d1b908 based in feedback.

    Discussed with:     imp@FreeBSD.org

Reviewed by:	imp
Sponsored by:	DARPA, AFRL
2014-05-06 14:38:03 +00:00
jmmv
1e4589b921 MFC various moves of tools/regressions/ tests to the new infrastructure.
- r263220 Migrate tools/regression/sbin/ to the new tests layout.
- r263222 Add Makefile missed in r263220.
- r263226 Migrate tools/regression/{usr.bin/lastcomm,usr.sbin}/ to the new tests layout.
- r263227 Migrate most of tools/regression/usr.bin/ to the new tests layout.
- r263345 Expand tabs that sneaked in into spaces.
- r263346 Migrate tools/regression/usr.bin/make/ to the new tests layout.
- r263348 Add Makefiles missed in r263346.
- r263351 Migrate tools/regression/usr.bin/pkill/ to the new tests layout.
- r263388 Mark multi_test as requiring /usr/share/dict/words.
- r263814 Fix path to the run.pl script to let these tests run.
- r264742 Prevent building tests when bootstrapping make.

This is 'make tinderbox' clean.
2014-04-27 01:15:10 +00:00
brueffer
d9a1a7c7fb MFC: r264460
Document the xdev* targets.

PR:		188519
Submitted by:	Idwer Vollering <vidwer at gmail.com>
Reviewed by:	bapt
2014-04-23 09:27:11 +00:00
andrew
79894c6080 Remove the armv6eb architecture as it is unused, and almost certainly
broken. None of our kernels can boot armv6eb. The little-endian kernels do
not have the required code to be able to switch endian when running a
big-endian executable.

Approved by:	re (gjb)
2013-09-22 07:30:17 +00:00
emaste
a54f6a9645 Further refinement to bmake bootstrapping
Include PROGNAME and DESTDIR in ${MMAKE} so that it doesn't need to be
passed to each make invocation.

Suggested by:	hrs
Reviewed by:	hrs
Approved by:	re (gjb)
2013-09-19 20:09:56 +00:00
emaste
d9412a6c2d Fix make bootstrapping with WITH_DEBUG_FILES=
A HEAD buildworld on 9.x first bootstraps bmake, but this failed when
building with standalone debug.  Pass in the PROGNAME override to the
'make all' stage as well as 'make install' so that the .debug file is
created with the correct name.

Reviewed by:	sjg
Sponsored by:	The FreeBSD Foundation
Approved by:	re (rodrigc)
2013-09-12 00:23:09 +00:00
sjg
4a6a9b0a75 During universe/tinderbox export MAKE_JOB_ERROR_TOKEN=no
This avoids aborting everything when one kernel fails.

Reviewed by:	obrien
2013-09-06 02:57:15 +00:00
sjg
323981dede Don't let user specified DESTDIR, break building our chosen make. 2013-08-17 04:41:35 +00:00
sjg
750a378414 When we need to build using the in-tree make,
switch at the earliest opportunity.
In the case of fmake vs bmake, this helps ensure correct load handling.

Reviewed by: obrien
2013-08-16 16:26:23 +00:00
sjg
25bd9fd1d5 Fix bug in universe where if upgrade_checks wants a new make,
it gets built 16 times in parallel in the same location.
While we are at it, until we finish getting rid of fmake,
be explicit about the make we want to use, thus avoid the problem
of the temp make being the wrong version.

Reviewed by:	obrien
2013-07-24 17:55:08 +00:00
alfred
c7a08860c7 Correct typo specifying jflags. 2013-07-07 20:44:04 +00:00
alfred
0d897a2a05 Document tip on how to build all kernels quickly. 2013-07-07 20:39:11 +00:00
sjg
a6ae521803 Flag recursive make targets with .MAKE
so that job token pipe is passed to them.
To avoid surprising anyone, only add .MAKE to ${TGTS} when -n
has not been specified (at least for Makefile).

Reviewed by:	obrien
2013-06-14 16:30:11 +00:00
sjg
0ffaee9c19 bmake does not like universe_${target}_prologue in the .ORDER
when there is an explicit dependency for it anyway.
Remove it so both bmake and fmake do the same thing.

Reviewed by:	OBrien
2013-06-03 23:51:46 +00:00
crees
d095ed802f Make the instruction order for buildworld agree with UPDATING and the
Handbook.

Reviewed by:	imp, bdrewery, netchild
Approved by:	gjb (mentor)
2013-05-29 19:16:59 +00:00
sjg
70d21b25e5 Reverse the sense of the test wrt bmake, and guard against
MK_BMAKE not being defined.
2013-05-16 21:26:46 +00:00
sjg
5f0af63a3f If doing buildworld -DWITH_BMAKE make sure bmake does the build. 2013-04-12 00:34:19 +00:00
dim
777e0f8e3a Ensure make -j N universe works correctly, by checking for an up-to-date
make before starting the universe targets themselves.  Otherwise, all of
the targets would attempt to build make simultaneously, overwriting each
other's copies of the make object files and executable.  This could lead
to strange errors, for example when partially-written make executables
are invoked.

Also amend r216620, to make the rest of universe wait properly until the
upgrade_checks target is finished, by adding universe_${target}_prologue
to the .ORDER target.  Otherwise, make will be too smart for its own
good, and start building the universe targets simultaneously with the
prologues anyway.

MFC after:	1 week
2013-04-09 20:21:35 +00:00
andrew
0e1ccb44c5 When building universe ensure the required worlds are finished before
starting the kernels. Before this the kernels would be built as part of the
last architecture universe target. There can cause problems when this world
finishes before the other worlds as the host compiler may be picked up
rather than the target compiler.

The solution is to add a target to build the universe kernels that depends
on all the world targets finishing. As we may not be building a world only
depend on it when MAKE_JUST_KERNELS is undefined.
2013-03-31 02:03:34 +00:00
marcel
05bf457ab4 Add the buildLINT convenience target, handy for build automation.
The automation can set TARGET_ARCH and TARGET and then make various
top-level targets, including buildLINT and buildkernel (with
KERNCONF=LINT). Previously there was no way to generate the LINT
kernel configuration without having to do something exceptionally
painful.
2012-11-03 20:43:12 +00:00
marcel
52e7fd7c54 Add support for bmake. This includes:
1.  Don't do upgrade_checks when using bmake. As long as we have WITH_BMAKE,
    there's a bootstrap complication in ths respect. Avoid it. Make the
    necessary changes to have upgrade_checks work wth bmake anyway.
2.  Remove the use of -E. It's not needed in our build because we use ?= for
    the respective variables, which means that we'll take the environment
    value (if any) anyway.
3.  Properly declare phony targets as phony as bmake is a lot smarter (and
    thus agressive) about build avoidance.
4.  Make sure CLEANFILES is complete and use it on .NOPATH. bmake is a lot
    smarter about build avoidance and should not find files we generate in
    the source tree. We should not have files in the repository we want to
    generate, but this is an easier way to cross this hurdle.
5.  Have behavior under bmake the same as it is under make with respect to
    halting when sub-commands fail. Add "set -e" to compound commands so
    that bmake is informed when sub-commands fail.
6.  Make sure crunchgen uses the same make as the rest of the build. This
    is important when the make utility isn't called make (but bmake for
    example).
7.  While here, add support for using MAKEOBJDIR to set the object tree
    location. It's the second alternative bmake looks for when determining
    the actual object directory (= .OBJDIR).

Submitted by:	Simon Gerraty <sjg@juniper.net>
Submitted by:	John Van Horne <jvanhorne@juniper.net>
2012-10-06 20:01:05 +00:00
obrien
2cda43d113 Not all Pmake derivatives silently handle empty shell output, so ensure there
is something for make(1) to consume.  Bmake gives output such as:
   "warning: Couldn't read shell's output for "/bin/sh -c true"
Note we parted from traditional Pmake behavior in r18864 / r18255.
2012-09-12 14:44:25 +00:00
gonzo
b501ab9dc9 Merging of projects/armv6, part 3
r238211:
Support TARGET_ARCH=armv6 and TARGET_ARCH=armv6eb

This adds a new TARGET_ARCH for building on ARM
processors that support the ARMv6K multiprocessor
extensions.  In particular, these processors have
better support for TLS and mutex operations.

This mostly touches a lot of Makefiles to extend
existing patterns for inferring CPUARCH from ARCH.
It also configures:
 * GCC to default to arm1176jz-s
 * GCC to predefine __FreeBSD_ARCH_armv6__
 * gas to default to ARM_ARCH_V6K
 * uname -p to return 'armv6'
 * make so that MACHINE_ARCH defaults to 'armv6'
It also changes a number of headers to use
the compiler __ARM_ARCH_XXX__ macros to configure
processor-specific support routines.

Submitted by:	Tim Kientzle <kientzle@freebsd.org>
2012-08-15 03:21:56 +00:00
obrien
e132be1d9e Add "hier" as an alternate spelling of "hierarchy" to match hier(9). 2012-07-03 06:41:00 +00:00
jmallett
4544b2987d Assume a big-endian default on MIPS and drop the "eb" suffix from MACHINE_ARCH.
This makes our naming scheme more closely match other systems and the
expectations of much third-party software.  MIPS builds which are little-endian
should require and exhibit no changes.  Big-endian TARGET_ARCHes must be
changed:
	From:		To:
	mipseb		mips
	mipsn32eb	mipsn32
	mips64eb	mips64

An entry has been added to UPDATING and some foot-shooting protection (complete
with warnings which should become errors in the near future) to the top-level
base system Makefile.
2012-03-29 02:54:35 +00:00
jmallett
f4fbc695fe Add a kernel-toolchains target like the toolchains target, but building only
the parts of the toolchain necessary to build kernels.
2012-03-13 00:38:49 +00:00
pluknet
e0d1bce11d delete-old does not have delete-old-libs dependency.
Reflect this in the comment.

PR:		conf/163993
Submitted by:	Eugen Konkov <kes-kes at yandex ru>
MFC after:	3 days
2012-02-16 14:08:14 +00:00
gjb
d19e8d9a37 Replace 'chflags' with 'file flags' in a comment, since 'chflags'
is a command, not a flag itself.

While here, wrap a line for readability.

Submitted by:		arundel
MFC after:		3 days
X-MFC-With:		227769, 227770
2011-11-20 20:05:47 +00:00
gjb
4cbcc15d99 Fix the note in r227769 to be less specific to the immutable flag.
Submitted by:		arundel
MFC after:		3 days
X-MFC-With:		r227769
2011-11-20 19:27:52 +00:00
gjb
46ca9e75dd Add a note to src/Makefile that explains that 'rm' runs twice because the
second invocation only needs to operate on files with the immutable flag
set.

Submitted by:		arundel (via private email) (original version)
Discussed on:		-toolchain@
MFC after:		3 days
2011-11-20 19:05:32 +00:00
ru
3fa3d79859 It's a bit odd, but "make update" in src/ can also update the ports/,
doc/, and now www/ trees, but only using the "cvsup" transport.

When "make update" is run using a tree's makefile, it can also use
"cvs" (except for www/) and "svn" (only src/).

Clean up documentation and code regarding "make update":

- Increase oddness by adding support for WWWSUPFILE and NO_WWWUPDATE to
  Makefile.inc1 (analogous to PORTSSUPFILE/NO_PORTSUPDATE and
  DOCSUPFILE/NO_DOCUPDATE; WWWSUPFILE already supported by www/Makefile).

- Document all trees that support CVS_UPDATE.

- Document all trees that support SUP_UPDATE.

- Document SVN_UPDATE.

- Document NO_WWWUPDATE.

- make.conf(5) mistakenly said that *SUPFILE* had defaults.

- Add an example entry for WWWSUPFILE.
2011-06-16 12:28:37 +00:00
attilio
96139278ce Disconnect sun4v architecture from the three.
Some files keep the SUN4V tags as a code reference, for the future,
if any rewamped sun4v support wants to be added again.

Reviewed by:	marius
Tested by:	sbruno
Approved by:	re
2011-05-14 01:53:38 +00:00
jhb
67e72142a1 Add the mipsn32eb TARGET_ARCH to the list of mips targets for the
XLRN32 kernel config.

Reviewed by:	imp, jmallet
2011-04-29 18:27:50 +00:00
bz
d47989ee77 If building (custom) FreeBSD images people tend to patch param.h. In case
this happens just before the build is started (within the same second)
CHECK_TIME actually triggers thinking param.h is in the future (see f_Xtime,
c_Xtime logi in find(1) sources for the details in !F_EXACTTIME case).
Using the -mtime -0s (seconds, rather than no unit) avoids this 1s race.

Submitted by:	ed (2009-05-03)
Reviewed by:	cperciva (2009-05-03), emaste
Tested by:	bz (for almost two years)
MFC after:	4 days
2011-04-12 02:07:23 +00:00
dougb
f272389b99 Update recommendation for mergemaster. The -a and -i options are exclusive.
PR:		docs/156271
Submitted by:	Fedor Dikarev <fedor.dikarev@gmail.com>
2011-04-10 03:53:06 +00:00
nwhitehorn
a8c9f18299 Improve the distributeworld target in Makefile.inc1 and update the release
infrastructure to use it. make distributeworld can now be used without
preparing its environment first and installs games into its distribution
using the regular make distribute logic instead of post-processing with
a script.

Also add two new targets, packageworld and packagekernel, that tar up the
results of distributeworld and distributekernel (also new), respectively.
2011-03-02 14:39:26 +00:00
jhb
e8017b8cea Fully honor KERNSRCDIR for 'make universe' if it is set.
MFC after:	1 week
2011-03-01 14:54:14 +00:00
jhb
5316147f1e - Add a new UNIVERSE_TARGET variable for 'make universe'. If it is set,
then that target is invoked for each architecture rather than the
  default action of building world and kernels for each architecture.
- Add a 'make toolchains' wrapper which uses UNIVERSE_TARGET to build
  toolchains for all architectures.
- Document JFLAG, MAKE_JUST_KERNELS, and MAKE_JUST_WORLDS variables for
  'make universe'.

Reviewed by:	bz
MFC after:	1 week
2011-02-10 18:54:52 +00:00
imp
c70bfd860a Setting TARGET and TARGET_ARCH needs to be done in _MAKE, not in the
TGTS rule as _MAKE is used elsewhere.  This should fix make world.
2011-02-02 23:59:24 +00:00
imp
2131e19013 Move the architecture guessing from Makefile.inc1 to Makefile. We
need to do this because variables specified on the command line
override those specified in the Makefile.  This is why we also moved
from TARGET to _TARGET in Makefile, and then set TARGET on the command
line when we fork a submake with Makefile.inc1.

This makes mips/mips work again, even without the workaround committed to
lib/libc/Makefile.
2011-01-31 15:17:47 +00:00
bz
ab3c671599 Back out r217734. [1]
Properly document what `make targets` is supposed to list to avoid
further confusion given the place the target sits. Should have happened
with r217125.

Requested by:	imp [1]
Reviewed by:	rwatson
2011-01-25 08:13:31 +00:00
bz
4bf4793433 For make tinderbox there is no need to print the extra commands.
MFC after:	5 days
2011-01-23 16:28:44 +00:00
bz
9eac5e09d6 Make make tinderbox work with MAKEOBJDIRPREFIX set (or in possibly other
combinations) by forcing FAILFILE into .CURDIR as we do for all other
universe output files. [1]  Similarly make FAILFILE start with "_." as well.

Reviewed by:	silence-on-src [1]
MFC after:	6 days
2011-01-22 23:16:44 +00:00
bz
199e86369e In make targets print the make variable TARGETS as we expect it rather
than the grammatically better sounding variant without the 'S'.  This
allows copy and paste and is less confusing.
2011-01-22 23:10:58 +00:00