summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--make/dnsmasq.mk50
-rw-r--r--sources/dnsmasq2-100-config.patch49
2 files changed, 99 insertions, 0 deletions
diff --git a/make/dnsmasq.mk b/make/dnsmasq.mk
new file mode 100644
index 000000000..7944d6211
--- /dev/null
+++ b/make/dnsmasq.mk
@@ -0,0 +1,50 @@
+#############################################################
+#
+# dnsmasq
+#
+#############################################################
+
+DNSMASQ_SITE=http://thekelleys.org.uk/dnsmasq
+ifeq ($(filter $(TARGETS),dnsmasq1),)
+DNSMASQ_SOURCE=dnsmasq-2.6.tar.gz
+DNSMASQ_DIR=$(BUILD_DIR)/dnsmasq-2.6
+DNSMASQ_VER=dnsmasq2
+else
+DNSMASQ_SOURCE=dnsmasq-1.18.tar.gz
+DNSMASQ_DIR=$(BUILD_DIR)/dnsmasq-1.18
+DNSMASQ_VER=dnsmasq1
+endif
+DNSMASQ_BINARY=dnsmasq
+DNSMASQ_TARGET_BINARY=usr/sbin/dnsmasq
+
+$(DL_DIR)/$(DNSMASQ_SOURCE):
+ $(WGET) -P $(DL_DIR) $(DNSMASQ_SITE)/$(DNSMASQ_SOURCE)
+
+$(DNSMASQ_DIR)/.source: $(DL_DIR)/$(DNSMASQ_SOURCE)
+ zcat $(DL_DIR)/$(DNSMASQ_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+ $(SOURCE_DIR)/patch-kernel.sh $(DNSMASQ_DIR) $(SOURCE_DIR) \
+ $(DNSMASQ_VER)-*.patch
+ touch $(DNSMASQ_DIR)/.source
+
+$(DNSMASQ_DIR)/$(DNSMASQ_BINARY): $(DNSMASQ_DIR)/.source
+ $(MAKE) CC=$(TARGET_CC) CFLAGS="$(TARGET_CFLAGS)" \
+ BINDIR=/usr/sbin MANDIR=/usr/man -C $(DNSMASQ_DIR)
+
+$(TARGET_DIR)/$(DNSMASQ_TARGET_BINARY): $(DNSMASQ_DIR)/$(DNSMASQ_BINARY)
+ $(MAKE) BINDIR=/usr/sbin MANDIR=/usr/man \
+ DESTDIR=$(TARGET_DIR) -C $(DNSMASQ_DIR) install
+ $(STRIP) $(TARGET_DIR)/$(DNSMASQ_TARGET_BINARY)
+ rm -rf $(TARGET_DIR)/usr/man
+
+dnsmasq: uclibc $(TARGET_DIR)/$(DNSMASQ_TARGET_BINARY)
+
+dnsmasq1: uclibc $(TARGET_DIR)/$(DNSMASQ_TARGET_BINARY)
+
+dnsmasq-source: $(DL_DIR)/$(DNSMASQ_SOURCE)
+
+dnsmasq-clean:
+ #$(MAKE) prefix=$(TARGET_DIR)/usr -C $(DNSMASQ_DIR) uninstall
+ -$(MAKE) -C $(DNSMASQ_DIR) clean
+
+dnsmasq-dirclean:
+ rm -rf $(DNSMASQ_DIR)
diff --git a/sources/dnsmasq2-100-config.patch b/sources/dnsmasq2-100-config.patch
new file mode 100644
index 000000000..07266b735
--- /dev/null
+++ b/sources/dnsmasq2-100-config.patch
@@ -0,0 +1,49 @@
+diff -urN dnsmasq-2.6/src/config.h dnsmasq-2.6-new/src/config.h
+--- dnsmasq-2.6/src/config.h 2004-04-03 14:03:39.000000000 -0600
++++ dnsmasq-2.6-new/src/config.h 2004-04-03 19:56:01.000000000 -0600
+@@ -74,6 +74,11 @@
+ /* We assume that systems which don't have IPv6
+ headers don't have ntop and pton either */
+
++#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)
++# undef NO_IPV6
++# define NO_IPV6
++#endif
++
+ #if defined(INET6_ADDRSTRLEN) && !defined(NO_IPV6)
+ # define HAVE_IPV6
+ # define ADDRSTRLEN INET6_ADDRSTRLEN
+@@ -191,7 +196,7 @@
+ /* platform dependent options. */
+
+ /* Must preceed __linux__ since uClinux defines __linux__ too. */
+-#if defined(__uClinux__) || defined(__UCLIBC__)
++#if defined(__uClinux__)
+ #undef HAVE_LINUX_IPV6_PROC
+ #define HAVE_GETOPT_LONG
+ #undef HAVE_ARC4RANDOM
+@@ -205,6 +210,24 @@
+ # define NO_FORK
+ #endif
+
++#elif defined(__linux__) && defined(__UCLIBC__)
++# define HAVE_LINUX_IPV6_PROC
++# if defined(__UCLIBC_HAS_GNU_GETOPT__) || \
++ ((__UCLIBC_MAJOR__==0) && (__UCLIBC_MINOR__==9) && (__UCLIBC_SUBLEVEL__<21))
++# define HAVE_GETOPT_LONG
++# else
++# undef HAVE_GETOPT_LONG
++# endif
++#undef HAVE_ARC4RANDOM
++#define HAVE_RANDOM
++#define HAVE_DEV_URANDOM
++#define HAVE_DEV_RANDOM
++#undef HAVE_SOCKADDR_SA_LEN
++#undef HAVE_PSELECT
++#if !defined(__ARCH_HAS_MMU__)
++# define NO_FORK
++#endif
++
+ /* libc5 - must precede __linux__ too */
+ /* Note to build a libc5 binary on a modern Debian system:
+ install the packages altgcc libc5 and libc5-altdev