# HG changeset patch # User Chris Cannam # Date 1549370939 0 # Node ID 76badb3a0bb3f8090bb8ba75e1473dae4bcee548 # Parent d5220acc1403290ead094a0601c917f4b18691cf Add mechanism to build a "standard" Linux .so using Docker diff -r d5220acc1403 -r 76badb3a0bb3 .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Tue Feb 05 12:48:59 2019 +0000 @@ -0,0 +1,8 @@ +syntax: glob +*~ +*.pyc +*.so +*.orig + + + diff -r d5220acc1403 -r 76badb3a0bb3 Dockerfile.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Dockerfile.in Tue Feb 05 12:48:59 2019 +0000 @@ -0,0 +1,20 @@ +FROM ubuntu:16.04 +MAINTAINER Chris Cannam +RUN apt-get update && \ + apt-get install -y \ + build-essential \ + libsndfile-dev \ + git \ + mercurial \ + curl wget \ + python libpython2.7-dev python-numpy +RUN apt-cache search python +RUN apt-get clean && rm -rf /var/lib/apt/lists/* +RUN hg clone -r[[REVISION]] https://code.soundsoftware.ac.uk/hg/vampy +RUN hg clone https://code.soundsoftware.ac.uk/hg/vamp-plugin-sdk +WORKDIR vamp-plugin-sdk +RUN ./configure +RUN make -j3 +WORKDIR ../vampy +RUN make -f Makefile.linux + diff -r d5220acc1403 -r 76badb3a0bb3 dockerbuild.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dockerbuild.sh Tue Feb 05 12:48:59 2019 +0000 @@ -0,0 +1,32 @@ +#!/bin/bash +# +# Docker required! + +set -eu + +current=$(hg id | awk '{ print $1; }') + +case "$current" in + *+) echo "WARNING: Current working copy has been modified - build will check out the last commit, which must perforce be different";; + *);; +esac + +current=${current%%+} + +rm -f vampy.so + +cat Dockerfile.in | perl -p -e 's/\[\[REVISION\]\]/'"$current"'/' > Dockerfile + +dockertag="cannam/vampy-$current" + +sudo docker build -t "$dockertag" -f Dockerfile . + +container=$(sudo docker create "$dockertag") +sudo docker cp "$container":vampy/vampy.so . +sudo docker rm "$container" + +ldd vampy.so +VAMP_PATH=".:./Example VamPy plugins" ../vamp-plugin-sdk/host/vamp-simple-host -l + +echo "Done!" +