aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Ehlert <28669218+awvwgk@users.noreply.github.com>2020-11-29 19:01:54 +0100
committerSebastian Ehlert <28669218+awvwgk@users.noreply.github.com>2020-11-29 19:06:26 +0100
commit7d2f2162d517fc984124bf32e128899b9cdc809c (patch)
treed9ad7ee90d4dd1bb60adc028bb9c42f51d27212f
parent105644ca8bce711b407e1a15f8f456693f60ff43 (diff)
downloadfpm-7d2f2162d517fc984124bf32e128899b9cdc809c.tar.gz
fpm-7d2f2162d517fc984124bf32e128899b9cdc809c.zip
Rewrite README to focus on the Fortran fpm version
- describe complete bootstapping process in collapsed details section
-rw-r--r--README.md76
1 files changed, 54 insertions, 22 deletions
diff --git a/README.md b/README.md
index a9d1a02..5025615 100644
--- a/README.md
+++ b/README.md
@@ -24,7 +24,44 @@ __Note:__ On Linux and MacOS, you will need to enable executable permission befo
_e.g._ `$ chmod u+x fpm-v0.1.0-linux-x86_64`
-### Build from source
+For other platforms and architectures have a look at the [bootstrapping instructions](#bootstrapping-fpm).
+
+### Creating a new project
+
+Creating a new *fpm* project is as simple as running the command
+`fpm new project_name`. This will create a new folder in your current directory
+with the following contents and initialized as a git repository.
+
+* `fpm.toml` – with your project’s name and some default standard meta-data
+* `README.md` – with your project’s name
+* `.gitignore`
+* `src/project_name.f90` – with a simple hello world subroutine
+* `app/main.f90` (if `--with-executable` flag used) – a program that calls the subroutine
+* `test/main.f90` (if `--with-test` flag used) – an empty test program
+
+### Building your Fortran project with fpm
+
+*fpm* understands the basic commands:
+
+* `fpm build` – build your library, executables and tests
+* `fpm run` – run executables
+* `fpm test` – run tests
+
+The command `fpm run` can optionally accept the name of the specific executable
+to run, as can `fpm test`; like `fpm run specific_executable`. Command line
+arguments can also be passed to the executable(s) or test(s) with the option
+`--args "some arguments"`.
+
+See additional instructions in the [Packaging guide](PACKAGING.md) or
+the [manifest reference](manifest-reference.md).
+
+<details>
+<summary><b>Bootstrapping instructions</b></summary>
+
+### Bootstrapping instructions
+
+This guide explains the process of building *fpm* on a platform for the first time.
+If your platform and architecture are already supported, download the binary from the [release page](https://github.com/fortran-lang/fpm/releases) instead.
#### Install Haskell
@@ -64,31 +101,26 @@ $ stack install
On Linux, the above command installs `fpm` to `${HOME}/.local/bin/`.
-### Creating a new project
+Now you can build the Fortran *fpm* version with
-Creating a new *fpm* project is as simple as running the command
-`fpm new project_name`. This will create a new folder in your current directory
-with the following contents and initialized as a git repository.
+```bash
+$ cd fpm/
+$ fpm build
+```
-* `fpm.toml` – with your project’s name and some default standard meta-data
-* `README.md` – with your project’s name
-* `.gitignore`
-* `src/project_name.f90` – with a simple hello world subroutine
-* `app/main.f90` (if `--with-executable` flag used) – a program that calls the subroutine
-* `test/main.f90` (if `--with-test` flag used) – an empty test program
+Test that everything is working as expected
-### Building your Fortran project with fpm
+```bash
+$ fpm test
+```
-*fpm* understands the basic commands:
+Finally, install the Fortran *fpm* version with
-* `fpm build` – build your library, executables and tests
-* `fpm run` – run executables
-* `fpm test` – run tests
+```bash
+$ fpm run --runner cp -- ~/.local/bin
+```
-The command `fpm run` can optionally accept the name of the specific executable
-to run, as can `fpm test`; like `fpm run specific_executable`. Command line
-arguments can also be passed to the executable(s) or test(s) with the option
-`--args "some arguments"`.
+Or choose another location if you do not want to overwrite the bootstrapping version.
+From now on you can rebuild *fpm* with your Fortran *fpm* version.
-See additional instructions in the [Packaging guide](PACKAGING.md) or
-the [manifest reference](manifest-reference.md).
+</details>