1 1.1 christos # ################################################################ 2 1.1 christos # Copyright (c) Meta Platforms, Inc. and affiliates. 3 1.1 christos # All rights reserved. 4 1.1 christos # 5 1.1 christos # This source code is licensed under both the BSD-style license (found in the 6 1.1 christos # LICENSE file in the root directory of this source tree) and the GPLv2 (found 7 1.1 christos # in the COPYING file in the root directory of this source tree). 8 1.1 christos # You may select, at your option, one of the above-listed licenses. 9 1.1 christos # ################################################################ 10 1.1 christos 11 1.1 christos LINUX := ../linux 12 1.1 christos LINUX_ZSTDLIB := $(LINUX)/lib/zstd 13 1.1 christos 14 1.1 christos CPPFLAGS += -I$(LINUX)/include -I$(LINUX_ZSTDLIB) -Iinclude -DNDEBUG -Wno-deprecated-declarations 15 1.1 christos # Don't poison the workspace, it currently doesn't work with static allocation and workspace reuse 16 1.1 christos CPPFLAGS += -DZSTD_ASAN_DONT_POISON_WORKSPACE 17 1.1 christos 18 1.1 christos LINUX_ZSTD_MODULE := $(wildcard $(LINUX_ZSTDLIB)/*.c) 19 1.1 christos LINUX_ZSTD_COMMON := $(wildcard $(LINUX_ZSTDLIB)/common/*.c) 20 1.1 christos LINUX_ZSTD_COMPRESS := $(wildcard $(LINUX_ZSTDLIB)/compress/*.c) 21 1.1 christos LINUX_ZSTD_DECOMPRESS := $(wildcard $(LINUX_ZSTDLIB)/decompress/*.c $(LINUX_ZSTDLIB)/decompress/*.S) 22 1.1 christos LINUX_ZSTD_FILES := $(LINUX_ZSTD_MODULE) $(LINUX_ZSTD_COMMON) $(LINUX_ZSTD_COMPRESS) $(LINUX_ZSTD_DECOMPRESS) 23 1.1 christos LINUX_ZSTD_OBJECTS0 := $(LINUX_ZSTD_FILES:.c=.o) 24 1.1 christos LINUX_ZSTD_OBJECTS := $(LINUX_ZSTD_OBJECTS0:.S=.o) 25 1.1 christos 26 1.1 christos %.o: %.S 27 1.1 christos $(COMPILE.S) $(OUTPUT_OPTION) $< 28 1.1 christos 29 1.1 christos liblinuxzstd.a: $(LINUX_ZSTD_OBJECTS) 30 1.1 christos $(AR) $(ARFLAGS) $@ $^ 31 1.1 christos 32 1.1 christos test: test.c liblinuxzstd.a 33 1.1 christos $(CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) $^ -o $@ 34 1.1 christos 35 1.1 christos static_test: static_test.c 36 1.1 christos $(CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) $^ -o $@ 37 1.1 christos 38 1.1 christos run-test: test static_test 39 1.1 christos ./macro-test.sh 40 1.1 christos ./test 41 1.1 christos ./static_test 42 1.1 christos 43 1.1 christos .PHONY: 44 1.1 christos clean: 45 1.1 christos $(RM) -f $(LINUX_ZSTDLIB)/*.o 46 1.1 christos $(RM) -f $(LINUX_ZSTDLIB)/**/*.o 47 1.1 christos $(RM) -f *.o *.a 48 1.1 christos $(RM) -f static_test 49 1.1 christos $(RM) -f test 50