1 2 3 VERSION = 1.3 4 PACKAGE = mod_dns-${VERSION} 5 6 DISTFILES = mod_dns.c mod_dns.h dns_lock.h dns_lock.c README Makefile 7 8 #APACHE_HOME = 9 KAZLIB = kazlib-1.19 10 DJBDNS = djbdns-1.05 11 APXS = $(APACHE_HOME)/bin/apxs 12 13 14 15 # kazlib: http://users.footprints.net/~kaz/kazlib.html 16 # andslib: http://www.chiark.greenend.org.uk/~ian/adns/ (this library is buggy!) 17 # djbdns: http://cr.yp.to/djbdns/install.html (much better!) 18 19 .SUFFIXES: .c .o .so 20 21 22 MODULES = mod_dns.so 23 24 25 26 all: check_apache $(KAZLIB) $(DJBDNS) $(MODULES) 27 28 29 30 install: all 31 @for i in $(MODULES); do \ 32 $(APXS) -i -a $$i; \ 33 done 34 35 36 DEBUG = -g -Wall 37 DEFINE = -DMOD_DNS_VERSION="\"$(VERSION)\"" 38 INCLUDE = -I$(KAZLIB) -I$(DJBDNS) -I$(shell $(APXS) -q INCLUDEDIR) 39 CFLAGS = $(DEBUG) $(DEFINE) $(INCLUDE) $(shell $(APXS) -q CFLAGS) -fpic 40 LIBS = -lc 41 LDFLAGS = -g 42 43 44 .c.o: 45 $(CC) $(CFLAGS) -c $< -o $@ 46 47 48 49 50 51 DJBDNS_OBJS = $(addprefix $(DJBDNS)/, \ 52 dns_resolve.o dns_dtda.o taia_add.o dns_rcip.o stralloc_opys.o \ 53 str_len.o stralloc_opyb.o taia_uint.o iopause.o taia_sub.o uint16_unpack.o \ 54 byte_diff.o stralloc_catb.o stralloc_eady.o alloc.o error.o alloc_re.o \ 55 byte_zero.o taia_now.o dns_transmit.o dns_random.o socket_conn.o env.o \ 56 uint16_pack.o taia_pack.o tai_pack.o dns_packet.o socket_bind.o dns_domain.o \ 57 case_diffb.o taia_approx.o taia_frac.o openreadclose.o open_read.o readclose.o \ 58 socket_tcp.o ndelay_on.o ip4_scan.o str_start.o taia_less.o stralloc_pend.o \ 59 uint32_unpack.o byte_copy.o dns_nd.o fmt_ulong.o scan_ulong.o socket_udp.o \ 60 ) 61 62 mod_dns.so: mod_dns.o dns_lock.o $(KAZLIB)/hash.o $(DJBDNS_OBJS) 63 $(CC) -shared $(LDFLAGS) -o $@ $^ $(LIBS) 64 65 66 $(KAZLIB): $(KAZLIB).tar.gz 67 tar xzvf $^ 68 69 $(KAZLIB).tar.gz: 70 wget http://users.footprints.net/~kaz/$@ 71 72 $(DJBDNS).tar.gz: 73 wget http://cr.yp.to/djbdns/$@ 74 75 $(DJBDNS): $(DJBDNS).tar.gz 76 tar xzvf $^ 77 (cd $@; make uint64.h iopause.h select.h uint32.h) 78 79 check_apache: 80 @if [ ! -x ${APACHE_HOME}/bin/apxs ]; then \ 81 echo -e '\n You must define $$APACHE_HOME to point to your apache install directory\n'; \ 82 false; \ 83 fi 84 85 clean: 86 rm -rf *.o *.so $(KAZLIB) $(DJBDNS) ${PACKAGE}.tar.gz 87 88 89 dist: clean 90 tar czv -C.. -f ../$(PACKAGE).tar.gz $(addprefix $(shell basename $(PWD))/, $(DISTFILES)) 91 mv ../${PACKAGE}.tar.gz . 92 93