2005-07-31 12:10:46 +00:00
|
|
|
# generic utility modules
|
|
|
|
|
# (c) 2001 jannet it services
|
|
|
|
|
# contact@jannet.de
|
|
|
|
|
# $Id$
|
|
|
|
|
|
2018-12-27 17:02:19 +00:00
|
|
|
ifndef TARGETS_TOOLS_MK_INCLUDED
|
2019-03-17 16:24:26 +00:00
|
|
|
TARGETS_TOOLS_MK_INCLUDED = true
|
2018-12-27 17:02:19 +00:00
|
|
|
|
2019-06-29 21:34:18 +00:00
|
|
|
include $(JWBDIR)/make/rules.mk
|
2007-08-21 16:20:27 +00:00
|
|
|
|
2012-02-28 12:44:27 +00:00
|
|
|
ifneq ($(strip $(SRC_ALL_CPP)),)
|
|
|
|
|
|
2009-06-06 15:29:36 +00:00
|
|
|
# mandatory targets
|
2013-06-11 13:49:52 +00:00
|
|
|
all:
|
|
|
|
|
# all.link
|
2005-07-31 12:10:46 +00:00
|
|
|
install: $(ALL)
|
2009-06-06 15:29:36 +00:00
|
|
|
|
|
|
|
|
# convenience targets
|
2013-06-11 13:49:52 +00:00
|
|
|
#link: all.link
|
2009-06-06 15:29:36 +00:00
|
|
|
clean-link: clean.link
|
|
|
|
|
|
2013-06-11 13:49:52 +00:00
|
|
|
#all.link: $(HDRDIR_SCOPE_SUFFIX)
|
2009-06-06 15:29:36 +00:00
|
|
|
|
2013-05-30 12:50:40 +00:00
|
|
|
$(HDRDIR_SCOPE_SUFFIX):
|
2019-01-30 16:23:29 +00:00
|
|
|
mkdir -p $(dir $(HDRDIR_SCOPE_SUFFIX))
|
|
|
|
|
ln -s $(shell realpath -m . --relative-to $(dir $(HDRDIR_SCOPE_SUFFIX))) $@
|
2009-06-06 15:29:36 +00:00
|
|
|
|
2012-09-02 16:06:47 +00:00
|
|
|
ifeq ($(SCOPE_PREFIX),)
|
2013-06-11 13:49:52 +00:00
|
|
|
#all.link: $(BUILD_HDRDIR)/$(HDRDIR_SCOPE_SUFFIX)
|
2012-09-02 16:06:47 +00:00
|
|
|
|
2013-06-11 13:49:52 +00:00
|
|
|
#$(BUILD_HDRDIR)/$(HDRDIR_SCOPE_SUFFIX):
|
|
|
|
|
# cd $(BUILD_HDRDIR_BASE) && ln -s . $(HDRDIR_SCOPE_SUFFIX)
|
2012-09-02 16:06:47 +00:00
|
|
|
endif
|
|
|
|
|
|
2019-03-02 17:21:48 +00:00
|
|
|
ifneq ($(TARGET),mingw)
|
2019-04-08 18:26:45 +00:00
|
|
|
$(LIB_SO): $(BUILD_OBJ)
|
2019-03-02 17:21:48 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
all.done: $(PREREQ_DONE) $(BUILD_HDR) $(BUILD_EXE_SH) $(MEMBERS) $(LIB_A) | $(HDRDIR_SCOPE_SUFFIX)
|
2009-06-06 15:29:36 +00:00
|
|
|
|
2019-03-02 17:21:48 +00:00
|
|
|
ifneq ($(TARGET),mingw)
|
|
|
|
|
all.done: $(LIB_SO)
|
|
|
|
|
endif
|
2007-08-21 16:20:27 +00:00
|
|
|
|
2012-02-28 12:44:27 +00:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
clean: objclean textclean localclean profclean clean.link
|
|
|
|
|
|
|
|
|
|
clean.link:
|
2019-01-30 16:23:29 +00:00
|
|
|
if [ -L "$(HDRDIR_SCOPE_SUFFIX)" -a "`realpath --relative-to . $(HDRDIR_SCOPE_SUFFIX) 2>/dev/null`" = . ]; then \
|
|
|
|
|
rm $(HDRDIR_SCOPE_SUFFIX) ;\
|
|
|
|
|
rmdir -p $(dir $(HDRDIR_SCOPE_SUFFIX)) 2>/dev/null || : ;\
|
|
|
|
|
fi
|
|
|
|
|
|
2019-03-17 16:24:26 +00:00
|
|
|
CLANG_TIDY_H_C_CPP := $(shell $(ECHO) $(LOCAL_H) | xargs -r $(GREP) -l 'extern *"C"')
|
|
|
|
|
CLANG_TIDY_H_C := $(wildcard [a-z]*.h)
|
|
|
|
|
CLANG_TIDY_H_CPP := $(wildcard [A-Z]*.h)
|
|
|
|
|
#CLANG_TIDY_H_CPP := $(filter-out $(CLANG_TIDY_H_C),$(LOCAL_H))
|
2019-03-17 15:11:14 +00:00
|
|
|
|
|
|
|
|
# false positives on assert(), see https://reviews.llvm.org/D31130
|
2019-03-17 16:24:26 +00:00
|
|
|
CLANG_TIDY_EXTRA_ARGS += -cppcoreguidelines-pro-bounds-array-to-pointer-decay
|
2019-03-17 15:11:14 +00:00
|
|
|
|
|
|
|
|
# keep va_args
|
2019-03-17 16:24:26 +00:00
|
|
|
CLANG_TIDY_EXTRA_ARGS += -cppcoreguidelines-pro-type-vararg
|
2019-03-17 15:11:14 +00:00
|
|
|
|
|
|
|
|
# keep pointer arithmetic
|
2019-03-17 16:24:26 +00:00
|
|
|
CLANG_TIDY_EXTRA_ARGS += -cppcoreguidelines-pro-bounds-pointer-arithmetic
|
2019-03-17 15:11:14 +00:00
|
|
|
|
|
|
|
|
# don't have GSL (for now)
|
2019-03-17 16:24:26 +00:00
|
|
|
CLANG_TIDY_EXTRA_ARGS += -cppcoreguidelines-pro-bounds-constant-array-index
|
2019-03-17 15:11:14 +00:00
|
|
|
|
2019-03-17 16:24:26 +00:00
|
|
|
CLANG_TIDY_FILTER = $(SED) 's%\[\([a-z-]\+\)\]$$%[https://clang.llvm.org/extra/clang-tidy/checks/\1.html]%'
|
|
|
|
|
CLANG_TIDY_CHECKS ?= -$(subst $(space),,*,clang-analyzer-*,-clang-analyzer-cplusplus*,modernize-*,portability-*,cppcoreguidelines-*$(addprefix $(comma),$(CLANG_TIDY_EXTRA_ARGS)))
|
|
|
|
|
CLANG_TIDY ?= clang-tidy -checks=$(CLANG_TIDY_CHECKS)
|
2019-03-16 10:43:23 +00:00
|
|
|
|
2019-03-17 15:11:14 +00:00
|
|
|
clean: clang-tidy-clean
|
|
|
|
|
clang-tidy-clean:
|
|
|
|
|
rm -f clang-tidy-cache*.tmp
|
2019-03-17 16:24:26 +00:00
|
|
|
CLANG_TIDY_CACHE_CPP = clang-tidy-cache-cpp.tmp
|
2019-03-17 15:11:14 +00:00
|
|
|
$(CLANG_TIDY_CACHE_CPP): $(LOCAL_CPP)
|
2019-06-24 12:58:53 +00:00
|
|
|
$(CLANG_TIDY) $(LOCAL_CPP) -- $(FINAL_INCLUDE) -x c++ | $(CLANG_TIDY_FILTER) | tee $@
|
2019-03-17 15:11:14 +00:00
|
|
|
|
|
|
|
|
clang-tidy-h-c-cpp:
|
2019-03-17 15:17:58 +00:00
|
|
|
ifneq ($(CLANG_TIDY_H_C_CPP),)
|
2019-06-24 12:58:53 +00:00
|
|
|
$(CLANG_TIDY) $(CLANG_TIDY_H_C_CPP) -- $(FINAL_INCLUDE)
|
2019-03-17 15:17:58 +00:00
|
|
|
endif
|
2019-03-17 15:11:14 +00:00
|
|
|
clang-tidy-h-c:
|
2019-03-17 15:17:58 +00:00
|
|
|
ifneq ($(CLANG_TIDY_H_C_C),)
|
2019-06-24 12:58:53 +00:00
|
|
|
$(CLANG_TIDY) $(CLANG_TIDY_H_C) -- $(FINAL_INCLUDE)
|
2019-03-17 15:17:58 +00:00
|
|
|
endif
|
2019-03-17 15:11:14 +00:00
|
|
|
clang-tidy-h-cpp:
|
2019-03-17 15:17:58 +00:00
|
|
|
ifneq ($(CLANG_TIDY_H_CPP),)
|
2019-06-24 12:58:53 +00:00
|
|
|
$(CLANG_TIDY) $(CLANG_TIDY_H_CPP) -- $(FINAL_INCLUDE) -x c++
|
2019-03-17 15:17:58 +00:00
|
|
|
endif
|
2019-03-17 15:11:14 +00:00
|
|
|
clang-tidy-h: clang-tidy-h-c clang-tidy-h-cpp clang-tidy-h-c-cpp
|
|
|
|
|
|
2019-03-16 10:43:23 +00:00
|
|
|
clang-tidy-c:
|
2019-03-17 15:17:58 +00:00
|
|
|
ifneq ($(LOCAL_C),)
|
2019-06-24 12:58:53 +00:00
|
|
|
$(CLANG_TIDY) $(LOCAL_C) -- $(FINAL_INCLUDE)
|
2019-03-17 15:17:58 +00:00
|
|
|
endif
|
2019-03-17 15:11:14 +00:00
|
|
|
clang-tidy-cpp: $(CLANG_TIDY_CACHE_CPP)
|
|
|
|
|
cat $<
|
2019-03-16 10:43:23 +00:00
|
|
|
clang-tidy: clang-tidy-h clang-tidy-c clang-tidy-cpp
|
2012-02-28 12:44:27 +00:00
|
|
|
|
2018-12-27 17:02:19 +00:00
|
|
|
endif # ifndef TARGETS_TOOLS_MK_INCLUDED
|