summaryrefslogtreecommitdiffstats
path: root/Makefile
Commit message (Collapse)AuthorAgeFilesLines
...
* 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.
* Fixed style bugs related to parentheses in Makefile.inc1.ru2003-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.
* Do the upgrade checks quietly.ru2003-06-221-2/+2
|
* Allow installkernel.debug and reinstallkernel.debug.simokawa2003-06-221-2/+7
|
* Kill upgrade target docs. It too is stale.imp2003-04-031-1/+0
| | | | Submitted by: ru
* Kill aout to elf upgrade path. From an old comment in the makefile:imp2003-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.
* Don't make buildworld and buildkernel in parallel.ru2003-02-271-0/+1
| | | | | And this is probably what you expect when you say "make -jX buildworld buildkernel".
* Don't spam sys/${MACHINE}/conf/ with _.${MACHINE}.makeLINT.ru2003-02-191-1/+1
| | | | Submitted by: johan
* Fixed universe.ru2003-02-191-34/+30
| | | | | Folded pc98 into the common case. Retired ${JFLAG} (``make -jX universe'' should work).
* Fix make universe's kernel builds on pc98: We need to pass both ARCHphk2003-02-181-7/+7
| | | | and TARGET_ARCH.
* Part 3/3 of unbreaking cross releases:ru2003-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.
* Minor typo fixes and whitespace cleanups.schweikh2002-12-301-4/+3
|
* Build kernels for pc98 just like the other platforms. Also, removeimp2002-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 :-(
* Minor, cosmetic change to buildworld output to make it reflectbmah2002-12-031-1/+1
| | | | | | | rev. 1.270 more accurately. Reviewed by: ru Approved by: re (jhb)
* If /usr/bin/make fails to pass the regression tests, it might notru2002-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)
* Moved make(1) regression tests from src/Makefile to where theyru2002-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
* PC98 is not a true architecture, but a subarchitecture of i386, so we needphk2002-10-021-1/+4
| | | | to use a slightly differnt command to PC98::buildworld.
* Add pc98 to universe target.phk2002-10-011-3/+3
| | | | Remember about /usr/obj and look for conf/NOTES in the right place.
* Add "make universe" target which:phk2002-09-261-0/+38
| | | | | | | | | | | | | | | for each arch i386 sparc64 alpha ia64 make buildworld TARGET_ARCH=$arch if NOTES found make LINT foreach kern ${arch}/conf/[A-Z0-9]* make buildkernel TARGET_ARCH=$arch KERNCONF=$kern Errors from the individual steps are ignored and the stdout+stderr are saved in distinct files in root of the source tree with names like: _.${arch}.${target} On my dual 1.6G Athlon it takes roughly four hours to run this target.
* Initiate deorbit burn for the i386-only a.out related support. Moves arepeter2002-09-171-12/+2
| | | | | | | | | | | | | | | under way to move the remnants of the a.out toolchain to ports. As the comment in src/Makefile said, this stuff is deprecated and one should not expect this to remain beyond 4.0-REL. It has already lasted WAY beyond that. Notable exceptions: gcc - I have not touched the a.out generation stuff there. ldd/ldconfig - still have some code to interface with a.out rtld. old as/ld/etc - I have not removed these yet, pending their move to ports. some includes - necessary for ldd/ldconfig for now. Tested on: i386 (extensively), alpha
OpenPOWER on IntegriCloud