]> gerrit.simantics Code Review - simantics/fmil.git/blobdiff - org.simantics.fmil.core/Dockerfile
Linux 64 support for FMU
[simantics/fmil.git] / org.simantics.fmil.core / Dockerfile
diff --git a/org.simantics.fmil.core/Dockerfile b/org.simantics.fmil.core/Dockerfile
new file mode 100644 (file)
index 0000000..6e917ec
--- /dev/null
@@ -0,0 +1,62 @@
+#First build it:
+#docker build -f Dockerfile -t fmilibrary:build .
+#Then COPY the .so files (and logs) to your org.simantics.fmil.linux64:
+#docker run -v /path/to/org.simantics.fmil.linux64/libraries:/output fmilibrary:build
+
+FROM ubuntu:16.04
+
+MAINTAINER miro.eklund@semantum.fi
+
+ARG fmi='http://www.jmodelica.org/downloads/FMIL/FMILibrary-2.0.3-src.zip'
+
+RUN apt-get update && \
+       apt-get -y upgrade
+
+RUN apt-get install -y wget cmake unzip build-essential patchelf
+
+RUN mkdir /builds && \
+       mkdir /builds/fmilsrc && \
+       mkdir /builds/fmil && \
+       mkdir /builds/fmildebug
+
+RUN wget -O /builds/fmilsrc/fmil.zip $fmi
+
+WORKDIR /builds/fmilsrc
+
+RUN unzip /builds/fmilsrc/fmil.zip && \
+       rm /builds/fmilsrc/fmil.zip
+
+WORKDIR /builds/fmil
+
+RUN rm /builds/fmilsrc/FMILibrary-2.0.3/src/Util/src/FMI/fmi_util.c
+COPY /native/FMUSimulator/fmi_util.c.txt /builds/fmilsrc/FMILibrary-2.0.3/src/Util/src/FMI/fmi_util.c
+
+RUN cat /builds/fmilsrc/FMILibrary-2.0.3/src/Util/src/FMI/fmi_util.c
+
+RUN cmake /builds/fmilsrc/FMILibrary-2.0.3 >> /fmil.log 2>&1
+
+RUN make >> /fmil.log 2>&1
+RUN make install test >> /fmil.log 2>&1
+
+WORKDIR /builds/fmildebug
+
+RUN cmake -DFMILIB_ENABLE_LOG_LEVEL_DEBUG=ON /builds/fmilsrc/FMILibrary-2.0.3 >> /fmildebug.log 2>&1
+
+RUN make >> /fmildebug.log 2>&1
+RUN make install test >> /fmildebug.log 2>&1
+
+COPY native /builds/native
+WORKDIR /builds/native/FMUSimulator
+
+COPY ./linuxbuild/copytovolume.sh /copytovolume.sh
+COPY ./linuxbuild/linuxbuild.sh /linuxbuild.sh
+COPY ./linuxbuild/linuxdebugbuild.sh /linuxdebugbuild.sh
+
+RUN chmod 755 /linuxbuild.sh && \
+       chmod 755 /linuxdebugbuild.sh
+
+RUN /linuxbuild.sh >> /builds/native/fmusimulator.log 2>&1
+RUN /linuxdebugbuild.sh >> /builds/native/fmusimulatordebug.log 2>&1
+
+RUN chmod 755 /copytovolume.sh
+ENTRYPOINT /copytovolume.sh