diff options
Diffstat (limited to '')
| -rw-r--r-- | docs/build-manual.tex | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/docs/build-manual.tex b/docs/build-manual.tex index 49be977..ca2f004 100644 --- a/docs/build-manual.tex +++ b/docs/build-manual.tex | |||
| @@ -15,29 +15,29 @@ processes. The primary goal is to be able to replace the standard | |||
| 15 | configure/make or cmake/make systems that have become quite popular. | 15 | configure/make or cmake/make systems that have become quite popular. |
| 16 | 16 | ||
| 17 | By default Build will work much as one would expect for compiling software, it | 17 | By default Build will work much as one would expect for compiling software, it |
| 18 | uses file exisistance and timestamps to determine what to build, and every file | 18 | uses file existence and timestamps to determine what to build, and every file |
| 19 | has a list of dependant files and input files. | 19 | has a list of dependent files and input files. |
| 20 | 20 | ||
| 21 | However, this is only the default configuration, you can use anything as the | 21 | However, this is only the default configuration, you can use anything as the |
| 22 | condition for determining what to build or rebuild, and targets do not have to | 22 | condition for determining what to build or rebuild, and targets do not have to |
| 23 | be files. | 23 | be files. |
| 24 | 24 | ||
| 25 | Build boasts a sophisticated system for chaining rules together to take files | 25 | Build boasts a sophisticated system for chaining rules together to take files |
| 26 | through as many steps as necesarry to get them in the desirable foramt for input | 26 | through as many steps as necessary to get them in the desirable format for input |
| 27 | to the final step. This may sound a little vague and confusing, but what it | 27 | to the final step. This may sound a little vague and confusing, but what it |
| 28 | means in the end is that you can list, say, a bison file as on input to an | 28 | means in the end is that you can list, say, a bison file as on input to an |
| 29 | executable target that requires object (.o) files. In this case build will | 29 | executable target that requires object (.o) files. In this case build will |
| 30 | automatically figure out that it can get a .c file from the .y input file, and | 30 | automatically figure out that it can get a .c file from the .y input file, and |
| 31 | a .o file from the .c file. It will autogenerate these targets for you and | 31 | a .o file from the .c file. It will auto generate these targets for you and |
| 32 | save a lot of time and effort on your part. | 32 | save a lot of time and effort on your part. |
| 33 | 33 | ||
| 34 | \chapter{Structure of a Build File} | 34 | \chapter{Structure of a Build File} |
| 35 | Build files contain build script along with four major types of declerations. | 35 | Build files contain build script along with four major types of declarations. |
| 36 | These are the major types that can be decared: | 36 | These are the major types that can be declared: |
| 37 | 37 | ||
| 38 | \begin{description} | 38 | \begin{description} |
| 39 | \item[Targets] \hfill \\ | 39 | \item[Targets] \hfill \\ |
| 40 | Explicit targets can be defined that represent units of work with a definate | 40 | Explicit targets can be defined that represent units of work with a definite |
| 41 | goal and possibly inputs that can be other targets. | 41 | goal and possibly inputs that can be other targets. |
| 42 | \item[Actions] \hfill \\ | 42 | \item[Actions] \hfill \\ |
| 43 | Actions are triggered from the command line and determine what targets to | 43 | Actions are triggered from the command line and determine what targets to |
| @@ -68,7 +68,7 @@ target "myprogram" | |||
| 68 | } | 68 | } |
| 69 | \end{lstlisting} | 69 | \end{lstlisting} |
| 70 | 70 | ||
| 71 | This example doesn't set any special compliation or linking flags, but it is a | 71 | This example doesn't set any special compilation or linking flags, but it is a |
| 72 | complete and valid build file. It will find all cpp files in src, generate an | 72 | complete and valid build file. It will find all cpp files in src, generate an |
| 73 | implicit target for each file to compile it into an object (.o) file, and then | 73 | implicit target for each file to compile it into an object (.o) file, and then |
| 74 | use those files as the input to the myprogram target in the end. | 74 | use those files as the input to the myprogram target in the end. |
| @@ -96,14 +96,14 @@ Targets can contain the following special keywords: | |||
| 96 | \item[input] \hfill \\ | 96 | \item[input] \hfill \\ |
| 97 | You can specify any expression that results in a string or list of strings. | 97 | You can specify any expression that results in a string or list of strings. |
| 98 | These strings will be added to the list of inputs to this target, and if | 98 | These strings will be added to the list of inputs to this target, and if |
| 99 | they are targets they will be added as dependancies. If you have a rule | 99 | they are targets they will be added as dependencies. If you have a rule |
| 100 | specified then the list of inputs will be used to generate implicit targets | 100 | specified then the list of inputs will be used to generate implicit targets |
| 101 | to satisfy dependancies. | 101 | to satisfy dependencies. |
| 102 | \item[requires] \hfill \\ | 102 | \item[requires] \hfill \\ |
| 103 | Requires works just like input, except that the items here will not be added | 103 | Requires works just like input, except that the items here will not be added |
| 104 | to the list of inputs. They will be added as dependancies to figure out | 104 | to the list of inputs. They will be added as dependencies to figure out |
| 105 | when this target needs to be rebuilt, but will not be listed as inputs. | 105 | when this target needs to be rebuilt, but will not be listed as inputs. |
| 106 | This is handy for things like libraries, datafiles, et cetera. | 106 | This is handy for things like libraries, data files, et cetera. |
| 107 | \item[rule] \hfill \\ | 107 | \item[rule] \hfill \\ |
| 108 | You can optionally specify a single rule name by string. This rule will be | 108 | You can optionally specify a single rule name by string. This rule will be |
| 109 | applied to this target before processing and used to provide the display, | 109 | applied to this target before processing and used to provide the display, |
| @@ -148,8 +148,8 @@ commands. | |||
| 148 | 148 | ||
| 149 | There is an extra property that can be set in any profile, and that's condition. | 149 | There is an extra property that can be set in any profile, and that's condition. |
| 150 | Specifying a condition will allow you to change how build decides when it's | 150 | Specifying a condition will allow you to change how build decides when it's |
| 151 | appropriate to process that target in that profile. There are four builtin | 151 | appropriate to process that target in that profile. There are four built-in |
| 152 | conditions: always, never, filetime, and fileexists. In the future it may also | 152 | conditions: always, never, fileTime, and fileExists. In the future it may also |
| 153 | be possible to use a user-defined function as a condition. | 153 | be possible to use a user-defined function as a condition. |
| 154 | 154 | ||
| 155 | 155 | ||
