Here is what I would do.
First you need kitty litter, not the kind that clumps, the cheap stuff. Next, spread it on the garage floor, and grind it into the oil stain with your feet. You might need to sweep up the first attempt and start again with fresh litter. Then sweep it up. If that doesn't take care of it, get a deck brush, scrub it with bleach, and hose it off. If you have made it to this point, and there is still a stain, you might consider learning to live with the stain, but if it really bothers you, consider borrowing or renting a pressure washer. Don't go crazy with it. Keep the pressure at a low or moderate level.
On the gravel, I would just throw some kitty litter on it hope for the best.