1# $NetBSD: Makefile,v 1.12 2024/11/22 16:07:10 riastradh Exp $
2
3.include <bsd.init.mk>
4
5LIB=                lzma
6USE_SHLIBDIR=       yes
7NOLINT=             yes
8
9
10.PATH:    ${XZSRCDIR}/src/liblzma/api ${XZSRCDIR}/src/liblzma/api/lzma
11INCS+=    base.h bcj.h block.h check.h container.h delta.h \
12          filter.h hardware.h index.h index_hash.h lzma.h lzma12.h \
13          stream_flags.h version.h vli.h
14
15INCSDIR_lzma.h=     /usr/include
16INCSDIR=  /usr/include/lzma
17
18.if ${MKSANITIZER} != "yes"
19LDFLAGS+= -Wl,-z,defs
20.endif
21
22CFLAGS+=  -fvisibility=hidden
23
24CPPFLAGS+=          -I${XZSRCDIR}/src/common
25CPPFLAGS+=          -I${XZSRCDIR}/src/liblzma/check
26CPPFLAGS+=          -I${XZSRCDIR}/src/liblzma/common
27CPPFLAGS+=          -I${XZSRCDIR}/src/liblzma/delta
28CPPFLAGS+=          -I${XZSRCDIR}/src/liblzma/lz
29CPPFLAGS+=          -I${XZSRCDIR}/src/liblzma/lzma
30CPPFLAGS+=          -I${XZSRCDIR}/src/liblzma/rangecoder
31CPPFLAGS+=          -I${XZSRCDIR}/src/liblzma/simple
32CPPFLAGS+=          -DTUKLIB_SYMBOL_PREFIX=lzma_
33CPPFLAGS+=          -DNETBSD_NATIVE_SHA256
34
35.PATH:    ${XZSRCDIR}/src/common
36SRCS+=    tuklib_physmem.c tuklib_cpucores.c
37
38.PATH:    ${XZSRCDIR}/src/liblzma/check
39SRCS+=    check.c crc32_table.c crc64_table.c
40SRCS+=    crc32_fast.c crc64_fast.c
41
42.if defined(HOSTLIB)
43SRCS+=    sha256.c
44.endif
45
46.PATH:    ${XZSRCDIR}/src/liblzma/common
47SRCS+=    common.c block_util.c easy_preset.c filter_common.c \
48          hardware_physmem.c hardware_cputhreads.c index.c \
49          stream_flags_common.c vli_size.c \
50          alone_encoder.c block_buffer_encoder.c block_encoder.c \
51          block_header_encoder.c easy_buffer_encoder.c easy_encoder.c \
52          easy_encoder_memusage.c filter_buffer_encoder.c \
53          filter_encoder.c filter_flags_encoder.c index_encoder.c \
54          stream_buffer_encoder.c stream_encoder.c \
55          stream_flags_encoder.c vli_encoder.c outqueue.c \
56          alone_decoder.c auto_decoder.c block_buffer_decoder.c \
57          block_decoder.c block_header_decoder.c easy_decoder_memusage.c \
58          filter_buffer_decoder.c filter_decoder.c filter_flags_decoder.c \
59          index_decoder.c index_hash.c stream_buffer_decoder.c \
60          stream_decoder.c stream_flags_decoder.c vli_decoder.c
61
62.if !defined(HOSTLIB)
63SRCS+=     stream_encoder_mt.c
64.endif
65
66.PATH:    ${XZSRCDIR}/src/liblzma/delta
67SRCS+=    delta_common.c delta_encoder.c delta_decoder.c
68
69.PATH:    ${XZSRCDIR}/src/liblzma/lz
70SRCS+=    lz_decoder.c lz_encoder.c lz_encoder_mf.c
71
72.PATH:    ${XZSRCDIR}/src/liblzma/lzma
73SRCS+=    lzma_encoder.c lzma_encoder_presets.c \
74          lzma_encoder_optimum_fast.c lzma_encoder_optimum_normal.c \
75          lzma_decoder.c lzma2_encoder.c lzma2_decoder.c \
76          fastpos_table.c
77
78.PATH:    ${XZSRCDIR}/src/liblzma/rangecoder
79SRCS+=    price_table.c
80
81.PATH:    ${XZSRCDIR}/src/liblzma/simple
82SRCS+=    simple_coder.c simple_encoder.c simple_decoder.c \
83          arm.c armthumb.c ia64.c powerpc.c sparc.c x86.c
84
85FILES+=                       liblzma.pc
86FILESDIR_liblzma.pc=          /usr/lib/pkgconfig
87
88liblzma.pc:         ${XZSRCDIR}/src/liblzma/liblzma.pc.in
89          ${_MKTARGET_CREATE}
90          rm -f ${.TARGET}
91          ${TOOL_SED} \
92              -e 's,@prefix@,/usr,' \
93              -e 's,@exec_prefix@,/usr,' \
94              -e 's,@libdir@,/usr/lib,' \
95              -e 's,@includedir@,/usr/include,' \
96              -e 's,@PACKAGE_URL@,${XZHOMEPAGE:Q},' \
97              -e 's,@PACKAGE_VERSION@,${XZVERSION:Q},' \
98              -e 's,@PTHREAD_CFLAGS@ @LIBS@,-lpthread,' \
99              < ${XZSRCDIR}/src/liblzma/liblzma.pc.in \
100              > ${.TARGET}.tmp && \
101          mv -f ${.TARGET}.tmp ${.TARGET}
102
103.if ${MACHINE_ARCH} == "i386"
104COPTS += ${${ACTIVE_CC} == "gcc":? -Wno-error=psabi :}
105.endif
106
107CLEANFILES+=        liblzma.pc
108
109.if defined(HOSTLIB)
110HOST_CPPFLAGS+=     ${CPPFLAGS:N-Wp,-iremap,*}
111.include <bsd.hostlib.mk>
112.else
113LIBDPLIBS+=         pthread ${NETBSDSRCDIR}/lib/libpthread
114.include <bsd.lib.mk>
115.endif
116
117all: liblzma.pc
118dependall: all
119