73 lines
1.7 KiB
Bash
73 lines
1.7 KiB
Bash
|
# Copyright 2019-2020 Gentoo Authors
|
||
|
# Distributed under the terms of the GNU General Public License v2
|
||
|
|
||
|
EAPI=7
|
||
|
|
||
|
DESCRIPTION="POSIX Threads for Windows"
|
||
|
HOMEPAGE="http://pthreads4w.sourceforge.net/"
|
||
|
SRC_URI="mirror://sourceforge/${PN}/${PN}-code-v${PV}.zip"
|
||
|
|
||
|
LICENSE="LGPL-2"
|
||
|
SLOT="0"
|
||
|
KEYWORDS="~x86-winnt"
|
||
|
IUSE=""
|
||
|
|
||
|
DEPEND=""
|
||
|
RDEPEND="${DEPEND}"
|
||
|
BDEPEND="
|
||
|
app-arch/unzip
|
||
|
sys-devel/parity
|
||
|
"
|
||
|
|
||
|
S=${WORKDIR}/${PN}-code-07053a521b0a9deb6db2a649cde1f828f2eb1f4f
|
||
|
|
||
|
src_compile() {
|
||
|
# from pthreads.h:
|
||
|
# Note: Unless the build explicitly defines one of the following, then
|
||
|
# we default to standard C style cleanup. This style uses setjmp/longjmp
|
||
|
# in the cancellation and thread exit implementations and therefore won't
|
||
|
# do stack unwinding if linked to applications that have it (e.g.
|
||
|
# C++ apps). This is currently consistent with most/all commercial Unix
|
||
|
# POSIX threads implementations.
|
||
|
local variant="VC" # C style cleanup
|
||
|
|
||
|
case ${CHOST} in
|
||
|
*-libcmtd*) variant+="-static-debug" ;;
|
||
|
*-libcmt*) variant+="-static" ;;
|
||
|
*-msvcd*) variant+="-debug" ;;
|
||
|
*-msvc*) ;;
|
||
|
esac
|
||
|
|
||
|
case ${CHOST} in
|
||
|
x86_64-*) variant+=" TARGET_CPU=x64" ;;
|
||
|
i?86-*) variant+=" TARGET_CPU=x86" ;;
|
||
|
esac
|
||
|
|
||
|
${CHOST}-nmake -f Makefile ${variant} || die
|
||
|
}
|
||
|
|
||
|
src_install() {
|
||
|
local V=$(ver_cut 1)
|
||
|
case ${CHOST} in
|
||
|
*-libcmtd*|*-msvcd*) V+="d" ;; # debug CRT
|
||
|
esac
|
||
|
case ${CHOST} in
|
||
|
*-libcmt*) # static CRT
|
||
|
dolib.so libpthreadVC${V}.lib
|
||
|
newlib.so libpthreadVC${V}.lib libpthread.lib # for -lpthread
|
||
|
;;
|
||
|
*-msvc*) # dynamic CRT
|
||
|
dobin pthreadVC${V}.dll
|
||
|
dolib.so pthreadVC${V}.lib
|
||
|
newlib.so pthreadVC${V}.lib pthread.lib # for -lpthread
|
||
|
;;
|
||
|
esac
|
||
|
insinto /usr/include
|
||
|
doins {pthread,sched,semaphore,_ptw32}.h
|
||
|
einstalldocs
|
||
|
}
|
||
|
|
||
|
src_test() {
|
||
|
${CHOST}-nmake -DEXHAUSTIVE all-tests || die
|
||
|
}
|