3 REPODIR=$(dirname $(realpath $0))/../repos/managed-components
7 echo "$(date "+%F@%T") :: $1" 1>&2
13 echo "$(date "+%F@%T") :: $1"
19 report "Downloading Xar"
20 wget --quiet -O ${REPODIR}/xar.tar.gz https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/xar/xar-1.5.2.tar.gz || error "*** Could not download Xar ***"
21 report "Copying Mono MDK for Mac"
22 cp ${2} ${REPODIR}/mono.xar
28 report "Deleting interstitial output"
29 rm -rf ${REPODIR}/mono-mac \
31 ${REPODIR}/Distribution \
33 ${REPODIR}/Resources \
35 ${REPODIR}/../../tmp/mono-mac
42 if [ ! -x "${REPODIR}/xar/src/xar" ]
43 then report "Building Xar"
45 tar xf xar.tar.gz -C xar/ --strip-components=1
51 report "Unpacking Mono for Mac"
52 xar/src/xar -x -f mono.xar
53 zcat mono.pkg/Payload | bsdcpio -i
54 mv Library/Frameworks/Mono.framework/Versions/5.* mono-mac
60 rsync -a --copy-links ${REPODIR}/mono-mac/lib/xsp ${REPODIR}/../../tmp/mono/lib/
61 rsync -a --copy-links ${REPODIR}/mono-mac/lib/mono/Microsoft* ${REPODIR}/../../tmp/mono/lib/mono/
62 rsync -a --copy-links ${REPODIR}/mono-mac/lib/mono/msbuild ${REPODIR}/../../tmp/mono/lib/mono/
63 rsync -a --copy-links ${REPODIR}/mono-mac/lib/mono/nuget ${REPODIR}/../../tmp/mono/lib/mono/
64 rsync -a --copy-links ${REPODIR}/mono-mac/lib/mono/xbuild-frameworks ${REPODIR}/../../tmp/mono/lib/mono/
65 rsync -a --copy-links ${REPODIR}/mono-mac/lib/mono/gac/FSharp.Core/4.4.1.0__b03f5f7f11d50a3a/FSharp* ${REPODIR}/../../tmp/mono/lib/mono/4.5/
66 rsync -a --copy-links ${REPODIR}/mono-mac/lib/mono/gac/nunit*/2.4.8.0__96d09a1eb7f44a77/*.dll* ${REPODIR}/../../tmp/mono/lib/mono/4.5/
67 rsync -a --copy-links ${REPODIR}/mono-mac/lib/mono/4.5/Microsoft.VisualBasic.dll ${REPODIR}/../../tmp/mono/lib/mono/4.5/
68 rsync -a --copy-links ${REPODIR}/mono-mac/lib/mono/4.5/Mono.Cecil.VB* ${REPODIR}/../../tmp/mono/lib/mono/4.5/
69 rsync -a --copy-links ${REPODIR}/mono-mac/lib/mono/4.5/Mono.WebServer2.dll ${REPODIR}/../../tmp/mono/lib/mono/4.5/
70 rsync -a --copy-links ${REPODIR}/mono-mac/lib/mono/4.5/vbnc.* ${REPODIR}/../../tmp/mono/lib/mono/4.5/
71 rsync -a --copy-links ${REPODIR}/mono-mac/lib/mono/4.5/xsp4.exe ${REPODIR}/../../tmp/mono/lib/mono/4.5/
72 rsync -a --copy-links ${REPODIR}/mono-mac/lib/mono/fsharp ${REPODIR}/../../tmp/mono/lib/mono/
73 rsync -a --copy-links ${REPODIR}/mono-mac/lib/mono/4.0-api/Microsoft.VisualBasic.dll ${REPODIR}/../../tmp/mono/lib/mono/4.0-api/
74 rsync -a --copy-links ${REPODIR}/mono-mac/bin/fsharp* ${REPODIR}/../../tmp/mono/bin/
75 rsync -a --copy-links ${REPODIR}/mono-mac/bin/xsp* ${REPODIR}/../../tmp/mono/bin/
76 rsync -a --copy-links ${REPODIR}/mono-mac/bin/nuget ${REPODIR}/../../tmp/mono/bin/
77 rsync -a --copy-links ${REPODIR}/mono-mac/bin/msbuild ${REPODIR}/../../tmp/mono/bin/
78 sed -i 's#/Library.*mono#../..#' ${REPODIR}/../../tmp/mono/lib/mono/Microsoft\ F\#/v4.*/*
79 sed -i 's#/Library.*mono#../../../../..#' ${REPODIR}/../../tmp/mono/lib/mono/Microsoft\ SDKs/F\#/3.*/Framework/v4.*/*
80 rsync -a --copy-links ${REPODIR}/../../tmp/mono/lib/mono/Microsoft\ F\#/v4.0/* ${REPODIR}/../../tmp/mono/lib/mono/Microsoft\ F\#/v4.0/
81 rsync -a --copy-links ${REPODIR}/../../tmp/mono/lib/mono/Microsoft\ SDKs/F\#/3.0/Framework/v4.0/* ${REPODIR}/../../tmp/mono/lib/mono/Microsoft\ SDKs/F\#/3.0/Framework/v4.0/
82 rsync -a --copy-links ${REPODIR}/../../tmp/mono/lib/mono/Microsoft\ SDKs/F\#/3.1/Framework/v4.0/* ${REPODIR}/../../tmp/mono/lib/mono/Microsoft\ SDKs/F\#/3.1/Framework/v4.0/
83 rsync -a --copy-links ${REPODIR}/../../tmp/mono/lib/mono/Microsoft\ SDKs/F\#/4.0/Framework/v4.0/* ${REPODIR}/../../tmp/mono/lib/mono/Microsoft\ SDKs/F\#/4.0/Framework/v4.0/
84 rsync -a --copy-links ${REPODIR}/../../tmp/mono/lib/mono/Microsoft\ SDKs/F\#/4.1/Framework/v4.0/* ${REPODIR}/../../tmp/mono/lib/mono/Microsoft\ SDKs/F\#/4.1/Framework/v4.0/
85 pushd ${REPODIR}/../../tmp/mono/bin
87 for i in xsp2 xsp4 fsharpc fsharpi fsharpiAnyCpu nuget msbuild
88 do echo "Processing $i"
89 sed -i 's#/Library.*mono #\"\$\{BASH_SOURCE%/\*\}\"/mono #' $i
90 sed -i 's#/Library.*cli #\"\$\{BASH_SOURCE%/\*\}\"/cli #' $i
91 if [ -n "$(grep -hoE '[\" ]/Library.*\.(exe|dll)' $i)" ]
92 then EXENAME=$(basename `grep -hoE -m 1 '[\" ]/Library.*\.(exe|dll)' $i | sed 's/^\"//'`)
93 RUNTIME=$(dirname `grep -hoE -m 1 '[\" ]/Library.*\.(exe|dll)' $i` | sed 's/^\"//' | sed 's#/Library.*/[0-9]\+\.[0-9]\+\.[0-9]\+/lib/##' | sed '/^mono\//! s#^#..\\\\#' | sed 's#^mono/##')
94 sed "s#@@RUNTIME@@#${RUNTIME}\\\\#g" ${REPODIR}/../../resources/wrapper.bat > $i.bat
95 sed -i "s#@@COMMAND@@#${EXENAME}#g" $i.bat
96 sed -i 's#/#\\#g' $i.bat
98 sed -i 's#/Library.*/[0-9]\+\.[0-9]\+\.[0-9]\+/lib/#\"\$\(cygpath -w \"\$\{BASH_SOURCE%/\*\}\"/../lib/\)\"#g#' $i
99 sed -i 's#\"\"#\"#g' $i
100 sed -i 's#)\"#)#g' $i
101 sed -i 's#exe #exe\" #' $i
102 sed -i 's#dll #dll\" #' $i
103 sed -i 's#basename \$0#basename \"\$0\"#' $i
109 for i in lib/mono/4.5/Mono.Cecil.VB*.dll lib/mono/4.5/Microsoft.VisualBasic.dll lib/mono/*/xsp*.exe lib/mono/*/FSharp*.dll lib/mono/*/Mono.WebServer*.dll ../../repos/managed-components/mono-mac/lib/mono/gac/FSharp.Core/4.3*/FSharp.Core.dll ../../repos/managed-components/mono-mac/lib/mono/gac/FSharp.Core/4.4.0*/FSharp.Core.dll
112 rsync -a --copy-links lib/mono/4.5/FSharp.Core.*data lib/mono/gac/FSharp.Core/4.4.1.0__*/
113 rsync -a --copy-links lib/mono/4.5/FSharp.Core.*data lib/mono/gac/FSharp.Core/4.4.0.0__*/
114 rsync -a --copy-links lib/mono/4.5/FSharp.Core.*data lib/mono/gac/FSharp.Core/4.3.1.0__*/
115 rsync -a --copy-links lib/mono/4.5/FSharp.Core.*data lib/mono/gac/FSharp.Core/4.3.0.0__*/
121 which bsdcpio 2>/dev/null || error "*** bsdcpio is not in \$PATH ***"
122 which wget 2>/dev/null || error "*** wget is not in \$PATH ***"
123 which xml2-config 2>/dev/null || error "*** xml2-config is not in \$PATH ***"
124 if [ ! -e "/usr/include/openssl/crypto.h" ]
125 then error "*** openssl-devel is not installed ***"