blob: fa200ddb76679f0db53890e6f7843b85542afa0a [file] [log] [blame]
David Ahern57bdf8b2016-05-24 15:04:49 -07001ifndef VERBOSE
2MAKEFLAGS += --no-print-directory
3endif
4
Pavel Šimerda06ec9032015-04-13 16:00:56 +02005PREFIX?=/usr
6LIBDIR?=$(PREFIX)/lib
7SBINDIR?=/sbin
8CONFDIR?=/etc/iproute2
9DATADIR?=$(PREFIX)/share
10DOCDIR?=$(DATADIR)/doc/iproute2
11MANDIR?=$(DATADIR)/man
12ARPDDIR?=/var/lib/arpd
13KERNEL_INCLUDE?=/usr/include
Quentin Monnet27d44f32016-05-03 09:39:08 +020014BASH_COMPDIR?=$(DATADIR)/bash-completion/completions
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000015
osdl.net!shemmingerd1e48c72004-06-25 21:20:20 +000016# Path to db_185.h include
Pavel Šimerda06ec9032015-04-13 16:00:56 +020017DBM_INCLUDE:=$(DESTDIR)/usr/include
osdl.net!shemmingerd1e48c72004-06-25 21:20:20 +000018
Mike Frysingerf2e27cf2009-11-06 06:09:22 -050019SHARED_LIBS = y
20
Andreas Henriksson5e3bb532008-08-22 16:54:12 +020021DEFINES= -DRESOLVE_HOSTNAMES -DLIBDIR=\"$(LIBDIR)\"
Mike Frysingerf2e27cf2009-11-06 06:09:22 -050022ifneq ($(SHARED_LIBS),y)
23DEFINES+= -DNO_SHARED_LIBS
24endif
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000025
Christoph J. Thompson5c434a92012-03-01 17:46:26 +010026DEFINES+=-DCONFDIR=\"$(CONFDIR)\"
27
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000028#options for decnet
29ADDLIB+=dnet_ntop.o dnet_pton.o
30
31#options for ipx
32ADDLIB+=ipx_ntop.o ipx_pton.o
33
Eric W. Biedermandacc5d42015-03-15 14:53:45 -050034#options for mpls
35ADDLIB+=mpls_ntop.o mpls_pton.o
36
Phil Sutter7ffa2b52016-07-18 16:48:45 +020037CC := gcc
38HOSTCC ?= $(CC)
Christoph J. Thompsonc8610022012-03-01 06:45:17 +000039DEFINES += -D_GNU_SOURCE
Mike Frysinger232aaf42015-05-26 02:51:30 -040040# Turn on transparent support for LFS
41DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
Christoph J. Thompsonc8610022012-03-01 06:45:17 +000042CCOPTS = -O2
Stephen Hemminger3140e9a2013-07-31 17:42:39 -070043WFLAGS := -Wall -Wstrict-prototypes -Wmissing-prototypes
Stephen Hemminger4ec0ffd2014-05-29 10:31:30 -070044WFLAGS += -Wmissing-declarations -Wold-style-definition -Wformat=2
Stephen Hemminger6398d3a2013-02-12 11:39:32 -080045
Pavel Šimerda06ec9032015-04-13 16:00:56 +020046CFLAGS := $(WFLAGS) $(CCOPTS) -I../include $(DEFINES) $(CFLAGS)
shemminger9ddbb022005-06-23 17:21:46 +000047YACCFLAGS = -d -t -v
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000048
Jiri Pirkoa3c4b482016-03-22 10:02:21 +010049SUBDIRS=lib ip tc bridge misc netem genl tipc devlink man
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000050
51LIBNETLINK=../lib/libnetlink.a ../lib/libutil.a
Diego Elio Pettenò2230ac12011-03-09 10:18:03 -080052LDLIBS += $(LIBNETLINK)
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000053
shemminger737f15f2005-07-08 22:08:47 +000054all: Config
Mike Frysinger95dd5952007-03-05 17:50:49 -080055 @set -e; \
56 for i in $(SUBDIRS); \
David Ahern57bdf8b2016-05-24 15:04:49 -070057 do echo; echo $$i; $(MAKE) $(MFLAGS) -C $$i; done
osdl.net!shemmingeradff36d2004-06-25 21:14:22 +000058
59Config:
shemmingerf35e9282005-06-07 21:48:09 +000060 sh configure $(KERNEL_INCLUDE)
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000061
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000062install: all
63 install -m 0755 -d $(DESTDIR)$(SBINDIR)
osdl.net!shemmingere9a05e92004-07-02 17:47:15 +000064 install -m 0755 -d $(DESTDIR)$(CONFDIR)
Olaf Rempele48f73d2005-11-09 15:25:40 +010065 install -m 0755 -d $(DESTDIR)$(ARPDDIR)
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000066 install -m 0755 -d $(DESTDIR)$(DOCDIR)/examples
67 install -m 0755 -d $(DESTDIR)$(DOCDIR)/examples/diffserv
osdl.net!shemmingerc72238e2004-12-07 23:57:50 +000068 install -m 0644 README.iproute2+tc $(shell find examples -maxdepth 1 -type f) \
osdl.net!shemmingere9a05e92004-07-02 17:47:15 +000069 $(DESTDIR)$(DOCDIR)/examples
osdl.net!shemmingerc72238e2004-12-07 23:57:50 +000070 install -m 0644 $(shell find examples/diffserv -maxdepth 1 -type f) \
osdl.net!shemmingere9a05e92004-07-02 17:47:15 +000071 $(DESTDIR)$(DOCDIR)/examples/diffserv
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000072 @for i in $(SUBDIRS) doc; do $(MAKE) -C $$i install; done
osdl.net!shemmingerc72238e2004-12-07 23:57:50 +000073 install -m 0644 $(shell find etc/iproute2 -maxdepth 1 -type f) $(DESTDIR)$(CONFDIR)
Quentin Monnet27d44f32016-05-03 09:39:08 +020074 install -m 0755 -d $(DESTDIR)$(BASH_COMPDIR)
75 install -m 0644 bash-completion/tc $(DESTDIR)$(BASH_COMPDIR)
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000076
Stephen Hemminger235ac6a2007-12-21 09:53:45 -080077snapshot:
78 echo "static const char SNAPSHOT[] = \""`date +%y%m%d`"\";" \
79 > include/SNAPSHOT.h
80
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000081clean:
osdl.net!shemmingeradff36d2004-06-25 21:14:22 +000082 @for i in $(SUBDIRS) doc; \
83 do $(MAKE) $(MFLAGS) -C $$i clean; done
84
Stephen Hemminger82408fc2010-11-18 15:25:38 -080085clobber:
86 touch Config
87 $(MAKE) $(MFLAGS) clean
Stephen Hemmingera6ddc202012-03-14 10:22:25 -070088 rm -f Config cscope.*
osdl.net!shemmingeradff36d2004-06-25 21:14:22 +000089
shemminger87773db2005-06-23 17:23:53 +000090distclean: clobber
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000091
shemmingerf6aa8e02005-06-23 17:31:49 +000092cscope:
93 cscope -b -q -R -Iinclude -sip -slib -smisc -snetem -stc
94
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000095.EXPORT_ALL_VARIABLES: