zlib, bzip2, yasm und nasm waren extrem einfach. nano ist schon um einiges schwieriger, da man curses braucht und das halt entweder selber schreiben muss oder die ganzen escape sequences in seine Konsole einbauen muss. Das wichtigste bei dem ganzen ist einen Crosscompiler zu bauen, der deine libc mitlinkt (dazu gibts auf osdev.org ein Tutorial), und anschließend ./configure (mit angepasstem CC, CFLAGS, etc...) und make laufen zu lassen. Auf keinen Fall selbst Makefiles schreiben!
Aber wie taljeth schon sagte, sofort versuchen irgendwas zu portieren wird schieflaufen, beginne bei deinen eigenen Programmen und einem Mindestmaß an libc, auch um die Fehler die dein Kernel noch haben wird auszumerzen.