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