aboutsummaryrefslogtreecommitdiff
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* Repo-copy tools/regression/usr.bin/make to tools/build/make_checkHartmut Brandt2005-03-021-1/+1
| | | | | | | | | | | and adjust the path in the Makefile for the upgrade_checks target. These checks are really feature upgrade checks that should be fast and just find out whether we need to build a new make before proceeding with other targets like buildworld. This makes the place free for a real regression test suite in the old place. Notes: svn path=/head/; revision=143032
* Added the convenience "distribution" target which calls theRuslan Ermilov2005-02-271-1/+2
| | | | | | | | | target of the same name from src/etc/Makefile with a proper environment, suitable to be used during upgrades and cross- builds. Notes: svn path=/head/; revision=142644
* Added the "buildenv" target, for developers only!Ruslan Ermilov2005-02-261-1/+1
| | | | | | | | | | CAVEAT: if you run tcsh(1) from within this target, this will reset your PATH making this target mostly useless. Careful! Submitted by: jmg, ru Notes: svn path=/head/; revision=142585
* NOSHARED -> NO_SHAREDRuslan Ermilov2004-12-211-1/+1
| | | | Notes: svn path=/head/; revision=139112
* Start the dreaded NOFOO -> NO_FOO conversion.Ruslan Ermilov2004-12-211-1/+1
| | | | | | | OK'ed by: core Notes: svn path=/head/; revision=139103
* Previous revision didn't fix all cases. For example,Ruslan Ermilov2004-12-161-2/+3
| | | | | | | | | | | | | | | | testing for variables that are always defined (e.g., "make -V CC") would still print a false warning. Fix this by only passing a submake the MAKEOBJDIRPREFIX=* argument if it was present. As a result, we loose the check for -DMAKEOBJDIRPREFIX, or an esoteric "MAKEOBJDIRPREFIX = foo" (with embedded spaces), but these are unorthodox enough to not care about them. The make(1) bug mentioned in the previous revision was just fixed in make/main.c,v 1.109. Notes: svn path=/head/; revision=138921
* Unbreak the MAKEOBJDIRPREFIX variable check by avoiding bugs in make(1).Marcel Moolenaar2004-12-131-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When make flags are passed to make in the environment, the string is chopped up in an (argc,argv) vector. This happens in brk_string() and the chopped up string is stored in static buffer. When this includes something like "-V BINMAKE", then a pointer into the static buffer is put on the variables list for evaluation later. However, brk_string() is used for more than just chopping up the MAKEFLAGS env. variable, so it's very likely that the static buffer is clobbered. In fact, this is exactly what happens. The result is that _MAKEOBJDIRPREFIX gets assigned whatever garbage the child make happens to emit, causing the test to fail. Like this: pluto2% cd /usr/src pluto2% make -V BINMAKE "/q/6.x/src/Makefile", line 94: MAKEOBJDIRPREFIX can only be set in environment, not as a global (in /etc/make.conf) or command-line variable. pluto2% make -dv -V BINMAKE | & grep _MAKEOBJDIRPREFIX Global:_MAKEOBJDIRPREFIX = } The fix is to not use MAKEFLAGS for this, but simple pass the flags as arguments. Ideally make(1) should be fixed but that's beyond the scope of my attention span. This fixes release. Notes: svn path=/head/; revision=138768
* Fix builds with a read-only directory and a make upgrade. This is doneHartmut Brandt2004-12-071-0/+1
| | | | | | | | | | | by forcing the creation of an object directory for the make regression tests. Let make handle the tracking of the dependency and installation of test_shell script. Submitted by: ru Notes: svn path=/head/; revision=138515
* Convert tools/lib32/build.sh into world connectable hooks. This stillPeter Wemm2004-11-061-1/+2
| | | | | | | | | | | | | | | rates pretty high on the "hack!" scale, but it works for me. Adding -DWANT_LIB32 to the world build command line, or 'WANT_LIB32=yes' to /etc/make.conf will include the 32 bit libraries with the build. I have not made this default behavior. Cross compiling this stuff is an adventure I have not investigated. This is still a WIP. We needed this at work so that we could install from a readonly obj tree - lib32/build.sh wasn't up to that. Notes: svn path=/head/; revision=137288
* Fixed MAKEOBJDIRPREFIX variable type check in case the env(1)Ruslan Ermilov2004-10-181-1/+2
| | | | | | | binary is not in PATH, as is the case with installworld, etc. Notes: svn path=/head/; revision=136671
* My take at improving the universe: allow the worlds to beRuslan Ermilov2004-08-181-11/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | built in parallel. Examples: make universe Build worlds sequentially, each world sequentially. make universe JFLAG=-j4 Build worlds sequentially, each world in parallel. make -j4 universe make -j4 universe JFLAG=-j2 Build four worlds in parallel, each world will be built in parallel too. World parallelization is set to four in the first synopsis, and to two in the second. make -j4 universe JFLAG=-B Build worlds in parallel, each world sequentially. ("world" == buildworld followed by buildkernels.) Prayers: obrien, phk Notes: svn path=/head/; revision=133945
* Moved the MAKEOBJDIRPREFIX check from Makefile.inc1 to Makefile,Ruslan Ermilov2004-08-181-0/+6
| | | | | | | | to suppress warnings with installworld and distributeworld when env(1) cannot be found in the PATH. Notes: svn path=/head/; revision=133942
* Make make recurse into sub-directories and sub-makes when givenHartmut Brandt2004-08-091-7/+7
| | | | | | | | | | | | two -n flags. If only one -n flag is given the old behaviour is retained (POLA). In order to make this working for installworld change the IMAKEENV in this case so that the tools are found (we have no temporary installation environment in this case). Submitted by: ru (IMAKEENV part) Notes: svn path=/head/; revision=133376
* The doc team reworked the section of the handbook describing how toKen Smith2004-07-231-1/+1
| | | | | | | | rebuild things, further discouraging 'make world'. The title of that section is now changed... Notes: svn path=/head/; revision=132588
* Rename a preposterously long name with one that might look a bitMark Murray2004-07-181-2/+6
| | | | | | | | | | | more professional. While here, write a few lines of explanatory text to explain what its for. Discussed with: rwatson With hat: core Notes: svn path=/head/; revision=132358
* Add an "out" to the now required BS of defining DESTDIR.David E. O'Brien2004-07-181-1/+1
| | | | Notes: svn path=/head/; revision=132324
* Properly terminate a quoted string in the previous commit. OddlyMarcel Moolenaar2004-07-171-1/+1
| | | | | | | | enough this only seems to cause problems with -jX so went unnoticed until now. Notes: svn path=/head/; revision=132312
* As per discussions on current@, protect unsuspecting users fromMarcel Moolenaar2004-07-161-2/+16
| | | | | | | | | | | | | | trying to upgrade their system with make world instead of following the preferred and suggested sequence of commands. The fact remains that make world does not upgrade the kernel. Allow make world when DESTDIR has been specified, including when DESTDIR specifies the root file system. Otherwise, print a useful warning and fail. Reviewed, tested and scrutinized by: gad@ Notes: svn path=/head/; revision=132234
* Add a JFLAG which can be used to speed up universe:Poul-Henning Kamp2004-07-091-3/+3
| | | | | | | make universe JFLAG=-j12 Notes: svn path=/head/; revision=131876
* Add a kernel-toolchain target which only builds the bits required to buildDag-Erling Smørgrav2004-04-131-1/+1
| | | | | | | | | | a kernel. This is essentially the same as the toolchain target, except that it does not build headers and libraries. Submitted by: ru Notes: svn path=/head/; revision=128189
* Added the `toolchain' top-level target, which builds enough ofRuslan Ermilov2004-03-241-1/+1
| | | | | | | | | | buildworld, up to and including libraries, except for actually building the world. Requested by: many Notes: svn path=/head/; revision=127360
* Protect shell expansions.Ruslan Ermilov2004-03-021-0/+4
| | | | Notes: svn path=/head/; revision=126485
* Add amd64 to universe.Johan Karlsson2004-02-291-1/+1
| | | | | | | Approved by: peter Notes: svn path=/head/; revision=126403
* Change the 'realclean' target name to be 'cleanworld', to match otherGarance A Drosehn2004-02-201-2/+2
| | | | | | | | | targets like buildworld, installworld. Suggested by: obrien Notes: svn path=/head/; revision=126031
* Improvements on the 'make realclean' target. Some are style improvements,Garance A Drosehn2004-02-191-13/+28
| | | | | | | | | | | | | | | | | but the biggest issue is that there are situatons when ${.OBJDIR} == ${.SRCDIR}, and in those situations the previous version would happily remove all your /usr/src while it was cleaning out the objects. Not that *you* would be happy about it... Thanks to bde for immediately noticing this serious possibility. More improvements will be made to this target, but I wanted to commit this safer version right now, before anyone lost their /usr/src due to it. Reviewed by: bde MFC after: 10 days Notes: svn path=/head/; revision=126024
* Add a 'realclean' target, which simply and quickly removes everythingGarance A Drosehn2004-02-161-0/+15
| | | | | | | | | | | | | that was built in previous 'make buildworld' and 'make buildkernel'. The target knows enough to run a 'chflags -R 0' and a second 'rm' if the first 'rm' ran into any errors while removing files. Suggested by: email with Richard Coleman Re: upcoming 64b-time_t changes. Reviewed by: imp, marcel, and others on -hackers MFC after: 1 week Notes: svn path=/head/; revision=125885
* Put on some factor 30+ bikeshed repellent and export the internalPeter Wemm2003-12-091-1/+7
| | | | | | | | | | | | | Makefile.inc1 underscore targets with a big warning that they are intentionally undocumented, subject to change without notice and might poison your dog etc. If you don't know what they are, then they are not meant for you to use. I've added these by hand to so many many trees that I've lost count. I find them rather useful. Notes: svn path=/head/; revision=123311
* Don't allow the 'make' target (which rebuilds make for bootstrapping)Kris Kennaway2003-11-071-1/+1
| | | | | | | | | to become confused by a file called 'make' in /usr/src Submitted by: ru Notes: svn path=/head/; revision=122204
* Retired the "most" and "installmost" targets -- they justRuslan Ermilov2003-10-041-4/+2
| | | | | | | | | | do not have a chance to work nowadays as we have a lot of internal libraries in lib/. Discussed with: marcel, wollman Notes: svn path=/head/; revision=120760
* Cosmetics: folded BITGTS into TGTS.Ruslan Ermilov2003-08-301-2/+3
| | | | Notes: svn path=/head/; revision=119579
* Limit testing for an up-to-date version of make(1) to the world andMarcel Moolenaar2003-08-281-1/+14
| | | | | | | | | | | | | | | | | | | | | | | buildworld targets by default, but allow it to be done for all user targets by introducing a boolean option, named ALWAYS_CHECK_MAKE. This change is by no means perfect and I don't even want to claim this to be a solution. It does however address the fact that not everybody likes to see make(1) rebuilt simply because the regression test failed for some reason or other, including pilot error. It therefore serves the purpose of keeping the crowd happy until we have something better or simply reached a compromise. The reasons for changing the default behaviour are: o It avoids a negative, possibly non-intuitive option, o It's according to POLA and fond of feet, o Only buildworld is documented to do its best to be successful at reasonably cost. Reviewed by: gad, imp, obrien, peter Notes: svn path=/head/; revision=119519
* - Don't print "elf" before printing "make world" (aout support has beenRuslan Ermilov2003-08-061-3/+5
| | | | | | | | | removed). - Avoid using printf(1) where a simple shell's built-in echo is enough. Notes: svn path=/head/; revision=118531
* The `mk' target is long dead.Ruslan Ermilov2003-07-201-1/+1
| | | | Notes: svn path=/head/; revision=117806
* Use an up-to-date make binary in the upgrade_checks target ifRuslan Ermilov2003-07-191-1/+1
| | | | | | | | | | | | one is already available. This avoids sometimes unnecessary step of attempting to rebuild the make binary again which may fail at all if, for example, one has removed his /usr/include before doing an installworld (to keep /usr/include tidied up). Pointed out by: kris, marcel Notes: svn path=/head/; revision=117793
* Don't hardcore PATH into BINMAKE; the latter should only beRuslan Ermilov2003-07-041-2/+2
| | | | | | | | | | | | | | comprised of the path to a make(1) binary (possibly the one built by the "make" target in this Makefile), and a path to a fresh share/mk. The idea is to allow "make release" pick up the right "make" binary, if one exists. This fixes release.5 I broke with the last commit here; the second PATH here was overriding the right one from WMAKEENV while rebuilding the "build-tools" for crunched binaries. Notes: svn path=/head/; revision=117234
* Fixed style bugs related to parentheses in Makefile.inc1.Ruslan Ermilov2003-07-041-2/+3
| | | | | | | | | | Submitted by: bde Fixed nearby bug: propagate the root Makefile's idea of the appropriate "make" binary down to release/Makefile. Notes: svn path=/head/; revision=117229
* Do the upgrade checks quietly.Ruslan Ermilov2003-06-221-2/+2
| | | | Notes: svn path=/head/; revision=116696
* Allow installkernel.debug and reinstallkernel.debug.Hidetoshi Shimokawa2003-06-221-2/+7
| | | | Notes: svn path=/head/; revision=116679
* Kill upgrade target docs. It too is stale.Warner Losh2003-04-031-1/+0
| | | | | | | Submitted by: ru Notes: svn path=/head/; revision=113000
* Kill aout to elf upgrade path. From an old comment in the makefile:Warner Losh2003-04-031-46/+0
| | | | | | | | | | | | | | | # If -DWANT_AOUT is specified, a `make world' with OBJFORMAT=elf will # update the legacy support for aout. This includes all libraries, ld.so # and boot objects. This part of build should be regarded as # deprecated and you should _not_ expect to be able to do this past the # release of 4.0. You have exactly one major release to move entirely # to elf. Now that we're past 5.0, these aren't needed at all anymore and it is well past its freshness date. Notes: svn path=/head/; revision=112999
* Don't make buildworld and buildkernel in parallel.Ruslan Ermilov2003-02-271-0/+1
| | | | | | | | And this is probably what you expect when you say "make -jX buildworld buildkernel". Notes: svn path=/head/; revision=111617
* Don't spam sys/${MACHINE}/conf/ with _.${MACHINE}.makeLINT.Ruslan Ermilov2003-02-191-1/+1
| | | | | | | Submitted by: johan Notes: svn path=/head/; revision=111133
* Fixed universe.Ruslan Ermilov2003-02-191-34/+30
| | | | | | | | Folded pc98 into the common case. Retired ${JFLAG} (``make -jX universe'' should work). Notes: svn path=/head/; revision=111131
* Fix make universe's kernel builds on pc98: We need to pass both ARCHPoul-Henning Kamp2003-02-181-7/+7
| | | | | | | and TARGET_ARCH. Notes: svn path=/head/; revision=111089
* Part 3/3 of unbreaking cross releases:Ruslan Ermilov2003-01-291-12/+16
| | | | | | | | | | | | | | | | | | | | | When we call "distributeworld" as part of "make release", we set MACHINE and MACHINE_ARCH to point to TARGET and TARGET_ARCH; this confused src/Makefile's idea of what ${MAKEPATH}, and consequently ${MAKE}, is (well, it still confuses ${MAKEPATH}, but see below). To overcome this problem, we now take the following approach: - We preserve the make(1)'s idea of its argv[0], ${MAKE}. - We check to see if ${MAKE} passes the regression tests. - If it does, we use it. Otherwise, we build and use an up-to-date make(1). This fix is still not quite right, in a situation where a single /usr/obj is shared between different architecture machines, but it is less critical and I hope to fix that soon. Notes: svn path=/head/; revision=110035
* Minor typo fixes and whitespace cleanups.Jens Schweikhardt2002-12-301-4/+3
| | | | Notes: svn path=/head/; revision=108451
* Build kernels for pc98 just like the other platforms. Also, removeWarner Losh2002-12-141-1/+10
| | | | | | | | | | one space to make the dates line up for easy mental math. # Too bad only i386 and pc98 are the only parts of the universe # currently buildable on my box :-( Notes: svn path=/head/; revision=107884
* Minor, cosmetic change to buildworld output to make it reflectBruce A. Mah2002-12-031-1/+1
| | | | | | | | | | rev. 1.270 more accurately. Reviewed by: ru Approved by: re (jhb) Notes: svn path=/head/; revision=107556
* If /usr/bin/make fails to pass the regression tests, it might notRuslan Ermilov2002-12-021-7/+20
| | | | | | | | | | | | | be suitable for building. The old action here was to upgrade the make in /usr/bin. This is both bogus and does not work under non root. So, rather than overwriting the existing /usr/bin/make, we now install it into a safe location, and use it from there. Reviewed by: imp, marcel Approved by: re (rwatson) Notes: svn path=/head/; revision=107516
* Moved make(1) regression tests from src/Makefile to where theyRuslan Ermilov2002-11-281-28/+4
| | | | | | | | | | belong (src/tools/regression/usr.bin/make), and use the latter to test if make(1) is adequate for building the world. Approved by: re Notes: svn path=/head/; revision=107374