進入package目錄下,新建目錄my_netcat。
編寫如下Makefile
include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=netcat //軟件名字 PKG_RELEASE:=1 //當前Makefile版本 PKG_SOURCE_URL:= http://sourceforge.net/projects/netcat/files/netcat/0.7.1/ //軟件下載目錄 PKG_VERSION:=0.7.1 //軟件版本 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz //軟件下載名字(跟在軟件目錄後形成完整下載路徑) include $(INCLUDE_DIR)/package.mk define Package/my_netcat SECTION:=net//軟件類型 CATEGORY:=Base system //make menuconfig 存在的一級目錄 TITLE:=This simple utility reads and writes data across TCP or UDP network connections. URL:=http://sectools.org/tool/netcat/ endef define Package/my_netcat/install //安裝軟件 $(INSTALL_DIR) $(1)/usr/sbin $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/netcat $(1)/usr/sbin/my_netcat endef $(eval $(call BuildPackage,my_netcat))
添加完成後,回到根目錄make meuconfig
勾選my_netcat,make V=99完成編譯
root@DreamBox:/usr/bin# m
md5sum mkdir mknod mktemp mount_root mv
mesg mkfifo mkswap mount mtd my_netcat
root@DreamBox:/usr/bin# my_netcat -h
GNU netcat 0.7.1, a rewrite of the famous networking tool.
Basic usages:
connect to somewhere: my_netcat [options] hostname port [port] ...
listen for inbound: my_netcat -l -p port [options] [hostname] [port] ...
tunnel to somewhere: my_netcat -L hostname:port -p port [options]
Mandatory arguments to long options are mandatory for short options too.
Options:
-c, --close close connection on EOF from stdin
-e, --exec=PROGRAM program to exec after connect
-g, --gateway=LIST source-routing hop point[s], up to 8
-G, --pointer=NUM source-routing pointer: 4, 8, 12, ...
-h, --help display this help and exit
-i, --interval=SECS delay interval for lines sent, ports scanned
-l, --listen listen mode, for inbound connects
-L, --tunnel=ADDRESS:PORT forward local port to remote address
-n, --dont-resolve numeric-only IP addresses, no DNS
-o, --output=FILE output hexdump traffic to FILE (implies -x)
-p, --local-port=NUM local port number
-r, --randomize randomize local and remote ports
-s, --source=ADDRESS local source address (ip or hostname)
-t, --tcp TCP mode (default)
-T, --telnet answer using TELNET negotiation
-u, --udp UDP mode
-v, --verbose verbose (use twice to be more verbose)
-V, --version output version information and exit
-x, --hexdump hexdump incoming and outgoing traffic
-w, --wait=SECS timeout for connects and final net reads
-z, --zero zero-I/O mode (used for scanning)
Remote port number can also be specified as range. Example: '1-1024'
成功移植netcat.