# This file contains dependencies for public Zabbix libraries.
# To get such list for a particular library - run "grep_dependencies.sh <public library name e.g. zbxeval>" .
# Ignore Windows dependencies for now.
# Libraries that depend only on zbxcommon - are listed as they are.
# More complex libraries that depend on other libraries in addition to zbxcommon - need all their dependencies
#    being listed using $(*DEPS) variable.
# Order in which libraries are listed must not be important.

TIME_DEPS = \
	$(top_srcdir)/src/libs/zbxtime/libzbxtime.a \
	$(top_srcdir)/src/libs/zbxnum/libzbxnum.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

# Windows build also depends on sysinfo and logs, but ignore it for now.
MUTEX_DEPS = \
	$(top_srcdir)/src/libs/zbxmutexs/libzbxmutexs.a \
	$(top_srcdir)/src/libs/zbxprof/libzbxprof.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

CFG_DEPS = \
	$(top_srcdir)/src/libs/zbxcfg/libzbxcfg.a \
	$(top_srcdir)/src/libs/zbxip/libzbxip.a \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(top_srcdir)/src/libs/zbxalgo/libzbxalgo.a \
	$(top_srcdir)/src/libs/zbxfile/libzbxfile.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

LOG_DEPS = \
	$(top_srcdir)/src/libs/zbxlog/libzbxlog.a \
	$(MUTEX_DEPS) \
	$(CFG_DEPS) \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(top_srcdir)/src/libs/zbxtime/libzbxtime.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

REGEXP_DEPS = \
	$(top_srcdir)/src/libs/zbxregexp/libzbxregexp.a \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

VARIANT_DEPS = \
	$(top_srcdir)/src/libs/zbxvariant/libzbxvariant.a \
	$(top_srcdir)/src/libs/zbxalgo/libzbxalgo.a \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(top_srcdir)/src/libs/zbxnum/libzbxnum.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

EXPR_DEPS = \
	$(top_srcdir)/src/libs/zbxexpr/libzbxexpr.a \
	$(top_srcdir)/src/libs/zbxnum/libzbxnum.a \
	$(top_srcdir)/src/libs/zbxregexp/libzbxregexp.a \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(top_srcdir)/src/libs/zbxtime/libzbxtime.a \
	$(top_srcdir)/src/libs/zbxcrypto/libzbxcrypto.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

JSON_DEPS = \
	$(top_srcdir)/src/libs/zbxjson/libzbxjson.a \
	$(top_srcdir)/src/libs/zbxalgo/libzbxalgo.a \
	$(REGEXP_DEPS) \
	$(VARIANT_DEPS) \
	$(top_srcdir)/src/libs/zbxnum/libzbxnum.a \
	$(EXPR_DEPS) \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

CRYPTO_DEPS = \
	$(top_srcdir)/src/libs/zbxcrypto/libzbxcrypto.a \
	$(TIME_DEPS) \
	$(top_srcdir)/src/libs/zbxhash/libzbxhash.a \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

XML_DEPS = \
	$(top_srcdir)/src/libs/zbxxml/libzbxxml.a \
	$(top_srcdir)/src/libs/zbxalgo/libzbxalgo.a \
	$(top_srcdir)/src/libs/zbxvariant/libzbxvariant.a \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(JSON_DEPS) \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

EVAL_DEPS = \
	$(top_srcdir)/src/libs/zbxeval/libzbxeval.a \
	$(EXPR_DEPS) \
	$(JSON_DEPS) \
	$(VARIANT_DEPS) \
	$(XML_DEPS) \
	$(top_srcdir)/src/libs/zbxserialize/libzbxserialize.a \
	$(top_srcdir)/src/libs/zbxalgo/libzbxalgo.a \
	$(top_srcdir)/src/libs/zbxtime/libzbxtime.a \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(top_srcdir)/src/libs/zbxnum/libzbxnum.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

DB_DEPS = \
	$(top_srcdir)/src/libs/zbxdb/libzbxdb.a \
	$(top_srcdir)/src/libs/zbxshmem/libzbxshmem.a \
	$(top_srcdir)/src/libs/zbxdbschema/libzbxdbschema.a \
	$(CFG_DEPS) \
	$(JSON_DEPS) \
	$(MUTEX_DEPS) \
	$(CRYPTO_DEPS) \
	$(top_srcdir)/src/libs/zbxalgo/libzbxalgo.a \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(top_srcdir)/src/libs/zbxtime/libzbxtime.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a 

# WARNING - cyclyc dependency with DBHIGH
TAGFILTER_DEPS = \
	$(top_srcdir)/src/libs/zbxtagfilter/libzbxtagfilter.a \
	$(EXPR_DEPS) \
	$(top_srcdir)/src/libs/zbxdbhigh/libzbxdbhigh.a \
	$(top_srcdir)/src/libs/zbxalgo/libzbxalgo.a

DBHIGH_DEPS = \
	$(top_srcdir)/src/libs/zbxdbhigh/libzbxdbhigh.a \
	$(DB_DEPS) \
	$(TAGFILTER_DEPS) \
	$(top_srcdir)/src/libs/zbxserialize/libzbxserialize.a \
	$(CRYPTO_DEPS) \
	$(CFG_DEPS) \
	$(top_srcdir)/src/libs/zbxthreads/libzbxthreads.a \
	$(LOG_DEPS) \
	$(top_srcdir)/src/libs/zbxversion/libzbxversion.a \
	$(top_srcdir)/src/libs/zbxalgo/libzbxalgo.a \
	$(top_srcdir)/src/libs/zbxnum/libzbxnum.a \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(top_srcdir)/src/libs/zbxtime/libzbxtime.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

NIX_DEPS = \
	$(top_srcdir)/src/libs/zbxthreads/libzbxthreads.a \
	$(COMMS_DEPS) \
	$(MUTEX_DEPS) \
	$(LOG_DEPS) \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

COMMS_DEPS = \
	$(top_srcdir)/src/libs/zbxcomms/libzbxcomms.a \
	$(top_srcdir)/src/libs/zbxalgo/libzbxalgo.a \
	$(top_srcdir)/src/libs/zbxip/libzbxip.a \
	$(top_srcdir)/src/libs/zbxtime/libzbxtime.a \
	$(CRYPTO_DEPS) \
	$(top_srcdir)/src/libs/zbxcompress/libzbxcompress.a \
	$(LOG_DEPS) \
	$(MUTEX_DEPS) \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

COMMSHIGH_DEPS = \
	$(top_srcdir)/src/libs/zbxcommshigh/libzbxcommshigh.a \
	$(COMMS_DEPS) \
	$(CFG_DEPS) \
	$(JSON_DEPS) \
	$(LOG_DEPS) \
	$(TIME_DEPS) \
	$(NIX_DEPS) \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

EXEC_DEPS = \
	$(top_srcdir)/src/libs/zbxexec/libzbxexec.a \
	$(LOG_DEPS) \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(top_srcdir)/src/libs/zbxthreads/libzbxthreads.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

# HTTP also depends on DBHIGH, not included yet, need to allow agent only tests pass.
# HTTP library dependency on DBHIGH can be easily removed.
HTTP_DEPS = \
	$(top_srcdir)/src/libs/zbxhttp/libzbxhttp.a \
	$(EXPR_DEPS) \
	$(LOG_DEPS) \
	$(TIME_DEPS) \
	$(top_srcdir)/src/libs/zbxcurl/libzbxcurl.a \
	$(top_srcdir)/src/libs/zbxalgo/libzbxalgo.a \
	$(top_srcdir)/src/libs/zbxthreads/libzbxthreads.a \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(top_srcdir)/src/libs/zbxnum/libzbxnum.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

PARAM_DEPS = \
	$(top_srcdir)/src/libs/zbxparam/libzbxparam.a \
	$(EXPR_DEPS) \
	$(top_srcdir)/src/libs/zbxnum/libzbxnum.a \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

SYSINFO_COMMON_DEPS = \
	$(top_srcdir)/src/libs/zbxalgo/libzbxalgo.a \
	$(CFG_DEPS) \
	$(COMMS_DEPS) \
	$(CRYPTO_DEPS) \
	$(top_srcdir)/src/libs/zbxcurl/libzbxcurl.a \
	$(EXEC_DEPS) \
	$(EXPR_DEPS) \
	$(top_srcdir)/src/libs/zbxfile/libzbxfile.a \
	$(top_srcdir)/src/libs/zbxhash/libzbxhash.a \
	$(top_srcdir)/src/libs/zbxip/libzbxip.a \
	$(JSON_DEPS) \
	$(LOG_DEPS) \
	$(MUTEX_DEPS) \
	$(NIX_DEPS) \
	$(top_srcdir)/src/libs/zbxnum/libzbxnum.a \
	$(PARAM_DEPS) \
	$(REGEXP_DEPS) \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(top_srcdir)/src/libs/zbxthreads/libzbxthreads.a \
	$(top_srcdir)/src/libs/zbxtime/libzbxtime.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a

SYSINFO_SERVER_DEPS = \
	$(top_srcdir)/src/libs/zbxsysinfo/libzbxserversysinfo.a \
	$(top_srcdir)/src/libs/zbxsysinfo/common/libcommonsysinfo.a \
	$(top_srcdir)/src/libs/zbxsysinfo/simple/libsimplesysinfo.a \
	$(top_srcdir)/src/libs/zbxsysinfo/common/libcommonsysinfo_httpmetrics.a \
	$(top_srcdir)/src/libs/zbxsysinfo/common/libcommonsysinfo_http.a \
	$(top_srcdir)/src/libs/zbxsysinfo/simple/libsimplesysinfo.a \
	$(top_srcdir)/src/libs/zbxsysinfo/alias/libalias.a \
	$(HTTP_DEPS) \
	$(SYSINFO_COMMON_DEPS)

SYSINFO_AGENT_DEPS = \
	$(top_srcdir)/src/libs/zbxsysinfo/libzbxagentsysinfo.a \
	$(top_srcdir)/src/libs/zbxsysinfo/$(ARCH)/libfunclistsysinfo.a \
	$(top_srcdir)/src/libs/zbxsysinfo/agent/libagentsysinfo.a \
	$(top_srcdir)/src/libs/zbxsysinfo/$(ARCH)/libspechostnamesysinfo.a \
	$(top_srcdir)/src/libs/zbxsysinfo/simple/libsimplesysinfo.a \
	$(top_srcdir)/src/libs/zbxsysinfo/common/libcommonsysinfo.a \
	$(top_srcdir)/src/libs/zbxsysinfo/common/libcommonsysinfo_httpmetrics.a \
	$(top_srcdir)/src/libs/zbxsysinfo/$(ARCH)/libspecsysinfo.a \
	$(top_srcdir)/src/libs/zbxsysinfo/alias/libalias.a \
	$(SYSINFO_COMMON_DEPS)

# cmocka dependencies
MOCK_DATA_DEPS = \
	$(top_srcdir)/tests/libzbxmockdata.a \
	$(top_srcdir)/src/libs/zbxtime/libzbxtime.a \
	$(top_srcdir)/src/libs/zbxalgo/libzbxalgo.a \
	$(top_srcdir)/src/libs/zbxstr/libzbxstr.a \
	$(top_srcdir)/src/libs/zbxnum/libzbxnum.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a \
	$(CMOCKA_LIBS) $(YAML_LIBS) $(TLS_LIBS)

MOCK_TEST_DEPS = \
	$(top_srcdir)/tests/libzbxmocktest.a \
	$(top_srcdir)/src/libs/zbxnix/libzbxnix.a \
	$(top_srcdir)/tests/libzbxmockdata.a \
	$(top_srcdir)/src/libs/zbxlog/libzbxlog.a \
	$(top_srcdir)/src/libs/zbxnum/libzbxnum.a \
	$(top_srcdir)/src/libs/zbxthreads/libzbxthreads.a \
	$(top_srcdir)/src/libs/zbxcomms/libzbxcomms.a \
	$(top_srcdir)/src/libs/zbxcommon/libzbxcommon.a