1
2LINUX := ../linux
3LINUX_ZSTDLIB := $(LINUX)/lib/zstd
4
5CPPFLAGS += -I$(LINUX)/include -I$(LINUX_ZSTDLIB) -Iinclude -DNDEBUG
6# Don't poison the workspace, it currently doesn't work with static allocation and workspace reuse
7CPPFLAGS += -DZSTD_ASAN_DONT_POISON_WORKSPACE
8
9LINUX_ZSTD_MODULE     := $(wildcard $(LINUX_ZSTDLIB)/*.c)
10LINUX_ZSTD_COMMON     := $(wildcard $(LINUX_ZSTDLIB)/common/*.c)
11LINUX_ZSTD_COMPRESS   := $(wildcard $(LINUX_ZSTDLIB)/compress/*.c)
12LINUX_ZSTD_DECOMPRESS := $(wildcard $(LINUX_ZSTDLIB)/decompress/*.c)
13LINUX_ZSTD_FILES      := $(LINUX_ZSTD_MODULE) $(LINUX_ZSTD_COMMON) $(LINUX_ZSTD_COMPRESS) $(LINUX_ZSTD_DECOMPRESS)
14LINUX_ZSTD_OBJECTS    := $(LINUX_ZSTD_FILES:.c=.o)
15
16liblinuxzstd.a: $(LINUX_ZSTD_OBJECTS)
17	$(AR) $(ARFLAGS) $@ $^
18
19test: test.c liblinuxzstd.a
20	$(CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) $^ -o $@
21
22static_test: static_test.c
23	$(CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) $^ -o $@
24
25run-test: test static_test
26	./macro-test.sh
27	./test
28	./static_test
29
30.PHONY:
31clean:
32	$(RM) -f $(LINUX_ZSTDLIB)/**/*.o
33	$(RM) -f *.o *.a
34	$(RM) -f test
35