|
9 | 9 | !!! warning
|
10 | 10 | This page is made by someone who is not the developer and should not be considered as an official documentation of the build system. For getting the full picture, it is best to read the Makefiles and understand them yourself.
|
11 | 11 |
|
12 |
| -## Makefile dep graph |
13 |
| - |
14 |
| -``` |
15 |
| -Makefile |
16 |
| -| |
17 |
| -|----- Makefile.system # !!! this is included by many of the Makefiles in the subdirectories !!! |
18 |
| -| | |
19 |
| -| |===== Makefile.prebuild # This is triggered (not included) once by Makefile.system |
20 |
| -| | | # and runs before any of the actual library code is built. |
21 |
| -| | | # (builds and runs the "getarch" tool for cpu identification, |
22 |
| -| | | # runs the compiler detection scripts c_check and f_check) |
23 |
| -| | | |
24 |
| -| | ----- (Makefile.conf) [ either this or Makefile_kernel.conf is generated ] |
25 |
| -| | | { Makefile.system#L243 } |
26 |
| -| | ----- (Makefile_kernel.conf) [ temporary Makefile.conf during DYNAMIC_ARCH builds ] |
27 |
| -| | |
28 |
| -| |----- Makefile.rule # defaults for build options that can be given on the make command line |
29 |
| -| | |
30 |
| -| |----- Makefile.$(ARCH) # architecture-specific compiler options and OpenBLAS buffer size values |
31 |
| -| |
32 |
| -|~~~~~ exports/ |
33 |
| -| |
34 |
| -|~~~~~ test/ |
35 |
| -| |
36 |
| -|~~~~~ utest/ |
37 |
| -| |
38 |
| -|~~~~~ ctest/ |
39 |
| -| |
40 |
| -|~~~~~ cpp_thread_test/ |
41 |
| -| |
42 |
| -|~~~~~ kernel/ |
43 |
| -| |
44 |
| -|~~~~~ ${SUBDIRS} |
45 |
| -| |
46 |
| -|~~~~~ ${BLASDIRS} |
47 |
| -| |
48 |
| -|~~~~~ ${NETLIB_LAPACK_DIR}{,/timing,/testing/{EIG,LIN}} |
49 |
| -| |
50 |
| -|~~~~~ relapack/ |
| 12 | +## Makefile dependency graph |
| 13 | + |
| 14 | +<!--- |
| 15 | +An easy way to update this diagram is to copy it into https://mermaid.live |
| 16 | +and edit it interactively. |
| 17 | +--> |
| 18 | + |
| 19 | +```mermaid |
| 20 | +flowchart LR |
| 21 | + A[Makefile] -->|included by many of the Makefiles in the subdirectories!| B(Makefile.system) |
| 22 | + B -->|triggered, not included, once by Makefile.system, and runs before any of the actual library code is built. builds and runs the 'getarch' tool for cpu identification, runs the compiler detection scripts c_check/f_check| C{Makefile.prebuild} |
| 23 | + C -->|either this or Makefile_kernel.conf is generated| D[Makefile.conf] |
| 24 | + C -->|temporary Makefile.conf during DYNAMIC_ARCH builds| E[Makefile_kernel.conf] |
| 25 | + B -->|defaults for build options that can be given on the make command line| F[Makefile.rule] |
| 26 | + B -->|architecture-specific compiler options and OpenBLAS buffer size values| G[Makefile.$ARCH] |
| 27 | + A --> exports |
| 28 | + A -->|directories: test, ctest, utest, cpp_thread_test| H(test directories) |
| 29 | + A --> I($BLASDIRS) |
| 30 | + I --> interface |
| 31 | + I --> driver/level2 |
| 32 | + I --> driver/level3 |
| 33 | + I --> driver/others |
| 34 | + A -->|for each target in DYNAMIC_CORE if DYNAMIC_ARCH=1| kernel |
| 35 | + A -->|subdirs: timing, testing, testing/EIG, testing/LIN| J($NETLIB_LAPACK_DIR) |
| 36 | + A --> relapack |
51 | 37 | ```
|
52 | 38 |
|
| 39 | + |
53 | 40 | ## Important Variables
|
54 | 41 |
|
55 | 42 | Most of the tunable variables are found in
|
|
0 commit comments