
                     HISTORY of CHANGES to the Make program
                          Copyright © 1991 by Ben Eng

KEY:
	-N	New Feature
	-B	Bug Fix in program
	-D	Documentation

--
Dec 8, 1991

changes from 1.4 to 1.5

	-B	only recognize variable assignment command before macro expansion
		otherwise, command lines containing an equal sign will not execute
	-B	the - command prefix to ignore error returns was broken
	-B	$(sort ...) now removes duplicate words
	-B	conditional directives did not properly skip other directives,
		thus nested conditional directives were also broken

--
July 20, 1991	distributed 1.4 on Bix

changes from 1.3 to 1.4 

	-B	changed all references of strcmp to stricmp
	-B	enforcer hits removed
	-B	version string conforms to style guide

--
July 7, 1991

changes from 1.2 to 1.3

	-N	variable assignments may now be done in command lines
	-B	the cd command would always be executed even if it appeared
		within a conditional command construct.
	-N	at the suggestion of Peter da Silva, .ALWAYS, .NEVER,
		.ONCE, .INVISIBLE


---
June 30, 1991

changes from 1.1 to 1.2

	-B	.INCLUDE directive may now be used inside a conditional
	-B	reassignment of a simple macro to an ordinary macro was broken
	-D	rewrote documentation in LaTeX
	-N	added the D and F macro extensions to automatic variables


---
June 16, 1991	distributed 1.1 on ab20.larc.nasa.gov [128.155.23.64]

changes from 1.0 to 1.1

	-B	when the primary goal has no commands, no applicable implicit
		rules, and all of its dependencies are up to date, an error
		of "don't know how to make" is issued; bug is fixed
	-B	added .PHONY directive to propagate the proper "up to date"
		condition past a phony target rule

	-D	updated the documentation on incompatibilites


---
June 15, 1991

changes from 0.9 to 1.0

	-N	added pattern rules (yeah!!!)
	-N	replaced suffix rules with pattern rules
	-B	changed include directive to .INCLUDE for Sun Make compatibilty
	-N	added .DEFAULT rule
	-N	added exists(filename) and nexists(filename) conditions
	-N	conditional command execution in rules
	-N	added $(patsubst from,to,names) function call
	-N	$(subst ...) is now able to handle different size substitutions
	-N	double colon rules added but they are severely broken


---
June 10, 1991

changes from 0.8 to 0.9

	-N	at the suggestion of Mike Sinz, added the include directive
	-B	.SUFFIXES: is now a directive rather than a special target;
		code has been moved from read.c to input.c


---
June 9, 1991	distributed 0.8 on Bix

changes from 0.7 to 0.8

	-N	bmake now runs (barely) under 1.3 without wildcard support
	-N	added $(sort names) function call


---
June 8, 1991

changes from 0.6 to 0.7

	-N	added the 'cd' command
	-N	added $(join list1,list2) function call
	-N	added $(dir names) function call
	-N	added $(notdir names) function call
	-N	added $(suffix names) function call
	-N	added $(getenv name) function call

	-N	added DEBUG preprocessor symbol to disable code generation
		for debugprintf() and the printing of debugging information
		for the -d option.


---
June 2, 1991	distributed 0.6 on ab20.larc.nasa.gov [128.155.23.64]

changes from 0.5 to 0.6

	-B	macro expansion in the arguments to eq() and neq() conditions
	-B	removed rawcon.c, so ^C breaks should work better

	-N	added $(words text) function call
	-N	added $(word n,text) function call
	-N	added $(firstword text) function call
	-N	added stubs for function calls that are not implemented

	-N	changed static storage to dynamic storage for reading the Makefile
	-N	the maximum line length can now be set as a parameter
	-N	function calls are now able to accept arguments up to MaxLine
		in length
	-N	added ``pragma'' directive to specify command line arguments
		for the Make program within the Makefile

	-B	removed enforcer hits; all were read-hits :-).


---
May 31, 1991	distributed 0.5 on Tardis BBS

changes from 0.4 to 0.5

	-N	conditionals
	-B	command line macro assignments are performed twice; once before
		Makefile is read, and once before the Makefile is run

---
May 30, 1991

changes from 0.3 to 0.4

	-B	allow commas to be escaped with a backslash in function calls
	-B	$(subst) changed to work at any position; not just suffixes

	-N	added $(filter pattern,text) function call
	-N	added $(filter-out pattern,text) function call
	-N	added $(wildcard pattern) function call
	-N	added $(basename names) function call
	-N	added $(addsuffix suffix,names) function call
	-N	added $(addprefix prefix,names) function call


---
May 29, 1991	distributed 0.3 on ab20.larc.nasa.gov [128.155.23.64]

changes from 0.2 to 0.3

	-D	fixed the previous dates in the HISTORY file
	-D	fixed the documentation on simple variables

	-B	added better error detection for infinitely expanded macros.

	-B	fixed the macro expansion for variables that expand
		to a value containing the character `$'

	-B	fixed the macro expansion for unknown variables

	-N	added function call capabilities to the macro expansion facility
	-N	added $(strip string) function call
	-N	added $(findstring find,in) function call
	-N	added $(subst from,to,text) function call


---
May 28, 1991	distributed 0.2 on Bix

changes from 0.1 to 0.2

	-B	added a check for out of memory in ben/scdir.c

	-N	parsing of command line macro=value definitions

---
May 27, 1991	distributed 0.1 on Tardis BBS

changes from 0.0 to 0.1

	-N	recursive macro expansions within variable name
		references are now supported; ie. ${hello$(idx)}.

	-B	multiple expansions of the same variable was
		incorrectly trapped as an infinitely recursive
		macro expansion.

	-B	standard rules are now allowed to be defined as
		builtin rules, without being selected as the
		default target (goal) to be made.

	-B	when the Makefile does not end in an empty line
		the last rule is thrown out.

---
May 26, 1991	limited local distribution

initial release 0.0

---
