NEW features of smake-1.2.5:


		*** WARNING        ***
		*** Need new smake ***

	*** Due to the fact that schily-tools 2014-04-03 introduced to use new macro
	*** expansions and a related bug fix in smake, you need a new smake
	*** to compile this source. To ensure this, call:

	cd ./psmake
	./MAKE-all
	cd ..
	psmake/smake
	psmake/smake install

-	Smake now allows to disable the built-in echo command by specifying

		make COPTX=-DNO_MYECHO

-	smake no longer dumps core if a colon is seen after no target.
	Thanks to Heiko Eißfeldt for running "american fuzzy lop"
	on smake and reporting the bug.

-	smake no longer endlessly searches for the right implicit rule in
	rare cases.
	Thanks to Heiko Eißfeldt for running "american fuzzy lop"
	on smake and reporting the bug.

-	smake no longer goes into an apparent endless wait if something like:

			$r66666666666666666

	was seen in a makefile.
	Thanks to Heiko Eißfeldt for running "american fuzzy lop"
	on smake and reporting the bug.

-	smake no longer dumps core when in rare cases a buffer resize
	happens before the "F" operator (take basename of path) is evaluated.
	Thanks to Heiko Eißfeldt for running for doing some handcrafted
	tests based on makefiles created by "american fuzzy lop".

-	Heiko Eißfeldt has checked smake with a test system that tries to push
	programs into unusual code paths. This is why we discovered a lot
	of bugs that did not hit during the past 30 years. The name of the
	test program is "american fuzzy lop".

-	smake: several typos in the comment and in strings have been fixed.

-	smake: With help from Heiko Eißfeldt, we fixed two more places where
	smake did not correctly realign local pointers into the string stack.
	Note that the related coredumps did not happen on Solaris due to a
	different environment length and did not happen with Makefiles of
	usual langth. In both cases, the buffer relocation takes place at
	different places in the code and thus does not trigger a core dump.

-	smake: Heiko Eißfeldt discovered that one has to be careful even with
	strlcpy() as it expects a null-terminated from-string. This was not the
	case for some cases in the parser when a token was read-in and the buffer
	had to be expanded. Smake not first temporarily null-terminates the 
	current buffer before using strlcpy() to copy the old content to the
	new grown buffer.

-	smake: Heiko Eißfeldt discovered that under rare conditions, the
	functions extr_filenames() and extr_dirnames() could overwrite the
	growable string stack. These functions now check and grow (if needed)
	the string stack before appending another iteration of text.

-	smake: Heiko Eißfeldt discovered that cvtvpath() could overwrite
	the intermediate buffer.

-	smake: Heiko Eißfeldt presented a makefile that contains the character
	'\377' at offset 2048 and thus triggered a long known bug in mygetc()
	that made it impossible to distinct '\377' from EOF. The problem is
	now fixed

-	smake: Heiko Eißfeldt presented a makefile that triggered a object
	dereference from a warning where only the null object was present. 
	Smake now prints "<empty>" instead of dumping core.

-	smake: Heiko Eißfeldt discovered a problem with a not correctly inialized
	sub_ptr from getshvar() that caused problens in dosh() -> sub_c_put()

-	smake: Heiko Eißfeldt discovered a problem with blown up memory
	from a direct recusive dependency. This was so far detected in the
	interpreter but not in the parser already. A new check in the parser
	prevents smake from allocating infinite amounts of memory.

-	smake: Heiko Eißfeldt discovered a problem in
	getobjname() getname() getln() and getcmd(): growgbuf() needs probably
	be called before the null-byte is added to the string.

-	smake: Heiko Eißfeldt discovered a problem resulting from a bug in
	update.c::patr_src() where a name pointer was erreneously repeatedly 
	incremented instead of adding an offset to the the base name when doing
	a second iteration. This could cause core dumps with some makefiles.
	
-	Support for FreBSD & clang was added:
	i386-freebsd-clang.rul
	i386-freebsd-clang.rul
	i386-freebsd-clang.rul
	amd64-freebsd-clang.rul
	amd64-freebsd-clang32.rul
	amd64-freebsd-clang64.rul

-	Some documentation now mentions SourceForge instead of BerliOS as
	OSS hoster

-	The makefile rules for installing man pages have been changed so that
	OBJ/<archdir>/man/ is no longer a direct dependency of the man page.
	This results in repeated "make install" calls not to reinstall
	up-to-date man pages again.

-	The makefile rules for installing localized sripts have been changed so
	hat OBJ/<archdir>/ is no longer a direct dependency of the man page.
	This results in repeated "make install" calls not to reinstall
	up-to-date scripts again.

-	New autoconf test whether printf() supports %z


TODO:
	Smake would need to implement an undocumented feature from 
	historical UNIX make implementations that is used by Xorg
	at one place:

	target: *.o
		do-something-with *.o

	Which expands *.o from the filesystem. Meanwhile, use 
	smake -N to compile Xorg.

After pattern expansion has been implemented, smake-1.2 final
will be released.

P.P.S.: As Xorg changed it's build system, we may delay this
feature to something past 1.2-final.
	


WARNING: Do not use 'winzip' to extract the tar file!
	Winzip cannot extract symbolic links correctly.

Joerg