File indexing completed on 2024-05-12 04:02:08

0001 <!DOCTYPE html>
0002 <html><head>
0003 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
0004 <title>Makefile</title>
0005 <meta name="generator" content="KF5::SyntaxHighlighting - Definition (Makefile) - Theme (Breeze Light)"/>
0006 </head><body style="background-color:#ffffff;color:#1f1c1b"><pre>
0007 <span style="color:#898887"># comment</span>
0008 
0009 <span style="font-weight:bold">include</span> Makefile.in
0010 <span style="font-weight:bold">-include</span> Makefile.doesntexist
0011 
0012 <span style="color:#006e28;font-weight:bold">.PHONY:</span><span style="color:#0057ae"> all</span>
0013 
0014 <span style="color:#b08000">all</span><span style="color:#b08000">:</span><span style="color:#0057ae"> target</span>
0015 
0016 <span style="color:#0057ae">foo</span> <span style="color:#924c9d">=</span><span style="color:#bf0303"> bar </span><span style="color:#924c9d">$(</span><span style="color:#0057ae">var</span><span style="color:#924c9d">)</span><span style="color:#bf0303"> </span><span style="color:#924c9d">\</span>
0017 <span style="color:#bf0303">    </span><span style="color:#924c9d">$(</span><span style="color:#0057ae">baz</span><span style="color:#924c9d">)</span><span style="color:#bf0303"> quux</span>
0018 
0019 <span style="font-weight:bold">ifeq</span> (<span style="color:#924c9d">$(</span><span style="color:#0057ae">CC</span><span style="color:#924c9d">)</span>,gcc)
0020     <span style="color:#0057ae">bla</span><span style="color:#924c9d">=$(</span><span style="font-weight:bold">call</span><span style="color:#bf0303"> func</span><span style="font-weight:bold">,</span><span style="color:#bf0303">param1</span><span style="font-weight:bold">,</span><span style="color:#bf0303">param2</span><span style="color:#924c9d">)</span>
0021 <span style="font-weight:bold">else</span> <span style="font-weight:bold">ifeq</span> <span style="color:#bf0303">"x"</span> <span style="color:#bf0303">"y"</span>
0022     <span style="color:#924c9d">$(</span><span style="font-weight:bold">error</span><span style="color:#bf0303"> this seems wrong</span><span style="color:#924c9d">)</span>
0023 <span style="font-weight:bold">else</span>
0024     <span style="color:#0057ae">libs</span><span style="color:#924c9d">=$(</span><span style="color:#0057ae">normal_libs</span><span style="color:#924c9d">)</span>
0025 <span style="font-weight:bold">endif</span>
0026 
0027 <span style="color:#b08000">target1</span><span style="color:#b08000">:</span>
0028 <span style="color:#bf0303;text-decoration:underline">        </span>error
0029 
0030 <span style="color:#b08000">target2</span><span style="color:#b08000">:</span><span style="color:#0057ae"> bla.cpp </span><span style="color:#924c9d">$@</span>
0031     <span style="color:#924c9d">$(</span><span style="color:#0057ae">CC</span><span style="color:#924c9d">)</span> bla.c -o bla.o
0032     <span style="color:#924c9d">$(</span><span style="color:#0057ae">CC</span><span style="color:#924c9d">)</span> bla.o <span style="color:#924c9d">$&lt;</span> <span style="color:#924c9d">\</span>
0033         <span style="color:#924c9d">-</span><span style="color:#644a9b">o bla.exe</span>
0034     <span style="color:#924c9d">@</span><span style="color:#644a9b">echo </span><span style="color:#bf0303">"hello"</span><span style="color:#644a9b"> </span><span style="color:#924c9d">\</span>
0035 <span style="color:#644a9b">  bla bla</span>
0036     echo <span style="color:#bf0303">"hello"</span> <span style="color:#924c9d">\</span>
0037   bla bla
0038 
0039 <span style="color:#b08000">target3</span><span style="color:#b08000">:</span><span style="color:#0057ae"> </span><span style="color:#924c9d">;</span> <span style="color:#924c9d">@</span><span style="color:#644a9b">echo ’hello </span><span style="color:#924c9d">\</span>
0040 <span style="color:#644a9b">world’ ; echo </span><span style="color:#bf0303">"hello </span><span style="color:#924c9d">\</span>
0041 <span style="color:#bf0303">world"</span>
0042     <span style="color:#924c9d">@</span><span style="color:#644a9b">echo </span><span style="color:#bf0303">"hello"</span>
0043 
0044 <span style="color:#b08000">target4</span><span style="color:#b08000">:</span><span style="color:#0057ae"> </span><span style="color:#924c9d">;</span> echo ’hello <span style="color:#924c9d">\</span>
0045 world’ ; echo <span style="color:#bf0303">"hello </span><span style="color:#924c9d">\</span>
0046 <span style="color:#bf0303">world"</span>
0047     echo <span style="color:#bf0303">"hello"</span>
0048 
0049 <span style="color:#b08000">target5 </span><span style="color:#924c9d">\</span>
0050 <span style="color:#b08000">target6 </span><span style="color:#924c9d">\</span>
0051 <span style="color:#b08000">target7 </span><span style="color:#b08000">&amp;::</span>
0052     <span style="color:#924c9d">@</span><span style="color:#644a9b">echo </span><span style="color:#bf0303">"hello"</span>
0053 <span style="color:#898887"># this should not break the rule</span>
0054   <span style="color:#898887"># ifndef is a command</span>
0055     ifndef
0056 
0057 <span style="color:#898887"># String Substitution</span>
0058 <span style="color:#0057ae">VAR</span> <span style="color:#924c9d">:=</span><span style="color:#bf0303"> </span><span style="color:#924c9d">$(</span><span style="color:#0057ae">ANOTHER_VAR</span><span style="font-weight:bold">:</span><span style="color:#ff5500">%</span><span style="font-weight:bold">=</span><span style="color:#ff5500">%+1</span><span style="color:#924c9d">)</span>
0059 
0060 <span style="color:#898887"># Variable Assignment</span>
0061 <span style="color:#0057ae">RELAXED</span> <span style="color:#924c9d">::=</span><span style="color:#bf0303"> mello</span>
0062 <span style="color:#0057ae">rempl</span> <span style="color:#924c9d">:=</span><span style="color:#bf0303"> x</span>
0063 <span style="color:#0057ae">foo</span> <span style="color:#924c9d">:=</span><span style="color:#bf0303"> a b c</span>
0064 <span style="color:#0057ae">bar</span> <span style="color:#924c9d">:=</span><span style="color:#bf0303"> foo</span>
0065 <span style="color:#0057ae">hello</span> <span style="color:#924c9d">:=</span><span style="color:#bf0303"> </span><span style="color:#924c9d">$($(</span><span style="color:#0057ae">bar</span><span style="color:#924c9d">)</span><span style="font-weight:bold">:</span><span style="color:#ff5500">a</span><span style="font-weight:bold">=</span><span style="color:#924c9d">$(</span><span style="color:#0057ae">rempl</span><span style="color:#924c9d">))</span>
0066 <span style="color:#0057ae">my??var</span><span style="color:#924c9d">=</span><span style="color:#bf0303">value</span>
0067 <span style="color:#0057ae">var?</span><span style="color:#924c9d">?=</span><span style="color:#bf0303">value</span>
0068 <span style="color:#0057ae">var</span><span style="color:#924c9d">?=</span><span style="color:#bf0303">value</span>
0069 <span style="color:#0057ae">var?</span> <span style="color:#924c9d">=</span><span style="color:#bf0303"> value</span>
0070 <span style="color:#0057ae">var</span> <span style="color:#924c9d">:::=</span><span style="color:#bf0303"> value</span>
0071 <span style="color:#0057ae">var</span> <span style="color:#924c9d">::=</span><span style="color:#bf0303"> value</span>
0072 <span style="color:#0057ae">var</span> <span style="color:#924c9d">+=</span><span style="color:#bf0303"> value</span>
0073 <span style="color:#0057ae">var</span> <span style="color:#924c9d">!=</span><span style="color:#bf0303"> value</span>
0074   <span style="color:#0057ae">var</span> <span style="color:#924c9d">=</span><span style="color:#bf0303"> value\#nocomment</span>
0075   <span style="color:#0057ae">var</span> <span style="color:#924c9d">=</span><span style="color:#bf0303"> value</span><span style="color:#898887">#comment</span>
0076   <span style="color:#0057ae">var</span> <span style="color:#924c9d">=</span><span style="color:#bf0303"> value;value2</span>
0077 <span style="font-weight:bold">override</span> <span style="color:#0057ae">var </span><span style="color:#924c9d">=</span><span style="color:#bf0303"> a</span>
0078 
0079 <span style="font-weight:bold">define</span> <span style="color:#0057ae">var</span> <span style="color:#924c9d">:::=</span>
0080 <span style="color:#bf0303">bar</span>
0081 <span style="font-weight:bold">endef</span>
0082 
0083 <span style="font-weight:bold">override</span> <span style="font-weight:bold">define</span> <span style="color:#0057ae">var</span> <span style="color:#924c9d">:::=</span>
0084 <span style="color:#bf0303">bar</span>
0085 <span style="font-weight:bold">endef</span>
0086 
0087 <span style="font-weight:bold">undefine</span><span style="color:#0057ae"> var</span>
0088 <span style="font-weight:bold">override</span> <span style="font-weight:bold">undefine</span><span style="color:#0057ae"> var</span>
0089 
0090 <span style="font-weight:bold">export</span><span style="color:#0057ae"> foo bar</span>
0091 <span style="font-weight:bold">export</span><span style="color:#0057ae"> foo </span><span style="color:#924c9d">=</span><span style="color:#bf0303"> bar</span>
0092 <span style="font-weight:bold">unexport</span><span style="color:#0057ae"> foo bar</span>
0093 
0094 <span style="color:#b08000">prog</span><span style="color:#b08000">:</span><span style="color:#0057ae"> </span><span style="font-weight:bold">private</span><span style="color:#0057ae"> EXTRA_CFLAGS </span><span style="color:#924c9d">=</span><span style="color:#bf0303"> -L/usr/local/lib</span>
0095 <span style="color:#b08000">prog</span><span style="color:#b08000">:</span><span style="color:#0057ae"> </span><span style="color:#0057ae">CFLAGS</span> <span style="color:#924c9d">=</span><span style="color:#bf0303"> -g</span>
0096 <span style="color:#b08000">prog</span><span style="color:#b08000">:</span><span style="color:#0057ae"> a.o b.o</span>
0097 
0098 <span style="color:#898887"># Conditionals</span>
0099 <span style="color:#0057ae">bar</span> <span style="color:#924c9d">=</span>
0100 <span style="color:#0057ae">foo</span> <span style="color:#924c9d">=</span><span style="color:#bf0303"> </span><span style="color:#924c9d">$(</span><span style="color:#0057ae">bar</span><span style="color:#924c9d">)</span>
0101 <span style="font-weight:bold">ifdef</span> bar
0102 <span style="color:#0057ae">frobozz</span> <span style="color:#924c9d">=</span><span style="color:#bf0303"> yes</span>
0103 <span style="font-weight:bold">else</span> <span style="font-weight:bold">ifdef</span> foo
0104 <span style="color:#0057ae">frobozz</span> <span style="color:#924c9d">=</span><span style="color:#bf0303"> no</span>
0105 <span style="font-weight:bold">endif</span>
0106 
0107 <span style="color:#0057ae">error_type</span> <span style="color:#924c9d">:=</span><span style="color:#bf0303"> 0</span>
0108 <span style="color:#b08000">check</span><span style="color:#b08000">:</span>
0109 <span style="font-weight:bold">ifeq</span> (<span style="color:#924c9d">$(</span><span style="color:#0057ae">error_type</span><span style="color:#924c9d">)</span>,0)
0110 <span style="font-weight:bold">else</span> <span style="font-weight:bold">ifeq</span> (<span style="color:#924c9d">$(</span><span style="color:#0057ae">error_type</span><span style="color:#924c9d">)</span>,1)
0111 <span style="font-weight:bold">else</span> <span style="font-weight:bold">ifeq</span> (<span style="color:#924c9d">$(</span><span style="color:#0057ae">error_type</span><span style="color:#924c9d">)</span>,2)
0112 <span style="font-weight:bold">else</span> <span style="font-weight:bold">ifeq</span> (<span style="color:#924c9d">$(</span><span style="color:#0057ae">error_type</span><span style="color:#924c9d">)</span>,3)
0113 <span style="font-weight:bold">endif</span>
0114 
0115 <span style="color:#924c9d">$(</span><span style="font-weight:bold">info</span><span style="color:#bf0303"> </span><span style="color:#bf0303">"'"</span><span style="color:#924c9d">)</span>
0116 <span style="color:#924c9d">$(</span><span style="font-weight:bold">info</span><span style="color:#bf0303"> </span><span style="color:#bf0303">'"'</span><span style="color:#924c9d">)</span>
0117 <span style="color:#924c9d">$(</span><span style="font-weight:bold">info</span><span style="color:#bf0303"> </span><span style="color:#924c9d">$(</span><span style="color:#0057ae">??</span><span style="color:#924c9d">))</span>
0118 
0119 <span style="color:#924c9d">$(</span><span style="font-weight:bold">eval</span><span style="color:#bf0303"> </span><span style="color:#924c9d">$(</span><span style="font-weight:bold">call</span><span style="color:#bf0303"> Variable_rule</span><span style="font-weight:bold">,</span><span style="color:#bf0303">target/compile_flags</span><span style="font-weight:bold">,</span><span style="color:#924c9d">$$</span><span style="color:#bf0303">{CXX} </span><span style="color:#924c9d">$$</span><span style="color:#bf0303">(CXXFLAGS)</span><span style="color:#924c9d">))</span>
0120 <span style="color:#924c9d">$(</span><span style="font-weight:bold">eval</span><span style="color:#bf0303"> </span><span style="color:#924c9d">${</span><span style="font-weight:bold">call</span><span style="color:#bf0303"> Variable_rule</span><span style="font-weight:bold">,</span><span style="color:#bf0303">target/link_flags</span><span style="font-weight:bold">,</span><span style="color:#924c9d">$$</span><span style="color:#bf0303">(CXX) </span><span style="color:#924c9d">$$</span><span style="color:#bf0303">(LDFLAGS) </span><span style="color:#924c9d">$$</span><span style="color:#bf0303">{LDLIBS}</span><span style="color:#924c9d">})</span>
0121 </pre></body></html>