summaryrefslogtreecommitdiffstats
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
* Per weak consensus on this topic, remove suggestion to setimp2006-06-221-3/+0
| | | | | | | | | | | HISTORICAL_MAKE_WORLD from the text that's output. This was committed against the previous consensus. Leave the documentation in this file as a compromose. The HISTORICAL_MAKE_WORLD knob is intentionally obfuscated and we only trust people smart enough to read the Makefile to use it. All others have no business using it due to its danger, unless DESTDIR is set. Dissentors: grog, obrien, trhodes
* Note a short-cut in the build procedure.obrien2006-06-211-0/+1
|
* Simply running ``make world'' will bomb unless you dig up thetrhodes2006-06-071-2/+3
| | | | | | | | | undocumented HISTORICAL_MAKE_WORLD variable and set it. Note it here so the blow up will not really be a surprise to people who read. Link the buildingworld chapter of our handbook in the README while I'm here.
* Create a new target 'buildenvvars'. This target reports the buildimp2006-06-061-3/+3
| | | | | | | | | | | environment for cross building (the same one you'd get interactively in make buildenv). This cannot be a simple make -f Makefile.inc1 -V WMAKEENV because in PATH is not set correctly unless one takes a trip through the Makefile/Makefile.inc1 indirection, the logic of which is too large to reproduce outside of Makefiles.
* Connect the kernel subsystem API documentation generation framework tonetchild2006-05-261-4/+5
| | | | | | | | the build infrastructure: "make doxygen" Changes to the man pages will be made when some defaults are revisited. Requested by: gnn
* Disconnect Alpha from 'make universe'.jhb2006-05-111-1/+1
|
* Add the new "showconfig" target that displays build configuration.ru2006-03-181-1/+1
| | | | Suggested by: phk
* Make ${SUBDIR_TARGETS} work at the uppermost level as well.ru2006-03-151-0/+1
|
* Do not discard the current value of __MAKE_CONF when testingyar2006-03-011-2/+2
| | | | | | | whether MAKEOBJDIRPREFIX is set at a wrong place. Reviewed by: ru MFC after: 3 days
* Fix a bug in previous revision: skip LINT if it exists, not NOTESru2005-11-281-1/+1
| | | | (the source for LINT), as I initially intended.
* universe: don't attempt to compile DEFAULTS and don't compile LINT twice.ru2005-11-281-1/+2
|
* Add delete-old and delete-old-libs targets:netchild2005-07-231-12/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - removes obsolete files/dirs or libraries. - works in interactive (default) and batch mode - respects DISTDIR - documented in UPDATING and build(7) The head of the file ObsoleteFiles.inc contains instructions how to add obsolete files/dirs/libs to the list. Obviously one should add obsolete files to this list, when he removes a file/dir/lib from the basesystem. Additionally add check-old target: - allows re@ to check if a file on the obsolete list resurfaces Design goals: - allows full control by the user (default interactive mode) - possibility of scripted removal of obsolete files (batch mode) - opt-in removal of files (explicit list of files) - seperate removal of libs (2 delete targets) Important design decissions: - structured list of files to remove instead of a plain text file: * allows to remove additional files if a NO_foo knob is specified without the need to change the targets (no NO_foo knob is respected yet) - not using mtree like NetBSD does: * mtree doesn't has an interactive mode Discussed on: arch (long ago), current (this year) Additional input from: re (hrs) Approved by: mentor (joerg)
* - Embed the "buildkernels" target into the "universe" target so thatru2005-07-191-12/+11
| | | | | | | the "make -n universe" output looks more builder (human) friendly. - Wrap the "universe" target into a ".if make(universe)"; it's only intended to be called directly so it should be safe to do it.
* Make the `distrib-dirs' target official and working properlyru2005-07-151-1/+1
| | | | | when cross-building (installing). (This is useful for NFS installing world/kernel to another architecture machine.)
* Provide 32-bit runtime support on amd64 as a separate distribution, lib32.ru2005-06-161-1/+1
| | | | | | Prodded by: obrien Nodded by: peter Approved by: re
* Repo-copy tools/regression/usr.bin/make to tools/build/make_checkharti2005-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.
* Added the convenience "distribution" target which calls theru2005-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.
* Added the "buildenv" target, for developers only!ru2005-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
* NOSHARED -> NO_SHAREDru2004-12-211-1/+1
|
* Start the dreaded NOFOO -> NO_FOO conversion.ru2004-12-211-1/+1
| | | | OK'ed by: core
* Previous revision didn't fix all cases. For example,ru2004-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.
* Unbreak the MAKEOBJDIRPREFIX variable check by avoiding bugs in make(1).marcel2004-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.
* Fix builds with a read-only directory and a make upgrade. This is doneharti2004-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
* Convert tools/lib32/build.sh into world connectable hooks. This stillpeter2004-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.
* Fixed MAKEOBJDIRPREFIX variable type check in case the env(1)ru2004-10-181-1/+2
| | | | binary is not in PATH, as is the case with installworld, etc.
* My take at improving the universe: allow the worlds to beru2004-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
* Moved the MAKEOBJDIRPREFIX check from Makefile.inc1 to Makefile,ru2004-08-181-0/+6
| | | | | to suppress warnings with installworld and distributeworld when env(1) cannot be found in the PATH.
* Make make recurse into sub-directories and sub-makes when givenharti2004-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)
* The doc team reworked the section of the handbook describing how tokensmith2004-07-231-1/+1
| | | | | rebuild things, further discouraging 'make world'. The title of that section is now changed...
* Rename a preposterously long name with one that might look a bitmarkm2004-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
* Add an "out" to the now required BS of defining DESTDIR.obrien2004-07-181-1/+1
|
* Properly terminate a quoted string in the previous commit. Oddlymarcel2004-07-171-1/+1
| | | | | enough this only seems to cause problems with -jX so went unnoticed until now.
* As per discussions on current@, protect unsuspecting users frommarcel2004-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@
* Add a JFLAG which can be used to speed up universe:phk2004-07-091-3/+3
| | | | make universe JFLAG=-j12
* Add a kernel-toolchain target which only builds the bits required to builddes2004-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
* Added the `toolchain' top-level target, which builds enough ofru2004-03-241-1/+1
| | | | | | | buildworld, up to and including libraries, except for actually building the world. Requested by: many
* Protect shell expansions.ru2004-03-021-0/+4
|
* Add amd64 to universe.johan2004-02-291-1/+1
| | | | Approved by: peter
* Change the 'realclean' target name to be 'cleanworld', to match othergad2004-02-201-2/+2
| | | | | | targets like buildworld, installworld. Suggested by: obrien
* Improvements on the 'make realclean' target. Some are style improvements,gad2004-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
* Add a 'realclean' target, which simply and quickly removes everythinggad2004-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
* Put on some factor 30+ bikeshed repellent and export the internalpeter2003-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.
* Don't allow the 'make' target (which rebuilds make for bootstrapping)kris2003-11-071-1/+1
| | | | | | to become confused by a file called 'make' in /usr/src Submitted by: ru
* Retired the "most" and "installmost" targets -- they justru2003-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
* Cosmetics: folded BITGTS into TGTS.ru2003-08-301-2/+3
|
* Limit testing for an up-to-date version of make(1) to the world andmarcel2003-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
* - Don't print "elf" before printing "make world" (aout support has beenru2003-08-061-3/+5
| | | | | | removed). - Avoid using printf(1) where a simple shell's built-in echo is enough.
* The `mk' target is long dead.ru2003-07-201-1/+1
|
* Use an up-to-date make binary in the upgrade_checks target ifru2003-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
* Don't hardcore PATH into BINMAKE; the latter should only beru2003-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.
OpenPOWER on IntegriCloud