version 1.2, 2004/03/29 05:43:30 |
version 1.3, 2005/06/01 18:02:45 |
|
|
# $NetBSD$ |
# $NetBSD$ |
|
|
_ZLIB_H= /usr/include/zlib.h |
BUILTIN_PKG:= zlib |
|
|
|
BUILTIN_FIND_FILES_VAR:= H_ZLIB |
|
BUILTIN_FIND_FILES.H_ZLIB= /usr/include/zlib.h |
|
|
|
.include "../../mk/buildlink3/bsd.builtin.mk" |
|
|
|
### |
|
### Determine if there is a built-in implementation of the package and |
|
### set IS_BUILTIN.<pkg> appropriately ("yes" or "no"). |
|
### |
.if !defined(IS_BUILTIN.zlib) |
.if !defined(IS_BUILTIN.zlib) |
IS_BUILTIN.zlib= no |
IS_BUILTIN.zlib= no |
. if exists(${_ZLIB_H}) |
. if empty(H_ZLIB:M${LOCALBASE}/*) && exists(${H_ZLIB}) |
IS_BUILTIN.zlib= yes |
IS_BUILTIN.zlib= yes |
# |
. endif |
# Create an appropriate name for the built-in package distributed |
.endif |
# with the system. This package name can be used to check against |
MAKEVARS+= IS_BUILTIN.zlib |
# BUILDLINK_DEPENDS.<pkg> to see if we need to install the pkgsrc |
|
# version or if the built-in one is sufficient. |
### |
# |
### If there is a built-in implementation, then set BUILTIN_PKG.<pkg> to |
_ZLIB_VERSION!= \ |
### a package name to represent the built-in package. |
|
### |
|
.if !defined(BUILTIN_PKG.zlib) && \ |
|
!empty(IS_BUILTIN.zlib:M[yY][eE][sS]) && \ |
|
exists(${H_ZLIB}) |
|
BUILTIN_VERSION.zlib!= \ |
${AWK} '/\#define[ ]*ZLIB_VERSION/ { \ |
${AWK} '/\#define[ ]*ZLIB_VERSION/ { \ |
vers = $$3; \ |
vers = $$3; \ |
gsub("\"", "", vers); \ |
gsub("\"", "", vers); \ |
print vers; \ |
print vers; \ |
} \ |
} \ |
' ${_ZLIB_H} |
' ${H_ZLIB:Q} |
BUILTIN_PKG.zlib= zlib-${_ZLIB_VERSION} |
|
# |
# |
# If the built-in zlib is 1.1.4, then check whether it has the security |
# If the built-in zlib is 1.1.4, then check whether it has the security |
# fix for CAN-2003-0107, which was a buffer overflow in the gzprintf |
# fix for CAN-2003-0107, which was a buffer overflow in the gzprintf |
# function. If it does, then treat it as the equivalent of zlib-1.1.4nb1. |
# function. If it does, then treat it as the equivalent of zlib-1.1.4nb1. |
# |
# |
_HAVE_CAN_2003_0107_FIX= NetBSD-1.3[I-Z]*-* NetBSD-1.[456]*-* |
BUILTIN_CAN_2003_0107_FIX= NetBSD-1.3[I-Z]*-* NetBSD-1.[456]*-* \ |
_HAVE_CAN_2003_0107_FIX+= NetBSD-[2-9]*-* NetBSD-1[0-9]*-* |
NetBSD-[2-9]*-* NetBSD-1[0-9]*-* |
# |
# |
# XXX These patterns for {Free,Open}BSD are too permissive, but I'm not |
# XXX These patterns for {Free,Open}BSD are too permissive, but I'm not |
# XXX sure which versions of those OSes provide secure versions of |
# XXX sure which versions of those OSes provide secure versions of |
# XXX zlib-1.1.4. |
# XXX zlib-1.1.4. |
# |
# |
_HAVE_CAN_2003_0107_FIX+= FreeBSD-*-* OpenBSD-*-* |
BUILTIN_CAN_2003_0107_FIX+= FreeBSD-*-* OpenBSD-*-* |
. if ${_ZLIB_VERSION} == "1.1.4" |
. if ${BUILTIN_VERSION.zlib} == "1.1.4" |
. for _pattern_ in ${_HAVE_CAN_2003_0107_FIX} |
. for _pattern_ in ${BUILTIN_CAN_2003_0107_FIX} |
. if !empty(MACHINE_PLATFORM:M${_pattern_}) |
. if !empty(MACHINE_PLATFORM:M${_pattern_}) |
BUILTIN_PKG.zlib= zlib-1.1.4nb1 |
BUILTIN_VERSION.zlib= 1.1.4nb1 |
. endif |
. endif |
. endfor |
. endfor |
. endif |
|
BUILDLINK_VARS+= BUILTIN_PKG.zlib |
|
. endif |
. endif |
BUILDLINK_VARS+= IS_BUILTIN.zlib |
BUILTIN_PKG.zlib= zlib-${BUILTIN_VERSION.zlib} |
.endif # IS_BUILTIN.zlib |
.endif |
|
MAKEVARS+= BUILTIN_PKG.zlib |
|
|
|
### |
|
### Determine whether we should use the built-in implementation if it |
|
### exists, and set USE_BUILTIN.<pkg> appropriate ("yes" or "no"). |
|
### |
.if !defined(USE_BUILTIN.zlib) |
.if !defined(USE_BUILTIN.zlib) |
USE_BUILTIN.zlib?= ${IS_BUILTIN.zlib} |
. if ${PREFER.zlib} == "pkgsrc" |
PREFER.zlib?= pkgsrc |
USE_BUILTIN.zlib= no |
|
. else |
. if defined(BUILTIN_PKG.zlib) |
USE_BUILTIN.zlib= ${IS_BUILTIN.zlib} |
|
. if defined(BUILTIN_PKG.zlib) && \ |
|
!empty(IS_BUILTIN.zlib:M[yY][eE][sS]) |
USE_BUILTIN.zlib= yes |
USE_BUILTIN.zlib= yes |
. for _depend_ in ${BUILDLINK_DEPENDS.zlib} |
. for _dep_ in ${BUILDLINK_DEPENDS.zlib} |
. if !empty(USE_BUILTIN.zlib:M[yY][eE][sS]) |
. if !empty(USE_BUILTIN.zlib:M[yY][eE][sS]) |
USE_BUILTIN.zlib!= \ |
USE_BUILTIN.zlib!= \ |
if ${PKG_ADMIN} pmatch '${_depend_}' ${BUILTIN_PKG.zlib}; then \ |
if ${PKG_ADMIN} pmatch ${_dep_:Q} ${BUILTIN_PKG.zlib:Q}; then \ |
${ECHO} "yes"; \ |
${ECHO} yes; \ |
else \ |
else \ |
${ECHO} "no"; \ |
${ECHO} no; \ |
fi |
fi |
. endif |
. endif |
. endfor |
. endfor |
. endif |
. endif |
|
. endif # PREFER.zlib |
|
.endif |
|
MAKEVARS+= USE_BUILTIN.zlib |
|
|
. if defined(USE_ZLIB) |
# If USE_ZLIB is defined, then force the use of a true zlib |
. if !empty(IS_BUILTIN.zlib:M[nN][oO]) && \ |
# implementation. |
(${PREFER.zlib} == "pkgsrc") |
# |
|
.if defined(USE_ZLIB) |
|
. if !empty(IS_BUILTIN.zlib:M[nN][oO]) |
USE_BUILTIN.zlib= no |
USE_BUILTIN.zlib= no |
. endif |
|
. endif |
. endif |
.endif # USE_BUILTIN.zlib |
|
|
|
CHECK_BUILTIN.zlib?= no |
|
.if !empty(CHECK_BUILTIN.zlib:M[nN][oO]) |
|
|
|
.if !empty(USE_BUILTIN.zlib:M[nN][oO]) |
|
BUILDLINK_DEPENDS.zlib+= zlib>=1.2.1 |
|
.endif |
.endif |
|
|
.endif # CHECK_BUILTIN.zlib |
|