diff options
author | Manuel Novoa III <mjn3@codepoet.org> | 2004-04-04 02:33:03 +0000 |
---|---|---|
committer | Manuel Novoa III <mjn3@codepoet.org> | 2004-04-04 02:33:03 +0000 |
commit | 1169162ab76e63dad6f186bd0c65596f3d8765e4 (patch) | |
tree | 1cbc05f9c457a5ba9496d975c57adb1c6819b09b | |
parent | 9f8739658f9de0ebbfb023e7f8bfed8332650089 (diff) |
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.
-rw-r--r-- | make/dnsmasq.mk | 50 | ||||
-rw-r--r-- | sources/dnsmasq2-100-config.patch | 49 |
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 |