[packages] Use default templates instead of custom reimplementations where applicable
[packages.git] / libs / avahi / Makefile
1 #
2 # Copyright (C) 2007-2009 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=avahi
11 PKG_VERSION:=0.6.25
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=http://avahi.org/download/
16 PKG_MD5SUM:=a83155a6e29e3988f07e5eea3287b21e
17
18 PKG_BUILD_DEPENDS:=libexpat libdaemon libgdbm intltool/host
19
20 PKG_FIXUP:=libtool
21 PKG_INSTALL:=1
22
23 include $(INCLUDE_DIR)/package.mk
24
25 define Package/avahi/Default
26   SECTION:=net
27   CATEGORY:=Network
28   TITLE:=An mDNS/DNS-SD implementation
29   URL:=http://www.avahi.org/
30 endef
31
32 define Package/avahi/Default/description
33  An mDNS/DNS-SD (aka RendezVous/Bonjour/ZeroConf) implementation (library).
34  Avahi is a system which facilitates service discovery on a local network --
35  this means that you can plug your laptop or computer into a network and
36  instantly be able to view other people who you can chat with, find printers
37  to print to or find files being shared. This kind of technology is already
38  found in MacOS X (branded 'Rendezvous', 'Bonjour' and sometimes 'ZeroConf')
39  and is very convenient.
40 endef
41
42 define Package/libavahi
43   $(call Package/avahi/Default)
44   SECTION:=libs
45   CATEGORY:=Libraries
46   DEPENDS:=+libdaemon +libpthread +libgdbm
47   TITLE+= (library)
48 endef
49
50 define Package/libavahi/description
51 $(call Package/avahi/Default/description)
52  .
53  This package contains the mDNS/DNS-SD shared libraries, used by other programs.
54 endef
55
56 define Package/avahi-autoipd
57   $(call Package/avahi/Default)
58   DEPENDS:=+libdaemon
59   TITLE:=IPv4LL network address configuration daemon
60 endef
61
62 define Package/avahi-autoipd/description
63 $(call Package/avahi/Default/description)
64  .
65  This package implements IPv4LL, "Dynamic Configuration of IPv4 Link-Local 
66  Addresses" (IETF RFC3927), a protocol for automatic IP address configuration 
67  from the link-local 169.254.0.0/16 range without the need for a central 
68  server. It is primarily intended to be used in ad-hoc networks which lack a
69  DHCP server.
70 endef
71
72 define Package/avahi-daemon
73   $(call Package/avahi/Default)
74   DEPENDS:=+libavahi +libexpat
75   TITLE+= (daemon)
76 endef
77
78 define Package/avahi-daemon/description
79 $(call Package/avahi/Default/description)
80  .
81  This package contains an mDNS/DNS-SD daemon.
82 endef
83
84 define Package/avahi-daemon/conffiles
85 /etc/avahi/avahi-daemon.conf
86 /etc/avahi/services/http.service
87 /etc/avahi/services/ssh.service
88 endef
89
90 define Package/avahi-dnsconfd
91   $(call Package/avahi/Default)
92   DEPENDS:=+libavahi
93   TITLE:=An Unicast DNS server from mDNS/DNS-SD configuration daemon
94 endef
95
96 define Package/avahi-dnsconfd/description
97 $(call Package/avahi/Default/description)
98  .
99  This package contains an Unicast DNS server from mDNS/DNS-SD configuration
100  daemon, which may be used to configure conventional DNS servers using mDNS
101  in a DHCP-like fashion. Especially useful on IPv6.
102 endef
103
104 TARGET_CFLAGS += $(FPIC) -DGETTEXT_PACKAGE
105
106 CONFIGURE_ARGS+= \
107         --enable-shared \
108         --enable-static \
109         --disable-glib \
110         --disable-gobject \
111         --disable-qt3 \
112         --disable-qt4 \
113         --disable-gtk \
114         --disable-dbus \
115         --with-xml=expat \
116         --disable-dbm \
117         --enable-gdbm \
118         --enable-libdaemon \
119         --disable-python \
120         --disable-pygtk \
121         --disable-python-dbus \
122         --disable-mono \
123         --disable-monodoc \
124         --disable-doxygen-doc \
125         --disable-doxygen-dot \
126         --disable-doxygen-man \
127         --disable-doxygen-rtf \
128         --disable-doxygen-xml \
129         --disable-doxygen-chm \
130         --disable-doxygen-chi \
131         --disable-doxygen-html \
132         --disable-doxygen-ps \
133         --disable-doxygen-pdf \
134         --disable-xmltoman \
135         --with-distro=none \
136         --with-avahi-user=nobody \
137         --with-avahi-group=nogroup \
138         --with-autoipd-user=nobody \
139         --with-autoipd-group=nogroup
140
141 ifneq ($(CONFIG_SSP_SUPPORT),y)
142 CONFIGURE_ARGS+= \
143         --disable-stack-protector
144 endif
145
146 CONFIGURE_VARS+= \
147         CFLAGS="$$$$CFLAGS -DNDEBUG" \
148
149 define Build/Configure
150         ( cd $(PKG_BUILD_DIR); aclocal; libtoolize; autoreconf; );
151         $(call Build/Configure/Default)
152 endef
153
154 define Build/InstallDev
155         $(INSTALL_DIR) $(1)/usr/include
156         $(CP) $(PKG_INSTALL_DIR)/usr/include/avahi-{common,core} $(1)/usr/include/
157         $(INSTALL_DIR) $(1)/usr/lib
158         $(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-{common,core}.{a,so*} $(1)/usr/lib/
159         $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
160         $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/avahi-core.pc $(1)/usr/lib/pkgconfig/
161 endef
162
163 define Package/libavahi/install
164         $(INSTALL_DIR) $(1)/usr/lib
165         $(CP) $(PKG_INSTALL_DIR)/usr/lib/libavahi-{common,core}.so.* $(1)/usr/lib/
166 endef
167
168 define Package/avahi-autoipd/install
169         $(INSTALL_DIR) $(1)/etc/avahi
170         $(CP) $(PKG_INSTALL_DIR)/etc/avahi/avahi-autoipd.action $(1)/etc/avahi/
171         $(INSTALL_DIR) $(1)/usr/sbin
172         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/avahi-autoipd $(1)/usr/sbin/
173 endef
174
175 define Package/avahi-daemon/install
176         $(INSTALL_DIR) $(1)/usr/sbin
177         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/avahi-daemon $(1)/usr/sbin/
178         $(INSTALL_DIR) $(1)/etc/avahi
179         $(INSTALL_DATA) ./files/avahi-daemon.conf $(1)/etc/avahi/
180         $(INSTALL_DIR) $(1)/etc/avahi/services
181         $(INSTALL_DATA) ./files/service-http $(1)/etc/avahi/services/http.service
182         $(INSTALL_DATA) ./files/service-ssh $(1)/etc/avahi/services/ssh.service
183         $(INSTALL_DIR) $(1)/etc/init.d
184         $(INSTALL_BIN) ./files/avahi-daemon.init $(1)/etc/init.d/avahi-daemon
185 endef
186
187 define Package/avahi-dnsconfd/install
188         $(INSTALL_DIR) $(1)/etc/avahi
189         $(CP) $(PKG_INSTALL_DIR)/etc/avahi/avahi-dnsconfd.action $(1)/etc/avahi/
190         $(INSTALL_DIR) $(1)/usr/sbin
191         $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/avahi-dnsconfd $(1)/usr/sbin/
192 endef
193
194 $(eval $(call BuildPackage,libavahi))
195 $(eval $(call BuildPackage,avahi-autoipd))
196 $(eval $(call BuildPackage,avahi-daemon))
197 $(eval $(call BuildPackage,avahi-dnsconfd))
198