Release Notes: Major restructuring was done. An autoconf test to check whether /bin/sh is bash was added to allow the use of workarounds for various bash bugs. Built-in uname(1) support was enhanced for Mac OS X and *BSD. The .NO_WARN feature was added. A bug introdunced when allowing infinitely long strings was fixed.
Release Notes: The licence was changed from the GPL to the CDDL. The string length limitation for words read from Makefiles has been removed. Macro expansion no longer uses static length limitations. The new Special Target ".SPACE_IN_NAMES:" allows you to have escaped spaces in object or dependency names, which helps to create auto-dependencies for the Microsoft C compiler. The Makefile system now includes the environment setup for the Microsoft C compiler.
Release Notes: Support for "Interix" was added, which is what you get when compiling on "Services For Unix" on MS-Windows. $O may be used in pattern matching expansions. Under some circumstances, the Macro expansion code ate up whitespace, so this has been corrected. The makefile system has been enhanced to support compiling with the Microsoft compiler "cl".
Release Notes: The -N option was added to continue if no source for nonexistent dependencies is found. The SHELL macro is evaluated according to POSIX. Smake now warns about junk at the end of POSIX suffix rules to help to flag broken makefiles like those found in the Xorg tree. The dynmac expander now correctly handles when the growable buffer has to be relocated when it grows. The dynmac expander no longer adds unneeded spaces in lists to allow smake to be used to compile Xorg. Smake now gives better warnings with illegal dynmac usage to help to locate illegal dynmac usage in highly complex projects like Xorg.
Release Notes: Support for the ':=' assignment operator has been added (with non-portability warnings to help people to write portable makefiles). Smake now detects endless recursions from bad default rules. It now supports Termination pattern matching rules like %:: s.%; SCCS get $@ to prevent endless recursion on such default rules. It now prints Command line Exit messages for failed command even if not in debug mode, and now also searches for lib/default.smk in case av contains a path name with slashes.
Release Notes: Support for :: rules was added, this is not POSIX but historic use in makefiles. This release will now print the current directory if the exitcode != 0. It now appends to dependency lists even when the new definition is found in a new makefile. It now warns if the dynamic macros '$*' & '$<' are used for explicit Target Rules. Note that Sun Make and GNU make are broken in this area and smake's behavor is the best a make program may do. It no longer has a static command line macro limit of 64, and no longer has a static -f makefile option limit of 32.
Release Notes: smake -p now includes comment headlines that allow for better identification of the various sections in the output. This release switches from the custom "Simple Pattern Rules" for implicit rules to POSIX Single and Double suffix Rules. Special code has been added that helps to deal with some empty FORCE: like pseudo-targets. A parser bug that caused problems with single character macros has been fixed. There is better EOF checking in the parser to avoid infinite loops. Simple Suffix Rules are no longer allowed to start with "./", as this is a valid target name.
Release Notes: Better support for newer BSD-OS systems was added. Support for OS/2-EMX is now really working. Support for DOS/DJGPP was added. Some workarouunds were made for problems on SCO UnixWare. A problem with Null terminated vararg parameter lists with 64-bit machines was fixed.
Release Notes: This version has portability changes for Mac OSX, True64, and SCO/Caldera OpenUNIX. It fixes a bug in the parser that caused an endless loop with some syntax errors in Makefiles.