diff --git a/CMakePresets.json b/CMakePresets.json
index 9d92976febcf6373a6f6c513f4ae80c1da2963da..cc056b67d83f716c043a10cc955b4b040adcbc29 100644
--- a/CMakePresets.json
+++ b/CMakePresets.json
@@ -1,8 +1,8 @@
 {
-  "version": 2,
+  "version": 6,
   "cmakeMinimumRequired": {
     "major": 3,
-    "minor": 20,
+    "minor": 25,
     "patch": 0
   },
   "configurePresets": [
@@ -45,15 +45,62 @@
     }
   ],
   "buildPresets": [
+    {
+      "name": "verbose",
+      "hidden": true,
+      "verbose": true
+    },
+    {
+      "name": "accelerate-lapacke32",
+      "inherits": [
+        "verbose"
+      ],
+      "displayName": "LAPACKE 32bit build linking against Accelerate and installation",
+      "configurePreset": "accelerate-lapacke32",
+      "targets": [
+        "install"
+      ]
+    },
+    {
+      "name": "accelerate-lapacke64",
+      "inherits": [
+        "verbose"
+      ],
+      "displayName": "LAPACKE 64bit build linking against Accelerate ILP64 interface and installation",
+      "configurePreset": "accelerate-lapacke64",
+      "targets": [
+        "install"
+      ]
+    }
+  ],
+  "workflowPresets": [
     {
       "name": "accelerate-lapacke32",
-      "displayName": "LAPACKE 32bit build linking against Accelerate",
-      "configurePreset": "accelerate-lapacke32"
+      "displayName": "LAPACKE 32bit build linking against Accelerate and installation",
+      "steps": [
+        {
+          "type": "configure",
+          "name": "accelerate-lapacke32"
+        },
+        {
+          "type": "build",
+          "name": "accelerate-lapacke32"
+        }
+      ]
     },
     {
       "name": "accelerate-lapacke64",
-      "displayName": "LAPACKE 64bit build linking against Accelerate ILP64 interface",
-      "configurePreset": "accelerate-lapacke64"
+      "displayName": "LAPACKE 64bit build linking against Accelerate ILP64 interface and installation",
+      "steps": [
+        {
+          "type": "configure",
+          "name": "accelerate-lapacke64"
+        },
+        {
+          "type": "build",
+          "name": "accelerate-lapacke64"
+        }
+      ]
     }
   ]
 }
diff --git a/CMakeUserPresets.template.json b/CMakeUserPresets.template.json
new file mode 100644
index 0000000000000000000000000000000000000000..2b67a2211f315b05700fbd0aef7d9fdcba911b48
--- /dev/null
+++ b/CMakeUserPresets.template.json
@@ -0,0 +1,76 @@
+{
+  "version": 6,
+  "include": [
+    "./CMakePresets.json"
+  ],
+  "configurePresets": [
+    {
+      "name": "user-accelerate-lapacke32",
+      "inherits": [
+        "accelerate-lapacke32"
+      ],
+      "cacheVariables": {
+        "CMAKE_INSTALL_PREFIX": "/opt/custom"
+      },
+      "displayName": "User LAPACKE 32bit configuration linking against Accelerate"
+    },
+    {
+      "name": "user-accelerate-lapacke64",
+      "inherits": [
+        "accelerate-lapacke64"
+      ],
+      "cacheVariables": {
+        "CMAKE_INSTALL_PREFIX": "/opt/custom"
+      },
+      "displayName": "User LAPACKE 64bit configuration linking against Accelerate ILP64 interface"
+    }
+  ],
+  "buildPresets": [
+    {
+      "name": "user-accelerate-lapacke32",
+      "inherits": [
+        "accelerate-lapacke32"
+      ],
+      "displayName": "User LAPACKE 32bit build linking against Accelerate and installation",
+      "configurePreset": "user-accelerate-lapacke32"
+    },
+    {
+      "name": "user-accelerate-lapacke64",
+      "inherits": [
+        "accelerate-lapacke64"
+      ],
+      "displayName": "User LAPACKE 64bit build linking against Accelerate ILP64 interface and installation",
+      "configurePreset": "user-accelerate-lapacke64"
+    }
+  ],
+  "workflowPresets": [
+    {
+      "name": "user-accelerate-lapacke32",
+      "displayName": "User LAPACKE 32bit build linking against Accelerate and installation",
+      "steps": [
+        {
+          "type": "configure",
+          "name": "user-accelerate-lapacke32"
+        },
+        {
+          "type": "build",
+          "name": "user-accelerate-lapacke32"
+        }
+      ]
+    },
+    {
+      "name": "user-accelerate-lapacke64",
+      "displayName": "User LAPACKE 64bit build linking against Accelerate ILP64 interface and installation",
+      "steps": [
+        {
+          "type": "configure",
+          "name": "user-accelerate-lapacke64"
+        },
+        {
+          "type": "build",
+          "name": "user-accelerate-lapacke64"
+        }
+      ]
+    }
+  ]
+}
diff --git a/README.md b/README.md
index dffb9210327739ea5938a72dad003e3c1013c1e3..45b684fa50bf446676618a1d3d83999d1d14a97a 100644
--- a/README.md
+++ b/README.md
@@ -144,43 +144,27 @@ via Homebrew or MacPorts):
 - Fortran compiler (e. g. `gfortran` contained in the `gcc` package) to
   make it through the Reference LAPACK configure script
 
-### Configuration with CMake ###
+### Workflow with CMake ###
 
 Use the `accelerate-lapacke32` preset (or the `accelerate-lapacke64` preset for
 the ILP64 interface) with CMake:
 
 ```shell
-$ cmake --preset accelerate-lapacke32
+$ cmake --workflow --preset accelerate-lapacke32
 ```
 
 This will configure LAPACKE to be installed in your `~/.local` directory by
 default. If you prefer a different install location (e. g. `/opt/custom`),
-you can change it like this:
+you can change it using a `CMakeUserPresets.json` file, for which a template
+file is provided:
 
 ```shell
-$ cmake --preset accelerate-lapacke32 -D "CMAKE_INSTALL_PREFIX=/opt/custom"
+$ cmake --workflow --preset user-accelerate-lapacke32
 ```
 
 I wouldn't recommend installing to `/usr/local` (used by Homebrew on Intel Macs)
 or `/opt/local` (used by MacPorts).
 
-### Build and install ###
-
-When the configuration finished successfully (fingers crossed), you can build with the
-same preset name (`accelerate-lapacke32` or `accelerate-lapacke64`):
-
-```shell
-$ cmake --build --preset accelerate-lapacke32 --verbose
-```
-
-If everything worked as intended, linking the library should be successful. Now,
-you can install to the previously configured install prefix by building the
-install target:
-
-```shell
-$ cmake --build --preset accelerate-lapacke32 --verbose --target install
-```
-
 ### Using LAPACKE in another project ###
 
 You can use your self-compiled LAPACKE library in other projects by importing