1 #
2 # Makefile
3 #
4 # Author: Lasse Collin <lasse.collin@tukaani.org>
5 #
6 # This file has been put into the public domain.
7 # You can do whatever you want with this file.
8 #
9
10 # gcc -std=gnu89 is used because Linux uses it. It is fine to omit it as
11 # the code is also C99/C11 compatible. With clang you may wish to omit
12 # either -std=gnu89 or -pedantic as having both gives quite a few warnings.
13 CC = gcc -std=gnu89
14 BCJ_CPPFLAGS = -DXZ_DEC_X86 -DXZ_DEC_POWERPC -DXZ_DEC_IA64 \
15 -DXZ_DEC_ARM -DXZ_DEC_ARMTHUMB -DXZ_DEC_SPARC
16 CPPFLAGS = -DXZ_USE_CRC64 -DXZ_DEC_ANY_CHECK -DXZ_DEC_CONCATENATED
17 CFLAGS = -ggdb3 -O2 -pedantic -Wall -Wextra -Wno-long-long
18 RM = rm -f
19 VPATH = ../linux/include/linux ../linux/lib/xz
20 COMMON_SRCS = xz_crc32.c xz_crc64.c xz_dec_stream.c xz_dec_lzma2.c xz_dec_bcj.c
21 COMMON_OBJS = $(COMMON_SRCS:.c=.o)
22 XZMINIDEC_OBJS = xzminidec.o
23 BYTETEST_OBJS = bytetest.o
24 BUFTEST_OBJS = buftest.o
25 BOOTTEST_OBJS = boottest.o
26 XZ_HEADERS = xz.h xz_private.h xz_stream.h xz_lzma2.h xz_config.h
27 PROGRAMS = xzminidec bytetest buftest boottest
28
29 ALL_CPPFLAGS = -I../linux/include/linux -I. $(BCJ_CPPFLAGS) $(CPPFLAGS)
30
31 all: $(PROGRAMS)
32
33 %.o: %.c $(XZ_HEADERS)
34 $(CC) $(ALL_CPPFLAGS) $(CFLAGS) -c -o $@ $<
35
36 xzminidec: $(COMMON_OBJS) $(XZMINIDEC_OBJS)
37 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(COMMON_OBJS) $(XZMINIDEC_OBJS)
38
39 bytetest: $(COMMON_OBJS) $(BYTETEST_OBJS)
40 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(COMMON_OBJS) $(BYTETEST_OBJS)
41
42 buftest: $(COMMON_OBJS) $(BUFTEST_OBJS)
43 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(COMMON_OBJS) $(BUFTEST_OBJS)
44
45 boottest: $(BOOTTEST_OBJS) $(COMMON_SRCS)
46 $(CC) $(ALL_CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(BOOTTEST_OBJS)
47
48 .PHONY: clean
49 clean:
50 -$(RM) $(COMMON_OBJS) $(XZMINIDEC_OBJS) $(BYTETEST_OBJS) \
51 $(BUFTEST_OBJS) $(BOOTTEST_OBJS) $(PROGRAMS)
Cache object: ccb9dfd92f4e71c1d087d2b6e18d255e
|