At work we provide wifi to our neighbour. Up to now he was using a pci wifi card with separate cabled 5db antenna. Wasn't all that effective because he had his computer in his office, other end of the building even further away from our access point. Basically our access point is in the window of our building which faces his building.
I ended up putting together a pretty cheap solution that works really well.
Pick up a Linksys WRT54GL http://www.ncix.com/products/index.php?sku=17408 cheap at under $70 bucks. This is the linux based open source firmware version. Easy to modify.
Note, you can use other brand routers. Some routers have WDS mode to work as repeaters, etc but generally only work with same brand/same model and security is limited to WEP.
The Linksys will work as a AP client or AP client bridge. Either mode will work with ANY brand router. In this case your main router would be in your primary building with internet access. As long as you have a very low signal in your secondary building it'll work fine (low enough your laptop loses connection, etc), even better if you use cheap antenna reflectors.
Place the WRT54GL in a window facing your main building. Run CAT5 from one of the 4 ports to your computer in your secondary building or run it to a hub or second wifi router then to your computer.
Keep in mind you can use the WRT54GL as a repeater as well but you'll half the 54mbps bandwidth.
Ditch the firmware that comes with the router and get this one:
http://www.dd-wrt.com/routerdb/de/download.php?file=259 mini generic version of the DD-WRT firmware. The advantage of this is it opens up all kinds of options and settings not available in the stock linksys firmware such as increasing power output, bridge/repeater modes, etc. Also more stable.
Info here on setting up in bridge mode: http://forums.whirlpool.net.au/forum...fm/890590.html
In client bridge mode you set the IP of the router to one in your IP range of your LAN in the main building. If your main router is 192.168.1.1 then use 192.168.1.100 or 192.168.1.150. There is a setting to associate it with your main router. Use the same channel and SSID as your main router. From the main router status you need to copy the DNS #, same subnet mask too from your main LAN. Use WEP encryption and setup the same key on the linksys as your main router. In the wifi section of the linksys you can associate it with your main router as a client.
Make sure to upgrade the firmware on the linksys using a short CAT5 cable, never upgrade through wifi. Don't forget to replace the default password too.
In my particular setup, went from 5-10mbps to 48-56mbps and the linksys isn't even placed in the other building's window, just upped power from 70mw to 100mw.
If you're going longer distances between buildings you can add cheap antenna reflectors. Glue some aluminum foil to paper. Can get the pattern here: http://www.wonderhowto.com/how-to/vi...ooster-271362/ and here http://www.instructables.com/id/DIY-...ption-Booster/
Don't laugh, this can make a huge difference if you have your wifi router in one corner of your house and have some dead spots in your place. This will fix it at real low cost.
Feel free to add anything to this, I'm by no means an expert on the subject.
If you're itching to experiment you can get two of these, open up the boxes and plug some 20+db directional antennas on each one, up the power over 100mw and create a wifi bridge between buildings a KM or more away.
If you really want to go nuts and go 5-20km range then take a look at a couple of these: http://www.wlanparts.com/product/BUL...R_80211bg.html with some concentrated antennas such as these http://www.wlanparts.com/product/GD2...ish_NMale.html . If you want to spread wifi through multiple buildings check these out: http://www.wlanparts.com/product/NS2...z_80211bg.html