The axis limits are fairly easy to work with - each is a normally closed switch which opens when the axis -'ve limit is reached (they don't limit on the +'ve limit).
[I say easy to work with but somehow I thought they were normally open when I got my circuit made up, so I had to use a screw terminal block to get the limits working, rather than just plug them in - bit annoying!).
The easiest way to work with them is to connect them all up in series, connect one side to ground and the other to the 'all limits' line on the linuxCNC computer, along with a resistor to the +5v line (it is just a pull up resistor, so value not crucial. I used about 2Kohm, but it was just the one that came out of the box first. Probably 1Kohm -> 10kohm would be fine (TTL style pull up), and I assume most parallel ports are MOS, so even 200Kohm would presumably work fine as well)
The big problem I had with the limit lines is the impact of noise - I don't think the lines are shielded as they snake around the machine. I had to use a capacitor across the lines and a ferrite ring to remove the impact of the noise.
(I think Emco use 24V on the switch lines, and I only used 5V - this brought the noise problem to the fore - It is completely under control using 5V and the capacitor/ferrite, but I might go to 12V if I was doing it again)
I think that Mach allows software debouncing of the limit switches which would probably solve the problem as well. I don't think LinuxCNC does this, though.