openbsd-ports/print/texlive/texmf/Makefile

198 lines
7.1 KiB
Makefile

COMMENT-context = texlive texmf for conTeXt
COMMENT-docs = texlive documentation
COMMENT-full = texlive texmf for extra macros
COMMENT-main = texlive texmf for basic functionality
COMMENT-buildset = smallest texlive texmf for building ports
# Please do not directly edit the PLIST files. They are auto-generated.
#
# If you move things out of another texmf into the buildset, don't forget to:
# * Update the buildset conflict markers in PLIST-buildset.
# * Add a more restrictive RUN_DEPEND upon the buildset.
DISTNAME = texlive-${DIST_V}-texmf
MASTER_SITES0 = http://theunixzoo.co.uk/distfiles/
DISTFILES = ${DISTNAME}${EXTRACT_SUFX} \
texlive-${DIST_V}-extra${EXTRACT_SUFX} \
texlive-${DIST_V}-tlpdb-full.tar.gz \
texmf-var-pregen-${V}${EXTRACT_SUFX}:0
PKGNAME-main = texlive_texmf-minimal-${V}
PKGNAME-full = texlive_texmf-full-${V}
PKGNAME-docs = texlive_texmf-docs-${V}
PKGNAME-context = texlive_texmf-context-${V}
PKGNAME-buildset = texlive_texmf-buildset-${V}
REVISION-context = 0
NO_BUILD = Yes
NO_TEST = Yes
PKG_ARCH = *
BUILD_DEPENDS = archivers/xz
# We dont use auto module deps for these, as MODULES is not per SUBPACKAGE
MODULES += lang/lua lang/ruby lang/python x11/tk perl
MODPY_VERSION = ${MODPY_DEFAULT_VERSION_2}
MODLUA_RUNDEP = No
MODLUA_BUILDDEP = No
MODRUBY_BUILDDEP = No
MODRUBY_RUNDEP = No
MODPY_BUILDDEP = No
MODPY_RUNDEP = No
.include "adj.mk"
RUN_DEPENDS-main += texlive_base->=${V}:print/texlive/base,-main \
${FULLPKGNAME-buildset}:print/texlive/texmf,-buildset
RUN_DEPENDS-full = ${FULLPKGNAME-main}:print/texlive/texmf,-main \
${MODPY_RUN_DEPENDS} \
${_MODLUA_RUNDEPENDS}
RUN_DEPENDS-context += ${FULLPKGNAME-full}:print/texlive/texmf,-full \
${MODRUBY_RUN_DEPENDS}
RUN_DEPENDS-docs += texlive_base->=${V}:print/texlive/base,-main \
x11/p5-Tk
RUN_DEPENDS-buildset += texlive_mktexlsr->=${V}:print/texlive/base,-mktexlsr
MULTI_PACKAGES = -context -docs -full -main -buildset
SUBST_VARS += RUBY
WRKDIST = ${WRKDIR}/texlive-${DIST_V}-texmf
# Substitute correct interpreter paths into scripts and deal with linked
# manuals. Some interpreter paths are done automatically by MODULES.
pre-configure:
@# Don't use substitution from the Python port, since we need to swap
@# in different versions.
for F in ${PYTHON2_ADJ_FILES}; do \
perl -pi \
-e '$$. == 1 && s|^.*env python[0-9.]*([\s].*)?$$|\#!${LOCALBASE}/bin/python${MODPY_DEFAULT_VERSION_2}$$1|;' \
-e '$$. == 1 && s|^.*python[0-9.]*([\s].*)?$$|\#!${LOCALBASE}/bin/python${MODPY_DEFAULT_VERSION_2}$$1|;' \
-e 'close ARGV if eof;' ${WRKSRC}/$$F; \
done
for F in ${PYTHON3_ADJ_FILES}; do \
perl -pi \
-e '$$. == 1 && s|^.*env python[0-9.]*([\s].*)?$$|\#!${LOCALBASE}/bin/python${MODPY_DEFAULT_VERSION_3}$$1|;' \
-e '$$. == 1 && s|^.*python[0-9.]*([\s].*)?$$|\#!${LOCALBASE}/bin/python${MODPY_DEFAULT_VERSION_3}$$1|;' \
-e 'close ARGV if eof;' ${WRKSRC}/$$F; \
done
@# Don't use ${MODRUBY_ADJ_FILES} as ruby.port.mk uses find(1) which
@# takes an age on such a large directory.
cd ${WRKSRC} && for F in ${RUBY_ADJ_FILES}; do \
${MODRUBY_RUBY_ADJ} $$F; \
done
for F in ${WISH_ADJ_FILES}; do \
${MODTCL_WISH_ADJ} ${WRKSRC}/$$F; \
done
for F in ${TEXLUA_ADJ_FILES}; do \
perl -pi \
-e '$$. == 1 && s|^.*env texlua([\s].*)?$$|\#!${LOCALBASE}/bin/texlua$$1|;' \
-e '$$. == 1 && s|^.*texlua([\s].*)?$$|\#!${LOCALBASE}/bin/texlua$$1|;' \
-e 'close ARGV if eof;' ${WRKSRC}/$$F; \
done
for F in ${LUA_ADJ_FILES}; do \
perl -pi \
-e '$$. == 1 && s|^.*env lua([\s].*)?$$|\#!${LOCALBASE}/bin/lua$$1|;' \
-e '$$. == 1 && s|^.*lua([\s].*)?$$|\#!${LOCALBASE}/bin/lua$$1|;' \
-e 'close ARGV if eof;' ${WRKSRC}/$$F; \
done
for F in ${BASH_ADJ_FILES}; do \
perl -pi \
-e '$$. == 1 && s|^.*env bash([\s].*)?$$|\#!${LOCALBASE}/bin/bash$$1|;' \
-e '$$. == 1 && s|^.*bash([\s].*)?$$|\#!${LOCALBASE}/bin/bash$$1|;' \
-e 'close ARGV if eof;' ${WRKSRC}/$$F; \
done
for F in ${FONTFORGE_ADJ_FILES}; do \
perl -pi \
-e '$$. == 1 && s|^.*env fontforge([\s].*)?$$|\#!${LOCALBASE}/bin/fontforge$$1|;' \
-e '$$. == 1 && s|^.*fontforge([\s].*)?$$|\#!${LOCALBASE}/bin/fontforge$$1|;' \
-e 'close ARGV if eof;' ${WRKSRC}/$$F; \
done
# This file contains a lookup table of interpreter paths
${SUBST_CMD} ${WRKSRC}/texmf-dist/scripts/context/stubs/unix/mtxrun
# Note that the engine symlinks will cause warnings about dead symlinks at
# package time. This is because the symlinks point outside of the texmf
# packages (to texlive_base). The warnings are harmless and can be disregarded.
.include "symlinks.mk"
.include "man_symlinks.mk"
do-install: tl-symlinks-main tl-symlinks-full tl-symlinks-context
mv ${WRKDIST}/texmf-dist ${PREFIX}/share
# plug in my pregenerated map and formats
#
# To make these, first check you are all hashed (all commands as root):
# mktexlsr
# mtxrun --generate
#
# Then create the necessary files with:
# updmap-sys
# fmtutil-sys --all
# context --make
#
# Then you can tar them up and host them as the pregen tarball.
#
# (Don't forget to remove ls-R files, log files and the luatex cache
# before making the tarball).
mv ${WRKDIR}/texmf-var ${PREFIX}/share
# Put manuals in the right place.
#
# The rest of share/texmf-dist/doc/man does not appear
# in the packing list, so the PDF versions will not be installed.
#
# I am told by upstream that any manual page not under
# texmf-dist/doc/man is intentionally this way and should not be
# moved into the system manual path. So be it.
mv ${PREFIX}/share/texmf-dist/doc/man/man1/*.1 ${PREFIX}/man/man1/
mv ${PREFIX}/share/texmf-dist/doc/man/man5/*.5 ${PREFIX}/man/man5/
# Info pages
mv ${PREFIX}/share/texmf-dist/doc/info/*.info \
${PREFIX}/info/
# A whole load of manual pages use a `.so` to "link" to another man
# page. This makes a warning at package time about a missing short
# description, and furthermore, `mandoc -Tlint` warns that `.so` is
# fragile and that we'd be better off using ln(1).
${MAN_SYMLINKS_CMD}
# adjust permissions
chown -R ${SHAREOWN}:${SHAREGRP} \
${PREFIX}/{share/texmf*,man/man*/*,info/*}
# texdoc needs a copy of the TLPDB in a specific path.
${INSTALL_DATA_DIR} ${PREFIX}/share/tlpkg/
${INSTALL_DATA} ${WRKDIR}/texlive.tlpdb ${PREFIX}/share/tlpkg/
post-install:
# selfauto does not work with our legacy texmf paths, patch in paths.
${SUBST_CMD} ${PREFIX}/share/texmf-dist/web2c/texmf.cnf
${SUBST_CMD} ${PREFIX}/share/texmf-dist/web2c/texmfcnf.lua
# The following targets are for development only and require Python3.
# Generating PLISTs is special for TeX Live.
update-plist: plist
plist: fake
env WRKINST=${WRKINST} TRUEPREFIX=${TRUEPREFIX} \
python${MODPY_DEFAULT_VERSION_3} \
${FILESDIR}/update_plist_hints.py \
${WRKDIR}/texlive.tlpdb | \
python${MODPY_DEFAULT_VERSION_3} ${FILESDIR}/write_plists.py
# Regenerate adj.mk.
adj: patch
python${MODPY_DEFAULT_VERSION_3} ${FILESDIR}/mk_adj.py \
${WRKSRC}/texmf-dist ${WRKSRC} > adj.mk
# Regenerate man_symlinks.mk.
man_symlinks: patch
python${MODPY_DEFAULT_VERSION_3} ${FILESDIR}/mk_man_symlinks.py \
${WRKSRC}/texmf-dist/doc/man > man_symlinks.mk
.include <bsd.port.mk>