# SPDX-License-Identifier: GPL-2.0
include ../scripts/Makefile.include
include ../scripts/Makefile.arch
include ../scripts/utilities.mak

BINDIR=usr/bin
ifeq ($(LP64), 1)
  LIBDIR=usr/lib64
else
  LIBDIR=usr/lib
endif
MANDIR=usr/share/man
MAN1DIR=$(MANDIR)/man1
CFLAGS=-ggdb -Wall

PROGS=manage_digest_lists

GENERATORS=libgen-tlv-list.so libgen-rpm-list.so
PARSERS=libparse-tlv-list.so libparse-rpm-list.so
RPM_PLUGIN=digest_lists.so

MAN1=manage_digest_lists.1

A2X=a2x
a2x_path := $(call get-executable,$(A2X))

all: man $(PROGS) $(RPM_PLUGIN)

manage_digest_lists: manage_digest_lists.c common.c $(GENERATORS) $(PARSERS)
	$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -lcrypto

libgen-tlv-list.so: generators/tlv.c common.c
	$(CC) $(CFLAGS) -fPIC --shared -Wl,-soname,libgen-tlv-list.so $^ -o $@ -lcrypto

libgen-rpm-list.so: generators/rpm.c common.c
	$(CC) $(CFLAGS) -fPIC --shared -Wl,-soname,libgen-rpm-list.so $^ -o $@ -lrpm -lrpmio -lcrypto

libparse-tlv-list.so: parsers/tlv.c common.c ../../lib/tlv_parser.c
	$(CC) $(CFLAGS) -fPIC --shared -Wl,-soname,libparse-tlv-list.so $^ -o $@ -I parsers -lcrypto

libparse-rpm-list.so: parsers/rpm.c common.c
	$(CC) $(CFLAGS) -fPIC --shared -Wl,-soname,libparse-rpm-list.so $^ -o $@ -I parsers -lrpm -lrpmio -lcrypto

digest_lists.so: rpm-plugin/digest_lists.c common.c generators/rpm.c parsers/rpm.c
	$(CC) $(CFLAGS) -fPIC --shared -Wl,-soname,digest_lists.so $^ -o $@ -lrpm -lrpmio -lcrypto

ifneq ($(findstring $(MAKEFLAGS),s),s)
  ifneq ($(V),1)
     QUIET_A2X = @echo '  A2X     '$@;
  endif
endif

%.1: %.txt
ifeq ($(a2x_path),)
	$(error "You need to install asciidoc for man pages")
else
	$(QUIET_A2X)$(A2X) --doctype manpage --format manpage $<
endif

clean:
	rm -f $(MAN1) $(PROGS) $(GENERATORS) $(PARSERS) $(RPM_PLUGIN)

man: $(MAN1)

install-man: man
	install -d -m 755 $(INSTALL_ROOT)/$(MAN1DIR)
	install -m 644 $(MAN1) $(INSTALL_ROOT)/$(MAN1DIR)

install-tools: $(PROGS)
	install -d -m 755 $(INSTALL_ROOT)/$(BINDIR)
	install -m 755 -p $(PROGS) $(INSTALL_ROOT)/$(BINDIR)
	install -d -m 755 $(INSTALL_ROOT)/$(LIBDIR)
	install -m 755 -p $(GENERATORS) $(INSTALL_ROOT)/$(LIBDIR)
	install -m 755 -p $(PARSERS) $(INSTALL_ROOT)/$(LIBDIR)
	install -d -m 755 $(INSTALL_ROOT)/$(LIBDIR)/rpm-plugins
	install -m 755 -p $(RPM_PLUGIN) $(INSTALL_ROOT)/$(LIBDIR)/rpm-plugins
	install -d -m 755 $(INSTALL_ROOT)/usr/lib/rpm/macros.d
	install -m 755 -p rpm-plugin/macros.digest_lists $(INSTALL_ROOT)/usr/lib/rpm/macros.d

install: install-tools install-man
.PHONY: all clean man install-tools install-man install
