xref: /freebsd/lib/liblzma/Makefile (revision 9124ace751eb9c856c50c3698cf93ede45a9897d)
1PACKAGE=	xz
2LIB_PACKAGE=
3
4LIB=		lzma
5LZMADIR=	${SRCTOP}/contrib/xz/src/liblzma
6
7.PATH: ${LZMADIR:H}/common
8SRCS+=	tuklib_physmem.c tuklib_cpucores.c
9
10.PATH: ${LZMADIR}/api/lzma
11
12MAININCS=	../lzma.h
13MAININCSDIR=	${INCLUDEDIR}
14
15LZMAINCS+=	base.h \
16		bcj.h \
17		block.h \
18		check.h \
19		container.h \
20		delta.h \
21		filter.h \
22		hardware.h \
23		index.h \
24		index_hash.h \
25		lzma12.h \
26		stream_flags.h \
27		version.h \
28		vli.h
29
30LZMAINCSDIR=	${INCLUDEDIR}/lzma
31
32INCSGROUPS=	MAININCS LZMAINCS
33
34.PATH: ${LZMADIR}/common
35SRCS+=	common.c \
36	block_util.c \
37	easy_preset.c \
38	filter_common.c \
39	hardware_physmem.c \
40	hardware_cputhreads.c \
41	index.c \
42	stream_flags_common.c \
43	string_conversion.c \
44	vli_size.c \
45	alone_encoder.c \
46	block_buffer_encoder.c \
47	block_encoder.c \
48	block_header_encoder.c \
49	easy_buffer_encoder.c \
50	easy_encoder.c \
51	easy_encoder_memusage.c \
52	filter_buffer_encoder.c \
53	filter_encoder.c \
54	filter_flags_encoder.c \
55	index_encoder.c \
56	lzip_decoder.c \
57	microlzma_encoder.c \
58	microlzma_decoder.c \
59	stream_buffer_encoder.c \
60	stream_encoder.c \
61	stream_flags_encoder.c \
62	vli_encoder.c \
63	alone_decoder.c \
64	auto_decoder.c \
65	block_buffer_decoder.c \
66	block_decoder.c \
67	block_header_decoder.c \
68	easy_decoder_memusage.c \
69	file_info.c \
70	filter_buffer_decoder.c \
71	filter_decoder.c \
72	filter_flags_decoder.c \
73	index_decoder.c \
74	index_hash.c \
75	stream_buffer_decoder.c \
76	stream_decoder.c \
77	stream_decoder_mt.c \
78	stream_flags_decoder.c \
79	stream_encoder_mt.c \
80	vli_decoder.c \
81	outqueue.c
82
83
84.PATH: ${LZMADIR}/check
85SRCS+=	check.c		\
86	crc32_fast.c	\
87	crc64_fast.c
88.if defined(MACHINE_ARCH) && ${MACHINE_ARCH} == "i386"
89SRCS+=	crc32_x86.S \
90	crc64_x86.S
91ACFLAGS+=	-Wa,--noexecstack
92.endif
93
94.PATH: ${LZMADIR}/lz
95SRCS+=	lz_encoder.c \
96	lz_encoder_mf.c \
97	lz_decoder.c
98
99.PATH: ${LZMADIR}/lzma
100SRCS+=	lzma_encoder.c \
101	lzma_encoder_presets.c \
102	lzma_encoder_optimum_fast.c \
103	lzma_encoder_optimum_normal.c \
104	fastpos_table.c \
105	lzma_decoder.c \
106	lzma2_encoder.c \
107	lzma2_decoder.c
108
109.PATH: ${LZMADIR}/rangecoder
110SRCS+=	price_table.c
111
112.PATH: ${LZMADIR}/delta
113SRCS+=	delta_common.c \
114	delta_encoder.c \
115	delta_decoder.c
116
117.PATH: ${LZMADIR}/simple
118SRCS+=	simple_coder.c \
119	simple_encoder.c \
120	simple_decoder.c \
121	x86.c \
122	powerpc.c \
123	ia64.c \
124	arm.c \
125	arm64.c \
126	armthumb.c \
127	riscv.c \
128	sparc.c
129
130.PATH: ${LZMADIR}
131
132VERSION_MAJOR!=	sed -n '/define.*LZMA_VERSION_MAJOR/{s,[^0-9.],,gp;q;}' \
133			${LZMADIR}/api/lzma/version.h
134VERSION_MINOR!=	sed -n '/define.*LZMA_VERSION_MINOR/{s,[^0-9.],,gp;q;}' \
135			${LZMADIR}/api/lzma/version.h
136VERSION_PATCH!=	sed -n '/define.*LZMA_VERSION_PATCH/{s,[^0-9.],,gp;q;}' \
137			${LZMADIR}/api/lzma/version.h
138
139WARNS?=	3
140
141CFLAGS+=	-DHAVE_CONFIG_H \
142		-DTUKLIB_SYMBOL_PREFIX=lzma_ \
143		-I${.CURDIR} \
144		-I${LZMADIR}/api \
145		-I${LZMADIR}/common \
146		-I${LZMADIR}/check \
147		-I${LZMADIR}/lz \
148		-I${LZMADIR}/rangecoder \
149		-I${LZMADIR}/lzma \
150		-I${LZMADIR}/delta \
151		-I${LZMADIR}/simple \
152		-I${LZMADIR:H}/common
153
154LIBADD+=	md pthread
155
156VERSION_DEF=	${.CURDIR}/Versions.def
157SYMBOL_MAPS=	${.CURDIR}/Symbol.map
158
159CLEANFILES+=	liblzma.pc
160
161PCFILES=	liblzma.pc
162
163liblzma.pc: liblzma.pc.in
164	sed -e 's,@prefix@,/usr,g ; \
165		s,@exec_prefix@,/usr,g ; \
166		s,@libdir@,${LIBDIR},g ; \
167		s,@sharedlibdir@,${SHLIBDIR},g ; \
168		s,@includedir@,${INCLUDEDIR},g ; \
169		s,@LIBS@,-pthread -lmd,g ; \
170		s,@PACKAGE_URL@,https://tukaani.org/xz/,g ; \
171		s,@PACKAGE_VERSION@,${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH},g ; \
172		s,@PTHREAD_CFLAGS@,,g ; \
173		s,@PTHREAD_LIBS@,,g' ${.ALLSRC} > ${.TARGET}
174
175.include <bsd.lib.mk>
176