126fa459cSmrgOS := $(shell uname) 226fa459cSmrgLIBSOURCES = $(wildcard c/common/*.c) $(wildcard c/dec/*.c) \ 326fa459cSmrg $(wildcard c/enc/*.c) 426fa459cSmrgSOURCES = $(LIBSOURCES) c/tools/brotli.c 526fa459cSmrgBINDIR = bin 626fa459cSmrgOBJDIR = $(BINDIR)/obj 726fa459cSmrgLIBOBJECTS = $(addprefix $(OBJDIR)/, $(LIBSOURCES:.c=.o)) 826fa459cSmrgOBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.c=.o)) 926fa459cSmrgLIB_A = libbrotli.a 1026fa459cSmrgEXECUTABLE = brotli 1126fa459cSmrgDIRS = $(OBJDIR)/c/common $(OBJDIR)/c/dec $(OBJDIR)/c/enc \ 1226fa459cSmrg $(OBJDIR)/c/tools $(BINDIR)/tmp 1326fa459cSmrgCFLAGS += -O2 1426fa459cSmrgifeq ($(os), Darwin) 1526fa459cSmrg CPPFLAGS += -DOS_MACOSX 1626fa459cSmrgendif 1726fa459cSmrg 1826fa459cSmrgifneq ($(strip $(CROSS_COMPILE)), ) 1926fa459cSmrg CC=$(CROSS_COMPILE)-gcc 2026fa459cSmrg ARCH=$(firstword $(subst -, ,$(CROSS_COMPILE))) 2126fa459cSmrg BROTLI_WRAPPER="qemu-$(ARCH) -L /usr/$(CROSS_COMPILE)" 2226fa459cSmrgendif 2326fa459cSmrg 2426fa459cSmrg# The arm-linux-gnueabi compiler defaults to Armv5. Since we only support Armv7 2526fa459cSmrg# and beyond, we need to select Armv7 explicitly with march. 2626fa459cSmrgifeq ($(ARCH), arm) 2726fa459cSmrg CFLAGS += -march=armv7-a -mfloat-abi=hard -mfpu=neon 2826fa459cSmrgendif 2926fa459cSmrg 3026fa459cSmrgall: test 3126fa459cSmrg @: 3226fa459cSmrg 3326fa459cSmrg.PHONY: all clean test 3426fa459cSmrg 3526fa459cSmrg$(DIRS): 3626fa459cSmrg mkdir -p $@ 3726fa459cSmrg 3826fa459cSmrg$(EXECUTABLE): $(OBJECTS) 3926fa459cSmrg $(CC) $(LDFLAGS) $(OBJECTS) -lm -o $(BINDIR)/$(EXECUTABLE) 4026fa459cSmrg 4126fa459cSmrglib: $(LIBOBJECTS) 4226fa459cSmrg rm -f $(LIB_A) 4326fa459cSmrg ar -crs $(LIB_A) $(LIBOBJECTS) 4426fa459cSmrg 4526fa459cSmrgtest: $(EXECUTABLE) 4626fa459cSmrg tests/compatibility_test.sh $(BROTLI_WRAPPER) 4726fa459cSmrg tests/roundtrip_test.sh $(BROTLI_WRAPPER) 4826fa459cSmrg 4926fa459cSmrgclean: 5026fa459cSmrg rm -rf $(BINDIR) $(LIB_A) 5126fa459cSmrg 5226fa459cSmrg.SECONDEXPANSION: 5326fa459cSmrg$(OBJECTS): $$(patsubst %.o,%.c,$$(patsubst $$(OBJDIR)/%,%,$$@)) | $(DIRS) 5426fa459cSmrg $(CC) $(CFLAGS) $(CPPFLAGS) -Ic/include \ 5526fa459cSmrg -c $(patsubst %.o,%.c,$(patsubst $(OBJDIR)/%,%,$@)) -o $@ 56