summaryrefslogtreecommitdiff
path: root/usr.bin/make/PSD.doc/tutorial.ms
AgeCommit message (Collapse)Author
2007-11-02Work done at p2k7.Marc Espie
This is a really big step towards getting parallel make to work. Note that this is not yet complete. There are still a few `details' to fix before this works 100%. Specifically: sequential make (compat) and parallel make don't use the same engine, and the parallel engine still has a few limitations. For instance, some known issues: - parallel make does not deal with .phony targets correctly all the time. - some errors are deadly in parallel make mode. - parallel make NEEDS way more sturdy correspondance of file system paths and target names, since it often needs to match dependencies to targets before the corresponding files exist. - some local variables like $* get set in a bogus way in some cases. - suffix handling has issues, especially related to the NULL suffix. So, if you find stuff that does NOT yet work with parallel make, don't go blindly try to fix the Makefile. It's very likely you might have stumbled into a make bug. (unless you really, really, understand Makefiles, DON'T GO CHANGING THEM YET). Tested by lots of people, thanks go to miod@, and robert@ among other people. Quick summary of what this does: - remove `saving commands' extension (it's not really usable, nor used) - move compat job runner and parallel interrupt handling into engine.c - tweak the code so that both compat and parallel mode use the same job runner and the same interrupt handling. Remove the other one. - optimize job runner so that, in parallel mode, the last command does not fork if we can avoid it (as it's already running in a sub shell). - scrape all the code that dealt with creating shell scripts from commands. - scrape all the code that dealt with recognizing special sequences in command output to print/not print output. - fix the parallel job pipe to not keep around file descriptors that are not needed. - replace the parallel job buffering with a nicer one, that deals with non-blocking descriptors to try to agregate as much output from one job in one go (greed) to unconfuse the users. - create two pipes per job, so that stdout and stderr stay separate. - make job token printing a debug option. - always use the parallel job-runner to `execute' commands, even if we just print them out. - store list of errors encountered during parallel make running, and print them on exit, so that we know what went wrong. - add a dirty hack to targ.c to deal with paths produced by gccmakedep.
2007-09-23zap keywords we don't have. remove exercise that says we don't have $$V,Marc Espie
since we do ;)
2007-09-16kill .SHELL, make doesn't even support it in non-parallel mode.Marc Espie
2007-02-20typos; from Daniel DickmanJason McIntyre
2004-11-29Spell precede correctly.Jonathan Gray
'looks fine' millert@, krw@. ok jmc@
2004-07-19Remove obsolete note about V7 Bourne Shell; espie@ OKTodd C. Miller
2004-07-19Start working at providing a tutorial for our make, not PMake, whichMarc Espie
would thoroughly confuse newbies. okay and suggestions jmc@.
2003-06-03Remove the advertising clause in the UCB license which BerkeleyTodd C. Miller
rescinded 22 July 1999. Proofed by myself and Theo.
1999-06-06Once again, fix the spelling of "occurrence" in the documentationPaul Janzen
1998-12-05Modifications from netbsd:Marc Espie
- don't interfere with MACHINE/MACHINE_ARCH defines for bootstrap - type clean-up, time_t, and printing `unknown' ints - fix TARGET/MEMBER bug in archive rules - memmove... - cleaner Error handler. - reentrant brk_string - .MAKE env variable - preliminary scaffolding for .NOPATH Other improvements: - efree - shellneed streamlined - display Stop in .CURDIR after an error. - document most features and misfeatures. - add a few OpenBSD notes to the tutorial.
1996-03-27From NetBSD: merge of 960317Niklas Hallqvist
1996-02-23Implement an -m option used for replacing /usr/share/mk with aNiklas Hallqvist
custom search path, like $DESTDIR/usr/share/mk
1995-10-18initial import of NetBSD treeTheo de Raadt