1 # SPDX-License-Identifier: GPL-2.0
2 # Top level Makefile for iproute2
4 ifeq ("$(origin V)", "command line")
12 MAKEFLAGS
+= --no-print-directory
18 CONFDIR?
=/etc
/iproute2
19 NETNS_RUN_DIR?
=/var
/run
/netns
20 NETNS_ETC_DIR?
=/etc
/netns
21 DATADIR?
=$(PREFIX
)/share
22 HDRDIR?
=$(PREFIX
)/include/iproute2
23 DOCDIR?
=$(DATADIR
)/doc
/iproute2
24 MANDIR?
=$(DATADIR
)/man
25 ARPDDIR?
=/var
/lib
/arpd
26 KERNEL_INCLUDE?
=/usr
/include
27 BASH_COMPDIR?
=$(DATADIR
)/bash-completion
/completions
29 # Path to db_185.h include
30 DBM_INCLUDE
:=$(DESTDIR
)/usr
/include
34 DEFINES
= -DRESOLVE_HOSTNAMES
-DLIBDIR
=\"$(LIBDIR
)\"
35 ifneq ($(SHARED_LIBS
),y
)
36 DEFINES
+= -DNO_SHARED_LIBS
39 DEFINES
+=-DCONFDIR
=\"$(CONFDIR
)\" \
40 -DNETNS_RUN_DIR
=\"$(NETNS_RUN_DIR
)\" \
41 -DNETNS_ETC_DIR
=\"$(NETNS_ETC_DIR
)\"
44 ADDLIB
+=mpls_ntop.o mpls_pton.o
48 DEFINES
+= -D_GNU_SOURCE
49 # Turn on transparent support for LFS
50 DEFINES
+= -D_FILE_OFFSET_BITS
=64 -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE
52 WFLAGS
:= -Wall
-Wstrict-prototypes
-Wmissing-prototypes
53 WFLAGS
+= -Wmissing-declarations
-Wold-style-definition
-Wformat
=2
55 CFLAGS
:= $(WFLAGS
) $(CCOPTS
) -I..
/include -I..
/include/uapi
$(DEFINES
) $(CFLAGS
)
58 SUBDIRS
=lib ip tc bridge misc netem genl tipc devlink rdma man
60 LIBNETLINK
=..
/lib
/libutil.a ..
/lib
/libnetlink.a
61 LDLIBS
+= $(LIBNETLINK
)
65 for i in
$(SUBDIRS
); \
66 do echo
; echo
$$i; $(MAKE
) $(MFLAGS
) -C
$$i; done
70 @echo
" all - build binaries"
71 @echo
" clean - remove products of build"
72 @echo
" distclean - remove configuration and build"
73 @echo
" install - install binaries on local machine"
74 @echo
" check - run tests"
75 @echo
" cscope - build cscope database"
76 @echo
" snapshot - generate version number header"
78 @echo
"Make Arguments:"
79 @echo
" V=[0|1] - set build verbosity level"
82 sh configure
$(KERNEL_INCLUDE
)
85 install -m
0755 -d
$(DESTDIR
)$(SBINDIR
)
86 install -m
0755 -d
$(DESTDIR
)$(CONFDIR
)
87 install -m
0755 -d
$(DESTDIR
)$(ARPDDIR
)
88 install -m
0755 -d
$(DESTDIR
)$(HDRDIR
)
89 install -m
0755 -d
$(DESTDIR
)$(DOCDIR
)/examples
90 install -m
0755 -d
$(DESTDIR
)$(DOCDIR
)/examples
/diffserv
91 install -m
0644 README.iproute2
+tc
$(shell find examples
-maxdepth
1 -type f
) \
92 $(DESTDIR
)$(DOCDIR
)/examples
93 install -m
0644 $(shell find examples
/diffserv
-maxdepth
1 -type f
) \
94 $(DESTDIR
)$(DOCDIR
)/examples
/diffserv
95 @for i in
$(SUBDIRS
); do
$(MAKE
) -C
$$i install; done
96 install -m
0644 $(shell find etc
/iproute2
-maxdepth
1 -type f
) $(DESTDIR
)$(CONFDIR
)
97 install -m
0755 -d
$(DESTDIR
)$(BASH_COMPDIR
)
98 install -m
0644 bash-completion
/tc
$(DESTDIR
)$(BASH_COMPDIR
)
99 install -m
0644 include/bpf_elf.h
$(DESTDIR
)$(HDRDIR
)
102 echo
"static const char SNAPSHOT[] = \""`date +%y%m%d`"\";" \
106 @for i in
$(SUBDIRS
) testsuite
; \
107 do
$(MAKE
) $(MFLAGS
) -C
$$i clean; done
111 $(MAKE
) $(MFLAGS
) clean
112 rm -f config.mk cscope.
*
117 cd testsuite
&& $(MAKE
) && $(MAKE
) alltests
118 @if command
-v man
>/dev
/null
2>&1; then \
119 echo
"Checking manpages for syntax errors..."; \
120 $(MAKE
) -C man
check; \
122 echo
"man not installed, skipping checks for syntax errors."; \
126 cscope
-b
-q
-R
-Iinclude
-sip
-slib
-smisc
-snetem
-stc
128 .EXPORT_ALL_VARIABLES
: