# SPDX-License-Identifier: MIT CXXVER := $(shell $(CXX) --version) ifneq "$(findstring clang,$(CXXVER))" "" # GCC doesn't have this granularity CXXSPECIFIC := -flto=full -pedantic -Wno-gnu-statement-expression -Wno-gnu-include-next -Wno-gnu-conditional-omitted-operand -Wno-c++20-designator ifeq "$(AR)" "ar" # Need this because -flto=full produces objects FSF ranlib (ar s) can't index override AR := llvm-ar endif else CXXSPECIFIC := -flto endif ifneq "$(ADDITIONAL_INCLUDE_DIR)" "" INCCXXAR := -isystem$(ADDITIONAL_INCLUDE_DIR) else INCCXXAR := endif ifneq "$(ADDITIONAL_LINK_DIR)" "" LNCXXAR := -L$(ADDITIONAL_LINK_DIR) else LNCXXAR := endif TZPFMS_VERSION ?= "$(patsubst v%,%,$(shell git describe))" TZPFMS_DATE ?= $(shell date -d@$$(git log --no-show-signature -1 --pretty=%at) '+%B %e, %Y') SYSTEMD_SYSTEM_UNITDIR := $(shell ssud="$$(pkg-config --variable=systemd_system_unit_dir systemd 2>/dev/null)"; echo "$${ssud:-/usr/lib/systemd/system}") INCCMAKEAR := CXXFLAGS="$(INCCXXAR)" LNCMAKEAR := LDFLAGS="$(LNCXXAR)" AWK ?= awk SED ?= sed MANDOC ?= mandoc SHELLCHECK ?= shellcheck CXXAR := -g -O3 -std=c++17 -fno-exceptions -Wall -Wextra $(CXXSPECIFIC) -pipe $(INCCXXAR) -fPIC OUTDIR := out/ BLDDIR := out/build/ OBJDIR := $(BLDDIR)obj/ SRCDIR := src/ MANDIR := man/ INITRDDIR := initrd/