OLD | NEW |
1 OS := $(shell uname) | 1 OS := $(shell uname) |
2 | 2 |
3 CPPFLAGS = -I./brotli/dec/ -I./brotli/enc/ -I./src | 3 CPPFLAGS = -I./brotli/include/ -I./src |
4 | 4 |
| 5 AR ?= ar |
5 CC ?= gcc | 6 CC ?= gcc |
6 CXX ?= g++ | 7 CXX ?= g++ |
7 | 8 |
8 COMMON_FLAGS = -fno-omit-frame-pointer -no-canonical-prefixes -DFONT_COMPRESSION
_BIN -D __STDC_FORMAT_MACROS | 9 # It's helpful to be able to turn these off for fuzzing |
| 10 CANONICAL_PREFIXES ?= -no-canonical-prefixes |
| 11 NOISY_LOGGING ?= -DFONT_COMPRESSION_BIN |
| 12 COMMON_FLAGS = -fno-omit-frame-pointer $(CANONICAL_PREFIXES) $(NOISY_LOGGING) -D
__STDC_FORMAT_MACROS |
9 | 13 |
10 ifeq ($(OS), Darwin) | 14 ifeq ($(OS), Darwin) |
11 CPPFLAGS += -DOS_MACOSX | 15 CPPFLAGS += -DOS_MACOSX |
12 else | 16 else |
13 COMMON_FLAGS += -fno-tree-vrp | 17 COMMON_FLAGS += -fno-tree-vrp |
14 endif | 18 endif |
15 | 19 |
| 20 ARFLAGS = crf |
16 CFLAGS += $(COMMON_FLAGS) | 21 CFLAGS += $(COMMON_FLAGS) |
17 CXXFLAGS += $(COMMON_FLAGS) -std=c++11 | 22 CXXFLAGS += $(COMMON_FLAGS) -std=c++11 |
18 | 23 |
19 SRCDIR = src | 24 SRCDIR = src |
20 | 25 |
21 OUROBJ = font.o glyph.o normalize.o table_tags.o transform.o \ | 26 OUROBJ = font.o glyph.o normalize.o table_tags.o transform.o \ |
22 woff2_dec.o woff2_enc.o woff2_common.o woff2_out.o \ | 27 woff2_dec.o woff2_enc.o woff2_common.o woff2_out.o \ |
23 variable_length.o | 28 variable_length.o |
24 | 29 |
25 BROTLI = brotli | 30 BROTLI = brotli |
26 ENCOBJ = $(BROTLI)/enc/*.o | 31 BROTLIOBJ = $(BROTLI)/bin/obj |
27 DECOBJ = $(BROTLI)/dec/*.o | 32 ENCOBJ = $(BROTLIOBJ)/enc/*.o |
| 33 DECOBJ = $(BROTLIOBJ)/dec/*.o |
| 34 COMMONOBJ = $(BROTLIOBJ)/common/*.o |
28 | 35 |
29 OBJS = $(patsubst %, $(SRCDIR)/%, $(OUROBJ)) | 36 OBJS = $(patsubst %, $(SRCDIR)/%, $(OUROBJ)) |
30 EXECUTABLES=woff2_compress woff2_decompress | 37 EXECUTABLES=woff2_compress woff2_decompress |
31 | |
32 EXE_OBJS=$(patsubst %, $(SRCDIR)/%.o, $(EXECUTABLES)) | 38 EXE_OBJS=$(patsubst %, $(SRCDIR)/%.o, $(EXECUTABLES)) |
| 39 ARCHIVES=convert_woff2ttf_fuzzer convert_woff2ttf_fuzzer_new_entry |
| 40 ARCHIVE_OBJS=$(patsubst %, $(SRCDIR)/%.o, $(ARCHIVES)) |
33 | 41 |
34 ifeq (,$(wildcard $(BROTLI)/*)) | 42 ifeq (,$(wildcard $(BROTLI)/*)) |
35 $(error Brotli dependency not found : you must initialize the Git submodule) | 43 $(error Brotli dependency not found : you must initialize the Git submodule) |
36 endif | 44 endif |
37 | 45 |
38 all : $(OBJS) $(EXECUTABLES) | 46 all : $(OBJS) $(EXECUTABLES) $(ARCHIVES) |
| 47 |
| 48 $(ARCHIVES) : $(ARCHIVE_OBJS) $(OBJS) deps |
| 49 » $(AR) $(ARFLAGS) $(SRCDIR)/$@.a $(OBJS) \ |
| 50 » $(COMMONOBJ) $(ENCOBJ) $(DECOBJ) $(SRCDIR)/$@.o |
39 | 51 |
40 $(EXECUTABLES) : $(EXE_OBJS) deps | 52 $(EXECUTABLES) : $(EXE_OBJS) deps |
41 » $(CXX) $(LFLAGS) $(OBJS) $(ENCOBJ) $(DECOBJ) $(SRCDIR)/$@.o -o $@ | 53 » $(CXX) $(LFLAGS) $(OBJS) $(COMMONOBJ) $(ENCOBJ) $(DECOBJ) $(SRCDIR)/$@.o
-o $@ |
42 | 54 |
43 deps : | 55 deps : |
44 » $(MAKE) -C $(BROTLI)/dec | 56 » $(MAKE) -C $(BROTLI) lib |
45 » $(MAKE) -C $(BROTLI)/enc | |
46 | 57 |
47 clean : | 58 clean : |
48 rm -f $(OBJS) $(EXE_OBJS) $(EXECUTABLES) | 59 rm -f $(OBJS) $(EXE_OBJS) $(EXECUTABLES) |
49 » $(MAKE) -C $(BROTLI)/dec clean | 60 » $(MAKE) -C $(BROTLI) clean |
50 » $(MAKE) -C $(BROTLI)/enc clean | |
OLD | NEW |