SMK is a software building system, similar in purpose to the popular make and scons tools, but with its own set of wrinkles.
| Tags | Software Development Build Tools |
|---|---|
| Licenses | GPL |
| Operating Systems | OS Independent |
| Implementation | Python |
Recent releases


Changes: The new -p/--prefix option was added. The -a/--all option and the -n/--dry-run option were implemented.


Changes: A new build tasks infrastructure has been implemented. This release depends on Python 2.4 because of the sub-process module. A new logging/report infrastructure has been implemented. The option -x/--xml has been added for generating XML reports. Tutorial examples are included in the source tree.


Changes: This release handles multiple -f options, reorganizes package meta-info, adds a Pythonic setup script, Intel(R) C++ Compiler support (on GNU/Linux), has portable path name handling, platform independent naming of targets, Microsoft Windows support, Microsoft VS.NET and Windows DLL support, allows static linking of executables and shared objects, and avoids needless relinking upon installation.


Changes: Updated documentation: the tutorial is up to date with respect to the 0.3.1 release. Quiet mode has been introduced (-q/--quiet). Several small installation/uninstallation infrastructure bugs have been fixed.


Changes: This version reorganizes the build tools infrastructure, emits --rpath options when linking in-project executables or shared libraries, includes support for installation and uninstallation, allows build tools to update targets with function actions in addition to spawning processes, and includes different verbosity levels for progress report messages.
- All comments
Recent commentsAnnouncement typo
Unfotunately, an error creeped in the relelease announcement. In
"omits --rpath options when linking in-project executables or shared libraries"
it should be
"EMITS -rpath options when linking in-project executables or shared libraries"
The intent is that a developer is able to run and debug the dynamically linked executables without installing them or setting LD_LIBRARY_PATH to point to in-project shared object locations or using wrapper shell scripts. Thus, the linker is given the --rpath/-R option for shared libraries, which are built in this project.
On the other hand, when installing dynamically linked executables or shared libraries, not rpath options are emitted, so the location of the shared libraries is found in operating system specific ways, e.g. ldconfig in GNU/LInux.