xz: Adjust makefiles for xz-5.2.4 update.
[dragonfly.git] / usr.bin / xz / Makefile
1 PROG=   xz
2 MAN=    xz.1
3
4 LINKS=  ${BINDIR}/xz ${BINDIR}/unxz
5 LINKS+= ${BINDIR}/xz ${BINDIR}/xzcat
6 LINKS+= ${BINDIR}/xz ${BINDIR}/lzma
7 LINKS+= ${BINDIR}/xz ${BINDIR}/unlzma
8 LINKS+= ${BINDIR}/xz ${BINDIR}/lzcat
9 MLINKS= 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
15 XZDIR=  ${.CURDIR}/../../contrib/xz/src
16
17 .PATH: ${XZDIR}/xz
18 SRCS=   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
22 SRCS+=  tuklib_exit.c tuklib_mbstr_fw.c tuklib_mbstr_width.c \
23         tuklib_open_stdxxx.c tuklib_progname.c
24
25 WARNS?= 3
26
27 CFLAGS+= -I${XZDIR}/common
28 LIBLZMADIR=     ${.CURDIR}/../../lib/liblzma
29
30 #
31 # Use non threaded variant for crunchgen rescue
32 .if defined(RESCUE)
33 CFLAGS+= -DHAVE_CONFIG_H -I${.CURDIR}/../../lib/liblzma
34 DPADD=  ${LIBLZMA}
35 LDADD=  -llzma
36 .else
37 # NOTE: different config than lib/liblzma/config.h
38 CFLAGS+=        -DHAVE_CONFIG_H -I${.CURDIR}
39 CFLAGS+=        -I${LZMADIR}/api -I${LZMADIR}/api/lzma
40 LZMADIR=        ${XZDIR}/liblzma
41 SRCS+=          ${XZMT_SRCS}
42 FLAGS_GROUPS=   threaded
43 threaded_FLAGS= -DTUKLIB_SYMBOL_PREFIX=lzma_ -I${LZMADIR}/common
44 threaded_FLAGS+=-I${LZMADIR}/check -I${LZMADIR}/lz -I${LZMADIR}/lzma
45 threaded_FLAGS+=-I${LZMADIR}/rangecoder -I${LZMADIR}/delta -I${LZMADIR}/simple
46 threaded_FLAGS_FILES+=  ${XZMT_SRCS}
47 .PATH: ${LZMADIR}/common ${LZMADIR}/check ${LZMADIR}/lz ${LZMADIR}/lzma
48 .PATH: ${LZMADIR}/rangecoder ${LZMADIR}/delta ${LZMADIR}/simple
49
50 DPADD+= ${LIBPTHREAD}
51 LDADD+= -lpthread
52 .endif
53
54 # Subset of liblzma with threading enabled.
55 XZMT_SRCS=      tuklib_cpucores.c tuklib_physmem.c
56 XZMT_SRCS+=     hardware_cputhreads.c outqueue.c stream_encoder_mt.c
57 XZMT_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
61 XZMT_SRCS+=     filter_common.c filter_decoder.c filter_encoder.c \
62                 filter_flags_decoder.c filter_flags_encoder.c
63 XZMT_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
66 XZMT_SRCS+=     check.c crc32_fast.c crc64_fast.c crc32_table.c crc64_table.c
67 XZMT_SRCS+=     lz_decoder.c lz_encoder.c lz_encoder_mf.c
68 XZMT_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
71 XZMT_SRCS+=     price_table.c
72 XZMT_SRCS+=     delta_common.c delta_encoder.c delta_decoder.c
73 XZMT_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
77 SCRIPTS=        xzdiff xzgrep xzless xzmore
78 MAN+=   ${SCRIPTS:S/$/.1/g}
79 PKG_NAME!=      grep -w PACKAGE_NAME ${LIBLZMADIR}/config.h | awk -F\" '{print $$2}'
80 VERSION!=       grep -w VERSION ${LIBLZMADIR}/config.h | awk -F\" '{print $$2}'
81 PKG_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
90 CLEANFILES=     ${SCRIPTS}
91 LINKS+= ${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 \
100         ${SCRIPTSDIR}/xzless ${SCRIPTSDIR}/lzless
101 MLINKS+=xzdiff.1 xzcmp.1 \
102         xzgrep.1 xzegrep.1 \
103         xzgrep.1 xzfgrep.1 \
104         xzdiff.1 lzdiff.1 \
105         xzdiff.1 lzcmp.1 \
106         xzgrep.1 lzgrep.1 \
107         xzgrep.1 lzegrep.1 \
108         xzgrep.1 lzfgrep.1 \
109         xzmore.1 lzmore.1 \
110         xzless.1 lzless.1
111
112 .include <bsd.prog.mk>