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
+=dnet_ntop.o dnet_pton.o
47 ADDLIB
+=ipx_ntop.o ipx_pton.o
50 ADDLIB
+=mpls_ntop.o mpls_pton.o
54 DEFINES
+= -D_GNU_SOURCE
55 # Turn on transparent support for LFS
56 DEFINES
+= -D_FILE_OFFSET_BITS
=64 -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE
58 WFLAGS
:= -Wall
-Wstrict-prototypes
-Wmissing-prototypes
59 WFLAGS
+= -Wmissing-declarations
-Wold-style-definition
-Wformat
=2
61 CFLAGS
:= $(WFLAGS
) $(CCOPTS
) -I..
/include -I..
/include/uapi
$(DEFINES
) $(CFLAGS
)
64 SUBDIRS
=lib ip tc bridge misc netem genl tipc devlink rdma man
66 LIBNETLINK
=..
/lib
/libutil.a ..
/lib
/libnetlink.a
67 LDLIBS
+= $(LIBNETLINK
)
71 for i in
$(SUBDIRS
); \
72 do echo
; echo
$$i; $(MAKE
) $(MFLAGS
) -C
$$i; done
76 @echo
" all - build binaries"
77 @echo
" clean - remove products of build"
78 @echo
" distclean - remove configuration and build"
79 @echo
" install - install binaries on local machine"
80 @echo
" check - run tests"
81 @echo
" cscope - build cscope database"
82 @echo
" snapshot - generate version number header"
84 @echo
"Make Arguments:"
85 @echo
" V=[0|1] - set build verbosity level"
88 sh configure
$(KERNEL_INCLUDE
)
91 install -m
0755 -d
$(DESTDIR
)$(SBINDIR
)
92 install -m
0755 -d
$(DESTDIR
)$(CONFDIR
)
93 install -m
0755 -d
$(DESTDIR
)$(ARPDDIR
)
94 install -m
0755 -d
$(DESTDIR
)$(HDRDIR
)
95 install -m
0755 -d
$(DESTDIR
)$(DOCDIR
)/examples
96 install -m
0755 -d
$(DESTDIR
)$(DOCDIR
)/examples
/diffserv
97 install -m
0644 README.iproute2
+tc
$(shell find examples
-maxdepth
1 -type f
) \
98 $(DESTDIR
)$(DOCDIR
)/examples
99 install -m
0644 $(shell find examples
/diffserv
-maxdepth
1 -type f
) \
100 $(DESTDIR
)$(DOCDIR
)/examples
/diffserv
101 @for i in
$(SUBDIRS
); do
$(MAKE
) -C
$$i install; done
102 install -m
0644 $(shell find etc
/iproute2
-maxdepth
1 -type f
) $(DESTDIR
)$(CONFDIR
)
103 install -m
0755 -d
$(DESTDIR
)$(BASH_COMPDIR
)
104 install -m
0644 bash-completion
/tc
$(DESTDIR
)$(BASH_COMPDIR
)
105 install -m
0644 include/bpf_elf.h
$(DESTDIR
)$(HDRDIR
)
108 echo
"static const char SNAPSHOT[] = \""`date +%y%m%d`"\";" \
112 @for i in
$(SUBDIRS
) testsuite
; \
113 do
$(MAKE
) $(MFLAGS
) -C
$$i clean; done
117 $(MAKE
) $(MFLAGS
) clean
118 rm -f config.mk cscope.
*
123 cd testsuite
&& $(MAKE
) && $(MAKE
) alltests
126 cscope
-b
-q
-R
-Iinclude
-sip
-slib
-smisc
-snetem
-stc
128 .EXPORT_ALL_VARIABLES
: