dnsmasq: enable parallel builds
[openwrt/staging/chunkeey.git] / package / dnsmasq / Makefile
index 2b6e7945cbc33550b3b9dd9400ed19a5df57f578..4ad0f37742cc9077b2cdf765d8acf8d329504a8c 100644 (file)
@@ -1,51 +1,88 @@
-# 
-# Copyright (C) 2006 OpenWrt.org
+#
+# Copyright (C) 2006-2012 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 #
-# $Id$
 
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dnsmasq
-PKG_VERSION:=2.35
-PKG_RELEASE:=1
+PKG_VERSION:=2.62
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
-PKG_MD5SUM:=57b8643dc394cf2fbd1bced64536c6df
+PKG_MD5SUM:=f47e5cb8f5bac6343f24b2dbe317ab40
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/dnsmasq
+define Package/dnsmasq/Default
   SECTION:=net
   CATEGORY:=Base system
   TITLE:=A lightweight DNS and DHCP server
-  DESCRIPTION:=\
-       It is intended to provide coupled DNS and DHCP service to a LAN.
   URL:=http://www.thekelleys.org.uk/dnsmasq/
 endef
 
+define Package/dnsmasq
+$(call Package/dnsmasq/Default)
+  VARIANT:=nodhcpv6
+endef
+
+define Package/dnsmasq-dhcpv6
+$(call Package/dnsmasq/Default)
+  TITLE += (with DHCPv6 support)
+  DEPENDS:=@IPV6 +kmod-ipv6
+  VARIANT:=dhcpv6
+endef
+
+define Package/dnsmasq/description
+  It is intended to provide coupled DNS and DHCP service to a LAN.
+endef
+
+define Package/dnsmasq-dhcpv6/description
+$(call Package/dnsmasq/description)
+
+This is a variant with DHCPv6 support
+endef
+
 define Package/dnsmasq/conffiles
+/etc/config/dhcp
 /etc/dnsmasq.conf
 endef
 
-define Build/Compile
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               $(TARGET_CONFIGURE_OPTS) \
-               CFLAGS="$(TARGET_CFLAGS) -DHAVE_ISC_READER=1" \
-               BINDIR="/usr/sbin" MANDIR="/usr/man" \
-               all
-endef
+Package/dnsmasq-dhcpv6/conffiles = $(Package/dnsmasq/conffiles)
+
+TARGET_CFLAGS += \
+       -ffunction-sections -fdata-sections \
+       $(if $(CONFIG_IPV6),,-DNO_IPV6)
+
+ifeq ($(BUILD_VARIANT),nodhcpv6)
+  TARGET_CFLAGS += -DNO_DHCP6
+endif
+
+MAKE_FLAGS := \
+       $(TARGET_CONFIGURE_OPTS) \
+       CFLAGS="$(TARGET_CFLAGS)" \
+       LDFLAGS="-Wl,--gc-sections" \
+       PREFIX="/usr"
 
 define Package/dnsmasq/install
        $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/dnsmasq $(1)/usr/sbin/
-       $(INSTALL_DIR) $(1)/etc
+       $(CP) $(PKG_INSTALL_DIR)/usr/sbin/dnsmasq $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_DATA) ./files/dhcp.conf $(1)/etc/config/dhcp
        $(INSTALL_DATA) ./files/dnsmasq.conf $(1)/etc/dnsmasq.conf
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/dnsmasq.init $(1)/etc/init.d/dnsmasq
 endef
 
+Package/dnsmasq-dhcpv6/install = $(Package/dnsmasq/install)
+
 $(eval $(call BuildPackage,dnsmasq))
+$(eval $(call BuildPackage,dnsmasq-dhcpv6))