aboutsummaryrefslogtreecommitdiff
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* Flag recursive make targets with .MAKESimon J. Gerraty2013-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 Notes: svn path=/head/; revision=251750
* bmake does not like universe_${target}_prologue in the .ORDERSimon J. Gerraty2013-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 Notes: svn path=/head/; revision=251352
* Make the instruction order for buildworld agree with UPDATING and theChris Rees2013-05-291-2/+2
| | | | | | | | | | Handbook. Reviewed by: imp, bdrewery, netchild Approved by: gjb (mentor) Notes: svn path=/head/; revision=251107
* Reverse the sense of the test wrt bmake, and guard againstSimon J. Gerraty2013-05-161-1/+1
| | | | | | | MK_BMAKE not being defined. Notes: svn path=/head/; revision=250719
* If doing buildworld -DWITH_BMAKE make sure bmake does the build.Simon J. Gerraty2013-04-121-2/+6
| | | | Notes: svn path=/head/; revision=249395
* Ensure make -j N universe works correctly, by checking for an up-to-dateDimitry Andric2013-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 Notes: svn path=/head/; revision=249316
* When building universe ensure the required worlds are finished beforeAndrew Turner2013-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. Notes: svn path=/head/; revision=248937
* Add the buildLINT convenience target, handy for build automation.Marcel Moolenaar2012-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. Notes: svn path=/head/; revision=242522
* Add support for bmake. This includes:Marcel Moolenaar2012-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> Notes: svn path=/head/; revision=241298
* Not all Pmake derivatives silently handle empty shell output, so ensure thereDavid E. O'Brien2012-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. Notes: svn path=/head/; revision=240403
* Merging of projects/armv6, part 3Oleksandr Tymoshenko2012-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> Notes: svn path=/head/; revision=239272
* Add "hier" as an alternate spelling of "hierarchy" to match hier(9).David E. O'Brien2012-07-031-1/+1
| | | | Notes: svn path=/head/; revision=238051
* Assume a big-endian default on MIPS and drop the "eb" suffix from MACHINE_ARCH.Juli Mallett2012-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. Notes: svn path=/head/; revision=233644
* Add a kernel-toolchains target like the toolchains target, but building onlyJuli Mallett2012-03-131-0/+4
| | | | | | | the parts of the toolchain necessary to build kernels. Notes: svn path=/head/; revision=232907
* delete-old does not have delete-old-libs dependency.Sergey Kandaurov2012-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 Notes: svn path=/head/; revision=231821
* Replace 'chflags' with 'file flags' in a comment, since 'chflags'Glen Barber2011-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 Notes: svn path=/head/; revision=227771
* Fix the note in r227769 to be less specific to the immutable flag.Glen Barber2011-11-201-3/+2
| | | | | | | | | Submitted by: arundel MFC after: 3 days X-MFC-With: r227769 Notes: svn path=/head/; revision=227770
* Add a note to src/Makefile that explains that 'rm' runs twice because theGlen Barber2011-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 Notes: svn path=/head/; revision=227769
* It's a bit odd, but "make update" in src/ can also update the ports/,Ruslan Ermilov2011-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. Notes: svn path=/head/; revision=223148
* Disconnect sun4v architecture from the three.Attilio Rao2011-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 Notes: svn path=/head/; revision=221869
* Add the mipsn32eb TARGET_ARCH to the list of mips targets for theJohn Baldwin2011-04-291-1/+1
| | | | | | | | | XLRN32 kernel config. Reviewed by: imp, jmallet Notes: svn path=/head/; revision=221216
* If building (custom) FreeBSD images people tend to patch param.h. In caseBjoern A. Zeeb2011-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 Notes: svn path=/head/; revision=220556
* Update recommendation for mergemaster. The -a and -i options are exclusive.Doug Barton2011-04-101-1/+1
| | | | | | | | PR: docs/156271 Submitted by: Fedor Dikarev <fedor.dikarev@gmail.com> Notes: svn path=/head/; revision=220512
* Improve the distributeworld target in Makefile.inc1 and update the releaseNathan Whitehorn2011-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. Notes: svn path=/head/; revision=219177
* Fully honor KERNSRCDIR for 'make universe' if it is set.John Baldwin2011-03-011-5/+6
| | | | | | | MFC after: 1 week Notes: svn path=/head/; revision=219137
* - Add a new UNIVERSE_TARGET variable for 'make universe'. If it is set,John Baldwin2011-02-101-8/+17
| | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=218524
* Setting TARGET and TARGET_ARCH needs to be done in _MAKE, not in theWarner Losh2011-02-021-2/+2
| | | | | | | TGTS rule as _MAKE is used elsewhere. This should fix make world. Notes: svn path=/head/; revision=218206
* Move the architecture guessing from Makefile.inc1 to Makefile. WeWarner Losh2011-01-311-2/+33
| | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=218130
* Back out r217734. [1]Bjoern A. Zeeb2011-01-251-2/+3
| | | | | | | | | | | | 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 Notes: svn path=/head/; revision=217815
* For `make tinderbox` there is no need to print the extra commands.Bjoern A. Zeeb2011-01-231-2/+2
| | | | | | | MFC after: 5 days Notes: svn path=/head/; revision=217754
* Make `make tinderbox` work with MAKEOBJDIRPREFIX set (or in possibly otherBjoern A. Zeeb2011-01-221-1/+1
| | | | | | | | | | | 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 Notes: svn path=/head/; revision=217735
* In `make targets` print the make variable TARGETS as we expect it ratherBjoern A. Zeeb2011-01-221-1/+1
| | | | | | | | than the grammatically better sounding variant without the 'S'. This allows copy and paste and is less confusing. Notes: svn path=/head/; revision=217734
* Properly document what the top-level `make tinderbox` does.Bjoern A. Zeeb2011-01-221-1/+2
| | | | | | | | | Reviewed by: jmallett MFC After: 3 days X-MFC: build.7 only Notes: svn path=/head/; revision=217733
* Provide up-to-date estimates that are pessimal today...Warner Losh2011-01-121-1/+2
| | | | Notes: svn path=/head/; revision=217297
* Proving once again, I can't typo: fix a type.Warner Losh2011-01-111-1/+1
| | | | Notes: svn path=/head/; revision=217294
* Minor improvements in the wording of a comment. Document tinderbox target.Warner Losh2011-01-111-1/+3
| | | | Notes: svn path=/head/; revision=217273
* make targetsWarner Losh2011-01-071-1/+10
| | | | | | | | | | | | This produces a list of currently supported targets. Here "supported" means "built in make universe" on the theory that those targets are more supported than any that might work in 'make buildworld TARGET=x TARGET_ARCH=y' since the latter are less tested. Suggested by: rwatson Notes: svn path=/head/; revision=217125
* Retire TARGET_ABI.Warner Losh2011-01-071-1/+1
| | | | | | | | | | | | | | | | | | Implement MACHINE_ARCH=mips64e[lb] to build N64 images. This replaces MACHINE_ARCH=mipse[lb] TARGET_ABI=n64. MACHINE_ARCH=mipsn32e[lb] has been added, but currently requires WITHOUT_CDDL due to atomic issues in libzfs. I've not investigated this much, but implemented this to preserve as much of the TARGET_ABI functionality that I could. Since its presence doesn't affect the working cases, I've kept it in for now. Added mips64e[lb] to make universe, so more kernels build. And I think this (finally) closes the curtain on the tbemd tree. Notes: svn path=/head/; revision=217123
* When TARGET_ARCH_${kernel} gets set, it is using the host's config,Warner Losh2011-01-031-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | not the one we build as part of make world. This means that make universe will fail if building on a too-old current or any stable system prior to a few days ago in weird ways (parse errors from shell). This copes with these old systems in two ways: (1) Works around the WARNING: issue by filtering all warnings that sneak onto stdout. (2) if TARGET_ARCH_${kernel} winds up being empty, then we error out immediately with a semi-useful error message. This usually comes from config not groking -m. Ideally, we'd use a buildworld's config here, but that's tricky, so I'll leave that detail to others to fix (it has to be done post make world for the arch rather than at the top level makefile). This should make 'make universe' usable from recent 8-stable systems (recent == last few months or so) for building -current. They have -m, but spewed warnings out stdout. Older systems will now at least get a firm error early rather than a confusing error late. Notes: svn path=/head/; revision=216934
* Redirect stderr from config to /dev/null. config -m is printing lotsWarner Losh2010-12-241-2/+2
| | | | | | | | of annoying warnings when dealing with arm. The arm config files need to be fixed, but this restricts the output to a more useful place. Notes: svn path=/head/; revision=216685
* Reconnect arm to the universe build, and connect big-endian MIPS and ARMNathan Whitehorn2010-12-181-7/+29
| | | | | | | | | | and powerpc64 to universe for the first time. In general, provide (slightly hacky) knowledge of multi-architecture TARGETs to universe as well as the ability to distinguish the correct toolchain for a given kernel using config -m. Notes: svn path=/head/; revision=216520
* Pass JFLAG as JFLAG from tinderbox to universe. This gives the sameJohn Baldwin2010-12-161-1/+1
| | | | | | | | | | | | semantics for JFLAG with tinderbox as for universe. Previously doing 'make JFLAG=-j4 tinderbox' was equivalent to 'make -j4 universe' (i.e. 4 worlds in parallel) rather than 'make JFLAG=-j4 universe' (i.e. worlds in sequence, each built with -j4). MFC after: 1 month Notes: svn path=/head/; revision=216487
* Add mips back to universeWarner Losh2010-11-131-1/+1
| | | | Notes: svn path=/head/; revision=215271
* Complete the integration of tbemd branch into head.Warner Losh2010-11-101-1/+1
| | | | | | | | | | | | | | | | | | | TARGET_BIG_ENDIAN is now completely dead, except where it was originally supposed to be used (internally in the toolchain building). TARGET_ARCH has changed in three cases: (1) Little endian mips has changed to mipsel. (2) Big endian mips has changed to mipseb. (3) Big endian arm has changed to armeb. Some additional changes are needed to make 'make universe' work on arm and mips after this change, so those are commented out for now. UPDATING information will be forthcoming. Any remaining rough edges will be hammered out in -current. Notes: svn path=/head/; revision=215082
* Connect FDT infrastructure to the build system.Rafal Jaworowski2010-06-131-1/+2
| | | | | | | | Reviewed by: imp Sponsored by: The FreeBSD Foundation Notes: svn path=/head/; revision=209128
* For those of us mere mortals who do not aspire to the lofty heightsDoug Barton2010-03-181-0/+2
| | | | | | | | of kernel hackery, add MAKE_JUST_WORLDS so that we can take part in the 'make universe' goodnes without using unecessary time and resources. Notes: svn path=/head/; revision=205290
* Give make kernel-toolchain a one-liner here. Although documented inWarner Losh2010-03-031-0/+1
| | | | | | | build(7), many people look here for a quick reminder... Notes: svn path=/head/; revision=204661
* Back out the change to Makefile made in r202628.Ed Schouten2010-01-191-1/+1
| | | | | | | | It was just a local modification to build the i386 and amd64 more quickly. Notes: svn path=/head/; revision=202629
* Recommit r193732:Ed Schouten2010-01-191-1/+1
| | | | | | | | | | | | | | | | | | | Remove __gnu89_inline. Now that we use C99 almost everywhere, just use C99-style in the pmap code. Since the pmap code is the only consumer of __gnu89_inline, remove it from cdefs.h as well. Because the flag was only introduced 17 months ago, I don't expect any problems. Reviewed by: alc It was backed out, because it prevented us from building kernels using a 7.x compiler. Now that most people use 8.x, there is nothing that holds us back. Even if people run 7.x, they should be able to build a kernel if they run `make kernel-toolchain' or `make buildworld' first. Notes: svn path=/head/; revision=202628
* Rather than using an extra variable, only call uname if really needed andBjoern A. Zeeb2010-01-111-2/+3
| | | | | | | | | | | then directly assign the result. Submitted by: jmallett MFC after: 24 days X-MFC with: r201815 Notes: svn path=/head/; revision=202095