Files

226 lines
7.8 KiB
Tcl

# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
PortSystem 1.0
PortGroup clang_dependency 1.0
PortGroup gnulib 1.0
PortGroup muniversal 1.0
name gettext
version 1.0
checksums rmd160 30d857886c367f8632b35fc5e61a3ce5b6b37381 \
sha256 71132a3fb71e68245b8f2ac4e9e97137d3e5c02f415636eb508ae607bc01add7 \
size 10721600
categories devel
maintainers {ryandesign @ryandesign}
homepage https://www.gnu.org/software/gettext/
master_sites gnu
platforms darwin freebsd linux
use_parallel_build yes
# Avoid circular dependency
if {[vercmp [macports_version] >= 2.12.99]} {
extract.add_deps no
}
depends_extract port:xz-bootstrap
depends_skip_archcheck-append xz-bootstrap
extract.suffix .tar.xz
extract.cmd ${prefix}/libexec/xz-bootstrap/bin/xz
patchfiles _Generic.patch
patch.dir ${worksrcpath}
# https://trac.macports.org/ticket/31167
compiler.blacklist-append {clang < 211.10.1}
# Also needed by later clangs.
if {${os.platform} eq "darwin" && ${os.major} < 11 && ${cxx_stdlib} eq "libc++"} {
clang_dependency.extra_versions 3.7
}
configure.args-append ac_cv_prog_AWK=/usr/bin/awk \
ac_cv_path_GMSGFMT=: \
ac_cv_path_GREP=/usr/bin/grep \
ac_cv_path_MSGFMT=: \
ac_cv_path_MSGMERGE=: \
ac_cv_path_SED=/usr/bin/sed \
ac_cv_path_XGETTEXT=: \
--disable-csharp
# https://trac.macports.org/wiki/WimplicitFunctionDeclaration#strchr
configure.checks.implicit_function_declaration.whitelist-append strchr
if {${subport} in "${name} ${name}-runtime ${name}-tools-libs"} {
set localbindir ${workpath}/bin
post-patch {
file mkdir ${localbindir}
# Don't find any Java programs.
foreach prog {gcj java javac jikes} {
set fp [open ${localbindir}/${prog} w]
puts ${fp} {#!/bin/sh}
puts ${fp} {exit 1}
close ${fp}
file attributes ${localbindir}/${prog} -permissions a+x
}
}
configure.env-append \
PATH=${localbindir}:$env(PATH)
configure.args-append \
--disable-java
}
test.run yes
test.target check
subport libasprintf {
revision 0
license LGPL-2.1+
description autosprintf library, part of gettext
long_description ${subport} makes the C formatted output \
routines (fprintf et al.) usable in C++ \
programs, for use with <string> strings \
and <iostream> streams. This library is \
part of gettext.
worksrcdir ${distname}/${name}-runtime/${subport}
}
subport libtextstyle {
revision 0
license GPL-3+
description a text styling library, part of gettext
long_description ${subport} provides an easy way to add styling \
to programs that produce output to a console or \
terminal emulator window. This library is part \
of gettext and a prerequisite for tools like \
msgfmt and friends.
worksrcdir ${distname}/${subport}
depends_lib-append port:libiconv \
port:ncurses
}
subport ${name}-runtime {
revision 0
# libintl is LGPL; programs are GPL
license {LGPL-2.1+ GPL-3+}
description GNU internationalization (i18n) and \
localization (l10n) runtime library
long_description ${subport} provides libintl, the ${description}. \
It is part of gettext, which is used for writing \
multilingual programs. To build applications that \
use gettext, the tools provided by the separate \
gettext port are required.
worksrcdir ${distname}/${subport}
depends_lib-append port:libiconv
configure.args-append --disable-libasprintf \
--with-included-gettext
post-destroot {
delete ${destroot}${prefix}/lib/charset.alias
delete ${destroot}${prefix}/share/locale/locale.alias
}
}
subport ${name}-tools-libs {
revision 0
description GNU internationalization (i18n) and \
localization (l10n) tools libraries
long_description ${subport} provides the required libraries \
for tools like msgfmt from gettext
post-destroot {
# Remove the executables provided by the gettext subport.
# Just leave the libraries and headers for the tools.
delete {*}[glob ${destroot}${prefix}/bin/*] \
{*}[glob ${destroot}${prefix}/share/*]
}
}
if {${subport} eq ${name}} {
epoch 2
revision 0
description GNU internationalization (i18n) and \
localization (l10n) tools
long_description ${name} provides the tools like msgfmt for \
writing multilingual applications. The tools \
are required to build applications which use \
gettext. The runtime library libintl is in \
the separate gettext-runtime port.
depends_lib-append port:${name}-tools-libs
installs_libs no
post-destroot {
# Remove the libraries and headers which are provided
# by gettext-tools-libs
delete {*}[glob ${destroot}${prefix}/lib/*] \
{*}[glob ${destroot}${prefix}/libexec/*] \
{*}[glob ${destroot}${prefix}/include/*]
}
livecheck.type regex
livecheck.url https://ftp.gnu.org/gnu/gettext/?C=M&O=D
livecheck.regex ${name}-(\[0-9.\]+)\\.tar
} else {
livecheck.type none
}
if {${subport} in [list ${name} ${name}-tools-libs]} {
license GPL-3+
depends_build-append port:ncurses
depends_lib-append port:libiconv \
port:libtextstyle \
port:${name}-runtime
configure.args-append --disable-openmp \
--with-included-libunistring \
--with-included-libxml \
--with-installed-libtextstyle \
--without-emacs
# Don't use possibly installed cvs or git to create the autopoint
# archive because the archives they create for each architecture
# under muniversal will differ and cannot be merged.
configure.args-append --without-cvs \
--without-git
# Don't use xz because then xz would be required by various ports
# that just want to use gettext.
configure.args-append --without-xz
# Prevent the lang-c++ test from failing.
# TODO: report this to the developers; there's no reason why
# libasprintf should be getting built again. Might be the same as
# https://savannah.gnu.org/bugs/?58669
configure.args-append --disable-libasprintf
# Install from the tools subpackage, so that only its files
# are installed.
destroot.dir ${worksrcpath}/${name}-tools
}