[flang] Update build instructions (flang-compiler/f18#94)

* Update build instructions

Add an overview and update the build instructions for f18.

Original-commit: flang-compiler/f18@a60060cfe1
Reviewed-on: https://github.com/flang-compiler/f18/pull/94
This commit is contained in:
Steve Scalpone 2018-05-18 13:02:58 -07:00 committed by GitHub
parent 8952deb16e
commit 2a69600b60
1 changed files with 97 additions and 30 deletions

View File

@ -4,45 +4,112 @@ Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved.
# f18 # f18
## Selection of the C/C++ compiler F18 is a front-end for Fortran.
It is intended to replace the existing front-end in the Flang compiler.
F18 requires a C++17 compiler. The code has been tested with g++ Flang is a Fortran compiler targeting LLVM.
7.2.0, g++ 7.3.0, g++ 8.1.0, and clang 6.0 (using g++ 7.3.0 or 8.1.0 headers,
each with small patches).
For a proper installation, we assume that the PATH and LD_LIBRARY_PATH environment variables Visit the Flang wiki for more information about Flang:
are properly set to use gcc, g++ and the associated libraries.
cmake will require that the environment variables CC and CXX are properly set (else it would https://github.com/flang-compiler/flang/wiki
search for the 'cc' and 'c++' commands which are likely /usr/bin/cc and /usr/bin/c++).
That can be done now or while calling cmake.
export CC=gcc Read more about f18 in the documentation directory.
export CXX=g++
## Installation of LLVM & CLANG 6.0 ## Building F18
F18 depends on the LLVM & CLANG libraries even when clang is not used as C++ compiler. ### Selection of the C++ compiler
If those libraries are not provided by your system, then you may want to follow the F18 is written in C++17.
build instructions at https://clang.llvm.org/get_started.html .
## Installation of F18 The code has been compiled and tested with
GCC versions 7.2.0, 7.3.0, and 8.1.0.
The code has been compiled and tested with clang 6.0
using GCC 7.3.0 or 8.1.0 headers;
however, the headers needed small patches.
######## Choose the installation directory To build and install f18, there are several options
for specifying the C++ compiler.
You can have the proper C++ compiler on your path,
or you can set the environment variable CXX,
or you can define the variable GCC on the cmake command line.
F18_PREFIX=... By default,
cmake will search for g++ on your PATH.
The g++ version must be 7.2 or greater in order to build f18.
######## Get Flang sources in $ROOT/f18 Or, if you export CXX,
cd $ROOT cmake will use the variable CXX to find the C++ compiler.
git clone https://github.com/ThePortlandGroup/f18.git CXX should include the full path to the compiler
or a name that will be found on your PATH,
e.g. g++-7.2, assuming g++-7.2 is on your PATH.
```
export CXX=g++-7.2
```
######## And build f18 in a dedicated directory Or, you can reference the GCC installation directory directly.
######## Reminder: If LLVM & Clang were not installed in a standard The CMakeList.txt file
######## location, then you may also have to specify it via the uses the variable GCC
######## CMAKE_MODULE_PATH or CMAKE_PREFIX_PATH variables. as the path to the bin directory
mkdir $ROOT/f18-build containing the C++ compiler.
cd $ROOT/f18-build GCC can be defined on the cmake command line
CC=gcc CXX=g++ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$F18_PREFIX $ROOT/f18 where `<GCC_DIRECTORY>` is the path to a GCC installation with bin, lib, etc:
make -j 8 ```
make install cmake -DGCC=<GCC_DIRECTORY>
```
To use f18 after it is built,
the environment variables PATH and LD_LIBRARY_PATH
must be set to use GCC and its associated libraries.
### LLVM and Clang dependency
F18 uses components from version 6.0 of LLVM and clang
(even when f18 is not compiled with clang).
The instructions to build LLVM and clang can be found at
https://clang.llvm.org/get_started.html.
The f18 CMakeList.txt file uses
the environment variable `Clang_DIR` to find the installed components.
To get the correct LLVM and clang libraries included in your f18 build,
set the environment variable
`Clang_DIR`
to the `lib/cmake/clang` directory in the clang install directory.
### Installation Directory
To specify a custom install location,
add
`-DCMAKE_INSTALL_PREFIX=<INSTALL_PREFIX>`
to the cmake command
where `<INSTALL_PREFIX>`
is the path where f18 should be installed.
### Build Types
To create a debug build,
add
`-DCMAKE_BUILD_TYPE=Debug`
to the cmake command.
Debug builds execute slowly.
To create a release build,
add
`-DCMAKE_BUILD_TYPE=Release`
to the cmake command.
Release builds execute quickly.
### Get the Source Code
```
cd where/you/want/the/source
git clone https://github.com/ThePortlandGroup/f18.git
```
### Build F18
```
cd where/you/want/to/build
export Clang_DIR=<CLANG_CMAKE_DIRECTORY>
cmake <your custom options> where/you/put/the/source/f18
make
```