|
| 1 | +#! /usr/bin/make -rf |
| 2 | +# $Id: Makefile.in,v 1.11 2007/01/15 21:19:08 mjt Exp $ |
| 3 | +# libudns Makefile |
| 4 | +# |
| 5 | +# Copyright (C) 2005 Michael Tokarev <[email protected]> |
| 6 | +# This file is part of UDNS library, an async DNS stub resolver. |
| 7 | +# |
| 8 | +# This library is free software; you can redistribute it and/or |
| 9 | +# modify it under the terms of the GNU Lesser General Public |
| 10 | +# License as published by the Free Software Foundation; either |
| 11 | +# version 2.1 of the License, or (at your option) any later version. |
| 12 | +# |
| 13 | +# This library is distributed in the hope that it will be useful, |
| 14 | +# but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 15 | +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 16 | +# Lesser General Public License for more details. |
| 17 | +# |
| 18 | +# You should have received a copy of the GNU Lesser General Public |
| 19 | +# License along with this library, in file named COPYING.LGPL; if not, |
| 20 | +# write to the Free Software Foundation, Inc., 59 Temple Place, |
| 21 | +# Suite 330, Boston, MA 02111-1307 USA |
| 22 | + |
| 23 | +NAME = udns |
| 24 | +VERS = 0.0.9 |
| 25 | +SRCS = udns_dn.c udns_dntosp.c udns_parse.c udns_resolver.c udns_init.c \ |
| 26 | + udns_misc.c udns_XtoX.c \ |
| 27 | + udns_rr_a.c udns_rr_ptr.c udns_rr_mx.c udns_rr_txt.c udns_bl.c \ |
| 28 | + udns_rr_srv.c udns_rr_naptr.c udns_codes.c |
| 29 | +USRCS = dnsget.c rblcheck.c ex-rdns.c |
| 30 | +DEB = debian/copyright debian/changelog debian/control debian/rules |
| 31 | +DIST = COPYING.LGPL udns.h udns.3 dnsget.1 rblcheck.1 $(SRCS) $(USRCS) \ |
| 32 | + NEWS TODO NOTES Makefile.in configure configure.lib \ |
| 33 | + inet_XtoX.c getopt.c |
| 34 | + |
| 35 | +OBJS = $(SRCS:.c=.o) $(GEN:.c=.o) |
| 36 | +LIB = lib$(NAME).a |
| 37 | +LIBFL = -L. -l$(NAME) |
| 38 | + |
| 39 | +SOVER = 0 |
| 40 | +SOBJS = $(OBJS:.o=.lo) |
| 41 | +SOLIB = lib$(NAME)_s.so |
| 42 | +SOLIBV = lib$(NAME).so.$(SOVER) |
| 43 | +SOLIBFL= -L. -l$(NAME)_s |
| 44 | + |
| 45 | +LIBS = $(LIB) $(SOLIBV) |
| 46 | + |
| 47 | +UTILS = $(USRCS:.c=) |
| 48 | +UOBJS = $(USRCS:.c=.o) |
| 49 | +SOUTILS = $(USRCS:.c=_s) |
| 50 | + |
| 51 | +NAMEPFX = $(NAME)-$(VERS) |
| 52 | + |
| 53 | +CC = @CC@ |
| 54 | +CFLAGS = @CFLAGS@ |
| 55 | +CDEFS = @CDEFS@ |
| 56 | +PICFLAGS = -fPIC |
| 57 | +AWK = awk |
| 58 | + |
| 59 | +all: static |
| 60 | + |
| 61 | +.SUFFIXES: .c .o .lo |
| 62 | + |
| 63 | +static: $(LIB) $(UTILS) |
| 64 | +staticlib: $(LIB) |
| 65 | +$(LIB): $(OBJS) |
| 66 | + -rm -f $@ |
| 67 | + $(AR) rv $@ $(OBJS) |
| 68 | +.c.o: |
| 69 | + $(CC) $(CFLAGS) $(CDEFS) -c $< |
| 70 | + |
| 71 | +shared: $(SOLIBV) $(SOUTILS) |
| 72 | +sharedlib: $(SOLIBV) |
| 73 | + |
| 74 | +$(SOLIBV): $(SOBJS) |
| 75 | + $(CC) -shared -Wl,--soname,$(SOLIBV) -o $@ $(SOBJS) |
| 76 | +$(SOLIB): $(SOLIBV) |
| 77 | + rm -f $@ |
| 78 | + ln -s $(SOLIBV) $@ |
| 79 | +.c.lo: |
| 80 | + $(CC) $(CFLAGS) $(PICFLAGS) $(CDEFS) -o $@ -c $< |
| 81 | + |
| 82 | +# udns_codes.c is generated from udns.h |
| 83 | +udns_codes.c: udns.h |
| 84 | + @echo Generating $@ |
| 85 | + @set -e; exec >$@.tmp; \ |
| 86 | + set T type C class R rcode; \ |
| 87 | + echo "/* Automatically generated. */"; \ |
| 88 | + echo "#include \"udns.h\""; \ |
| 89 | + while [ "$$1" ]; do \ |
| 90 | + echo; \ |
| 91 | + echo "const struct dns_nameval dns_$${2}tab[] = {"; \ |
| 92 | + $(AWK) "/^ DNS_$${1}_[A-Z0-9_]+[ ]*=/ \ |
| 93 | + { printf \" {%s,\\\"%s\\\"},\\n\", \$$1, substr(\$$1,7) }" \ |
| 94 | + udns.h ; \ |
| 95 | + echo " {0,0}};"; \ |
| 96 | + echo "const char *dns_$${2}name(enum dns_$${2} code) {"; \ |
| 97 | + echo " static char nm[20];"; \ |
| 98 | + echo " switch(code) {"; \ |
| 99 | + $(AWK) "BEGIN{i=0} \ |
| 100 | + /^ DNS_$${1}_[A-Z0-9_]+[ ]*=/ \ |
| 101 | + {printf \" case %s: return dns_$${2}tab[%d].name;\\n\",\$$1,i++}\ |
| 102 | + " udns.h ; \ |
| 103 | + echo " }"; \ |
| 104 | + echo " return _dns_format_code(nm,\"$$2\",code);"; \ |
| 105 | + echo "}"; \ |
| 106 | + shift 2; \ |
| 107 | + done |
| 108 | + @mv $@.tmp $@ |
| 109 | + |
| 110 | +udns.3.html: udns.3 |
| 111 | + groff -man -Thtml udns.3 > $@.tmp |
| 112 | + mv $@.tmp $@ |
| 113 | + |
| 114 | +dist: $(NAMEPFX).tar.gz |
| 115 | +$(NAMEPFX).tar.gz: $(DIST) $(DEB) |
| 116 | + mkdir $(NAMEPFX) $(NAMEPFX)/debian |
| 117 | + ln $(DIST) $(NAMEPFX) |
| 118 | + ln $(DEB) $(NAMEPFX)/debian |
| 119 | + tar cvfz $@ $(NAMEPFX) |
| 120 | + rm -rf $(NAMEPFX) |
| 121 | +subdist: |
| 122 | + cp -p $(DIST) $(TARGET)/ |
| 123 | + |
| 124 | +clean: |
| 125 | + rm -f $(OBJS) |
| 126 | + rm -f $(SOBJS) |
| 127 | + rm -f $(UOBJS) |
| 128 | + rm -f build-stamp config.log |
| 129 | +distclean: clean |
| 130 | + rm -f $(LIBS) $(SOLIB) udns.3.html |
| 131 | + rm -f $(UTILS) $(SOUTILS) |
| 132 | + rm -f config.status config.h Makefile |
| 133 | + |
| 134 | + |
| 135 | +Makefile: configure configure.lib Makefile.in |
| 136 | + ./configure |
| 137 | + @echo |
| 138 | + @echo Please rerun make >&2 |
| 139 | + @exit 1 |
| 140 | + |
| 141 | +.PHONY: all static staticlib shared sharedlib dist clean distclean subdist \ |
| 142 | + depend dep deps |
| 143 | + |
| 144 | +depend dep deps: $(SRCS) $(USRC) |
| 145 | + @echo Generating deps for: |
| 146 | + @echo \ $(SRCS) |
| 147 | + @echo \ $(USRCS) |
| 148 | + @sed '/^# depend/q' Makefile.in > Makefile.tmp |
| 149 | + @set -e; \ |
| 150 | + for f in $(SRCS) $(USRCS); do \ |
| 151 | + echo $${f%.c}.o $${f%.c}.lo: $$f \ |
| 152 | + `sed -n 's/^#[ ]*include[ ]*"\(.*\)".*/\1/p' $$f`; \ |
| 153 | + done >> Makefile.tmp; \ |
| 154 | + for f in $(USRCS:.c=.o); do \ |
| 155 | + echo "$${f%.?}: $$f \$$(LIB)"; \ |
| 156 | + echo " \$$(CC) \$$(CFLAGS) -o \$$@ $$f \$$(LIBFL)"; \ |
| 157 | + echo "$${f%.?}_s: $$f \$$(SOLIB)"; \ |
| 158 | + echo " \$$(CC) \$$(CFLAGS) -o \$$@ $$f \$$(SOLIBFL)"; \ |
| 159 | + done >> Makefile.tmp ; \ |
| 160 | + if cmp Makefile.tmp Makefile.in >/dev/null 2>&1 ; then \ |
| 161 | + echo Makefile.in unchanged; rm -f Makefile.tmp; \ |
| 162 | + else \ |
| 163 | + echo Updating Makfile.in; mv -f Makefile.tmp Makefile.in ; \ |
| 164 | + fi |
| 165 | + |
| 166 | +# depend |
| 167 | +udns_dn.o udns_dn.lo: udns_dn.c udns.h |
| 168 | +udns_dntosp.o udns_dntosp.lo: udns_dntosp.c udns.h |
| 169 | +udns_parse.o udns_parse.lo: udns_parse.c udns.h |
| 170 | +udns_resolver.o udns_resolver.lo: udns_resolver.c config.h udns.h |
| 171 | +udns_init.o udns_init.lo: udns_init.c config.h udns.h |
| 172 | +udns_misc.o udns_misc.lo: udns_misc.c udns.h |
| 173 | +udns_XtoX.o udns_XtoX.lo: udns_XtoX.c config.h udns.h inet_XtoX.c |
| 174 | +udns_rr_a.o udns_rr_a.lo: udns_rr_a.c udns.h |
| 175 | +udns_rr_ptr.o udns_rr_ptr.lo: udns_rr_ptr.c udns.h |
| 176 | +udns_rr_mx.o udns_rr_mx.lo: udns_rr_mx.c udns.h |
| 177 | +udns_rr_txt.o udns_rr_txt.lo: udns_rr_txt.c udns.h |
| 178 | +udns_bl.o udns_bl.lo: udns_bl.c udns.h |
| 179 | +udns_rr_srv.o udns_rr_srv.lo: udns_rr_srv.c udns.h |
| 180 | +udns_rr_naptr.o udns_rr_naptr.lo: udns_rr_naptr.c udns.h |
| 181 | +udns_codes.o udns_codes.lo: udns_codes.c udns.h |
| 182 | +dnsget.o dnsget.lo: dnsget.c config.h udns.h getopt.c |
| 183 | +rblcheck.o rblcheck.lo: rblcheck.c udns.h getopt.c |
| 184 | +ex-rdns.o ex-rdns.lo: ex-rdns.c udns.h |
| 185 | +dnsget: dnsget.o $(LIB) |
| 186 | + $(CC) $(CFLAGS) -o $@ dnsget.o $(LIBFL) |
| 187 | +dnsget_s: dnsget.o $(SOLIB) |
| 188 | + $(CC) $(CFLAGS) -o $@ dnsget.o $(SOLIBFL) |
| 189 | +rblcheck: rblcheck.o $(LIB) |
| 190 | + $(CC) $(CFLAGS) -o $@ rblcheck.o $(LIBFL) |
| 191 | +rblcheck_s: rblcheck.o $(SOLIB) |
| 192 | + $(CC) $(CFLAGS) -o $@ rblcheck.o $(SOLIBFL) |
| 193 | +ex-rdns: ex-rdns.o $(LIB) |
| 194 | + $(CC) $(CFLAGS) -o $@ ex-rdns.o $(LIBFL) |
| 195 | +ex-rdns_s: ex-rdns.o $(SOLIB) |
| 196 | + $(CC) $(CFLAGS) -o $@ ex-rdns.o $(SOLIBFL) |
0 commit comments