xref: /freebsd/sys/contrib/xz-embedded/userspace/Makefile (revision cd3a777bca91669fc4711d1eff66c40f3f62a223)
163dab8eeSAdrian Chadd#
263dab8eeSAdrian Chadd# Makefile
363dab8eeSAdrian Chadd#
463dab8eeSAdrian Chadd# Author: Lasse Collin <lasse.collin@tukaani.org>
563dab8eeSAdrian Chadd#
663dab8eeSAdrian Chadd# This file has been put into the public domain.
763dab8eeSAdrian Chadd# You can do whatever you want with this file.
863dab8eeSAdrian Chadd#
963dab8eeSAdrian Chadd
10*cd3a777bSXin LI# gcc -std=gnu89 is used because Linux uses it. It is fine to omit it as
11*cd3a777bSXin LI# the code is also C99/C11 compatible. With clang you may wish to omit
12*cd3a777bSXin LI# either -std=gnu89 or -pedantic as having both gives quite a few warnings.
1363dab8eeSAdrian ChaddCC = gcc -std=gnu89
1463dab8eeSAdrian ChaddBCJ_CPPFLAGS = -DXZ_DEC_X86 -DXZ_DEC_POWERPC -DXZ_DEC_IA64 \
1563dab8eeSAdrian Chadd		-DXZ_DEC_ARM -DXZ_DEC_ARMTHUMB -DXZ_DEC_SPARC
16*cd3a777bSXin LICPPFLAGS = -DXZ_USE_CRC64 -DXZ_DEC_ANY_CHECK -DXZ_DEC_CONCATENATED
17*cd3a777bSXin LICFLAGS = -ggdb3 -O2 -pedantic -Wall -Wextra -Wno-long-long
1863dab8eeSAdrian ChaddRM = rm -f
1963dab8eeSAdrian ChaddVPATH = ../linux/include/linux ../linux/lib/xz
20f0bd5302SXin LICOMMON_SRCS = xz_crc32.c xz_crc64.c xz_dec_stream.c xz_dec_lzma2.c xz_dec_bcj.c
2163dab8eeSAdrian ChaddCOMMON_OBJS = $(COMMON_SRCS:.c=.o)
2263dab8eeSAdrian ChaddXZMINIDEC_OBJS = xzminidec.o
2363dab8eeSAdrian ChaddBYTETEST_OBJS = bytetest.o
2463dab8eeSAdrian ChaddBUFTEST_OBJS = buftest.o
2563dab8eeSAdrian ChaddBOOTTEST_OBJS = boottest.o
2663dab8eeSAdrian ChaddXZ_HEADERS = xz.h xz_private.h xz_stream.h xz_lzma2.h xz_config.h
2763dab8eeSAdrian ChaddPROGRAMS = xzminidec bytetest buftest boottest
2863dab8eeSAdrian Chadd
2963dab8eeSAdrian ChaddALL_CPPFLAGS = -I../linux/include/linux -I. $(BCJ_CPPFLAGS) $(CPPFLAGS)
3063dab8eeSAdrian Chadd
3163dab8eeSAdrian Chaddall: $(PROGRAMS)
3263dab8eeSAdrian Chadd
3363dab8eeSAdrian Chadd%.o: %.c $(XZ_HEADERS)
3463dab8eeSAdrian Chadd	$(CC) $(ALL_CPPFLAGS) $(CFLAGS) -c -o $@ $<
3563dab8eeSAdrian Chadd
3663dab8eeSAdrian Chaddxzminidec: $(COMMON_OBJS) $(XZMINIDEC_OBJS)
3763dab8eeSAdrian Chadd	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(COMMON_OBJS) $(XZMINIDEC_OBJS)
3863dab8eeSAdrian Chadd
3963dab8eeSAdrian Chaddbytetest: $(COMMON_OBJS) $(BYTETEST_OBJS)
4063dab8eeSAdrian Chadd	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(COMMON_OBJS) $(BYTETEST_OBJS)
4163dab8eeSAdrian Chadd
4263dab8eeSAdrian Chaddbuftest: $(COMMON_OBJS) $(BUFTEST_OBJS)
4363dab8eeSAdrian Chadd	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(COMMON_OBJS) $(BUFTEST_OBJS)
4463dab8eeSAdrian Chadd
4563dab8eeSAdrian Chaddboottest: $(BOOTTEST_OBJS) $(COMMON_SRCS)
4663dab8eeSAdrian Chadd	$(CC) $(ALL_CPPFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ $(BOOTTEST_OBJS)
4763dab8eeSAdrian Chadd
4863dab8eeSAdrian Chadd.PHONY: clean
4963dab8eeSAdrian Chaddclean:
50*cd3a777bSXin LI	-$(RM) $(COMMON_OBJS) $(XZMINIDEC_OBJS) $(BYTETEST_OBJS) \
51*cd3a777bSXin LI		$(BUFTEST_OBJS) $(BOOTTEST_OBJS) $(PROGRAMS)
52