# Copyright 2007 NLnet Labs # See the file LICENSE for the license # # Standard installation pathnames QUIET=yes ifeq "$(QUIET)" "yes" Q=@ INFO=@echo else Q= INFO=@: endif SHELL=@SHELL@ VERSION=@PACKAGE_VERSION@ srcdir=@srcdir@ prefix=@prefix@ exec_prefix=@exec_prefix@ bindir=@bindir@ mandir=@mandir@ libdir=@libdir@ includedir=@includedir@ doxygen=@doxygen@ libtool=@libtool@ CC=@CC@ CPPFLAGS=@CPPFLAGS@ @DEFS@ -I. CFLAGS=@CFLAGS@ -I. LDFLAGS=@LDFLAGS@ LIBS=@LIBS@ LIBOBJS=@LIBOBJS@ RUNTIME_PATH=@RUNTIME_PATH@ DATE=$(shell date +%Y%m%d) LIBTOOL=$(libtool) ifeq "$(QUIET)" "yes" LIBTOOL+=--quiet endif BUILD=build/ LINT=splint LINTFLAGS=+quiet -weak -warnposix -unrecog -Din_addr_t=uint32_t -Du_int=unsigned -Du_char=uint8_t -preproc INSTALL=$(srcdir)/install-sh COMMON_SRC=$(wildcard services/*.c util/*.c) COMMON_OBJ=$(addprefix $(BUILD),$(COMMON_SRC:.c=.o) $(LIBOBJS)) UNITTEST_SRC=$(wildcard testcode/*.c) UNITTEST_OBJ=$(addprefix $(BUILD),$(UNITTEST_SRC:.c=.o)) DAEMON_SRC=$(wildcard daemon/*.c) DAEMON_OBJ=$(addprefix $(BUILD),$(DAEMON_SRC:.c=.o)) ALL_SRC=$(COMMON_SRC) $(UNITTEST_SRC) $(DAEMON_SRC) ALL_OBJ=$(addprefix $(BUILD),$(ALL_SRC:.c=.o) $(LIBOBJS)) COMPILE=$(LIBTOOL) --tag=CC --mode=compile $(CC) $(CPPFLAGS) $(CFLAGS) LINK=$(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(LDFLAGS) LINK_LIB=$(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -release $(VERSION) $(BUILD)%.o: $(srcdir)/%.c $(INFO) Build $< @if test ! -d $(dir $@); then $(INSTALL) -d $(patsubst %/,%,$(dir $@)); fi $Q$(COMPILE) -c $< -o $@ .PHONY: clean realclean doc lint all all: $(COMMON_OBJ) unbound unittest unbound: $(COMMON_OBJ) $(DAEMON_OBJ) $(INFO) Link $@ $Q$(LINK) -o $@ $^ unittest: $(COMMON_OBJ) $(UNITTEST_OBJ) $(INFO) Link $@ $Q$(LINK) -o $@ $^ clean: rm -f *.o *.d *.lo *~ tags rm -rf autom4te.cache .libs build doc/html realclean: clean rm -f config.status config.log config.h.in config.h rm -f configure config.sub config.guess ltmain.sh aclocal.m4 libtool rm -f Makefile lint: $Qfor i in $(ALL_SRC); do \ echo lint $$i; \ $(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] doc: ifdef doxygen $(doxygen) $(srcdir)/doc/unbound.doxygen endif # Automatic dependencies. $(BUILD)%.d: $(srcdir)/%.c $(INFO) Depend $< @if test ! -d $(dir $@); then $(INSTALL) -d $(patsubst %/,%,$(dir $@)); fi $Q$(SHELL) -ec '$(CC) -MM $(CPPFLAGS) $< \ | sed '\''s!\(.*\)\.o[ :]*!$(dir $@)\1.o $@ : !g'\'' > $@; \ [ -s $@ ] || rm -f $@' -include $(addprefix $(BUILD),$(ALL_SRC:.c=.d))