diff --git a/externals/Makefile b/externals/Makefile
index ed1f995094d4f0aea7569cb245a2619797ba694e..897ecd5e1554dec1a9adfc90f569fbaa6571efa0 100644
--- a/externals/Makefile
+++ b/externals/Makefile
@@ -1103,6 +1103,36 @@ loaders-libdir_install:
 loaders-libdir_clean:
 	make -C $(externals_src)/loaders/libdir clean
 
+#------------------------------------------------------------------------------#
+# LYON
+LYON_NAME=lyon
+
+lyon:
+	make -C $(externals_src)/$(LYON_NAME)
+
+lyon_install:
+	install -d $(DESTDIR)$(objectsdir)/$(LYON_NAME)
+	install -p $(wildcard $(externals_src)/$(LYON_NAME)/*.$(EXTENSION)) \
+		$(DESTDIR)$(objectsdir)/$(LYON_NAME)
+	install -p $(externals_src)/$(LYON_NAME)/*.pd \
+		$(DESTDIR)$(objectsdir)/$(LYON_NAME)
+	# don't include cartopol/poltocar-- cyclone library already has those
+	rm $(DESTDIR)$(objectsdir)/$(LYON_NAME)/cartopol.pd
+	rm $(DESTDIR)$(objectsdir)/$(LYON_NAME)/poltocar.pd
+	rm $(DESTDIR)$(objectsdir)/$(LYON_NAME)/cartopol.$(EXTENSION)
+	rm $(DESTDIR)$(objectsdir)/$(LYON_NAME)/poltocar.$(EXTENSION)
+	install -p $(wildcard $(externals_src)/$(LYON_NAME)/sound/*.*) \
+		$(DESTDIR)$(objectsdir)/$(LYON_NAME)
+	# copy the meta file and the shared lib
+	install -p $(wildcard $(externals_src)/$(LYON_NAME)/*lyon*) \
+		$(DESTDIR)$(objectsdir)/$(LYON_NAME)
+	# license and readme
+	install -p $(externals_src)/$(LYON_NAME)/*.txt \
+		$(DESTDIR)$(objectsdir)/$(LYON_NAME)
+
+lyon_clean:
+	make -C $(externals_src)/$(LYON_NAME) clean
+
 #------------------------------------------------------------------------------#
 # MAPPING
 mapping: