Use $osdir in (c cc c o) and (c cc o '').  Add test cases from 'Recursive Make Considered Harmful'.