diff options
author | Mike Buland <eichlan@xagasoft.com> | 2012-11-09 16:33:06 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2012-11-09 16:33:06 +0000 |
commit | 279f79ffb79da7e0793b6b3d5707251e148264b8 (patch) | |
tree | 065d3dbd11de941db338913b1b14a0621b8aab08 /docs | |
parent | bf0ca10aef46f7004a551a00a9849fa6231d3071 (diff) | |
download | build-279f79ffb79da7e0793b6b3d5707251e148264b8.tar.gz build-279f79ffb79da7e0793b6b3d5707251e148264b8.tar.bz2 build-279f79ffb79da7e0793b6b3d5707251e148264b8.tar.xz build-279f79ffb79da7e0793b6b3d5707251e148264b8.zip |
Ouch, I forgot to spellcheck. That's less embarassing now.
Diffstat (limited to 'docs')
-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 | ||