blob: c0525a5fe4c307251d9081c197c2b90b2c8f8611 [file] [log] [blame] [edit]
# Maintainer: Andrew Sun <adsun701@gmail.com>
_realname=mono
pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}")
_gitcommit=fe64a4765e6d1dbb41d5c86708fcb02aa519247a
pkgver=6.4.0.198
pkgrel=1
pkgdesc='Free implementation of the .NET platform including runtime and compiler (mingw-w64)'
url='https://www.mono-project.com/'
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64')
license=('GPL' 'LGPL2.1' 'MPL')
depends=("${MINGW_PACKAGE_PREFIX}-zlib"
"${MINGW_PACKAGE_PREFIX}-gcc-libs"
"${MINGW_PACKAGE_PREFIX}-winpthreads"
"${MINGW_PACKAGE_PREFIX}-libgdiplus"
"${MINGW_PACKAGE_PREFIX}-python3"
"${MINGW_PACKAGE_PREFIX}-ca-certificates")
makedepends=("${MINGW_PACKAGE_PREFIX}-cmake"
"${MINGW_PACKAGE_PREFIX}-gcc"
"${MINGW_PACKAGE_PREFIX}-mono"
"git")
provides=("${MINGW_PACKAGE_PREFIX}-monodoc")
conflicts=("${MINGW_PACKAGE_PREFIX}-monodoc")
source=(${_realname}::"git+https://github.com/mono/mono#commit=${_gitcommit}"
#https://github.com/mono/mono/archive/mono-${pkgver}.tar.gz
git+https://github.com/mono/aspnetwebstack
git+https://github.com/mono/Newtonsoft.Json
git+https://github.com/mono/cecil
git+https://github.com/mono/rx
git+https://github.com/mono/ikvm-fork
git+https://github.com/mono/ikdasm
git+https://github.com/mono/reference-assemblies
git+https://github.com/mono/NUnitLite
git+https://github.com/mono/NuGet.BuildTasks
git+https://github.com/mono/boringssl
git+https://github.com/mono/corefx
git+https://github.com/mono/bockbuild
git+https://github.com/mono/linker
git+https://github.com/mono/roslyn-binaries
git+https://github.com/mono/corert
git+https://github.com/mono/xunit-binaries
git+https://github.com/mono/api-doc-tools
git+https://github.com/mono/api-snapshot
0001-mono-5.4.1.7-fix-build.patch
0002-mono-5.4.1.7-avoid-appending-prefix.patch
0003-mono-5.4.1.7-fix-runtime.patch)
sha256sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'04ab8ba5c7ad451b9e9d4bd76a4850afb790212ba73ac65e1e20f05c11de9924'
'772472f89f6884bf90159312a699a6d9768908c217edecd8bace08ab7ca7dceb'
'884d39a412231939ed48b6009fea26ae16a9c1b69f309fa289db071ec0002f28')
pkgver() {
cd ${srcdir}/${_realname}
git describe --always --tags | sed 's/^v//;s/^mono-//;s/\([^-]*-g\)/r\1/;s/-/./g'
}
prepare() {
cd ${srcdir}/${_realname}
git submodule init
git config submodule."external/aspnetwebstack".url "${srcdir}/aspnetwebstack"
git config submodule."external/Newtonsoft.Json".url "${srcdir}/Newtonsoft.Json"
git config submodule."external/cecil".url "${srcdir}/cecil"
git config submodule."external/rx".url "${srcdir}/rx"
git config submodule."external/ikvm".url "${srcdir}/ikvm-fork"
git config submodule."external/ikdasm".url "${srcdir}/ikdasm"
git config submodule."external/reference-assemblies".url "${srcdir}/reference-assemblies"
git config submodule."external/nunit-lite".url "${srcdir}/NUnitLite"
git config submodule."external/nuget-buildtasks".url "${srcdir}/NuGet.BuildTasks"
git config submodule."external/cecil-legacy".url "${srcdir}/cecil"
git config submodule."external/boringssl".url "${srcdir}/boringssl"
git config submodule."external/corefx".url "${srcdir}/corefx"
git config submodule."external/bockbuild".url "${srcdir}/bockbuild"
git config submodule."external/linker".url "${srcdir}/linker"
git config submodule."external/roslyn-binaries".url "${srcdir}/roslyn-binaries"
git config submodule."external/corert".url "${srcdir}/corert"
git config submodule."external/xunit-binaries".url "${srcdir}/xunit-binaries"
git config submodule."external/api-doc-tools".url "${srcdir}/api-doc-tools"
git config submodule."external/api-snapshot".url "${srcdir}/api-snapshot"
git submodule update --recursive
patch -Np1 -i "${srcdir}/0001-mono-5.4.1.7-fix-build.patch"
patch -Np1 -i "${srcdir}/0002-mono-5.4.1.7-avoid-appending-prefix.patch"
patch -Np1 -i "${srcdir}/0003-mono-5.4.1.7-fix-runtime.patch"
NOCONFIGURE=1 ./autogen.sh
}
build() {
[[ -d "${srcdir}"/build-${CARCH} ]] && rm -rf "${srcdir}"/build-${CARCH}
mkdir -p "${srcdir}"/build-${CARCH} && cd "${srcdir}"/build-${CARCH}
cp -R ${srcdir}/${_realname}/. "${srcdir}"/build-${CARCH}
LDFLAGS+=" -fstack-protector"
./configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--target=${MINGW_CHOST} \
--disable-boehm \
--enable-static \
--enable-shared \
--with-mcs-docs=no \
--with-libgdiplus=${MINGW_PREFIX}
make
make -C mcs/jay
}
package() {
cd "${srcdir}"/build-${CARCH}
make DESTDIR="${pkgdir}" install
make -C mcs/jay DESTDIR="${pkgdir}" prefix=${MINGW_PREFIX} install
local PREFIX_WIN=$(cygpath -wm ${MINGW_PREFIX})
# Fix paths in bin directory
for f in ${pkgdir}${MINGW_PREFIX}/bin/{al,al2,caspol,cccheck,ccrewrite,cert2spc,certmgr,cert-sync,chktrust,crlupdate,csc,csharp,csi,disco,dmcs,dtd2rng,dtd2xsd,gacutil,gacutil2,genxs,httpcfg,ikdasm,ilasm,illinkanalyzer,installvst,lc,macpack,makecert,mconfig,mcs,mdassembler,mdbrebase,mdoc,mdoc-assemble,mdoc-export-html,mdoc-export-msxdoc,mdoc-update,mdoc-validate,mdvalidater,mkbundle,mod,mono-api-html,mono-api-info,mono-cil-strip,mono-configuration-crypto,monodocer,monodocs2html,monodocs2slashdoc,mono-find-provides,mono-find-requires,monolinker,monop,monop2,mono-package-runtime,mono-service,mono-service2,mono-shlib-cop,mono-symbolicate,mono-test-install,mono-xmltool,mozroots,pdb2mdb,permview,peverify,resgen,resgen2,secutil,setreg,sgen,signcode,sn,soapsuds,sqlmetal,sqlsharp,svcutil,vbc,wsdl,wsdl2,xbuild,xsd}; do
sed -e "s|${PREFIX_WIN}|${MINGW_PREFIX}|g" -i ${f}
done
mv ${pkgdir}${MINGW_PREFIX}/bin/mono{,.exe}
}