# Make sure that you have the needed software installed in your system.
# For ubuntu:
sudo apt-get update
sudo apt-get install build-essential subversion git-core libncurses5-dev gawk wget gettext

# ==============   download   =======================
# First, we download current OpenWRT. 

mkdir ~/openwrt
cd ~/openwrt
svn co svn://svn.openwrt.org/openwrt/trunk/
# Tested with revision 38887.
cd trunk
./scripts/feeds update -a
./scripts/feeds install -a

# ==============   build image: first pass   =======================
# We prepare to compile a first time

make menuconfig

#      (select Target, Subtarget and Profile)
#        (e.g. Atheros AR7xxx/AR9xxx - Generic - TP-LINK TL-WR1043N/ND)
#      (choose eglibc instead of default uClibc)
#      [*] Advanced configuration options (for developers)  --->
#        [*]   Toolchain Options  --->
#          [*]   C Library implementation (Use eglibc 2.15)

make defconfig
make download

time ionice -c 3 nice -n 20 make
# approx. 77 minutes

# Download and apply a patch to the openwrt configuration files
#  in order to make its build system download and build netsukuku
wget -O - http://download-mirror.savannah.gnu.org/releases/netsukuku/owrt-ntkd.patch 2>/dev/null | patch -p0


# ==============   build image: second pass   =======================
# We prepare to compile a second time with the good stuff

make menuconfig

#      (inside category Network, select package netsukuku)
#      Network  --->
#        <*> netsukuku
#      (optionally, activate the openwrt web interface)
#      LuCI  --->
#        Collections  --->
#          <*> luci

time ionice -c 3 nice -n 20 make
# approx. 20 minutes

# Find your new firmware in ./bin/ar71xx-eglibc and flash your router.