Make sure that dependency output category works properly for all target types
The facility of "output category specification" should work for all targets, and there must function at least the following categories:
- default - should return the first existing output file from the list
- all - should return the list of all output files
- none - should always map to an empty output file
Currently the library target type supports the output category specification by -libspec
key. Consider changing the name to a more general name -outspec
(or provide -outspec
key as a more low-level option, only when you simultaneously provide the -output
files manually). The only category names for that case are shared
and static
and they can also be used when using -depends
key.
This should extend the output category specification to anything, and strict naming concerns only the library
type target. For example, you should be able to define such a custom
target where you spell up the categories and output files assigned to them in the same order, e.g.:
ag langen -type custom -outspec lexer parser -output lex.ll.c parser.yy.c -command ...
This way you can then have another two:
ag lexer -type program -depends langen/lexer
ag parser -type program -depends langen/parser