xref: /freebsd/lib/libz/Makefile (revision e3e9c205ff54aac287309e03a808d9e9ec5c49eb)
1b1c8a8dfSPeter Wemm#
2b1c8a8dfSPeter Wemm#
3b1c8a8dfSPeter Wemm
4a7b5a3d4SEmmanuel VadotPACKAGE=	runtime
5b1c8a8dfSPeter WemmLIB=		z
618b2ee82SBaptiste DaroussinSHLIBDIR?=	/lib
7798aea00SXin LISHLIB_MAJOR=	6
841de1082SXin LIMAN=		zlib.3 zopen.3
98e2a46c8SMark JohnstonMLINKS+=	zopen.3 zdopen.3
10b1c8a8dfSPeter Wemm
11c9083b85SXin LIZLIBSRC=	${SRCTOP}/sys/contrib/zlib
12e16f0839SXin LI
13e16f0839SXin LI.PATH:		${ZLIBSRC}
14e16f0839SXin LI
15798aea00SXin LI#CFLAGS=-O -DMAX_WBITS=14 -DMAX_MEM_LEVEL=7
16798aea00SXin LI#CFLAGS=-g -DDEBUG
17798aea00SXin LI#CFLAGS=-O3 -Wall -Wwrite-strings -Wpointer-arith -Wconversion \
18b1c8a8dfSPeter Wemm#           -Wstrict-prototypes -Wmissing-prototypes
19b1c8a8dfSPeter Wemm
20cd882207SXin LICFLAGS+=	-D_LARGEFILE64_SOURCE=1 -DHAVE_HIDDEN -I${.CURDIR}
21f3b0f821SChris D. Faulhaber
22daaf5759SEd SchoutenWARNS?=		3
23daaf5759SEd Schouten
24e827b8c5SSteve PriceCLEANFILES+=	example.o example foo.gz minigzip.o minigzip
25b1c8a8dfSPeter Wemm
26798aea00SXin LISRCS+=		adler32.c
27798aea00SXin LISRCS+=		compress.c
28798aea00SXin LISRCS+=		crc32.c
29798aea00SXin LISRCS+=		deflate.c
30798aea00SXin LISRCS+=		gzclose.c
31798aea00SXin LISRCS+=		gzlib.c
32798aea00SXin LISRCS+=		gzread.c
33798aea00SXin LISRCS+=		gzwrite.c
34798aea00SXin LISRCS+=		infback.c
35798aea00SXin LISRCS+=		inffast.c
36798aea00SXin LISRCS+=		inflate.c
37798aea00SXin LISRCS+=		inftrees.c
38798aea00SXin LISRCS+=		trees.c
39798aea00SXin LISRCS+=		uncompr.c
40798aea00SXin LISRCS+=		zutil.c
41798aea00SXin LI
428d5d3295SJessica Clarke# Wrapper relies on FreeBSD-specific fpos_t representation and non-portable
438d5d3295SJessica Clarke# funopen. Not needed for bootstrapping, so just disable it.
448d5d3295SJessica Clarke.if ${.MAKE.OS} == "FreeBSD" || !defined(BOOTSTRAPPING)
458d5d3295SJessica ClarkeSRCS+=		zopen.c
468d5d3295SJessica Clarke.endif
478d5d3295SJessica Clarke
483b293398SAlexander Kabaev.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64"
497250d89eSXin LICFLAGS+=	-DUNALIGNED_OK
507250d89eSXin LI.endif
51798aea00SXin LI
52798aea00SXin LIVERSION_DEF=	${.CURDIR}/Versions.def
53798aea00SXin LISYMBOL_MAPS=	${.CURDIR}/Symbol.map
54798aea00SXin LI
55d05257b0SRodney W. GrimesINCS=		zconf.h zlib.h
56b1c8a8dfSPeter Wemm
57e16f0839SXin LI.PATH:		${ZLIBSRC}/test
5828dfa008SXin LI
5916ade779SXin LIZLIB_VERSION!=	sed -n '/define.*ZLIB_VERSION/{s,[^0-9.],,gp;q;}' ${ZLIBSRC}/zlib.h
6016ade779SXin LI
6116ade779SXin LIzlib.pc: zlib.pc.in
6216ade779SXin LI	sed -e 's,@prefix@,/usr,g ; \
6316ade779SXin LI		s,@exec_prefix@,$${prefix},g ; \
64ac175bd3SAlex Richardson		s,@libdir@,${LIBDIR},g ; \
65ac175bd3SAlex Richardson		s,@sharedlibdir@,${SHLIBDIR},g ; \
66ac175bd3SAlex Richardson		s,@includedir@,${INCLUDEDIR},g ; \
6716ade779SXin LI		s,@VERSION@,${ZLIB_VERSION},g ;' \
6816ade779SXin LI		${.ALLSRC} > ${.TARGET}
6916ade779SXin LI
70b1c8a8dfSPeter Wemmminigzip:	all minigzip.o
71b1c8a8dfSPeter Wemm	$(CC) -o minigzip minigzip.o -L. -lz
72b1c8a8dfSPeter Wemm
73b1c8a8dfSPeter Wemmexample:	all example.o
74b1c8a8dfSPeter Wemm	$(CC) -o example example.o -L. -lz
75b1c8a8dfSPeter Wemm
76b1c8a8dfSPeter Wemmtest: example minigzip
77b1c8a8dfSPeter Wemm	(export LD_LIBRARY_PATH=. ; ./example )
78b1c8a8dfSPeter Wemm	(export LD_LIBRARY_PATH=. ; \
79b1c8a8dfSPeter Wemm		echo hello world | ./minigzip | ./minigzip -d )
80b1c8a8dfSPeter Wemm
81500f4659SEmmanuel VadotPCFILES=	zlib.pc
82a021956cSBaptiste Daroussin
83b1c8a8dfSPeter Wemm.include <bsd.lib.mk>
84010795fcSJohn Baldwin
85*14b57adeSJohn BaldwinCWARNFLAGS+=	${NO_WDEPRECATED_NON_PROTOTYPE} ${NO_WSTRICT_PROTOTYPES}
86