While it seems attractive to use generic footprint types to build a PCB, it is safest to specify a particular device and design the footprint to exactly those dimensions. The generic footprint type codes are useful for component searches, but there's no reason to expect that anything but the manufacturer's specifications will relate to the package dimensions of a device. I gave up on generic footprints long ago, and while it's more annoying, I find that I'm pretty specific when specifying devices anyway, so the impracticality is minimal. Plus, the components always solder to the PCBs extremely well, even with sloppy home assembly. To design footprints, I've been using PCB Library Expert, and it largely works well. With some devices that are poorly specified, or when the manufacturer's dimension tolerances are needlessly large, it can mess up, but in general, with good component dimension data, it applies IPC rules pretty carefully, and ends up with high quality footprints.