diff --git a/Makefile b/Makefile
index 3888fe55efeb6ee3941cb57c904dbd9bf717d913..b89fe3aba890a23e61de65b76732ef47b5c3872e 100644
--- a/Makefile
+++ b/Makefile
@@ -182,25 +182,12 @@ force-reconfigure:
 ##############################################################################
 # INSTALL/UNINSTALL
 ################################
-.PHONY: install uninstall
 
-FRAMAC_INSTALLDIR?=""
+FRAMAC_INSTALLDIR?=
 
-install:
-ifeq ($(FRAMAC_INSTALLDIR),"")
-	dune install
-else
-	dune install --prefix ${FRAMAC_INSTALLDIR}
-	@echo 'DO NOT FORGET TO EXPAND YOUR OCAMLPATH VARIABLE:'
-	@echo '  export OCAMLPATH="${FRAMAC_INSTALLDIR}/lib:$$OCAMLPATH"'
-endif
+INSTALLDIR:=$(FRAMAC_INSTALLDIR)
 
-uninstall:
-ifeq ($(FRAMAC_INSTALLDIR),"")
-	dune uninstall
-else
-	dune uninstall --prefix ${FRAMAC_INSTALLDIR}
-endif
+include share/Makefile.installation
 
 ###############################################################################
 # HEADER MANAGEMENT
diff --git a/share/Makefile.installation b/share/Makefile.installation
new file mode 100644
index 0000000000000000000000000000000000000000..c5cd0159c6c77cd98ea41d9cdf866050be17f9bb
--- /dev/null
+++ b/share/Makefile.installation
@@ -0,0 +1,53 @@
+##########################################################################
+#                                                                        #
+#  This file is part of Frama-C.                                         #
+#                                                                        #
+#  Copyright (C) 2007-2022                                               #
+#    CEA (Commissariat à l'énergie atomique et aux énergies              #
+#         alternatives)                                                  #
+#                                                                        #
+#  you can redistribute it and/or modify it under the terms of the GNU   #
+#  Lesser General Public License as published by the Free Software       #
+#  Foundation, version 2.1.                                              #
+#                                                                        #
+#  It is distributed in the hope that it will be useful,                 #
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of        #
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         #
+#  GNU Lesser General Public License for more details.                   #
+#                                                                        #
+#  See the GNU Lesser General Public License version 2.1                 #
+#  for more details (enclosed in the file licenses/LGPLv2.1).            #
+#                                                                        #
+##########################################################################
+
+################
+# INSTALLATION #
+################
+
+################################
+## Default variables
+
+# Set this variable to request a specific installation directory
+# Default: Dune installs in the Opam directory
+INSTALLDIR?=
+
+################################
+## Install and uninstall
+
+.PHONY: install uninstall
+
+install:
+ifeq ($(INSTALLDIR),)
+	dune install
+else
+	dune install --prefix ${INSTALLDIR}
+	@echo 'DO NOT FORGET TO EXPAND YOUR OCAMLPATH VARIABLE:'
+	@echo '  export OCAMLPATH="${INSTALLDIR}/lib:$$OCAMLPATH"'
+endif
+
+uninstall:
+ifeq ($(INSTALLDIR),)
+	dune uninstall
+else
+	dune uninstall --prefix ${INSTALLDIR}
+endif