summaryrefslogtreecommitdiffstats
path: root/package/quagga/quagga.mk
blob: 9886255620f3f8d6f5a946208fea3694b94a2ce5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#############################################################
#
# quagga suite
#
#############################################################
QUAGGA_VERSION:=0.99.9
QUAGGA_SOURCE:=quagga-$(QUAGGA_VERSION).tar.gz
QUAGGA_SITE:=http://www.quagga.net/download
QUAGGA_RELIC_SITE:=http://www.quagga.net/download/attic
QUAGGA_DIR:=$(BUILD_DIR)/quagga-$(QUAGGA_VERSION)
QUAGGA_CAT:=$(ZCAT)

QUAGGA_CONFIGURE:=
ifeq ($(BR2_PACKAGE_QUAGGA_ZEBRA),y)
QUAGGA_CONFIGURE+=--enable-zebra
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=zebra
QUAGGA_BINARY=$(QUAGGA_DIR)/zebra/.libs/zebra
endif
else
QUAGGA_CONFIGURE+=--disable-zebra
endif
ifeq ($(BR2_PACKAGE_QUAGGA_BGPD),y)
QUAGGA_CONFIGURE+=--enable-bgpd
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=bgpd
QUAGGA_BINARY=$(QUAGGA_DIR)/bgpd/.libs/bgpd
endif
else
QUAGGA_CONFIGURE+=--disable-bgpd
endif
ifeq ($(BR2_PACKAGE_QUAGGA_RIPD),y)
QUAGGA_CONFIGURE+=--enable-ripd
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=ripd
QUAGGA_BINARY=$(QUAGGA_DIR)/ripd/.libs/ripd
endif
else
QUAGGA_CONFIGURE+=--disable-ripd
endif
ifeq ($(BR2_PACKAGE_QUAGGA_RIPNGD),y)
QUAGGA_CONFIGURE+=--enable-ripngd
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=ripngd
QUAGGA_BINARY=$(QUAGGA_DIR)/ripngd/.libs/ripngd
endif
else
QUAGGA_CONFIGURE+=--disable-ripngd
endif
ifeq ($(BR2_PACKAGE_QUAGGA_OSPFD),y)
QUAGGA_CONFIGURE+=--enable-ospfd
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=ospfd
QUAGGA_BINARY=$(QUAGGA_DIR)/ospfd/.libs/ospfd
endif
else
QUAGGA_CONFIGURE+=--disable-ospfd
endif
ifeq ($(BR2_PACKAGE_QUAGGA_OSPF6D),y)
QUAGGA_CONFIGURE+=--enable-ospf6d
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=ospf6d
QUAGGA_BINARY=$(QUAGGA_DIR)/ospf6d/.libs/ospf6d
endif
else
QUAGGA_CONFIGURE+=--disable-ospf6d
endif
ifeq ($(BR2_PACKAGE_QUAGGA_WATCHQUAGGA),y)
QUAGGA_CONFIGURE+=--enable-watchquagga
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=watchquagga
QUAGGA_BINARY=$(QUAGGA_DIR)/watchquagga/.libs/watchquagga
endif
else
QUAGGA_CONFIGURE+=--disable-watchquagga
endif
ifeq ($(BR2_PACKAGE_QUAGGA_ISISD),y)
QUAGGA_CONFIGURE+=--enable-isisd
ifndef QUAGGA_TARGET_BINARY
QUAGGA_TARGET_BINARY=isisd
QUAGGA_BINARY=$(QUAGGA_DIR)/isisd/.libs/isisd
endif
else
QUAGGA_CONFIGURE+=--disable-isisd
endif


ifeq ($(BR2_PACKAGE_QUAGGA_BGP_ANNOUNCE),y)
QUAGGA_CONFIGURE+=--enable-bgp-announce
else
QUAGGA_CONFIGURE+=--disable-bgp-announce
endif
ifeq ($(BR2_PACKAGE_QUAGGA_NETLINK),y)
QUAGGA_CONFIGURE+=--enable-netlink
else
QUAGGA_CONFIGURE+=--disable-netlink
endif
ifeq ($(BR2_PACKAGE_QUAGGA_SNMP),y)
QUAGGA_CONFIGURE+=--enable-snmp
else
QUAGGA_CONFIGURE+=--disable-snmp
endif
ifeq ($(BR2_PACKAGE_QUAGGA_TCP_ZEBRA),y)
QUAGGA_CONFIGURE+=--enable-tcp-zebra
else
QUAGGA_CONFIGURE+=--disable-tcp-zebra
endif
ifeq ($(BR2_PACKAGE_QUAGGA_OPAGUE_LSA),y)
QUAGGA_CONFIGURE+=--enable-opaque-lsa
else
QUAGGA_CONFIGURE+=--disable-opaque-lsa
endif

QUAGGA_CONFIGURE+=$(subst ",,$(BR2_PACKAGE_QUAGGA_CONFIGURE))
# ")

$(DL_DIR)/$(QUAGGA_SOURCE):
	$(WGET) -P $(DL_DIR) $(QUAGGA_SITE)/$(QUAGGA_SOURCE)

ifneq ($(QUAGGA_PATCH),)
QUAGGA_PATCH_FILE=$(DL_DIR)/$(QUAGGA_PATCH)
$(DL_DIR)/$(QUAGGA_PATCH):
	$(WGET) -P $(DL_DIR) $(QUAGGA_SITE)/$(QUAGGA_PATCH)
endif
quagga-source: $(DL_DIR)/$(QUAGGA_SOURCE) $(QUAGGA_PATCH_FILE)

$(QUAGGA_DIR)/.unpacked: $(DL_DIR)/$(QUAGGA_SOURCE) $(DL_DIR)/$(QUAGGA_PATCH)
	$(QUAGGA_CAT) $(DL_DIR)/$(QUAGGA_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
	toolchain/patch-kernel.sh $(QUAGGA_DIR) package/quagga/ quagga\*.patch
ifneq ($(QUAGGA_PATCH),)
	(cd $(QUAGGA_DIR) && $(QUAGGA_CAT) $(DL_DIR)/$(QUAGGA_PATCH) | patch -p1)
	if [ -d $(QUAGGA_DIR)/debian/patches ]; then \
		toolchain/patch-kernel.sh $(QUAGGA_DIR) $(QUAGGA_DIR)/debian/patches \*.patch; \
	fi
endif
	touch $@

$(QUAGGA_DIR)/.configured: $(QUAGGA_DIR)/.unpacked
	(cd $(QUAGGA_DIR); rm -rf config.cache; \
		$(TARGET_CONFIGURE_OPTS) \
		$(TARGET_CONFIGURE_ARGS) \
		./configure \
		--target=$(GNU_TARGET_NAME) \
		--host=$(GNU_TARGET_NAME) \
		--build=$(GNU_HOST_NAME) \
		--prefix=/usr \
		--sysconfdir=/etc \
		$(DISABLE_LARGEFILE) \
		$(DISABLE_IPV6) \
		$(QUAGGA_CONFIGURE) \
		--program-transform-name='' \
	)
	touch $@

$(QUAGGA_BINARY): $(QUAGGA_DIR)/.configured
	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(QUAGGA_DIR)

$(TARGET_DIR)/usr/sbin/$(QUAGGA_TARGET_BINARY): $(QUAGGA_BINARY)
	$(MAKE) DESTDIR=$(TARGET_DIR) -C $(QUAGGA_DIR) install
ifneq ($(BR2_PACKAGE_QUAGGA_HEADERS),y)
	rm -rf $(TARGET_DIR)/usr/include/quagga
endif
ifneq ($(BR2_HAVE_MANPAGES),y)
	rm -rf $(TARGET_DIR)/usr/man
endif
ifneq ($(BR2_HAVE_INFOPAGES),y)
	rm -rf $(TARGET_DIR)/usr/info
endif

quagga: uclibc $(TARGET_DIR)/usr/sbin/$(QUAGGA_TARGET_BINARY)

quagga-clean:
	-$(MAKE) DESTDIR=$(TARGET_DIR) -C $(QUAGGA_DIR) uninstall
	-$(MAKE) -C $(QUAGGA_DIR) clean

quagga-dirclean:
	rm -rf $(QUAGGA_DIR)
#############################################################
#
# Toplevel Makefile options
#
#############################################################
ifeq ($(strip $(BR2_PACKAGE_QUAGGA)),y)
TARGETS+=quagga
endif