Correct preprocessor rules

- Fix @RD so that it gives correct directory also for targets that are
  not inside OBJDIR directory
- Make one common rule for all files that are preprocessed by CPP