summaryrefslogtreecommitdiffstats
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* Add compat shims for XDEV and XDEV_ARCH so we don't break all theimp2014-07-241-0/+7
| | | | | users of them. Also, add a note to updating. We'll keep these shims at least until the 12 branch.
* Explicitly disable the build of tests when building bmake.jmmv2014-07-131-0/+1
| | | | | | | | | | | | | | | During "make buildworld", building bmake is (one of) the very first steps and we should not be building any of its tests. Conceptually, this is the right thing to do 1) for build simplicity reasons and 2) because there is no need to build any tests this early on. In practice, this fixes tinderbox builds of CURRENT from 9.x when MK_TESTS is enabled. This is because bsd.test.mk needs some modern bmake features not present in 9.x (:tW) and tinderbox is forcing the build to use the CURRENT share/mk files from the very beginning (see r266617). By skipping the build of the tests when still using the host make, we omit the problem. Arguably, what tinderbox is doing is wrong and needs to be addressed, but that is a separate issue.
* Separate out the links creation from the other targets. This wasimp2014-07-101-0/+2
| | | | | | | supposed to have been done for the original commit, but somebody forgot. Pointy-hat-to: imp@
* Remove ia64 from the list of known architectures and add an entry tomarcel2014-07-021-2/+2
| | | | | | | | | | | | UPDATING. This is the first step towards the removal of ia64 from head. A buildworld for ia64 will now yield: % make buildworld make[1]: "/usr/src/Makefile.inc1" line 151: Unknown target ia64:ia64. While here, trim the ia64-specific additions from ObsoleteFiles.inc Discussed at: BSDcan
* grep -L returns non-zero status if none of the files had the patternimp2014-05-101-1/+1
| | | | | | in them. This is often the case, so just ignore the return code. Actual errors that are found will also be detected downstream in the rare cases where the return code is 2 instead of 1.
* We haven't done anything with _UPGRADING in ~forever (was present, butimp2014-05-101-1/+1
| | | | | not needed, in FreeBSD 6.x, and has been absent in newer versions). This was needed to upgrade from 3.x -> 4.x, once upon a time.
* Remove a few more vestiges of allowing WITHOUT_BMAKE to imply you wantimp2014-05-101-11/+4
| | | | to buid with fmake.
* No need to install man pages for bootstrapping new make. Someimp2014-05-061-1/+1
| | | | | | | | | | environments (that I can't reproduce locally, but that others have reported) seem to get tripped up by this man page install. There's really no need to do it, so turn off the man pages using the most portable method. We can't just directly set MK_MAN=no here because we're bootstrapping in the host environment and such a setting was forbidden until very recently. NO_MAN= can produce a warning, but for now the warning is benign.
* Remove support for WITHOUT_BMAKE. bmake is now the only make that canimp2014-05-061-5/+1
| | | | | | | | build world, so it is the only make we build or install. fmake is still in the tree, but disconnected, and upgrades from older systems that still have bmake has not been removed, but its state has not been tested (it should work given how minimal the work to upgrade to bmake is).
* Omit from the universe build all config files tagged withimp2014-04-301-1/+7
| | | | | | | | | | | #NO_UNIVERSE. Many of these config files are important examples, but add little to no regresive value to the intended purpose of UNIVERSE. We now build over 120 kernels during universe. There's really little to no value to this over building say 60 or even 30 of them (either is still a way too big number). This is especially true for kernels that are nothing more than including a common base and adding a static DTB file. Start by pruning 1/3 of the arm kernels that add little regresion value.
* Merge from CheriBSD:brooks2014-04-291-2/+11
| | | | | | | | | | | | | | | | | | | | | | | 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
* Prevent building tests when bootstrapping make.jmmv2014-04-211-1/+2
| | | | | Should fix the breakage reported by tinderbox when WITHOUT_BMAKE is set, which was probably introduced in r263346..
* Document the xdev* targets.brueffer2014-04-141-0/+4
| | | | | | | PR: 188519 Submitted by: Idwer Vollering <vidwer at gmail.com> Reviewed by: bapt MFC after: 1 week
* We no longer support upgrading from FreeBSD 4, so we don't need theimp2014-04-131-2/+1
| | | | | NOMAN and NOSHARED defines here. They have been obsolete for almost a decade anyway.
* Remove support for legacy mips*eb names. Remove tests forimp2014-04-011-14/+0
| | | | TARGET_BIG_ENDIAN.
* Add a new ARM TARGET_ARCH, armv6hf. This is considered experimental.andrew2014-03-231-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | This targets the existing ARMv6 and ARMv7 SoCs that contain a VFP unit. This is an optional coprocessors may not be present in all devices, however it appears to be in all current SoCs we support. armv6hf targets the VFP variant of the ARM EABI and our copy of gcc is too old to support this. Because of this there are a number of WITH/WITHOUT options that are unsupported and must be left as the default value. The options and their required value are: * WITH_ARM_EABI * WITHOUT_GCC * WITHOUT_GNUCXX In addition, without an external toolchain, the following need to be left as their default: * WITH_CLANG * WITH_CLANG_IS_CC As there is a different method of passing float and double values to functions the ABI is incompatible with existing armv6 binaries. To use this a full rebuild of world is required. Because no floating point values are passed into the kernel an armv6 kernel with VFP enabled will work with an armv6hf userland and vice versa.
* Remove the armv6eb architecture as it is unused, and almost certainlyandrew2013-09-221-1/+1
| | | | | | | | 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)
* Further refinement to bmake bootstrappingemaste2013-09-191-5/+5
| | | | | | | | | 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)
* Fix make bootstrapping with WITH_DEBUG_FILES=emaste2013-09-121-1/+1
| | | | | | | | | | | 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)
* During universe/tinderbox export MAKE_JOB_ERROR_TOKEN=nosjg2013-09-061-0/+8
| | | | | | This avoids aborting everything when one kernel fails. Reviewed by: obrien
* Don't let user specified DESTDIR, break building our chosen make.sjg2013-08-171-3/+3
|
* When we need to build using the in-tree make,sjg2013-08-161-6/+9
| | | | | | | switch at the earliest opportunity. In the case of fmake vs bmake, this helps ensure correct load handling. Reviewed by: obrien
* Fix bug in universe where if upgrade_checks wants a new make,sjg2013-07-241-18/+43
| | | | | | | | | 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
* Correct typo specifying jflags.alfred2013-07-071-1/+1
|
* Document tip on how to build all kernels quickly.alfred2013-07-071-0/+6
|
* Flag recursive make targets with .MAKEsjg2013-06-141-0/+6
| | | | | | | | 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
* bmake does not like universe_${target}_prologue in the .ORDERsjg2013-06-031-1/+1
| | | | | | | when there is an explicit dependency for it anyway. Remove it so both bmake and fmake do the same thing. Reviewed by: OBrien
* Make the instruction order for buildworld agree with UPDATING and thecrees2013-05-291-2/+2
| | | | | | | Handbook. Reviewed by: imp, bdrewery, netchild Approved by: gjb (mentor)
* Reverse the sense of the test wrt bmake, and guard againstsjg2013-05-161-1/+1
| | | | MK_BMAKE not being defined.
* If doing buildworld -DWITH_BMAKE make sure bmake does the build.sjg2013-04-121-2/+6
|
* Ensure make -j N universe works correctly, by checking for an up-to-datedim2013-04-091-2/+2
| | | | | | | | | | | | | | | | 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
* When building universe ensure the required worlds are finished beforeandrew2013-03-311-0/+8
| | | | | | | | | | | 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.
* Add the buildLINT convenience target, handy for build automation.marcel2012-11-031-0/+3
| | | | | | | | 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.
* Add support for bmake. This includes:marcel2012-10-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Not all Pmake derivatives silently handle empty shell output, so ensure thereobrien2012-09-121-1/+1
| | | | | | 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.
* Merging of projects/armv6, part 3gonzo2012-08-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | 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>
* Add "hier" as an alternate spelling of "hierarchy" to match hier(9).obrien2012-07-031-1/+1
|
* Assume a big-endian default on MIPS and drop the "eb" suffix from MACHINE_ARCH.jmallett2012-03-291-10/+9
| | | | | | | | | | | | | | | 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.
* Add a kernel-toolchains target like the toolchains target, but building onlyjmallett2012-03-131-0/+4
| | | | the parts of the toolchain necessary to build kernels.
* delete-old does not have delete-old-libs dependency.pluknet2012-02-161-1/+1
| | | | | | | | Reflect this in the comment. PR: conf/163993 Submitted by: Eugen Konkov <kes-kes at yandex ru> MFC after: 3 days
* Replace 'chflags' with 'file flags' in a comment, since 'chflags'gjb2011-11-201-3/+3
| | | | | | | | | | 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
* Fix the note in r227769 to be less specific to the immutable flag.gjb2011-11-201-3/+2
| | | | | | Submitted by: arundel MFC after: 3 days X-MFC-With: r227769
* Add a note to src/Makefile that explains that 'rm' runs twice because thegjb2011-11-201-1/+4
| | | | | | | | | 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
* It's a bit odd, but "make update" in src/ can also update the ports/,ru2011-06-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Disconnect sun4v architecture from the three.attilio2011-05-141-3/+2
| | | | | | | | | 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
* Add the mipsn32eb TARGET_ARCH to the list of mips targets for thejhb2011-04-291-1/+1
| | | | | | XLRN32 kernel config. Reviewed by: imp, jmallet
* If building (custom) FreeBSD images people tend to patch param.h. In casebz2011-04-121-1/+1
| | | | | | | | | | | | 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
* Update recommendation for mergemaster. The -a and -i options are exclusive.dougb2011-04-101-1/+1
| | | | | PR: docs/156271 Submitted by: Fedor Dikarev <fedor.dikarev@gmail.com>
* Improve the distributeworld target in Makefile.inc1 and update the releasenwhitehorn2011-03-021-2/+4
| | | | | | | | | | 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.
* Fully honor KERNSRCDIR for 'make universe' if it is set.jhb2011-03-011-5/+6
| | | | MFC after: 1 week
OpenPOWER on IntegriCloud