lwIP doesn't have a makefile because it is not a standalone application and cannot be used directly in the form it is distributed. At a minimum, you need

  • a suitable set of hardware drivers which allow lwIP to access your network interface,
  • platform-specific files which integrate into whichever operating system you are using (or implement the required features if you don't have an operating system),
  • compiler-specific and platform-specific settings in various header files,
  • a configuration header file (lwipopts.h) which specifies how lwIP should operate for you,
  • and an application to actually use lwIP.

lwIP has a set of contributed files (also called the "contrib module" on the list as a relic from CVS times) which include example applications demonstrating how to use lwIP's various APIs, and example ports for running lwIP on Windows or Linux (including makefiles for that environment), which are also useful for testing your application which will be using lwIP.
It is available from the download section (, file names are or from the contrib git repository (

For many platforms (hardware, compiler or OS), there are already existing ports or netif drivers which can be found in this wiki (Available device drivers) or by searching the web with your preferred search engine. It's always better to use existing ports as an example, even if you only can use parts of it (e.g. the compiler adaption, the netif driver or the OS adaption).

Community content is available under CC-BY-SA unless otherwise noted.