I'm working on a Python/Haskell project and I'm looking for alternatives to Makefile
. Obvious choices are Python SCons and Haskell Shake. Since I have no experience with either of them, I'd like to ask if there is any comparison of their drawbacks and advantages.
Update: The project has somewhat complex requirements for building:
- Let the user configure the build - like options to enable/disable, paths to tools etc.
- There are both Haskell and Python files generated at compile time. Their dependencies should work properly.
- There are multiple Haskell programs that share most of the source files. I'd like so that:
- it's possible to build each one individually, not building the sources that aren't needed;
- source files aren't built multiple times when compiling multiple programs;
- yet achieve parallelism during compilation, if possible.
- Check for several installed programs on target systems and their paths (like
python
,flock
etc.) - Check for dependencies on target systems, both Python, Haskell.
- Parametrize the build according to the dependencies - if the dependencies for testing are missing, it should still be possible to build the project, skipping the tests (and informing the user about it).