blob: c48d798558e1b1c2c0ceb4a77a274b6f2c650833 [file] [log] [blame]
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +02001OS := $(shell uname)
Eugene Kliuchnikov03739d22017-05-29 17:55:14 +02002LIBSOURCES = $(wildcard c/common/*.c) $(wildcard c/dec/*.c) \
3 $(wildcard c/enc/*.c)
4SOURCES = $(LIBSOURCES) c/tools/brotli.c
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +02005BINDIR = bin
6OBJDIR = $(BINDIR)/obj
chad-iris8529bfa2016-07-06 10:09:04 -07007LIBOBJECTS = $(addprefix $(OBJDIR)/, $(LIBSOURCES:.c=.o))
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +02008OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.c=.o))
chad-iris8529bfa2016-07-06 10:09:04 -07009LIB_A = libbrotli.a
Eugene Kliuchnikov03739d22017-05-29 17:55:14 +020010EXECUTABLE = brotli
Eugene Kliuchnikov6ece1d82017-04-23 14:07:08 +020011DIRS = $(OBJDIR)/c/common $(OBJDIR)/c/dec $(OBJDIR)/c/enc \
12 $(OBJDIR)/c/tools $(BINDIR)/tmp
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +020013CFLAGS += -O2
14ifeq ($(os), Darwin)
15 CPPFLAGS += -DOS_MACOSX
16endif
Eugene Kliuchnikov378485b2016-06-16 10:52:57 +020017
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +020018all: test
19 @:
Eugene Kliuchnikov378485b2016-06-16 10:52:57 +020020
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +020021.PHONY: all clean test
Eugene Kliuchnikov378485b2016-06-16 10:52:57 +020022
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +020023$(DIRS):
24 mkdir -p $@
Eugene Kliuchnikov378485b2016-06-16 10:52:57 +020025
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +020026$(EXECUTABLE): $(OBJECTS)
Eugene Kliuchnikove9b278a2016-10-31 14:33:59 +010027 $(CC) $(LDFLAGS) $(OBJECTS) -lm -o $(BINDIR)/$(EXECUTABLE)
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +020028
chad-iris8529bfa2016-07-06 10:09:04 -070029lib: $(LIBOBJECTS)
30 rm -f $(LIB_A)
31 ar -crs $(LIB_A) $(LIBOBJECTS)
32
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +020033test: $(EXECUTABLE)
34 tests/compatibility_test.sh
35 tests/roundtrip_test.sh
36
37clean:
chad-iris8529bfa2016-07-06 10:09:04 -070038 rm -rf $(BINDIR) $(LIB_A)
Eugene Kliuchnikovdd8fa3e2016-09-22 11:32:23 +020039
40.SECONDEXPANSION:
41$(OBJECTS): $$(patsubst %.o,%.c,$$(patsubst $$(OBJDIR)/%,%,$$@)) | $(DIRS)
Eugene Kliuchnikov6ece1d82017-04-23 14:07:08 +020042 $(CC) $(CFLAGS) $(CPPFLAGS) -Ic/include \
Eugene Kliuchnikovdd8fa3e2016-09-22 11:32:23 +020043 -c $(patsubst %.o,%.c,$(patsubst $(OBJDIR)/%,%,$@)) -o $@