diff options
Diffstat (limited to 'dev-libs/wiringPi/wiringPi-2.44-r7.ebuild')
-rw-r--r-- | dev-libs/wiringPi/wiringPi-2.44-r7.ebuild | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/dev-libs/wiringPi/wiringPi-2.44-r7.ebuild b/dev-libs/wiringPi/wiringPi-2.44-r7.ebuild new file mode 100644 index 0000000..a18db63 --- /dev/null +++ b/dev-libs/wiringPi/wiringPi-2.44-r7.ebuild @@ -0,0 +1,120 @@ +# Copyright (c) 2017 sakaki <sakaki@deciban.com> +# License: GPL v3+ +# NO WARRANTY + +EAPI=6 +inherit flag-o-matic toolchain-funcs git-r3 + +KEYWORDS="~arm ~arm64" + +DESCRIPTION="GPIO interface libraries (and utility) for the Raspberry Pi" +HOMEPAGE="http://wiringpi.com/" +SRC_URI="" +LICENSE="LGPL-3+" +SLOT="0" +IUSE="" +RESTRICT="mirror" + +EGIT_REPO_URI="git://git.drogon.net/wiringPi" +EGIT_BRANCH="master" +# fetch the branch matching the ebuild version +EGIT_COMMIT="${PV}" + +DEPEND="" +RDEPEND=" + ${DEPEND}" + +src_prepare() { + local DIR + # put header files in include subdirectory + # don't make library links directly (these break) + # update manpage location to non-deprecated value + # get rid of suid (security risk); install utility as sbin instead + # if on arm64, install to /usr/lib64, not /usr/lib + # purge upstream email addresses as Gentoo is an unsupported platform + for DIR in wiringPi devLib gpio; do + sed -e "s#/include#/include/${PN}#" \ + -e 's:\($Q \)ln -sf:#\1ln -sf:g' \ + -e 's:/man/man:/share/man/man:g' \ + -e 's:/bin:/sbin:g' \ + -e 's:4755:0755:g' \ + -i "${DIR}"/Makefile + if use arm64; then + sed -e 's:$(PREFIX)/lib:$(PREFIX)/lib64:g' \ + -e 's:/lib/:/lib64/:g' \ + -i "${DIR}"/Makefile + fi + done + sed -e 's/projects@drogon.net/(email removed, Gentoo unsupported)/g' \ + -i $(find . -type f -exec grep -l "projects@drogon.net" {} +) + # deal with problem that RPi3 in 64-bit mode does not have + # the 'Hardware' line in /proc/cpuinfo, which the wiringPi library + # checks, by making it look in /etc/wiringpi/cpuinfo instead + use arm64 && epatch "${FILESDIR}/${PV}-pseudo-cpuinfo.patch" + default +} + +src_compile() { + # git archive contains object files + cd wiringPi + emake V=1 clean + append-cflags "-fPIC" "-I${S}/wiringPi" + # ensure the right compiler and flags get used + emake V=1 CC=$(tc-getCC) CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \ + LDCONFIG=/bin/true + # set up symlink for library + ln -s libwiringPi.so.* libwiringPi.so + + # now ditto for other directories + + cd ../devLib + emake V=1 clean + append-cflags "-I${S}/devLib" + emake V=1 CC=$(tc-getCC) CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \ + LDCONFIG=/bin/true + ln -s libwiringPiDev.so.* libwiringPiDev.so + + cd ../gpio + emake V=1 clean + append-cflags "-I${S}/cpio" + append-ldflags "-L${S}/wiringPi" "-L${S}/devLib" + emake V=1 CC=$(tc-getCC) CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" \ + LDCONFIG=/bin/true +} + +src_install() { + local LIBDIR="${D%/}/usr/lib" + if use arm64; then + LIBDIR+="64" + fi + cd wiringPi + emake DESTDIR="${D%/}" PREFIX="/usr" install + cp --no-dereference libwiringPi.so "${LIBDIR}/" + cd ../devLib + emake DESTDIR="${D%/}" PREFIX="/usr" install + cp --no-dereference libwiringPiDev.so "${LIBDIR}/" + cd ../gpio + mkdir -p "${D%/}/usr/sbin" + emake DESTDIR="${D%/}" PREFIX="/usr" install + cd .. + DOCS=( README.TXT People ) + if use arm64; then + # following is a snippet of cpuinfo, for use on Pi3s (which + # don't contain all the expected fields when booted in 64-bit + # mode) + insinto "/etc/${PN}" + newins "${FILESDIR}/cpuinfo-1" "cpuinfo" + fi + einstalldocs +} + +pkg_postinst() { + if [[ -z ${REPLACING_VERSIONS} ]] && use arm64; then + elog "The file /etc/${PN}/cpuinfo has been created." + elog "The library will look there, instead of /proc/cpuinfo" + elog "when determining system type; this is necessary because" + elog "some /proc/cpuinfo data is not output in 64-bit mode." + elog "It only contains the necessary stanzas." + elog "You can modify this file as required." + fi +} |