# Standard installation pathnames
# See the file LICENSE for the license
SHELL = @SHELL@
VERSION = @PACKAGE_VERSION@
srcdir = @srcdir@
basesrcdir = $(shell basename `pwd`)
prefix = @prefix@
exec_prefix = @exec_prefix@
bindir = @bindir@
mandir = @mandir@
libdir = @libdir@
includedir = @includedir@
doxygen = @doxygen@
glibtool = @glibtool@
libtool = @libtool@
ifdef glibtool
libtool = $(glibtool)
endif
CC = @CC@
CPPFLAGS = @CPPFLAGS@ @DEFS@ -I. -I$(srcdir)
CFLAGS = @CFLAGS@ -I. -I$(srcdir)
LDFLAGS = @LDFLAGS@
LIBS = @LIBS@
LIBOBJS = @LIBOBJS@
RUNTIME_PATH = @RUNTIME_PATH@
DATE = $(shell date +%Y%m%d)
LIBTOOL = $(libtool) --tag=CC
LINT = splint
LINTFLAGS = +quiet -weak -warnposix -unrecog -Din_addr_t=uint32_t -Du_int=unsigned -Du_char=uint8_t -preproc
INSTALL = $(srcdir)/install-sh
LIBDNS_SOURCES = rdata.c util.c rr.c packet.c wire2host.c \
host2str.c buffer.c str2host.c tsig.c resolver.c \
net.c host2wire.c dname.c dnssec.c keys.c \
higher.c rr_functions.c parse.c update.c error.c zone.c
LIBDNS_HEADERS = $(srcdir)/ldns/error.h \
$(srcdir)/ldns/packet.h \
$(srcdir)/ldns/common.h \
$(srcdir)/ldns/rdata.h \
$(srcdir)/ldns/rr.h \
$(srcdir)/ldns/wire2host.h \
$(srcdir)/ldns/host2str.h \
$(srcdir)/ldns/host2wire.h \
$(srcdir)/ldns/str2host.h \
$(srcdir)/ldns/buffer.h \
$(srcdir)/ldns/resolver.h \
$(srcdir)/ldns/net.h \
$(srcdir)/ldns/dname.h \
$(srcdir)/ldns/dnssec.h \
$(srcdir)/ldns/keys.h \
$(srcdir)/ldns/higher.h \
$(srcdir)/ldns/parse.h \
$(srcdir)/ldns/rr_functions.h \
$(srcdir)/ldns/ldns.h \
$(srcdir)/ldns/zone.h \
$(srcdir)/ldns/update.h \
$(srcdir)/ldns/tsig.h
LIBDNS_OBJECTS = $(LIBDNS_SOURCES:.c=.o) $(LIBOBJS)
LIBDNS_LOBJECTS = $(LIBDNS_SOURCES:.c=.lo) $(LIBOBJS:.o=.lo)
ALL_SOURCES = $(LIBDNS_SOURCES)
COMPILE = $(CC) $(CPPFLAGS) $(CFLAGS)
COMP_LIB = $(LIBTOOL) --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS)
LINK = $(CC) $(CFLAGS) $(LDFLAGS)
LINK_LIB = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -release $(VERSION)
%.o: $(srcdir)/%.c $(LIBDNS_HEADERS) ldns/util.h ldns/config.h
$(COMP_LIB) -c $> $<
.PHONY: clean realclean docclean doc lint all lib
.PHONY: install uninstall install-doc uninstall-doc
.PHONY: install-h uninstall-h install-lib uninstall-lib
all: copy-headers lib linktest
linktest:
gcc $(srcdir)/linktest.c $(CPPFLAGS) $(CFLAGS) -L.libs -lldns -o linktest
rm linktest
lib: $(LIBDNS_OBJECTS)
$(LINK_LIB) -o libldns.la $(LIBDNS_LOBJECTS) -rpath $(libdir) $(RUNTIME_PATH)
if [ ! -d lib ] ; then ln -s .libs lib ; fi ;
copy-headers:
if [ ! -d include ] ; then mkdir include ; fi ;
if [ ! -d include/ldns ] ; then ln -sf ../ldns ./include/ldns ; fi ;
for i in $(LIBDNS_HEADERS); do \
if [ $(srcdir)/ldns/$$i -nt ./include/ldns/$$i ] ; then \
MVPROG=/bin/cp $(INSTALL) -m 644 $$i ./include/ldns/; \
fi ; \
done
doc: $(srcdir)/doc/function_manpages
$(INSTALL) -d doc
ifdef doxygen
$(doxygen) $(srcdir)/libdns.doxygen
endif
cat $(srcdir)/ldns/*.h | $(srcdir)/doc/doxyparse.pl -m $(srcdir)/doc/function_manpages 2>&1 | \
grep -v ^doxygen | grep -v ^cat > doc/ldns_manpages
install: install-h install-lib install-doc
uninstall: uninstall-doc uninstall-h uninstall-lib
destclean: uninstall
install-doc: doc
${INSTALL} -d $(DESTDIR)$(mandir)/man3
cp -Rp doc/man/man3/* $(DESTDIR)$(mandir)/man3/
uninstall-doc: doc
for i in `cat doc/ldns_manpages`; do \
rm -f $(DESTDIR)$(mandir)/man3/$$i.3 ; done
rmdir -p $(DESTDIR)$(mandir)/man3
install-h: lib
$(INSTALL) -m 755 -d $(DESTDIR)$(includedir)/ldns
for i in $(LIBDNS_HEADERS); do \
MVPROG=/bin/cp $(INSTALL) -m 644 $$i $(DESTDIR)$(includedir)/ldns/; done
MVPROG=/bin/cp $(INSTALL) -m 644 include/ldns/util.h $(DESTDIR)$(includedir)/ldns/
uninstall-h:
for i in $(LIBDNS_HEADERS); do \
rm -f $(DESTDIR)$(includedir)/$$i; done
[ ! -d $(DESTDIR)$(includedir)/ldns ] || rmdir -p $(DESTDIR)$(includedir)/ldns
exit 0
install-lib: lib
$(INSTALL) -m 755 -d $(DESTDIR)$(libdir)
$(LIBTOOL) --mode=install cp libldns.la $(DESTDIR)$(libdir)
$(LIBTOOL) --mode=finish $(DESTDIR)$(libdir)
uninstall-lib:
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/libldns.la
rmdir -p $(DESTDIR)$(libdir)
clean:
rm -f *.o *.d *.lo
rm -f *~
rm -rf autom4te.cache/
rm -f tags
rm -f *.key
rm -f *.ds
rm -f *.private
rm -rf include/
rm -f lib
rm -rf .libs
distclean: clean docclean libclean
rm -f ltmain.sh
realclean: clean docclean libclean
rm -f config.status
rm -f config.log
rm -f Makefile
rm -f ldns/config.h.in
rm -f ldns/config.h
rm -f ldns/util.h
rm -f config.h.in
rm -f configure
rm -f config.sub
rm -f config.guess
rm -f ltmain.sh
docclean:
rm -rf doc/html/
rm -rf doc/man/
rm -rf doc/latex/
rm -f doc/*.txt
rm -f doc/*.tex
rm -f doc/ldns_manpages
libclean:
$(LIBTOOL) --mode clean rm -f libldns.la
$(LIBTOOL) --mode clean rm -f libldns.a
$(LIBTOOL) --mode clean rm -f libldns.so
$(LIBTOOL) --mode clean rm -f libldns.so.*
rm -rf *.lo
rm -rf .libs
rm -rf libtool
## No need for changes here
lint:
for i in $(LIBDNS_SOURCES); do \
$(LINT) $(LINTFLAGS) -I. -I$(srcdir) $(srcdir)/$$i ; \
if [ $$? -ne 0 ] ; then exit 1 ; fi ; \
done
tags: $(srcdir)/*.c ldns/*.[ch]
ctags -f $(srcdir)/tags $(srcdir)/*.[ch] ldns/*.[ch]
b64_pton$U.o: $(srcdir)/compat/b64_pton.c
$(COMP_LIB) -c $(srcdir)/compat/b64_pton.c -o $@
b64_ntop$U.o: $(srcdir)/compat/b64_ntop.c
$(COMP_LIB) -c $(srcdir)/compat/b64_ntop.c -o $@
malloc$U.o: $(srcdir)/compat/malloc.c
$(COMP_LIB) -c $(srcdir)/compat/malloc.c -o $@
timegm$U.o: $(srcdir)/compat/timegm.c
$(COMP_LIB) -c $(srcdir)/compat/timegm.c -o $@
isblank$U.o: $(srcdir)/compat/isblank.c
$(COMP_LIB) -c $(srcdir)/compat/isblank.c -o $@
# Automatic dependencies.
%.d: $(srcdir)/%.c
$(SHELL) -ec '$(CC) -MM $(CPPFLAGS) $< \
| sed '\''s!\(.*\)\.o[ :]*!$(dir $@)\1.o $@ : !g'\'' > $@; \
[ -s $@ ] || rm -f $@'
allclean: test-clean clean
test-clean:
tpkg -b test clean
#include $(ALL_SOURCES:.c=.d)
syntax highlighted by Code2HTML, v. 0.9.1