Nmap Windows Czar

While Windows is the second most popular platform for running Nmap, that version is just not up-to-par with it's UNIX cousin. There are also Windows-specific building and installation features which could be added. This project will appoint someone as Windows Czar for the summer. They will complete the tasks described in this document, and possibly other Windows-related tasks that crop up. This is one of the project options for the 2005 Google Summer of Code Program -- see GoogleGrants.html for others.

Create a Windows installer

Currently, Nmap is only offered for Windows users in source format, and a PKZip file of the binaries. This leaves Windows users to manually perform a number of tasks to install Nmap properly. While this is powerful and flexible, many users would prefer an executable installer to do this work for them. This installer should meet the following requirements:

Automated Build System

Create an automated build system for building distributable binaries and an executable installer for the Windows version of Nmap. Right now, for every new version of Nmap, Fyodor has to manually open Visual Studio, perform the compilation tasks described in http://nmap.org/data/README-WIN32 , then open up a Cygwin shell and manually create a zip archive containing all of the appropriate files. And of course no self-installer exists at all yet. This should be automated so that Fyodor only has to run one command (preferably from the command-line) to perform these steps. Requiring Cygwin is OK. Compilation should still be done with Visual C++, unless you can demonstrat the g++ (or whatever) creates Nmap binaries that are just as good or better on Windows. Compilation from within Visual C++ using the "build" command should still work fine. Changes to compilation rules (such as adding a souce file or library) should only need to be made in one place (e.g. from the Visual Studio GUI or in a text/make file.) Not both. The results should be a convenient packaged nmap-VERSION-win32.zip and nmap-VERSION-setup.exe, ready for distribution.

Code changes

In addition to the build system and installer, there are a number of ways that the Nmap Windows code could be improved to better compete with the UNIX version. Here are some ideas: