1# SPDX-License-Identifier: GPL-2.0 2 3# YNL selftest build snippet 4 5# Inputs: 6# 7# YNL_GENS: families we need in the selftests 8# YNL_GEN_PROGS: TEST_GEN_PROGS which need YNL 9# YNL_GEN_FILES: TEST_GEN_FILES which need YNL 10 11YNL_OUTPUTS := $(patsubst %,$(OUTPUT)/%,$(YNL_GEN_FILES)) \ 12 $(patsubst %,$(OUTPUT)/%,$(YNL_GEN_PROGS)) 13YNL_SPECS := \ 14 $(patsubst %,$(top_srcdir)/Documentation/netlink/specs/%.yaml,$(YNL_GENS)) 15 16$(YNL_OUTPUTS): $(OUTPUT)/libynl.a 17$(YNL_OUTPUTS): CFLAGS += \ 18 -I$(top_srcdir)/usr/include/ $(KHDR_INCLUDES) \ 19 -I$(top_srcdir)/tools/net/ynl/lib/ \ 20 -I$(top_srcdir)/tools/net/ynl/generated/ 21 22# Make sure we rebuild libynl if user added a new family. We can't easily 23# depend on the contents of a variable so create a fake file with a hash. 24YNL_GENS_HASH := $(shell echo $(YNL_GENS) | sha1sum | cut -c1-8) 25$(OUTPUT)/.libynl-$(YNL_GENS_HASH).sig: 26 $(Q)rm -f $(OUTPUT)/.libynl-*.sig 27 $(Q)touch $(OUTPUT)/.libynl-$(YNL_GENS_HASH).sig 28 29$(OUTPUT)/libynl.a: $(YNL_SPECS) $(OUTPUT)/.libynl-$(YNL_GENS_HASH).sig 30 $(Q)rm -f $(top_srcdir)/tools/net/ynl/libynl.a 31 $(Q)$(MAKE) -C $(top_srcdir)/tools/net/ynl \ 32 GENS="$(YNL_GENS)" RSTS="" libynl.a 33 $(Q)cp $(top_srcdir)/tools/net/ynl/libynl.a $(OUTPUT)/libynl.a 34 35EXTRA_CLEAN += \ 36 $(top_srcdir)/tools/net/ynl/pyynl/__pycache__ \ 37 $(top_srcdir)/tools/net/ynl/pyynl/lib/__pycache__ \ 38 $(top_srcdir)/tools/net/ynl/lib/*.[ado] \ 39 $(OUTPUT)/.libynl-*.sig \ 40 $(OUTPUT)/libynl.a 41