If you use Gerber 274X, Excellon drill format etc. it should be broadly compatible with every fab house.
Keep the file extensions the standard ones, that describe the layers:
Bottom Copper: GBL
Bottom Silkscreen: GBO
Bottom Soldermask: GBS
Top Copper: GTL
Top Silkscreen: GTO
Top Soldermask: GTS
Drill File: TXT
Drill Station Info File: dri
Photoplotter Info File: gpi
Mill Layer: GML
Top Paste: GTP
Sometimes some fab houses insist on something a little extra, eg. OSHPark wants a GKO (Gerber Keepout) file containing only the board outline, so OK, might as well add that to the CAM processor and keep it in there for any fab house.
Personally, I wrote a makefile that does CAM generation:
https://github.com/lukeweston/eagle-makefile/blob/master/makefileYou can edit it to taste, for example to add the GKO layer, or change the layers you want added to the silkscreen, but this gives you the basic idea.
Sometimes PCB fab houses will tell you they can't fab from your files because you need to do your layout differently, or you should change this or change that, or give your files a different name, or whatever, and personally if this happens and your files are manufacturable and you know what you're doing and your boards pass DRC then you might want to just find a different fab, because I personally just want a fab that "just fabs it" without telling you how to do your job, although in some cases like for beginners this sort of advice may have a valuable role.