Bud Utility © 2006, Derek Parnell, Melbourne
(table of contents)

Topic: Command Line

The Bud utility supplies the source file and optional switches via the command line. The typical format of the Bud utility's command line is ...
      build <sourcefile> [<switches> ] [<otherfiles> ]
You can however specify the files and switches in any order you like.
 
Normally you would only supply a single file name to Bud, that being the source file of the top-level file in the application. Typically the one that has the 'main()' or 'WinMain()' function, though this is not strictly necessary.
 
The files supplied on the command line can be a mixture of source files, macro files, object files, resource files, resource source files, libraries, and any other type of file needed to build an application or library.
 
If you run the utility without any files and without any switches, it display a help screen with some details about the switches. That looks something similar to this ...
  Path and Version : C:\Program Files\build.exe v3.6(339)
  Usage: build sourcefile [options objectfiles libraries]
    sourcefile D source file
    -v         Verbose (passed through to D)
    -V         Verbose (NOT passed through)
    -names     Displays the names of the files used to build the target.
    -DCPATH<path> <path> is where the compiler has been installed.
               Only needed if the compiler is not in the system's
               PATH list. Used if you are testing an alternate
               version of the compiler.
    -CFPATH<path> <path> is where the D config file has been installed.
    -full      Causes all source files, except ignored modules,
                to be compiled.
    -link      Forces the linker to be called instead of the librarian.
                (Only needed if the source files do not contain
                 main/WinMain)
    -nolink    Ensures that the linker is not called.
                (Only needed if main/WinMain is found in the source
                 files and you do NOT want an executable created.)
    -lib       Forces the object files to be placed in a library.
                (Only needed if main/WinMain is found in the source
                 files AND you want it in a library instead of
                 an executable.)
    -modules<=name> Create a Module List File.
    -nolib     Ensures that the object files are not used to form
                a library.
                (Only needed if main/WinMain is not found in the source
                 files and you do NOT want a library.)
    -obj       This is the same as having both -nolink and -nolib
                switches on the command line. It is just a shorthand.
    -allobj    Ensures that all object files are added to a
                library.
                (Normally only those in the same directory are added.)
    -cleanup   Ensures that all object files created during the run
                are removed at the end of the run, plus other work files.
    -clean     Same as -cleanup
    -test      Does everything as normal except it displays the commands
                  instead of running them. Also, the auto-build-numbers are
                  not incremented.
    -si        Search the Import Path(s) for files specified on
                   the command line.
    -MDF<path>  Overrides the default Macro Definition File
    -RDF<path>  Overrides the default Rule Definition File
    -gui[:x.y] Forces a GUI application to be created. The optional
                :x.y can be used to build an application for a
                specific version of Windows. eg. -gui:4.0
                (Only needed if WinMain is not found in the source files
                or if you wish to override the default Windows version)
    -dll       Forces a DLL library to be created.
                      (Only needed if DllMain is not found in the source files.)
    -LIBOPT <opt> Allows you to pass <opt> to the librarian
    -LIBPATH=<pathlist> Used to add a semi-colon delimited list
                of search paths for library files.
    -X<module> Packages and Modules to ignore (eg. -Xmylib)
    -M<module> Packages and Modules to notice (eg. -Mphobos)
    -T<targetname> The name of the target file to create. Normally
                the target name istaken from the first or only name
                of the command line.
    -R=<Yes/No> Indicates whether to use a response file or command line
                   arguments with the compiler tools.
                 -R=Yes will cause a response to be used.
                 -R=No will cause command line arguments to be used.
                 -R will reverse the current usage.
                  Note that the default for Windows DigitalMars is to use a response file
                  but for all other environments it is to use command line arguments.
    -info      Displays the version and path of the Bud application
    -help      Displays the full 'usage' help text.
    -h         Same as /-help, displays the full 'usage' help text.
    -?         Same as /-help, displays the full 'usage' help text.
    -silent    Avoids unnecessary messages being displayed.
    -noautoimport Turns off the automatic addition of source paths
                   to the list of Import Roots.
    -exec<param>   If the link is successful, this will cause the
                   executable just created to run. You can give it
                   run time parameters. Anything after the '-exec' will
                   placed in the program's command line. You will need
                   to quote any embedded spaces.
    -od<path>  Nominate the directory where temporary (work) files
                   are to be created. By default they are created in
                   the same directory as the target file.
    -nodef     Prevents a Module Definition File being automatically created.
                This will override any pragma()
                 statements in the source code.
    -UMB=<Yes/No> If Yes this forces the utility to expect
                 the object file to be created or residing in the current
                 directory.
    [...]      All other options, objectfiles and libraries are
                passed to the compiler
See also

Generated by Ddoc, Mon Oct 16 11:03:25 2006