Home | History | Annotate | Download | only in userspace
      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