Windows and UNIX, and install/distro system for the source tarball, RPM, OS X
installer (thanks to David) and the Windows installer.
configure --without-ncat keeps it out on Unix
giving a directory) and OpenSSL is not found. This is meant to guard against
mistakenly building an RPM without OpenSSL on a machine where it is not
available.
If you don't give any arguments, configure still works the same way: it checks
for OpenSSL and doesn't use it if it's not present. If you use
--with-openssl=DIR or --without-openssl then configure takes you at your word
without checking anything. If you say --with-openssl and OpenSSL is fine then
Nmap is built with OpenSSL. The only difference this change introduces is if
you say --with-openssl and OpenSSL is not found. Now the configure script
quits, where previously it would continue with a warning.
too. The section in scripting.xml about creating C modules is gone. (But maybe
it should be replaced with a tutorial on making static modules?) The only
places where nselib-bin is still referenced are in mswin32/nsis/Nmap.nsi, where
it is still removed on uninstallation; and in mswin32/nmap.vcproj, from where I
don't have the resources now to remove it.
LUA_CFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN"
out of a case statement so that it becomes the default for all systems but Mac
OS X. Previously it was in the '*' branch of the case statement, so it ran only
for systems that weren't otherwise handled. This may have caused the error
reported at http://seclists.org/nmap-dev/2008/q2/0464.html.
better by AC_PROG_CXX and caused a failure when configured with ccache:
CXX="ccache /usr/bin/g++-4.0" ./configure
checking build system type... i386-apple-darwin9.2.2
checking host system type... i386-apple-darwin9.2.2
checking for gcc... ccache /usr/bin/gcc-4.0
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether ccache /usr/bin/gcc-4.0 accepts -g... yes
checking for ccache /usr/bin/gcc-4.0 option to accept ISO C89... none needed
checking for inline... inline
checking for gcc... (cached) ccache /usr/bin/gcc-4.0
checking whether we are using the GNU C compiler... (cached) yes
checking whether ccache /usr/bin/gcc-4.0 accepts -g... (cached) yes
checking for ccache /usr/bin/gcc-4.0 option to accept ISO C89...
(cached) none needed
checking whether we are using the GNU C++ compiler... yes
checking whether ccache /usr/bin/g++-4.0 accepts -g... yes
checking for ccache /usr/bin/g++-4.0... MISSING
configure: error: Could not locate a C++ compiler. If it exists, add it
to your PATH or give configure the CXX=path_to_compiler argument.
Otherwise, install a C++ compiler such as g++ or install a binary
package of Nmap (see http://nmap.org/download.html ))
x86. This was due to a workaround for an Ancient Solaris 2.1 bug
which activated when the OS string matched "solaris2.1*". The
problem has now been resolved until Solaris 20 comes out and hits
our "solaris2.2*" bug workarounds. Thanks to Nathan Bills for the
problem report. Fixed by Fyodor.
existing LUA library. A bashism caused one test to fail on system
which don't use bash as /bin/sh, and another bug fixed --with-liblua
configure option for specifying your own liblua. [Daniel
Roethlisberger]
script. This is to enable us to use just CPPFLAGS where we don't want CXXFLAGS
also. An example of this is when we are generating dependencies with -MM. The
Apple GCC won't let us use this flag when we also give "-arch ppc -arch i386"
in CXXFLAGS, as we would when generating a universal binary.
"all" depending on libpcre/libpcre.a, it now depends on a target pcre_build,
which always runs and does the build in the subdirectory. "nmap" depends on
libpcre/libpcre.a itself. The same thing happens for other subdirectory builds.
Subdirectory builds are prerequisites of "all" and "make nmap" happens in the
body of "all" so the subdirectories are always built first.
AC_CONFIG_SUBDIRS to avoid this warning:
$ autoconf
configure.ac:689: warning: AC_CONFIG_SUBDIRS: you should use literals
autoconf/status.m4:929: AC_CONFIG_SUBDIRS is expanded from...
configure.ac:689: the top level
or strip with no arguments was stripping dynamically loaded NSE functions on
Mac OS X. The difference between plain strip and strip -x was so slight on
Linux that I just made it unconditional.