forked from unknownbrackets/maxcso
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
57 lines (44 loc) · 1.66 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
PREFIX ?= /usr/local
BINDIR ?= $(PREFIX)/bin
MANDIR ?= $(PREFIX)/share/man
CC ?= gcc
CXX ?= g++
CFLAGS ?= -O2
CXXFLAGS ?= $(CFLAGS)
SRC_CFLAGS += -W -Wall -Wextra -Wno-implicit-function-declaration -DNDEBUG=1
SRC_CXXFLAGS += -W -Wall -Wextra -std=c++11 -Izopfli/src -I7zip -DNDEBUG=1 \
-Wno-unused-parameter -Wno-unused-variable -pthread
SRC_CXX_SRC = $(wildcard src/*.cpp)
SRC_CXX_OBJ = $(SRC_CXX_SRC:.cpp=.o)
CLI_CXX_SRC = $(wildcard cli/*.cpp)
CLI_CXX_OBJ = $(CLI_CXX_SRC:.cpp=.o)
ZOPFLI_C_SRC = zopfli/src/zopfli/blocksplitter.c zopfli/src/zopfli/cache.c \
zopfli/src/zopfli/deflate.c zopfli/src/zopfli/gzip_container.c \
zopfli/src/zopfli/hash.c zopfli/src/zopfli/katajainen.c \
zopfli/src/zopfli/lz77.c zopfli/src/zopfli/squeeze.c \
zopfli/src/zopfli/tree.c zopfli/src/zopfli/util.c \
zopfli/src/zopfli/zlib_container.c zopfli/src/zopfli/zopfli_lib.c
ZOPFLI_C_OBJ = $(ZOPFLI_C_SRC:.c=.o)
%.o: %.cpp
$(CXX) -c $(SRC_CXXFLAGS) $(CXXFLAGS) -o $@ $<
%.o: %.c
$(CC) -c $(SRC_CFLAGS) $(CFLAGS) -o $@ $<
maxcso: $(SRC_CXX_OBJ) $(CLI_CXX_OBJ) $(ZOPFLI_C_OBJ) 7zip/7zip.a
$(CXX) -o $@ $(SRC_CXXFLAGS) $(CXXFLAGS) $^ -luv -llz4 -lz
7zip/7zip.a:
$(MAKE) -C 7zip 7zip.a
install: all
mkdir -p $(DESTDIR)$(BINDIR)
mkdir -p $(DESTDIR)$(MANDIR)/man1
cp maxcso $(DESTDIR)$(BINDIR)
cp maxcso.1 $(DESTDIR)$(MANDIR)/man1
chmod 0755 $(DESTDIR)$(BINDIR)/maxcso
chmod 0644 $(DESTDIR)$(MANDIR)/man1/maxcso.1
uninstall:
rm -f $(DESTDIR)$(BINDIR)/maxcso
rm -f $(DESTDIR)$(MANDIR)/man1/maxcso.1
clean:
rm -f $(SRC_CXX_OBJ) $(CLI_CXX_OBJ) $(ZOPFLI_C_OBJ) maxcso
$(MAKE) -C 7zip clean
all: maxcso
.PHONY: clean all