Several small fixes

* Mono config on MacOSX is not portable from the Linux and Windows
version.
* Rename the compilers so that 'gcc' and 'g++' are the new version by
default.
* Add default environment variables to containers.
This commit is contained in:
Hein-Pieter van Braam
2019-01-17 23:06:38 +01:00
parent 736a387fc4
commit e5d6158b9e
7 changed files with 74 additions and 12 deletions

View File

@@ -7,4 +7,7 @@ RUN dnf -y install scons java-1.8.0-openjdk-devel ncurses-compat-libs unzip whic
yes | tools/bin/sdkmanager --licenses && \
tools/bin/sdkmanager ndk-bundle 'platforms;android-23' 'build-tools;19.1.0' 'build-tools;28.0.3' 'platforms;android-28'
ENV ANDROID_HOME=/root/
ENV ANDROID_NDK_ROOT=/root/ndk-bundle/
CMD ['/bin/bash']

View File

@@ -16,4 +16,6 @@ RUN dnf -y install automake autoconf clang gcc gcc-c++ gcc-objc gcc-objc++ cmake
mkdir /root/ioscross/x86_64/usr && \
ln -s /root/ioscross/x86_64/bin /root/ioscross/x86_64/usr/bin
ENV OSXCROSS_IOS=not_nothing
CMD ['/bin/bash']

View File

@@ -44,6 +44,10 @@ RUN dnf -y install automake autoconf bzip2-devel clang git libicu-devel libtool
ln -s /usr/bin/mono-sgen /root/dependencies/mono/bin/mono-sgen && \
ln -sf /usr/lib/mono/* /root/dependencies/mono/lib/mono ;\
cp -rvp /etc/mono /root/dependencies/mono/etc && \
cp /root/files/mono-config-macosx /root/dependencies/mono/etc/config && \
rm -rf /root/mono-${mono_version} /root/apple-libtapi /root/cctools-port
ENV MONO64_PREFIX=/root/dependencies/mono
ENV OSXCROSS_ROOT=/root/osxcross
CMD ['/bin/bash']

View File

@@ -6,14 +6,19 @@ RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mand
RUN apt-get update && \
apt-get -y install wget && \
cd /root && \
wget -O- 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x1E9377A2BA9EF27F' | apt-key add - && \
echo 'deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main' >> /etc/apt/sources.list && \
apt-get update && \
apt-get install -y gcc-8 g++-8 libudev-dev libx11-dev libxcursor-dev libxrandr-dev libasound2-dev libpulse-dev \
libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libxi-dev libxinerama-dev git scons cmake perl make bzip2 && \
ln -sf /usr/bin/gcc-ranlib-8 /usr/bin/gcc-ranlib && \
ln -sf /usr/bin/gcc-ar-8 /usr/bin/gcc-ar && \
ln -sf /usr/bin/gcc-8 /usr/bin/gcc && \
ln -sf /usr/bin/g++-8 /usr/bin/g++ && \
wget -O- https://download.mono-project.com/sources/mono/mono-${mono_version}.tar.bz2 | tar xj && \
cd mono-${mono_version} && \
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib/mono --disable-boehm --host=i386-linux-gnu CC=gcc-8 CXX=g++-8 && \
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib/mono --disable-boehm --host=i386-linux-gnu && \
make -j && \
make install && \
cert-sync /etc/ssl/certs/ca-certificates.crt && \
@@ -27,11 +32,9 @@ RUN apt-get update && \
apt-get clean && \
rm -rf /var/lib/apt/lists/ && \
rm *.deb && \
ln -sf /usr/bin/gcc-ranlib-8 /usr/bin/gcc-ranlib && \
ln -sf /usr/bin/gcc-ar-8 /usr/bin/gcc-ar && \
rm -rf /root/${mono_version}
rm -rf /root/mono-${mono_version}
ENV CC=gcc-8
ENV CXX=g++-8
ENV MONO32_PREFIX=/usr
ENV MONO64_PREFIX=/usr
CMD ['/bin/bash']

View File

@@ -6,14 +6,19 @@ RUN if [ -z "${mono_version}" ]; then echo -e "\n\nargument mono-version is mand
RUN apt-get update && \
apt-get -y install wget && \
cd /root && \
wget -O- 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x1E9377A2BA9EF27F' | apt-key add - && \
echo 'deb http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu trusty main' >> /etc/apt/sources.list && \
apt-get update && \
apt-get install -y gcc-8 g++-8 libudev-dev libx11-dev libxcursor-dev libxrandr-dev libasound2-dev libpulse-dev \
libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libxi-dev libxinerama-dev git scons cmake perl make bzip2 && \
ln -sf /usr/bin/gcc-ranlib-8 /usr/bin/gcc-ranlib && \
ln -sf /usr/bin/gcc-ar-8 /usr/bin/gcc-ar && \
ln -sf /usr/bin/gcc-8 /usr/bin/gcc && \
ln -sf /usr/bin/g++-8 /usr/bin/g++ && \
wget -O- https://download.mono-project.com/sources/mono/mono-${mono_version}.tar.bz2 | tar xj && \
cd mono-${mono_version} && \
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib/mono --disable-boehm --host=x86_64-linux-gnu CC=gcc-8 CXX=g++-8 && \
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var/lib/mono --disable-boehm --host=x86_64-linux-gnu && \
make -j && \
make install && \
cert-sync /etc/ssl/certs/ca-certificates.crt && \
@@ -27,11 +32,9 @@ RUN apt-get update && \
apt-get clean && \
rm -rf /var/lib/apt/lists/ && \
rm *.deb && \
ln -sf /usr/bin/gcc-ranlib-8 /usr/bin/gcc-ranlib && \
ln -sf /usr/bin/gcc-ar-8 /usr/bin/gcc-ar && \
rm -rf /root/${mono_version}
rm -rf /root/mono-${mono_version}
ENV CC=gcc-8
ENV CXX=g++-8
ENV MONO32_PREFIX=/usr
ENV MONO64_PREFIX=/usr
CMD ['/bin/bash']

View File

@@ -29,4 +29,7 @@ RUN dnf -y install scons mingw32-gcc mingw32-gcc-c++ mingw32-winpthreads-static
cp -rvp /etc/mono /root/dependencies/mono-32/etc && \
rm -rf /root/mono-${mono_version}
ENV MONO32_PREFIX=/root/dependencies/mono-32
ENV MONO64_PREFIX=/root/dependencies/mono-64
CMD ['/bin/bash']

44
files/mono-config-macosx Normal file
View File

@@ -0,0 +1,44 @@
<configuration>
<dllmap dll="i:cygwin1.dll" target="libc.dylib" os="!windows" />
<dllmap dll="libc" target="libc.dylib" os="!windows"/>
<dllmap dll="intl" target="libintl.dylib" os="!windows"/>
<dllmap dll="intl" name="bind_textdomain_codeset" target="libc.dylib" os="solaris"/>
<dllmap dll="libintl" name="bind_textdomain_codeset" target="libc.dylib" os="solaris"/>
<dllmap dll="libintl" target="libintl.dylib" os="!windows"/>
<dllmap dll="i:libxslt.dll" target="libxslt.dylib" os="!windows"/>
<dllmap dll="i:odbc32.dll" target="libodbc.dylib" os="!windows"/>
<dllmap dll="i:odbc32.dll" target="libiodbc.dylib" os="osx"/>
<dllmap dll="oci" target="libclntsh.dylib" os="!windows"/>
<dllmap dll="db2cli" target="libdb2_36.dylib" os="!windows"/>
<dllmap dll="MonoPosixHelper" target="$mono_libdir/libMonoPosixHelper.dylib" os="!windows" />
<dllmap dll="System.Native" target="$mono_libdir/libmono-system-native.dylib" os="!windows" />
<dllmap dll="libmono-btls-shared" target="$mono_libdir/libmono-btls-shared.dylib" os="!windows" />
<dllmap dll="i:msvcrt" target="libc.dylib" os="!windows"/>
<dllmap dll="i:msvcrt.dll" target="libc.dylib" os="!windows"/>
<dllmap dll="sqlite" target="libsqlite.0.dylib" os="!windows"/>
<dllmap dll="sqlite3" target="libsqlite3.0.dylib" os="!windows"/>
<dllmap dll="libX11" target="libX11.dylib" os="!windows" />
<dllmap dll="libgdk-x11-2.0" target="libgdk-x11-2.0.dylib" os="!windows"/>
<dllmap dll="libgdk_pixbuf-2.0" target="libgdk_pixbuf-2.0.so.0" os="!windows"/>
<dllmap dll="libgtk-x11-2.0" target="libgtk-x11-2.0.dylib" os="!windows"/>
<dllmap dll="libglib-2.0" target="libglib-2.0.so.0" os="!windows"/>
<dllmap dll="libgobject-2.0" target="libgobject-2.0.so.0" os="!windows"/>
<dllmap dll="libgnomeui-2" target="libgnomeui-2.so.0" os="!windows"/>
<dllmap dll="librsvg-2" target="librsvg-2.so.2" os="!windows"/>
<dllmap dll="libXinerama" target="libXinerama.so.1" os="!windows" />
<dllmap dll="libasound" target="libasound.so.2" os="!windows" />
<dllmap dll="libcairo-2.dll" target="libcairo.so.2" os="!windows"/>
<dllmap dll="libcairo-2.dll" target="libcairo.2.dylib" os="osx"/>
<dllmap dll="libcups" target="libcups.so.2" os="!windows"/>
<dllmap dll="libcups" target="libcups.dylib" os="osx"/>
<dllmap dll="i:kernel32.dll">
<dllentry dll="__Internal" name="CopyMemory" target="mono_win32_compat_CopyMemory"/>
<dllentry dll="__Internal" name="FillMemory" target="mono_win32_compat_FillMemory"/>
<dllentry dll="__Internal" name="MoveMemory" target="mono_win32_compat_MoveMemory"/>
<dllentry dll="__Internal" name="ZeroMemory" target="mono_win32_compat_ZeroMemory"/>
</dllmap>
<dllmap dll="gdiplus" target="libgdiplus.dylib" os="!windows"/>
<dllmap dll="gdiplus.dll" target="libgdiplus.dylib" os="!windows"/>
<dllmap dll="gdi32" target="libgdiplus.dylib" os="!windows"/>
<dllmap dll="gdi32.dll" target="libgdiplus.dylib" os="!windows"/>
</configuration>