avoid a race condition. "make all" would make nsock and ncat, and ncat
would in turn make nsock. If the timing was right, the two simultaneous
builds would trample each other.
It may seem inefficient to have all these recursive makes calling down
the dependency tree all the time, but GNU Make at least remembers which
targets were already completed so for example only one descent into
nbase_build will be done per "make all".
definition causes GCC to add extra security checks to compiled source
code. See http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html.
-D_FORTIFY_SOURCE=1 adds only those checks that are not supposed to
cause any "conforming" program to fail. (Conforming to what I'm not
sure, probably one of the C standards.) -D_FORTIFY_SOURCE=2 adds extra
checks above that. Some light testing hasn't shown any obvious problems.
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
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.
nse_main and nse_nsock. nse_main now uses Lua to create printable output
while a cleaner hexify procedure has been placed in nsock.
nse_string is removed as a result.
Now does most of it's work through Lua:
From Nmap-dev: "Many of the changes consist of changing how Nmap interfaces
with Lua that were sometimes awkward or inflexible. Most of the functions
have been made to be callable directly by Lua which offers many technical
advantages: stack management is alleviated, errors are handled cleanly and
are more descriptive, and there is increased reusability."
Additionally:
-- Moved all lua_State * symbols from "l" to "L". This is to maintain
consistency with other Lua libraries (convention) and to make our macros portable.
-- Moved file system manipulation over to nse_fs.cc (from nse_init.cc)
Automake does. Otherwise, when you run an uninstall, it will delete
/usr/bin/nmap, not the nmap you might be staging elsewhere. This has no effect
if DESTDIR is undefined.
-arch i386" when building a universal binary on Mac OS X, and you can't
generate dependencies while using those flags. Include directories were
previously moved to CPPFLAGS so the right dependencies are still found.
following command:
grep -l 'umitGUI\|umitCore' * -r | grep -v '/\.svn/' | xargs -n 1 -t sed -i -e 's/umitGUI/zenmapGUI/' -e 's/umitCore/zenmapCore/'
This allows both Umit and Zenmap to be installed at the same time.
"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.
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.
"/usr/bin/env python" when DESTDIR is defined. This keeps from hardcoding a
specific interpreter location when building for installation on another
machine.