summaryrefslogtreecommitdiff
path: root/usr.bin/make
AgeCommit message (Collapse)Author
2000-06-11Use a lower threshold for rebuilding hash tables.mycroft
2000-06-11Readd optimization last night. Problems earlier were partially due to themycroft
arguments names on one function being swapped (by a previous author). Do not do any duplicate suppression when a source list is created. Instead: * OP_MADE protects against trying to make the source multiple times. * A new OP_MARK flag is introduced to suppress duplicates while expanding the .ALLSRC variable and .USE targets. This turns the O(n^2) insertion into O(n) in most cases. This is tested with a `make build' and some special test cases.
2000-06-10Back out last night's optimization for now.mycroft
2000-06-10Don't use OP_MARK when attaching suffix transformations.mycroft
2000-06-10Introduce an OP_MARK bit, and use it to suppress duplicates during .ALLSRCmycroft
and .USE expansion. Also, remove some more Lst_Member() checks that are now redundant.
2000-06-10Nuke an `optimization' that made source list creation O(n^2). This may causemycroft
more memory to be used with stupid Makefiles, but it saves a fair amount of time (~13% just for libc) with sane ones.
2000-06-10no need for v->name-- on JUNK vars anymoresjg
2000-06-10For VAR_JUNK variables, defer freeing of the name string until the bottom ofmycroft
Var_Parse(), as it may be used (strdup()ed) by some modifiers.
2000-06-10Don't free v until after the last use.sjg
2000-06-06Do some evil with VAR_KEEP to make it happier. This seems... wrong.mycroft
2000-06-06Allow further patterns after a :D or :U, as in ODE make. (Copied some codemycroft
from VarGetPattern. It should become more flexible instead.)
2000-06-06Roll back my for-expansion changes. Doing this right is just too hard to bemycroft
worth it.
2000-06-06Check_Cwd_av: Ensure that word after a '(', '{' etc is considered a command,sjg
so that we spot the cd/chdir and don't put one in.
2000-06-01Make ::= work again with the VAR_FOR context changes.sjg
2000-06-01Create a `for' context, and substitute iteration variable from it using themycroft
normal Var_Parse() path. This allows :R, etc. to work on iteration variables.
2000-06-01Rats! ${FOO:=bar} is a common usage of the SysV = modifier.sjg
To avoid that, we now do ::[+?!]*= but the SysV = modifier can conflict with any new modifier. At there are currently no Makefiles in our tree that use ${FOO::=bar}
2000-05-30Implemented a set of assignment modifiers. These solve obscuresjg
problems such as using modifiers on .for loop iterators derived from local variables (eg .TARGET). Unless the variable already exists in a global context, these assignments are local to the current context (this is usually what is wanted).
2000-05-14Expand variables that appear in a [No]Match pattern. Allowssjg
[ x${DONE:M${.TARGET}} != x ] || blah
2000-05-11allow .POSIX to define %POSIX as in FreeBSDsjg
2000-05-11Expand variables in variable name passed to Var_Set and Var_Append.sjg
This allows ${FOO}.bar=fubar etc to work. This does not impact any Makefiles in the current tree but allows some cool magic (which I need elsewhere).
2000-05-11Pass ctxt along to VarLoopExpand so that local variables such as .TARGETsjg
can be expanded.
2000-05-10Revert to the original behaviour wrt sysIncPath, ie if sysIncPathsjg
is an empty list, use DEFSYSPATH. The current behaviour may have been useful when DEFSYSMK was an absolute path (hasn't been the case since 1996), but right now make -m /no/such/dir will fail to find sys.mk and die.
2000-05-04support OSF/1drochner
2000-05-04conditionalize prototypes for REMOTE supportdrochner
(seems that REMOTE support is incomplete anyway)
2000-05-04make cleaner C for more picky compilersdrochner
2000-04-29Added the :U :D :L :P :! and :@ modifiers as used by ODE make.sjg
These allow some very useful magic in the makefiles. The comment in var.c describing their behaviour is mostly lifted from ODE make, but the implementation of the modifiers themselves is quite different (much simpler) due to divergence of our code base.
2000-04-29Allow MAKESYSPATH in the environment to override the default syspath.sjg
2000-04-20Changes to make MAKEOBJDIRPREFIX useful.sjg
Firstly, we ignore getenv("PWD") if MAKEOBJDIRPREFIX is set so that we always get the same value for .CURDIR regardless of how make was invoked. Second, when executing a command we check if it is ${.MAKE} or ${.MAKE:T} without a preceeding chdir, if so we insert a chdir(${.CURDIR}) so that the Makefile will be found by the child make. Note that this behaviour is dissabled if MAKEOBJDIRPREFIX is not set or if NOCHECKMAKECHDIR is set. See the comments in main.c for more detail. With these two changes, one can successfully build usr/src using MAKEOBJDIRPREFIX allowing the src to be mounted from a CD-ROM.
2000-04-18Buf_GetAll() takes an int *, not a size_t *.simonb
Build failure on alpha reported by Tim Rightnour on current-users.
2000-04-17Don't type && when you mean || (pointed out by David Holland)christos
2000-04-16PR/9898: David Holland: small glitch in var substitution for single letterchristos
variables.
2000-04-16prefix errors with the program name.christos
2000-04-16Don't core-dump when the current working directory is not readablechristos
2000-04-16PR/9899: David A. Holland: multi-variable .for constructs in makechristos
2000-04-14Don't declare 'extern opt*' getopt variables.simonb
2000-03-13Fix doubled 'the's.soren
2000-02-29Fixed the oodate test to include the check of gn->cmtime == 0 withoutsjg
breaking the original intent. PR: 9503
2000-02-15Non-existent libs are always out of date.sjg
This was not handled correctly on ELF where libs do not have T.O.C. PR: 9393 Reviewed by: christos
2000-02-08Mention MAKEOBJDIRPREFIX and explain how it or MAKEOBJDIR are used.sjg
Also fixed a typo in the .SUFFIXES bit.
2000-02-08Make chdir_verify_path() do variable expansion on path in casesjg
someone wants to do freaky stuff with $MAKEOBJDIR. Initialize the Var system and set .CURDIR, MACHINE and MACHINE_ARCH before chdir_verify_path() is called.
2000-01-31You cannot meaningfully test if a non-existent file has a correctsjg
archive header, so don't try - just believe gn->type & OP_LIB.
2000-01-22Don't apply suffix rules for .PHONY targets. (gmake doesn't do this either.)mycroft
2000-01-21Nuke `extern int errno;' in code we compile with -Wstrict-prototypes. We getmycroft
the correct definition from errno.h.
2000-01-19Create temporary files carefully, to avoid security problems. Idea borrowedchristos
from the botched FreeBSD implementation...
2000-01-06Add a few little changes needed to get this to compile on IRIX 6.4.wrstuden
1999-11-25back out rev 1.23 (don't stat PHONY targets). it broken the libcryptomrg
build by causing everything to be remade everytime. this fixes PR#8419.
1999-11-19Typos (from OpenBSD)kristerw
1999-10-08s/ the the / the /msaitoh
1999-09-16Make this compile on Solaris...kim
1999-09-16Some minor cleanup of :: tests.mycroft