diff options
| author | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2024-04-07 13:41:34 -0500 |
| commit | 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 (patch) | |
| tree | f1190704f78f04a2b0b4c977d20fe96a828377f1 /devdocs/gnu_make/recipes_002fsearch.html | |
new repository
Diffstat (limited to 'devdocs/gnu_make/recipes_002fsearch.html')
| -rw-r--r-- | devdocs/gnu_make/recipes_002fsearch.html | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/devdocs/gnu_make/recipes_002fsearch.html b/devdocs/gnu_make/recipes_002fsearch.html new file mode 100644 index 00000000..49bbd507 --- /dev/null +++ b/devdocs/gnu_make/recipes_002fsearch.html @@ -0,0 +1,13 @@ + <h1 class="subsection">Writing Recipes with Directory Search</h1> <p>When a prerequisite is found in another directory through directory search, this cannot change the recipe of the rule; they will execute as written. Therefore, you must write the recipe with care so that it will look for the prerequisite in the directory where <code>make</code> finds it. </p> <p>This is done with the <em>automatic variables</em> such as ‘<samp>$^</samp>’ (see <a href="automatic-variables">Automatic Variables</a>). For instance, the value of ‘<samp>$^</samp>’ is a list of all the prerequisites of the rule, including the names of the directories in which they were found, and the value of ‘<samp>$@</samp>’ is the target. Thus: </p> <div class="example"> <pre class="example">foo.o : foo.c + cc -c $(CFLAGS) $^ -o $@ +</pre> +</div> <p>(The variable <code>CFLAGS</code> exists so you can specify flags for C compilation by implicit rules; we use it here for consistency so it will affect all C compilations uniformly; see <a href="implicit-variables">Variables Used by Implicit Rules</a>.) </p> <p>Often the prerequisites include header files as well, which you do not want to mention in the recipe. The automatic variable ‘<samp>$<</samp>’ is just the first prerequisite: </p> <div class="example"> <pre class="example">VPATH = src:../headers +foo.o : foo.c defs.h hack.h + cc -c $(CFLAGS) $< -o $@ +</pre> +</div><div class="_attribution"> + <p class="_attribution-p"> + Copyright © 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Free Software Foundation, Inc. <br>Licensed under the GNU Free Documentation License.<br> + <a href="https://www.gnu.org/software/make/manual/html_node/Recipes_002fSearch.html" class="_attribution-link">https://www.gnu.org/software/make/manual/html_node/Recipes_002fSearch.html</a> + </p> +</div> |
