X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=Makefile;h=7f57869ed2dd7663c073aac3b1fc3c2ba48eff02;hp=ff0bad4e91acfd32d7a0e60366850b41b0c23ba8;hb=a9f9eb8826d7f8cf9a6200967711247d5d3cfe04;hpb=2ee3b7c5586c283412ace072eed9d70a86368efd diff --git a/Makefile b/Makefile index ff0bad4e..7f57869e 100644 --- a/Makefile +++ b/Makefile @@ -11,6 +11,7 @@ WARN_CFLAGS := -Wall -Wstrict-prototypes -Wold-style-definition -Wundef \ -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wwrite-strings DEP_CFLAGS = -MMD -MP -MF$(@:%=%.d) -MT$@ CCAN_CFLAGS := -g3 -ggdb $(WARN_CFLAGS) -DCCAN_STR_DEBUG=1 -I. $(CFLAGS) +CFLAGS_FORCE_C_SOURCE := -x c # Anything with an _info file is a module ... INFO_SRCS := $(wildcard ccan/*/_info ccan/*/*/_info) @@ -18,7 +19,7 @@ ALL_INFOS := $(INFO_SRCS:%_info=%info) ALL_MODULES := $(ALL_INFOS:%/info=%) # ... Except stuff that needs external dependencies, which we exclude -EXCLUDE := altstack generator jmap jset nfs ogg_to_pcm tal/talloc wwviaudio +EXCLUDE := altstack jmap jset nfs ogg_to_pcm tal/talloc wwviaudio MODULES:= $(filter-out $(EXCLUDE:%=ccan/%), $(ALL_MODULES)) # Sources are C files in each module, objects the resulting .o files @@ -32,7 +33,7 @@ DEPS := $(OBJS:%=%.d) # _info files are compiled into executables and don't need dependencies %info : %_info config.h - $(PRE)$(CC) $(CCAN_CFLAGS) -I. -o $@ -x c $< + $(PRE)$(CC) $(CCAN_CFLAGS) -I. -o $@ $(CFLAGS_FORCE_C_SOURCE) $< # config.h is built by configurator which has no ccan dependencies CONFIGURATOR := tools/configurator/configurator @@ -61,6 +62,9 @@ LINT_DEPS := $(LINT_SRCS:%.c=%.d) $(LINT).d LINT_CCAN_MODULES := asort autodata dgraph ilog lbalance ptr_valid strmap LINT_CCAN_SRCS := $(wildcard $(LINT_CCAN_MODULES:%=ccan/%/*.c)) LINT_OBJS := $(LINT_SRCS:%.c=%.o) $(LINT_CCAN_SRCS:%.c=%.o) $(TOOLS_OBJS) +ifneq ($(GCOV),) +LINT_GCOV = --gcov="$(GCOV)" +endif $(LINT): $(LINT).c $(LINT_OBJS) $(PRE)$(CC) $(CCAN_CFLAGS) $(DEP_CFLAGS) $(LINT).c $(LINT_OBJS) -lm -o $@ @@ -70,12 +74,11 @@ $(LINT): $(LINT).c $(LINT_OBJS) TEST_DEPS := $(MODULES:%=%/.d) # We produce .ok files when the tests succeed -%.ok: $(LINT) - $(PRE)$(LINT) $(LINT_OPTS$(notdir $@)) --deps-fail-ignore $(LINTFLAGS) $(dir $*) && touch $@ +%.ok: $(LINT) %info + $(PRE)$(LINT) $(LINT_OPTS$(notdir $@)) --deps-fail-ignore $(LINT_GCOV) $(LINTFLAGS) $(dir $*) && touch $@ check: $(MODULES:%=%/.ok) fastcheck: $(MODULES:%=%/.fast.ok) -fullcheck: $(MODULES:%=%/.full.ok) ifeq ($(strip $(filter clean config.h, $(MAKECMDGOALS))),) -include $(DEPS) $(LINT_DEPS) $(TOOLS_DEPS) $(TEST_DEPS)