1 # 2 # Makefile 3 # 4 # Author: Lasse Collin <lasse.collin (at] 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 CC = gcc -std=gnu89 11 BCJ_CPPFLAGS = -DXZ_DEC_X86 -DXZ_DEC_POWERPC -DXZ_DEC_IA64 \ 12 -DXZ_DEC_ARM -DXZ_DEC_ARMTHUMB -DXZ_DEC_SPARC 13 CPPFLAGS = -DXZ_USE_CRC64 -DXZ_DEC_ANY_CHECK 14 CFLAGS = -ggdb3 -O2 -pedantic -Wall -Wextra 15 RM = rm -f 16 VPATH = ../linux/include/linux ../linux/lib/xz 17 COMMON_SRCS = xz_crc32.c xz_crc64.c xz_dec_stream.c xz_dec_lzma2.c xz_dec_bcj.c 18 COMMON_OBJS = $(COMMON_SRCS:.c=.o) 19 XZMINIDEC_OBJS = xzminidec.o 20 BYTETEST_OBJS = bytetest.o 21 BUFTEST_OBJS = buftest.o 22 BOOTTEST_OBJS = boottest.o 23 XZ_HEADERS = xz.h xz_private.h xz_stream.h xz_lzma2.h xz_config.h 24 PROGRAMS = xzminidec bytetest buftest boottest 25 26 ALL_CPPFLAGS = -I../linux/include/linux -I. $(BCJ_CPPFLAGS) $(CPPFLAGS) 27 28 all: $(PROGRAMS) 29 30 %.o: %.c $(XZ_HEADERS) 31 $(CC) $(ALL_CPPFLAGS) $(CFLAGS) -c -o $@ $< 32 33 xzminidec: $(COMMON_OBJS) $(XZMINIDEC_OBJS) 34 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(COMMON_OBJS) $(XZMINIDEC_OBJS) 35 36 bytetest: $(COMMON_OBJS) $(BYTETEST_OBJS) 37 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(COMMON_OBJS) $(BYTETEST_OBJS) 38 39 buftest: $(COMMON_OBJS) $(BUFTEST_OBJS) 40 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(COMMON_OBJS) $(BUFTEST_OBJS) 41 42 boottest: $(BOOTTEST_OBJS) $(COMMON_SRCS) 43 $(CC) $(ALL_CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(BOOTTEST_OBJS) 44 45 .PHONY: clean 46 clean: 47 -$(RM) $(COMMON_OBJS) $(XZMINIDEC_OBJS) $(BUFTEST_OBJS) \ 48 $(BOOTTEST_OBJS) $(PROGRAMS) 49