xref: /OK3568_Linux_fs/yocto/poky/meta/recipes-extended/net-tools/net-tools_2.10.bb (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunSUMMARY = "Basic networking tools"
2*4882a593SmuzhiyunDESCRIPTION = "A collection of programs that form the base set of the NET-3 networking distribution for the Linux operating system"
3*4882a593SmuzhiyunHOMEPAGE = "http://net-tools.berlios.de/"
4*4882a593SmuzhiyunBUGTRACKER = "http://bugs.debian.org/net-tools"
5*4882a593SmuzhiyunLICENSE = "GPL-2.0-or-later"
6*4882a593SmuzhiyunLIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
7*4882a593Smuzhiyun                    file://ifconfig.c;beginline=11;endline=15;md5=d1ca372080ad5401e23ca0afc35cf9ba"
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunSRCREV = "80d7b95067f1f22fece9537dea6dff53081f4886"
10*4882a593SmuzhiyunSRC_URI = "git://git.code.sf.net/p/net-tools/code;protocol=https;branch=master \
11*4882a593Smuzhiyun    file://net-tools-config.h \
12*4882a593Smuzhiyun    file://net-tools-config.make \
13*4882a593Smuzhiyun    file://Add_missing_headers.patch \
14*4882a593Smuzhiyun"
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunS = "${WORKDIR}/git"
17*4882a593Smuzhiyun
18*4882a593Smuzhiyuninherit gettext
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun# The Makefile is lame, no parallel build
21*4882a593SmuzhiyunPARALLEL_MAKE = ""
22*4882a593Smuzhiyun
23*4882a593SmuzhiyunPACKAGECONFIG ??= "hostname arp serial plip"
24*4882a593SmuzhiyunPACKAGECONFIG[hostname] = ""
25*4882a593SmuzhiyunPACKAGECONFIG[arp] = ""
26*4882a593SmuzhiyunPACKAGECONFIG[serial] = ""
27*4882a593SmuzhiyunPACKAGECONFIG[plip] = ""
28*4882a593SmuzhiyunPACKAGECONFIG[slattach] = ""
29*4882a593SmuzhiyunPACKAGECONFIG[plipconfig] = ""
30*4882a593Smuzhiyun
31*4882a593Smuzhiyundo_configure() {
32*4882a593Smuzhiyun	# net-tools has its own config mechanism requiring "make config"
33*4882a593Smuzhiyun	# we pre-generate desired options and copy to source directory instead
34*4882a593Smuzhiyun	cp ${WORKDIR}/net-tools-config.h    ${S}/config.h
35*4882a593Smuzhiyun	cp ${WORKDIR}/net-tools-config.make ${S}/config.make
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun	if [ "${USE_NLS}" = "no" ]; then
38*4882a593Smuzhiyun		sed -i -e 's/^I18N=1/# I18N=1/' ${S}/config.make
39*4882a593Smuzhiyun	fi
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun	if ${@bb.utils.contains('PACKAGECONFIG', 'hostname', 'true', 'false', d)} ; then
42*4882a593Smuzhiyun		echo "#define HAVE_HOSTNAME_TOOLS 1" >> ${S}/config.h
43*4882a593Smuzhiyun		echo "#define HAVE_HOSTNAME_SYMLINKS 1" >> ${S}/config.h
44*4882a593Smuzhiyun		echo "HAVE_HOSTNAME_TOOLS=1" >> ${S}/config.make
45*4882a593Smuzhiyun		echo "HAVE_HOSTNAME_SYMLINKS=1" >> ${S}/config.make
46*4882a593Smuzhiyun	fi
47*4882a593Smuzhiyun	if ${@bb.utils.contains('PACKAGECONFIG', 'arp', 'true', 'false', d)} ; then
48*4882a593Smuzhiyun		echo "#define HAVE_ARP_TOOLS 1" >> ${S}/config.h
49*4882a593Smuzhiyun		echo "HAVE_ARP_TOOLS=1" >> ${S}/config.make
50*4882a593Smuzhiyun	fi
51*4882a593Smuzhiyun	if ${@bb.utils.contains('PACKAGECONFIG', 'serial', 'true', 'false', d)} ; then
52*4882a593Smuzhiyun		echo "#define HAVE_SERIAL_TOOLS 1" >> ${S}/config.h
53*4882a593Smuzhiyun		echo "HAVE_SERIAL_TOOLS=1" >> ${S}/config.make
54*4882a593Smuzhiyun	fi
55*4882a593Smuzhiyun	if ${@bb.utils.contains('PACKAGECONFIG', 'plip', 'true', 'false', d)} ; then
56*4882a593Smuzhiyun		echo "#define HAVE_PLIP_TOOLS 1" >> ${S}/config.h
57*4882a593Smuzhiyun		echo "HAVE_PLIP_TOOLS=1" >> ${S}/config.make
58*4882a593Smuzhiyun	fi
59*4882a593Smuzhiyun}
60*4882a593Smuzhiyun
61*4882a593Smuzhiyundo_compile() {
62*4882a593Smuzhiyun	# net-tools use COPTS/LOPTS to allow adding custom options
63*4882a593Smuzhiyun	oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS"
64*4882a593Smuzhiyun}
65*4882a593Smuzhiyun
66*4882a593Smuzhiyundo_install() {
67*4882a593Smuzhiyun	# We don't need COPTS or LOPTS, but let's be consistent.
68*4882a593Smuzhiyun	oe_runmake COPTS="$CFLAGS" LOPTS="$LDFLAGS" BASEDIR=${D} INSTALLNLSDIR=${D}${datadir}/locale mandir=${mandir} install
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun	if [ "${base_bindir}" != "/bin" ]; then
71*4882a593Smuzhiyun		mkdir -p ${D}/${base_bindir}
72*4882a593Smuzhiyun		mv ${D}/bin/* ${D}/${base_bindir}/
73*4882a593Smuzhiyun		rmdir ${D}/bin
74*4882a593Smuzhiyun	fi
75*4882a593Smuzhiyun	if [ "${base_sbindir}" != "/sbin" ]; then
76*4882a593Smuzhiyun		mkdir ${D}/${base_sbindir}
77*4882a593Smuzhiyun		mv ${D}/sbin/* ${D}/${base_sbindir}/
78*4882a593Smuzhiyun		rmdir ${D}/sbin
79*4882a593Smuzhiyun	fi
80*4882a593Smuzhiyun}
81*4882a593Smuzhiyun
82*4882a593Smuzhiyuninherit update-alternatives
83*4882a593Smuzhiyun
84*4882a593Smuzhiyunbase_sbindir_progs = "ipmaddr iptunnel mii-tool nameif \
85*4882a593Smuzhiyun    ${@bb.utils.contains('PACKAGECONFIG', 'arp', 'arp rarp', '', d)} \
86*4882a593Smuzhiyun    ${@bb.utils.contains('PACKAGECONFIG', 'plip', 'plipconfig', '', d)} \
87*4882a593Smuzhiyun    ${@bb.utils.contains('PACKAGECONFIG', 'serial', 'slattach', '', d)} \
88*4882a593Smuzhiyun"
89*4882a593Smuzhiyunbase_bindir_progs  = "ifconfig netstat route \
90*4882a593Smuzhiyun    ${@bb.utils.contains('PACKAGECONFIG', 'hostname', 'dnsdomainname domainname hostname nisdomainname ypdomainname', '', d)} \
91*4882a593Smuzhiyun"
92*4882a593Smuzhiyun
93*4882a593SmuzhiyunALTERNATIVE:${PN} = "${base_sbindir_progs} ${base_bindir_progs}"
94*4882a593SmuzhiyunALTERNATIVE:${PN}-doc += "${@bb.utils.contains('PACKAGECONFIG', 'hostname', 'hostname.1 dnsdomainname.1', '', d)}"
95*4882a593SmuzhiyunALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1"
96*4882a593SmuzhiyunALTERNATIVE_LINK_NAME[dnsdomainname.1] = "${mandir}/man1/dnsdomainname.1"
97*4882a593SmuzhiyunALTERNATIVE_PRIORITY[hostname.1] = "10"
98*4882a593Smuzhiyun
99*4882a593Smuzhiyunpython __anonymous() {
100*4882a593Smuzhiyun    for prog in d.getVar('base_sbindir_progs').split():
101*4882a593Smuzhiyun        d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_sbindir'), prog))
102*4882a593Smuzhiyun    for prog in d.getVar('base_bindir_progs').split():
103*4882a593Smuzhiyun        d.setVarFlag('ALTERNATIVE_LINK_NAME', prog, '%s/%s' % (d.getVar('base_bindir'), prog))
104*4882a593Smuzhiyun}
105*4882a593SmuzhiyunALTERNATIVE_PRIORITY = "100"
106*4882a593Smuzhiyun
107*4882a593SmuzhiyunNETTOOLS_PACKAGES = "${PN}-mii-tool"
108*4882a593SmuzhiyunNETTOOLS_PACKAGES:class-native = ""
109*4882a593Smuzhiyun
110*4882a593SmuzhiyunPACKAGE_BEFORE_PN = "${NETTOOLS_PACKAGES}"
111*4882a593SmuzhiyunRDEPENDS:${PN} += "${NETTOOLS_PACKAGES}"
112*4882a593Smuzhiyun
113*4882a593SmuzhiyunFILES:${PN}-mii-tool = "${base_sbindir}/mii-tool"
114*4882a593Smuzhiyun
115*4882a593SmuzhiyunALTERNATIVE:${PN}:remove = "mii-tool"
116*4882a593Smuzhiyun
117*4882a593SmuzhiyunALTERNATIVE:${PN}-mii-tool = "mii-tool"
118*4882a593SmuzhiyunALTERNATIVE_TARGET[mii-tool] = "${base_sbindir}/mii-tool"
119*4882a593SmuzhiyunALTERNATIVE_LINK_NAME[mii-tool] = "${base_sbindir}/mii-tool"
120*4882a593Smuzhiyun
121*4882a593SmuzhiyunBBCLASSEXTEND = "native nativesdk"
122