Visual C++ 2008 runtime components if they aren't already installed
on a system. These are some reasonably small DLLs that are
generally necessary for applications compiled with Visual C++ (with
dynamic linking). Many or most systems already have these installed
from other software packages. The lack of these components led to
the error message "The Application failed to intialize properly
(0xc0150002)." with Nmap 4.65. A related change is that Nmap on
Windows is now compiled with /MD rather than /MT so that it
consistently uses these runtime libraries. The patch was created by
Rob Nicholls.
Ensuring the safety of assert() calls by keeping NDEBUG undefined throughout
Nmap, Nbase and Nsock.
I've tested this on Linux and Windows XP without problems. On Windows I've
removed the definitions of _DEBUG and NDEBUG from the *.vcproj files.
ltmain.sh, and missing from subdirectories. Autoconf automatically looks
in the parent directory for these files. I had to copy the files
depcomp, ltmain.sh, and missing into the root of the source tree.
to be automatically generated by the makefile; however we include a copy
to enable the Windows build to work. On Unix, the makefile was
overwriting the file with a symbolic link to
libpcre/pcre_chartables.c.dist, which was causing revision-control
headaches. Now that file is copied instead of linked to, so its contents
don't change.
It is safe to use a static copy of the file instead of an auto-generated
one because Nmap has never used the auto-generation feature. You need to
use a special flag --enable-rebuild-chartables to get that. So copying
the file has the same behavior as creating a link. Furthermore, it's not
desirable to generate that file (using dftables, an auxiliary program
that uses the current locale) because we don't want our regular
expressions to be locale-dependent.
pcre_chartables.c was also removed from CLEANFILES so it's not deleted
by "make clean" or "make distclean". pcre.h is still deleted by "make
distclean" because it's included in AC_CONFIG_FILES. That's not as big a
deal.