Some examples of use for Speedy Make
Speedy Make is mainly intended to build software, but is not limited to this use. The engine that parses the XML document used for makefile is able to performs various tasks.
A backup program
The purpose of a backup program is to copy a defined list of files into a
defined location. Only newer versions of the files have to be copied.
The list of files to copy is stored into a tag:
<files> ...some filenames with paths... </file>
The destination is another tag:
<target> ... a directory ... </target>
The copy command is stored into another tag, and the top action also:
<copy action="run"> cp *files $target </copy> <main> copy </main>
Under Windows the standard command is:
copy /B /Y *files $target
but the copy command may be replaced by a more powerful freeware tool. See at: Unix Tools, for example.
Speedy Make makefile for the C++ version of the ANTLR grammar parser
with Visual Studio 2008 or Visual C++ Express 2008, build 15.
The makefile is configured to produce a STATIC library, but you can change the options to produce a DLL as well.
Rule for compiling the sources
cl.exe /nologo /wd4101 /wd4291 /D"_CRT_SECURE_NO_WARNING" /I"." /I"lib/cpp/" /c /MT /W3 /Zc:forScope /FD /EHsc $sources
The /I option define the path of files to includes.
/c means for compile only, do not link.
See Visual C++ options for the meaning of other options or type cl /?
Rule to create a static library:
lib.exe /NOLOGO $sources[.obj] /out:$binary
The same list of source files is used again, but the .cpp extensions are replaced by .obj, this is the purpose of this variable:
Get the makefile...
- Download antlr-2.7.7.sm.
You can rename the file to makefile.sm to avoir to type the name at command line. This makefile should work with other versions of ANTLR provided that the list of source files is updated.
SM may be used with any tool that requires a list of files in input:
- Comparing a list of files.
fc c:\dirx\*files c:\diry\*.*
- Changing the extension of a list of files.
Since the makefile is an XML document, makefiles may be generated by other tools that allow to select a list of files, put the list into a tag, and apply predefined rules on the list. The smake parser is then called with the document as parameter.