blob: 09e6818fce879e76438c5085b4894a199533f4ab [file] [log] [blame]
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +02001OS := $(shell uname)
Eugene Kliuchnikov6ece1d82017-04-23 14:07:08 +02002LIBSOURCES = $(wildcard c/common/*.c) $(wildcard c/dec/*.c) $(wildcard c/enc/*.c)
3SOURCES = $(LIBSOURCES) c/tools/bro.c
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +02004BINDIR = bin
5OBJDIR = $(BINDIR)/obj
chad-iris8529bfa2016-07-06 10:09:04 -07006LIBOBJECTS = $(addprefix $(OBJDIR)/, $(LIBSOURCES:.c=.o))
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +02007OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.c=.o))
chad-iris8529bfa2016-07-06 10:09:04 -07008LIB_A = libbrotli.a
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +02009EXECUTABLE = bro
Eugene Kliuchnikov6ece1d82017-04-23 14:07:08 +020010DIRS = $(OBJDIR)/c/common $(OBJDIR)/c/dec $(OBJDIR)/c/enc \
11 $(OBJDIR)/c/tools $(BINDIR)/tmp
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +020012CFLAGS += -O2
13ifeq ($(os), Darwin)
14 CPPFLAGS += -DOS_MACOSX
15endif
Eugene Kliuchnikov378485b2016-06-16 10:52:57 +020016
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +020017all: test
18 @:
Eugene Kliuchnikov378485b2016-06-16 10:52:57 +020019
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +020020.PHONY: all clean test
Eugene Kliuchnikov378485b2016-06-16 10:52:57 +020021
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +020022$(DIRS):
23 mkdir -p $@
Eugene Kliuchnikov378485b2016-06-16 10:52:57 +020024
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +020025$(EXECUTABLE): $(OBJECTS)
Eugene Kliuchnikove9b278a2016-10-31 14:33:59 +010026 $(CC) $(LDFLAGS) $(OBJECTS) -lm -o $(BINDIR)/$(EXECUTABLE)
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +020027
chad-iris8529bfa2016-07-06 10:09:04 -070028lib: $(LIBOBJECTS)
29 rm -f $(LIB_A)
30 ar -crs $(LIB_A) $(LIBOBJECTS)
31
Evgenii Kliuchnikov52ff8172016-06-24 15:32:51 +020032test: $(EXECUTABLE)
33 tests/compatibility_test.sh
34 tests/roundtrip_test.sh
35
36clean:
chad-iris8529bfa2016-07-06 10:09:04 -070037 rm -rf $(BINDIR) $(LIB_A)
Eugene Kliuchnikovdd8fa3e2016-09-22 11:32:23 +020038
39.SECONDEXPANSION:
40$(OBJECTS): $$(patsubst %.o,%.c,$$(patsubst $$(OBJDIR)/%,%,$$@)) | $(DIRS)
Eugene Kliuchnikov6ece1d82017-04-23 14:07:08 +020041 $(CC) $(CFLAGS) $(CPPFLAGS) -Ic/include \
Eugene Kliuchnikovdd8fa3e2016-09-22 11:32:23 +020042 -c $(patsubst %.o,%.c,$(patsubst $(OBJDIR)/%,%,$@)) -o $@