| Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 1 | OS := $(shell uname) |
| chad-iris | 8529bfa | 2016-07-06 10:09:04 -0700 | [diff] [blame] | 2 | LIBSOURCES = $(wildcard common/*.c) $(wildcard dec/*.c) $(wildcard enc/*.c) |
| 3 | SOURCES = $(LIBSOURCES) tools/bro.c |
| Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 4 | BINDIR = bin |
| 5 | OBJDIR = $(BINDIR)/obj |
| chad-iris | 8529bfa | 2016-07-06 10:09:04 -0700 | [diff] [blame] | 6 | LIBOBJECTS = $(addprefix $(OBJDIR)/, $(LIBSOURCES:.c=.o)) |
| Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 7 | OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.c=.o)) |
| chad-iris | 8529bfa | 2016-07-06 10:09:04 -0700 | [diff] [blame] | 8 | LIB_A = libbrotli.a |
| Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 9 | EXECUTABLE = bro |
| 10 | DIRS = $(OBJDIR)/common $(OBJDIR)/dec $(OBJDIR)/enc \ |
| 11 | $(OBJDIR)/tools $(BINDIR)/tmp |
| 12 | CFLAGS += -O2 |
| 13 | ifeq ($(os), Darwin) |
| 14 | CPPFLAGS += -DOS_MACOSX |
| 15 | endif |
| Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 16 | |
| Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 17 | all: test |
| 18 | @: |
| Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 19 | |
| Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 20 | .PHONY: all clean test |
| Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 21 | |
| Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 22 | $(DIRS): |
| 23 | mkdir -p $@ |
| Eugene Kliuchnikov | 378485b | 2016-06-16 10:52:57 +0200 | [diff] [blame] | 24 | |
| Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 25 | $(EXECUTABLE): $(OBJECTS) |
| Eugene Kliuchnikov | e9b278a | 2016-10-31 14:33:59 +0100 | [diff] [blame^] | 26 | $(CC) $(LDFLAGS) $(OBJECTS) -lm -o $(BINDIR)/$(EXECUTABLE) |
| Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 27 | |
| chad-iris | 8529bfa | 2016-07-06 10:09:04 -0700 | [diff] [blame] | 28 | lib: $(LIBOBJECTS) |
| 29 | rm -f $(LIB_A) |
| 30 | ar -crs $(LIB_A) $(LIBOBJECTS) |
| 31 | |
| Evgenii Kliuchnikov | 52ff817 | 2016-06-24 15:32:51 +0200 | [diff] [blame] | 32 | test: $(EXECUTABLE) |
| 33 | tests/compatibility_test.sh |
| 34 | tests/roundtrip_test.sh |
| 35 | |
| 36 | clean: |
| chad-iris | 8529bfa | 2016-07-06 10:09:04 -0700 | [diff] [blame] | 37 | rm -rf $(BINDIR) $(LIB_A) |
| Eugene Kliuchnikov | dd8fa3e | 2016-09-22 11:32:23 +0200 | [diff] [blame] | 38 | |
| 39 | .SECONDEXPANSION: |
| 40 | $(OBJECTS): $$(patsubst %.o,%.c,$$(patsubst $$(OBJDIR)/%,%,$$@)) | $(DIRS) |
| 41 | $(CC) $(CFLAGS) $(CPPFLAGS) -Iinclude \ |
| 42 | -c $(patsubst %.o,%.c,$(patsubst $(OBJDIR)/%,%,$@)) -o $@ |