forked from deus-libri/preflate
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
63 lines (54 loc) · 3.02 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
CC = g++
COPT = -x c -std=c99 -O3 -funroll-loops -ffast-math -fomit-frame-pointer -DZ_SOLO -DNO_GZIP
CCOPT = -std=c++11 -O3 -Wall -Wno-misleading-indentation -pedantic -funroll-loops -ffast-math -fomit-frame-pointer
DEMONAME = preflate_demo.exe
OBJDIR = objs
BINDIR = bin
PREFLATE_LIB_FILEROOTS = block_decoder block_reencoder block_trees complevel_estimator \
constants decoder hash_chain info parameter_estimator parser_config \
predictor_state reencoder statistical_codec statistical_model \
token_predictor token tree_predictor
SUPPORT_LIB_FILEROOTS = arithmetic_coder array_helper bit_helper bitstream const_division \
filestream huffman_decoder huffman_encoder huffman_helper \
memstream outputcachestream support_tests task_pool
PACKARI_FILEROOTS = aricoder bitops
PREFLATE_DEMO_FILEROOTS = main preflate_checker preflate_dumper preflate_unpack
ZLIB_FILEROOTS = adler32 inffast inflate inftrees trees zutil
DEMO_FILEROOTS = main checker dumper unpack
PREFLATE_LIB_SRC_FILES = $(addprefix preflate_, $(addsuffix .cpp, $(PREFLATE_LIB_FILEROOTS)))
PREFLATE_LIB_OBJ_FILES = $(addprefix $(OBJDIR)/preflate_, $(addsuffix .o, $(PREFLATE_LIB_FILEROOTS)))
SUPPORT_LIB_SRC_FILES = $(addprefix support/, $(addsuffix .cpp, $(SUPPORT_LIB_FILEROOTS)))
SUPPORT_LIB_OBJ_FILES = $(addprefix $(OBJDIR)/prefsup_, $(addsuffix .o, $(SUPPORT_LIB_FILEROOTS)))
PACKARI_SRC_FILES = $(addprefix packARI/, $(addsuffix .cpp, $(PACKARI_FILEROOTS)))
PACKARI_OBJ_FILES = $(addprefix $(OBJDIR)/packari_, $(addsuffix .o, $(PACKARI_FILEROOTS)))
ZLIB_SRC_FILES = $(addprefix zlib1.2.11.dec/, $(addsuffix .cpp, $(ZLIB_FILEROOTS)))
ZLIB_OBJ_FILES = $(addprefix $(OBJDIR)/zlib_, $(addsuffix .o, $(ZLIB_FILEROOTS)))
DEMO_OBJ_FILES = $(addprefix $(OBJDIR)/prefdemo_, $(addsuffix .o, $(DEMO_FILEROOTS)))
.PHONY: all
all: dirs bin/$(DEMONAME)
.PHONY: clean
clean:
rm -f objs/*.o
dirs: objs bin lib
objs bin lib:
mkdir $@
lib/libpreflate.a: $(PREFLATE_LIB_OBJ_FILES) $(SUPPORT_LIB_OBJ_FILES) $(PACKARI_OBJ_FILES)
ar r $@ $?
bin/$(DEMONAME): $(ZLIB_OBJ_FILES) $(DEMO_OBJ_FILES) lib/libpreflate.a
$(CC) $(CCOPT) -s -o $@ $?
$(OBJDIR)/preflate_%.o : preflate_%.cpp
$(CC) $(CCOPT) -Werror -o $@ -c -Isupport -IpackARI $<
$(OBJDIR)/prefsup_%.o : support/%.cpp
$(CC) $(CCOPT) -Werror -o $@ -c -Isupport -IpackARI $<
$(OBJDIR)/packari_%.o : packARI/source/%.cpp
$(CC) $(CCOPT) -o $@ -c $<
$(OBJDIR)/zlib_%.o : zlib1.2.11.dec/%.c
$(CC) $(COPT) -o $@ -c -Izlib1.2.13.dec $<
$(OBJDIR)/prefdemo_main.o : main.cpp
$(CC) $(CCOPT) -Werror -o $@ -c -Isupport -IpackARI -Izlib1.2.13.dec $<
$(OBJDIR)/prefdemo_checker.o : preflate_checker.cpp
$(CC) $(CCOPT) -Werror -o $@ -c -Isupport $<
$(OBJDIR)/prefdemo_dumper.o : preflate_dumper.cpp
$(CC) $(CCOPT) -Werror -o $@ -c -Isupport -Izlib1.2.13.dec $<
$(OBJDIR)/prefdemo_unpack.o : preflate_unpack.cpp
$(CC) $(CCOPT) -Werror -o $@ -c -Isupport -Izlib1.2.13.dec $<