pkgsrc/print/texlive/package.mk
2019-12-06 21:29:53 +00:00

167 lines
4.9 KiB
Makefile

# $NetBSD: package.mk,v 1.26 2019/12/06 21:29:53 wiz Exp $
#
# This Makefile fragment is intended to be included by packages that build
# TeX Live packages.
#
# Note to package developers:
#
# * When creating/updating a tex package please set TEXLIVE_USE_CTAN (in
# order to properly update the distinfo via the "makesum" target) and
# set TEXLIVE_REV appropriately if it is possible (as described below).
#
# Package-settable variables:
#
# REPLACE_TEXLUA
# A list of texlua scripts to be installed, relative to ${WRKSRC}.
#
# TEXLIVE_IGNORE_PATTERNS
# glob patterns for files and directories in ${WRKSRC} that
# should not be installed.
#
# TEXLIVE_REV
# String appended to DIST_SUBDIR (useful because the majority of tex
# packages do not have a revision number in the DISTNAME).
# To obtain information to be used as TEXLIVE_REV you should use the
# value of "revision" line usually available in
# ${WRKSRC}/tlpkg/tlpobj/${DISTNAME}.tlpobj
#
# TEXLIVE_UNVERSIONED
# The distfile is an oldstyle unversioned one, normally
# retrieved from NetBSD repositories.
#
# TEX_FORMATS
# See ../../print/tex-tetex/format.mk.
#
# TEX_HYPHEN_DAT
# See ../../print/texlive-tetex/hyphen.mk.
#
# TEX_HYPHEN_DEF
# See ../../print/texlive-tetex/hyphen.mk.
#
# TEX_TEXMF_DIRS
# See ../../print/kpathsea/texmf.mk.
#
# Keywords: latex tex texlive
#
CATEGORIES?= print
.if empty(TEXLIVE_UNVERSIONED)
DISTFILES?= ${DISTNAME}.r${TEXLIVE_REV}${EXTRACT_SUFX}
MASTER_SITES?= ${MASTER_SITE_TEX_CTAN:=systems/texlive/tlnet/archive/}
.else
.if empty(TEXLIVE_USE_CTAN)
MASTER_SITES?= ${MASTER_SITE_BACKUP}
.else
MASTER_SITES?= ${MASTER_SITE_TEX_CTAN:=systems/texlive/tlnet/archive/}
.endif
.if empty(TEXLIVE_REV)
DIST_SUBDIR?= ${PKGNAME_NOREV}
.else
DIST_SUBDIR?= ${PKGBASE:S/-doc$//}-${TEXLIVE_REV}
.endif
.endif
EXTRACT_SUFX?= .tar.xz
HOMEPAGE?= http://www.tug.org/texlive/
USE_TOOLS+= pax
NO_BUILD?= yes
WRKSRC?= ${WRKDIR}
.if defined(REPLACE_TEXLUA)
DEPENDS+= luatex-[0-9]*:../../print/luatex
REPLACE_INTERPRETER= texlua
REPLACE.texlua.old= .*texlua
REPLACE.texlua.new= ${LOCALBASE}/bin/texlua
REPLACE_FILES.texlua= ${REPLACE_TEXLUA}
.endif
.PHONY: _texlive-set-permission _texlive-info _texlive-man _texlive-install
_texlive-set-permission:
.for _pat in ${TEXLIVE_IGNORE_PATTERNS}
${RM} -rf ${WRKSRC}/${_pat}
.endfor
.for _dir in ${_dirs}
if [ -d ${WRKSRC}/${_dir} ]; then \
${FIND} ${WRKSRC}/${_dir} -type d -exec ${CHMOD} ${PKGDIRMODE} {} \; ; \
${FIND} ${WRKSRC}/${_dir} -type f -exec ${CHMOD} ${SHAREMODE} {} \; ; \
fi
.endfor
_texlive-info:
if [ -d ${WRKSRC}/texmf-dist/doc/info ]; then \
${RM} -f ${WRKSRC}/texmf-dist/doc/info/dir; \
${MKDIR} ${WRKSRC}/info; \
${MV} ${WRKSRC}/texmf-dist/doc/info/* ${WRKSRC}/info; \
${RMDIR} -p ${WRKSRC}/texmf-dist/doc/info || ${TRUE}; \
fi
if [ -d ${WRKSRC}/doc/info ]; then \
${RM} -f ${WRKSRC}/doc/info/dir; \
${MKDIR} ${WRKSRC}/info; \
${MV} ${WRKSRC}/doc/info/* ${WRKSRC}/info; \
${RMDIR} -p ${WRKSRC}/doc/info || ${TRUE}; \
fi
_texlive-man:
if [ -d ${WRKSRC}/texmf-dist/doc/man ]; then \
${MKDIR} ${WRKSRC}/man; \
${MV} ${WRKSRC}/texmf-dist/doc/man/* ${WRKSRC}/man; \
${FIND} ${WRKSRC}/man -name \*.pdf -exec ${RM} {} \; ; \
${RMDIR} -p ${WRKSRC}/texmf-dist/doc/man || ${TRUE}; \
fi
if [ -d ${WRKSRC}/doc/man ]; then \
${MKDIR} ${WRKSRC}/man; \
${MV} ${WRKSRC}/doc/man/* ${WRKSRC}/man; \
${FIND} ${WRKSRC}/man -name \*.pdf -exec ${RM} {} \; ; \
${RMDIR} -p ${WRKSRC}/doc/man || ${TRUE}; \
fi
_texlive-install:
if [ -d ${WRKSRC}/texmf -o -d ${WRKSRC}/texmf-dist ]; then \
_dirs="texmf texmf-dist"; \
_topdir="${DESTDIR}${PREFIX}/share"; \
else \
_dirs="bibtex doc dvips fonts makeindex metafont metapost omega scripts source tex vtex"; \
_topdir="${DESTDIR}${PREFIX}/share/texmf-dist"; \
fi; \
for _dir in $$_dirs; do \
if [ -d ${WRKSRC}/$$_dir ]; then \
echo $$_dir; \
cd ${WRKSRC} && \
${INSTALL_DATA_DIR} $$_topdir && \
${PAX} -rwpm -s ',.*\.orig$$,,' \
$$_dir $$_topdir; \
fi \
done
if [ -d ${WRKSRC}/bin ]; then \
${FIND} ${WRKSRC}/bin -name \*.orig -exec ${RM} {} \; ; \
${INSTALL_SCRIPT_DIR} ${DESTDIR}${PREFIX}/bin; \
for script in ${WRKSRC}/bin/*; do \
${INSTALL_SCRIPT} $$script ${DESTDIR}${PREFIX}/bin; \
done; \
fi
if [ -d ${WRKSRC}/info ]; then \
${FIND} ${WRKSRC}/info -name \*.orig -exec ${RM} {} \; ; \
${INSTALL_DATA_DIR} ${DESTDIR}${PREFIX}/${PKGINFODIR}; \
for script in ${WRKSRC}/info/*; do \
${INSTALL_DATA} $$script ${DESTDIR}${PREFIX}/${PKGINFODIR}; \
done; \
fi
if [ -d ${WRKSRC}/man ]; then \
${FIND} ${WRKSRC}/man -name \*.orig -exec ${RM} {} \; ; \
${INSTALL_MAN_DIR} -p ${DESTDIR}${PREFIX}/${PKGMANDIR}; \
for f in ${WRKSRC}/man/*; do \
d=${DESTDIR}${PREFIX}/${PKGMANDIR}/`${BASENAME} $$f`; \
${INSTALL_MAN_DIR} $$d; \
${INSTALL_MAN} $$f/* $$d; \
done; \
fi
.if empty(TEX_TEXMF_DIRS) || ${TEX_TEXMF_DIRS} != "none"
. include "../../print/kpathsea/texmf.mk"
.endif
post-extract: _texlive-set-permission _texlive-info _texlive-man
do-install: _texlive-install