diff --git a/contrib/src/opus/SHA512SUMS b/contrib/src/opus/SHA512SUMS
new file mode 100644
index 0000000000000000000000000000000000000000..eb0326a073ee15765f560a0aed18ebaac6db85cc
--- /dev/null
+++ b/contrib/src/opus/SHA512SUMS
@@ -0,0 +1 @@
+62450dd3009c0ca5dd26ce4cb14a4334d5ff4348b1615efab45203a806846f1ba8cbd1e36ea5e565b1b422bd26d814e28678917410b006b0f18c6bf6f0944996  opus-1.0.1-rc.tar.gz
diff --git a/contrib/src/opus/rules.mak b/contrib/src/opus/rules.mak
new file mode 100644
index 0000000000000000000000000000000000000000..fa759438132c6861360be243d448a9da0bb9dd29
--- /dev/null
+++ b/contrib/src/opus/rules.mak
@@ -0,0 +1,30 @@
+# opus
+
+OPUS_VERSION := 1.0.1-rc
+
+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 $@