Our sub-projects (Ncat, Nping, Zenmap, Ndiff, and nmap-update) and included libraries (libpcap, libpcre, liblua, libnetutil, nbase, nsock, libdnet-stripped) use different spellings and arrangement of directives, variables, and dependencies, but really all do nearly the same thing. Example:
all: @LUA_BUILD@ @LIBLINEAR_BUILD@ @PCAP_BUILD@ @PCRE_BUILD@ @DNET_BUILD@ @NBASE_BUILD@ @NSOCK_BUILD@ @NCAT_BUILD@ @NMAP_UPDATE_BUILD@ netutil_build
$(MAKE) $(TARGET) $(BUILDZENMAP) $(BUILDNDIFF) $(BUILDNPING)
In this example, why does libnetutil not use an AC_SUBST expansion, but nbase does? Why do Ncat and nmap-update use AC_SUBST expansions and not a Makefile variable like $(BUILDNCAT)? Later in the file, why is it ncat_build but build-nping?
The targets are also interspersed: sometimes the clean-* targets are all together, other times it's grouped by project name.
At the risk of bloating an already broad task, a lot of our stuff breaks with large -j values to make.
I am working on it https://gitlab.com/g10h4ck/nmap-gsoc2015/commits/hotfix/75
Update changelog with changes relative to #75
@G10h4ck are you still working on this issue? If not, and if @dmiller-nmap (or is it @bonsaiviking ) isn't, then I'd like to do a bit more towards it: there's still some un-interspersing that can be done along with more conversions of AC_SUBST expansions to Makefile variables.
Nope I am not working on it right now, so you are welcome to continue fixing this ;)