]>
Commit | Line | Data |
---|---|---|
1 | # SPDX-License-Identifier: GPL-2.0 | |
2 | # Top level Makefile for iproute2 | |
3 | ||
4 | ifeq ("$(origin V)", "command line") | |
5 | VERBOSE = $(V) | |
6 | endif | |
7 | ifndef VERBOSE | |
8 | VERBOSE = 0 | |
9 | endif | |
10 | ||
11 | ifeq ($(VERBOSE),0) | |
12 | MAKEFLAGS += --no-print-directory | |
13 | endif | |
14 | ||
15 | PREFIX?=/usr | |
16 | LIBDIR?=$(PREFIX)/lib | |
17 | SBINDIR?=/sbin | |
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 | |
28 | ||
29 | # Path to db_185.h include | |
30 | DBM_INCLUDE:=$(DESTDIR)/usr/include | |
31 | ||
32 | SHARED_LIBS = y | |
33 | ||
34 | DEFINES= -DRESOLVE_HOSTNAMES -DLIBDIR=\"$(LIBDIR)\" | |
35 | ifneq ($(SHARED_LIBS),y) | |
36 | DEFINES+= -DNO_SHARED_LIBS | |
37 | endif | |
38 | ||
39 | DEFINES+=-DCONFDIR=\"$(CONFDIR)\" \ | |
40 | -DNETNS_RUN_DIR=\"$(NETNS_RUN_DIR)\" \ | |
41 | -DNETNS_ETC_DIR=\"$(NETNS_ETC_DIR)\" | |
42 | ||
43 | #options for decnet | |
44 | ADDLIB+=dnet_ntop.o dnet_pton.o | |
45 | ||
46 | #options for ipx | |
47 | ADDLIB+=ipx_ntop.o ipx_pton.o | |
48 | ||
49 | #options for mpls | |
50 | ADDLIB+=mpls_ntop.o mpls_pton.o | |
51 | ||
52 | CC := gcc | |
53 | HOSTCC ?= $(CC) | |
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 | |
57 | CCOPTS = -O2 | |
58 | WFLAGS := -Wall -Wstrict-prototypes -Wmissing-prototypes | |
59 | WFLAGS += -Wmissing-declarations -Wold-style-definition -Wformat=2 | |
60 | ||
61 | CFLAGS := $(WFLAGS) $(CCOPTS) -I../include -I../include/uapi $(DEFINES) $(CFLAGS) | |
62 | YACCFLAGS = -d -t -v | |
63 | ||
64 | SUBDIRS=lib ip tc bridge misc netem genl tipc devlink rdma man | |
65 | ||
66 | LIBNETLINK=../lib/libutil.a ../lib/libnetlink.a | |
67 | LDLIBS += $(LIBNETLINK) | |
68 | ||
69 | all: config.mk | |
70 | @set -e; \ | |
71 | for i in $(SUBDIRS); \ | |
72 | do echo; echo $$i; $(MAKE) $(MFLAGS) -C $$i; done | |
73 | ||
74 | help: | |
75 | @echo "Make Targets:" | |
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" | |
83 | @echo "" | |
84 | @echo "Make Arguments:" | |
85 | @echo " V=[0|1] - set build verbosity level" | |
86 | ||
87 | config.mk: | |
88 | sh configure $(KERNEL_INCLUDE) | |
89 | ||
90 | install: all | |
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) | |
106 | ||
107 | snapshot: | |
108 | echo "static const char SNAPSHOT[] = \""`date +%y%m%d`"\";" \ | |
109 | > include/SNAPSHOT.h | |
110 | ||
111 | clean: | |
112 | @for i in $(SUBDIRS) testsuite; \ | |
113 | do $(MAKE) $(MFLAGS) -C $$i clean; done | |
114 | ||
115 | clobber: | |
116 | touch config.mk | |
117 | $(MAKE) $(MFLAGS) clean | |
118 | rm -f config.mk cscope.* | |
119 | ||
120 | distclean: clobber | |
121 | ||
122 | check: | |
123 | cd testsuite && $(MAKE) && $(MAKE) alltests | |
124 | ||
125 | cscope: | |
126 | cscope -b -q -R -Iinclude -sip -slib -smisc -snetem -stc | |
127 | ||
128 | .EXPORT_ALL_VARIABLES: |