]> git.proxmox.com Git - mirror_iproute2.git/blob - Makefile
Merge branch 'master' into net-next
[mirror_iproute2.git] / Makefile
1 ifndef VERBOSE
2 MAKEFLAGS += --no-print-directory
3 endif
4
5 PREFIX?=/usr
6 LIBDIR?=$(PREFIX)/lib
7 SBINDIR?=/sbin
8 CONFDIR?=/etc/iproute2
9 DATADIR?=$(PREFIX)/share
10 DOCDIR?=$(DATADIR)/doc/iproute2
11 MANDIR?=$(DATADIR)/man
12 ARPDDIR?=/var/lib/arpd
13 KERNEL_INCLUDE?=/usr/include
14 BASH_COMPDIR?=$(DATADIR)/bash-completion/completions
15
16 # Path to db_185.h include
17 DBM_INCLUDE:=$(DESTDIR)/usr/include
18
19 SHARED_LIBS = y
20
21 DEFINES= -DRESOLVE_HOSTNAMES -DLIBDIR=\"$(LIBDIR)\"
22 ifneq ($(SHARED_LIBS),y)
23 DEFINES+= -DNO_SHARED_LIBS
24 endif
25
26 DEFINES+=-DCONFDIR=\"$(CONFDIR)\"
27
28 #options for decnet
29 ADDLIB+=dnet_ntop.o dnet_pton.o
30
31 #options for ipx
32 ADDLIB+=ipx_ntop.o ipx_pton.o
33
34 #options for mpls
35 ADDLIB+=mpls_ntop.o mpls_pton.o
36
37 CC := gcc
38 HOSTCC ?= $(CC)
39 DEFINES += -D_GNU_SOURCE
40 # Turn on transparent support for LFS
41 DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
42 CCOPTS = -O2
43 WFLAGS := -Wall -Wstrict-prototypes -Wmissing-prototypes
44 WFLAGS += -Wmissing-declarations -Wold-style-definition -Wformat=2
45
46 CFLAGS := $(WFLAGS) $(CCOPTS) -I../include $(DEFINES) $(CFLAGS)
47 YACCFLAGS = -d -t -v
48
49 SUBDIRS=lib ip tc bridge misc netem genl tipc devlink man
50
51 LIBNETLINK=../lib/libnetlink.a ../lib/libutil.a
52 LDLIBS += $(LIBNETLINK)
53
54 all: Config
55 @set -e; \
56 for i in $(SUBDIRS); \
57 do echo; echo $$i; $(MAKE) $(MFLAGS) -C $$i; done
58
59 Config:
60 sh configure $(KERNEL_INCLUDE)
61
62 install: all
63 install -m 0755 -d $(DESTDIR)$(SBINDIR)
64 install -m 0755 -d $(DESTDIR)$(CONFDIR)
65 install -m 0755 -d $(DESTDIR)$(ARPDDIR)
66 install -m 0755 -d $(DESTDIR)$(DOCDIR)/examples
67 install -m 0755 -d $(DESTDIR)$(DOCDIR)/examples/diffserv
68 install -m 0644 README.iproute2+tc $(shell find examples -maxdepth 1 -type f) \
69 $(DESTDIR)$(DOCDIR)/examples
70 install -m 0644 $(shell find examples/diffserv -maxdepth 1 -type f) \
71 $(DESTDIR)$(DOCDIR)/examples/diffserv
72 @for i in $(SUBDIRS) doc; do $(MAKE) -C $$i install; done
73 install -m 0644 $(shell find etc/iproute2 -maxdepth 1 -type f) $(DESTDIR)$(CONFDIR)
74 install -m 0755 -d $(DESTDIR)$(BASH_COMPDIR)
75 install -m 0644 bash-completion/tc $(DESTDIR)$(BASH_COMPDIR)
76
77 snapshot:
78 echo "static const char SNAPSHOT[] = \""`date +%y%m%d`"\";" \
79 > include/SNAPSHOT.h
80
81 clean:
82 @for i in $(SUBDIRS) doc; \
83 do $(MAKE) $(MFLAGS) -C $$i clean; done
84
85 clobber:
86 touch Config
87 $(MAKE) $(MFLAGS) clean
88 rm -f Config cscope.*
89
90 distclean: clobber
91
92 cscope:
93 cscope -b -q -R -Iinclude -sip -slib -smisc -snetem -stc
94
95 .EXPORT_ALL_VARIABLES: