Changeset 48

Show
Ignore:
Timestamp:
06/23/06 23:08:18 (6 years ago)
Author:
Derek Parnell
Message:

Release of version 3.02
modified trunk/Docs/autobuild.html
modified trunk/Docs/change_log.html
modified trunk/Docs/command_line.html
modified trunk/Docs/configuration_file.html
modified trunk/Docs/dlls.html
modified trunk/Docs/introduction.html
modified trunk/Docs/macros.html
modified trunk/Docs/pragmas.html
modified trunk/Docs/profile_file.html
modified trunk/Docs/response_file.html
modified trunk/Docs/rules.html
modified trunk/Docs/style.css
modified trunk/Docs/switches.html
modified trunk/Docs/todo.html
modified trunk/Docs/User_Manual.html
modified trunk/Source/build.d
modified trunk/Source/build_bn.d
modified trunk/Source/default.rdf
modified trunk/Source/docsrc/change_log.d
modified trunk/Source/docsrc/configuration_file.d
modified trunk/Source/docsrc/pragmas.d
modified trunk/Source/docsrc/rules.d
modified trunk/Source/docsrc/style.css
modified trunk/Source/docsrc/switches.d
modified trunk/Source/docsrc/User_Manual.d
modified trunk/Source/docsrc/user_manual.ddoc
modified trunk/Source/example_build.cfg
modified trunk/Source/Makefile.dos
modified trunk/Source/Makefile.gdc
modified trunk/Source/Makefile.unix
modified trunk/Source/source.d
modified trunk/Source/source_bn.d
modified trunk/Source/util/fdt.d
modified trunk/Source/util/fdt_bn.d
modified trunk/Source/util/fileex.d
modified trunk/Source/util/fileex_bn.d
modified trunk/Source/util/linetoken_bn.d
modified trunk/Source/util/pathex.d
modified trunk/Source/util/pathex_bn.d
modified trunk/Source/util/str.d
modified trunk/Source/util/str_bn.d
added downloads/build-3.02.doc.zip
added downloads/build-3.02.src.zip
added downloads/build_win_3.02.dbg.exe
added downloads/build_win_3.02.exe
added trunk/Source/util/file2.d
added trunk/Source/util/file2_bn.d

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Docs/User_Manual.html

    r47 r48  
    1 <?xml version="1.0" encoding="utf-8"?> 
    2                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 HTML//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    32                 <html> 
    43                 <head> 
    5                  <meta http-equiv="content-type" content="text/html; charset=utf-8"
    6                  <link rel="stylesheet" type="text/css" href="style.css" title="standard"
    7                  <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
     4                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
     5                 <link rel="stylesheet" type="text/css" href="style.css" title="standard"
     6                 <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
    87                 <title></title> 
    98                 </head> 
     
    1211 
    1312<p class="page_title">Build Utility <span class="page_title">&copy; 2006, Derek Parnell, Melbourne</span> 
    14                  <br /> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
    15                  <a name="description"><h1 class="topic">Topic: Description</h1></a
    16 <p>Build is a tool to assist building applications and libraries written 
     13                 <br> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
     14                 <h1 class="topic"><a name="description">Topic: Description</a></h1
     15<div class="section">Build is a tool to assist building applications and libraries written 
    1716using the D programming language. 
    18 </p
     17</div
    1918 
    2019 
     
    3736 
    3837<div class="toc"><h2 class="toc"><a name="toc">Table of Contents</a></h2><ul>   <li><a href="change_log.html">Change Log</a></li> 
    39     <ul><li><a href="User_Manual.html#license"><span class="subtoc">License</span></a></li></ul> 
     38        <li class="indent"><span class="subtoc"><a href="User_Manual.html#license">License</a></span></li> 
     39 
    4040    <li><a href="introduction.html">Introduction</a></li> 
    4141 
    4242    <li><a href="pragmas.html">Pragmas</a></li> 
    43     <ul><li><a href="pragmas.html#pragma_build"><span class="subtoc">Build</span></a></li></ul> 
    44     <ul><li><a href="pragmas.html#pragma_build_def"><span class="subtoc">Build Def</span></a></li></ul> 
    45     <ul><li><a href="pragmas.html#pragma_export_version"><span class="subtoc">Export Version</span></a></li></ul> 
    46     <ul><li><a href="pragmas.html#pragma_include"><span class="subtoc">Include</span></a></li></ul> 
    47     <ul><li><a href="pragmas.html#pragma_link"><span class="subtoc">Link</span></a></li></ul> 
    48     <ul><li><a href="pragmas.html#pragma_nolink"><span class="subtoc">Nolink</span></a></li></ul> 
    49     <ul><li><a href="pragmas.html#pragma_target"><span class="subtoc">Target</span></a></li></ul> 
     43        <li class="indent"><span class="subtoc"><a href="pragmas.html#pragma_build">Build</a></span></li> 
     44        <li class="indent"><span class="subtoc"><a href="pragmas.html#pragma_build_def">Build Def</a></span></li> 
     45        <li class="indent"><span class="subtoc"><a href="pragmas.html#pragma_export_version">Export Version</a></span></li> 
     46        <li class="indent"><span class="subtoc"><a href="pragmas.html#pragma_ignore">Ignore</a></span></li> 
     47        <li class="indent"><span class="subtoc"><a href="pragmas.html#pragma_include">Include</a></span></li> 
     48        <li class="indent"><span class="subtoc"><a href="pragmas.html#pragma_link">Link</a></span></li> 
     49        <li class="indent"><span class="subtoc"><a href="pragmas.html#pragma_nolink">Nolink</a></span></li> 
     50        <li class="indent"><span class="subtoc"><a href="pragmas.html#pragma_target">Target</a></span></li> 
    5051 
    5152    <li><a href="autobuild.html">Auto Build Number</a></li> 
     
    5859 
    5960    <li><a href="switches.html">Switches</a></li> 
    60     <ul><li><a href="switches.html#switch_help"><span class="subtoc">-?</span></a></li></ul
    61     <ul><li><a href="switches.html#switch_allobj"><span class="subtoc">-allobj</span></a></li></ul
    62     <ul><li><a href="switches.html#switch_autowinlibs"><span class="subtoc">-AutoWinLibs</span></a></li></ul
    63     <ul><li><a href="switches.html#switch_CFPATH"><span class="subtoc">-CFPATH</span></a></li></ul
    64     <ul><li><a href="switches.html#switch_cleanup"><span class="subtoc">-clean</span></a></li></ul
    65     <ul><li><a href="switches.html#switch_cleanup"><span class="subtoc">-cleanup</span></a></li></ul
    66     <ul><li><a href="switches.html#switch_DCPATH"><span class="subtoc">-DCPATH</span></a></li></ul
    67     <ul><li><a href="switches.html#switch_dll"><span class="subtoc">-dll</span></a></li></ul
    68     <ul><li><a href="switches.html#switch_exec"><span class="subtoc">-exec&lt;args&gt;</span></a></li></ul
    69     <ul><li><a href="switches.html#switch_full"><span class="subtoc">-full</span></a></li></ul
    70     <ul><li><a href="switches.html#switch_gui"><span class="subtoc">-gui</span></a></li></ul
    71     <ul><li><a href="switches.html#switch_help"><span class="subtoc">-h</span></a></li></ul
    72     <ul><li><a href="switches.html#switch_help"><span class="subtoc">-help</span></a></li></ul
    73     <ul><li><a href="switches.html#switch_info"><span class="subtoc">-info</span></a></li></ul
    74     <ul><li><a href="switches.html#switch_lib"><span class="subtoc">-lib</span></a></li></ul
    75     <ul><li><a href="switches.html#switch_LIBOPT"><span class="subtoc">-LIBOPT&lt;option(s)&gt;</span></a></li></ul
    76     <ul><li><a href="switches.html#switch_LIBPATH"><span class="subtoc">-LIBPATH&lt;path&gt;</span></a></li></ul
    77     <ul><li><a href="switches.html#switch_link"><span class="subtoc">-link</span></a></li></ul
    78     <ul><li><a href="switches.html#switch_M"><span class="subtoc">-M&lt;name&gt;</span></a></li></ul
    79     <ul><li><a href="switches.html#switch_MDF"><span class="subtoc">-MDF&lt;file&gt;</span></a></li></ul
    80     <ul><li><a href="switches.html#switch_modules"><span class="subtoc">-modules&lt;=name&gt;</span></a></li></ul
    81     <ul><li><a href="switches.html#switch_names"><span class="subtoc">-names</span></a></li></ul
    82     <ul><li><a href="switches.html#switch_noautoimport"><span class="subtoc">-noautoimport</span></a></li></ul
    83     <ul><li><a href="switches.html#switch_nodef"><span class="subtoc">-nodef</span></a></li></ul
    84     <ul><li><a href="switches.html#switch_nolib"><span class="subtoc">-nolib</span></a></li></ul
    85     <ul><li><a href="switches.html#switch_nolink"><span class="subtoc">-nolink</span></a></li></ul
    86     <ul><li><a href="switches.html#switch_obj"><span class="subtoc">-obj</span></a></li></ul
    87     <ul><li><a href="switches.html#switch_od"><span class="subtoc">-od&lt;path&gt;</span></a></li></ul
    88     <ul><li><a href="switches.html#switch_PP"><span class="subtoc">-PP&lt;path&gt;</span></a></li></ul
    89     <ul><li><a href="switches.html#switch_R"><span class="subtoc">-R&lt;option&gt;</span></a></li></ul
    90     <ul><li><a href="switches.html#switch_RDF"><span class="subtoc">-RDF&lt;file&gt;</span></a></li></ul
    91     <ul><li><a href="switches.html#switch_silent"><span class="subtoc">-silent</span></a></li></ul
    92     <ul><li><a href="switches.html#switch_T"><span class="subtoc">-T&lt;name&gt;</span></a></li></ul
    93     <ul><li><a href="switches.html#switch_test"><span class="subtoc">-test</span></a></li></ul
    94     <ul><li><a href="switches.html#switch_uses"><span class="subtoc">-uses</span></a></li></ul
    95     <ul><li><a href="switches.html#switch_UMB"><span class="subtoc">-UMB</span></a></li></ul
    96     <ul><li><a href="switches.html#switch_v"><span class="subtoc">-v (lowercase)</span></a></li></ul
    97     <ul><li><a href="switches.html#switch_V"><span class="subtoc">-V (uppercase)</span></a></li></ul
    98     <ul><li><a href="switches.html#switch_X"><span class="subtoc">-X&lt;name&gt;</span></a></li></ul
     61        <li class="indent"><span class="subtoc"><a href="switches.html#switch_help">-?</a></span></li
     62        <li class="indent"><span class="subtoc"><a href="switches.html#switch_allobj">-allobj</a></span></li
     63        <li class="indent"><span class="subtoc"><a href="switches.html#switch_autowinlibs">-AutoWinLibs</a></span></li
     64        <li class="indent"><span class="subtoc"><a href="switches.html#switch_CFPATH">-CFPATH</a></span></li
     65        <li class="indent"><span class="subtoc"><a href="switches.html#switch_cleanup">-clean</a></span></li
     66        <li class="indent"><span class="subtoc"><a href="switches.html#switch_cleanup">-cleanup</a></span></li
     67        <li class="indent"><span class="subtoc"><a href="switches.html#switch_DCPATH">-DCPATH</a></span></li
     68        <li class="indent"><span class="subtoc"><a href="switches.html#switch_dll">-dll</a></span></li
     69        <li class="indent"><span class="subtoc"><a href="switches.html#switch_exec">-exec&lt;args&gt;</a></span></li
     70        <li class="indent"><span class="subtoc"><a href="switches.html#switch_full">-full</a></span></li
     71        <li class="indent"><span class="subtoc"><a href="switches.html#switch_gui">-gui</a></span></li
     72        <li class="indent"><span class="subtoc"><a href="switches.html#switch_help">-h</a></span></li
     73        <li class="indent"><span class="subtoc"><a href="switches.html#switch_help">-help</a></span></li
     74        <li class="indent"><span class="subtoc"><a href="switches.html#switch_info">-info</a></span></li
     75        <li class="indent"><span class="subtoc"><a href="switches.html#switch_lib">-lib</a></span></li
     76        <li class="indent"><span class="subtoc"><a href="switches.html#switch_LIBOPT">-LIBOPT&lt;option(s)&gt;</a></span></li
     77        <li class="indent"><span class="subtoc"><a href="switches.html#switch_LIBPATH">-LIBPATH&lt;path&gt;</a></span></li
     78        <li class="indent"><span class="subtoc"><a href="switches.html#switch_link">-link</a></span></li
     79        <li class="indent"><span class="subtoc"><a href="switches.html#switch_M">-M&lt;name&gt;</a></span></li
     80        <li class="indent"><span class="subtoc"><a href="switches.html#switch_MDF">-MDF&lt;file&gt;</a></span></li
     81        <li class="indent"><span class="subtoc"><a href="switches.html#switch_modules">-modules&lt;=name&gt;</a></span></li
     82        <li class="indent"><span class="subtoc"><a href="switches.html#switch_names">-names</a></span></li
     83        <li class="indent"><span class="subtoc"><a href="switches.html#switch_noautoimport">-noautoimport</a></span></li
     84        <li class="indent"><span class="subtoc"><a href="switches.html#switch_nodef">-nodef</a></span></li
     85        <li class="indent"><span class="subtoc"><a href="switches.html#switch_nolib">-nolib</a></span></li
     86        <li class="indent"><span class="subtoc"><a href="switches.html#switch_nolink">-nolink</a></span></li
     87        <li class="indent"><span class="subtoc"><a href="switches.html#switch_obj">-obj</a></span></li
     88        <li class="indent"><span class="subtoc"><a href="switches.html#switch_od">-od&lt;path&gt;</a></span></li
     89        <li class="indent"><span class="subtoc"><a href="switches.html#switch_PP">-PP&lt;path&gt;</a></span></li
     90        <li class="indent"><span class="subtoc"><a href="switches.html#switch_R">-R&lt;option&gt;</a></span></li
     91        <li class="indent"><span class="subtoc"><a href="switches.html#switch_RDF">-RDF&lt;file&gt;</a></span></li
     92        <li class="indent"><span class="subtoc"><a href="switches.html#switch_silent">-silent</a></span></li
     93        <li class="indent"><span class="subtoc"><a href="switches.html#switch_T">-T&lt;name&gt;</a></span></li
     94        <li class="indent"><span class="subtoc"><a href="switches.html#switch_test">-test</a></span></li
     95        <li class="indent"><span class="subtoc"><a href="switches.html#switch_uses">-uses</a></span></li
     96        <li class="indent"><span class="subtoc"><a href="switches.html#switch_UMB">-UMB</a></span></li
     97        <li class="indent"><span class="subtoc"><a href="switches.html#switch_v">-v (lowercase)</a></span></li
     98        <li class="indent"><span class="subtoc"><a href="switches.html#switch_V">-V (uppercase)</a></span></li
     99        <li class="indent"><span class="subtoc"><a href="switches.html#switch_X">-X&lt;name&gt;</a></span></li
    99100 
    100101    <li><a href="response_file.html">Response File</a></li> 
     
    106107</ul></div> 
    107108 
    108 <b>Copyright:</b><br> 
    109 &copy; 2005 Derek Parnell<br><br> 
    110 <b>Authors:</b><br>Derek Parnell, Melbourne<br><br> 
    111 <b>Initial Creation:</b><br>January 2005<br><br> 
    112 <b>Version:</b><br> 3.0<br><br> 
    113 <b>Date:</b><br> August 2005<br><br> 
    114 <a name="license"></a> 
    115 <b>License:</b><br> 
    116109 
     110<div class="section"><h2 class="section"><a name="copyright">Copyright:<span class="secdef">&copy; 2005 Derek Parnell</span></a></h2></div> 
     111<div class="section"><h2 class="section"><a name="authors">Authors:<span class="secdef">Derek Parnell - Melbourne</span></a></h2></div> 
     112<div class="section"><h2 class="section"><a name="create">Initial Creation:<span class="secdef">January 2005</span></a></h2></div> 
     113<div class="section"><h2 class="section"><a name="version">Version:<span class="secdef">3.02</span></a></h2></div> 
     114<div class="section"><h2 class="section"><a name="date">Date:<span class="secdef">23 June 2006</span></a></h2></div> 
     115<div class="section"><h2 class="section"><a name="license">License:</a></h2> 
    117116<pre class="cite">This software is provided 'as-is', without any express or implied 
    118117warranty. In no event will the authors be held liable for damages 
     
    132131   in full and credit the original source. 
    133132</pre> 
     133</div> 
    134134 
    135 <b>References:</b><br> 
    136   This is based on the work called 'dmake v0.21' by Helmut Leitner 
    137 <br><br> 
     135<div class="section"><h2 class="section"><a name="references">References:<span class="secdef">This is based on the work called 'dmake v0.21' by Helmut Leitner 
     136</span></a></h2></div> 
    138137 
    139138 
    140139 
    141 <br /><hr/><span class="footnote">Generated by Ddoc, Fri Jun  9 16:40:49 2006 
    142  </span></body> 
     140 
     141                 <hr><div class="footnote"><span class="footnote">Generated by Ddoc, Sat Jun 24 00:43:27 2006 
     142 </span></div> 
     143                 </body> 
    143144                 </html> 
  • trunk/Docs/autobuild.html

    r47 r48  
    1 <?xml version="1.0" encoding="utf-8"?> 
    2                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 HTML//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    32                 <html> 
    43                 <head> 
    5                  <meta http-equiv="content-type" content="text/html; charset=utf-8"
    6                  <link rel="stylesheet" type="text/css" href="style.css" title="standard"
    7                  <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
     4                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
     5                 <link rel="stylesheet" type="text/css" href="style.css" title="standard"
     6                 <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
    87                 <title></title> 
    98                 </head> 
     
    1211 
    1312<p class="page_title">Build Utility <span class="page_title">&copy; 2006, Derek Parnell, Melbourne</span> 
    14                  <br /> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
    15                  <a name="autobuild"><h1 class="topic">Topic: Auto Build Number</h1></a
    16 <p>Automatically Incremented Build Numbering for Modules 
     13                 <br> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
     14                 <h1 class="topic"><a name="autobuild">Topic: Auto Build Number</a></h1
     15<div class="section">Automatically Incremented Build Numbering for Modules 
    1716You can optionally specify that the <i>build</i> utility automatically 
    1817increments a build number for any module. You do this by supplying 
     
    3231 by <i>build</i>. <br> 
    3332 
    34 <p><span class="example"><i>Example:</i> If your module is called "parser.d" you would have the lines ...</span><pre class="code">module parser; 
     33<p><span class="example"><i>Example:</i> If your module is called "parser.d" you would have the lines ...</span></p><pre class="code">module parser; 
    3534private import parser_bn; 
    36 </pre></p> 
     35</pre> 
    3736 
    3837You can access the build number from within the module thus ... <br> 
     
    4443 the module names. <br> 
    4544 
    46 <p><span class="example"><i>Example:</i> </span><pre class="code">module parser;  /// This module's name. 
     45<p><span class="example"><i>Example:</i> </span></p><pre class="code">module parser;  /// This module's name. 
    4746private import parser_bn;   /// This module's B/N 
    4847private import tokenizer_bn; /// Another module's B/N 
     
    5150writefln("  Parser %d", parser_bn.auto_build_number); 
    5251writefln("  Tokens %d", tokenizer_bn.auto_build_number); 
    53 </pre></p> 
     52</pre> 
    5453 
    5554The "_bn.d" file created by <i>build</i> for this module would look like ... <br> 
     
    6362 start at 1 and increment whenever <i>Build</i> needed to create a new object 
    6463file for the module. 
    65 </p
     64</div
    6665 
    6766 
    68 <br /><hr/><span class="footnote">Generated by Ddoc, Fri Jun  9 16:40:49 2006 
    69  </span></body> 
     67 
     68                 <hr><div class="footnote"><span class="footnote">Generated by Ddoc, Sat Jun 24 00:43:27 2006 
     69 </span></div> 
     70                 </body> 
    7071                 </html> 
  • trunk/Docs/change_log.html

    r47 r48  
    1 <?xml version="1.0" encoding="utf-8"?> 
    2                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 HTML//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    32                 <html> 
    43                 <head> 
    5                  <meta http-equiv="content-type" content="text/html; charset=utf-8"
    6                  <link rel="stylesheet" type="text/css" href="style.css" title="standard"
    7                  <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
     4                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
     5                 <link rel="stylesheet" type="text/css" href="style.css" title="standard"
     6                 <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
    87                 <title></title> 
    98                 </head> 
     
    1211 
    1312<p class="page_title">Build Utility <span class="page_title">&copy; 2006, Derek Parnell, Melbourne</span> 
    14                  <br /> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
    15                  <a name="change_log"><h1 class="topic">Topic: Change Log</h1></a> 
    16 <p>A list of changes and fixes that have been made. 
    17 </p> 
    18  
    19 <a name=""><h3 class="subsection">v3.01 -- 09/June/2006 </h3></a> 
    20 <ul><span class="list">    <li><span class="item">** <b>FIX: Ticket #18</b> The tool now ignores duplicate source 
    21     file names supplied to it from anywhere.</span></li> 
    22     <li><span class="item">** <b>FIX: Ticket #19</b> The tool now only passes object files, 
    23     library files, DigitalMars .def files, and resource files to the linker.</span></li> 
    24     <li><span class="item">** <b>FIX: Ticket #20</b> The 'Rules' system can now handle creation 
    25     of D source files.</span></li> 
    26     <li><span class="item">** <b>FIX: Ticket #22</b> A few spelling errors corrected in the 
    27     documentation.</span></li> 
    28     <li><span class="item">** <b>FIX: Ticket #23</b> When using a response file for the 
    29     DigitalMars linker, the tool now makes provision for Resource Files.</span></li> 
    30     <li><span class="item">** <b>FIX: Ticket #24</b> The tool now recognises .di files as 
     13                 <br> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
     14                 <h1 class="topic"><a name="change_log">Topic: Change Log</a></h1> 
     15<div class="section">A list of changes and fixes that have been made. 
     16 
     17<h3 class="subsection"><a name="">v3.02 -- 23/June/2006 </a></h3> 
     18<div class="list"><ul>    <li class="item">** <b>FIX: Ticket #27</b> When using 'gcc' as the linker tool, 
     19    <i>Build</i> now uses a space character to delimit file names. 
     20     
     21    <li class="item">** <b>FIX: Ticket #28</b> The Optlink switch options  are now 
     22     correctly placed in a response file  
     23    <li class="item">** <b>FIX: Ticket #29</b> The <i>-exec</i> now works correctly.  
     24    <li class="item">** <b>FIX: Ticket #32</b> The Windows executable in the distro 
     25    now updates the auto_build_number. 
     26    <li class="item">** <b>ENH: Ticket #30</b> The Rules subsystem can now be used 
     27    to generate D source code. There are number of changes in this area 
     28    so read the <a href="rules.html">rules documentation</a> and 
     29    <a href="pragmas.html">pragma documentation</a> for details.  
     30    <li class="item">** <b>ENH: Ticket #31</b> It is now possible to stop a source file 
     31    from being compiled. A new <span class="quote">&quot;pragma(ignore)&quot;</span> has been implemented. 
     32    <li class="item">** <b>ENH:</b> There are some new <i>configuration</i> items that 
     33    can be used to adjust the tools usage. Have a look at the example 
     34    configuration file in the distrubution package. 
     35     
     36</ul></div> 
     37 
     38<h3 class="subsection"><a name="">v3.01 -- 09/June/2006 </a></h3> 
     39<div class="list"><ul>    <li class="item">** <b>FIX: Ticket #18</b> The tool now ignores duplicate source 
     40    file names supplied to it from anywhere. 
     41    <li class="item">** <b>FIX: Ticket #19</b> The tool now only passes object files, 
     42    library files, DigitalMars .def files, and resource files to the linker. 
     43    <li class="item">** <b>FIX: Ticket #20</b> The 'Rules' system can now handle creation 
     44    of D source files. 
     45    <li class="item">** <b>FIX: Ticket #22</b> A few spelling errors corrected in the 
     46    documentation. 
     47    <li class="item">** <b>FIX: Ticket #23</b> When using a response file for the 
     48    DigitalMars linker, the tool now makes provision for Resource Files. 
     49    <li class="item">** <b>FIX: Ticket #24</b> The tool now recognises .di files as 
    3150    source files for the purposes of determining dependancies, but does 
    32     not allow them to be presented on the DMD compiler's command line.</span></li> 
    33     <li><span class="item">** <b>FIX: Ticket #25</b> The tool now scans the PATH environment 
     51    not allow them to be presented on the DMD compiler's command line. 
     52    <li class="item">** <b>FIX: Ticket #25</b> The tool now scans the PATH environment 
    3453    symbol rather than assuming that supplie executable file names that 
    35     do not have a path are in the current directory.</span></li> 
    36     <li><span class="item">** <b>FIX: Ticket #26</b> The LINKCMD configuration item is now 
    37     corrected parsed.</span></li> 
    38     <li><span class="item">** <b>ENH:</b> The 'Rules' functionality now allows some new special 
    39     tokens that represent the Basename and Path of the input and output files.</span></li> 
    40     <li><span class="item">** <b>ENH:</b> The 'Rules' functionality now ensures that the 
    41     output file's path exists prior to running the Rule's tool application.</span></li> 
    42     <li><span class="item">** <b>ENH:</b> The LINKCMD is now able to be used in the Build 
    43     configuration file.</span></li> 
    44     <li><span class="item">** <b>ENH:</b> A new switch "-uses" will cause the tool to 
     54    do not have a path are in the current directory. 
     55    <li class="item">** <b>FIX: Ticket #26</b> The LINKCMD configuration item is now 
     56    corrected parsed. 
     57    <li class="item">** <b>ENH:</b> The 'Rules' functionality now allows some new special 
     58    tokens that represent the Basename and Path of the input and output files. 
     59    <li class="item">** <b>ENH:</b> The 'Rules' functionality now ensures that the 
     60    output file's path exists prior to running the Rule's tool application. 
     61    <li class="item">** <b>ENH:</b> The LINKCMD is now able to be used in the Build 
     62    configuration file. 
     63    <li class="item">** <b>ENH:</b> A new switch "-uses" will cause the tool to 
    4564    create a cross-reference file that details what modules use what, 
    46     and what modules are used by other modules.</span></li> 
    47 </span></ul
    48  
    49  
    50 <a name=""><h3 class="subsection">v3.00 -- 05/June/2006 </h3></a
    51 <ul><span class="list">    <li><span class="item">** <b>FIX:</b> <i>Build</i> was using the wrong object file during 
     65    and what modules are used by other modules. 
     66</ul></div
     67 
     68 
     69<h3 class="subsection"><a name="">v3.00 -- 05/June/2006 </a></h3
     70<div class="list"><ul>    <li class="item">** <b>FIX:</b> <i>Build</i> was using the wrong object file during 
    5271    linkages if a target object file did not exist but one with the same name 
    5372    existed in any of the Import paths. 
    54     </span></li> 
    55     <li><span class="item">** <b>FIX:</b> With the <i>-R=No</i> switch, when using the Digital 
     73     
     74    <li class="item">** <b>FIX:</b> With the <i>-R=No</i> switch, when using the Digital 
    5675     Mars linker, <i>Build</i> was not formatting the command line correctly. 
    57     </span></li> 
    58     <li><span class="item">** <b>FIX: Ticket #10 </b> The tool now recognises the 
     76     
     77    <li class="item">** <b>FIX: Ticket #10 </b> The tool now recognises the 
    5978     <a href="pragmas.html#pragma_link">pragma linked</a> object files when 
    6079     building a library. 
    61     </span></li> 
    62     <li><span class="item">** <b>FIX: Ticket #9 </b> Now, if the output file created by the 
     80     
     81    <li class="item">** <b>FIX: Ticket #9 </b> Now, if the output file created by the 
    6382     rule ends with the library extention, it is presented to the linker 
    6483     as a library rather than an object file. 
    65     </span></li> 
    66     <li><span class="item">** <b>FIX: </b> <i>thanks to gmiller:</i> Added booltype.d to 
     84     
     85    <li class="item">** <b>FIX: </b> <i>thanks to gmiller:</i> Added booltype.d to 
    6786     Makefile files. 
    68     </span></li> 
    69     <li><span class="item">** <b>FIX: Ticket #15 </b> GDC places object files in the 
     87     
     88    <li class="item">** <b>FIX: Ticket #15 </b> GDC places object files in the 
    7089    directory from which it is called so the tool no longer assumes the 
    7190    same directory as the corresponding source file. 
    72     </span></li> 
    73     <li><span class="item">** <b>FIX: Ticket #17 </b> Hopefully its a more posix-friendly 
     91     
     92    <li class="item">** <b>FIX: Ticket #17 </b> Hopefully its a more posix-friendly 
    7493    tool now. Most of the hard-coded switches and options that are 
    7594    environment related are now user-configurable via the <a href="configuration_file.html"> 
    7695    Configuration File</a> functionality. 
    77     </span></li> 
    78     <li><span class="item">** <b>FIX: </b> <i>thanks to gmiller:</i> Corrected the imports 
     96     
     97    <li class="item">** <b>FIX: </b> <i>thanks to gmiller:</i> Corrected the imports 
    7998    in <i>util.fileex.d</i> 
    80     </span></li> 
    81     <li><span class="item">** <b>FIX: </b> <i>thanks to gmiller:</i> Module and package exclusion 
     99     
     100    <li class="item">** <b>FIX: </b> <i>thanks to gmiller:</i> Module and package exclusion 
    82101    was not working if your current directory was in a directory tree that 
    83102    contained the module/package you were excluding. For example if your 
    84103    current directory was C:\dmd\src\phobos it would not exclude any of the 
    85     'std' modules.</span></li> 
    86  
    87     <li><span class="item">** <b>ENH: </b> Any file name on the command line with an extention 
     104    'std' modules. 
     105 
     106    <li class="item">** <b>ENH: </b> Any file name on the command line with an extention 
    88107     of <i>".brf" </i> will be used as a <a href="response_file.html">Build Response File</a> 
    89     </span></li> 
    90  
    91     <li><span class="item">** <b>ENH: </b> If there is nothing on the command line and the 
     108     
     109 
     110    <li class="item">** <b>ENH: </b> If there is nothing on the command line and the 
    92111    file 'build.brf' exists in the current directory, then it will be 
    93112    used as the <a href="response_file.html">Build Response File</a> for this run. 
    94     </span></li> 
    95  
    96     <li><span class="item">** <b>ENH: </b> Will now look for the compiler's configuration file 
     113     
     114 
     115    <li class="item">** <b>ENH: </b> Will now look for the compiler's configuration file 
    97116    in the following areas... 
    98     <ul><span class="list">        <li><span class="item">If defined, the directory defined by the <i>ConfigPath</i> 
     117      <div class="list"><ul>        <li class="item">If defined, the directory defined by the <i>ConfigPath</i> 
    99118        configuration item in <i>Build's</i> configuration file. And in this 
    100         case it doesn't look anywhere in any of the areas listed below.</span></li> 
    101         <li><span class="item">The current directory.</span></li> 
    102         <li><span class="item">The directory named in the <i>HOME</i> environment symbol.</span></li> 
    103         <li><span class="item">For Windows environments only, the directory named in 
    104         the combination of the <i>HOMEDRIVE</i> and <i>HOMEPATH</i> environment symbols.</span></li> 
    105         <li><span class="item">The same directory in which the compiler resides.</span></li> 
    106         <li><span class="item">The directory defined by the <i>EtcPath</i> configuration item 
    107         in <i>Build's</i> configuration file.</span></li> 
    108     </span></ul
    109     </span></li> 
    110  
    111     <li><span class="item">** <b>ENH: </b> It is now possible to add environment specific items 
     119        case it doesn't look anywhere in any of the areas listed below. 
     120        <li class="item">The current directory. 
     121        <li class="item">The directory named in the <i>HOME</i> environment symbol. 
     122        <li class="item">For Windows environments only, the directory named in 
     123        the combination of the <i>HOMEDRIVE</i> and <i>HOMEPATH</i> environment symbols. 
     124        <li class="item">The same directory in which the compiler resides. 
     125        <li class="item">The directory defined by the <i>EtcPath</i> configuration item 
     126        in <i>Build's</i> configuration file. 
     127        </ul></div
     128     
     129 
     130    <li class="item">** <b>ENH: </b> It is now possible to add environment specific items 
    112131    to the build.cfg file. To do so, add the items to the appropriate item group... 
    113         <ul class="indent">        <pre class="cite">            [Windows] 
    114             # items that only apply when building in Windows. 
    115  
    116             [Posix] 
    117             # items that only apply when building in Posix (unix). 
    118  
    119             [DigitalMars] 
    120             # items that only apply when building with DigitalMars tools. 
    121  
    122             [GNU] 
    123             # items that only apply when building with GNU tools. 
    124  
    125             [Windows:DigitalMars] 
    126             # items that only apply when building with DigitalMars tools in Windows. 
    127  
    128             [Windows:GNU] 
    129             # items that only apply when building with GNU tools in Windows. 
    130  
    131             [Posix:DigitalMars] 
    132             # items that only apply when building with DigitalMars tools in Posix. 
    133  
    134             [Posix:GNU] 
    135             # items that only apply when building with GNU tools in Posix. 
    136         </pre> 
    137         </ul> 
    138     </span></li> 
    139  
    140     <li><span class="item">** <b>ENH: </b> A new switch, <b>-UMB=&lt;( Yes/No)&gt;</b> is used 
     132<pre class="cite">[Windows] 
     133# items that only apply when building in Windows. 
     134 
     135[Posix] 
     136# items that only apply when building in Posix (unix). 
     137 
     138[DigitalMars] 
     139# items that only apply when building with DigitalMars tools. 
     140 
     141[GNU] 
     142# items that only apply when building with GNU tools. 
     143 
     144[Windows:DigitalMars] 
     145# items that only apply when building with DigitalMars tools in Windows. 
     146 
     147[Windows:GNU] 
     148# items that only apply when building with GNU tools in Windows. 
     149 
     150[Posix:DigitalMars] 
     151# items that only apply when building with DigitalMars tools in Posix. 
     152 
     153[Posix:GNU] 
     154# items that only apply when building with GNU tools in Posix. 
     155</pre> 
     156     
     157 
     158    <li class="item">** <b>ENH: </b> A new switch, <b>-UMB=&lt;( Yes/No)&gt;</b> is used 
    141159    to specify where the linker expects the object files to be. Unless 
    142160    this switch is used the linker is assumed to look for the object files 
     
    145163    <b>-UMB=yes</b> to ensure that the compiler places object files in the 
    146164    current directory. 
    147     </span></li> 
    148  
    149     <li><span class="item">** <b>ENH: </b> A new switch, <b>-modules=&lt;( name)&gt;</b> is used 
     165     
     166 
     167    <li class="item">** <b>ENH: </b> A new switch, <b>-modules=&lt;( name)&gt;</b> is used 
    150168    create a Module List File. 
    151     </span></li> 
    152  
    153     <li><span class="item">** <b>CHG: </b> When building the <i>Build</i> application itself, 
     169     
     170 
     171    <li class="item">** <b>CHG: </b> When building the <i>Build</i> application itself, 
    154172    you must now add <b>-version=BuildVerbose</b> to the command line if 
    155173    you want an edition of <i>Build</i> that supports the <b>-V</b> (verbose) switch. As 
    156174    shipped, the pre-built editions of <i>Build</i> do not support 
    157175    the <b>-V</b> switch. 
    158     </span></li> 
    159 </span></ul
    160  
    161 <a name=""><h3 class="subsection">v2.10 -- 06/Apr/2006 </h3></a
    162 <ul><span class="list">    <li><span class="item">** <b>FIX: </b> The default Build Response File invoked when just 
    163     placing '@' on the command line is now correctly named "build.brf"</span></li> 
    164     <li><span class="item">** <b>ENH: </b>  For Windows environments, command line files can now use 
    165     either "/" or "\" as path separator characters.</span></li> 
    166     <li><span class="item">** <b>ENH: </b>  The linker program is now used directly rather than being 
    167     invoked via DMD. </span></li> 
    168     <li><span class="item">** <b>ENH: </b> You can now specify the default linker switches in 
    169     the Build Configuration File. </span></li> 
    170     <li><span class="item">** <b>ENH: </b> Using the new switch <i>-PP </i>, you can now 
    171     specify additional paths to search for files.</span></li> 
    172     <li><span class="item">** <b>ENH:</b> Support for <i>Ddoc</i> files.</span></li> 
    173     <li><span class="item">** <b>CHG: </b> The files are now compiled and linked in the 
     176     
     177</ul></div
     178 
     179<h3 class="subsection"><a name="">v2.10 -- 06/Apr/2006 </a></h3
     180<div class="list"><ul>    <li class="item">** <b>FIX: </b> The default Build Response File invoked when just 
     181    placing '@' on the command line is now correctly named "build.brf" 
     182    <li class="item">** <b>ENH: </b>  For Windows environments, command line files can now use 
     183    either "/" or "\" as path separator characters. 
     184    <li class="item">** <b>ENH: </b>  The linker program is now used directly rather than being 
     185    invoked via DMD.  
     186    <li class="item">** <b>ENH: </b> You can now specify the default linker switches in 
     187    the Build Configuration File.  
     188    <li class="item">** <b>ENH: </b> Using the new switch <i>-PP </i>, you can now 
     189    specify additional paths to search for files. 
     190    <li class="item">** <b>ENH:</b> Support for <i>Ddoc</i> files. 
     191    <li class="item">** <b>CHG: </b> The files are now compiled and linked in the 
    174192    same order that they are scanned in. Previously the order depended 
    175193    on the hashing algorithm of D's associative array implementation and 
    176194    the names of the directories containing the source files. 
    177     </span></li> 
    178     <li><span class="item">** <b>CHG:</b> The "-run" switch renamed to "-exec" to avoid clashing with dmd.</span></li> 
    179 </span></ul
    180  
    181 <a name=""><h3 class="subsection">v2.09 -- 10/Aug/2005</h3></a
    182 <ul><span class="list">    <li><span class="item">** <b>FIX:</b> <i>Thanks to barrett9h (rodolfo)</i>: Now correctly handles the return value 
    183     from Unix system() call.</span></li> 
    184     <li><span class="item">** <b>FIX:</b> <i>Thanks to oniony</i>: Now handles non_ASCII characters in PATH 
    185     environment symbol.</span></li> 
    186     <li><span class="item">** <b>CHG:</b> The "-silent" switch now also hides the linker stdout display.</span></li> 
    187     <li><span class="item">** <b>CHG:</b> Now supports and requires DMD v0.126 and GDC v0.13 or later.</span></li> 
    188     <li><span class="item">** <b>ENH:</b> New pragma(export_version) allows specified version identifiers to 
    189     be passed to all modules being compiled.</span></li> 
    190     <li><span class="item">** <b>ENH:</b> New command line switch "-run" to run the program 
    191     after a successful link.</span></li> 
    192 </span></ul
    193  
    194 <a name=""><h3 class="subsection">v2.08 -- 29/May/2005</h3></a
    195 <ul><span class="list">    <li><span class="item">** <b>FIX:</b> <i>Thanks to teqdruid</i>: In Unix environments, 
     195     
     196    <li class="item">** <b>CHG:</b> The "-run" switch renamed to "-exec" to avoid clashing with dmd. 
     197</ul></div
     198 
     199<h3 class="subsection"><a name="">v2.09 -- 10/Aug/2005</a></h3
     200<div class="list"><ul>    <li class="item">** <b>FIX:</b> <i>Thanks to barrett9h (rodolfo)</i>: Now correctly handles the return value 
     201    from Unix system() call. 
     202    <li class="item">** <b>FIX:</b> <i>Thanks to oniony</i>: Now handles non_ASCII characters in PATH 
     203    environment symbol. 
     204    <li class="item">** <b>CHG:</b> The "-silent" switch now also hides the linker stdout display. 
     205    <li class="item">** <b>CHG:</b> Now supports and requires DMD v0.126 and GDC v0.13 or later. 
     206    <li class="item">** <b>ENH:</b> New pragma(export_version) allows specified version identifiers to 
     207    be passed to all modules being compiled. 
     208    <li class="item">** <b>ENH:</b> New command line switch "-run" to run the program 
     209    after a successful link. 
     210</ul></div
     211 
     212<h3 class="subsection"><a name="">v2.08 -- 29/May/2005</a></h3
     213<div class="list"><ul>    <li class="item">** <b>FIX:</b> <i>Thanks to teqdruid</i>: In Unix environments, 
    196214    any pragma(link, &lt;name&gt;) statements were not sending the correct 
    197215    syntax to the compiler's command line. The "&lt;name&gt;" is now prefixed 
    198     with "-L-l" for Unix systems.</span></li> 
    199     <li><span class="item">** <b>FIX:</b> <i>Thanks to Carlos</i>: In Unix environments, any "-version" 
     216    with "-L-l" for Unix systems. 
     217    <li class="item">** <b>FIX:</b> <i>Thanks to Carlos</i>: In Unix environments, any "-version" 
    200218    switch on the Utility's command line was not being converted to the correct Unix 
    201219    format of "-fversion...". So now, if the Build tool gets 
     
    206224    for Windows. <br> 
    207225    <span class="nb"><strong>Note:</strong> The same applies to the "-debug..." and "-fdebug..." switches.</span> 
    208     </span></li> 
    209     <li><span class="item">** <b>FIX:</b> The pragma(nolink) was being ignored under some circumstances. 
     226     
     227    <li class="item">** <b>FIX:</b> The pragma(nolink) was being ignored under some circumstances. 
    210228    Now it splits the compilation phase 
    211229    from the linking phase and excludes the 'nolink' files from the linker's 
    212     command line.</span></li> 
    213     <li><span class="item">** <b>FIX:</b> <i>Thanks to kris</i>: 'debug' statements were not being taken into account when 
    214     examining code for import statements.</span></li> 
    215     <li><span class="item">** <b>FIX:</b> 'debug' and 'version' levels are now being taken into account.</span></li> 
    216     <li><span class="item">** <b>FIX:</b> 'debug' and 'version' values being set inside a source file 
    217     were being made global rather than module scoped.</span></li> 
    218     <li><span class="item">** <b>FIX:</b> <i>Thanks to carlos</i>: The utility was not processing the 
    219     -I switch correctly when using GDC compiler.</span></li> 
    220     <li><span class="item">** <b>ENH:</b> The utility can now accept the -I switch in two forms: 
     230    command line. 
     231    <li class="item">** <b>FIX:</b> <i>Thanks to kris</i>: 'debug' statements were not being taken into account when 
     232    examining code for import statements. 
     233    <li class="item">** <b>FIX:</b> 'debug' and 'version' levels are now being taken into account. 
     234    <li class="item">** <b>FIX:</b> 'debug' and 'version' values being set inside a source file 
     235    were being made global rather than module scoped. 
     236    <li class="item">** <b>FIX:</b> <i>Thanks to carlos</i>: The utility was not processing the 
     237    -I switch correctly when using GDC compiler. 
     238    <li class="item">** <b>ENH:</b> The utility can now accept the -I switch in two forms: 
    221239    <b>-I&lt;path&gt;</b> and <b>-I &lt;path&gt;</b> on its command line, regardless of which 
    222240    compiler is being used. When invoking the compiler, it uses the correct 
    223241    format on the command line of the compiler being used, namely "-I&lt;path&gt;" to 
    224     DMD compiler and "-I &lt;path&gt;" to GDC.</span></li> 
    225     <li><span class="item">** <b>ENH:</b> The path of any source file that imports a module 
     242    DMD compiler and "-I &lt;path&gt;" to GDC. 
     243    <li class="item">** <b>ENH:</b> The path of any source file that imports a module 
    226244    will be added to the list of root paths to search for module source 
    227245    files. This means that you can now have module source files referenced 
    228246    relative to the source file that imports them. This is the new default 
    229247    behaviour but it can be turned off by using the new -noautoimport switch 
    230     or for individual files by placing them inside parenthesis.</span></li> 
    231     <li><span class="item">** <b>ENH:</b> New switch <i>-noautoimport</i> is used to turn off the 
     248    or for individual files by placing them inside parenthesis. 
     249    <li class="item">** <b>ENH:</b> New switch <i>-noautoimport</i> is used to turn off the 
    232250    automatic adding of search roots based on the path of the source files 
    233     being compiled.</span></li> 
    234     <li><span class="item">** <b>ENH:</b> New switch <i>-LIBPATH=</i> is used to add search paths for 
    235     library files.</span></li> 
    236     <li><span class="item">** <b>WARN:</b> The utility only does a single scan of each source file 
     251    being compiled. 
     252    <li class="item">** <b>ENH:</b> New switch <i>-LIBPATH=</i> is used to add search paths for 
     253    library files. 
     254    <li class="item">** <b>WARN:</b> The utility only does a single scan of each source file 
    237255    and thus if an file sets a 'debug' or 'version' value after a function 
    238256    which uses that value, it will be ignored. You are requested to ensure that 
    239257    all your 'debug' and 'version' setting is done prior to the first module 
    240     member.</span></li> 
    241 </span></ul
    242  
    243 <a name=""><h3 class="subsection">v2.07 -- 06/May/2005</h3></a
    244 <ul><span class="list"><li><span class="item">** <b>ENH</b>: New switch <i>-nodef</i> to prevent the utility from 
    245 automatically creating a Module Definition File (.def)</span></li> 
    246 <li><span class="item">** <b>ENH</b>: You can now specify default, and special, settings for 
     258    member. 
     259</ul></div
     260 
     261<h3 class="subsection"><a name="">v2.07 -- 06/May/2005</a></h3
     262<div class="list"><ul><li class="item">** <b>ENH</b>: New switch <i>-nodef</i> to prevent the utility from 
     263automatically creating a Module Definition File (.def) 
     264<li class="item">** <b>ENH</b>: You can now specify default, and special, settings for 
    247265the utility's command line. These are placed in a text configuration file called 
    248266<b>build.cfg</b>. The utility first looks in the same directory as the 
     
    250268configuration file found there, it then looks in the same directory as 
    251269the compiler for a configuration file (build.cfg) and processes it if 
    252 found.</span></li> 
    253 <li><span class="item">** <b>ENH</b>: To support special command line settings that may be 
     270found. 
     271<li class="item">** <b>ENH</b>: To support special command line settings that may be 
    254272specified in the utility's configuration file(s), you can indicate 
    255273one or more setting groups on the command line. These take the format of 
    256274+groupname. The configuration file(s) are scanned for special group settings 
    257 after the default ones have been processed.</span></li> 
    258 <li><span class="item">** <b>ENH</b>: To remove an earlier specified command line switch, you 
     275after the default ones have been processed. 
     276<li class="item">** <b>ENH</b>: To remove an earlier specified command line switch, you 
    259277can prepend it with a hyphen. This new feature may be needed when command 
    260278line switches can come from multiple sources (the original command line, 
     
    262280to remove a switch that may have been provided by some other source. <br> 
    263281For example to negate an earlier "-unittest" switch you code add "--unittest" 
    264 to the command line.</span></li> 
    265 <li><span class="item">** <b>ENH</b>: New switch <i>-od</i> is used to nominate a directory for 
     282to the command line. 
     283<li class="item">** <b>ENH</b>: New switch <i>-od</i> is used to nominate a directory for 
    266284temporary files. For the <i>DigitalMars</i> compiler, this also is used as the location 
    267285to create object files. 
    268 </span></li> 
    269 </span></ul
    270  
    271 <a name=""><h3 class="subsection">v2.06 -- 04/May/2005</h3></a
    272 <ul><span class="list"><li><span class="item">** <b>FIX</b>: <i>Thanks to phoenix</i>: When emitting commandline parameters for 
     286 
     287</ul></div
     288 
     289<h3 class="subsection"><a name="">v2.06 -- 04/May/2005</a></h3
     290<div class="list"><ul><li class="item">** <b>FIX</b>: <i>Thanks to phoenix</i>: When emitting commandline parameters for 
    273291the compiler or librarian, it was possible to have some ending with <b>\"</b> which caused 
    274292the shell to <i>escape</i> the quote character and thus provide incorrect parameters to 
    275293the compiler. 
    276 </span></li> 
    277 </span></ul
    278  
    279 <a name=""><h3 class="subsection">v2.05 -- 02/May/2005</h3></a
    280 <ul><span class="list"><li><span class="item">** <b>FIX</b>: When supplying some forms of relative paths, the 
     294 
     295</ul></div
     296 
     297<h3 class="subsection"><a name="">v2.05 -- 02/May/2005</a></h3
     298<div class="list"><ul><li class="item">** <b>FIX</b>: When supplying some forms of relative paths, the 
    281299utility would crash or give the wrong canonical form of the path. This 
    282300effected formats like \..\anything and  C:..\anything 
    283 </span></li> 
    284 <li><span class="item">** <b>FIX</b>: The utility now assumes the current directory if it can not 
     301 
     302<li class="item">** <b>FIX</b>: The utility now assumes the current directory if it can not 
    285303locate the compiler using the paths on the system PATH symbol. 
    286 </span></li> 
    287 <li><span class="item">** <b>FIX</b>: The utility now assumes the compiler's location if no path 
     304 
     305<li class="item">** <b>FIX</b>: The utility now assumes the compiler's location if no path 
    288306for the configuration file has been specified. 
    289 </span></li> 
    290 <li><span class="item">** <b>FIX</b>: The utility now supports better parsing of the lines in the 
     307 
     308<li class="item">** <b>FIX</b>: The utility now supports better parsing of the lines in the 
    291309configuration file. It handles odd variations of embedded quotes. 
    292 </span></li> 
    293 <li><span class="item">** <b>ENH</b>: The utility now supports Windows 95/98/ME for file times. 
    294 </span></li> 
    295 </span></ul
    296  
    297 <a name=""><h3 class="subsection">v2.04 -- 29/Apr/2005</h3></a
    298 <ul><span class="list"><li><span class="item">** <b>FIX</b>: <i>Thanks to Nils Hensel</i>: The utility was not correctly 
     310 
     311<li class="item">** <b>ENH</b>: The utility now supports Windows 95/98/ME for file times. 
     312 
     313</ul></div
     314 
     315<h3 class="subsection"><a name="">v2.04 -- 29/Apr/2005</a></h3
     316<div class="list"><ul><li class="item">** <b>FIX</b>: <i>Thanks to Nils Hensel</i>: The utility was not correctly 
    299317parsing the DFLAGS line in the configuration file when it contained 
    300318embedded quote characters. 
    301 </span></li> 
    302 <li><span class="item">** <b>FIX</b>: <i>Thanks to Anders F Bjoerklund</i>: The utility was not treating 
     319 
     320<li class="item">** <b>FIX</b>: <i>Thanks to Anders F Bjoerklund</i>: The utility was not treating 
    303321directory names that contained dots correctly. 
    304 </span></li> 
    305 <li><span class="item">** <b>FIX</b>: <i>Thanks to Carlos</i>: Unix-style files that end with a nested comment 
     322 
     323<li class="item">** <b>FIX</b>: <i>Thanks to Carlos</i>: Unix-style files that end with a nested comment 
    306324delimiter are now handled correctly. 
    307 </span></li> 
    308 <li><span class="item">** <b>ENH</b>: /i"thanks to qbert(Charlie)": The location of the librarian tool can now 
     325 
     326<li class="item">** <b>ENH</b>: /i"thanks to qbert(Charlie)": The location of the librarian tool can now 
    309327be specified. It can be explictly named on a LIBCMD= line inside the 
    310328DMD configuration file, or failing that, implictly assumed to be in the 
    311329same directory as the DMD linker. 
    312 </span></li> 
    313 <li><span class="item">** <b>ENH</b>: A new commandline switch -LIBOPT which allows you to pass 
     330 
     331<li class="item">** <b>ENH</b>: A new commandline switch -LIBOPT which allows you to pass 
    314332commandline options to the librarian. 
    315 </span></li> 
    316 </span></ul
    317  
    318 <a name=""><h3 class="subsection">v2.03 -- 20/Apr/2005</h3></a
    319 <ul><span class="list"><li><span class="item">** <b>FIX</b>: <i>Thanks to Carlos</i>: The linux build had a spelling mistake 
     333 
     334</ul></div
     335 
     336<h3 class="subsection"><a name="">v2.03 -- 20/Apr/2005</a></h3
     337<div class="list"><ul><li class="item">** <b>FIX</b>: <i>Thanks to Carlos</i>: The linux build had a spelling mistake 
    320338in source.d (line 286). The indentifier "lNextMod" should have been coded 
    321339 as "lNextModule". 
    322 </span></li> 
    323 </span></ul
    324  
    325 <a name=""><h3 class="subsection">v2.02 -- 19/Apr/2005</h3></a
    326 <ul><span class="list"><li><span class="item">** <b>FIX</b>: <i>Thanks to Carlos</i>: The utility was not handling the situation 
     340 
     341</ul></div
     342 
     343<h3 class="subsection"><a name="">v2.02 -- 19/Apr/2005</a></h3
     344<div class="list"><ul><li class="item">** <b>FIX</b>: <i>Thanks to Carlos</i>: The utility was not handling the situation 
    327345where a simple statement, rather than a block statement, followed a version 
    328346directive. 
    329 </span></li> 
    330 <li><span class="item">** <b>FIX</b>: <i>Thanks to aldacron</i>: The utility now respects the compiler's 
     347 
     348<li class="item">** <b>FIX</b>: <i>Thanks to aldacron</i>: The utility now respects the compiler's 
    331349'Output file' switch. Which is '-of[filename]' for DMD and '-o [filename]' 
    332350for GNU. The utility treats it as an alias for its -T switch. 
    333 </span></li> 
    334 <li><span class="item">** <b>FIX</b>: <i>Thanks to aldacron</i>: The utility now respects the DMD compiler's 
     351 
     352<li class="item">** <b>FIX</b>: <i>Thanks to aldacron</i>: The utility now respects the DMD compiler's 
    335353'Object Path' switch. If you have '-odsomepath' on the command line, the 
    336354utility adds this to the search path when checking for up-to-date files, 
    337355and will clean up files in that directory if requested to (-clean). It will 
    338356also create the directory if it doesn't exist. 
    339 </span></li> 
    340 </span></ul
    341  
    342 <a name=""><h3 class="subsection">v2.01 -- 18/Apr/2005</h3></a
    343 <ul><span class="list"><li><span class="item">** <b>FIX</b>: /i"thanks to Justin (jcc7)": If an excluded module (-X) was 
     357 
     358</ul></div
     359 
     360<h3 class="subsection"><a name="">v2.01 -- 18/Apr/2005</a></h3
     361<div class="list"><ul><li class="item">** <b>FIX</b>: /i"thanks to Justin (jcc7)": If an excluded module (-X) was 
    344362in a package at the current directory level, it was not being excluded. 
    345 </span></li> 
    346 </span></ul
    347  
    348 <a name=""><h3 class="subsection">v2.00 -- 08/Apr/2005</h3></a
    349 <ul><span class="list"><li><span class="item">** <b>FIX</b>: Now supports the raw-string delimiter ` in Build's own 
     363 
     364</ul></div
     365 
     366<h3 class="subsection"><a name="">v2.00 -- 08/Apr/2005</a></h3
     367<div class="list"><ul><li class="item">** <b>FIX</b>: Now supports the raw-string delimiter ` in Build's own 
    350368pragma commands. 
    351 </span></li> 
    352 <li><span class="item">** <b>FIX</b>: Now handles backslash escapes in Build's own 
     369 
     370<li class="item">** <b>FIX</b>: Now handles backslash escapes in Build's own 
    353371pragma commands. 
    354 </span></li> 
    355 <li><span class="item">** <b>ENH</b>: New -silent switch avoids all unnecessary messages. 
    356 </span></li> 
    357 <li><span class="item">** <b>ENH</b>: New -help switch displays full usage text. Aliases: -h, -? 
    358 </span></li> 
    359 </span></ul
    360  
    361 <a name=""><h3 class="subsection">v1.19 -- 04/Apr/2005</h3></a
    362 <ul><span class="list"><li><span class="item">** <b>FIX</b>: <i>Thanks to Ben Hinkle</i>. When creating a library in Linux, 
     372 
     373<li class="item">** <b>ENH</b>: New -silent switch avoids all unnecessary messages. 
     374 
     375<li class="item">** <b>ENH</b>: New -help switch displays full usage text. Aliases: -h, -? 
     376 
     377</ul></div
     378 
     379<h3 class="subsection"><a name="">v1.19 -- 04/Apr/2005</a></h3
     380<div class="list"><ul><li class="item">** <b>FIX</b>: <i>Thanks to Ben Hinkle</i>. When creating a library in Linux, 
    363381the utility was looking for <i>.obj</i> files instead of <i>.o</i> files. 
    364 </span></li> 
    365 <li><span class="item">** <b>FIX</b>" When creating a library, if a source file had more than one 
     382 
     383<li class="item">** <b>FIX</b>" When creating a library, if a source file had more than one 
    366384<i>.d</i> in its name, the utility would look for the wrong object file for it. 
    367 </span></li> 
    368 </span></ul
    369  
    370 <a name=""><h3 class="subsection">v1.18 -- 03/Apr/2005</h3></a
    371 <ul><span class="list"><li><span class="item">** <b>FIX</b>: If mixed case was used, it was possible to have duplicate 
     385 
     386</ul></div
     387 
     388<h3 class="subsection"><a name="">v1.18 -- 03/Apr/2005</a></h3
     389<div class="list"><ul><li class="item">** <b>FIX</b>: If mixed case was used, it was possible to have duplicate 
    372390element types in a OptLink module definition file. Effected the use of 
    373391pragma(build_def). 
    374 </span></li> 
    375 <li><span class="item">** <b>ENH</b>: Some performance improvements. 
    376 </span></li> 
    377 </span></ul
    378  
    379 <a name=""><h3 class="subsection">v1.17 -- 30/Mar/2005</h3></a
    380 <ul><span class="list"><li><span class="item">** <b>FIX</b>: In Windows systems, the utility now does case-insensitive 
     392 
     393<li class="item">** <b>ENH</b>: Some performance improvements. 
     394 
     395</ul></div
     396 
     397<h3 class="subsection"><a name="">v1.17 -- 30/Mar/2005</a></h3
     398<div class="list"><ul><li class="item">** <b>FIX</b>: In Windows systems, the utility now does case-insensitive 
    381399 path name compares. 
    382 </span></li> 
    383 <li><span class="item">** <b>FIX</b>: A bug in the String Search function crashed the utility 
     400 
     401<li class="item">** <b>FIX</b>: A bug in the String Search function crashed the utility 
    384402when the -T switch was used with target names less than 9 characters long. 
    385 </span></li> 
    386 <li><span class="item">** <b>ENH</b>: The new switch <b>-obj</b> is available. This is just a shorthand 
     403 
     404<li class="item">** <b>ENH</b>: The new switch <b>-obj</b> is available. This is just a shorthand 
    387405for having both <i>-nolib</i> and <i>-nolink</i> on the command line. 
    388 </span></li> 
    389 </span></ul
    390  
    391 <a name=""><h3 class="subsection">v1.16 -- 28/Mar/2005</h3></a
    392 <ul><span class="list"><li><span class="item">** <b>FIX</b>: The utility now handles quotes around pragma(link) references. 
    393 </span></li> 
    394 <li><span class="item">** <b>FIX</b>: The utility now handles multiple references to the same module 
     406 
     407</ul></div
     408 
     409<h3 class="subsection"><a name="">v1.16 -- 28/Mar/2005</a></h3
     410<div class="list"><ul><li class="item">** <b>FIX</b>: The utility now handles quotes around pragma(link) references. 
     411 
     412<li class="item">** <b>FIX</b>: The utility now handles multiple references to the same module 
    395413even though they are using different 'path' specifications. 
    396 </span></li> 
    397 <li><span class="item">** <b>ENH</b>: The utility now has support for making Windows DLL files. 
    398 </span></li> 
    399 </span></ul
    400  
    401 <a name=""><h3 class="subsection">v1.15 -- 24/Mar/2005</h3></a
    402 <ul><span class="list"><li><span class="item">** <b>FIX</b>: The utility now checks for more recent libraries and 
     414 
     415<li class="item">** <b>ENH</b>: The utility now has support for making Windows DLL files. 
     416 
     417</ul></div
     418 
     419<h3 class="subsection"><a name="">v1.15 -- 24/Mar/2005</a></h3
     420<div class="list"><ul><li class="item">** <b>FIX</b>: The utility now checks for more recent libraries and 
    403421object files as added by pragma(link), pragma(build), and command line. It 
    404422didn't used to rebuild the executable if only a new version of a library 
    405423was present. 
    406 </span></li> 
    407 <li><span class="item">** <b>FIX</b>: The order of the librarian parameters was incorrect. 
    408 </span></li> 
    409 <li><span class="item">** <b>FIX</b>: The utility was not using the correct path name if importing 
     424 
     425<li class="item">** <b>FIX</b>: The order of the librarian parameters was incorrect. 
     426 
     427<li class="item">** <b>FIX</b>: The utility was not using the correct path name if importing 
    410428modules from some Import paths. 
    411 </span></li> 
    412 <li><span class="item">** <b>ENH</b>: Verbose mode now shows the ignored and noticed packages. 
    413 </span></li> 
    414 </span></ul
    415  
    416 <a name=""><h3 class="subsection">v1.14 -- 23/Mar/2005</h3></a
    417 <ul><span class="list"><li><span class="item">** <b>FIX</b>: <i>Thanks to teqDruid.</i> For GNU platforms, the utility 
     429 
     430<li class="item">** <b>ENH</b>: Verbose mode now shows the ignored and noticed packages. 
     431 
     432</ul></div
     433 
     434<h3 class="subsection"><a name="">v1.14 -- 23/Mar/2005</a></h3
     435<div class="list"><ul><li class="item">** <b>FIX</b>: <i>Thanks to teqDruid.</i> For GNU platforms, the utility 
    418436 now passes any library name found in pragma(link,...) to the linker. 
    419 </span></li> 
    420 <li><span class="item">** <b>FIX</b>: Nows correctly handles unix and Microsoft line-ends. 
    421 </span></li> 
    422 <li><span class="item">** <b>FIX</b>: <i>Thanks to Ben Hinkle.</i> Using relative paths '..' and '.' 
     437 
     438<li class="item">** <b>FIX</b>: Nows correctly handles unix and Microsoft line-ends. 
     439 
     440<li class="item">** <b>FIX</b>: <i>Thanks to Ben Hinkle.</i> Using relative paths '..' and '.' 
    423441now work correctly on the -I switch. 
    424 </span></li> 
    425 <li><span class="item">** <b>FIX</b>: <i>Thanks to Ben Hinkle.</i> The correct librarian program 'ar' 
     442 
     443<li class="item">** <b>FIX</b>: <i>Thanks to Ben Hinkle.</i> The correct librarian program 'ar' 
    426444is now called on unix systems. 
    427 </span></li> 
    428 <li><span class="item">** <b>ENH</b>: The new switch -names displays the names of the files 
     445 
     446<li class="item">** <b>ENH</b>: The new switch -names displays the names of the files 
    429447used in building the target. This is not a noisy as verbose mode. 
    430 </span></li> 
    431 <li><span class="item">** <b>ENH</b>: New pragma <b>include</b> used to identify a file that 
     448 
     449<li class="item">** <b>ENH</b>: New pragma <b>include</b> used to identify a file that 
    432450must be included in the compilation process but is not one that 
    433451is imported by any file in the group. Only needed if command line 
     
    435453 include the file containing the 'main' function from a file that 
    436454does not import that file. Rarely needed. 
    437 </span></li> 
    438 <li><span class="item">** <b>ENH</b>: New pragma <b>build</b> used to build 'foreign' file types 
     455 
     456<li class="item">** <b>ENH</b>: New pragma <b>build</b> used to build 'foreign' file types 
    439457that D doesn't know about. 
    440 </span></li> 
    441 <li><span class="item">** <b>ENH</b>: New pragma <b>target</b> used to nominate the default target 
     458 
     459<li class="item">** <b>ENH</b>: New pragma <b>target</b> used to nominate the default target 
    442460file name. 
    443 </span></li> 
    444 <li><span class="item">** <b>ENH</b>: You can now use a symbolic target name on the -T switch. 
    445 </span></li> 
    446 </span></ul
    447  
    448 <a name=""><h3 class="subsection">v1.13 -- 13/Mar/2005</h3></a
    449 <ul><span class="list"><li><span class="item">** <b>FIX</b>: Explictly included paths entered on the -I switch are 
     461 
     462<li class="item">** <b>ENH</b>: You can now use a symbolic target name on the -T switch. 
     463 
     464</ul></div
     465 
     466<h3 class="subsection"><a name="">v1.13 -- 13/Mar/2005</a></h3
     467<div class="list"><ul><li class="item">** <b>FIX</b>: Explictly included paths entered on the -I switch are 
    450468now added to the dmd command line. 
    451 </span></li> 
    452 <li><span class="item">** <b>FIX</b>: Explictly excluded modules (via -X) were only checking package 
     469 
     470<li class="item">** <b>FIX</b>: Explictly excluded modules (via -X) were only checking package 
    453471names. They also check for module names now. 
    454 </span></li> 
    455 <li><span class="item">** <b>FIX</b>: Imported files are now looked for relative to the current directory 
     472 
     473<li class="item">** <b>FIX</b>: Imported files are now looked for relative to the current directory 
    456474before the import paths are checked. 
    457 </span></li> 
    458 <li><span class="item">** <b>FIX</b>: The utility now checks the DFLAG environment symbol in 
     475 
     476<li class="item">** <b>FIX</b>: The utility now checks the DFLAG environment symbol in 
    459477non-<i>DigitalMars</i> D compilers. 
    460 </span></li> 
    461 <li><span class="item">** <b>CHG</b>: The switch -nounittest is now deprecated and ignored if used. 
     478 
     479<li class="item">** <b>CHG</b>: The switch -nounittest is now deprecated and ignored if used. 
    462480The default setting is no longer to compile with unittests turned on. 
    463 </span></li> 
    464 </span></ul
    465  
    466 <a name=""><h3 class="subsection">v1.12 -- 6/Mar/2005</h3></a
    467 <ul><span class="list"><li><span class="item">** <b>FIX</b>: The response file (-Ry) is now only the default when using 
     481 
     482</ul></div
     483 
     484<h3 class="subsection"><a name="">v1.12 -- 6/Mar/2005</a></h3
     485<div class="list"><ul><li class="item">** <b>FIX</b>: The response file (-Ry) is now only the default when using 
    468486<i>DigitalMars</i> tools on Windows. All other environments do not use the response 
    469487file by default. 
    470 </span></li> 
    471 </span></ul
    472  
    473 <a name=""><h3 class="subsection">v1.11 -- 4/Mar/2005</h3></a
    474 <ul><span class="list"><li><span class="item">** <b>FIX</b>: No long outputs empty compiler tool switches. 
    475 </span></li> 
    476 </span></ul
    477  
    478 <a name=""><h3 class="subsection">v1.10 -- 4/Mar/2005</h3></a
    479 <ul><span class="list"><li><span class="item">** <b>FIX</b>: <i>Thanks to Carlos.</i> Better support for GDC command line switches. 
    480 </span></li> 
    481 <li><span class="item">** <b>FIX</b>: <i>Thanks to Carlos.</i> Cause 'Unix' version to trigger Posix code. 
    482 </span></li> 
    483 <li><span class="item">** <b>FIX</b>: <i>Thanks to Carlos.</i> The vUseResponseFile variable was only being 
     488 
     489</ul></div
     490 
     491<h3 class="subsection"><a name="">v1.11 -- 4/Mar/2005</a></h3
     492<div class="list"><ul><li class="item">** <b>FIX</b>: No long outputs empty compiler tool switches. 
     493 
     494</ul></div
     495 
     496<h3 class="subsection"><a name="">v1.10 -- 4/Mar/2005</a></h3
     497<div class="list"><ul><li class="item">** <b>FIX</b>: <i>Thanks to Carlos.</i> Better support for GDC command line switches. 
     498 
     499<li class="item">** <b>FIX</b>: <i>Thanks to Carlos.</i> Cause 'Unix' version to trigger Posix code. 
     500 
     501<li class="item">** <b>FIX</b>: <i>Thanks to Carlos.</i> The vUseResponseFile variable was only being 
    484502declared in the Windows version. 
    485 </span></li> 
    486 <li><span class="item">** <b>FIX</b>: No passes space-embedded switches and paths to the compiler 
     503 
     504<li class="item">** <b>FIX</b>: No passes space-embedded switches and paths to the compiler 
    487505tools correctly. 
    488 </span></li> 
    489 <li><span class="item">** <b>ENH</b>: If an environment symbol called DFLAGS has been defined, it is 
     506 
     507<li class="item">** <b>ENH</b>: If an environment symbol called DFLAGS has been defined, it is 
    490508analyzed. This is done before any configuration file processing. 
    491 </span></li> 
    492 <li><span class="item">** <b>ENH</b>: New command line switch -test. This shows the command lines 
     509 
     510<li class="item">** <b>ENH</b>: New command line switch -test. This shows the command lines 
    493511instead of running them. No compiling or linking is done. 
    494 </span></li> 
    495 </span></ul
    496  
    497 <a name=""><h3 class="subsection">v1.9 -- 3/Mar/2005</h3></a
    498 <ul><span class="list"><li><span class="item">** <b>FIX</b>: <i>Thanks to Carlos.</i> For unix, it now uses ':' instead of ';' for path 
     512 
     513</ul></div
     514 
     515<h3 class="subsection"><a name="">v1.9 -- 3/Mar/2005</a></h3
     516<div class="list"><ul><li class="item">** <b>FIX</b>: <i>Thanks to Carlos.</i> For unix, it now uses ':' instead of ';' for path 
    499517separators when parsing the configuration file lines. 
    500 </span></li> 
    501 <li><span class="item">** <b>FIX</b>: <i>Thanks to Carlos.</i> The default location for the configuration 
     518 
     519<li class="item">** <b>FIX</b>: <i>Thanks to Carlos.</i> The default location for the configuration 
    502520file was being ignored. 
    503 </span></li> 
    504 <li><span class="item">** <b>ENH</b>: A new command line switch <b>-R</b> used to control the use 
     521 
     522<li class="item">** <b>ENH</b>: A new command line switch <b>-R</b> used to control the use 
    505523 of a response file for the compiler tools. 
    506 </span></li> 
    507 </span></ul
    508  
    509 <a name=""><h3 class="subsection">v1.8 -- 1/Mar/2005</h3></a
    510 <ul><span class="list"><li><span class="item">** <b>FIX</b>: <i>Thanks to Anders F Bjoerklund:</i> Removed nonASCII chars from source code. 
    511 </span></li> 
    512 <li><span class="item">** <b>FIX</b>: <i>Thanks to Anders F Bjoerklund:</i> Changed version(GDC) to version(GNU) 
    513 </span></li> 
    514 <li><span class="item">** <b>FIX</b>: Changed compiler name for GNU versions from 'dmd' to 'gdc' 
    515 </span></li> 
    516 <li><span class="item">** <b>FIX</b>: <i>Thanks to Carlos.</i> The application was incorrectly parsing the DFLAGS sc.ini line. 
    517 </span></li> 
    518 <li><span class="item">** <b>ENH</b>: <i>Thanks to Anders F Bjoerklund:</i> Provided a Makefile for the initial 
     524 
     525</ul></div
     526 
     527<h3 class="subsection"><a name="">v1.8 -- 1/Mar/2005</a></h3
     528<div class="list"><ul><li class="item">** <b>FIX</b>: <i>Thanks to Anders F Bjoerklund:</i> Removed nonASCII chars from source code. 
     529 
     530<li class="item">** <b>FIX</b>: <i>Thanks to Anders F Bjoerklund:</i> Changed version(GDC) to version(GNU) 
     531 
     532<li class="item">** <b>FIX</b>: Changed compiler name for GNU versions from 'dmd' to 'gdc' 
     533 
     534<li class="item">** <b>FIX</b>: <i>Thanks to Carlos.</i> The application was incorrectly parsing the DFLAGS sc.ini line. 
     535 
     536<li class="item">** <b>ENH</b>: <i>Thanks to Anders F Bjoerklund:</i> Provided a Makefile for the initial 
    519537compile of the application. 
    520 </span></li> 
    521 </span></ul
    522  
    523 <a name=""><h3 class="subsection">v1.7 -- 28/Feb/2005</h3></a
    524 <ul><span class="list"><li><span class="item">** <b>FIX</b>: <i>Thanks to clayasaurus.</i> Linux edition was not compiling 
     538 
     539</ul></div
     540 
     541<h3 class="subsection"><a name="">v1.7 -- 28/Feb/2005</a></h3
     542<div class="list"><ul><li class="item">** <b>FIX</b>: <i>Thanks to clayasaurus.</i> Linux edition was not compiling 
    525543due to a missing 'version(Windows)' block around the use of vWinVer 
    526 </span></li> 
    527 </span></ul
    528  
    529 <a name=""><h3 class="subsection">v1.6 -- 28/Feb/2005</h3></a
    530 <ul><span class="list"><li><span class="item">** <b>FIX</b>: <i>Thanks to Kris.</i> The utility was not including the DCPATH value 
     544 
     545</ul></div
     546 
     547<h3 class="subsection"><a name="">v1.6 -- 28/Feb/2005</a></h3
     548<div class="list"><ul><li class="item">** <b>FIX</b>: <i>Thanks to Kris.</i> The utility was not including the DCPATH value 
    531549when invoking the compiler. 
    532 </span></li> 
    533 <li><span class="item">** <b>ENH</b>: When building a Windows app, the .DEF file now includes the 
     550 
     551<li class="item">** <b>ENH</b>: When building a Windows app, the .DEF file now includes the 
    534552version of windows that <i>this</i> application is being run on. 
    535 </span></li> 
    536 <li><span class="item">** <b>ENH</b>: The command line switch <b>-gui</b> can now have an optional 
     553 
     554<li class="item">** <b>ENH</b>: The command line switch <b>-gui</b> can now have an optional 
    537555 version information to specify which Windows version to build for. 
    538556The default Windows Version used is the one for the version running 
    539557 this utility. 
    540 </span></li> 
    541 <li><span class="item">** <b>ENH</b>: New command line switch -info to display the utility's version #. 
    542 </span></li> 
    543 </span></ul
    544  
    545 <a name=""><h3 class="subsection">v1.5 -- 25/Feb/2005</h3></a
    546 <ul><span class="list"><li><span class="item">** <b>FIX</b>: <i>Thanks to clayasaurus.</i> Now only displays the CFPATH 
     558 
     559<li class="item">** <b>ENH</b>: New command line switch -info to display the utility's version #. 
     560 
     561</ul></div
     562 
     563<h3 class="subsection"><a name="">v1.5 -- 25/Feb/2005</a></h3
     564<div class="list"><ul><li class="item">** <b>FIX</b>: <i>Thanks to clayasaurus.</i> Now only displays the CFPATH 
    547565 and DCPATH messages when <i>verbose</i> mode is on. 
    548 </span></li> 
    549 <li><span class="item">** <b>FIX</b>: <i>Thanks to kris.</i> Hardcoded default for DMD path was 
     566 
     567<li class="item">** <b>FIX</b>: <i>Thanks to kris.</i> Hardcoded default for DMD path was 
    550568misleading when dmd.exe was not in the Windows PATH. 
    551 </span></li> 
    552 <li><span class="item">** <b>FIX</b>: The utility was not correctly parsing empty raw strings ``. 
    553 </span></li> 
    554 <li><span class="item">** <b>ENH</b>: <i>Thanks to kris.</i> If the -DCPATH switch is used, then 
     569 
     570<li class="item">** <b>FIX</b>: The utility was not correctly parsing empty raw strings ``. 
     571 
     572<li class="item">** <b>ENH</b>: <i>Thanks to kris.</i> If the -DCPATH switch is used, then 
    555573if the existing DCPATH and CFPATH are the same, this switch changes both. 
    556 </span></li> 
    557 </span></ul
    558  
    559 <a name=""><h3 class="subsection">v1.4 -- 24/Feb/2005</h3></a
    560 <ul><span class="list"><li><span class="item">** <b>FIX</b>: <i>Thanks to Abscissa.</i> The -version switch was being interpreted as 
     574 
     575</ul></div
     576 
     577<h3 class="subsection"><a name="">v1.4 -- 24/Feb/2005</a></h3
     578<div class="list"><ul><li class="item">** <b>FIX</b>: <i>Thanks to Abscissa.</i> The -version switch was being interpreted as 
    561579 a file to compile. 
    562 </span></li> 
    563 <li><span class="item">** <b>FIX</b>: <i>Thanks to brad.</i> Linux version was using the wrong package name 
     580 
     581<li class="item">** <b>FIX</b>: <i>Thanks to brad.</i> Linux version was using the wrong package name 
    564582when formatting a file date for display. 
    565 </span></li> 
    566 <li><span class="item">** <b>FIX</b>: <i>Thanks to brad.</i> Linux version was not setting the target 
     583 
     584<li class="item">** <b>FIX</b>: <i>Thanks to brad.</i> Linux version was not setting the target 
    567585name correctly which resulted in the first source file being compiled twice. 
    568 </span></li> 
    569 <li><span class="item">** <b>FIX</b>: <i>Thanks to brad.</i> Parsing the DFLAG line in the dmd options 
     586 
     587<li class="item">** <b>FIX</b>: <i>Thanks to brad.</i> Parsing the DFLAG line in the dmd options 
    570588file was not dealing with whitespace delimiters. 
    571 </span></li> 
    572 <li><span class="item">** <b>ENH</b>: When specifing an alternate target file, you can now also 
     589 
     590<li class="item">** <b>ENH</b>: When specifing an alternate target file, you can now also 
    573591 specify a path for the target, and that path is created for you if it 
    574592doesn't exist. 
    575 </span></li> 
    576 </span></ul
    577  
    578 <a name=""><h3 class="subsection">v1.3 -- 23/Feb/2005</h3></a
    579 <ul><span class="list"><li><span class="item">** <b>ENH</b>: Put in a workaround for DMD (Windows) not using the sc.ini 
     593 
     594</ul></div
     595 
     596<h3 class="subsection"><a name="">v1.3 -- 23/Feb/2005</a></h3
     597<div class="list"><ul><li class="item">** <b>ENH</b>: Put in a workaround for DMD (Windows) not using the sc.ini 
    580598file correctly. The utility now explicitly adds any DFLAG options from 
    581599the sc.ini file into the .rsp file. 
    582 </span></li> 
    583 <li><span class="item">** <b>FIX</b>: The utility now correctly handles ';' delimited DFLAG options 
     600 
     601<li class="item">** <b>FIX</b>: The utility now correctly handles ';' delimited DFLAG options 
    584602in the sc.ini file. 
    585 </span></li> 
    586 <li><span class="item">** <b>ENH</b>: Now supports the use of 'response' files on the command line 
    587 </span></li> 
    588 <li><span class="item">** <b>ENH</b>: Now supports the -T command line switch to supply an 
     603 
     604<li class="item">** <b>ENH</b>: Now supports the use of 'response' files on the command line 
     605 
     606<li class="item">** <b>ENH</b>: Now supports the -T command line switch to supply an 
    589607 alternate tareget name. 
    590 </span></li> 
    591 </span></ul
    592  
    593 <a name=""><h3 class="subsection">v1.2 -- 21/Feb/2005</h3></a
    594 <ul><span class="list"><li><span class="item">** <b>ENH</b>: <i>Thanks to Anders F Bjoerklund:</i> Added better support for 'darwin' 
     608 
     609</ul></div
     610 
     611<h3 class="subsection"><a name="">v1.2 -- 21/Feb/2005</a></h3
     612<div class="list"><ul><li class="item">** <b>ENH</b>: <i>Thanks to Anders F Bjoerklund:</i> Added better support for 'darwin' 
    595613       and 'gdc'. 
    596 </span></li> 
    597 </span></ul> 
    598  
    599 <br /><hr/><span class="footnote">Generated by Ddoc, Fri Jun  9 16:40:49 2006 
    600  </span></body> 
     614 
     615</ul></div> 
     616</div> 
     617 
     618                 <hr><div class="footnote"><span class="footnote">Generated by Ddoc, Sat Jun 24 00:43:27 2006 
     619 </span></div> 
     620                 </body> 
    601621                 </html> 
  • trunk/Docs/command_line.html

    r47 r48  
    1 <?xml version="1.0" encoding="utf-8"?> 
    2                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 HTML//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    32                 <html> 
    43                 <head> 
    5                  <meta http-equiv="content-type" content="text/html; charset=utf-8"
    6                  <link rel="stylesheet" type="text/css" href="style.css" title="standard"
    7                  <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
     4                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
     5                 <link rel="stylesheet" type="text/css" href="style.css" title="standard"
     6                 <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
    87                 <title></title> 
    98                 </head> 
     
    1211 
    1312<p class="page_title">Build Utility <span class="page_title">&copy; 2006, Derek Parnell, Melbourne</span> 
    14                  <br /> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
    15                  <a name="command_line"><h1 class="topic">Topic: Command Line</h1></a
    16 <p>The <i>Build</i> utility supplies the source file and optional switches via 
     13                 <br> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
     14                 <h1 class="topic"><a name="command_line">Topic: Command Line</a></h1
     15<div class="section">The <i>Build</i> utility supplies the source file and optional switches via 
    1716the command line. The typical format of the <i>Build</i> utility's command 
    1817line is ... 
     
    125124 
    126125See also  
    127 </p
     126</div
    128127 
    129128 
    130 <br /><hr/><span class="footnote">Generated by Ddoc, Fri Jun  9 16:40:49 2006 
    131  </span></body> 
     129 
     130                 <hr><div class="footnote"><span class="footnote">Generated by Ddoc, Sat Jun 24 00:43:27 2006 
     131 </span></div> 
     132                 </body> 
    132133                 </html> 
  • trunk/Docs/configuration_file.html

    r47 r48  
    1 <?xml version="1.0" encoding="utf-8"?> 
    2                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 HTML//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    32                 <html> 
    43                 <head> 
    5                  <meta http-equiv="content-type" content="text/html; charset=utf-8"
    6                  <link rel="stylesheet" type="text/css" href="style.css" title="standard"
    7                  <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
     4                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
     5                 <link rel="stylesheet" type="text/css" href="style.css" title="standard"
     6                 <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
    87                 <title>User Manual for BUILD</title> 
    98                 </head> 
     
    1211 
    1312<p class="page_title">Build Utility <span class="page_title">&copy; 2006, Derek Parnell, Melbourne</span> 
    14                  <br /> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
    15                  <a name="configuration_file"><h1 class="topic">Topic: Configuration File</h1></a
    16 <p>The utility's configuration file is used to specify your default options 
     13                 <br> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
     14                 <h1 class="topic"><a name="configuration_file">Topic: Configuration File</a></h1
     15<div class="section">The utility's configuration file is used to specify your default options 
    1716for the utility. The file is called <b>build.cfg</b>. You can have from zero 
    1817to three configuration files because the <i>Build</i> utility looks in each 
     
    6261<pre class="code">   INIT:MapSwitch = -M 
    6362</pre> 
    64 <ul class="indent"><p>The identifiers for the settable strings are detailed below.</p
     63<div class="indent"><div class="section">The identifiers for the settable strings are detailed below.</div
    6564<div class="tabrow1">ExeExtention</div><div class="tabrow2">The file extention for executable files. <span class="eg">Example: "exe"</span></div> 
    6665<div class="tabrow1">LibExtention</div><div class="tabrow2">The file extention for library files.<span class="eg">Example: "lib"</span></div> 
     
    157156                          application then the following are automatically 
    158157                          passed to the linker. <br> 
    159                           <ul><span class="list">                                <li><span class="item">gdi32.lib</span></li> 
    160                                 <li><span class="item">advapi32.lib</span></li> 
    161                                 <li><span class="item">COMCTL32.LIB</span></li> 
    162                                 <li><span class="item">comdlg32.lib</span></li> 
    163                                 <li><span class="item">CTL3D32.LIB</span></li> 
    164                                 <li><span class="item">kernel32.lib</span></li> 
    165                                 <li><span class="item">ODBC32.LIB</span></li> 
    166                                 <li><span class="item">ole32.lib</span></li> 
    167                                 <li><span class="item">OLEAUT32.LIB</span></li> 
    168                                 <li><span class="item">shell32.lib</span></li> 
    169                                 <li><span class="item">user32.lib</span></li> 
    170                                 <li><span class="item">uuid.lib</span></li> 
    171                                 <li><span class="item">winmm.lib</span></li> 
    172                                 <li><span class="item">winspool.lib</span></li> 
    173                                 <li><span class="item">wsock32.lib</span></li> 
    174                           </span></ul
     158                          <div class="list"><ul>                                <li class="item">gdi32.lib 
     159                                <li class="item">advapi32.lib 
     160                                <li class="item">COMCTL32.LIB 
     161                                <li class="item">comdlg32.lib 
     162                                <li class="item">CTL3D32.LIB 
     163                                <li class="item">kernel32.lib 
     164                                <li class="item">ODBC32.LIB 
     165                                <li class="item">ole32.lib 
     166                                <li class="item">OLEAUT32.LIB 
     167                                <li class="item">shell32.lib 
     168                                <li class="item">user32.lib 
     169                                <li class="item">uuid.lib 
     170                                <li class="item">winmm.lib 
     171                                <li class="item">winspool.lib 
     172                                <li class="item">wsock32.lib 
     173                          </ul></div
    175174                          <br/>&nbsp;<br/> 
    176175                          If the application is being compiled in a Unix 
    177176                          environment then the following are automatically 
    178177                          passed to the linker. <br> 
    179                           <ul><span class="list">                                <li><span class="item">c</span></li> 
    180                                 <li><span class="item">phobos</span></li> 
    181                                 <li><span class="item">m</span></li> 
    182                           </span></ul
     178                          <div class="list"><ul>                                <li class="item">c 
     179                                <li class="item">phobos 
     180                                <li class="item">m 
     181                          </ul></div
    183182</div> 
    184183<div class="tabrow1">PathId         </div><div class="tabrow2">The name of the environment symbol used by <i>Build</i> 
     
    218217                          <span class="eg">Example: "_modules.ddoc  "</span></div> 
    219218 
    220 </ul> 
    221  
    222 <p><span class="example"><i>Example:</i> </span><pre class="code">INIT:MacroExtention = bmc 
     219<div class="tabrow1">ArgDelim       </div><div class="tabrow2">This value will be the delimiter for file groups 
     220                          on the linker command line. A file group is a set 
     221                          of like filetypes such as <i>objects</i> or <i>libraries</i> 
     222                          <span class="eg">Example: ", "</span></div> 
     223<div class="tabrow1">ArgFileDelim   </div><div class="tabrow2">This value will be the delimiter for files within 
     224                          a file group on the linker command line. A file group is a set 
     225                          of like filetypes such as <i>objects</i> or <i>libraries</i> 
     226                          <span class="eg">Example: "+ "</span> </div> 
     227<div class="tabrow1">PostSwitches   </div><div class="tabrow2">If 'yes' this causes linker switches to go after 
     228                          all the other command line entries, otherwise the 
     229                          switches precede them. 
     230                          <span class="eg">Example: "Yes "</span> </div> 
     231<div class="tabrow1">AppendLinkSwitches</div><div class="tabrow2">If 'yes' this causes linker switches to be 
     232                          appended to the last item on the command line 
     233                          otherwise there will be a gap between the last 
     234                          item and the first switch. 
     235                          <span class="eg">Example: "Yes "</span> </div> 
     236</div> 
     237 
     238<p><span class="example"><i>Example:</i> </span></p><pre class="code">INIT:MacroExtention = bmc 
    223239INIT:LinkerPath = /u2/qwerty/ 
    224240INIT:AssumedLibs = c,kde,mgui 
    225 </pre></p> 
     241</pre> 
    226242 
    227243<b>Default Values for Configuration Items</b> 
     
    277293  <tr class="confrow"><td class="confcell"><strong>HomePathId</strong>&nbsp;</td><td class="confcell">HOME&nbsp;</td><td class="confcell">HOME&nbsp;</td><td class="confcell">HOME&nbsp;</td><td class="confcell">HOME&nbsp;</td></tr> 
    278294  <tr class="confrow"><td class="confcell"><strong>EtcPath</strong>&nbsp;</td><td class="confcell">&nbsp;</td><td class="confcell">&nbsp;</td><td class="confcell">/etc/&nbsp;</td><td class="confcell">/etc/&nbsp;</td></tr> 
     295  <tr class="confrow"><td class="confcell"><strong>ArgDelim</strong>&nbsp;</td><td class="confcell">,&nbsp;</td><td class="confcell">&nbsp;</td><td class="confcell">&nbsp;</td><td class="confcell">&nbsp;</td></tr> 
     296  <tr class="confrow"><td class="confcell"><strong>ArgFileDelim</strong>&nbsp;</td><td class="confcell">+&nbsp;</td><td class="confcell">&nbsp;</td><td class="confcell">&nbsp;</td><td class="confcell">&nbsp;</td></tr> 
     297  <tr class="confrow"><td class="confcell"><strong>PostSwitches</strong>&nbsp;</td><td class="confcell">Yes&nbsp;</td><td class="confcell">No&nbsp;</td><td class="confcell">No&nbsp;</td><td class="confcell">No&nbsp;</td></tr> 
     298  <tr class="confrow"><td class="confcell"><strong>AppendLinkSwitches</strong>&nbsp;</td><td class="confcell">Yes&nbsp;</td><td class="confcell">No&nbsp;</td><td class="confcell">No&nbsp;</td><td class="confcell">No&nbsp;</td></tr> 
    279299</table> 
    280300 
     
    289309to avoid an unwanted environment symbol substitution. 
    290310 
    291 <p><span class="example"><i>Example:</i> Assuming you had set BUILDOPTS=-w -g</span><pre class="code">CMDLINE=%BUILDOPTS%    # Allow switches to be passed via enviroment symbol. 
    292 </pre></p> 
     311<p><span class="example"><i>Example:</i> Assuming you had set BUILDOPTS=-w -g</span></p><pre class="code">CMDLINE=%BUILDOPTS%    # Allow switches to be passed via enviroment symbol. 
     312</pre> 
    293313would mean that "-w -g" would be automatically placed on the utility's 
    294314commandline whenever you ran it. 
     
    301321next group in the file. 
    302322 
    303 <p><span class="example"><i>Example:</i> a Group</span><pre class="code">   [dbg] # To produce a debug edition of an application. 
     323<p><span class="example"><i>Example:</i> a Group</span></p><pre class="code">   [dbg] # To produce a debug edition of an application. 
    304324   CMDLINE=-unittest 
    305325   CMDLINE=--release 
     
    309329   CMDLINE=-full 
    310330   CMDLINE=-T{Target}_{Group} 
    311 </pre></p> 
     331</pre> 
    312332 
    313333All the options lines before the first group are known as the default 
     
    320340There are few optional predefined group names that are used when building 
    321341for specific environments. 
    322 <ul class="indent">    <pre class="cite">        [Windows] 
     342<div class="indent">    <pre class="cite">        [Windows] 
    323343        # items that only apply when building in Windows. 
    324344 
     
    344364        # items that only apply when building with GNU tools in Posix. 
    345365    </pre> 
    346 </ul
     366</div
    347367These groups are automatically used when building in the appropriate 
    348368enviroments and do not explicitly have to be mentioned on the command line. 
     
    354374Blank lines are ignored. 
    355375 
    356 <p><span class="example"><i>Example:</i> </span><pre class="code">build myapp.d +final 
    357 </pre></p> 
     376<p><span class="example"><i>Example:</i> </span></p><pre class="code">build myapp.d +final 
     377</pre> 
    358378where if a group called '[final]' is contained in any configuration 
    359379file, the options in that group are used. 
    360380 
    361 <p><span class="example"><i>Example:</i> contents of [final]</span><pre class="code">    # This creates a production (release) edition of the app. 
     381<p><span class="example"><i>Example:</i> contents of [final]</span></p><pre class="code">    # This creates a production (release) edition of the app. 
    362382    [final] 
    363383    CMDLINE=-T{Target}_{Group}  # Set the name of the executable. 
     
    370390    CMDLINE=--w        # Turn off warnings 
    371391    CMDLINE=--g        # Turn off embedded debug symbolic info. 
    372 </pre></p> 
     392</pre> 
    373393 
    374394You can any number of configuration file group references on a command line. They 
    375395 are processed in the order they appear. 
    376 </p> 
    377  
    378  
    379 <br /><hr/><span class="footnote">Generated by Ddoc, Fri Jun  9 16:40:49 2006 
    380  </span></body> 
     396</div> 
     397 
     398 
     399 
     400                 <hr><div class="footnote"><span class="footnote">Generated by Ddoc, Sat Jun 24 00:43:27 2006 
     401 </span></div> 
     402                 </body> 
    381403                 </html> 
  • trunk/Docs/dlls.html

    r47 r48  
    1 <?xml version="1.0" encoding="utf-8"?> 
    2                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 HTML//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    32                 <html> 
    43                 <head> 
    5                  <meta http-equiv="content-type" content="text/html; charset=utf-8"
    6                  <link rel="stylesheet" type="text/css" href="style.css" title="standard"
    7                  <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
     4                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
     5                 <link rel="stylesheet" type="text/css" href="style.css" title="standard"
     6                 <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
    87                 <title></title> 
    98                 </head> 
     
    1211 
    1312<p class="page_title">Build Utility <span class="page_title">&copy; 2006, Derek Parnell, Melbourne</span> 
    14                  <br /> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
    15                  <a name="dll_libraries"><h1 class="topic">Topic: DLL Libraries</h1></a
    16 <p><h2 class="short_title">How to create a DLL library using Build.</h2> 
     13                 <br> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
     14                 <h1 class="topic"><a name="dll_libraries">Topic: DLL Libraries</a></h1
     15<div class="section"><h2 class="short_title">How to create a DLL library using Build.</h2> 
    1716<br> 
    1817When Build finds a <b>DllMain()</b> function, or the <b>-dll</b> switch is used, it 
     
    3332library to interface with the DLL. Build currently supports both the 
    3433<i>DigitalMars</i> version and the <i>Borland (Inprise)</i> version of <b>implib</b>. 
    35 </p
     34</div
    3635 
    3736 
    38 <br /><hr/><span class="footnote">Generated by Ddoc, Fri Jun  9 16:40:49 2006 
    39  </span></body> 
     37 
     38                 <hr><div class="footnote"><span class="footnote">Generated by Ddoc, Sat Jun 24 00:43:27 2006 
     39 </span></div> 
     40                 </body> 
    4041                 </html> 
  • trunk/Docs/introduction.html

    r47 r48  
    1 <?xml version="1.0" encoding="utf-8"?> 
    2                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 HTML//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    32                 <html> 
    43                 <head> 
    5                  <meta http-equiv="content-type" content="text/html; charset=utf-8"
    6                  <link rel="stylesheet" type="text/css" href="style.css" title="standard"
    7                  <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
     4                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
     5                 <link rel="stylesheet" type="text/css" href="style.css" title="standard"
     6                 <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
    87                 <title></title> 
    98                 </head> 
     
    1211 
    1312<p class="page_title">Build Utility <span class="page_title">&copy; 2006, Derek Parnell, Melbourne</span> 
    14                  <br /> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
    15                  <a name="introduction"><h1 class="topic">Topic: Introduction</h1></a
    16 <p>This is a utility to build an application using the D programming language. 
     13                 <br> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
     14                 <h1 class="topic"><a name="introduction">Topic: Introduction</a></h1
     15<div class="section">This is a utility to build an application using the D programming language. 
    1716It does this by examining the files supplied on the command line 
    1817to work out what are the dependant files, and then determines which 
     
    2625The aim of the utility is to help remove the need for <i>make</i> files 
    2726 or similar devices. 
    28 </p
     27</div
    2928 
    30 <br /><hr/><span class="footnote">Generated by Ddoc, Fri Jun  9 16:40:49 2006 
    31  </span></body> 
     29 
     30                 <hr><div class="footnote"><span class="footnote">Generated by Ddoc, Sat Jun 24 00:43:27 2006 
     31 </span></div> 
     32                 </body> 
    3233                 </html> 
  • trunk/Docs/macros.html

    r47 r48  
    1 <?xml version="1.0" encoding="utf-8"?> 
    2                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 HTML//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    32                 <html> 
    43                 <head> 
    5                  <meta http-equiv="content-type" content="text/html; charset=utf-8"
    6                  <link rel="stylesheet" type="text/css" href="style.css" title="standard"
    7                  <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
     4                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
     5                 <link rel="stylesheet" type="text/css" href="style.css" title="standard"
     6                 <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
    87                 <title></title> 
    98                 </head> 
     
    1211 
    1312<p class="page_title">Build Utility <span class="page_title">&copy; 2006, Derek Parnell, Melbourne</span> 
    14                  <br /> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
    15                  <a name="macros"><h1 class="topic">Topic: Macros</h1></a
    16 <p>The <i>macro</i> system in Build works by transforming the contents of a file, 
     13                 <br> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
     14                 <h1 class="topic"><a name="macros">Topic: Macros</a></h1
     15<div class="section">The <i>macro</i> system in Build works by transforming the contents of a file, 
    1716via the use of special commands, into a new file that will be 
    1817compiled. 
     
    2221of this, a lot can be achieved by the current macro facility. 
    2322<br/>&nbsp;<br/> 
    24 </p
     23</div
    2524 
    26 <p><b>How it Works</b><br> 
     25<div class="section"><b>How it Works</b><br> 
    2726Build firstly examines the default Macro Definition File (MDF) 
    2827and preprocesses 
     
    3130line or response file, it transforms the macro file, based on the commands 
    3231from the <b>MDF</b> and any embedded commands, into a file that is later compiled. 
    33 </p
     32</div
    3433 
    35 <p><b>Macro Definition File</b><br> 
     34<div class="section"><b>Macro Definition File</b><br> 
    3635The format of the MDF is a text file that can contain any number of 
    3736defined commands and comments. Comments start with a <b>#</b> 
    3837(hash symbol) and extend to the end of the line. Blank lines 
    3938are ignored also. Commands take the form ... <br> 
    40     <ul class="indent">        <b>&lt;action&gt;&lt;pattern&gt;=&lt;replacement&gt;</b> 
    41     </ul
     39    <div class="indent">        <b>&lt;action&gt;&lt;pattern&gt;=&lt;replacement&gt;</b> 
     40    </div
    4241where &lt;action&gt; can be 
    43     <ul><span class="list">        <li><span class="item">replace</span></li> 
    44         <li><span class="item">regexp</span></li> 
    45      </span></ul
    46 </p
    47 <p><hr/> The action <span class="quote">&quot;<b>replace</b>&quot;</span> will replace all occurances of 
     42    <div class="list"><ul>        <li class="item">replace 
     43        <li class="item">regexp 
     44     </ul></div
     45</div
     46<div class="section"><hr> The action <span class="quote">&quot;<b>replace</b>&quot;</span> will replace all occurances of 
    4847<b>&lt;pattern&gt;</b> with the <b>&lt;replacement&gt;</b> text. The &lt;pattern&gt; 
    4948can take two forms: a quoted string, or an unquoted set of words. If the 
     
    5251not enclosed in quotes it represents a set of adjacent words to be found 
    5352and replaced by the replacement text. 
    54 <p><span class="example"><i>Example:</i> Word replacement</span><pre class="code">replace endproc=} 
    55 </pre></p> 
     53<p><span class="example"><i>Example:</i> Word replacement</span></p><pre class="code">replace endproc=} 
     54</pre> 
    5655will match <span class="quote">&quot;endproc&quot;</span> and <span class="quote">&quot;endproc&quot;</span>, 
    5756but will not match any of <span class="quote">&quot;bendproc&quot;</span>, 
    5857<span class="quote">&quot;endprocedure&quot;</span>, or <span class="quote">&quot;end.proc &quot;</span>. 
    5958 
    60 <p><span class="example"><i>Example:</i> Text replacement</span><pre class="code">replace "endproc"=} 
    61 </pre></p> 
     59<p><span class="example"><i>Example:</i> Text replacement</span></p><pre class="code">replace "endproc"=} 
     60</pre> 
    6261will match any of <span class="quote">&quot;endproc&quot;</span>, <span class="quote">&quot;bendproc&quot;</span>, 
    6362<span class="quote">&quot;endprocedure&quot;</span>, 
     
    6766The &lt;replacement&gt; text will have to be quoted if it must begin or end 
    6867with spaces. 
    69 <p><span class="example"><i>Example:</i> Leading and trailing blanks in replacement text</span><pre class="code">replace vernote="Version1.0," 
    70 </pre></p> 
    71 </p
     68<p><span class="example"><i>Example:</i> Leading and trailing blanks in replacement text</span></p><pre class="code">replace vernote="Version1.0," 
     69</pre> 
     70</div
    7271 
    73 <p><hr/> The action <span class="quote">&quot;<b>regexp</b>&quot;</span> will replace all occurances of 
     72<div class="section"><hr> The action <span class="quote">&quot;<b>regexp</b>&quot;</span> will replace all occurances of 
    7473<b>&lt;pattern&gt;</b> with the <b>&lt;replacement&gt;</b> text. The &lt;pattern&gt; 
    7574is a regular expression. 
    7675 
    77 <p><span class="example"><i>Example:</i> Regular Expression replacement</span><pre class="code">regexp inc\s+(\w+) = $1++ 
    78 </pre></p> 
     76<p><span class="example"><i>Example:</i> Regular Expression replacement</span></p><pre class="code">regexp inc\s+(\w+) = $1++ 
     77</pre> 
    7978will match "inc" followed by one or more spaces followed by one or more 
    8079'word' characters such as <span class="quote">&quot;incmyvar&quot;</span> and replace the matching 
     
    8281be replaced by <span class="quote">&quot;myvar++&quot;</span>. 
    8382 
    84 <p><span class="example"><i>Example:</i> C-style assert</span><pre class="code">regexp assert\((.*),(.*)\); = if (!()) {writefln(`%%s:%%s`, ``, ); assert(0);} 
     83<p><span class="example"><i>Example:</i> C-style assert</span></p><pre class="code">regexp assert\((.*),(.*)\); = if (!()) {writefln(`%%s:%%s`, ``, ); assert(0);} 
    8584// usage 
    8685assert(somefield &gt; 3, "More than 4 is required"); 
    8786// transformation 
    8887if (!(somefield &gt; 3)) {writefln(`%s:%s`, `somefield &gt; 3`, "More than 4 is required"); assert(0);} 
    89 </pre></p> 
     88</pre> 
    9089 
    9190<br/>&nbsp;<br/> 
    9291The &lt;replacement&gt; text will have to be quoted if it must begin or end 
    9392with spaces. 
    94 <p><span class="example"><i>Example:</i> Leading and trailing blanks in replacement text</span><pre class="code">regexp (Version\s)(\?) = "$15.0" 
    95 </pre></p> 
    96 </p
     93<p><span class="example"><i>Example:</i> Leading and trailing blanks in replacement text</span></p><pre class="code">regexp (Version\s)(\?) = "$15.0" 
     94</pre> 
     95</div
    9796 
    98 <p><hr/> There are some special tokens that can be in the 
     97<div class="section"><hr> There are some special tokens that can be in the 
    9998replacement text. 
    10099<table class="table"><tr class="macrorow"><td class="macrocell">&nbsp;\n&nbsp;</td> <td class="macrocell">&nbsp;New Line&nbsp;</td> <td class="macrocell">&nbsp;An end-of-line marker replaces this token.&nbsp;</td> </tr> 
     
    105104                                               otherwise the token is removed.&nbsp;</td> </tr> 
    106105</table> 
    107 </p
     106</div
    108107 
    109 <p><hr/> Sometimes, it will be necessary to have one of the 
     108<div class="section"><hr> Sometimes, it will be necessary to have one of the 
    110109delimiter characters, such as the <i>quote</i> character 
    111110or the <i>equals</i> symbol, as a part of the pattern or replacement text. 
     
    113112alternatives to use for the rest of the MDF or another override. <br/>&nbsp;<br/> 
    114113The override command has the format <br> 
    115     <ul class="indent">        <b>delim&lt;type&gt;=&lt;alternative&gt;</b> 
    116     </ul
     114    <div class="indent">        <b>delim&lt;type&gt;=&lt;alternative&gt;</b> 
     115    </div
    117116where &lt;type&gt; can be 
    118117    <table class="table">      <thead class="macrothead">        <tr class="macrorow"><td class="macrothcell"><b>Type</b></td>        <td class="macrothcell">Description</td> <td class="macrothcell">Example</td> <td class="macrothcell">Default</td></tr> 
     
    127126 
    128127Another form of the <b>delim</b> command is <br> 
    129     <ul class="indent">        <b>delim std</b> 
    130     </ul
     128    <div class="indent">        <b>delim std</b> 
     129    </div
    131130which restores all the default delimiter values. 
    132 </p
    133 <p><hr/
     131</div
     132<div class="section"><hr
    134133All the commands above can be embedded inside a macro file. To do this, 
    135134the commands must be prefixed with an <b>'@' </b> symbol and start on 
    136135first column. 
    137 <p><span class="example"><i>Example:</i> </span><pre class="code">@replace becos because 
    138 </pre></p> 
     136<p><span class="example"><i>Example:</i> </span></p><pre class="code">@replace becos because 
     137</pre> 
    139138Additionally there is another command that is only recognized when embedded 
    140139in a macro file. This is the <b>output</b> command. It tells <i>Build</i> what 
    141140name to use for the transformed file. 
    142 <p><span class="example"><i>Example:</i> Send output to another file</span><pre class="code">@output ../result/mytest.d 
    143 </pre></p> 
     141<p><span class="example"><i>Example:</i> Send output to another file</span></p><pre class="code">@output ../result/mytest.d 
     142</pre> 
    144143If the <b>output</b> command is not found in a file, the transformed file 
    145144is assumed to tbe the same name as the macro file but with ".d" as 
     
    149148the transformed file and that no embedded macro command can modify any other 
    150149embedded macro command. 
    151 </p
     150</div
    152151 
    153 <br /><hr/><span class="footnote">Generated by Ddoc, Fri Jun  9 16:40:49 2006 
    154  </span></body> 
     152 
     153                 <hr><div class="footnote"><span class="footnote">Generated by Ddoc, Sat Jun 24 00:43:27 2006 
     154 </span></div> 
     155                 </body> 
    155156                 </html> 
  • trunk/Docs/pragmas.html

    r47 r48  
    1 <?xml version="1.0" encoding="utf-8"?> 
    2                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 HTML//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    32                 <html> 
    43                 <head> 
    5                  <meta http-equiv="content-type" content="text/html; charset=utf-8"
    6                  <link rel="stylesheet" type="text/css" href="style.css" title="standard"
    7                  <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
     4                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
     5                 <link rel="stylesheet" type="text/css" href="style.css" title="standard"
     6                 <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
    87                 <title></title> 
    98                 </head> 
     
    1211 
    1312<p class="page_title">Build Utility <span class="page_title">&copy; 2006, Derek Parnell, Melbourne</span> 
    14                  <br /> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
    15                  <a name="pragmas"><h1 class="topic">Topic: Pragmas</h1></a
    16 <p>The <b>build</b> utility supports the use of various pragma statements. 
     13                 <br> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
     14                 <h1 class="topic"><a name="pragmas">Topic: Pragmas</a></h1
     15<div class="section">The <b>build</b> utility supports the use of various pragma statements. 
    1716A pragma is a special statement embedded in the source code that 
    1817 provides information to tools reading the source code. 
     
    2827a <i>build</i> version. 
    2928 
    30 <p><span class="example"><i>Example:</i> </span><pre class="code"><i>version</i>(build) { pragma(nolink); } 
    31 </pre></p> 
    32 </p> 
    33  
    34  
    35 <a name="pragma_link"><h2 class="section">pragma: link</h2></a> 
    36 <p>This nominates one or more libraries that are required to be linked in. 
     29<p><span class="example"><i>Example:</i> </span></p><pre class="code"><i>version</i>(build) { pragma(nolink); } 
     30</pre> 
     31</div> 
     32 
     33 
     34 
     35<div class="section"><h2 class="section"><a name="pragma_link">pragma: link</a></h2> 
     36This nominates one or more libraries that are required to be linked in. 
    3737If your applications needs code from a library to be linked in, rather than 
    3838supplying source code, you can tell <i>build</i> which libraries are needed. 
    3939This can happen when using a library provided by a third-party. 
    4040 
    41 <p><span class="example"><i>Example:</i> 1</span><pre class="code">// This app needs the MyGUI.lib library to be used. 
     41<p><span class="example"><i>Example:</i> 1</span></p><pre class="code">// This app needs the MyGUI.lib library to be used. 
    4242version(build) { pragma(link, MyGUI); } 
    43 </pre></p> 
    44  
    45 <p><span class="example"><i>Example:</i> 2</span><pre class="code">// This app needs the a DB library and TCP library to be used. 
     43</pre> 
     44 
     45<p><span class="example"><i>Example:</i> 2</span></p><pre class="code">// This app needs the a DB library and TCP library to be used. 
    4646version(build) { pragma(link, EuDB, TCP4Win); } 
    47 </pre></p> 
    48 </p
    49  
    50  
    51 <a name="pragma_nolink"><h2 class="section">pragma: nolink</h2></a
    52 <p>This identifies that the current module is not to be be linked in. 
     47</pre> 
     48</div
     49 
     50 
     51<div class="section"><h2 class="section"><a name="pragma_nolink">pragma: nolink</a></h2
     52This identifies that the current module is not to be be linked in. 
    5353Normally, each object file created by the compiler is linked in, but 
    5454 if the supplied source file is just a stub for code which is externally 
    5555 defined in a library, then you do not need the 'stub' object file. 
    5656 
    57 <p><span class="example"><i>Example:</i> </span><pre class="code">version(build) { pragma(nolink); } 
    58 </pre></p> 
    59 </p> 
    60  
    61 <a name="pragma_include"><h2 class="section">pragma: include</h2></a> 
    62 <p>This identifies a required file which is not otherwise imported. 
     57<p><span class="example"><i>Example:</i> </span></p><pre class="code">version(build) { pragma(nolink); } 
     58</pre> 
     59</div> 
     60 
     61<div class="section"><h2 class="section"><a name="pragma_ignore">pragma: ignore</a></h2> 
     62This identifies that the current module is not to be passed to 
     63the compiler or linker. It is however scanned by Build and can thus 
     64contain Build pragma directives and import statements. This would be 
     65used to create a special <i>all.d</i> file to pull in all the modules 
     66for a library or program. 
     67 
     68<p><span class="example"><i>Example:</i> </span></p><pre class="code">version(build) pragma(ignore); 
     69// A list of files to include into a library. 
     70import util.files; 
     71import util.gfx; 
     72import util.physics; 
     73import util.render; 
     74</pre> 
     75</div> 
     76 
     77<div class="section"><h2 class="section"><a name="pragma_include">pragma: include</a></h2> 
     78This identifies a required file which is not otherwise imported. 
    6379In some applications, especially ones converted over from C, it is 
    6480possible that the file on the <i>Build</i> command line does not directly 
     
    7389from a module specification to a path and file name. 
    7490 
    75 <p><span class="example"><i>Example:</i> </span><pre class="code">// Tell 'build' that prime.d must be included (it contains the main function.) 
     91<p><span class="example"><i>Example:</i> </span></p><pre class="code">// Tell 'build' that prime.d must be included (it contains the main function.) 
    7692  version(build) { pragma(include, prime); } 
    7793 
     
    8197// Tell 'build' that docdef\qwerty.ddoc must be included 
    8298  version(build) { pragma(include, docdef\qwerty.ddoc); } 
    83 </pre></p> 
    84 </p
    85  
    86 <a name="pragma_target"><h2 class="section">pragma: target</h2></a
    87 <p>This identifies the basename of the target file. 
     99</pre> 
     100</div
     101 
     102<div class="section"><h2 class="section"><a name="pragma_target">pragma: target</a></h2
     103This identifies the basename of the target file. 
    88104By default, the target name is based on the first file on the command line. 
    89105But if you include this pragma, the name identified in the pragma becomes 
     
    93109that is used and the others are ignored (though mentioned if in 
    94110verbose mode). 
    95 <p><span class="example"><i>Example:</i> </span><pre class="code">// Tell 'build' to create WhizzBang.exe 
     111<p><span class="example"><i>Example:</i> </span></p><pre class="code">// Tell 'build' to create WhizzBang.exe 
    96112version(build) { pragma(target, "WhizzBang"); } 
    97113 
    98 </pre></p> 
    99 </p
    100  
    101 <a name="pragma_build"><h2 class="section">pragma: build</h2></a
    102 <p>This identifies a file that needs an external program to build it. 
     114</pre> 
     115</div
     116 
     117<div class="section"><h2 class="section"><a name="pragma_build">pragma: build</a></h2
     118This identifies a file that needs an external program to build it. 
    103119Some applications need to link in object files created by C source, or 
    104120by a <i>resource</i> compiler, or whatever. This pragma identifies a file 
    105 that needs to be linked in, but cannot be created by the D compiler. The 
     121that needs to be created by something other than the D compiler. The 
    106122format is ... 
    107123<pre class="code">pragma(build, "FILENAME" [, "OPTIONS"] ...); 
    108124</pre> 
    109 where <i>FILENAME</i> is either the file to link in, or the file to use when 
    110 creating the file to link in. For example, if you had a Windows resource file 
     125where <i>FILENAME</i> is either the file to create, or the file to use when 
     126creating the required file to use in the build process. Note that if you 
     127just supply an empty string <span class="quote">&quot;&quot;</span> the file that contains the pragma is 
     128used. 
     129<br/>&nbsp;<br/> 
     130For example, if you had a Windows resource file 
    111131that needed to be compiled, you could code the pragma as either ... 
    112  
    113132<pre class="code">// Compile the images into a resource obj and add images.res to linker. 
    114133pragma(build, "images.rc"); 
    115134</pre> 
    116 or <br> 
     135or 
    117136<pre class="code">// Compile the images into a resource obj and add images.res to linker. 
    118137pragma(build, "images.res"); 
     
    121140The first example specifies the source file to be passed to the resource 
    122141compiler and the second example specifies the output of the resource compiler. 
    123 In either case, this utility uses the rules in a <a href="#rule_definition_file">Rule Definition File</a> to 
     142In either case, this utility uses the rules in a <a href="rules.html">Rule Definition File</a> to 
    124143decide what to do. 
    125  
     144<br/>&nbsp;<br/> 
    126145The utility searches for the <i>FILENAME</i> in the currently defined 'import' 
    127 paths
    128  
     146paths and if doesn't exist, <i>Build</i> will abort
     147<br/>&nbsp;<br/> 
    129148The <i>OPTIONS</i> can be included if you need to pass any special values 
    130149to the external tool. There can be any number of these, but each one must 
    131 take the form &lt;KEYWORD&gt;=&lt;VALUE&gt;. For example <br> 
     150take the form <span class="quote">&quot;&lt;KEYWORD&gt;=&lt;VALUE&gt;&quot;</span>. For example <br> 
    132151<pre class="code">pragma(build, "dbapi.c", "COPT=-wc -x", "HDR=abc.hp"); 
    133152</pre> 
     
    136155the tokens {COPT} and {HDR}, if found in the 'tool' line, would be 
    137156replaced with <i>-wc -x</i> and <i>abc.hp</i> respectively. 
    138  
     157<br/>&nbsp;<br/> 
     158There are some OPTIONS that have a special meaning to <i>Build</i>. 
     159<dl><dt>rule=&lt;name&gt;</dt><dd>This identifies the name of the rule to use. 
     160If this isn't supplied, the rule is found by matching the file extention 
     161on the <i>FILENAME</i> against the <i>in=</i> and <i>out=</i> file types in 
     162each rule definition.</dd> 
     163<dt>@pre=&lt;text&gt;</dt><dd>This text is prepended to the <i>FILENAME</i> to form 
     164the output file's name. Thus is the <i>FILENAME</i> was <span class="quote">&quot;foo.d&quot;</span> and &lt;text&gt; 
     165was <span class="quote">&quot;dd&quot;</span> the output file name would formed as <span class="quote">&quot;ddfoo.d&quot;</span>. This 
     166can be used in conjunction with the <i>@pos=</i> OPTION.</dd> 
     167<dt>@pos=&lt;text&gt;</dt><dd> This text is appended to the <i>FILENAME</i> to form 
     168the output file's name. Thus is the <i>FILENAME</i> was <span class="quote">&quot;foo.d&quot;</span> and &lt;text&gt; 
     169was <span class="quote">&quot;_ri&quot;</span> the output file name would formed as <span class="quote">&quot;foo_ri.d&quot;</span>. This 
     170can be used in conjunction with the <i>@pre=</i> OPTION.</dd> 
     171</dl) 
     172<br/>&nbsp;<br/> 
    139173The output file to the external tool is checked to see if it is still 
    140 up to date. 
    141  
    142 The output file from the external tool is added to the linkage set. 
    143  
    144 All such external programs are run before the D compiler is invoked. 
    145  
    146 <p><span class="example"><i>Example:</i> </span><pre class="code">// Tell 'build' that it needs to call an external program 
    147 // to build an up-to-date version of 'images.rc' 
    148 version(build) { pragma(build, "images.rc"); } 
    149 </pre></p> 
    150 </p> 
    151  
    152 <a name="pragma_export_version"><h2 class="section">pragma: export_version</h2></a> 
    153 <p>This allows you to set a global version identifier. 
     174up to date and the tool is only called if the output file's date is earlier 
     175than the input file's date (or a forced compile is requested). 
     176<br/>&nbsp;<br/> 
     177By default, the output file from the external tool is added to the linkage 
     178set of files, and the input file is ignored. These behaviours can be changed 
     179by options in the <a href="rules.html">Rule definition</a>. It is possible to tell <i>Build</i> to 
     180compile, link or ignore the input file and/or the output file. 
     181<br/>&nbsp;<br/> 
     182All these external programs are run before the D compiler is invoked. 
     183 
     184<p><span class="example"><i>Example:</i> </span></p><pre class="code">// Tell 'build' that it needs to use a rule called 'Resource' 
     185// to call an external program to build an up-to-date version 
     186// of 'images.rc' 
     187version(build) { pragma(build, "images.rc", "rule=Resource"); } 
     188</pre> 
     189</div> 
     190 
     191<div class="section"><h2 class="section"><a name="pragma_export_version">pragma: export_version</a></h2> 
     192This allows you to set a global version identifier. 
    154193DMD allows you to set a version identifier in your code, but the scope 
    155194of that is only for the module it is set in. This pragma gives you the 
     
    157196being compiled, and not just the 'current' module. 
    158197 
    159 <p><span class="example"><i>Example:</i> </span><pre class="code">    version(build) pragma(export_version, Unix); 
     198<p><span class="example"><i>Example:</i> </span></p><pre class="code">    version(build) pragma(export_version, Unix); 
    160199    version(build) pragma(export_version, Limited); 
    161 </pre></p> 
     200</pre> 
    162201 
    163202These lines will cause the compiler to have these version identifiers 
     
    168207</pre> 
    169208 
    170 </p
    171  
    172 <a name="pragma_build_def"><h2 class="section">pragma: build_def</h2></a
    173 <p>This supplies an option to be placed in an OptLink definition file. 
     209</div
     210 
     211<div class="section"><h2 class="section"><a name="pragma_build_def">pragma: build_def</a></h2
     212This supplies an option to be placed in an OptLink definition file. 
    174213You can have <i>build</i> create a customised OptLink definition file 
    175214by coding as many <i>build_def</i> pragmas as required. However, <i>build</i> will 
     
    187226</pre> 
    188227 
    189 <p><span class="example"><i>Example:</i> </span><pre class="code">  version(build) { 
     228<p><span class="example"><i>Example:</i> </span></p><pre class="code">  version(build) { 
    190229    pragma (build_def, "VERSION 1.1"); 
    191230    version(DOS) { 
     
    197236    } 
    198237  } 
    199 </pre></p> 
    200  
    201 You can supply <b>any</b> text string and it is used verbatim. There is no 
    202  restrictions on what you can include in the pragma. 
    203 </p> 
    204  
    205 <br /><hr/><span class="footnote">Generated by Ddoc, Fri Jun  9 16:40:49 2006 
    206  </span></body> 
     238</pre> 
     239 
     240<p class="note"><span class="noteid">NOTE:</span><span class="notebody"> You can supply <b>anything</b> in the text string and it is used verbatim. 
     241There is no restrictions on what you can include in this pragma.</span></p> 
     242</div> 
     243 
     244 
     245                 <hr><div class="footnote"><span class="footnote">Generated by Ddoc, Sat Jun 24 00:43:27 2006 
     246 </span></div> 
     247                 </body> 
    207248                 </html> 
  • trunk/Docs/profile_file.html

    r47 r48  
    1 <?xml version="1.0" encoding="utf-8"?> 
    2                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 HTML//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    32                 <html> 
    43                 <head> 
    5                  <meta http-equiv="content-type" content="text/html; charset=utf-8"
    6                  <link rel="stylesheet" type="text/css" href="style.css" title="standard"
    7                  <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
     4                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
     5                 <link rel="stylesheet" type="text/css" href="style.css" title="standard"
     6                 <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
    87                 <title></title> 
    98                 </head> 
     
    1211 
    1312<p class="page_title">Build Utility <span class="page_title">&copy; 2006, Derek Parnell, Melbourne</span> 
    14                  <br /> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
    15                  <a name="profile_file"><h1 class="topic">Topic: Profile File</h1></a
    16 <p>The utility's profile is used to specify various values 
     13                 <br> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
     14                 <h1 class="topic"><a name="profile_file">Topic: Profile File</a></h1
     15<div class="section">The utility's profile is used to specify various values 
    1716for the utility. The file is called <b>build.pfl</b>. You can have from zero 
    1817to three profile files because the <i>Build</i> utility looks in each 
     
    4241path, and <b>@P</b> is replaced by the compiler's configuration file's path. 
    4342 
    44 <p><span class="example"><i>Example:</i> Assuming you had set BUILDOPTS=-w -g</span><pre class="code">CMDLINE=%BUILDOPTS%    # Allow switches to be passed via enviroment symbol. 
    45 </pre></p> 
     43<p><span class="example"><i>Example:</i> Assuming you had set BUILDOPTS=-w -g</span></p><pre class="code">CMDLINE=%BUILDOPTS%    # Allow switches to be passed via enviroment symbol. 
     44</pre> 
    4645would mean that "-w -g" would be automatically placed on the utility's 
    4746commandline whenever you ran it. 
     
    5453next group in the file. 
    5554 
    56 <p><span class="example"><i>Example:</i> a Group</span><pre class="code">   [dbg] # To produce a debug edition of an application. 
     55<p><span class="example"><i>Example:</i> a Group</span></p><pre class="code">   [dbg] # To produce a debug edition of an application. 
    5756   CMDLINE=-unittest 
    5857   CMDLINE=--release 
     
    6261   CMDLINE=-full 
    6362   CMDLINE=-T{Target}_{Group} 
    64 </pre></p> 
     63</pre> 
    6564 
    6665All the options lines before the first group are known as the default 
     
    7776Blank lines are ignored. 
    7877 
    79 <p><span class="example"><i>Example:</i> </span><pre class="code">build myapp.d +final 
    80 </pre></p> 
     78<p><span class="example"><i>Example:</i> </span></p><pre class="code">build myapp.d +final 
     79</pre> 
    8180where if a group called '[final]' is contained in any configuration 
    8281file, the options in that group are used. 
    8382 
    84 <p><span class="example"><i>Example:</i> contents of [final]</span><pre class="code">    # This creates a production (release) edition of the app. 
     83<p><span class="example"><i>Example:</i> contents of [final]</span></p><pre class="code">    # This creates a production (release) edition of the app. 
    8584    [final] 
    8685    CMDLINE=-T{Target}_{Group}  # Set the name of the executable. 
     
    9392    CMDLINE=--w        # Turn off warnings 
    9493    CMDLINE=--g        # Turn off embedded debug symbolic info. 
    95 </pre></p> 
     94</pre> 
    9695 
    9796You can any number of configuration file group references on a command line. They 
    9897 are processed in the order they appear. 
    99 </p
     98</div
    10099 
    101100 
    102 <br /><hr/><span class="footnote">Generated by Ddoc, Fri Jun  9 16:40:49 2006 
    103  </span></body> 
     101 
     102                 <hr><div class="footnote"><span class="footnote">Generated by Ddoc, Sat Jun 24 00:43:27 2006 
     103 </span></div> 
     104                 </body> 
    104105                 </html> 
  • trunk/Docs/response_file.html

    r47 r48  
    1 <?xml version="1.0" encoding="utf-8"?> 
    2                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 HTML//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    32                 <html> 
    43                 <head> 
    5                  <meta http-equiv="content-type" content="text/html; charset=utf-8"
    6                  <link rel="stylesheet" type="text/css" href="style.css" title="standard"
    7                  <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
     4                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
     5                 <link rel="stylesheet" type="text/css" href="style.css" title="standard"
     6                 <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
    87                 <title></title> 
    98                 </head> 
     
    1211 
    1312<p class="page_title">Build Utility <span class="page_title">&copy; 2006, Derek Parnell, Melbourne</span> 
    14                  <br /> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
    15                  <a name="response_file"><h1 class="topic">Topic: Response File</h1></a
    16 <p>A response file is a file that contains command line values. 
     13                 <br> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
     14                 <h1 class="topic"><a name="response_file">Topic: Response File</a></h1
     15<div class="section">A response file is a file that contains command line values. 
    1716<br/>&nbsp;<br/> 
    1817You can specify all or any command line values in a 
     
    2423 with a <b>#</b> character and extends to the end of the line. 
    2524 
    26 <p><span class="example"><i>Example:</i> </span><pre class="code">   build @final 
    27 </pre></p> 
     25<p><span class="example"><i>Example:</i> </span></p><pre class="code">   build @final 
     26</pre> 
    2827where a file called 'final.brf' contains the command 
    2928line values, including other response file references. 
    3029 
    31 <p><span class="example"><i>Example:</i> contents of final.brf</span><pre class="code"># This creates a production (release) edition of the app. 
     30<p><span class="example"><i>Example:</i> contents of final.brf</span></p><pre class="code"># This creates a production (release) edition of the app. 
    3231-T{Target}_release  # Set the name of the executable. 
    3332-release   # Don't generate runtime checks. 
     
    3534-cleanup   # remove work files when completed 
    3635-inline    # Allow inlining to occur 
    37 </pre></p> 
     36</pre> 
    3837 
    3938The command line for your build could then look like ... 
     
    4645You can any number of response file references on a command line. They 
    4746 are processed in the order they appear. 
    48 </p
     47</div
    4948 
    5049 
    5150 
    52 <br /><hr/><span class="footnote">Generated by Ddoc, Fri Jun  9 16:40:49 2006 
    53  </span></body> 
     51 
     52                 <hr><div class="footnote"><span class="footnote">Generated by Ddoc, Sat Jun 24 00:43:27 2006 
     53 </span></div> 
     54                 </body> 
    5455                 </html> 
  • trunk/Docs/rules.html

    r47 r48  
    1 <?xml version="1.0" encoding="utf-8"?> 
    2                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 HTML//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    32                 <html> 
    43                 <head> 
    5                  <meta http-equiv="content-type" content="text/html; charset=utf-8"
    6                  <link rel="stylesheet" type="text/css" href="style.css" title="standard"
    7                  <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
     4                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
     5                 <link rel="stylesheet" type="text/css" href="style.css" title="standard"
     6                 <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
    87                 <title></title> 
    98                 </head> 
     
    1211 
    1312<p class="page_title">Build Utility <span class="page_title">&copy; 2006, Derek Parnell, Melbourne</span> 
    14                  <br /> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
    15                  <a name="rule_definition_file"><h1 class="topic">Topic: Rule Definition File</h1></a> 
    16 <p>Defines the rules used to build non-D source files. 
    17 This is not as advanced as the typical <b>makefile</b> abilities and is 
    18 only useful for simple situations. Specifically, it only caters for 
    19 applications that take a single input file to create the required 
    20 output file. 
     13                 <br> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
     14                 <h1 class="topic"><a name="rule_definition_file">Topic: Rule Definition File</a></h1> 
     15<div class="section">This file holds the definitions of the rules used to create files 
     16using tools other than the D compiler. 
     17<br/>&nbsp;<br/> 
     18This feature is not as advanced as the typical <b>makefile</b> abilities but is 
     19useful for simple situations. Specifically, it only caters for 
     20tools that take a single input file to create the required output file. 
     21<br/>&nbsp;<br/> 
     22The default Rule Definition File is called <span class="quote">&quot;default.rdf&quot;</span> but this 
     23can be changed in the <a href="configuration_file.html">Configuration File</a>. 
     24If you don't specify a full path to the file, <i>Build</i> searches for it. 
     25It first first looks in the directory where <i>Build</i> is installed, and if 
     26it is not found there, the scans throught the directories in the 
     27PATH environment symbol. 
     28<br/>&nbsp;<br/> 
     29The default RDF can also be overridden by the -RDF command line switch. 
     30<br/>&nbsp;<br/> 
     31The Rule Definition File is a text file that contains one or more <i>rules</i>. 
     32Each rule is defined in a set of lines. The first line in a 
     33<i>rule</i> <b>must</b> be the <span class="quote">&quot;rule=&quot;</span> line. 
    2134 
    22 The default Rule Definition File is called <span class="quote">&quot;default.rdf&quot;</span>. It is found by 
    23 first looking in the directory where the utility is installed, and if 
    24 it is not found there, the directories in the PATH environment symbol 
    25 are scanned. 
    26  
    27 The default RDF can be overridden by the -RDF command line switch. 
    28  
    29 Each rule is defined in a set of four mandatory lines ... <br> 
    30 <ul><span class="list"><li><span class="item">rule=&lt;name&gt;</span></li> 
    31 <li><span class="item">in=&lt;extention&gt;</span></li> 
    32 <li><span class="item">out=&lt;extention&gt;</span></li> 
    33 <li><span class="item">tool=&lt;command pattern&gt;</span></li> 
    34 </span></ul> 
     35<table class="table">  <thead class="thead">     <td class="thcell">Keyword&nbsp;</td> <td class="thcell">Mandatory?&nbsp;</td> <td class="thcell">Usage&nbsp;</td> 
     36  </thead> 
     37  <tr class="row">     <td class="cell">rule=&lt;name&gt;&nbsp;</td> <td class="cell">Yes&nbsp;</td> <td class="cell">Defines the name of this rule.&nbsp;</td> 
     38     </tr> 
     39  <tr class="row">     <td class="cell">tool=&lt;command pattern&gt;&nbsp;</td> <td class="cell">Yes&nbsp;</td> <td class="cell">Defines the command line to use.&nbsp;</td> 
     40     </tr> 
     41  <tr class="row">     <td class="cell">in=&lt;extention&gt;&nbsp;</td> <td class="cell">No&nbsp;</td> <td class="cell">Specifies the file type (extension) of the input file&nbsp;</td> 
     42     </tr> 
     43  <tr class="row">     <td class="cell">out=&lt;extention&gt;&nbsp;</td> <td class="cell">No&nbsp;</td> <td class="cell">Specifies the file type (extension) of the output file&nbsp;</td> 
     44     </tr> 
     45  <tr class="row">     <td class="cell">in_use=&lt;usage code&gt;&nbsp;</td> <td class="cell">No&nbsp;</td> 
     46                      <td class="cell">Specifies what to do with the input file 
     47                            after the tool has run. The &lt;usage code&gt; can be one of 
     48                            <span class="quote">&quot;compile&quot;</span>, <span class="quote">&quot;link&quot;</span>, or <span class="quote">&quot;ignore&quot;</span>. 
     49                            The default if not specified is <span class="quote">&quot;ignore&quot;</span>.&nbsp;</td> 
     50    </tr> 
     51  <tr class="row">     <td class="cell">out_use=&lt;usage code&gt;&nbsp;</td> <td class="cell">No&nbsp;</td> 
     52                      <td class="cell">Specifies what to do with the output file 
     53                            after the tool has run. The &lt;usage code&gt; can be one of 
     54                            <span class="quote">&quot;compile&quot;</span>, <span class="quote">&quot;link&quot;</span>, or <span class="quote">&quot;ignore&quot;</span>. 
     55                            The default if not specified is <span class="quote">&quot;link&quot;</span>.&nbsp;</td> 
     56  </tr> 
     57</table> 
     58<br/>&nbsp;<br/> 
    3559Any other line in the file, not starting with one of the above keywords 
    3660is simply ignored (treated as comments). 
    37  
    38 The <i>tool</i> line can contain special tokens. These are keywords enclosed 
     61<br/>&nbsp;<br/> 
     62The <span class="quote">&quot;tool=&lt;command pattern&gt;&quot;</span> line can contain special tokens. 
     63These are keywords enclosed 
    3964in braces. At compile time, the tokens are replaced by replacement text 
    40 taken from the pragma(build) statement. 
    41 <table class="table"><thead class="thead"><tr class="row"><td class="thcell">Token&nbsp;</td> <td class="thcell">Usage&nbsp;</td></tr> 
     65taken from the <b>pragma(build)</b> statement that invoked the rule. In addition, 
     66<i>Build</i> also generates some reserved tokens. 
     67<table class="table"><thead class="thead"><tr class="row"><td class="thcell">Reserved Token&nbsp;</td> <td class="thcell">Usage&nbsp;</td></tr> 
    4268</thead> 
    4369<tr class="row"><td class="cell">@IN&nbsp;</td> <td class="cell">the name of the input file&nbsp;</td></tr> 
     
    5076<p class="note"><span class="noteid">NOTE:</span><span class="notebody"> *This is everything up to but not including the final '.' character in the name.</span></p> 
    5177<i>Build</i> ensures that the outfile's path will exist before the tool 
    52 application is run. 
    53 <pre class="code">----- Windows Resource Compiler -------- 
    54 This uses pragma( <b>build</b>, &lt;sourcefile&gt;.rc); 
     78is run. 
     79<p><span class="example"><i>Example:</i> Sample RDF</span></p><pre class="code">----- Windows Resource Compiler -------- 
     80This uses pragma( <b>build</b>, "&lt;sourcefile&gt;.rc"); 
    5581---------------- 
    5682rule=Resources 
     
    6086 
    6187----- DMD C linkage -------------------- 
    62 This uses pragma( <b>build</b>, &lt;sourcefile&gt;.c, "COPT=&lt;options&gt;", "HDR=&lt;whatever&gt;"); 
     88This uses pragma( <b>build</b>, "&lt;sourcefile&gt;.c", "COPT=&lt;options&gt;", "HDR=&lt;whatever&gt;"); 
    6389---------------- 
    6490rule=DMD C/C++ 
     
    6894</pre> 
    6995 
    70 </p
     96</div
    7197 
    7298 
    73 <br /><hr/><span class="footnote">Generated by Ddoc, Fri Jun  9 16:40:49 2006 
    74  </span></body> 
     99 
     100                 <hr><div class="footnote"><span class="footnote">Generated by Ddoc, Sat Jun 24 00:43:27 2006 
     101 </span></div> 
     102                 </body> 
    75103                 </html> 
  • trunk/Docs/style.css

    r47 r48  
    5555    padding-bottom: 3px; 
    5656    margin-top: 35px; 
    57     margin-bottom: -5px; 
     57    margin-bottom: 5px; 
    5858} 
    5959 
     
    9999} 
    100100 
    101 ul.indent 
    102 { 
    103     margin-left: 5%; 
    104     margin-right: 5%; 
    105 } 
    106  
    107101h2.toc 
    108102{ 
     
    116110} 
    117111 
     112li.item 
     113{ 
     114    color: #553333; 
     115} 
     116 
     117div.indent 
     118{ 
     119    margin-left: 10px; 
     120} 
     121 
    118122div.toc 
    119123{ 
     
    129133{ 
    130134    font-size: smaller; 
     135    padding-left: 10px; 
    131136} 
    132137span.totoc 
     
    196201} 
    197202 
    198 span.list 
     203div.list 
    199204{ 
    200205    color: #FF0000; 
  • trunk/Docs/switches.html

    r47 r48  
    1 <?xml version="1.0" encoding="utf-8"?> 
    2                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 HTML//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    32                 <html> 
    43                 <head> 
    5                  <meta http-equiv="content-type" content="text/html; charset=utf-8"
    6                  <link rel="stylesheet" type="text/css" href="style.css" title="standard"
    7                  <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
     4                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
     5                 <link rel="stylesheet" type="text/css" href="style.css" title="standard"
     6                 <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
    87                 <title></title> 
    98                 </head> 
     
    1211 
    1312<p class="page_title">Build Utility <span class="page_title">&copy; 2006, Derek Parnell, Melbourne</span> 
    14                  <br /> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
    15                  <a name="switches"><h1 class="topic">Topic: Switches</h1></a
    16 <p><i>Build</i> supports a number of command line switches to control its 
     13                 <br> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
     14                 <h1 class="topic"><a name="switches">Topic: Switches</a></h1
     15<div class="section"><i>Build</i> supports a number of command line switches to control its 
    1716default assumptions. All switches begin with a <b>'-'</b>. Any switch that 
    1817begins with a double dash <b>'--'</b> has the effect of cancelling that 
    1918switch. 
    20 <p><span class="example"><i>Example:</i> </span><pre class="code">build myapp @dbg --info 
    21 </pre></p> 
     19<p><span class="example"><i>Example:</i> </span></p><pre class="code">build myapp @dbg --info 
     20</pre> 
    2221The above example grabs any switches from the 'dbg' response file and the 
    2322'--info' will cancel out any '-info' that might have been in that response 
    2423file. 
    25 </p> 
    26  
    27 <a name="switch_nodef"><h2 class="section">switch: -nodef<span class="secdef">Prevent a Module Definition File being created</span></h2></a> 
    28 <ul class="indent">Normally, the utility will automatically create a Module Definition File 
     24</div> 
     25 
     26<h2 class="section"><a name="switch_nodef">switch: -nodef<span class="secdef">Prevent a Module Definition File being created</span></a></h2> 
     27<div class="indent"><br> 
     28Normally, the utility will automatically create a Module Definition File 
    2929for the linker. This will typically contain the EXETYPE command and any other 
    3030commands as specified in any pragma() 
     
    3232have to provide your own Module Definition File or its equivalent on the 
    3333command line. 
    34 </ul> 
    35  
    36 <a name="switch_v"><h2 class="section">switch: -v<span class="secdef">Global verbose mode</span></h2></a> 
    37 <ul class="indent">Sets <i>verbose</i> mode on for both <i>Build</i> and for the compiler. 
    38 </ul> 
    39  
    40 <a name="switch_V"><h2 class="section">switch: -V<span class="secdef">Normal verbose mode</span></h2></a> 
    41 <ul class="indent">Set <i>verbose</i> mode on for just <i>Build</i> and <b>not</b> for the compiler. 
    42 </ul> 
    43  
    44 <a name="switch_names"><h2 class="section">switch: -names<span class="secdef">Display Names</span></h2></a> 
    45 <ul class="indent">Displays the names of the files used in building the target. 
    46 </ul> 
    47  
    48 <a name="switch_DCPATH"><h2 class="section">switch: -DCPATH<span class="secdef">Identifies where the compiler has been installed.</span></h2></a> 
    49 <ul class="indent">Normally, <i>Build</i> scans the PATH environment symbol to find where the 
     34</div> 
     35 
     36<h2 class="section"><a name="switch_v">switch: -v<span class="secdef">Global verbose mode</span></a></h2> 
     37<div class="indent"><br> 
     38Sets <i>verbose</i> mode on for both <i>Build</i> and for the compiler. 
     39</div> 
     40 
     41<h2 class="section"><a name="switch_V">switch: -V<span class="secdef">Normal verbose mode</span></a></h2> 
     42<div class="indent"><br> 
     43Set <i>verbose</i> mode on for just <i>Build</i> and <b>not</b> for the compiler. 
     44</div> 
     45 
     46<h2 class="section"><a name="switch_names">switch: -names<span class="secdef">Display Names</span></a></h2> 
     47<div class="indent"><br> 
     48Displays the names of the files used in building the target. 
     49</div> 
     50 
     51<h2 class="section"><a name="switch_DCPATH">switch: -DCPATH<span class="secdef">Identifies where the compiler has been installed.</span></a></h2> 
     52<div class="indent"><br> 
     53Normally, <i>Build</i> scans the PATH environment symbol to find where the 
    5054 D compiler is located. However, if you need to use the compiler from 
    5155 a different location, you would use this switch to tell <i>Build</i> where 
     
    5862you will also need to use the  switch.</span> 
    5963 
    60 <p><span class="example"><i>Example:</i> </span><pre class="code">  -DCPATHc:\old\dmd\bin 
    61 </pre></p> 
    62 </ul> 
    63  
    64 <a name="switch_CFPATH"><h2 class="section">switch: -CFPATH<span class="secdef">Identifies where the D config file has been installed.</span></h2></a> 
    65 <ul class="indent">Normally, <i>Build</i> looks in the same place that the compiler is 
     64<p><span class="example"><i>Example:</i> </span></p><pre class="code">  -DCPATHc:\old\dmd\bin 
     65</pre> 
     66</div> 
     67 
     68<h2 class="section"><a name="switch_CFPATH">switch: -CFPATH<span class="secdef">Identifies where the D config file has been installed.</span></a></h2> 
     69<div class="indent"><br> 
     70Normally, <i>Build</i> looks in the same place that the compiler is 
    6671 installed in, but if you need to use a different configuration 
    6772 path from that, you would use this switch to tell <i>Build</i> where 
    6873 it is. 
    6974 
    70 <p><span class="example"><i>Example:</i> </span><pre class="code">  -CFPATHc:\myproject\configs 
    71 </pre></p> 
    72 </ul> 
    73  
    74 <a name="switch_full"><h2 class="section">switch: -full<span class="secdef">Causes all source files to be compiled.</span></h2></a> 
    75 <ul class="indent">Normally, <i>Build</i> only compiles a source file if it's object file 
     75<p><span class="example"><i>Example:</i> </span></p><pre class="code">  -CFPATHc:\myproject\configs 
     76</pre> 
     77</div> 
     78 
     79<h2 class="section"><a name="switch_full">switch: -full<span class="secdef">Causes all source files to be compiled.</span></a></h2> 
     80<div class="indent"><br> 
     81Normally, <i>Build</i> only compiles a source file if it's object file 
    7682is out of date or missing. This switch forces all source files to be 
    7783recompiled, even if not strictly required. 
    7884 
    7985<span class="nb"><strong>Note:</strong> Module sources in the <i>ignore</i> list are still ignored though.</span> 
    80 </ul> 
    81  
    82 <a name="switch_link"><h2 class="section">switch: -link<span class="secdef">Forces the linker to be called instead of the librarian.</span></h2></a> 
    83 <ul class="indent">Normally, if <i>Build</i> does not find a <b>main()</b> or <b>WinMain()</b> function 
     86</div> 
     87 
     88<h2 class="section"><a name="switch_link">switch: -link<span class="secdef">Forces the linker to be called instead of the librarian.</span></a></h2> 
     89<div class="indent"><br> 
     90Normally, if <i>Build</i> does not find a <b>main()</b> or <b>WinMain()</b> function 
    8491 in the source files, it creates a library to contain the object 
    8592files. But when this switch is used, <i>Build</i> will attempt to 
     
    8895You would typically use this if the <i>main</i> function was being supplied 
    8996from an existing library or object file rather than one of your source files. 
    90 </ul> 
    91  
    92 <a name="switch_exec"><h2 class="section">switch: -exec&lt;args&gt;<span class="secdef">Runs a program after successful linking.</span></h2></a> 
    93 <ul class="indent">If the link is successful, this will cause the 
     97</div> 
     98 
     99<h2 class="section"><a name="switch_exec">switch: -exec&lt;args&gt;<span class="secdef">Runs a program after successful linking.</span></a></h2> 
     100<div class="indent"><br> 
     101If the link is successful, this will cause the 
    94102executable just created to run. You can give it 
    95103run time arguments. Anything after the '-exec' will 
     
    97105to quote any embedded spaces. 
    98106 
    99 <p><span class="example"><i>Example:</i> </span><pre class="code">    -exec"abc.de second" 
    100 </pre></p> 
    101 </ul> 
    102  
    103 <a name="switch_od"><h2 class="section">switch: -od&lt;path&gt;<span class="secdef">Nominates the temporary file directory.</span></h2></a> 
    104 <ul class="indent">By default, the utility creates any work files in the same directory 
     107<p><span class="example"><i>Example:</i> </span></p><pre class="code">    -exec"abc.de second" 
     108</pre> 
     109</div> 
     110 
     111<h2 class="section"><a name="switch_od">switch: -od&lt;path&gt;<span class="secdef">Nominates the temporary file directory.</span></a></h2> 
     112<div class="indent"><br> 
     113By default, the utility creates any work files in the same directory 
    105114as the target file. You can use this switch to nominate an alternative 
    106115location for these files. The directory is created if it doesn't exist. 
     
    110119are created in the same directory as the corresponding source file. 
    111120 
    112 <p><span class="example"><i>Example:</i> </span><pre class="code">        -odC:\temp\workarea 
    113 </pre></p> 
    114 </ul> 
    115  
    116 <a name="switch_nolink"><h2 class="section">switch: -nolink<span class="secdef">Ensures that the linker is not called.</span></h2></a> 
    117 <ul class="indent">Normally, if <i>Build</i> finds a <b>main()</b> or <b>WinMain()</b> function, it 
     121<p><span class="example"><i>Example:</i> </span></p><pre class="code">        -odC:\temp\workarea 
     122</pre> 
     123</div> 
     124 
     125<h2 class="section"><a name="switch_nolink">switch: -nolink<span class="secdef">Ensures that the linker is not called.</span></a></h2> 
     126<div class="indent"><br> 
     127Normally, if <i>Build</i> finds a <b>main()</b> or <b>WinMain()</b> function, it 
    118128tries to create an application by calling the linker. If you use 
    119129this switch however, the linker will not be called. 
     
    123133 switch. But you could just create a set of 
    124134object files without linking them with this switch. 
    125 </ul> 
    126  
    127 <a name="switch_lib"><h2 class="section">switch: -lib<span class="secdef">Forces the object files to be placed in a library.</span></h2></a> 
    128 <ul class="indent">Normally, if <i>Build</i> finds a <b>main()</b> or <b>WinMain()</b> function, it 
     135</div> 
     136 
     137<h2 class="section"><a name="switch_lib">switch: -lib<span class="secdef">Forces the object files to be placed in a library.</span></a></h2> 
     138<div class="indent"><br> 
     139Normally, if <i>Build</i> finds a <b>main()</b> or <b>WinMain()</b> function, it 
    129140tries to create an application by calling the linker. But if you 
    130141use this switch, the librarian is called instead of the linker. 
     
    133144stores your <i>main</i> function in it, in which case you'd also use the 
    134145 switch. 
    135 </ul> 
    136  
    137 <a name="switch_obj"><h2 class="section">switch: -obj<span class="secdef">Shorthand for using both  
    138  and  switches.</span></h2></a> 
    139 <ul class="indent">Normally <i>Build</i> tries to create either an executable or a library file. 
     146</div> 
     147 
     148<h2 class="section"><a name="switch_obj">switch: -obj<span class="secdef">Shorthand for using both  
     149 and  switches.</span></a></h2> 
     150<div class="indent"><br> 
     151Normally <i>Build</i> tries to create either an executable or a library file. 
    140152However sometimes you just need the object files to be created. 
    141153This switch is literally the same has if you had placed both -nolink and 
     
    143155modules to just get their object files, without doing anything else, 
    144156this neat shorthand is available. 
    145 </ul> 
    146  
    147 <a name="switch_nolib"><h2 class="section">switch: -nolib<span class="secdef">Ensures that the object files are not used to form a library.</span></h2></a> 
    148 <ul class="indent">Normally, if <i>Build</i> does not find a <b>main()</b> or a <b>WinMain()</b> function, 
     157</div> 
     158 
     159<h2 class="section"><a name="switch_nolib">switch: -nolib<span class="secdef">Ensures that the object files are not used to form a library.</span></a></h2> 
     160<div class="indent"><br> 
     161Normally, if <i>Build</i> does not find a <b>main()</b> or a <b>WinMain()</b> function, 
    149162it calls the librarian to create a library for your object files. 
    150163But if you use this switch, the librarian is not called. 
    151 </ul> 
    152  
    153 <a name="switch_allobj"><h2 class="section">switch: -allobj<span class="secdef">Ensures that all object files are added to a library.</span></h2></a> 
    154 <ul class="indent">Normally, <i>Build</i> will only create a library using the object files 
     164</div> 
     165 
     166<h2 class="section"><a name="switch_allobj">switch: -allobj<span class="secdef">Ensures that all object files are added to a library.</span></a></h2> 
     167<div class="indent"><br> 
     168Normally, <i>Build</i> will only create a library using the object files 
    155169that are in the same directory as the new library. You would use 
    156170this switch if you wanted all object files created by this build 
    157171session to be included in the library. 
    158 </ul> 
    159  
    160 <a name="switch_cleanup"><h2 class="section">switch: -cleanup<span class="secdef">Ensures that all working files created during the run are removed.</span></h2></a> 
    161 <ul class="indent">Normally, <i>Build</i> does not delete any object files or working files 
     172</div> 
     173 
     174<h2 class="section"><a name="switch_cleanup">switch: -cleanup<span class="secdef">Ensures that all working files created during the run are removed.</span></a></h2> 
     175<div class="indent"><br> 
     176Normally, <i>Build</i> does not delete any object files or working files 
    162177when it finishes a session. You can use this switch to have <i>Build</i> 
    163178clean up after itself. This will remove all object files created 
     
    165180<br/>&nbsp;<br/> 
    166181<span class="nb"><strong>Note:</strong> This can also be supplied as <b>-clean</b> as an alias.</span> 
    167 </ul> 
    168  
    169 <a name="switch_LIBOPT"><h2 class="section">switch: -LIBOPT&lt;option(s)&gt;<span class="secdef">Allows commandline options to be passed to the librarian.</span></h2></a> 
    170 <ul class="indent">This allows you to pass one or more command line arguments to the librarian. 
    171  
    172 <p><span class="example"><i>Example:</i> Set the page size to 32Kb</span><pre class="code">    -LIBOPT-p32 
    173 </pre></p> 
    174 <p><span class="example"><i>Example:</i> Embedded spaces enclosed in quotes.</span><pre class="code">    "-LIBOPT -l -i" 
    175 </pre></p> 
    176 </ul> 
    177  
    178 <a name="switch_LIBPATH"><h2 class="section">switch: -LIBPATH&lt;path&gt;<span class="secdef">Used to add a search path for library files.</span></h2></a> 
    179 <ul class="indent">This allows you to add one or more paths to be searched for library files. 
     182</div> 
     183 
     184<h2 class="section"><a name="switch_LIBOPT">switch: -LIBOPT&lt;option(s)&gt;<span class="secdef">Allows commandline options to be passed to the librarian.</span></a></h2> 
     185<div class="indent"><br> 
     186This allows you to pass one or more command line arguments to the librarian. 
     187 
     188<p><span class="example"><i>Example:</i> Set the page size to 32Kb</span></p><pre class="code">    -LIBOPT-p32 
     189</pre> 
     190<p><span class="example"><i>Example:</i> Embedded spaces enclosed in quotes.</span></p><pre class="code">    "-LIBOPT -l -i" 
     191</pre> 
     192</div> 
     193 
     194<h2 class="section"><a name="switch_LIBPATH">switch: -LIBPATH&lt;path&gt;<span class="secdef">Used to add a search path for library files.</span></a></h2> 
     195<div class="indent"><br> 
     196This allows you to add one or more paths to be searched for library files. 
    180197<br/>&nbsp;<br/> 
    181198This might be used when you don't want to permanently update the 
    182199standard search paths. 
    183 <p><span class="example"><i>Example:</i> </span><pre class="code">    -LIBPATH=c:\mylibs;d:\3rdparty;c:\lib\debuglibs 
    184 </pre></p> 
    185 </ul> 
    186  
    187 <a name="switch_R"><h2 class="section">switch: -R&lt;option&gt;<span class="secdef"> 
    188             Determines if the compiler tools use a response file or not.</span></h2></a> 
    189 <ul class="indent">For <i>DigitalMars</i> tools in the Windows environment, a response file is 
     200<p><span class="example"><i>Example:</i> </span></p><pre class="code">    -LIBPATH=c:\mylibs;d:\3rdparty;c:\lib\debuglibs 
     201</pre> 
     202</div> 
     203 
     204<h2 class="section"><a name="switch_R">switch: -R&lt;option&gt;<span class="secdef"> 
     205            Determines if the compiler tools use a response file or not.</span></a></h2> 
     206<div class="indent"><br> 
     207For <i>DigitalMars</i> tools in the Windows environment, a response file is 
    190208the default, but for <i>other</i> tools and other operating systems the 
    191209default is to use command line arguments. 
    192210<br/>&nbsp;<br/> 
    193211This switch has three formats: <br/>&nbsp;<br/> 
    194 <ul><span class="list"> <li><span class="item">-Ry to use a response file </span></li> 
    195  <li><span class="item">-Rn to use command line arguments </span></li> 
    196  <li><span class="item">-R to reverse the current setting.</span></li> 
    197  </span></ul
     212<div class="list"><ul> <li class="item">-Ry to use a response file  
     213 <li class="item">-Rn to use command line arguments  
     214 <li class="item">-R to reverse the current setting. 
     215 </ul></div
    198216<br/>&nbsp;<br/> 
    199217The use of a response file is only really needed when the command line 
     
    207225Not all tools respect the response file idea however the Windows based 
    208226 <i>DigitalMars</i> tools do understand it. 
    209 <ul class="indent"> Without a response file the compiler might be invoked thus: 
     227<div class="indent"><br> 
     228 Without a response file the compiler might be invoked thus: 
    210229<pre class="code">dmd -op -release appmain.d somemod.obj -IC:\DLibs 
    211230</pre> 
     
    223242-IC:\DLibs 
    224243</pre> 
    225 </ul> 
    226 </ul> 
    227  
    228 <a name="switch_test"><h2 class="section">switch: -test<span class="secdef"> 
    229      Does a test run only. No compiling, linking or library work is done.</span></h2></a> 
    230 <ul class="indent">This will display the command lines instead of running them. It can be used 
     244</div> 
     245</div> 
     246 
     247<h2 class="section"><a name="switch_test">switch: -test<span class="secdef"> 
     248     Does a test run only. No compiling, linking or library work is done.</span></a></h2> 
     249<div class="indent"><br> 
     250This will display the command lines instead of running them. It can be used 
    231251to see what would happen without actually building anything. 
    232 </ul> 
    233  
    234 <a name="switch_PP"><h2 class="section">switch: -PP&lt;path&gt;<span class="secdef"> 
    235      Adds a project path to the source search list.</span></h2></a> 
    236 <ul class="indent">This is used to add a path that will be searched when <i>Build</i> is 
     252</div> 
     253 
     254<h2 class="section"><a name="switch_PP">switch: -PP&lt;path&gt;<span class="secdef"> 
     255     Adds a project path to the source search list.</span></a></h2> 
     256<div class="indent"><br> 
     257This is used to add a path that will be searched when <i>Build</i> is 
    237258looking for source files that are only supplied with relative paths. 
    238259<br/>&nbsp;<br/> 
     
    242263appear as required. 
    243264 
    244 <p><span class="example"><i>Example:</i> </span><pre class="code">build editor codeparser -PPc:\projects\myeditor\source 
    245 </pre></p> 
     265<p><span class="example"><i>Example:</i> </span></p><pre class="code">build editor codeparser -PPc:\projects\myeditor\source 
     266</pre> 
    246267In the above example, <i>Build</i> will look for 'editor.d' and 'codeparser.d' 
    247268first in the current directory and then, if it didn't find them, in the 
    248269folder 'c:\projects\myeditor\source'. 
    249 </ul> 
    250  
    251 <a name="switch_RDF"><h2 class="section">switch: -RDF&lt;file&gt;<span class="secdef"> 
    252      Defines a file to override the default <a href="rules.html">Rule Definition File</a>.</span></h2></a> 
    253 <ul class="indent">The default file is called <b>default.rdf</b>. But if you need to provide 
     270</div> 
     271 
     272<h2 class="section"><a name="switch_RDF">switch: -RDF&lt;file&gt;<span class="secdef"> 
     273     Defines a file to override the default <a href="rules.html">Rule Definition File</a>.</span></a></h2> 
     274<div class="indent"><br> 
     275The default file is called <b>default.rdf</b>. But if you need to provide 
    254276an alternate file, you can use this switch. 
    255277 
    256 <p><span class="example"><i>Example:</i> </span><pre class="code">-RDFmyrules.xyz 
    257 </pre></p> 
    258 </ul> 
    259  
    260 <a name="switch_MDF"><h2 class="section">switch: -MDF&lt;file&gt;<span class="secdef"> 
    261      Defines a file to override the default <a href="macros.html">Macro Definition File</a>.</span></h2></a> 
    262 <ul class="indent">The default file is called <b>build.mdf</b>. But if you need to provide 
     278<p><span class="example"><i>Example:</i> </span></p><pre class="code">-RDFmyrules.xyz 
     279</pre> 
     280</div> 
     281 
     282<h2 class="section"><a name="switch_MDF">switch: -MDF&lt;file&gt;<span class="secdef"> 
     283     Defines a file to override the default <a href="macros.html">Macro Definition File</a>.</span></a></h2> 
     284<div class="indent"><br> 
     285The default file is called <b>build.mdf</b>. But if you need to provide 
    263286an alternate file, you can use this switch. 
    264287 
    265 <p><span class="example"><i>Example:</i> </span><pre class="code">-MDFmymacros.xyz 
    266 </pre></p> 
    267 </ul> 
    268  
    269 <a name="switch_dll"><h2 class="section">switch: -dll<span class="secdef"> 
    270      Forces a DLL library to be created.</span></h2></a> 
    271 <ul class="indent"><span class="nb"><strong>Note:</strong> This only applies to Windows environment.</span> 
     288<p><span class="example"><i>Example:</i> </span></p><pre class="code">-MDFmymacros.xyz 
     289</pre> 
     290</div> 
     291 
     292<h2 class="section"><a name="switch_dll">switch: -dll<span class="secdef"> 
     293     Forces a DLL library to be created.</span></a></h2> 
     294<div class="indent"><br> 
     295<span class="nb"><strong>Note:</strong> This only applies to Windows environment.</span> 
    272296<br/>&nbsp;<br/> 
    273297Normally, if <i>Build</i> finds a <b>DllMain()</b> function it automatically 
    274298creates a DLL library. However, if you need to force a DLL 
    275299library to be created instead of a normal library, you would use this switch. 
    276 </ul> 
    277  
    278 <a name="switch_gui"><h2 class="section">switch: -gui<span class="secdef"> 
    279      Forces a GUI application to be created.</span></h2></a> 
    280 <ul class="indent"><span class="nb"><strong>Note:</strong> This only applies to Windows environment.</span> 
     300</div> 
     301 
     302<h2 class="section"><a name="switch_gui">switch: -gui<span class="secdef"> 
     303     Forces a GUI application to be created.</span></a></h2> 
     304<div class="indent"><br> 
     305<span class="nb"><strong>Note:</strong> This only applies to Windows environment.</span> 
    281306<br/>&nbsp;<br/> 
    282307Normally, if <i>Build</i> finds a <b>WinMain()</b> function it automatically 
     
    290315<br/>&nbsp;<br/> 
    291316By default, <i>Build</i> uses the version of Windows it is running under. 
    292 </ul> 
    293  
    294 <a name="switch_info"><h2 class="section">switch: -info<span class="secdef">Displays information about Build.</span></h2></a> 
    295 <ul class="indent">Displays the version and path of the <i>Build</i> application. 
    296 <p><span class="example"><i>Example:</i> </span><pre class="code">Path and Version : y:\util\build.exe v2.9(1197) 
     317</div> 
     318 
     319<h2 class="section"><a name="switch_info">switch: -info<span class="secdef">Displays information about Build.</span></a></h2> 
     320<div class="indent"><br> 
     321Displays the version and path of the <i>Build</i> application. 
     322<p><span class="example"><i>Example:</i> </span></p><pre class="code">Path and Version : y:\util\build.exe v2.9(1197) 
    297323  built on Wed Aug 10 11:03:42 2005 
    298 </pre></p> 
    299 </ul> 
    300  
    301 <a name="switch_help"><h2 class="section">switch: -help<span class="secdef">Displays the full text of the Usage information.</span></h2></a> 
    302 <ul class="indent">This displays the commandline syntax, including all the switches, used 
     324</pre> 
     325</div> 
     326 
     327<h2 class="section"><a name="switch_help">switch: -help<span class="secdef">Displays the full text of the Usage information.</span></a></h2> 
     328<div class="indent"><br> 
     329This displays the commandline syntax, including all the switches, used 
    303330to run <i>Build</i>. 
    304331<br/>&nbsp;<br/> 
    305332This has the aliases of <b>-h</b> and <b>-?</b> 
    306 </ul> 
    307  
    308 <a name="switch_silent"><h2 class="section">switch: -silent<span class="secdef">Prevents unnecessary messages being displayed.</span></h2></a> 
    309 <ul class="indent">Some messages are just informational and under some circumstances they 
     333</div> 
     334 
     335<h2 class="section"><a name="switch_silent">switch: -silent<span class="secdef">Prevents unnecessary messages being displayed.</span></a></h2> 
     336<div class="indent"><br> 
     337Some messages are just informational and under some circumstances they 
    310338can interfer with reading the output. 
    311 </ul> 
    312  
    313 <a name="switch_noautoimport"><h2 class="section">switch: -noautoimport<span class="secdef"> 
    314     Prevents source file paths from being added to the list of Import Roots.</span></h2></a> 
    315 <ul class="indent">By default, for each source file that imports a module, it's path is added 
     339</div> 
     340 
     341<h2 class="section"><a name="switch_noautoimport">switch: -noautoimport<span class="secdef"> 
     342    Prevents source file paths from being added to the list of Import Roots.</span></a></h2> 
     343<div class="indent"><br> 
     344By default, for each source file that imports a module, it's path is added 
    316345to the list of paths that will be searched for module source files. If you 
    317346do not wish that behaviour, you will need to use this switch. In that case, 
     
    320349on the command line. 
    321350 
    322 <p><span class="example"><i>Example:</i> </span><pre class="code">build myApp -noautoimport 
    323 </pre></p> 
    324 </ul> 
    325  
    326 <a name="switch_X"><h2 class="section">switch: -X&lt;name&gt;<span class="secdef"> 
    327     Identifies a module or package to ignore.</span></h2></a> 
    328 <ul class="indent">Normally, <i>Build</i> assumes that all imported modules are available 
     351<p><span class="example"><i>Example:</i> </span></p><pre class="code">build myApp -noautoimport 
     352</pre> 
     353</div> 
     354 
     355<h2 class="section"><a name="switch_X">switch: -X&lt;name&gt;<span class="secdef"> 
     356    Identifies a module or package to ignore.</span></a></h2> 
     357<div class="indent"><br> 
     358Normally, <i>Build</i> assumes that all imported modules are available 
    329359to be recompiled if required. You would use this switch if you explictly 
    330360did not want <i>Build</i> to recompile a module. 
     
    333363means that <i>Build</i> does not try to recompile phobos.</span> 
    334364 
    335 <p><span class="example"><i>Example:</i> ignore the module (or package) called 'parser'</span><pre class="code">-Xparser 
    336 </pre></p> 
    337 </ul> 
    338  
    339 <a name="switch_M"><h2 class="section">switch: -M&lt;name&gt;<span class="secdef"> 
    340     Identifies a module or a package to notice (not ignore).</span></h2></a> 
    341 <ul class="indent">You would use this to name any module that is not part of the target's 
     365<p><span class="example"><i>Example:</i> ignore the module (or package) called 'parser'</span></p><pre class="code">-Xparser 
     366</pre> 
     367</div> 
     368 
     369<h2 class="section"><a name="switch_M">switch: -M&lt;name&gt;<span class="secdef"> 
     370    Identifies a module or a package to notice (not ignore).</span></a></h2> 
     371<div class="indent"><br> 
     372You would use this to name any module that is not part of the target's 
    342373dependancies, or is one of the <i>ignored</i> modules. 
    343374 
    344375You can use this switch to recompile <i>phobos</i>. 
    345376 
    346 <p><span class="example"><i>Example:</i> (notice the Phobos package)</span><pre class="code">-Mphobos 
    347 </pre></p> 
    348 </ul> 
    349  
    350 <a name="switch_T"><h2 class="section">switch: -T&lt;name&gt;<span class="secdef"> 
    351     Identifies the target name to build.</span></h2></a> 
    352 <ul class="indent">Normally, <i>Build</i> derives the target name from the first file name 
     377<p><span class="example"><i>Example:</i> (notice the Phobos package)</span></p><pre class="code">-Mphobos 
     378</pre> 
     379</div> 
     380 
     381<h2 class="section"><a name="switch_T">switch: -T&lt;name&gt;<span class="secdef"> 
     382    Identifies the target name to build.</span></a></h2> 
     383<div class="indent"><br> 
     384Normally, <i>Build</i> derives the target name from the first file name 
    353385on the command line, or from the pragma(target) if present. 
    354386If however, you wish to override that, use this switch. 
     
    359391use it for building any application.</span> 
    360392 
    361 <p><span class="example"><i>Example:</i> </span><pre class="code">build editor -Ttestapp 
    362 </pre></p> 
     393<p><span class="example"><i>Example:</i> </span></p><pre class="code">build editor -Ttestapp 
     394</pre> 
    363395In the example above, the executable built would be called 
    364396(in Windows) 'testapp.exe' rather than the normal 'editor.exe'. 
    365397 
    366 <p><span class="example"><i>Example:</i> Generate a name derived from the default name</span><pre class="code">build editor -Ttest_{Target} 
    367 </pre></p> 
     398<p><span class="example"><i>Example:</i> Generate a name derived from the default name</span></p><pre class="code">build editor -Ttest_{Target} 
     399</pre> 
    368400In the example above, the executable built would be called 
    369401(in Windows) 'test_editor.exe'. 
    370 </ul> 
    371  
    372  
    373 <a name="switch_autowinlibs"><h2 class="section">switch: -AutoWinLibs(=&lt;Yes/No&gt;)<span class="secdef"> 
    374    Give Windows libraries to linker</span></h2></a> 
    375 <ul class="indent">By default, when creating a Windows GUI application, <i>Build</i> will 
     402</div> 
     403 
     404 
     405<h2 class="section"><a name="switch_autowinlibs">switch: -AutoWinLibs(=&lt;Yes/No&gt;)<span class="secdef"> 
     406   Give Windows libraries to linker</span></a></h2> 
     407<div class="indent"><br> 
     408By default, when creating a Windows GUI application, <i>Build</i> will 
    376409supply a list of commonly used windows libraries to the linker. However, 
    377410if for some reason you do not want this to happen, you can use this switch 
    378411to disable that. <br/>&nbsp;<br/> 
    379412<b>Note:</b> that this switch is not valid for Posix editions of <i>Build</i>. 
    380 </ul> 
    381  
    382 <a name="switch_modules"><h2 class="section">switch: -modules(=&lt;name&gt;)<span class="secdef"> 
    383    Create a Module List File</span></h2></a> 
    384 <ul class="indent">Use this switch to cause a Module List File to be created. This 
     413</div> 
     414 
     415<h2 class="section"><a name="switch_modules">switch: -modules(=&lt;name&gt;)<span class="secdef"> 
     416   Create a Module List File</span></a></h2> 
     417<div class="indent"><br> 
     418Use this switch to cause a Module List File to be created. This 
    385419file will contain a list of all the module names processed by 
    386420<i>Build</i>. You can use the Configuration File to specify the 
     
    395429The name of the Module List File will be as specified on the switch, but 
    396430if not supplied it takes the form of <i>&lt;target&gt;_modules.ddoc </i>. 
    397 </ul> 
    398  
    399 <a name="switch_uses"><h2 class="section">switch: -uses[=outputname]<span class="secdef"> 
    400     Create the Uses/Used-By cross reference file.</span></h2></a> 
    401 <ul class="indent">This causes <i>Build</i> to create a file that details the modules that 
     431</div> 
     432 
     433<h2 class="section"><a name="switch_uses">switch: -uses[=outputname]<span class="secdef"> 
     434    Create the Uses/Used-By cross reference file.</span></a></h2> 
     435<div class="indent"><br> 
     436This causes <i>Build</i> to create a file that details the modules that 
    402437are used by a module and the modules that uses a module. 
    403438<br/>&nbsp;<br/> 
     
    415450Each section is sorted in ascending order. 
    416451 
    417 <p><span class="example"><i>Example:</i> The layout of the cross reference file</span><pre class="code">build tres -uses=xref.txt 
     452<p><span class="example"><i>Example:</i> The layout of the cross reference file</span></p><pre class="code">build tres -uses=xref.txt 
    418453type xref.txt 
    419454<pre class="code">[USES] 
     
    430465y:\dmd\src\phobos\std\stdio.d &lt;&gt; tres.d 
    431466</pre> 
    432 </pre></p> 
    433 </ul> 
    434  
    435 <a name="switch_UMB"><h2 class="section">switch: -UMB=&lt;Yes/No&gt;<span class="secdef"> 
    436     Determines where the linker expects the object files.</span></h2></a> 
    437 <ul class="indent">For <b>DMD</b> environments, <i>Build</i> expects that object files will be created 
     467</pre> 
     468</div> 
     469 
     470<h2 class="section"><a name="switch_UMB">switch: -UMB=&lt;Yes/No&gt;<span class="secdef"> 
     471    Determines where the linker expects the object files.</span></a></h2> 
     472<div class="indent"><br> 
     473For <b>DMD</b> environments, <i>Build</i> expects that object files will be created 
    438474in the same directory as the source file, or in the directory 
    439475specified in any <a href="#switch_od">-od</a> switch. However, this switch 
     
    453489really required. 
    454490<br/>&nbsp;<br/> 
    455 <p><span class="example"><i>Example:</i> </span><pre class="code">build editor -UMB=Yes 
    456 </pre></p> 
     491<p><span class="example"><i>Example:</i> </span></p><pre class="code">build editor -UMB=Yes 
     492</pre> 
    457493In the example above, the utility will expect object files to be created 
    458494in the current directory. 
    459495 
    460 </ul> 
    461  
    462 <br /><hr/><span class="footnote">Generated by Ddoc, Fri Jun  9 16:40:49 2006 
    463  </span></body> 
     496</div> 
     497 
     498 
     499                 <hr><div class="footnote"><span class="footnote">Generated by Ddoc, Sat Jun 24 00:43:27 2006 
     500 </span></div> 
     501                 </body> 
    464502                 </html> 
  • trunk/Docs/todo.html

    r47 r48  
    1 <?xml version="1.0" encoding="utf-8"?> 
    2                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 HTML//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    32                 <html> 
    43                 <head> 
    5                  <meta http-equiv="content-type" content="text/html; charset=utf-8"
    6                  <link rel="stylesheet" type="text/css" href="style.css" title="standard"
    7                  <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
     4                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"
     5                 <link rel="stylesheet" type="text/css" href="style.css" title="standard"
     6                 <link rel="alternate stylesheet" type="text/css" href="none.css" title="none"
    87                 <title></title> 
    98                 </head> 
     
    1211 
    1312<p class="page_title">Build Utility <span class="page_title">&copy; 2006, Derek Parnell, Melbourne</span> 
    14                  <br /> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
    15                  <a name="todo"><h1 class="topic">Topic: Things Still To Do</h1></a
    16 <p>Ideas that have yet to be implemented. 
     13                 <br> <a href="User_Manual.html#toc"><span class="tocref">(table of contents)</span></a></p> 
     14                 <h1 class="topic"><a name="todo">Topic: Things Still To Do</a></h1
     15<div class="section">Ideas that have yet to be implemented. 
    1716Note that some of these may never be implemented but they are still 
    1817listed here as a reminder. 
    1918 
    20 <ul><span class="list">    <li><span class="item">Be able to update a library rather than just create libraries.</span></li> 
    21     <li><span class="item">Support the concept of a 'Plugin' block of code. 
     19<div class="list"><ul>    <li class="item">Be able to update a library rather than just create libraries. 
     20    <li class="item">Support the concept of a 'Plugin' block of code. 
    2221 
    2322    <pre class="code">version (build) pragma(plugin, &lt;tool&gt;[,delim=xxx],[, &lt;parms&gt;] ) { [body] } 
     
    2524    This block would be replaced by the stdout data of calling 'tool &lt;params&gt;' and 
    2625    sending it the content of &lt;body&gt; via stdin. 
    27     </span></li> 
    28     <li><span class="item">Support limited preprocessor capability. 
     26     
     27    <li class="item">Support limited preprocessor capability. 
    2928    Something like pragma(macro, &lt;preprocessor commands&gt;); and replacing 
    3029    source text of the form @{tokenname}@ with the value of the token. 
    31     </span></li> 
    32     <li><span class="item">To specify compiler command line 
     30     
     31    <li class="item">To specify compiler command line 
    3332    options inside the source code by using a the new pragma COMPILE_OPTS. 
    3433    In this case, it will compile the source that contains this pragma 
    3534    as a separate step using the supplied options in the pragma statement. 
    36     </span></li> 
    37 </span></ul
    38 </p
     35     
     36</ul></div
     37</div
    3938 
    4039 
    41 <br /><hr/><span class="footnote">Generated by Ddoc, Fri Jun  9 16:40:49 2006 
    42  </span></body> 
     40 
     41                 <hr><div class="footnote"><span class="footnote">Generated by Ddoc, Sat Jun 24 00:43:27 2006 
     42 </span></div> 
     43                 </body> 
    4344                 </html> 
  • trunk/Source/Makefile.dos

    r42 r48  
    1717SOURCES=$(SOURCES) util/macro.d 
    1818SOURCES=$(SOURCES) util/booltype.d 
     19SOURCES=$(SOURCES) util/file2.d 
    1920 
    2021 
  • trunk/Source/Makefile.gdc

    r42 r48  
    11DMD=gdmd 
    22DFLAGS=-op -release -inline 
    3 SOURCES=build.d util/pathex_bn.d util/pathex.d source_bn.d util/str.d build_bn.d util/booltype.d util/fdt_bn.d util/str_bn.d source.d util/fdt.d util/fileex.d util/fileex_bn.d util/linetoken.d util/linetoken_bn.d util/macro.d 
     3SOURCES=build.d util/pathex_bn.d util/pathex.d source_bn.d util/str.d build_bn.d util/booltype.d util/fdt_bn.d util/str_bn.d source.d util/fdt.d util/fileex.d util/fileex_bn.d util/linetoken.d util/linetoken_bn.d util/macro.d util/file2.d 
    44 
    55all: build 
  • trunk/Source/Makefile.unix

    r42 r48  
    11DMD=dmd 
    22DFLAGS=-op -release -inline 
    3 SOURCES=build.d util/pathex_bn.d util/pathex.d source_bn.d util/str.d build_bn.d util/booltype.d util/fdt_bn.d util/str_bn.d source.d util/fdt.d util/fileex.d util/fileex_bn.d util/linetoken.d util/linetoken_bn.d util/macro.d 
     3SOURCES=build.d util/pathex_bn.d util/pathex.d source_bn.d util/str.d build_bn.d util/booltype.d util/fdt_bn.d util/str_bn.d source.d util/fdt.d util/fileex.d util/fileex_bn.d util/linetoken.d util/linetoken_bn.d util/macro.d util/file2.d 
    44 
    55all: build 
     
    1010clean: 
    1111    rm -f *.o build 
    12     fm -r util/*.o 
     12    rm -f util/*.o 
  • trunk/Source/build.d

    r47 r48  
    66 Authors: Derek Parnell, Melbourne 
    77 Initial Creation: January 2005 
    8  Version: 3.01 
     8 Version: 3.02 
    99 Date: August 2005 
    1010 License: 
     
    4040    version(Windows) { 
    4141        // OptLink Definition File 
    42         pragma (build_def, "VERSION 3.01"); 
     42        pragma (build_def, "VERSION 3.02"); 
    4343    } 
    4444} 
     
    124124            char[] vCompileOnly = `-c`; 
    125125            char[] vLinkerExe=`link.exe`; 
     126            bool   vPostSwitches = true; 
     127            bool   vAppendLinkSwitches = true; 
     128            char[] vArgDelim = ","; 
     129            char[] vArgFileDelim = "+"; 
    126130            char[] vConfigFile=`sc.ini`; 
    127131            char[] vCompilerPath=``; 
     
    141145            char[] vCompileOnly= `-c`; 
    142146            char[] vLinkerExe=`gcc`; 
     147            bool   vPostSwitches = false; 
     148            bool   vAppendLinkSwitches = false; 
     149            char[] vArgDelim = " "; 
     150            char[] vArgFileDelim = " "; 
    143151            char[] vConfigFile=`dmd.conf`; 
    144152            char[] vCompilerPath=``; 
     
    169177            char[] vCompileOnly= `-c`; 
    170178            char[] vLinkerExe=`gdc.exe`; 
     179            bool   vPostSwitches = false; 
     180            bool   vAppendLinkSwitches = false; 
     181            char[] vArgDelim = " "; 
     182            char[] vArgFileDelim = " "; 
    171183            char[] vConfigFile=null; 
    172184            char[] vCompilerPath=``; 
     
    187199            char[] vCompileOnly= `-c`; 
    188200            char[] vLinkerExe=`gdmd`; 
     201            bool   vPostSwitches = false; 
     202            bool   vAppendLinkSwitches = false; 
     203            char[] vArgDelim = " "; 
     204            char[] vArgFileDelim = " "; 
    189205            char[] vConfigFile=null; 
    190206            char[] vCompilerPath=``; 
     
    225241    char[]       vDefMacroDefFile = "build.mdf"; 
    226242    char[]       vUtilsConfigFile = "build.cfg"; 
    227     char[]       vRDFName = "default.rdf"; 
    228243    char[]       vPathId = "PATH";   // Used to locate the environment symbol 
    229244 
     
    264279    char[]       vAppPath; 
    265280    char[]       vAppName; 
    266     char[]       vAppVersion = "3.01"; 
     281    char[]       vAppVersion = "3.02"; 
    267282    char[]       vTargetName;           // Output name from first file name. 
    268283    char[]       vPragmaTargetName;     // Output name from pragma. 
     
    274289    char[][]     vCompilerArgs;         // Arguments passed to compiler 
    275290    char[][]     vSourceScanList;       // The list of places to find source files. 
    276     struct ExternRef 
    277     { 
    278         char[]   FilePath; 
    279         char[][] ToolOpts; 
    280     } 
    281     ExternRef[]  vExternals; 
    282291    bool[char[]] vResourceFileTypes; 
    283292    char[][]     vUDResTypes; 
     
    337346 
    338347    Source.UseModBaseName(vUseModBaseName); 
     348 
    339349} 
    340350 
     
    461471} 
    462472 
    463 //------------------------------------------------------- 
    464 int RunCommand(char[] pExeName, char[] pCommand) 
    465 //------------------------------------------------------- 
    466 { 
    467  
    468     if (vExeExtention.length > 0) 
    469     { 
    470         if (std.path.getExt(pExeName).length == 0) 
    471             pExeName ~= "." ~ vExeExtention; 
    472     } 
    473  
    474     if (util.pathex.IsRelativePath(pExeName) == True) 
    475     { 
    476         char[] lExePath; 
    477         lExePath = FindFileInPathList(vPathId, pExeName); 
    478         if (util.str.ends(lExePath, std.path.sep) == False) 
    479             lExePath ~= std.path.sep; 
    480  
    481         pExeName = util.pathex.CanonicalPath(lExePath ~ pExeName, false); 
    482     } 
    483  
    484     if (util.fileex.FileExists(pExeName) == false) 
    485     { 
    486         throw new BuildException(std.string.format("Cannot find application '%s' to run", pExeName)); 
    487     } 
    488     return RunCommand(pExeName ~ " " ~ pCommand); 
    489 } 
    490  
    491 //------------------------------------------------------- 
    492 int RunCommand(char[] pCommand) 
    493 //------------------------------------------------------- 
    494 { 
    495     int lRC; 
    496     int lTrueRC; 
    497  
    498     if (vTestRun == True) { 
    499         writefln("Command: '%s'",pCommand); 
    500         return 0; 
    501     } 
    502     else 
    503     { 
    504  
    505  
    506         version(BuildVerbose) 
    507         { 
    508             if(vVerbose == True) 
    509                 writefln("Running '%s'",pCommand); 
    510         } 
    511  
    512         lRC = system(std.string.toStringz(pCommand)); 
    513         version(Posix) lTrueRC = ((lRC & 0xFF00) >> 8); 
    514         version(Windows) lTrueRC = lRC; 
    515  
    516         version(BuildVerbose) 
    517         { 
    518             if(vVerbose == True) { 
    519                 if (lTrueRC == 0){ 
    520                     writefln("Successful"); 
    521                 } else { 
    522                     writefln("Failed. Return code: %04x",lRC); 
    523                 } 
    524             } 
    525         } 
    526         return lTrueRC; 
    527     } 
    528 } 
    529  
    530473// Scans all known source files and extacts any modules. 
    531474// It returns the time of the most recently modified file. 
     
    613556} 
    614557 
    615 struct Rule 
    616 { 
    617     char[] Name; 
    618     char[] Input; 
    619     char[] Output; 
    620     char[] Tool; 
    621 }; 
    622  
    623  
    624 //------------------------------------------------------- 
    625 Rule[] LoadRules() 
    626 //------------------------------------------------------- 
    627 { 
    628     Rule[] lRules; 
    629     char[][] lRuleText; 
    630     char[] lRuleDefnFile; 
    631  
    632     static char[] kRuleKey = "rule="; 
    633  
    634     lRuleDefnFile = util.pathex.LocateFile(vRDFName, 
    635                         getDirName(vAppPath) ~ std.path.pathsep ~ util.str.GetEnv(vPathId)); 
    636     version(BuildVerbose) 
    637     { 
    638         if (vVerbose == True) 
    639             writefln("Rule Definitions from %s", lRuleDefnFile); 
    640     } 
    641  
    642     GetTextLines( lRuleDefnFile, lRuleText ); 
    643     foreach(char[] lLine; lRuleText) 
    644     { 
    645         lLine = util.str.strip(lLine); 
    646         if (util.str.begins(lLine, kRuleKey ) == True) 
    647         { 
    648             lRules.length = lRules.length + 1; 
    649             lRules[$-1].Name = lLine[5 .. $]; 
    650         } 
    651         else if (lRules.length > 0) 
    652         { 
    653             if (util.str.begins(lLine, "in=") == True) 
    654                 lRules[$-1].Input = lLine[3..$]; 
    655             else if (util.str.begins(lLine, "out=") == True) 
    656                 lRules[$-1].Output = lLine[4..$]; 
    657             else if (util.str.begins(lLine, "tool=") == True) 
    658                 lRules[$-1].Tool = lLine[5..$]; 
    659         } 
    660     } 
    661  
    662     version(BuildVerbose) if (vVerbose == True) 
    663     { 
    664         foreach(Rule r; lRules) 
    665         { 
    666             writefln("Rule '%s' ==> in:%s, out:%s, tool:'%s'", 
    667                         r.Name, r.Input, r.Output, r.Tool); 
    668         } 
    669     } 
    670  
    671     return lRules; 
    672 } 
    673  
    674 //------------------------------------------------------- 
    675 int ProcessExternal( ExternRef pRef) 
    676 //------------------------------------------------------- 
    677 { 
    678     int lResult = -1; 
    679     static Rule[] lRules; 
    680     char[] lExtension; 
    681     char[] lInFile; 
    682     char[] lOutFile; 
    683     FileDateTime lInDate; 
    684     FileDateTime lOutDate; 
    685     char[] lCommand; 
    686  
    687  
    688     if (lRules.length == 0) 
    689         lRules = LoadRules(); 
    690  
    691     lExtension = std.path.getExt(pRef.FilePath); 
    692     foreach(Rule r; lRules) 
    693     { 
    694         lInFile = ""; 
    695         if (lExtension == r.Input) 
    696         { 
    697             lInFile = pRef.FilePath; 
    698             lOutFile = std.path.addExt(pRef.FilePath, r.Output); 
    699  
    700         } else if (lExtension == r.Output) 
    701         { 
    702             lOutFile = pRef.FilePath; 
    703             lInFile = std.path.addExt(pRef.FilePath, r.Input); 
    704         } 
    705  
    706         if (lInFile.length == 0) 
    707             continue; 
    708  
    709         lInFile = util.pathex.LocateFile(lInFile, vImportRoots); 
    710         if (! util.fileex.FileExists( lInFile ) ) 
    711             throw new BuildException( 
    712                 std.string.format("External file '%s' not found", lInFile)); 
    713  
    714         lOutFile = getDirName(lInFile) ~ std.path.sep ~ getBaseName(lInFile); 
    715         lOutFile = std.path.addExt(lOutFile, r.Output); 
    716  
    717         lInFile = util.pathex.AbbreviateFileName(lInFile); 
    718         lOutFile = util.pathex.AbbreviateFileName(lOutFile); 
    719  
    720         lInDate = new FileDateTime(lInFile); 
    721         lOutDate = new FileDateTime(lOutFile); 
    722  
    723         if ((lInDate > lOutDate) || (vForceCompile == True)) 
    724         { 
    725             char[] lKeyValues;