2017-05-26 14:11:47 -07:00
|
|
|
FROM ubuntu:16.04
|
|
|
|
|
|
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
|
|
|
2017-06-12 22:45:07 -07:00
|
|
|
# Prepare apt-get
|
2017-05-26 14:11:47 -07:00
|
|
|
RUN apt-get update && apt-get -y --no-install-recommends install software-properties-common
|
|
|
|
|
|
|
|
# Add Mraa Repository
|
|
|
|
RUN add-apt-repository ppa:mraa/mraa && \
|
|
|
|
# Update apt-get
|
|
|
|
apt-get -y update && \
|
|
|
|
# Install apt-utils
|
|
|
|
apt-get -y --no-install-recommends install apt-utils && \
|
|
|
|
# Main Build Dependencies
|
2017-06-15 09:35:12 -07:00
|
|
|
apt-get -y --no-install-recommends install git build-essential cmake swig clang-3.8 gcc-4.8 g++-4.8 libpthread-stubs0-dev pkg-config wget unzip \
|
2017-05-26 14:11:47 -07:00
|
|
|
# Mraa Build Dependencies
|
|
|
|
libmraa1 libmraa-dev mraa-tools python-mraa python3-mraa libmraa-java \
|
|
|
|
# Docs Build Dependencies
|
|
|
|
python-sphinx doxygen graphviz \
|
|
|
|
# Python Build Dependencies
|
2017-05-30 09:11:11 -07:00
|
|
|
python python-dev python3 python3-dev python-pip python3-pip \
|
2017-05-26 14:11:47 -07:00
|
|
|
# Java Build Dependencies
|
2017-05-29 09:58:51 -07:00
|
|
|
default-jre default-jdk \
|
2017-05-26 14:11:47 -07:00
|
|
|
# Sensor Specific Build Dependencies
|
2017-05-31 13:29:52 -07:00
|
|
|
libjpeg-dev
|
|
|
|
|
2017-06-02 08:51:16 -07:00
|
|
|
# Configure Compiler Environment
|
|
|
|
ARG CC
|
|
|
|
ARG CXX
|
|
|
|
ENV CC $CC
|
|
|
|
ENV CXX $CXX
|
|
|
|
|
2017-06-15 09:35:12 -07:00
|
|
|
# Install GCC6 too
|
|
|
|
RUN add-apt-repository ppa:ubuntu-toolchain-r/test && \
|
|
|
|
apt-get update && \
|
|
|
|
apt-get -y --no-install-recommends install gcc-6 g++-6
|
|
|
|
|
2017-06-01 07:56:49 -07:00
|
|
|
# Configure Java Home
|
|
|
|
ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/
|
|
|
|
|
2017-05-31 13:29:52 -07:00
|
|
|
# Install libbacnet 0.3.12
|
|
|
|
RUN wget https://downloads.sourceforge.net/project/bacnet/bacnet-stack/bacnet-stack-0.8.3/bacnet-stack-0.8.3.zip && \
|
2017-06-01 07:56:49 -07:00
|
|
|
unzip -qq bacnet-stack-0.8.3.zip && cd bacnet-stack-0.8.3 && \
|
2017-05-31 13:29:52 -07:00
|
|
|
BACDL_DEFINE=-DBACDL_MSTP=1 MAKE_DEFINE=-fPIC make clean all
|
|
|
|
|
|
|
|
# Install libmodbus 3.1.4
|
|
|
|
RUN wget http://libmodbus.org/releases/libmodbus-3.1.4.tar.gz && \
|
|
|
|
tar xf libmodbus-3.1.4.tar.gz && cd libmodbus-3.1.4 && \
|
2017-06-02 08:06:58 -07:00
|
|
|
./configure && make -j8 && make install
|
2017-05-29 09:58:51 -07:00
|
|
|
|
|
|
|
# Install openzwave
|
|
|
|
RUN apt-get update && apt-get -y --no-install-recommends install libudev-dev && \
|
2017-06-15 09:35:12 -07:00
|
|
|
git clone --depth 1 https://github.com/OpenZWave/open-zwave.git && cd open-zwave && make -j8 install && \
|
|
|
|
echo "/usr/local/lib64" >> /etc/ld.so.conf.d/openzwave.conf
|
2017-05-26 14:11:47 -07:00
|
|
|
|
2017-06-12 22:45:07 -07:00
|
|
|
# Using a custom SWIG version
|
|
|
|
# RUN wget https://downloads.sourceforge.net/project/swig/swig/swig-3.0.10/swig-3.0.10.tar.gz && \
|
|
|
|
## tar xf swig-3.0.10.tar.gz && cd swig-3.0.10 && \
|
|
|
|
## apt-get update && apt-get -y --no-install-recommends install libpcre3 libpcre3-dev && \
|
|
|
|
## ./configure --prefix=/usr/ && make && make install && cd ..
|
2017-05-26 14:11:47 -07:00
|
|
|
|
|
|
|
# Node.js Build Dependencies
|
|
|
|
RUN wget -q -O - https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
|
|
|
|
ARG NODE_VERSION
|
|
|
|
ENV NVM_DIR /root/.nvm
|
|
|
|
RUN . $NVM_DIR/nvm.sh && nvm install $NODE_VERSION && nvm use $NODE_VERSION && \
|
|
|
|
npm install -g node-gyp && node-gyp install
|
|
|
|
|
2017-05-30 09:11:11 -07:00
|
|
|
# Install Test Dependencies
|
|
|
|
RUN pip install chardet && pip3 install chardet
|
|
|
|
|
2017-05-26 14:11:47 -07:00
|
|
|
# Set Workdir
|
|
|
|
WORKDIR /usr/src/app
|
|
|
|
|
|
|
|
# Configure Build Arguments
|
|
|
|
ARG BUILDDOC
|
|
|
|
ARG BUILDCPP
|
|
|
|
ARG BUILDFTI
|
|
|
|
ARG BUILDSWIGPYTHON
|
|
|
|
ARG BUILDSWIGNODE
|
|
|
|
ARG BUILDSWIGJAVA
|
|
|
|
ARG BUILDEXAMPLES
|
|
|
|
ARG IPK
|
|
|
|
ARG RPM
|
|
|
|
ARG NPM
|
|
|
|
ARG BUILDTESTS
|
|
|
|
ARG WERROR
|
|
|
|
|
|
|
|
# Copy sources
|
|
|
|
COPY . .
|
|
|
|
|
2017-05-31 13:29:52 -07:00
|
|
|
# Temp solution for libbacnet install
|
|
|
|
COPY bacnet/libbacnet.pc /usr/lib/pkgconfig/libbacnet.pc
|
|
|
|
RUN cp /bacnet-stack-0.8.3/lib/libbacnet.a /usr/lib/libbacnet.a
|
|
|
|
RUN mkdir /usr/include/bacnet && cp /bacnet-stack-0.8.3/include/* /usr/include/bacnet/
|
|
|
|
|
2017-05-26 14:11:47 -07:00
|
|
|
# Change Workdir to build directory
|
|
|
|
WORKDIR /usr/src/app/build
|
|
|
|
|
|
|
|
# Run cmake
|
|
|
|
RUN . $NVM_DIR/nvm.sh && cmake \
|
|
|
|
-DSWIG_EXECUTABLE=/usr/bin/swig \
|
2017-06-12 22:45:07 -07:00
|
|
|
# -DSWIG_DIR:PATH=/usr/share/swig/3.0.10/ \
|
2017-05-26 14:11:47 -07:00
|
|
|
-DBUILDDOC=$BUILDDOC \
|
2017-06-02 08:06:58 -07:00
|
|
|
-DBUILDCPP=$BUILDCPP \
|
|
|
|
-DBUILDFTI=$BUILDFTI \
|
2017-05-26 14:11:47 -07:00
|
|
|
-DBUILDSWIGPYTHON=$BUILDSWIGPYTHON \
|
|
|
|
-DBUILDSWIGNODE=$BUILDSWIGNODE \
|
|
|
|
-DBUILDSWIGJAVA=$BUILDSWIGJAVA \
|
|
|
|
-DBUILDEXAMPLES=$BUILDEXAMPLES \
|
|
|
|
-DIPK=$IPK \
|
|
|
|
-DRPM=$RPM \
|
|
|
|
-DNPM=$NPM \
|
|
|
|
-DBUILDTESTS=$BUILDTESTS \
|
|
|
|
-DWERROR=$WERROR \
|
|
|
|
..
|
|
|
|
|
|
|
|
CMD make
|