subdirs = add_entropy boot-trust-manager
install-subdirs = $(subdirs:%=install-%)
clean-subdirs = $(subdirs:%=clean-%)

prefix = /usr/local
exec_prefix = $(prefix)
bindir = $(exec_prefix)/bin
libdir = $(prefix)/lib
sbindir = $(exec_prefix)/sbin
datarootdir = $(prefix)/share

ifeq ($(prefix), /usr/local)
sysconfdir = $(prefix)/etc
else
sysconfdir = /etc
endif

INSTALL = install
INSTALL_PROGRAM = $(INSTALL)
INSTALL_DATA = $(INSTALL) -m 644

.PHONY : all
all : $(subdirs)

.PHONY : $(subdirs)
$(subdirs) :
	$(MAKE) -C $@

.PHONY : $(install-subdirs)
$(install-subdirs) :
	$(MAKE) -C $(@:install-%=%) install

.PHONY : installdirs
installdirs :
	mkdir -p $(DESTDIR)/sbin
	mkdir -p $(DESTDIR)$(datarootdir)/puavo-conf/definitions
	mkdir -p $(DESTDIR)$(libdir)/dracut/modules.d/80puavo-boot-trust-manager
	mkdir -p $(DESTDIR)$(libdir)/dracut/modules.d/90puavo
	mkdir -p $(DESTDIR)$(libdir)/puavo-core
	mkdir -p $(DESTDIR)$(sysconfdir)/puavo-conf/files/etc/pam.d
	mkdir -p $(DESTDIR)$(sysconfdir)/puavo-conf/files/messages
	mkdir -p $(DESTDIR)$(sysconfdir)/puavo-conf/hooks
	mkdir -p $(DESTDIR)$(sysconfdir)/puavo-conf/scripts
	mkdir -p $(DESTDIR)/var/lib/puavo

.PHONY : install
install : $(install-subdirs) installdirs
	$(INSTALL_PROGRAM) -t $(DESTDIR)/sbin init-puavo
	$(INSTALL_DATA) -t $(DESTDIR)$(datarootdir)/puavo-conf/definitions \
		puavo-conf/definitions/*.json
	cp -r dracut/modules.d/80puavo-boot-trust-manager/. \
		$(DESTDIR)$(libdir)/dracut/modules.d/80puavo-boot-trust-manager
	$(INSTALL_PROGRAM) -t $(DESTDIR)$(libdir)/dracut/modules.d/90puavo \
		dracut/modules.d/90puavo/*
	$(INSTALL_DATA) -t $(DESTDIR)$(sysconfdir)/puavo-conf/files/etc/pam.d/ \
		puavo-conf/files/etc/pam.d/*
	$(INSTALL_DATA) -t $(DESTDIR)$(sysconfdir)/puavo-conf/files/messages/ \
		puavo-conf/files/messages/*
	$(INSTALL_PROGRAM) -t $(DESTDIR)$(sysconfdir)/puavo-conf/scripts \
		puavo-conf/scripts/*
	$(INSTALL_PROGRAM) -t $(DESTDIR)$(libdir)/puavo-core \
		lib/puavo-get-boot-disks \
		lib/puavo-install-uki-commandline-addon
	ln -fns ../scripts/setup_btrfs_quotas \
		$(DESTDIR)$(sysconfdir)/puavo-conf/hooks/puavo.image.overlay

.PHONY : $(clean-subdirs)
$(clean-subdirs) :
	$(MAKE) -C $(@:clean-%=%) clean

.PHONY : clean
clean : $(clean-subdirs)
