mdnsresponder: fix versioned .so link and move libdns_sd
[packages.git] / net / mdnsresponder / Makefile
1 #
2 # Copyright (C) 2009-2011 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:=mDNSResponder
11 PKG_VERSION:=379.37
12 PKG_RELEASE:=2
13
14 PKG_SOURCE:=mDNSResponder-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=http://opensource.apple.com/tarballs/mDNSResponder/
16 PKG_MD5SUM:=dd557e1058b51ac2f29cd01d67be0145
17
18 PKG_BUILD_DIR:=$(BUILD_DIR)/mDNSResponder-$(PKG_VERSION)
19
20 PKG_BUILD_PARALLEL:=0
21 PKG_INSTALL:=1
22
23 include $(INCLUDE_DIR)/package.mk
24
25 define Package/mDNSResponder/Default
26   SECTION:=net
27   CATEGORY:=Network
28   SUBMENU:=IP Addresses and Names
29   TITLE:=mDNS
30   URL:=http://developer.apple.com/networking/bonjour/
31 endef
32
33 define Package/mDNSResponder/Default/description
34   Bonjour, also known as zero-configuration networking, enables
35   automatic discovery of computers, devices, and services on
36   IP networks.
37 endef
38
39 define Package/mdns-utils
40 $(call Package/mDNSResponder/Default)
41   TITLE+= client utilities
42   DEPENDS+= +mdnsd
43 endef
44
45 define Package/mdns-utils/description
46 $(call Package/mDNSResponder/Default/description)
47  .
48  This package contains mDNS client utilities:
49  - dns-sd
50  - mDNSClient
51  - mDNSIdentify
52  - mDNSNetMonitor
53  - mDNSProxyResponder
54  - mDNSResponder
55 endef
56
57 define Package/mdnsd
58 $(call Package/mDNSResponder/Default)
59   TITLE+= server daemon
60 endef
61
62 define Package/mdnsd/description
63 $(call Package/mDNSResponder/Default/description)
64  .
65  This package contains the mDNS server daemon.
66 endef
67
68 define Package/mdnsresponder
69 $(call Package/mDNSResponder/Default)
70   TITLE+= suite (meta)
71   DEPENDS+= +mdns-utils +mdnsd
72 endef
73
74 define Package/mdnsresponder/description
75 $(call Package/mDNSResponder/Default/description)
76  .
77  This meta package contains only dependencies on other packages.
78 endef
79
80 # I have no idea why -lc is required, but without it, C library symbols are
81 # not found:
82 MAKE_FLAGS += \
83         CFLAGS_DEBUG="$(TARGET_CFLAGS)" \
84         LINKOPTS=-lc \
85         LDCONFIG= \
86         ETCBASE="$(PKG_INSTALL_DIR)/etc" \
87         INSTBASE="$(PKG_INSTALL_DIR)/usr" \
88         NSSINSTPATH="$(PKG_INSTALL_DIR)/lib" \
89         MANPATH="$(PKG_INSTALL_DIR)/usr/man" \
90         STARTUPSCRIPTDIR="$(PKG_INSTALL_DIR)/etc/init.d" \
91         RUNLEVELSCRIPTSDIR="$(PKG_INSTALL_DIR)/etc/rc.d" \
92         os=linux-uclibc
93 MAKE_PATH = mDNSPosix
94
95 define Build/Compile
96         $(call Build/Compile/Default)
97         # XXX: mDNSResponder's "make install" does not seem to create:
98         mkdir -p $(PKG_INSTALL_DIR)/lib/
99         mkdir -p $(PKG_INSTALL_DIR)/usr/bin/
100         mkdir -p $(PKG_INSTALL_DIR)/usr/sbin/
101         mkdir -p $(PKG_INSTALL_DIR)/usr/lib/
102         mkdir -p $(PKG_INSTALL_DIR)/usr/man/man5/
103         mkdir -p $(PKG_INSTALL_DIR)/usr/man/man8/
104         mkdir -p $(PKG_INSTALL_DIR)/usr/include/
105         mkdir -p $(PKG_INSTALL_DIR)/etc/
106         mkdir -p $(PKG_INSTALL_DIR)/etc/init.d/
107         mkdir -p $(PKG_INSTALL_DIR)/etc/rc.d/
108         mkdir -p $(PKG_INSTALL_DIR)/etc/rc.d/rc2.d/
109         mkdir -p $(PKG_INSTALL_DIR)/etc/rc.d/rc3.d/
110         mkdir -p $(PKG_INSTALL_DIR)/etc/rc.d/rc4.d/
111         mkdir -p $(PKG_INSTALL_DIR)/etc/rc.d/rc5.d/
112         mkdir -p $(PKG_INSTALL_DIR)/etc/rc.d/rc0.d/
113         mkdir -p $(PKG_INSTALL_DIR)/etc/rc.d/rc6.d/
114 endef
115
116 define Build/InstallDev
117         $(INSTALL_DIR) $(1)/usr/include
118         $(CP) $(PKG_BUILD_DIR)/mDNSShared/dns_sd.h $(1)/usr/include/
119         $(INSTALL_DIR) $(1)/usr/lib
120         $(CP) $(PKG_BUILD_DIR)/mDNSPosix/build/prod/*.so* $(1)/usr/lib/
121 endef
122
123 define Package/mdns-utils/conffile
124   /etc/init.d/mDNSResponder
125 endef
126
127 define Package/mdns-utils/install
128         $(INSTALL_DIR) $(1)/usr/bin/
129         $(CP) $(PKG_INSTALL_DIR)/usr/bin/dns-sd $(1)/usr/bin/
130         $(CP) $(PKG_BUILD_DIR)/mDNSPosix/build/prod/mDNSClientPosix $(1)/usr/bin/mDNSClient
131         $(CP) $(PKG_BUILD_DIR)/mDNSPosix/build/prod/mDNSIdentify $(1)/usr/bin/mDNSIdentify
132         $(CP) $(PKG_BUILD_DIR)/mDNSPosix/build/prod/mDNSNetMonitor $(1)/usr/bin/mDNSNetMonitor
133         $(CP) $(PKG_BUILD_DIR)/mDNSPosix/build/prod/mDNSProxyResponderPosix $(1)/usr/bin/mDNSProxyResponder
134         $(CP) $(PKG_BUILD_DIR)/mDNSPosix/build/prod/mDNSResponderPosix $(1)/usr/bin/mDNSResponder
135         $(INSTALL_DIR) $(1)/etc
136         $(INSTALL_DATA) ./files/mDNSResponder.conf $(1)/etc/
137         $(INSTALL_DIR) $(1)/etc/init.d
138         $(INSTALL_BIN) ./files/mDNSResponder.init $(1)/etc/init.d/mDNSResponder
139 endef
140
141 define Package/mdns-utils/conffiles
142 /etc/mDNSResponder.conf
143 endef
144
145 define Package/mdnsd/install
146         $(INSTALL_DIR) $(1)/usr/sbin/
147         $(CP) $(PKG_INSTALL_DIR)/usr/sbin/mdnsd $(1)/usr/sbin/
148         $(INSTALL_DIR) $(1)/etc/init.d
149         $(INSTALL_BIN) ./files/mdnsd.init $(1)/etc/init.d/mdnsd
150         $(INSTALL_DIR) $(1)/usr/lib/
151         $(CP) $(PKG_INSTALL_DIR)/usr/lib/libdns_sd.so.1 $(1)/usr/lib/
152         $(LN) -s libdns_sd.so.1 $(1)/usr/lib/libdns_sd.so
153 endef
154
155 define Package/mdnsresponder/install
156         :
157 endef
158
159 $(eval $(call BuildPackage,mdns-utils))
160 $(eval $(call BuildPackage,mdnsd))
161 $(eval $(call BuildPackage,mdnsresponder))