The first option is not really an option for most home CNC enthusiasts due to the cost.
second option of using a PC control card for control is a workable
solution that will provide silky smooth motion but it will not be cheap
ether and software to run gcode
will cost a lot. If you go the PC card rout you will also need to
purchase amplifiers to amplify the signal coming from the control card.
last option of using step and direction hardware is by far the least
expensive to set up but does not have quite the performance of the