PREFIX ?= /usr ETC_PREFIX ?= /etc LIBDIR ?= lib LIB_PREFIX ?= $(PREFIX)/$(LIBDIR) LIBEXEC_PREFIX ?= $(LIB_PREFIX)/bees SYSTEMD_SYSTEM_UNIT_DIR ?= $(shell pkg-config systemd --variable=systemdsystemunitdir) BEES_VERSION ?= $(shell git describe --always --dirty || echo UNKNOWN) # allow local configuration to override above variables -include localconf DEFAULT_MAKE_TARGET ?= reallyall ifeq ($(DEFAULT_MAKE_TARGET),reallyall) RUN_INSTALL_TESTS = test endif include Defines.mk default: $(DEFAULT_MAKE_TARGET) all: lib src scripts reallyall: all doc test clean: ## Cleanup git clean -dfx -e localconf .PHONY: lib src test doc lib: ## Build libs +$(MAKE) TAG="$(BEES_VERSION)" -C lib src: ## Build bins src: lib +$(MAKE) BEES_VERSION="$(BEES_VERSION)" -C src test: ## Run tests test: lib src +$(MAKE) -C test doc: ## Build docs +$(MAKE) -C docs scripts/%: scripts/%.in $(TEMPLATE_COMPILER) scripts: scripts/beesd scripts/beesd@.service install_tools: ## Install support tools + libs install_tools: src install -Dm755 bin/fiemap $(DESTDIR)$(PREFIX)/bin/fiemap install -Dm755 bin/fiewalk $(DESTDIR)$(PREFIX)/sbin/fiewalk install_bees: ## Install bees + libs install_bees: src $(RUN_INSTALL_TESTS) install -Dm755 bin/bees $(DESTDIR)$(LIBEXEC_PREFIX)/bees install_scripts: ## Install scipts install_scripts: scripts install -Dm755 scripts/beesd $(DESTDIR)$(PREFIX)/sbin/beesd install -Dm644 scripts/beesd.conf.sample $(DESTDIR)/$(ETC_PREFIX)/bees/beesd.conf.sample ifneq ($(SYSTEMD_SYSTEM_UNIT_DIR),) install -Dm644 scripts/beesd@.service $(DESTDIR)$(SYSTEMD_SYSTEM_UNIT_DIR)/beesd@.service endif install: ## Install distribution install: install_bees install_scripts $(OPTIONAL_INSTALL_TARGETS) help: ## Show help @fgrep -h "##" $(MAKEFILE_LIST) | fgrep -v fgrep | sed -e 's/\\$$//' | sed -e 's/##/\t/' bees: reallyall fly: install