setup a simple bash library for setting up a directory structure using makefilelike definitions.
setup.shl is intended to offer the same basic feature set as other makelike tools, within a bash environment : you can define recipes to create files from their dependencies, and execute those recipes for all the files that aren't up to date, in order and in parallel when possible.
it is very minimal (the core functionality boils down to 3 main functions, and a dozen helpers), and aims to be as simple to learn as possible, while offering a wide extensibility, using bash as its scripting language.
pros: really small footprint (<1000 loc for the whole library), which means you can bundle the library as part of your build process reduced learning effort (10 minutes to get started), compared to other equally powerful tools portable on all unixes that can run bash (linux, macos, freebsd, ...) setup scripts can use all the power of bash to define their own recipes and rules can watch source files for changes to implement continuous builds composable : build scripts can load other build scripts to transparently integrate their productions
cons: needs bash > 4.0 to function correctly, which may require an update on some systems can be a bit slow to scan all the dependencies of a large build on a slow disk (it can scan up to 1000 files/s), although you can use state files to mitigate the problem somewhat, and continuous builds if all else fails very young tool, with few builtin rules and little standardization