blob: 1f88f7f5669183c4170b0df0f8d065c6da271f2f [file] [log] [blame]
Stephen Hemminger69fed532017-08-09 08:45:04 -07001# Top level Makefile for iproute2
Daniel Borkmanne4225662016-11-10 01:20:59 +01002
David Aherneebc7cc2016-12-07 12:55:09 -08003ifeq ($(VERBOSE),0)
David Ahern57bdf8b2016-05-24 15:04:49 -07004MAKEFLAGS += --no-print-directory
5endif
6
Pavel Šimerda06ec9032015-04-13 16:00:56 +02007PREFIX?=/usr
8LIBDIR?=$(PREFIX)/lib
9SBINDIR?=/sbin
10CONFDIR?=/etc/iproute2
11DATADIR?=$(PREFIX)/share
Daniel Borkmanne4225662016-11-10 01:20:59 +010012HDRDIR?=$(PREFIX)/include/iproute2
Pavel Šimerda06ec9032015-04-13 16:00:56 +020013DOCDIR?=$(DATADIR)/doc/iproute2
14MANDIR?=$(DATADIR)/man
15ARPDDIR?=/var/lib/arpd
16KERNEL_INCLUDE?=/usr/include
Quentin Monnet27d44f32016-05-03 09:39:08 +020017BASH_COMPDIR?=$(DATADIR)/bash-completion/completions
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000018
osdl.net!shemmingerd1e48c72004-06-25 21:20:20 +000019# Path to db_185.h include
Pavel Šimerda06ec9032015-04-13 16:00:56 +020020DBM_INCLUDE:=$(DESTDIR)/usr/include
osdl.net!shemmingerd1e48c72004-06-25 21:20:20 +000021
Mike Frysingerf2e27cf2009-11-06 06:09:22 -050022SHARED_LIBS = y
23
Andreas Henriksson5e3bb532008-08-22 16:54:12 +020024DEFINES= -DRESOLVE_HOSTNAMES -DLIBDIR=\"$(LIBDIR)\"
Mike Frysingerf2e27cf2009-11-06 06:09:22 -050025ifneq ($(SHARED_LIBS),y)
26DEFINES+= -DNO_SHARED_LIBS
27endif
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000028
Christoph J. Thompson5c434a92012-03-01 17:46:26 +010029DEFINES+=-DCONFDIR=\"$(CONFDIR)\"
30
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000031#options for decnet
32ADDLIB+=dnet_ntop.o dnet_pton.o
33
34#options for ipx
35ADDLIB+=ipx_ntop.o ipx_pton.o
36
Eric W. Biedermandacc5d42015-03-15 14:53:45 -050037#options for mpls
38ADDLIB+=mpls_ntop.o mpls_pton.o
39
Phil Sutter7ffa2b52016-07-18 16:48:45 +020040CC := gcc
41HOSTCC ?= $(CC)
Christoph J. Thompsonc8610022012-03-01 06:45:17 +000042DEFINES += -D_GNU_SOURCE
Mike Frysinger232aaf42015-05-26 02:51:30 -040043# Turn on transparent support for LFS
44DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
Christoph J. Thompsonc8610022012-03-01 06:45:17 +000045CCOPTS = -O2
Stephen Hemminger3140e9a2013-07-31 17:42:39 -070046WFLAGS := -Wall -Wstrict-prototypes -Wmissing-prototypes
Stephen Hemminger4ec0ffd2014-05-29 10:31:30 -070047WFLAGS += -Wmissing-declarations -Wold-style-definition -Wformat=2
Stephen Hemminger6398d3a2013-02-12 11:39:32 -080048
Pavel Šimerda06ec9032015-04-13 16:00:56 +020049CFLAGS := $(WFLAGS) $(CCOPTS) -I../include $(DEFINES) $(CFLAGS)
shemminger9ddbb022005-06-23 17:21:46 +000050YACCFLAGS = -d -t -v
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000051
Jiri Pirkoa3c4b482016-03-22 10:02:21 +010052SUBDIRS=lib ip tc bridge misc netem genl tipc devlink man
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000053
54LIBNETLINK=../lib/libnetlink.a ../lib/libutil.a
Diego Elio Pettenò2230ac12011-03-09 10:18:03 -080055LDLIBS += $(LIBNETLINK)
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000056
shemminger737f15f2005-07-08 22:08:47 +000057all: Config
Mike Frysinger95dd5952007-03-05 17:50:49 -080058 @set -e; \
59 for i in $(SUBDIRS); \
David Ahern57bdf8b2016-05-24 15:04:49 -070060 do echo; echo $$i; $(MAKE) $(MFLAGS) -C $$i; done
osdl.net!shemmingeradff36d2004-06-25 21:14:22 +000061
62Config:
shemmingerf35e9282005-06-07 21:48:09 +000063 sh configure $(KERNEL_INCLUDE)
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000064
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000065install: all
66 install -m 0755 -d $(DESTDIR)$(SBINDIR)
osdl.net!shemmingere9a05e92004-07-02 17:47:15 +000067 install -m 0755 -d $(DESTDIR)$(CONFDIR)
Olaf Rempele48f73d2005-11-09 15:25:40 +010068 install -m 0755 -d $(DESTDIR)$(ARPDDIR)
Daniel Borkmanne4225662016-11-10 01:20:59 +010069 install -m 0755 -d $(DESTDIR)$(HDRDIR)
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000070 install -m 0755 -d $(DESTDIR)$(DOCDIR)/examples
71 install -m 0755 -d $(DESTDIR)$(DOCDIR)/examples/diffserv
osdl.net!shemmingerc72238e2004-12-07 23:57:50 +000072 install -m 0644 README.iproute2+tc $(shell find examples -maxdepth 1 -type f) \
osdl.net!shemmingere9a05e92004-07-02 17:47:15 +000073 $(DESTDIR)$(DOCDIR)/examples
osdl.net!shemmingerc72238e2004-12-07 23:57:50 +000074 install -m 0644 $(shell find examples/diffserv -maxdepth 1 -type f) \
osdl.net!shemmingere9a05e92004-07-02 17:47:15 +000075 $(DESTDIR)$(DOCDIR)/examples/diffserv
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000076 @for i in $(SUBDIRS) doc; do $(MAKE) -C $$i install; done
osdl.net!shemmingerc72238e2004-12-07 23:57:50 +000077 install -m 0644 $(shell find etc/iproute2 -maxdepth 1 -type f) $(DESTDIR)$(CONFDIR)
Quentin Monnet27d44f32016-05-03 09:39:08 +020078 install -m 0755 -d $(DESTDIR)$(BASH_COMPDIR)
79 install -m 0644 bash-completion/tc $(DESTDIR)$(BASH_COMPDIR)
Daniel Borkmanne4225662016-11-10 01:20:59 +010080 install -m 0644 include/bpf_elf.h $(DESTDIR)$(HDRDIR)
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000081
Stephen Hemminger235ac6a2007-12-21 09:53:45 -080082snapshot:
83 echo "static const char SNAPSHOT[] = \""`date +%y%m%d`"\";" \
84 > include/SNAPSHOT.h
85
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000086clean:
osdl.net!shemmingeradff36d2004-06-25 21:14:22 +000087 @for i in $(SUBDIRS) doc; \
88 do $(MAKE) $(MFLAGS) -C $$i clean; done
89
Stephen Hemminger82408fc2010-11-18 15:25:38 -080090clobber:
91 touch Config
92 $(MAKE) $(MFLAGS) clean
Stephen Hemmingera6ddc202012-03-14 10:22:25 -070093 rm -f Config cscope.*
osdl.net!shemmingeradff36d2004-06-25 21:14:22 +000094
shemminger87773db2005-06-23 17:23:53 +000095distclean: clobber
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000096
shemmingerf6aa8e02005-06-23 17:31:49 +000097cscope:
98 cscope -b -q -R -Iinclude -sip -slib -smisc -snetem -stc
99
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +0000100.EXPORT_ALL_VARIABLES: