Changeset 9

Show
Ignore:
Timestamp:
02/24/05 00:08:53 (7 years ago)
Author:
Derek Parnell
Message:

Upload on version 1.4 (Build #223)

See Docs/CHANGE_LOG.htm for details

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/Docs/AUTO_BUILD_NUMBER.htm

    r6 r9  
    22<head> 
    33<!-- Generated by MAKEDOC v1.1, (c) 2000,2003 by David Cuny, Derek Parnell, Matt Lewis --> 
    4 <!-- on 2005/02/23 at 22h45m50 --> 
     4<!-- on 2005/02/24 at 15h41m52 --> 
    55<style>h4 {text-align: right}</style> 
    66<title></title> 
  • trunk/Docs/CHANGE_LOG.htm

    r6 r9  
    22<head> 
    33<!-- Generated by MAKEDOC v1.1, (c) 2000,2003 by David Cuny, Derek Parnell, Matt Lewis --> 
    4 <!-- on 2005/02/23 at 22h45m50 --> 
     4<!-- on 2005/02/24 at 15h41m52 --> 
    55<style>h4 {text-align: right}</style> 
    66<title></title> 
     
    1212<p><h3>A list of changes and fixes that have been made. 
    1313</h3><br> 
     14<p> 
     15 <strong> -- v1.4 -- 24/Feb/2005 </strong> 
     16<ul> 
     17 <li> ** <strong>FIX</strong>: <em>Thanks to Abscissa.</em> The -version switch was being interpreted as 
     18a file to compile. 
     19 <li> ** <strong>FIX</strong>: <em>Thanks to brad.</em> Linux version was using the wrong package name 
     20when formatting a file date for display. 
     21 <li> ** <strong>FIX</strong>: <em>Thanks to brad.</em> Linux version was not setting the target 
     22name correctly which resulted in the first source file being compiled twice. 
     23 <li> ** <strong>FIX</strong>: <em>Thanks to brad.</em> Parsing the DFLAG line in the dmd options 
     24file was not dealing with whitespace delimiters. 
     25 <li> ** <strong>ENH</strong>: When specifing an alternate target file, you can now also 
     26specify a path for the target, and that path is created for you if it 
     27doesn't exist. 
     28 </ul>  
    1429<p> 
    1530 <strong> -- v1.3 -- 23/Feb/2005 </strong> 
  • trunk/Docs/COMMAND_LINE.htm

    r6 r9  
    22<head> 
    33<!-- Generated by MAKEDOC v1.1, (c) 2000,2003 by David Cuny, Derek Parnell, Matt Lewis --> 
    4 <!-- on 2005/02/23 at 22h45m50 --> 
     4<!-- on 2005/02/24 at 15h41m52 --> 
    55<style>h4 {text-align: right}</style> 
    66<title></title> 
  • trunk/Docs/PRAGMA.htm

    r6 r9  
    22<head> 
    33<!-- Generated by MAKEDOC v1.1, (c) 2000,2003 by David Cuny, Derek Parnell, Matt Lewis --> 
    4 <!-- on 2005/02/23 at 22h45m50 --> 
     4<!-- on 2005/02/24 at 15h41m52 --> 
    55<style>h4 {text-align: right}</style> 
    66<title></title> 
  • trunk/Docs/RESPONSE_FILE.htm

    r6 r9  
    22<head> 
    33<!-- Generated by MAKEDOC v1.1, (c) 2000,2003 by David Cuny, Derek Parnell, Matt Lewis --> 
    4 <!-- on 2005/02/23 at 22h45m50 --> 
     4<!-- on 2005/02/24 at 15h41m52 --> 
    55<style>h4 {text-align: right}</style> 
    66<title></title> 
  • trunk/Docs/SWITCHES.htm

    r6 r9  
    22<head> 
    33<!-- Generated by MAKEDOC v1.1, (c) 2000,2003 by David Cuny, Derek Parnell, Matt Lewis --> 
    4 <!-- on 2005/02/23 at 22h45m50 --> 
     4<!-- on 2005/02/24 at 15h41m52 --> 
    55<style>h4 {text-align: right}</style> 
    66<title></title> 
  • trunk/Docs/TO_DO.htm

    r6 r9  
    22<head> 
    33<!-- Generated by MAKEDOC v1.1, (c) 2000,2003 by David Cuny, Derek Parnell, Matt Lewis --> 
    4 <!-- on 2005/02/23 at 22h45m50 --> 
     4<!-- on 2005/02/24 at 15h41m52 --> 
    55<style>h4 {text-align: right}</style> 
    66<title></title> 
  • trunk/Docs/index.htm

    r6 r9  
    22<head> 
    33<!-- Generated by MAKEDOC v1.1, (c) 2000,2003 by David Cuny, Derek Parnell, Matt Lewis --> 
    4 <!-- on 2005/02/23 at 22h45m50 --> 
     4<!-- on 2005/02/24 at 15h41m52 --> 
    55<style>h4 {text-align: right}</style> 
    66<title></title> 
  • trunk/Source/build.d

    r6 r9  
    5555//A list of changes and fixes that have been made. 
    5656// 
     57// /b"-- v1.4 -- 24/Feb/2005" 
     58//<ul> 
     59///li ** /b FIX: /i"Thanks to Abscissa." The -version switch was being interpreted as 
     60// a file to compile. 
     61///li ** /b FIX: /i"Thanks to brad." Linux version was using the wrong package name 
     62//when formatting a file date for display. 
     63///li ** /b FIX: /i"Thanks to brad." Linux version was not setting the target 
     64//name correctly which resulted in the first source file being compiled twice. 
     65///li ** /b FIX: /i"Thanks to brad." Parsing the DFLAG line in the dmd options 
     66//file was not dealing with whitespace delimiters. 
     67///li ** /b ENH: When specifing an alternate target file, you can now also 
     68// specify a path for the target, and that path is created for you if it 
     69//doesn't exist. 
     70//</ul> 
     71// 
    5772// /b"-- v1.3 -- 23/Feb/2005" 
    5873//<ul> 
     
    85100    version(Windows) { 
    86101        // OptLink Definition File 
    87         pragma (build_def, "VERSION 1.3"); 
     102        pragma (build_def, "VERSION 1.4"); 
    88103        pragma (build_def, "EXETYPE DOS"); 
    89104    } 
     
    196211    char[]       vAppPath; 
    197212    char[]       vAppName; 
    198     char[]       vAppVersion = "1.3"; 
     213    char[]       vAppVersion = "1.4"; 
    199214    char[]       vTargetName;           // Output name. 
    200215    char[][]     vCmdLineFiles;         // List of source files from command line 
     
    471486    foreach (char[] arg; vCompilerArgs)  
    472487    { 
    473         lOutText ~= arg ~ " "
     488        lOutText ~= arg ~ std.path.linesep
    474489    } 
    475490 
     
    478493         vNoLink  
    479494        ) { 
    480         lOutText ~= "-c ";  // No linking allowed. 
     495        lOutText ~= "-c " ~ std.path.linesep;  // No linking allowed. 
    481496        vCompilerArgs ~= "-c"; 
    482497        lLinking = false; 
     
    485500    } 
    486501     
    487     lOutText ~=  std.path.linesep; 
    488502    foreach(char[] lFileName; lFilesToLink) { 
    489503        // Use all files if linking otherwise just the source code files. 
     
    530544        if(lLinking) { 
    531545            // Ensure the linker gets the right executable name to create. 
    532             lOutText ~= lTargetName  ~ std.path.linesep; 
     546            lOutText ~= "-of" ~ lTargetName  ~ std.path.linesep; 
    533547             
    534548            // Include the default libraries. 
     
    742756    char[][] lTextLines; 
    743757    char[][] lFlags; 
     758    char[][] lSwitches; 
    744759    char[] lRootName; 
    745760    int pos,pos2; 
     
    768783        // Examine DFLAGS 
    769784        pos = std.string.find(lLine, "DFLAGS="); 
    770         if(pos==0) { 
     785        if(pos == 0) 
     786        { 
    771787            lLine = lLine[pos+7..length]; 
    772788            lFlags = split(lLine, ";"); 
    773789            foreach (char[] lFlag; lFlags) 
    774790            { 
    775                 // Strip off enclosing quotes. 
    776                 if (lFlag[0] == '"' && lFlag[length-1] == '"') { 
    777                     lFlag = lFlag[1..length-1]; 
    778                 } 
    779                  
    780                 lFlag=" " ~ lFlag ~ " "; 
    781                 while((pos=std.string.find(lFlag," -I"))>=0) { 
    782                     pos=pos+3; 
    783                     pos2=pos; 
    784                     while(lFlag[pos2]!=' ') { 
    785                         pos2++; 
     791                if (lFlag.length > 0) 
     792                { 
     793                    // Strip off enclosing quotes. 
     794                    if (lFlag[0] == '"' && lFlag[length-1] == '"') { 
     795                        lSwitches.length = 1; 
     796                        lSwitches[0] = lFlag[1..length-1]; 
    786797                    } 
    787                     lRootName = AddRoot(lFlag[pos..pos2]); 
    788                     vDefaultCompArgs ~= lFlag[1..length-1]; 
    789                     if(vVerbose) { 
    790                         if (lRootName.length > 0){ 
    791                             writefln(" added root from config file %s", lRootName); 
     798                    else 
     799                        lSwitches = split(lFlag, " "); 
     800                     
     801                    foreach (char[] lSwitch; lSwitches) 
     802                    { 
     803                        if (lSwitch.length > 0)  
     804                        { 
     805                            lSwitch=" " ~ lSwitch ~ " "; 
     806                            while((pos=std.string.find(lSwitch," -I"))>=0) 
     807                            { 
     808                                pos=pos+3; 
     809                                pos2=pos; 
     810                                while(lSwitch[pos2] != ' ') 
     811                                    pos2++; 
     812         
     813                                lRootName = AddRoot(lSwitch[pos..pos2]); 
     814                                vDefaultCompArgs ~= lSwitch[1..length-1]; 
     815                                if(vVerbose) { 
     816                                    if (lRootName.length > 0){ 
     817                                        writefln(" added root from config file %s", lRootName); 
     818                                    } 
     819                                } 
     820                                 
     821                                lSwitch=lSwitch[pos2..length]; 
     822                            }    
    792823                        } 
    793824                    } 
    794                      
    795                     lFlag=lFlag[pos2..length]; 
    796825                } 
    797826            } 
    798         } 
     827        } // end of DFLAGS processing. 
    799828 
    800829        version(Windows){ 
     
    9901019        throw new Exception("No target name supplied."); 
    9911020    } 
     1021    util.pathex.MakePath(vTargetName); 
    9921022     
    9931023    if (vVerbose){     
     
    11201150        if(pArg.length>9) { 
    11211151            if(pArg[0..9]=="-version=") { 
    1122                 pArg=pArg [9 .. pArg.length]; 
    1123                 if (std.ctype.isdigit (pArg [0])) { 
     1152                char[] lVersionString; 
     1153                 
     1154                lVersionString=pArg [9 .. pArg.length]; 
     1155                if (std.ctype.isdigit (lVersionString [0])) { 
    11241156                    // Note that even though we capture this here, 
    11251157                    // version levels are not yet implemented in the 
    11261158                    // source scanner. 
    1127                    vVersionLevel = atoi (pArg); 
     1159                   vVersionLevel = atoi (lVersionString); 
    11281160                } else { 
    1129                    vActiveVersions [pArg] = true; 
     1161                   vActiveVersions [lVersionString] = true; 
    11301162                } 
    11311163            } 
  • trunk/Source/build.def

    r5 r9  
    1 VERSION 1.2 
     1VERSION 1.4 
    22EXETYPE DOS 
  • trunk/Source/build.rsp

    r5 r9  
    1 -op -unittest  
     1-release 
     2-op 
     3-IC:\DPARNELL\DMD\BIN\..\src\phobos 
     4-IC:\dparnell\dlibs 
     5 
    26build.d 
    37util\pathex_bn.d 
     
    1115util\fdt.d 
    1216build.def 
    13 build.exe 
     17-ofbuild.exe 
  • trunk/Source/build_bn.d

    r6 r9  
    22// This file is automatically maintained by the BUILD utility, 
    33// Please refrain from manually editing it. 
    4 long auto_build_number = 198
     4long auto_build_number = 223
  • trunk/Source/source_bn.d

    r6 r9  
    22// This file is automatically maintained by the BUILD utility, 
    33// Please refrain from manually editing it. 
    4 long auto_build_number = 72
     4long auto_build_number = 94
  • trunk/Source/util/fdt_bn.d

    r6 r9  
    22// This file is automatically maintained by the BUILD utility, 
    33// Please refrain from manually editing it. 
    4 long auto_build_number = 54
     4long auto_build_number = 62
  • trunk/Source/util/pathex.d

    r6 r9  
    4747    import std.path; 
    4848    import std.file; 
     49    import std.stdio; 
    4950} 
    5051 
     
    166167    return lNewFileName; 
    167168} 
     169 
     170// ---------------------------------------------- 
     171bool MakePath(char[] pNewPath) 
     172// ---------------------------------------------- 
     173{ 
     174    /*  
     175        This creates the path, including all intervening 
     176        parent directories, specified by the parameter. 
     177         
     178        Note that the path is only that portion of the  
     179        parameter up to the last directory separator. This 
     180        means that you can provide a file name in the parameter 
     181        and it will still create the path for that file. 
     182         
     183        This returns False if the path was not created. That 
     184        could occur if the path already exists or if you do not 
     185        permissions to create the path on the device, or if 
     186        device is read-only or doesn't exist. 
     187         
     188        This returns true if the path was created. 
     189    */ 
     190    bool lResult;  // false means it did not create a new path. 
     191    char[] lNewPath; 
     192    char[] lParentPath; 
     193     
     194    // extract out the directory part of the parameter. 
     195    for (int i = pNewPath.length-1; i >= 0; i--) 
     196    { 
     197        if (pNewPath[i] == std.path.sep[0]) 
     198        { 
     199            lNewPath = pNewPath[0 .. i].dup; 
     200            break; 
     201        } 
     202    } 
     203    version(Windows) { 
     204        if ((lNewPath.length > 0) && (lNewPath[length-1] == ':')) 
     205            lNewPath.length = 0; 
     206    } 
     207     
     208    if (lNewPath.length == 0) 
     209        return false; 
     210     
     211    // extract out the parent directory 
     212    for (int i = lNewPath.length-1; i >= 0; i--) 
     213    { 
     214        if (lNewPath[i] == std.path.sep[0]) 
     215        { 
     216            lParentPath = lNewPath[0 .. i].dup; 
     217            break; 
     218        } 
     219    } 
     220     
     221    // make sure the parent exists. 
     222    version(Windows) { 
     223        if ((lParentPath.length > 0) && (lParentPath[length-1] == ':')) 
     224                lParentPath.length = 0; 
     225    } 
     226    if (lParentPath.length != 0) 
     227    { 
     228        MakePath(lParentPath ~ std.path.sep); 
     229    } 
     230         
     231     
     232    // create this directory 
     233    try { 
     234        std.file.mkdir(lNewPath); 
     235        lResult = true; 
     236    } 
     237    catch (FileException E) { 
     238         // Assume the exception is that the directory already exists. 
     239         lResult = false; 
     240    } 
     241    return lResult; 
     242} 
  • trunk/Source/util/pathex_bn.d

    r6 r9  
    22// This file is automatically maintained by the BUILD utility, 
    33// Please refrain from manually editing it. 
    4 long auto_build_number = 56
     4long auto_build_number = 78
  • trunk/Source/util/str_bn.d

    r6 r9  
    22// This file is automatically maintained by the BUILD utility, 
    33// Please refrain from manually editing it. 
    4 long auto_build_number = 50
     4long auto_build_number = 54