]>
Commit | Line | Data |
---|---|---|
6054c1eb | 1 | # SPDX-License-Identifier: GPL-2.0 |
69fed534 | 2 | # Top level Makefile for iproute2 |
e4225669 | 3 | |
ac656141 DA |
4 | ifeq ("$(origin V)", "command line") |
5 | VERBOSE = $(V) | |
6 | endif | |
7 | ifndef VERBOSE | |
8 | VERBOSE = 0 | |
9 | endif | |
10 | ||
eebc7cc1 | 11 | ifeq ($(VERBOSE),0) |
57bdf8b7 DA |
12 | MAKEFLAGS += --no-print-directory |
13 | endif | |
14 | ||
06ec9039 PŠ |
15 | PREFIX?=/usr |
16 | LIBDIR?=$(PREFIX)/lib | |
17 | SBINDIR?=/sbin | |
18 | CONFDIR?=/etc/iproute2 | |
e2f5cecc PM |
19 | NETNS_RUN_DIR?=/var/run/netns |
20 | NETNS_ETC_DIR?=/etc/netns | |
06ec9039 | 21 | DATADIR?=$(PREFIX)/share |
e4225669 | 22 | HDRDIR?=$(PREFIX)/include/iproute2 |
06ec9039 PŠ |
23 | DOCDIR?=$(DATADIR)/doc/iproute2 |
24 | MANDIR?=$(DATADIR)/man | |
25 | ARPDDIR?=/var/lib/arpd | |
26 | KERNEL_INCLUDE?=/usr/include | |
27d44f3a | 27 | BASH_COMPDIR?=$(DATADIR)/bash-completion/completions |
aba5acdf | 28 | |
d1e48c7e | 29 | # Path to db_185.h include |
06ec9039 | 30 | DBM_INCLUDE:=$(DESTDIR)/usr/include |
d1e48c7e | 31 | |
f2e27cfb MF |
32 | SHARED_LIBS = y |
33 | ||
5e3bb534 | 34 | DEFINES= -DRESOLVE_HOSTNAMES -DLIBDIR=\"$(LIBDIR)\" |
f2e27cfb MF |
35 | ifneq ($(SHARED_LIBS),y) |
36 | DEFINES+= -DNO_SHARED_LIBS | |
37 | endif | |
aba5acdf | 38 | |
e2f5cecc PM |
39 | DEFINES+=-DCONFDIR=\"$(CONFDIR)\" \ |
40 | -DNETNS_RUN_DIR=\"$(NETNS_RUN_DIR)\" \ | |
41 | -DNETNS_ETC_DIR=\"$(NETNS_ETC_DIR)\" | |
5c434a9e | 42 | |
dacc5d41 EB |
43 | #options for mpls |
44 | ADDLIB+=mpls_ntop.o mpls_pton.o | |
45 | ||
7ffa2b55 PS |
46 | CC := gcc |
47 | HOSTCC ?= $(CC) | |
c8610020 | 48 | DEFINES += -D_GNU_SOURCE |
232aaf4f MF |
49 | # Turn on transparent support for LFS |
50 | DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE | |
c8610020 | 51 | CCOPTS = -O2 |
3140e9a3 | 52 | WFLAGS := -Wall -Wstrict-prototypes -Wmissing-prototypes |
4ec0ffde | 53 | WFLAGS += -Wmissing-declarations -Wold-style-definition -Wformat=2 |
6398d3a6 | 54 | |
596b1c94 | 55 | CFLAGS := $(WFLAGS) $(CCOPTS) -I../include -I../include/uapi $(DEFINES) $(CFLAGS) |
9ddbb02e | 56 | YACCFLAGS = -d -t -v |
aba5acdf | 57 | |
74bd75c2 | 58 | SUBDIRS=lib ip tc bridge misc netem genl tipc devlink rdma man |
aba5acdf | 59 | |
0cec58da | 60 | LIBNETLINK=../lib/libutil.a ../lib/libnetlink.a |
2230ac1d | 61 | LDLIBS += $(LIBNETLINK) |
aba5acdf | 62 | |
5f1df307 | 63 | all: config.mk |
95dd5950 MF |
64 | @set -e; \ |
65 | for i in $(SUBDIRS); \ | |
57bdf8b7 | 66 | do echo; echo $$i; $(MAKE) $(MFLAGS) -C $$i; done |
adff36d7 | 67 | |
11152f0a SH |
68 | help: |
69 | @echo "Make Targets:" | |
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" | |
8804a8c0 | 74 | @echo " check - run tests" |
11152f0a SH |
75 | @echo " cscope - build cscope database" |
76 | @echo " snapshot - generate version number header" | |
77 | @echo "" | |
78 | @echo "Make Arguments:" | |
79 | @echo " V=[0|1] - set build verbosity level" | |
80 | ||
5f1df307 | 81 | config.mk: |
f35e9289 | 82 | sh configure $(KERNEL_INCLUDE) |
aba5acdf | 83 | |
aba5acdf SH |
84 | install: all |
85 | install -m 0755 -d $(DESTDIR)$(SBINDIR) | |
e9a05e96 | 86 | install -m 0755 -d $(DESTDIR)$(CONFDIR) |
e48f73d6 | 87 | install -m 0755 -d $(DESTDIR)$(ARPDDIR) |
e4225669 | 88 | install -m 0755 -d $(DESTDIR)$(HDRDIR) |
aba5acdf SH |
89 | install -m 0755 -d $(DESTDIR)$(DOCDIR)/examples |
90 | install -m 0755 -d $(DESTDIR)$(DOCDIR)/examples/diffserv | |
c72238e4 | 91 | install -m 0644 README.iproute2+tc $(shell find examples -maxdepth 1 -type f) \ |
e9a05e96 | 92 | $(DESTDIR)$(DOCDIR)/examples |
c72238e4 | 93 | install -m 0644 $(shell find examples/diffserv -maxdepth 1 -type f) \ |
e9a05e96 | 94 | $(DESTDIR)$(DOCDIR)/examples/diffserv |
b2fd7a0e | 95 | @for i in $(SUBDIRS); do $(MAKE) -C $$i install; done |
c72238e4 | 96 | install -m 0644 $(shell find etc/iproute2 -maxdepth 1 -type f) $(DESTDIR)$(CONFDIR) |
27d44f3a QM |
97 | install -m 0755 -d $(DESTDIR)$(BASH_COMPDIR) |
98 | install -m 0644 bash-completion/tc $(DESTDIR)$(BASH_COMPDIR) | |
e4225669 | 99 | install -m 0644 include/bpf_elf.h $(DESTDIR)$(HDRDIR) |
aba5acdf | 100 | |
235ac6a4 SH |
101 | snapshot: |
102 | echo "static const char SNAPSHOT[] = \""`date +%y%m%d`"\";" \ | |
103 | > include/SNAPSHOT.h | |
104 | ||
aba5acdf | 105 | clean: |
ad23e152 | 106 | @for i in $(SUBDIRS) testsuite; \ |
adff36d7 SH |
107 | do $(MAKE) $(MFLAGS) -C $$i clean; done |
108 | ||
82408fc1 | 109 | clobber: |
5f1df307 | 110 | touch config.mk |
82408fc1 | 111 | $(MAKE) $(MFLAGS) clean |
5f1df307 | 112 | rm -f config.mk cscope.* |
adff36d7 | 113 | |
87773db5 | 114 | distclean: clobber |
aba5acdf | 115 | |
0115d55e | 116 | check: all |
8804a8c0 | 117 | cd testsuite && $(MAKE) && $(MAKE) alltests |
0cf06118 LB |
118 | @if command -v man >/dev/null 2>&1; then \ |
119 | echo "Checking manpages for syntax errors..."; \ | |
120 | $(MAKE) -C man check; \ | |
121 | else \ | |
122 | echo "man not installed, skipping checks for syntax errors."; \ | |
123 | fi | |
8804a8c0 | 124 | |
f6aa8e00 SH |
125 | cscope: |
126 | cscope -b -q -R -Iinclude -sip -slib -smisc -snetem -stc | |
127 | ||
aba5acdf | 128 | .EXPORT_ALL_VARIABLES: |