forked from Mirrors/freeswitch
369 lines
12 KiB
Makefile
369 lines
12 KiB
Makefile
# Standard installation pathnames
|
|
# See the file LICENSE for the license
|
|
SHELL = @SHELL@
|
|
VERSION = @PACKAGE_VERSION@
|
|
version_info = @LIBTOOL_VERSION_INFO@
|
|
srcdir = @srcdir@
|
|
basesrcdir = $(shell basename `pwd`)
|
|
prefix = @prefix@
|
|
exec_prefix = @exec_prefix@
|
|
bindir = @bindir@
|
|
mandir = @mandir@
|
|
datarootdir = @datarootdir@
|
|
datadir = @datadir@
|
|
libdir = @libdir@
|
|
includedir = @includedir@
|
|
doxygen = @doxygen@
|
|
pywrapdir = ${srcdir}/contrib/python
|
|
swig = @swig@
|
|
python_site =@PYTHON_SITE_PKG@
|
|
pyldns_inst =@PYLDNS@
|
|
pyldns_uninst =@PYLDNS@
|
|
ifeq "$(pyldns_inst)" "pyldns"
|
|
pyldns_inst=install-@PYLDNS@
|
|
pyldns_uninst=uninstall-@PYLDNS@
|
|
else
|
|
pyldns_inst=
|
|
pyldns_uninst=
|
|
endif
|
|
glibtool = @libtool@
|
|
libtool = ./libtool
|
|
ifdef glibtool
|
|
libtool = $(glibtool)
|
|
endif
|
|
|
|
CC = @CC@
|
|
ifeq "$(srcdir)" "."
|
|
CPPFLAGS = $(strip -I. @CPPFLAGS@ @DEFS@)
|
|
else
|
|
CPPFLAGS = $(strip -I. -I$(srcdir) @CPPFLAGS@ @DEFS@)
|
|
endif
|
|
CFLAGS = $(strip @CFLAGS@)
|
|
LDFLAGS = @LDFLAGS@
|
|
LIBS = @LIBS@
|
|
LIBOBJS = @LIBOBJS@
|
|
PYTHON_CPPFLAGS = @PYTHON_CPPFLAGS@
|
|
PYTHON_LDFLAGS = @PYTHON_LDFLAGS@
|
|
LIBSSL_CPPFLAGS = @LIBSSL_CPPFLAGS@
|
|
LIBSSL_LDFLAGS = @LIBSSL_LDFLAGS@
|
|
LIBSSL_LIBS = @LIBSSL_LIBS@
|
|
RUNTIME_PATH = @RUNTIME_PATH@
|
|
DATE = $(shell date +%Y%m%d)
|
|
LIBTOOL = $(libtool) --tag=CC --quiet
|
|
INSTALL_LDNS_CONFIG = @INSTALL_LDNS_CONFIG@
|
|
|
|
LINT = splint
|
|
LINTFLAGS=+quiet -weak -warnposix -unrecog -Din_addr_t=uint32_t -Du_int=unsigned -Du_char=uint8_t -preproc -Drlimit=rlimit64 -D__gnuc_va_list=va_list
|
|
#-Dglob64=glob -Dglobfree64=globfree
|
|
# compat with openssl linux edition.
|
|
LINTFLAGS+="-DBN_ULONG=unsigned long" -Dkrb5_int32=int "-Dkrb5_ui_4=unsigned int" -DPQ_64BIT=uint64_t -DRC4_INT=unsigned -fixedformalarray -D"ENGINE=unsigned" -D"RSA=unsigned" -D"DSA=unsigned" -D"EVP_PKEY=unsigned" -D"EVP_MD=unsigned" -D"SSL=unsigned" -D"SSL_CTX=unsigned" -D"X509=unsigned" -D"RC4_KEY=unsigned" -D"EVP_MD_CTX=unsigned" -D"EC_KEY=unsigned" -D"EC_POINT=unsigned" -D"EC_GROUP=unsigned"
|
|
# compat with NetBSD
|
|
ifeq "$(shell uname)" "NetBSD"
|
|
LINTFLAGS+="-D__RENAME(x)=" -D_NETINET_IN_H_
|
|
endif
|
|
# compat with OpenBSD
|
|
LINTFLAGS+="-Dsigset_t=long"
|
|
# FreeBSD8
|
|
LINTFLAGS+="-D__uint16_t=uint16_t"
|
|
|
|
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 dnssec_verify.c \
|
|
keys.c higher.c rr_functions.c parse.c update.c \
|
|
error.c zone.c dnssec_zone.c dnssec_sign.c rbtree.c \
|
|
sha1.c sha2.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/dname.h \
|
|
$(srcdir)/ldns/dnssec.h \
|
|
$(srcdir)/ldns/dnssec_verify.h \
|
|
$(srcdir)/ldns/dnssec_sign.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/dnssec_zone.h \
|
|
$(srcdir)/ldns/update.h \
|
|
$(srcdir)/ldns/tsig.h \
|
|
$(srcdir)/ldns/rbtree.h \
|
|
$(srcdir)/ldns/sha1.h \
|
|
$(srcdir)/ldns/sha2.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) $(strip $(CFLAGS) $(LDFLAGS) $(LIBS))
|
|
LINK_LIB = $(LIBTOOL) --mode=link $(CC) $(strip $(CFLAGS) $(LDFLAGS) $(LIBS) -version-number $(version_info) -no-undefined)
|
|
|
|
%.o: $(srcdir)/%.c $(LIBDNS_HEADERS) ldns/net.h ldns/util.h ldns/config.h
|
|
$(COMP_LIB) $(LIBSSL_CPPFLAGS) -c $<
|
|
|
|
.PHONY: clean realclean docclean manpages doc lint all lib pyldns test
|
|
.PHONY: install uninstall install-doc uninstall-doc uninstall-pyldns
|
|
.PHONY: install-h uninstall-h install-lib uninstall-lib install-pyldns
|
|
|
|
all: copy-headers lib linktest manpages @PYLDNS@
|
|
|
|
linktest: $(srcdir)/linktest.c $(LIBDNS_HEADERS) ldns/net.h ldns/util.h ldns/config.h libldns.la
|
|
$(LIBTOOL) --mode=link $(CC) $(srcdir)/linktest.c $(CPPFLAGS) $(LIBSSL_CPPFLAGS) $(CFLAGS) -lldns $(LIBS) -o linktest
|
|
|
|
lib: libldns.la
|
|
if [ ! -d lib ] ; then ln -s .libs lib ; fi ;
|
|
|
|
lib-export-all: libldns.la-export-all
|
|
if [ ! -d lib ] ; then ln -s .libs lib ; fi ;
|
|
|
|
libldns.la: $(LIBDNS_OBJECTS)
|
|
$(LINK_LIB) $(LIBSSL_LDFLAGS) $(LIBSSL_LIBS) --export-symbols $(srcdir)/ldns_symbols.def -o libldns.la $(LIBDNS_LOBJECTS) -rpath $(libdir) $(RUNTIME_PATH)
|
|
|
|
libldns.la-export-all: $(LIBDNS_OBJECTS)
|
|
$(LINK_LIB) -o libldns.la $(LIBDNS_LOBJECTS) -rpath $(libdir) $(RUNTIME_PATH)
|
|
|
|
$(addprefix include/ldns/, $(notdir $(LIBDNS_HEADERS))): include/ldns/%.h: $(srcdir)/ldns/%.h
|
|
@if [ ! -d include ] ; then ($(INSTALL) -d include || echo "include exists") ; fi ;
|
|
@if [ ! -d include/ldns ] ; then (cd include; ln -s ../ldns ./ldns || echo "include/ldns exists") ; fi ;
|
|
$(INSTALL) -c -m 644 $< ./include/ldns/
|
|
|
|
include/ldns/util.h include/ldns/net.h include/ldns/config.h: include/ldns/%.h: ./ldns/%.h
|
|
@if [ ! -d include ] ; then ($(INSTALL) -d include || echo "include exists") ; fi ;
|
|
@if [ ! -d include/ldns ] ; then (cd include; ln -s ../ldns ./ldns || echo "include/ldns exists") ; fi ;
|
|
$(INSTALL) -c -m 644 $< ./include/ldns/
|
|
|
|
copy-headers: $(addprefix include/ldns/, $(notdir $(LIBDNS_HEADERS))) include/ldns/util.h include/ldns/net.h include/ldns/config.h
|
|
|
|
mancheck:
|
|
sh -c 'find . -name \*.\[13\] -exec troff -z {} \;' 2>&1 | sed "s/^\.\///" | sed "s/\(:[0\-9]\+:\)/\1 warning:/g"
|
|
|
|
doxygen: manpages
|
|
$(INSTALL) -d doc
|
|
ifdef doxygen
|
|
# if we are not in base we need to copy some html files too
|
|
if [ ! -e doc/header.html ] ; then \
|
|
$(INSTALL) -c -m 644 $(srcdir)/doc/header.html doc/ ; \
|
|
fi ;
|
|
$(doxygen) $(srcdir)/libdns.doxygen
|
|
endif
|
|
|
|
manpages: $(srcdir)/doc/function_manpages
|
|
$(INSTALL) -d doc
|
|
cat $(srcdir)/ldns/*.h | $(srcdir)/doc/doxyparse.pl -m $(srcdir)/doc/function_manpages 2>&1 | \
|
|
grep -v ^doxygen | grep -v ^cat > doc/ldns_manpages
|
|
|
|
pyldns: _ldns.la
|
|
|
|
$(pywrapdir)/ldns_wrapper.c: $(pywrapdir)/ldns.i $(wildcard $(pywrapdir)/*.i) $(LIBDNS_HEADERS) ldns/util.h ldns/config.h
|
|
$(swig) -python -o $@ $(CPPFLAGS) $(PYTHON_CPPFLAGS) $<
|
|
|
|
ldns_wrapper.lo: $(pywrapdir)/ldns_wrapper.c $(LIBDNS_HEADERS) ldns/util.h ldns/config.h
|
|
$(COMP_LIB) -I./include/ldns $(PYTHON_CPPFLAGS) -c $< -o $@
|
|
|
|
_ldns.la: ldns_wrapper.lo libldns.la
|
|
$(LIBTOOL) --tag=CC --mode=link $(CC) $(strip $(CFLAGS) $(PYTHON_CFLAGS) $(LDFLAGS) $(PYTHON_LDFLAGS) -module -version-number $(version_info) -no-undefined -o $@ $< -rpath $(python_site) -L. -L.libs -lldns $(LIBS))
|
|
|
|
install: install-h install-lib install-config install-manpages $(pyldns_inst)
|
|
|
|
uninstall: uninstall-manpages uninstall-h uninstall-lib $(pyldns_uninst)
|
|
|
|
destclean: uninstall
|
|
|
|
install-config:
|
|
if [ $(INSTALL_LDNS_CONFIG) = "yes" ] ; then \
|
|
$(INSTALL) -d $(DESTDIR)$(bindir); \
|
|
$(INSTALL) -c -m 755 packaging/ldns-config $(DESTDIR)$(bindir)/; \
|
|
fi
|
|
|
|
install-manpages: manpages
|
|
${INSTALL} -d $(DESTDIR)$(mandir)/man3
|
|
for f in doc/man/man3/*; do \
|
|
${INSTALL} -c -m 444 $$f $(DESTDIR)$(mandir)/man3/; \
|
|
done
|
|
|
|
uninstall-manpages:
|
|
for i in `cat doc/ldns_manpages`; do \
|
|
rm -f $(DESTDIR)$(mandir)/man3/$$i.3 ; done
|
|
rmdir -p $(DESTDIR)$(mandir)/man3 || echo "ok, dir already gone"
|
|
|
|
install-h: lib
|
|
$(INSTALL) -m 755 -d $(DESTDIR)$(includedir)/ldns
|
|
for i in $(LIBDNS_HEADERS); do \
|
|
$(INSTALL) -c -m 644 $$i $(DESTDIR)$(includedir)/ldns/; done
|
|
$(INSTALL) -c -m 644 include/ldns/util.h $(DESTDIR)$(includedir)/ldns/
|
|
$(INSTALL) -c -m 644 include/ldns/net.h $(DESTDIR)$(includedir)/ldns/
|
|
|
|
uninstall-h:
|
|
for i in $(LIBDNS_HEADERS); do \
|
|
rm -f $(DESTDIR)$(includedir)/$$i; done
|
|
[ ! -d $(DESTDIR)$(includedir)/ldns ] || rmdir -p $(DESTDI)$(includedir)/ldns || echo "ok, dir already gone"
|
|
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) || echo "ok, dir already gone"
|
|
|
|
install-pyldns: @PYLDNS@
|
|
$(INSTALL) -m 755 -d $(DESTDIR)$(python_site)/ldns
|
|
$(INSTALL) -c -m 644 $(pywrapdir)/ldns.py $(DESTDIR)$(python_site)/ldns.py
|
|
$(LIBTOOL) --mode=install cp _ldns.la $(DESTDIR)$(python_site)
|
|
$(LIBTOOL) --mode=finish $(DESTDIR)$(python_site)
|
|
|
|
uninstall-pyldns:
|
|
rm -f $(DESTDIR)$(python_site)/ldns/*
|
|
rmdir -p $(DESTDIR)$(python_site)/ldns
|
|
|
|
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 -rf lib
|
|
rm -rf .libs
|
|
rm -f linktest
|
|
rm -f $(pywrapdir)/ldns_wrapper.c $(pywrapdir)/ldns.py
|
|
|
|
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.*
|
|
$(LIBTOOL) --mode clean rm -f _ldns.la
|
|
rm -rf ldns/net.h ldns/util.h ldns/config.h
|
|
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 $@
|
|
|
|
b32_pton$U.o: $(srcdir)/compat/b32_pton.c
|
|
$(COMP_LIB) -c $(srcdir)/compat/b32_pton.c -o $@
|
|
|
|
b32_ntop$U.o: $(srcdir)/compat/b32_ntop.c
|
|
$(COMP_LIB) -c $(srcdir)/compat/b32_ntop.c -o $@
|
|
|
|
malloc$U.o: $(srcdir)/compat/malloc.c
|
|
$(COMP_LIB) -c $(srcdir)/compat/malloc.c -o $@
|
|
|
|
realloc$U.o: $(srcdir)/compat/realloc.c
|
|
$(COMP_LIB) -c $(srcdir)/compat/realloc.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 $@
|
|
|
|
isasciik$U.o: $(srcdir)/compat/isascii.c
|
|
$(COMP_LIB) -c $(srcdir)/compat/isascii.c -o $@
|
|
|
|
strlcpy$U.o: $(srcdir)/compat/strlcpy.c
|
|
$(COMP_LIB) -c $(srcdir)/compat/strlcpy.c -o $@
|
|
|
|
memmove$U.o: $(srcdir)/compat/memmove.c
|
|
$(COMP_LIB) -c $(srcdir)/compat/memmove.c -o $@
|
|
|
|
inet_pton$U.o: $(srcdir)/compat/inet_pton.c
|
|
$(COMP_LIB) -c $(srcdir)/compat/inet_pton.c -o $@
|
|
|
|
inet_aton$U.o: $(srcdir)/compat/inet_aton.c
|
|
$(COMP_LIB) -c $(srcdir)/compat/inet_aton.c -o $@
|
|
|
|
inet_ntop$U.o: $(srcdir)/compat/inet_ntop.c
|
|
$(COMP_LIB) -c $(srcdir)/compat/inet_ntop.c -o $@
|
|
|
|
snprintf$U.o: $(srcdir)/compat/snprintf.c
|
|
$(COMP_LIB) -c $(srcdir)/compat/snprintf.c -o $@
|
|
|
|
fake-rfc2553$U.o: $(srcdir)/compat/fake-rfc2553.c
|
|
$(COMP_LIB) -c $(srcdir)/compat/fake-rfc2553.c -o $@
|
|
|
|
gmtime_r$U.o: $(srcdir)/compat/gmtime_r.c
|
|
$(COMP_LIB) -c $(srcdir)/compat/gmtime_r.c -o $@
|
|
|
|
ctime_r$U.o: $(srcdir)/compat/ctime_r.c
|
|
$(COMP_LIB) -c $(srcdir)/compat/ctime_r.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
|
|
|
|
test:
|
|
if test -x "`which bash`"; then bash test/test_all.sh; else sh test/test_all.sh; fi
|
|
|
|
#-include $(ALL_SOURCES:.c=.d)
|
|
|
|
# Recreate symbols file, only needed when API changes
|
|
# make clean first (and after this make clean; make again)
|
|
symbols: lib-export-all
|
|
nm -g lib/libldns.so | cut -d " " -f 3 | grep ldns | sort > $(srcdir)/ldns_symbols.def
|
|
|