diff --git a/contrib/src/opus/SHA512SUMS b/contrib/src/opus/SHA512SUMS
new file mode 100644
index 0000000000000000000000000000000000000000..ec92aedaf3dd3ce77fd59ffdcdc5d92467248a3d
--- /dev/null
+++ b/contrib/src/opus/SHA512SUMS
@@ -0,0 +1 @@
+b603efe66d65ef38dbcd0d2bbf213a1d15fa456aee00eca73e99abe4ec78668ed82e661ca7a69e9af4e0bc39e1aa76c4151b7f9840ff621ddcfd69f596cf2ba9  opus-1.1.tar.gz
diff --git a/contrib/src/opus/rules.mak b/contrib/src/opus/rules.mak
new file mode 100644
index 0000000000000000000000000000000000000000..cab22432f71bc0278e0391a7536546c1bd73c320
--- /dev/null
+++ b/contrib/src/opus/rules.mak
@@ -0,0 +1,29 @@
+# OPUS
+
+OPUS_VERSION := 1.1
+OPUS_URL := http://downloads.xiph.org/releases/opus/opus-$(OPUS_VERSION).tar.gz
+
+PKGS += opus
+ifeq ($(call need_pkg,"opus >= 0.9.14"),)
+PKGS_FOUND += opus
+endif
+
+$(TARBALLS)/opus-$(OPUS_VERSION).tar.gz:
+	$(call download,$(OPUS_URL))
+
+.sum-opus: opus-$(OPUS_VERSION).tar.gz
+
+opus: opus-$(OPUS_VERSION).tar.gz .sum-opus
+	$(UNPACK)
+	$(UPDATE_AUTOCONFIG)
+	$(MOVE)
+
+OPUS_CONF=
+ifndef HAVE_FPU
+OPUS_CONF += --enable-fixed-point
+endif
+
+.opus: opus
+	cd $< && $(HOSTVARS) ./configure $(HOSTCONF) $(OPUS_CONF)
+	cd $< && $(MAKE) install
+	touch $@