| OS := $(shell uname) |
| LIBSOURCES = $(wildcard c/common/*.c) $(wildcard c/dec/*.c) \ |
| $(wildcard c/enc/*.c) |
| SOURCES = $(LIBSOURCES) c/tools/brotli.c |
| BINDIR = bin |
| OBJDIR = $(BINDIR)/obj |
| LIBOBJECTS = $(addprefix $(OBJDIR)/, $(LIBSOURCES:.c=.o)) |
| OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.c=.o)) |
| LIB_A = libbrotli.a |
| EXECUTABLE = brotli |
| DIRS = $(OBJDIR)/c/common $(OBJDIR)/c/dec $(OBJDIR)/c/enc \ |
| $(OBJDIR)/c/tools $(BINDIR)/tmp |
| CFLAGS += -O2 |
| ifeq ($(os), Darwin) |
| CPPFLAGS += -DOS_MACOSX |
| endif |
| |
| all: test |
| @: |
| |
| .PHONY: all clean test |
| |
| $(DIRS): |
| mkdir -p $@ |
| |
| $(EXECUTABLE): $(OBJECTS) |
| $(CC) $(LDFLAGS) $(OBJECTS) -lm -o $(BINDIR)/$(EXECUTABLE) |
| |
| lib: $(LIBOBJECTS) |
| rm -f $(LIB_A) |
| ar -crs $(LIB_A) $(LIBOBJECTS) |
| |
| test: $(EXECUTABLE) |
| tests/compatibility_test.sh |
| tests/roundtrip_test.sh |
| |
| clean: |
| rm -rf $(BINDIR) $(LIB_A) |
| |
| .SECONDEXPANSION: |
| $(OBJECTS): $$(patsubst %.o,%.c,$$(patsubst $$(OBJDIR)/%,%,$$@)) | $(DIRS) |
| $(CC) $(CFLAGS) $(CPPFLAGS) -Ic/include \ |
| -c $(patsubst %.o,%.c,$(patsubst $(OBJDIR)/%,%,$@)) -o $@ |