xref: /freebsd/lib/liblzma/Makefile (revision e6bfd18d21b225af6a0ed67ceeaf1293b7b9eba5)
1# $FreeBSD$
2
3PACKAGE=lib${LIB}
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_table.c \
87	crc64_table.c
88.if defined(MACHINE_ARCH) && ${MACHINE_ARCH} == "i386"
89SRCS+=	crc32_x86.S \
90	crc64_x86.S
91ACFLAGS+=	-Wa,--noexecstack
92.else
93SRCS+=	crc32_fast.c \
94	crc64_fast.c
95.endif
96
97.PATH: ${LZMADIR}/lz
98SRCS+=	lz_encoder.c \
99	lz_encoder_mf.c \
100	lz_decoder.c
101
102.PATH: ${LZMADIR}/lzma
103SRCS+=	lzma_encoder.c \
104	lzma_encoder_presets.c \
105	lzma_encoder_optimum_fast.c \
106	lzma_encoder_optimum_normal.c \
107	fastpos_table.c \
108	lzma_decoder.c \
109	lzma2_encoder.c \
110	lzma2_decoder.c
111
112.PATH: ${LZMADIR}/rangecoder
113SRCS+=	price_table.c
114
115.PATH: ${LZMADIR}/delta
116SRCS+=	delta_common.c \
117	delta_encoder.c \
118	delta_decoder.c
119
120.PATH: ${LZMADIR}/simple
121SRCS+=	simple_coder.c \
122	simple_encoder.c \
123	simple_decoder.c \
124	x86.c \
125	powerpc.c \
126	ia64.c \
127	arm.c \
128	arm64.c \
129	armthumb.c \
130	sparc.c
131
132.PATH: ${LZMADIR}
133
134VERSION_MAJOR!=	sed -n '/define.*LZMA_VERSION_MAJOR/{s,[^0-9.],,gp;q;}' \
135			${LZMADIR}/api/lzma/version.h
136VERSION_MINOR!=	sed -n '/define.*LZMA_VERSION_MINOR/{s,[^0-9.],,gp;q;}' \
137			${LZMADIR}/api/lzma/version.h
138VERSION_PATCH!=	sed -n '/define.*LZMA_VERSION_PATCH/{s,[^0-9.],,gp;q;}' \
139			${LZMADIR}/api/lzma/version.h
140
141WARNS?=	3
142
143CFLAGS+=	-DHAVE_CONFIG_H \
144		-DTUKLIB_SYMBOL_PREFIX=lzma_ \
145		-I${.CURDIR} \
146		-I${LZMADIR}/api \
147		-I${LZMADIR}/common \
148		-I${LZMADIR}/check \
149		-I${LZMADIR}/lz \
150		-I${LZMADIR}/rangecoder \
151		-I${LZMADIR}/lzma \
152		-I${LZMADIR}/delta \
153		-I${LZMADIR}/simple \
154		-I${LZMADIR:H}/common
155
156LIBADD+=	md pthread
157
158VERSION_DEF=	${.CURDIR}/Versions.def
159SYMBOL_MAPS=	${.CURDIR}/Symbol.map
160CFLAGS+=	-DSYMBOL_VERSIONING
161
162CLEANFILES+=	liblzma.pc
163
164PCFILES=	liblzma.pc
165
166liblzma.pc: liblzma.pc.in
167	sed -e 's,@prefix@,/usr,g ; \
168		s,@exec_prefix@,/usr,g ; \
169		s,@libdir@,${LIBDIR},g ; \
170		s,@sharedlibdir@,${SHLIBDIR},g ; \
171		s,@includedir@,${INCLUDEDIR},g ; \
172		s,@LIBS@,-pthread -lmd,g ; \
173		s,@PACKAGE_URL@,https://tukaani.org/xz/,g ; \
174		s,@PACKAGE_VERSION@,${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH},g ; \
175		s,@PTHREAD_CFLAGS@,,g ; \
176		s,@PTHREAD_LIBS@,,g' ${.ALLSRC} > ${.TARGET}
177
178.include <bsd.lib.mk>
179