From 3da1e2e24fb713e87984bc18d7c1c4c44a97fa47 Mon Sep 17 00:00:00 2001 From: Nathaniel Graff Date: Fri, 8 Mar 2019 10:24:33 -0800 Subject: Support Debug/Release configurations - Puts shared flags in scripts/standalone and adds "build configurations" for debug and release which customize the build flags for specific purposes. - Documents CONFIGURATION in Sphinx docs and makefile help Signed-off-by: Nathaniel Graff --- doc/sphinx/userguide/buildingcoreip.rst | 13 +++++++------ doc/sphinx/userguide/buildingdevboard.rst | 17 +++++++++-------- doc/sphinx/userguide/standalone.rst | 2 +- 3 files changed, 17 insertions(+), 15 deletions(-) (limited to 'doc/sphinx') diff --git a/doc/sphinx/userguide/buildingcoreip.rst b/doc/sphinx/userguide/buildingcoreip.rst index 986ad68..7fd821e 100644 --- a/doc/sphinx/userguide/buildingcoreip.rst +++ b/doc/sphinx/userguide/buildingcoreip.rst @@ -8,17 +8,18 @@ To compile a bare-metal RISC-V program: .. code-block:: bash - make [PROGRAM=hello] [TARGET=coreip-e31-rtl] software + make [PROGRAM=hello] [TARGET=coreip-e31-rtl] [CONFIGURATION=debug] software The square brackets in the above command indicate optional parameters for the Make invocation. As you can see, the default values of these parameters tell -the build script to build the ``hello`` example for the ``coreip-e31`` target. -If, for example, you wished to build the ``timer-interrupt`` example for the S51 -Core IP target, you would instead run the command +the build script to build the ``hello`` example for the ``coreip-e31`` target +with the ``debug`` build configuration. If, for example, you wished to build +the ``timer-interrupt`` example for the S51 Core IP target with the ``release`` +configuration, you would instead run the command .. code-block:: bash - make PROGRAM=timer-interrupt TARGET=coreip-s51-rtl software + make PROGRAM=timer-interrupt TARGET=coreip-s51-rtl CONFIGURATION=release software Cleaning a Target Program Build Directory ----------------------------------------- @@ -27,5 +28,5 @@ The ``clean`` target can be used to restore a target program's directory to a cl .. code-block:: bash - make [PROGRAM=hello] [TARGET=coreip-e31-rtl] clean + make [PROGRAM=hello] [TARGET=coreip-e31-rtl] [CONFIGURATION=debug] clean diff --git a/doc/sphinx/userguide/buildingdevboard.rst b/doc/sphinx/userguide/buildingdevboard.rst index a5d364d..d972b3a 100644 --- a/doc/sphinx/userguide/buildingdevboard.rst +++ b/doc/sphinx/userguide/buildingdevboard.rst @@ -8,17 +8,18 @@ To compile a bare-metal RISC-V program: .. code-block:: bash - make [PROGRAM=hello] [TARGET=sifive-hifive1] software + make [PROGRAM=hello] [TARGET=sifive-hifive1] [CONFIGURATION=debug] software The square brackets in the above command indicate optional parameters for the Make invocation. As you can see, the default values of these parameters tell -the build script to build the ``hello`` example for the ``sifive-hifive1`` target. -If, for example, you wished to build the ``timer-interrupt`` example for the S51 -Arty FPGA Evaluation target, you would instead run the command +the build script to build the ``hello`` example for the ``sifive-hifive1`` target +using the ``debug`` build configuration. If, for example, you wished to build +the ``timer-interrupt`` example for the S51 Arty FPGA Evaluation target using +the ``release`` build configuration, you would instead run the command .. code-block:: bash - make PROGRAM=timer-interrupt TARGET=coreip-s51-arty software + make PROGRAM=timer-interrupt TARGET=coreip-s51-arty CONFIGURATION=release software Uploading to the Target Board ----------------------------- @@ -32,7 +33,7 @@ the development board into your computer and running the following command: .. code-block:: bash - make [PROGRAM=hello] [TARGET=sifive-hifive1] upload + make [PROGRAM=hello] [TARGET=sifive-hifive1] [CONFIGURATION=debug] upload Debugging a Target Program -------------------------- @@ -49,7 +50,7 @@ the development board into your computer and running the following command: .. code-block:: bash - make [PROGRAM=hello] [TARGET=sifive-hifive1] debug + make [PROGRAM=hello] [TARGET=sifive-hifive1] [CONFIGURATION=debug] debug Cleaning a Target Program Build Directory ----------------------------------------- @@ -58,5 +59,5 @@ The ``clean`` target can be used to restore a target program's directory to a cl .. code-block:: bash - make [PROGRAM=hello] [TARGET=sifive-hifive1] clean + make [PROGRAM=hello] [TARGET=sifive-hifive1] [CONFIGURATION=debug] clean diff --git a/doc/sphinx/userguide/standalone.rst b/doc/sphinx/userguide/standalone.rst index ee31362..0703ddb 100644 --- a/doc/sphinx/userguide/standalone.rst +++ b/doc/sphinx/userguide/standalone.rst @@ -15,5 +15,5 @@ be included in the generated project as a pre-built archive. .. code-block:: bash - make [PROGRAM=hello] [TARGET=sifive-hifive1] [INCLUDE_METAL_SOURCES=1] STANDALONE_DEST=/path/to/desired/location standalone + make [PROGRAM=hello] [TARGET=sifive-hifive1] [CONFIGURATION=debug] [INCLUDE_METAL_SOURCES=1] STANDALONE_DEST=/path/to/desired/location standalone -- cgit v1.2.3 From 1b72ca73835d6064b467a126a392f4539fa2f10a Mon Sep 17 00:00:00 2001 From: Nathaniel Graff Date: Tue, 12 Mar 2019 10:09:10 -0700 Subject: Build metal libs into install/lib/CONFIGURATION Removes the INCLUDE_METAL_SOURCES option. If we want to be able to support multiple build configurations for standalone projects, the Metal library must be rebuilt to take into account those options. An alternative is to put back the prebuilt library option and just remove the configuration option from standalone projects without the Metal library sources. Signed-off-by: Nathaniel Graff --- doc/sphinx/userguide/standalone.rst | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'doc/sphinx') diff --git a/doc/sphinx/userguide/standalone.rst b/doc/sphinx/userguide/standalone.rst index 0703ddb..e71ecaa 100644 --- a/doc/sphinx/userguide/standalone.rst +++ b/doc/sphinx/userguide/standalone.rst @@ -8,12 +8,7 @@ Legacy Freedom E SDK. ``STANDALONE_DEST`` is a required argument to provide the desired project location. -You can include the argument ``INCLUDE_METAL_SOURCES=1`` if you would like to -include the sources for the Freedom Metal library in the generated standalone -project. If this argument is not included, then the Freedom Metal library will -be included in the generated project as a pre-built archive. - .. code-block:: bash - make [PROGRAM=hello] [TARGET=sifive-hifive1] [CONFIGURATION=debug] [INCLUDE_METAL_SOURCES=1] STANDALONE_DEST=/path/to/desired/location standalone + make [PROGRAM=hello] [TARGET=sifive-hifive1] STANDALONE_DEST=/path/to/desired/location standalone -- cgit v1.2.3