aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2018-08-09 07:50:09 +0700
committerVadim Yanitskiy <axilirator@gmail.com>2018-08-09 17:36:27 +0700
commitb642b8688d510f8de4c21f58a9dd3c9d68c387a5 (patch)
tree1e4e7c09143e04c03fa7acf56931f05d21055c0b
parentc2b32af8bca785bae14bb99f3f6265904055d17d (diff)
Introduce Dockerfile for the GR-GSM project
This change introduces a new sub-project - 'gr-gsm-master'. It was decided to use Arch Linux as the base image, because it provides the recent version of both UHD and GNU Radio without tons of dependencies, such as Xorg. Note: as there in no libosmocore package in Arch Linux, it will be built from the latest source code. Change-Id: I115b59dc9eaec5d132f3f64c4ee321173459e9ed
-rw-r--r--Makefile4
-rw-r--r--gr-gsm-master/.release2
-rw-r--r--gr-gsm-master/Dockerfile81
-rw-r--r--gr-gsm-master/Makefile1
4 files changed, 88 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 2cdbc58..f82e3f5 100644
--- a/Makefile
+++ b/Makefile
@@ -68,3 +68,7 @@ sua-test: osmo-stp-master
.PHONY: m3ua-test
m3ua-test: osmo-stp-master sigtran-tests
$(MAKE) -C m3ua-test
+
+.PHONY: gr-gsm-master
+gr-gsm-master:
+ $(MAKE) -C gr-gsm-master
diff --git a/gr-gsm-master/.release b/gr-gsm-master/.release
new file mode 100644
index 0000000..3e94f0e
--- /dev/null
+++ b/gr-gsm-master/.release
@@ -0,0 +1,2 @@
+release=0.0.0
+tag=gr-gsm-master-0.0.0
diff --git a/gr-gsm-master/Dockerfile b/gr-gsm-master/Dockerfile
new file mode 100644
index 0000000..e75d318
--- /dev/null
+++ b/gr-gsm-master/Dockerfile
@@ -0,0 +1,81 @@
+FROM base/archlinux
+
+MAINTAINER Vadim Yanitskiy <axilirator@gmail.com>
+
+ARG LIBOSMOCORE_BRANCH="master"
+ARG GR_GSM_BRANCH="fixeria/trx"
+
+# Build dependencies
+ENV BUILD_DEPS \
+ automake \
+ autoconf \
+ libtool \
+ pkgconf \
+ cmake \
+ make \
+ swig \
+ gcc
+
+# Sync pacman
+RUN pacman -Syu
+
+# Install persistent packages
+RUN pacman -S --needed --noconfirm \
+ gnuradio \
+ python2 \
+ python2-scipy \
+ python2-requests \
+ talloc \
+ boost
+
+# Download USRP firmware
+RUN uhd_images_downloader
+
+# Install build dependencies
+RUN pacman -S --needed --noconfirm \
+ $BUILD_DEPS
+
+# Make Python2 default
+RUN ln -s /usr/bin/python2 /usr/bin/python
+
+# Install and configure git
+RUN pacman -S --needed --noconfirm git \
+ && git config --global user.email docker@dock.er \
+ && git config --global user.name "Dock Er"
+
+WORKDIR /tmp
+
+# Download, build and install libosmocore
+RUN git clone git://git.osmocom.org/libosmocore
+ADD http://git.osmocom.org/libosmocore/patch?h=$LIBOSMOCORE_BRANCH /tmp/commit-libosmocore
+
+RUN cd libosmocore \
+ && git fetch && git checkout -f -B $LIBOSMOCORE_BRANCH origin/$LIBOSMOCORE_BRANCH \
+ && autoreconf -fi \
+ && ./configure \
+ --disable-doxygen \
+ --disable-pcsc \
+ --prefix=/usr \
+ && make -j5 \
+ && make install \
+ && make distclean
+
+RUN git clone git://git.osmocom.org/gr-gsm
+ADD http://git.osmocom.org/gr-gsm/patch?h=$GR_GSM_BRANCH /tmp/commit-gr-gsm
+
+RUN cd gr-gsm \
+ && git fetch && git checkout -f -B $GR_GSM_BRANCH origin/$GR_GSM_BRANCH \
+ && mkdir build/ \
+ && cd build/ \
+ && cmake \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -Wno-dev \
+ ../ \
+ && make -j5 \
+ && make install \
+ && cd ../ \
+ && rm -rf build/
+
+# Remove build dependencies
+RUN pacman -Rs --noconfirm \
+ $BUILD_DEPS
diff --git a/gr-gsm-master/Makefile b/gr-gsm-master/Makefile
new file mode 100644
index 0000000..8d0e10b
--- /dev/null
+++ b/gr-gsm-master/Makefile
@@ -0,0 +1 @@
+include ../make/Makefile