# SPDX-License-Identifier: GPL-2.0-only

include $(srctree)/tools/scripts/utilities.mak

STOP_ERROR :=

ifndef ($(NO_LIBTRACEEVENT),1)
  ifeq ($(call get-executable,$(PKG_CONFIG)),)
    $(error Error: $(PKG_CONFIG) needed by libtraceevent/libtracefs is missing on this system, please install it)
  endif
endif

define lib_setup
  $(eval LIB_INCLUDES += $(shell sh -c "$(PKG_CONFIG) --cflags lib$(1)"))
  $(eval LDFLAGS += $(shell sh -c "$(PKG_CONFIG) --libs-only-L lib$(1)"))
  $(eval EXTLIBS += $(shell sh -c "$(PKG_CONFIG) --libs-only-l lib$(1)"))
endef

$(call feature_check,libtraceevent)
ifeq ($(feature-libtraceevent), 1)
  $(call detected,CONFIG_LIBTRACEEVENT)
  $(call lib_setup,traceevent)
else
  STOP_ERROR := 1
  $(info libtraceevent is missing. Please install libtraceevent-dev/libtraceevent-devel)
endif

$(call feature_check,libtracefs)
ifeq ($(feature-libtracefs), 1)
  $(call detected,CONFIG_LIBTRACEFS)
  $(call lib_setup,tracefs)
else
  STOP_ERROR := 1
  $(info libtracefs is missing. Please install libtracefs-dev/libtracefs-devel)
endif

ifeq ($(STOP_ERROR),1)
  $(error Please, check the errors above.)
endif
