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