One simple flag to configure will create a makefile that statically links all the shared objects and embeds them instead the binary execute. This means as long as you have the same architecture that things should run.
Eg. if you have an old version of Debian with a different version of glibc, then this will solve that problem.
./configure LDFLAGS="-static"
To test that it is really statically linked run ldd:
ldd src/wget
not a dynamic executable
Whereas the standard dynamic binary will be linked to a bunch of .so shared object files which is obviously a pain if making your own Linux distro or needing portability between distros.
ldd /usr/bin/wget
linux-vdso.so.1 => (0x00007ffe59ded000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f8d3b786000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007f8d3b581000)
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f8d3b319000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f8d3aed4000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f8d3acba000)
libidn.so.11 => /usr/lib/x86_64-linux-gnu/libidn.so.11 (0x00007f8d3aa87000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8d3a6bd000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f8d3a4a0000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8d3bc70000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8d3a29c000)
linux, compile, binary, static, sharedobjects, embedded, dynamic, multi, distributions, glibc, compatiblity, issuesone, configure, makefile, statically, links, objects, embeds, execute, architecture, eg, debian, ldflags, quot, linked, ldd, src, wget, executable, whereas, distro, portability, distros, usr, bin, vdso, ffe, ded, libpcre, lib, _, gnu, libuuid, libssl, libcrypto, aed, libz, acba, libidn, aa, libc, bd, libpthread, ld, bc, libdl,