Ack, my bad. I meant OS X 10.11 (El Capitan). Same should probably work on any Linux distro with standard build tools installed.
I keep a ~/local directory with built-from-source programs in it. That way I don't get any conflicts with system-wide package managers.
Configure line for ncurses:
./configure --enable-pc-files --with-pkg-config-libdir=$HOME/local/lib/pkgconfig --with-shared --prefix=$HOME/local
make -j8 && make install
And for htop, a regular configure worked fine:
./configure --prefix=$HOME/local
make -j8 && make install
A quick check in my .bashrc (actually .zshrc) prepends $HOME/local/bin to my $PATH if it exists.