Comparison with FuseSoC (and ideas from FuseSoC)
Dependencies and hdl parsers
FuseSoC doesn't use any HDL parsers. The list of files to be used is the list of files given by the core and its dependencies. They are simply "sorted" by the topological order.
The HDL parsers in HDLMake are not really parser but are based on regexp. So they are incomplete and may produce wrong result. This is not fixable. Even if a full parser (with dependency analysis) was used, they may still have problems while dealing with encrypted cores.