xref: /dragonfly/usr.bin/xz/Makefile (revision 7d3e9a5b)
1PROG=	xz
2MAN=	xz.1
3
4LINKS=	${BINDIR}/xz ${BINDIR}/unxz
5LINKS+=	${BINDIR}/xz ${BINDIR}/xzcat
6LINKS+=	${BINDIR}/xz ${BINDIR}/lzma
7LINKS+=	${BINDIR}/xz ${BINDIR}/unlzma
8LINKS+=	${BINDIR}/xz ${BINDIR}/lzcat
9MLINKS=	xz.1 unxz.1 \
10	xz.1 xzcat.1 \
11	xz.1 lzma.1 \
12	xz.1 unlzma.1 \
13	xz.1 lzcat.1
14
15XZDIR=	${.CURDIR}/../../contrib/xz/src
16
17.PATH: ${XZDIR}/xz
18SRCS=	main.c args.c coder.c file_io.c hardware.c message.c \
19	mytime.c list.c options.c signals.c suffix.c util.c
20
21.PATH: ${XZDIR}/common
22SRCS+=	tuklib_exit.c tuklib_mbstr_fw.c tuklib_mbstr_width.c \
23	tuklib_open_stdxxx.c tuklib_progname.c
24
25WARNS?=	3
26
27CFLAGS+= -I${XZDIR}/common
28LIBLZMADIR=	${.CURDIR}/../../lib/liblzma
29
30#
31# Use non threaded variant for crunchgen rescue
32.if defined(RESCUE)
33CFLAGS+= -DHAVE_CONFIG_H -I${.CURDIR}/../../lib/liblzma
34DPADD=	${LIBLZMA}
35LDADD=	-llzma
36.else
37# NOTE: different config than lib/liblzma/config.h
38CFLAGS+=	-DHAVE_CONFIG_H -I${.CURDIR}
39CFLAGS+=	-I${LZMADIR}/api -I${LZMADIR}/api/lzma
40LZMADIR=	${XZDIR}/liblzma
41SRCS+=		${XZMT_SRCS}
42FLAGS_GROUPS=	threaded
43threaded_FLAGS=	-DTUKLIB_SYMBOL_PREFIX=lzma_ -I${LZMADIR}/common
44threaded_FLAGS+=-I${LZMADIR}/check -I${LZMADIR}/lz -I${LZMADIR}/lzma
45threaded_FLAGS+=-I${LZMADIR}/rangecoder -I${LZMADIR}/delta -I${LZMADIR}/simple
46threaded_FLAGS_FILES+=	${XZMT_SRCS}
47.PATH: ${LZMADIR}/common ${LZMADIR}/check ${LZMADIR}/lz ${LZMADIR}/lzma
48.PATH: ${LZMADIR}/rangecoder ${LZMADIR}/delta ${LZMADIR}/simple
49
50DPADD+=	${LIBPTHREAD}
51LDADD+=	-lpthread
52.endif
53
54# Subset of liblzma with threading enabled.
55XZMT_SRCS=	tuklib_cpucores.c tuklib_physmem.c
56XZMT_SRCS+=	hardware_cputhreads.c outqueue.c stream_encoder_mt.c
57XZMT_SRCS+= 	alone_decoder.c alone_encoder.c block_buffer_encoder.c \
58		block_header_decoder.c block_header_encoder.c block_decoder.c \
59		block_encoder.c block_util.c common.c easy_preset.c index.c \
60		index_decoder.c index_encoder.c index_hash.c
61XZMT_SRCS+=	filter_common.c filter_decoder.c filter_encoder.c \
62		filter_flags_decoder.c filter_flags_encoder.c
63XZMT_SRCS+=	stream_flags_common.c hardware_physmem.c stream_decoder.c \
64		stream_encoder.c stream_flags_decoder.c stream_flags_encoder.c \
65		vli_decoder.c vli_encoder.c vli_size.c sha256.c
66XZMT_SRCS+=	check.c crc32_fast.c crc64_fast.c crc32_table.c crc64_table.c
67XZMT_SRCS+=	lz_decoder.c lz_encoder.c lz_encoder_mf.c
68XZMT_SRCS+=	fastpos_table.c lzma_decoder.c lzma_encoder.c \
69		lzma_encoder_presets.c lzma_encoder_optimum_fast.c \
70		lzma_encoder_optimum_normal.c lzma2_decoder.c lzma2_encoder.c
71XZMT_SRCS+=	price_table.c
72XZMT_SRCS+=	delta_common.c delta_encoder.c delta_decoder.c
73XZMT_SRCS+=	simple_coder.c simple_decoder.c simple_encoder.c \
74		arm.c armthumb.c ia64.c powerpc.c sparc.c x86.c
75
76.PATH: ${XZDIR}/scripts
77SCRIPTS=	xzdiff xzgrep xzmore
78MAN+=	${SCRIPTS:S/$/.1/g}
79PKG_NAME!=	grep -w PACKAGE_NAME ${LIBLZMADIR}/config.h | awk -F\" '{print $$2}'
80VERSION!=	grep -w VERSION ${LIBLZMADIR}/config.h | awk -F\" '{print $$2}'
81PKG_BUG!=	grep -w PACKAGE_BUGREPORT ${LIBLZMADIR}/config.h | awk -F\" '{print $$2}'
82
83${SCRIPTS}:	${.TARGET}.in
84	sed -e s,@POSIX_SHELL@,/bin/sh,g	\
85	    -e s,@xz@,xz,g			\
86	    -e s,@PACKAGE_NAME@,${PKG_NAME:Q},g	\
87	    -e s,@VERSION@,${VERSION:Q},g	\
88	    -e s,@PACKAGE_BUGREPORT@,${PKG_BUG:Q},g ${.ALLSRC} > ${.TARGET}
89
90CLEANFILES=	${SCRIPTS}
91LINKS+=	${SCRIPTSDIR}/xzdiff ${SCRIPTSDIR}/xzcmp \
92	${SCRIPTSDIR}/xzgrep ${SCRIPTSDIR}/xzegrep \
93	${SCRIPTSDIR}/xzgrep ${SCRIPTSDIR}/xzfgrep \
94	${SCRIPTSDIR}/xzdiff ${SCRIPTSDIR}/lzdiff \
95	${SCRIPTSDIR}/xzdiff ${SCRIPTSDIR}/lzcmp \
96	${SCRIPTSDIR}/xzgrep ${SCRIPTSDIR}/lzgrep \
97	${SCRIPTSDIR}/xzgrep ${SCRIPTSDIR}/lzegrep \
98	${SCRIPTSDIR}/xzgrep ${SCRIPTSDIR}/lzfgrep \
99	${SCRIPTSDIR}/xzmore ${SCRIPTSDIR}/lzmore
100MLINKS+=xzdiff.1 xzcmp.1 \
101	xzgrep.1 xzegrep.1 \
102	xzgrep.1 xzfgrep.1 \
103	xzdiff.1 lzdiff.1 \
104	xzdiff.1 lzcmp.1 \
105	xzgrep.1 lzgrep.1 \
106	xzgrep.1 lzegrep.1 \
107	xzgrep.1 lzfgrep.1 \
108	xzmore.1 lzmore.1
109
110.include <bsd.prog.mk>
111