unbound/Makefile.in

118 lines
3.0 KiB
Makefile
Raw Normal View History

# 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@
ldnsdir=@ldnsdir@
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
# compat with openssl linux edition.
LINTFLAGS+="-DBN_ULONG=unsigned long" -Dkrb5_int32=int "-Dkrb5_ui_4=unsigned int" -DPQ_64BIT=uint64_t
INSTALL=$(srcdir)/install-sh
COMMON_SRC=$(wildcard services/*.c util/*.c)
COMMON_OBJ=$(addprefix $(BUILD),$(COMMON_SRC:.c=.o) $(LIBOBJS))
UNITTEST_SRC=testcode/unitmain.c
UNITTEST_OBJ=$(addprefix $(BUILD),$(UNITTEST_SRC:.c=.o))
DAEMON_SRC=$(wildcard daemon/*.c)
DAEMON_OBJ=$(addprefix $(BUILD),$(DAEMON_SRC:.c=.o))
TESTBOUND_SRC=testcode/testbound.c
TESTBOUND_OBJ=$(addprefix $(BUILD),$(TESTBOUND_SRC:.c=.o))
ALL_SRC=$(COMMON_SRC) $(UNITTEST_SRC) $(DAEMON_SRC) $(TESTBOUND_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 testbound
unbound: $(COMMON_OBJ) $(DAEMON_OBJ)
$(INFO) Link $@
$Q$(LINK) -o $@ $^ $(LIBS)
unittest: $(COMMON_OBJ) $(UNITTEST_OBJ)
$(INFO) Link $@
$Q$(LINK) -o $@ $^ $(LIBS)
testbound: $(COMMON_OBJ) $(TESTBOUND_OBJ)
$(INFO) Link $@
$Q$(LINK) -o $@ $^ $(LIBS)
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) -I$(ldnsdir)/include $(srcdir)/$$i ; \
if [ $$? -ne 0 ] ; then exit 1 ; fi ; \
done
tags: $(srcdir)/*.[ch] $(srcdir)/*/*.[ch]
ctags -f $(srcdir)/tags $(srcdir)/*.[ch] $(srcdir)/*/*.[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))