-
Notifications
You must be signed in to change notification settings - Fork 21
/
Copy pathMakefile
69 lines (50 loc) · 1.49 KB
/
Makefile
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
PROJECT = fuse-archive
PKG_CONFIG ?= pkg-config
FUSE_MAJOR_VERSION ?= 3
ifeq ($(FUSE_MAJOR_VERSION), 3)
DEPS = fuse3
CXXFLAGS += -DFUSE_USE_VERSION=30
else ifeq ($(FUSE_MAJOR_VERSION), 2)
DEPS = fuse
CXXFLAGS += -DFUSE_USE_VERSION=26
endif
DEPS += libarchive
CXXFLAGS += $(shell $(PKG_CONFIG) --cflags $(DEPS))
LDFLAGS += $(shell $(PKG_CONFIG) --libs $(DEPS))
CXXFLAGS += -std=c++20 -Wall -Wextra -Wno-missing-field-initializers -Wno-sign-compare -Wno-unused-parameter
CXXFLAGS += -D_FILE_OFFSET_BITS=64
ifeq ($(DEBUG), 1)
CXXFLAGS += -O0 -g
else
CXXFLAGS += -O2 -DNDEBUG
endif
PREFIX = $(DESTDIR)/usr
BINDIR = $(PREFIX)/bin
MAN = $(PROJECT).1
MANDIR = $(PREFIX)/share/man/man1
INSTALL = install
all: out/$(PROJECT)
check: out/$(PROJECT) test/data/big.zip test/data/collisions.zip
python3 test/test.py
clean:
rm -rf out
doc: $(MAN)
man -l $(MAN)
$(MAN): README.md
pandoc $< -s -t man -o $@
install: out/$(PROJECT)
$(INSTALL) -D "out/$(PROJECT)" "$(BINDIR)/$(PROJECT)"
$(INSTALL) -D -m 644 $(MAN) "$(MANDIR)/$(MAN)"
install-strip: out/$(PROJECT)
$(INSTALL) -D -s "out/$(PROJECT)" "$(BINDIR)/$(PROJECT)"
$(INSTALL) -D -m 644 $(MAN) "$(MANDIR)/$(MAN)"
uninstall:
rm "$(BINDIR)/$(PROJECT)" "$(MANDIR)/$(MAN)"
out/$(PROJECT): $(PROJECT).cc
mkdir -p out
$(CXX) $(CPPFLAGS) $(CXXFLAGS) $< $(LDFLAGS) -o $@
test/data/big.zip: test/make_big_zip.py
python3 test/make_big_zip.py
test/data/collisions.zip: test/make_collisions.py
python3 test/make_collisions.py
.PHONY: all check clean doc install uninstall