blob: 9d68ffdfde784ecc150e17ef0666b8afcae88cd1 [file] [log] [blame]
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
_realname=libpng
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=1.6.37
_apngver=1.6.37
pkgrel=4
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32')
pkgdesc="A collection of routines used to create PNG format graphics (mingw-w64)"
depends=("${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-zlib")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc")
license=('custom')
url="http://www.libpng.org/pub/png/libpng.html"
options=('strip' '!libtool' 'staticlibs')
source=("https://downloads.sourceforge.net/sourceforge/libpng/${_realname}-${pkgver}.tar.xz"
"https://downloads.sourceforge.net/project/libpng-apng/libpng16/${_apngver}/${_realname}-${_apngver}-apng.patch.gz")
sha256sums=('505e70834d35383537b6491e7ae8641f1a4bed1876dbfe361201fc80868d88ca'
'823bb2d1f09dc7dae4f91ff56d6c22b4b533e912cbd6c64e8762255e411100b6')
validpgpkeys=('8048643BA2C840F4F92A195FF54984BFA16C640F') # Glenn Randers-Pehrson (mozilla) <glennrp+bmo@gmail.com>
prepare() {
cd "${srcdir}/${_realname}-${pkgver}"
# Add animated PNG (apng) support
patch -p1 -i "${srcdir}/${_realname}-${_apngver}-apng.patch"
# autoreconf to get updated libtool files with clang support
autoreconf -fiv
}
build() {
[[ -d "${srcdir}/build-${MINGW_CHOST}" ]] && rm -rf "${srcdir}/build-${MINGW_CHOST}"
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
cd "${srcdir}/build-${MINGW_CHOST}"
../"${_realname}-${pkgver}"/configure \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--target=${MINGW_CHOST} \
--prefix=${MINGW_PREFIX} \
--enable-shared --enable-static \
as_ln_s="cp -pR"
make
msg2 "Build contributed programs"
mkdir -p ".libs/contrib/pngminus" && cd ".libs/contrib/pngminus"
cp -r "${srcdir}/${_realname}-${pkgver}/contrib/pngminus"/* .
# libpng.a and libpng.dll.a are basically symlinks to libpng16.a
# and libpng16.dll.a that are created at "make install" but we are
# building the contributed programs before the "make install" so
# we have to link to libpng16.dll.a or libpng16.a if building
# statically. When building the static programs, we might also
# want to build with the static version of zlib.
make PNGINC="-I${srcdir}/${_realname}-${pkgver} -I${srcdir}/build-${MINGW_CHOST}" \
CC="${MINGW_PREFIX}/bin/gcc" \
PNGLIB_SHARED="-L../.. -lpng16" \
PNGLIB_STATIC="../../libpng16.a" \
ZLIB_STATIC="${MINGW_PREFIX}/lib/libz.a" \
CFLAGS="$CFLAGS" \
LDFLAGS="-L../.. $LDFLAGS" \
png2pnm pnm2png png2pnm-static pnm2png-static
}
check() {
cd "${srcdir}/build-${MINGW_CHOST}"
make check
}
package () {
cd "${srcdir}/build-${MINGW_CHOST}"
make install DESTDIR="${pkgdir}"
install -D -m644 "${srcdir}/libpng-${pkgver}/LICENSE" "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
msg2 "Install contributed programs"
cd ".libs/contrib/pngminus"
# deploy both the shared lib and static programs in case a developer wants to
# redistribute those. I was also building statically for some internal testing.
install -m0755 png2pnm.exe pnm2png.exe png2pnm-static.exe pnm2png-static.exe "$pkgdir${MINGW_PREFIX}/bin/"
}