summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/nmap/Config.in47
-rw-r--r--package/nmap/nmap.mk50
2 files changed, 90 insertions, 7 deletions
diff --git a/package/nmap/Config.in b/package/nmap/Config.in
index 79f587afd1..c1aafeceb9 100644
--- a/package/nmap/Config.in
+++ b/package/nmap/Config.in
@@ -4,13 +4,56 @@ config BR2_PACKAGE_NMAP
depends on BR2_USE_MMU # fork()
depends on BR2_TOOLCHAIN_HAS_THREADS
select BR2_PACKAGE_LIBPCAP
- select BR2_PACKAGE_PCRE
+ select BR2_PACKAGE_NMAP_NMAP \
+ if !BR2_PACKAGE_NMAP_NCAT && !BR2_PACKAGE_NMAP_NPING && !BR2_PACKAGE_NMAP_NDIFF
help
Nmap ("Network Mapper") is a free and open source (license)
utility for network discovery and security auditing.
http://nmap.org
-comment "nmap needs a toolchain w/ C++, threads"
+if BR2_PACKAGE_NMAP
+
+config BR2_PACKAGE_NMAP_NCAT
+ bool "install ncat"
+ depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
+ help
+ Ncat is a feature-packed networking utility which reads and
+ writes data across networks from the command line. Ncat was
+ written for the Nmap Project as a much-improved
+ reimplementation of the venerable Netcat.
+
+ If symlink to "nc" is installed if neither netcat or
+ netcat-openbsd is selected.
+
+comment "a symlink from ncat to 'nc' will be installed"
+ depends on BR2_PACKAGE_NMAP_NCAT
+ depends on !BR2_PACKAGE_NETCAT
+ depends on !BR2_PACKAGE_NETCAT_OPENBSD
+
+config BR2_PACKAGE_NMAP_NDIFF
+ bool "install ndiff"
+ # ndiff only works with python2.x
+ depends on BR2_PACKAGE_PYTHON
+ help
+ This option installs the 'ndiff' tool.
+
+comment "ndiff needs Python 2.x"
+ depends on !BR2_PACKAGE_PYTHON
+
+config BR2_PACKAGE_NMAP_NMAP
+ bool "install nmap"
+ select BR2_PACKAGE_PCRE
+ help
+ This option installs 'nmap' itself.
+
+config BR2_PACKAGE_NMAP_NPING
+ bool "install nping"
+ help
+ This option installs the 'nping' tool.
+
+endif
+
+comment "nmap-nmap needs a toolchain w/ C++, threads"
depends on BR2_USE_MMU
depends on !(BR2_INSTALL_LIBSTDCPP && BR2_TOOLCHAIN_HAS_THREADS)
diff --git a/package/nmap/nmap.mk b/package/nmap/nmap.mk
index ceb08ec006..92a2be1b54 100644
--- a/package/nmap/nmap.mk
+++ b/package/nmap/nmap.mk
@@ -7,10 +7,9 @@
NMAP_VERSION = 7.60
NMAP_SITE = https://nmap.org/dist
NMAP_SOURCE = nmap-$(NMAP_VERSION).tar.bz2
-NMAP_DEPENDENCIES = libpcap pcre host-autoconf
+NMAP_DEPENDENCIES = libpcap host-autoconf
NMAP_CONF_OPTS = --without-liblua --without-zenmap \
- --with-libdnet=included --with-liblinear=included \
- --with-libpcre="$(STAGING_DIR)/usr" --without-ncat
+ --with-libdnet=included --with-liblinear=included
NMAP_LICENSE = GPL-2.0
NMAP_LICENSE_FILES = COPYING
@@ -51,11 +50,52 @@ else
NMAP_CONF_OPTS += --without-openssl
endif
-# ndiff only works with python2.x
-ifeq ($(BR2_PACKAGE_PYTHON),y)
+NMAP_INSTALL_TARGET_OPTS = DESTDIR=$(TARGET_DIR)
+
+ifeq ($(BR2_PACKAGE_NMAP_NCAT),y)
+NMAP_CONF_OPTS += --with-ncat
+NMAP_MAKE_OPTS += build-ncat
+NMAP_INSTALL_TARGET_OPTS += install-ncat
+else
+NMAP_CONF_OPTS += --without-ncat
+endif
+
+ifeq ($(BR2_PACKAGE_NMAP_NDIFF),y)
NMAP_DEPENDENCIES += python
+NMAP_CONF_OPTS += --with-ndiff
+NMAP_MAKE_OPTS += build-ndiff
+NMAP_INSTALL_TARGET_OPTS += install-ndiff
else
NMAP_CONF_OPTS += --without-ndiff
endif
+ifeq ($(BR2_PACKAGE_NMAP_NMAP),y)
+NMAP_DEPENDENCIES += pcre
+NMAP_CONF_OPTS += --with-libpcre="$(STAGING_DIR)/usr"
+NMAP_MAKE_OPTS += nmap
+NMAP_INSTALL_TARGET_OPTS += install-nmap
+endif
+
+ifeq ($(BR2_PACKAGE_NMAP_NPING),y)
+NMAP_CONF_OPTS += --with-nping
+NMAP_MAKE_OPTS += build-nping
+NMAP_INSTALL_TARGET_OPTS += install-nping
+else
+NMAP_CONF_OPTS += --without-nping
+endif
+
+# If we are going to install ncat, ensure Busybox gets built/installed
+# before, so that this package overrides Busybox nc.
+ifeq ($(BR2_PACKAGE_NMAP_NCAT)$(BR2_PACKAGE_BUSYBOX),yy)
+NMAP_DEPENDENCIES += busybox
+endif
+
+# Add a symlink to "nc" if none of the competing netcats is selected
+ifeq ($(BR2_PACKAGE_NMAP_NCAT):$(BR2_PACKAGE_NETCAT)$(BR2_PACKAGE_NETCAT_OPENBSD),y:)
+define NMAP_INSTALL_NCAT_SYMLINK
+ ln -fs ncat $(TARGET_DIR)/usr/bin/nc
+endef
+NMAP_POST_INSTALL_TARGET_HOOKS += NMAP_INSTALL_NCAT_SYMLINK
+endif
+
$(eval $(autotools-package))
OpenPOWER on IntegriCloud