summaryrefslogtreecommitdiff
path: root/corebinutils/freebsd-version/GNUmakefile
blob: 21357b27a36e7f80f546377b859bda0370bad755 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
.DEFAULT_GOAL := all

SED ?= sed
SH ?= sh

OBJDIR := $(CURDIR)/build
OUTDIR := $(CURDIR)/out
GENERATED := $(OBJDIR)/linux-version
TARGET := $(OUTDIR)/linux-version

.PHONY: all clean dirs status test

all: $(TARGET)

dirs:
	@mkdir -p "$(OBJDIR)" "$(OUTDIR)"

$(GENERATED): $(CURDIR)/linux-version.sh.in | dirs
	$(SED) \
		-e 's|@@OS_RELEASE_PRIMARY@@|/etc/os-release|g' \
		-e 's|@@OS_RELEASE_FALLBACK@@|/usr/lib/os-release|g' \
		-e 's|@@PROC_OSRELEASE@@|/proc/sys/kernel/osrelease|g' \
		"$<" >"$@"
	@chmod +x "$@"

$(TARGET): $(GENERATED) | dirs
	cp "$(GENERATED)" "$(TARGET)"
	@chmod +x "$(TARGET)"

test: $(TARGET)
	LINUX_VERSION_BIN="$(TARGET)" $(SH) "$(CURDIR)/tests/test.sh"

status:
	@printf '%s\n' "$(TARGET)"

clean:
	@rm -rf "$(OBJDIR)" "$(OUTDIR)"