You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/dev-libs/libmissing/libmissing-1.0.0-r1.ebuild

130 lines
2.8 KiB

# Copyright 2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit autotools
# NOTE: PV is the libtool version number current:revision:age
DESCRIPTION="Library with missing functions based on GNUlib"
HOMEPAGE="https://prefix.gentoo.org"
GIT_TAG="b451121ab45497e78cb6f612c8673a9705193391"
SRC_URI="https://git.savannah.gnu.org/cgit/gnulib.git/snapshot/gnulib-${GIT_TAG}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~ppc-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
IUSE="static-libs"
DEPEND=""
RDEPEND="${DEPEND}"
BDEPEND=""
S="${WORKDIR}/gnulib-${GIT_TAG}"
src_prepare() {
default
mkdir "${PN}" || die
cd "${PN}" || die
cat > configure.ac <<- EOS
AC_PREREQ([2.69])
AC_INIT([${PN}], [${PV}], [prefix@gentoo.org])
AM_INIT_AUTOMAKE
LT_INIT
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADER([config.h])
AC_PROG_CC
gl_INIT
gl_EARLY
AC_CONFIG_FILES([Makefile lib/Makefile])
AC_OUTPUT
EOS
cat > Makefile.am <<- EOS
SUBDIRS = lib
EOS
local modules
local platform
local rev
case "${CHOST}" in
*-apple-darwin*)
rev=${CHOST##*-darwin}
platform="Mac OS X 10.$((rev - 4))"
;;
*-solaris2.*)
rev=${CHOST##*-solaris2.}
# we only support Solaris 10 (and perhaps 9) and up, so we
# don't have to bother about 2.x, just X
platform="Solaris ${rev}"
;;
esac
# blacklist some modules that cause collisions
# iconv provided by virtual/iconv -> sys-libs/libiconv
modules=( $(
cd "${S}"/doc/posix-functions
grep -A1 "This function is missing" *.texi | \
grep "${platform}" | \
sed -e 's:^\(.[^-]*\)-.*$:\1:' | \
xargs sed -n 's/^Gnulib module: \([a-z].*\)$/\1/p' | \
sed -e 's: or .*$::' -e 's:, :\n:g' | \
sort -u | \
grep -v "iconv"
) )
# get platform specific set of missing functions
einfo "Including sources for missing functions on ${platform}:"
einfo "${modules[*]}"
"${S}"/gnulib-tool -S \
--import \
--lib=libmissing \
--libtool \
--no-vc-files \
--no-cache-modules \
"${modules[@]}"
sed -i -e '/^noinst_LTLIBRARIES /s/noinst_/lib_/' lib/Makefile.am || die
echo "libmissing_la_LDFLAGS += version-info ${PV//./:}" >> lib/Makefile.am
cat >> lib/Makefile.am << 'EOS'
install-data-local: $(BUILT_SOURCES)
@for hdr in $(BUILT_SOURCES); do \
$(INSTALL_HEADER) -D "$$hdr" $(DESTDIR)$(includedir)/missing/$${hdr}; \
done;
EOS
eautoreconf
}
src_configure() {
cd "${PN}" || die
# ensure we don't pick up installed libmissing
export CPPFLAGS="${CPPFLAGS/-I${EPREFIX}\/usr\/include\/missing/}"
export LIBS="${LIBS/-lmissing/}"
einfo "CPPFLAGS: ${CPPFLAGS}"
einfo "LIBS: ${LIBS}"
default
}
src_compile() {
cd "${PN}" || die
default
}
src_install() {
cd "${PN}" || die
default
rm "${ED}"/usr/lib/libmissing.la \
"$(use static-libs || echo "${ED}"/usr/lib/libmissing.a)" || die
}