summaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 62226b815681dc139e6f7fd3f5a662cf096450c4 (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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
SHELL = /bin/sh
prefix = /usr/local

VERSION = $(shell git describe --dirty --always)
DATE_FMT = +%b %d %Y %H:%M:%S UTC

ifdef SOURCE_DATE_EPOCH
	BUILD_DATE ?= $(shell \
		date -u -d "@$(SOURCE_DATE_EPOCH)" "$(DATE_FMT)" 2>/dev/null \
		|| date -u -r "@$(SOURCE_DATE_EPOCH)" "$(DATE_FMT)" 2>/dev/null \
		|| date -u "$(DATE_FMT)")
else
	BUILD_DATE ?= $(shell date -u "$(DATE_FMT)")
endif

INSTALL	= install

FEATURE_TEST_MACROS = _GNU_SOURCE
CFLAGS += -Wall $(addprefix -D, $(FEATURE_TEST_MACROS)) \
	  -DVERSION="\"$(VERSION)\"" -DBUILD_DATE="\"$(BUILD_DATE)\""
LDFLAGS +=

TARGETS := exchange
MAINS := $(addsuffix .o, $(TARGETS))
OBJ := $(MAINS)

MAN1 := exchange.1
MAN1_GZ := $(addsuffix .gz, $(MAN1))

.PHONY: all
all: $(TARGETS) $(MAN1_GZ)

.PHONY: clean
clean:
	rm -f $(OBJ) $(TARGETS) $(MAN1_GZ)

.PHONY: distclean
distclean: clean

.PHONY: install
install: $(TARGETS) $(MAN1_GZ)
	$(INSTALL) -Dt "$(DESTDIR)$(prefix)/bin" $(TARGETS)
	$(INSTALL) -Dt "$(DESTDIR)$(prefix)/share/man/man1" $(MAN1_GZ)

.PHONY: uninstall
uninstall:
	cd $(DESTDIR)$(prefix)/bin && rm -f $(TARGETS)
	cd $(DESTDIR)$(prefix)/share/man/man1 && rm -f $(MAN1_GZ)


$(TARGETS): % : %.o
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^

$(MAN1_GZ): %.gz : %
	gzip -9 -k -f $^