1# SPDX-License-Identifier: 0BSD 2# 3# Author: Lasse Collin <[email protected]> 4 5# In 2022, Linux finally moved forward from -std=gnu89 and switched 6# to -std=gnu11. In practice quite a few C99/C11 features were used 7# for decades that were extensions in GNU-C89. 8# 9# Use the option -Wdeclaration-after-statement for historical reasons 10# for now. 11CC = gcc -std=gnu11 12BCJ_CPPFLAGS = -DXZ_DEC_X86 -DXZ_DEC_ARM -DXZ_DEC_ARMTHUMB -DXZ_DEC_ARM64 \ 13 -DXZ_DEC_RISCV -DXZ_DEC_POWERPC -DXZ_DEC_IA64 -DXZ_DEC_SPARC 14CPPFLAGS = -DXZ_USE_CRC64 -DXZ_DEC_ANY_CHECK -DXZ_DEC_CONCATENATED 15CFLAGS = -ggdb3 -O2 -pedantic -Wall -Wextra -Wdeclaration-after-statement 16RM = rm -f 17VPATH = ../linux/include/linux ../linux/lib/xz 18COMMON_SRCS = xz_crc32.c xz_crc64.c xz_dec_stream.c xz_dec_lzma2.c xz_dec_bcj.c 19COMMON_OBJS = $(COMMON_SRCS:.c=.o) 20XZMINIDEC_OBJS = xzminidec.o 21BYTETEST_OBJS = bytetest.o 22BUFTEST_OBJS = buftest.o 23BOOTTEST_OBJS = boottest.o 24XZ_HEADERS = xz.h xz_private.h xz_stream.h xz_lzma2.h xz_config.h 25PROGRAMS = xzminidec bytetest buftest boottest 26 27ALL_CPPFLAGS = -I../linux/include/linux -I. $(BCJ_CPPFLAGS) $(CPPFLAGS) 28 29all: $(PROGRAMS) 30 31%.o: %.c $(XZ_HEADERS) 32 $(CC) $(ALL_CPPFLAGS) $(CFLAGS) -c -o $@ $< 33 34xzminidec: $(COMMON_OBJS) $(XZMINIDEC_OBJS) 35 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(COMMON_OBJS) $(XZMINIDEC_OBJS) 36 37bytetest: $(COMMON_OBJS) $(BYTETEST_OBJS) 38 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(COMMON_OBJS) $(BYTETEST_OBJS) 39 40buftest: $(COMMON_OBJS) $(BUFTEST_OBJS) 41 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(COMMON_OBJS) $(BUFTEST_OBJS) 42 43boottest: $(BOOTTEST_OBJS) $(COMMON_SRCS) 44 $(CC) $(ALL_CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(BOOTTEST_OBJS) 45 46.PHONY: clean 47clean: 48 -$(RM) $(COMMON_OBJS) $(XZMINIDEC_OBJS) $(BYTETEST_OBJS) \ 49 $(BUFTEST_OBJS) $(BOOTTEST_OBJS) $(PROGRAMS) 50