2 # Makefile Main Makefile for the net-tools Package
4 # NET-TOOLS A collection of programs that form the base set of the
5 # NET-3 Networking Distribution for the LINUX operating
10 # Author: Bernd Eckenfels <net-tools@lina.inka.de>
11 # Copyright 1995-1996 Bernd Eckenfels, Germany
13 # URLs: ftp://ftp.inka.de/pub/comp/Linux/networking/NetTools/
14 # ftp://ftp.linux.org.uk/pub/linux/Networking/PROGRAMS/NetTools/
15 # http://www.inka.de/sites/lina/linux/NetTools/index_en.html
17 # Based on: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
18 # Copyright 1988-1993 MicroWalt Corporation
21 # Extensively modified from 01/21/94 onwards by
22 # Alan Cox <A.Cox@swansea.ac.uk>
23 # Copyright 1993-1994 Swansea University Computer Society
26 # This Makefile doesn't describe complete dependencies for all include files.
27 # If you change include files you might need to do make clean.
29 # {1.20} Bernd Eckenfels: Even more modifications for the new
31 # {1.21} Bernd Eckenfels: Check if config.in is newer than
33 # {1.22} Bernd Eckenfels: Include ypdomainname and nisdomainame
35 # 1.3.50-BETA6 private Release
37 #960125 {1.23} Bernd Eckenfels: Peter Tobias' rewrite for
38 # makefile-based installation
39 # 1.3.50-BETA6a private Release
41 #960201 {1.24} Bernd Eckenfels: net-features.h added
43 #960201 1.3.50-BETA6b private Release
45 #960203 1.3.50-BETA6c private Release
47 #960204 1.3.50-BETA6d private Release
49 #960204 {1.25} Bernd Eckenfels: DISTRIBUTION added
51 #960205 1.3.50-BETA6e private Release
53 #960206 {1.26} Bernd Eckenfels: afrt.o removed (cleaner solution)
55 #960215 1.3.50-BETA6f Release
57 #960216 {1.30} Bernd Eckenfels: net-lib support
58 #960322 {1.31} Bernd Eckenfels: moveable netlib, TOPDIR
59 #960424 {1.32} Bernd Eckenfels: included the URLs in the Comment
61 #960514 1.31-alpha release
63 #960518 {1.33} Bernd Eckenfels: -I/usr/src/linux/include comment added
65 # This program is free software; you can redistribute it
66 # and/or modify it under the terms of the GNU General
67 # Public License as published by the Free Software
68 # Foundation; either version 2 of the License, or (at
69 # your option) any later version.
72 # set the base of the Installation
75 # path to the net-lib support library. Default: lib
77 NET_LIB_NAME = net-tools
79 PROGS = ifconfig hostname arp netstat route rarp slattach plipconfig
80 ifdef CONFIG_USER_NET_TOOLS_NAMEIF
83 ifdef CONFIG_USER_NET_TOOLS_IPTUNNEL
86 ifdef CONFIG_USER_NET_TOOLS_IPMADDR
89 ifdef CONFIG_USER_NET_TOOLS_MII_TOOL
110 # Compiler and Linker Options
111 # You may need to uncomment and edit these if you are using libc5 and IPv6.
112 COPTS = -D_GNU_SOURCE -D__USE_BSD
114 RESLIB = # -L/usr/inet6/lib -linet6
116 ifeq ($(HAVE_AFDECnet),1)
120 # -------- end of user definitions --------
122 MAINTAINER = Philip.Blundell@pobox.com
125 .EXPORT_ALL_VARIABLES:
127 ifeq ("$(NET_LIB_PATH)","lib2")
130 TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)
133 NET_LIB = $(NET_LIB_PATH)/lib$(NET_LIB_NAME).a
135 CFLAGS += $(COPTS) -I. -idirafter ./include/ -I$(NET_LIB_PATH)
136 LDFLAGS += $(LOPTS) -L$(NET_LIB_PATH)
138 SUBDIRS = man/ $(NET_LIB_PATH)/
140 NLIB = -l$(NET_LIB_NAME)
142 MDEFINES = COPTS='$(COPTS)' LOPTS='$(LOPTS)' TOPDIR='$(TOPDIR)'
144 %.o: %.c config.h version.h intl.h net-features.h $<
145 $(CC) $(CFLAGS) -c $<
147 all: config.h version.h subdirs $(PROGS)
149 config: cleanconfig config.h
151 install: all savebin installbin installdata
153 update: all installbin installdata
156 rm -f *.o DEADJOE config.new *~ *.orig lib/*.o
158 GDBPROGS := $(PROGS:%=%.gdb)
161 rm -f $(PROGS) $(GDBPROGS)
162 @for i in $(SUBDIRS); do (cd $$i && $(MAKE) clean) ; done
163 @cd po && $(MAKE) clean
169 rm -f $(PROGS) config.h version.h config.status config.make
170 @for i in $(SUBDIRS); do (cd $$i && $(MAKE) clobber) ; done
174 @echo Creating net-tools-$(RELEASE) in ..
175 @tar -cvz -f ../net-tools-$(RELEASE).tar.gz -C .. net-tools
178 XXXconfig.h: config.in
179 @echo "Configuring the Linux net-tools (NET-3 Base Utilities)..." ; echo
180 @if [ config.status -nt config.in ]; \
181 then ./configure.sh config.status; \
182 else ./configure.sh config.in; \
187 @echo "#define RELEASE \"net-tools $(RELEASE)\"" >version.h
190 $(NET_LIB): config.h version.h intl.h libdir
195 @$(MAKE) -C $(NET_LIB_PATH) $(MDEFINES)
201 @for i in $(SUBDIRS); do $(MAKE) -C $$i $(MDEFINES) ; done
203 ifconfig: $(NET_LIB) ifconfig.o
204 $(CC) $(LDFLAGS) -o ifconfig ifconfig.o $(NLIB) $(RESLIB) $(LDLIBS)
207 $(CC) $(LDFLAGS) -o nameif nameif.o $(LDLIBS)
210 $(CC) $(LDFLAGS) -o hostname hostname.o $(DNLIB) $(LDLIBS)
212 route: $(NET_LIB) route.o
213 $(CC) $(LDFLAGS) -o route route.o $(NLIB) $(RESLIB) $(LDLIBS)
215 arp: $(NET_LIB) arp.o
216 $(CC) $(LDFLAGS) -o arp arp.o $(NLIB) $(RESLIB) $(LDLIBS)
218 rarp: $(NET_LIB) rarp.o
219 $(CC) $(LDFLAGS) -o rarp rarp.o $(NLIB) $(LDLIBS)
221 slattach: $(NET_LIB) slattach.o
222 $(CC) $(LDFLAGS) -o slattach slattach.o $(NLIB) $(LDLIBS)
224 plipconfig: $(NET_LIB) plipconfig.o
225 $(CC) $(LDFLAGS) -o plipconfig plipconfig.o $(NLIB) $(LDLIBS)
227 netstat: $(NET_LIB) netstat.o statistics.o
228 $(CC) $(LDFLAGS) -o netstat netstat.o statistics.o $(NLIB) $(RESLIB) $(LDLIBS)
230 iptunnel: $(NET_LIB) iptunnel.o
231 $(CC) $(LDFLAGS) -o iptunnel iptunnel.o $(NLIB) $(RESLIB) $(LDLIBS)
233 ipmaddr: $(NET_LIB) ipmaddr.o
234 $(CC) $(LDFLAGS) -o ipmaddr ipmaddr.o $(NLIB) $(RESLIB) $(LDLIBS)
237 $(CC) $(LDFLAGS) -o mii-tool mii-tool.o $(LDLIBS)
240 install -m 0755 -d ${BASEDIR}/sbin
241 install -m 0755 -d ${BASEDIR}/bin
242 install -m 0755 arp ${BASEDIR}/sbin
243 install -m 0755 hostname ${BASEDIR}/bin
244 install -m 0755 ifconfig ${BASEDIR}/sbin
245 install -m 0755 nameif ${BASEDIR}/sbin
246 install -m 0755 netstat ${BASEDIR}/bin
247 install -m 0755 plipconfig $(BASEDIR)/sbin
248 install -m 0755 rarp ${BASEDIR}/sbin
249 install -m 0755 route ${BASEDIR}/sbin
250 install -m 0755 slattach $(BASEDIR)/sbin
251 ifeq ($(HAVE_IP_TOOLS),1)
252 install -m 0755 ipmaddr $(BASEDIR)/sbin
253 install -m 0755 iptunnel $(BASEDIR)/sbin
256 install -m 0755 mii-tool $(BASEDIR)/sbin
258 ln -fs hostname $(BASEDIR)/bin/dnsdomainname
259 ln -fs hostname $(BASEDIR)/bin/ypdomainname
260 ln -fs hostname $(BASEDIR)/bin/nisdomainname
261 ln -fs hostname $(BASEDIR)/bin/domainname
262 ifeq ($(HAVE_AFDECnet),1)
263 ln -fs hostname $(BASEDIR)/bin/nodename
267 @for i in ${BASEDIR}/sbin/arp ${BASEDIR}/sbin/ifconfig \
268 ${BASEDIR}/bin/netstat \
269 ${BASEDIR}/sbin/rarp ${BASEDIR}/sbin/route \
270 ${BASEDIR}/bin/hostname ${BASEDIR}/bin/ypdomainname \
271 ${BASEDIR}/bin/dnsdomainname ${BASEDIR}/bin/nisdomainname \
272 ${BASEDIR}/bin/domainname ; do \
273 [ -f $$i ] && cp -f $$i $$i.old ; done ; echo Saved.
276 $(MAKE) -C man install
277 $(MAKE) -C po install
280 $(ROMFSINST) -e CONFIG_USER_NET_TOOLS_ARP /$(SBINDIR)/arp
281 $(ROMFSINST) -e CONFIG_USER_NET_TOOLS_HOSTNAME /$(BINDIR)/hostname
282 $(ROMFSINST) -e CONFIG_USER_NET_TOOLS_IFCONFIG /$(SBINDIR)/ifconfig
283 $(ROMFSINST) -e CONFIG_USER_NET_TOOLS_NAMEIF /$(SBINDIR)/nameif
284 $(ROMFSINST) -e CONFIG_USER_NET_TOOLS_NETSTAT /$(BINDIR)/netstat
285 $(ROMFSINST) -e CONFIG_USER_NET_TOOLS_PLIPCONFIG /$(SBINDIR)/plipconfig
286 $(ROMFSINST) -e CONFIG_USER_NET_TOOLS_RARP /$(SBINDIR)/rarp
287 $(ROMFSINST) -e CONFIG_USER_NET_TOOLS_ROUTE /$(SBINDIR)/route
288 $(ROMFSINST) -e CONFIG_USER_NET_TOOLS_SLATTACH /$(SBINDIR)/slattach
289 $(ROMFSINST) -e CONFIG_USER_NET_TOOLS_IPMADDR /$(SBINDIR)/ipmaddr
290 $(ROMFSINST) -e CONFIG_USER_NET_TOOLS_IPTUNNEL /$(SBINDIR)/iptunnel
291 $(ROMFSINST) -e CONFIG_USER_NET_TOOLS_MII_TOOL /$(SBINDIR)/mii-tool