Ok... this is a bit painful. Both dnsmasq1 (1.18) and dnsmasq (2.6) share
a make target (the dnsmasq binary in root). So I made 2.6 the "default". It is _not_ enough to do "make dnsmasq1"... You must actually add dnsmasq1 to TARGETS if you want the older version. Better approaches welcome. Also, the config patch for 2.6 fixes the outdated/broken handling of uClibc by the dnsmasq config.h file.
This commit is contained in:
parent
9f8739658f
commit
1169162ab7
50
make/dnsmasq.mk
Normal file
50
make/dnsmasq.mk
Normal file
@ -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)
|
49
sources/dnsmasq2-100-config.patch
Normal file
49
sources/dnsmasq2-100-config.patch
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user