Implement flexible target specification

See commit message.
Why is this different than `"pic"`?