Thu Jul 20 14:49:21 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/WorkspaceCreator.pm:

          Fixed a bug where an invalid project name would be used during the
          generation of implicit project dependencies.

Tue Jul 18 19:07:02 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/Creator.pm:

          Do not perform slash conversion on the 'prebuild' and 'postbuild'
          settings.

        * templates/vc8csharp.mpd:

          Keep the 'prebuild' and 'postbuild' settings on the same line as
          vc8 does.

Tue Jul 18 14:38:01 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/AutomakeWorkspaceCreator.pm:

          Modified the library location code to accept libraries that
          happen to be built in the very top-most directory.

Tue Jul 18 13:49:01 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/ProjectCreator.pm:

          Corrected a logic error in the processing of the 'optional'
          section.  The '||' was not being handled properly.

Fri Jul 14 17:25:16 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/ProjectCreator.pm:

          When expanding variables, through the 'expand' mechanism, escape
          back slashes when generating a project for a project type that
          requires slash conversion.

Fri Jul 14 01:10:35 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * config/qt.mpb:

          Split the UIC into UIC and UIC_Impl.  The header is generated by
          the UIC custom definition and the source file generated by the
          UIC_Impl custom definition.

        * config/qt4_core.mpb:
        * config/qt4_designer.mpb:
        * config/qt4_designercomponents.mpb:
        * config/qt4_gui.mpb:
        * config/qt4_network.mpb:
        * config/qt4_opengl.mpb:
        * config/qt4_sql.mpb:
        * config/qt4_svg.mpb:
        * config/qt4_test.mpb:
        * config/qt4_xml.mpb:

          Added support for Qt4.

        * config/qt_moc.mpb:
        * config/qt_uic.mpb:

          Removed these files.  They have been deprecated long enough.

Thu Jul 13 16:29:33 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * templates/bmake.mpd:
        * templates/bmakedllexe.mpt:
        * templates/bmakelibexe.mpt:
        * templates/em3.mpd:
        * templates/em3vcpdllexe.mpt:
        * templates/nmake.mpd:
        * templates/nmakeexe.mpt:
        * templates/vc6.mpd:
        * templates/vc6dspdllexe.mpt:
        * templates/vc7.mpd:
        * templates/vc7csharp.mpd:
        * templates/vc7exe.mpt:
        * templates/vc7vb.mpd:
        * templates/vc8.mpd:
        * templates/vc8csharp.mpd:
        * templates/vc8exe.mpt:

          Added a template variable named 'windows_style' that controls the
          location of Debug executables and all installed executables.  If
          'windows_style' not set, which is the default, a Debug executable
          is placed in the same directory as the project (default setting
          for 'output_dir').  If it is set, the Debug executable is placed
          in the Debug directory.

          Similarly, if 'windows_style' is not set, installed executables
          are placed in the directory determined by the 'install' project
          variable.  If it is set, it is placed in the directory determined
          by the 'install' project variable plus the 'output_dir' template
          variable.

          This only applies to the following project types: bmake, em3, vc6,
          vc7, vc71 and vc8.

Tue Jul 11 14:23:41 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * USAGE:
        * modules/VC8ProjectCreator.pm:

          It has been determined that when building static projects with
          vc8, the inter-project dependencies between static libraries are
          handled correctly.  The dependee is not included in the dependent
          as is done in em3, vc6, vc7 and vc71.

Tue Jul 11 11:42:25 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * USAGE:
        * config/.cvsignore:
        * modules/ConfigParser.pm:
        * modules/Creator.pm:
        * modules/Driver.pm:
        * modules/OutputMessage.pm:
        * modules/Parser.pm:
        * modules/WorkspaceCreator.pm:

          Added the ability for MPC to be configured via two configuration
          files.  The first configuration file, codebase.cfg, controls where
          MPC looks for the second configuration file, MPC.cfg.  By default
          it will look in $MPC_ROOT/config/MPC.cfg.  This configuration file
          will replace all (but one) environment variables and allow for more
          things to be controlled.

          Use of the deprecated environment variables will result in
          messages be printed to that effect.

        * modules/AutomakeWorkspaceCreator.pm:
        * templates/automake.mpd:

          Added the 'libpaths' setting to the automake template.  This also
          required a code change due to the strictness of automake.  If the
          libpath does not exist, the make will fail so I added the libpaths
          as dependencies and we attempt to make the directories if they
          don't exist.

        * modules/TemplateParser.pm:
        * templates/em3.mpd:
        * templates/ghs.mpd:
        * templates/vc6.mpd:
        * templates/vc7.mpd:
        * templates/vc8.mpd:

          Fixed additional dependencies specified by the custom definition
          'dependent' setting.  Previously, if a dependent did not end in
          .pl or .pm a .exe was appended.  Now, if the dependent does not
          have an extension a .exe is appended.

          Also, for vc*.mpd, if multiple commands make up a custom command
          (through postcommand or pch_postrule) they are chained together
          with && to ensure that all commands are run.

        * templates/vc7csharp.mpd:
        * templates/vc7vb.mpd:
        * templates/vc8csharp.mpd:

          Added or modified the custom section such that custom defintions
          without commands are still added to the project.

Tue Jul 11 00:48:01 UTC 2006  Johnny Willemsen  <jwillemsen@remedy.nl>

        * templates/vc7.mpd:
          Added support for ModuleDefinitionFile

Thu Jul  6 14:54:01 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/ProjectCreator.pm:

          A problem could arise when generating the default component lists.
          It all depended upon the order of a 'keys' call for the valid
          component types.  I first noticed this in 2004, but with Perl 5.8,
          the keys always came out such that everything just worked.
          However, with Perl 5.6.1 the keys do not come out as required.
          This requirement is that user defined component types must be
          processed before built-in types, most importantly Source_Files.  I
          now sort the keys such that the user defined component types are
          processed before built-in types.

Wed Jul  5 17:11:28 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/ProjectCreator.pm:

          There was a difference in the way that MPC dealt with a defaulted
          Source_Files section and a Source_Files section that was just a
          list of directories.  Generated files were treated differently in
          the defaulted case.  This change corrects that problem.

          Additionally, files listed with >> and << did not receive slash
          conversion when being output to a generated project when the
          project type required it.  This has also been corrected.

Fri Jun 30 15:32:12 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/ProjectCreator.pm:

          Fixed a bug re-introduced by my change from Tue Jun 27 17:33:59
          UTC 2006.  If gendir = . is used in a custom build rule, the
          generated files would not have the needed ./ prepended to the file
          name.

        * modules/VC8WebWorkspaceCreator.pm:

          Removed invalid configurations for the web workspace.

Thu Jun 29 16:33:13 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * README:
        * modules/ProjectCreator.pm:
        * modules/XMLProjectBase.pm:

          Fixed a bug where a backslash was added to the front of a double
          quote when the <%quote%> pseudo variable is used.  If an escaped
          double quote is required, use <%equote%> (as described in the
          README).

Tue Jun 27 17:33:59 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * PROBLEM-REPORT-FORM:

          Added a spot for the operating system and shell.

        * modules/ProjectCreator.pm:

          When creating the list of generated files, retain the original
          file extension.  If the original input file extension does not
          match the first extension listed in the custom definition inputext
          setting, the extension will be lost and file specific settings
          will not be applied correctly.

        * modules/WorkspaceCreator.pm:

          When adding implicit project dependencies, for the gnuace project
          type only, keep track of the indirect dependencies that have been
          followed to avoid infinite recursion.

Thu Jun 22 12:24:51 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/VC7WorkspaceCreator.pm:

          Modified the mixed language output so that VC8 does not want to
          save after the first load of the generated solution.

Wed Jun 21 14:16:22 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/VC7WorkspaceCreator.pm:

          Yet another bug fix for mixed language workspaces.  When a C++
          project is dependent upon another C++ project and a C# project,
          the dependee C++ project would be skipped.  Now, non-C++ projects
          will be built when the platform is changed to anything other than
          'Any CPU' or .NET.

Tue Jun 20 13:53:05 2006  J.T. Conklin  <jtc@acorntoolworks.com>

        * templates/automake.mpd:

          Tweak "code" that emits -stamp dependency to work with stamp
          files in subdirectories.

Tue Jun 20 18:31:35 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * templates/vc8csharp.mpd:

          Added the ability to set the RegisterForComInterop setting as a
          template variable.

Tue Jun 20 17:06:50 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/ProjectCreator.pm:
        * modules/TemplateParser.pm:

          Fixed a bug where mixing C++ and C# projects in a single workspace
          would result in invalid projects due to the fact that a project
          creator would have only one TemplateInputReader which would read
          the template input file for the first projects language and all
          other projects would receive the same template input.

          Additionally, the configuration/platform combination would only be
          updated if the platform is a non-empty string.

          And finally, the ability to nest template functions (like reverse,
          sort, etc.) not in the context of a foreach has been added to the
          template parser.

Tue Jun 20 12:45:30 UTC 2006  James H. Hill  <hillj@isis.vanderbilt.edu>

        * modules/VC8WebWorkspaceCreator.pm:

          Changed the location of the web project from the cwd to
          '.'.

Tue Jun 20 12:41:49 UTC 2006  James H. Hill  <hillj@isis.vanderbilt.edu>

        * templates/vc8csharp.mpd:

          Removed the aspx_files variable since web projects assume all
          files located in the directory of the solution is part of the
          project.

Fri Jun 16 00:37:06 UTC 2006  James H. Hill  <hillj@isis.vanderbilt.edu>

        * modules/VC7WorkspaceCreator.pm:

          Added the web project guid to the rest of the GUIDs. This
          allows use to resue the the default VC workspace generator
          to generate web projects.

        * modules/MPC.pm:
        * modules/MWC.pm:
        * modules/VC8WebProjectCreator.pm:
        * modules/VC8WebWorkspaceCreator.pm:

          Created a new module for generating web projects for VC8.
          In VC8, web projects are based on the directory that contains.
          the solutions. This means a web project does not have a "project"
          file like C++, C# and VB projects. Therefore, a new module
          was needed to automatically create a web project in a solution
          since we can't specify this using a MWC file.

          To create a web project, just run MWC as follows:

          mwc.pl -type vc8web

          The following are the language -> scripting mappings:
            cpluplus -> C#
            csharp   -> C#
            java     -> J#
            vb       -> Visual Basic

Fri Jun 09 14:49:25 2006  Steve Huston  <shuston@riverace.com>

        * modules/AutomakeProjectCreator.pm (fill_value): Reverted:
          Tue May 23 16:49:22 2006  Steve Huston  <shuston@riverace.com>
          since it's not always correct to prefix to $srcdir. Sometimes
          it needs to be relative to the build directory. This restores the
          behavior put in place by:
          Thu Dec 22 13:56:14 2005  J.T. Conklin  <jtc@acorntoolworks.com>
          Thanks to J.T. for pointing this out.

Fri Jun  9 07:00:13 2006  J.T. Conklin  <jtc@acorntoolworks.com>

        * templates/automake.mpd:

          Tweak so that _LDFLAGS isn't defined if am_version is defined,
          but library is not intended to be installed.

Wed Jun  7 12:56:17 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * templates/vc8.mpd:

          Modified this template to use 'libout' again such that .lib files
          do not go into the location specified by 'dllout' (if it was
          specified).  Thanks to Kitty B. for recognizing this situation and
          bringing it to my attention.

Tue May 30 12:21:54 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/Driver.pm:

          Removed the run-time check for the minimum perl version.

        * mpc.pl:
        * mwc.pl:

          Added a load-time check for the minimum perl version (5.6).

Tue May 23 16:49:22 2006  Steve Huston  <shuston@riverace.com>

        * modules/AutomakeProjectCreator.pm (fill_value): If an include
          path begins with ".." (a relative path), prefix it with $(srcdir)
          to make it work properly when the build dir is not the same as the
          source dir.

Thu May 11 11:46:45 2006  Steve Huston  <shuston@riverace.com>

        * templates/automake.mpd: Allow an am_release variable to set
          a installable library's -release option. This allows users to
          choose whether to use libtool's -version-info option (with the
          am_version variable) or the -release option (with am_release).

Fri May  5 12:00:12 UTC 2006  Johnny Willemsen  <jwillemsen@remedy.nl>

        * modules/BDSWorkspaceCreator.pm:
          Generate missing </BorlandProject>

Wed May  3 01:43:46 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * USAGE:

          Documented the -gendot option which generates input files for
          Graphvis.

        * modules/BMakeProjectCreator.pm:
        * modules/Creator.pm:
        * modules/DirectoryManager.pm:
        * modules/Driver.pm:
        * modules/FeatureParser.pm:
        * modules/GUID.pm:
        * modules/Options.pm:
        * modules/ProjectCreator.pm:
        * modules/TemplateParser.pm:
        * modules/VC7ProjectCreator.pm:
        * modules/WorkspaceCreator.pm:

          Adding various performance improvements.

        * templates/makedll.mpt:

          Changing the order of the rt and pthread libraries to avoid
          possible linking problems when statically linking.

Tue Apr 25 13:18:06 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * clone_build_tree.pl:

          Print error messages in the event that an error actually occurs.

        * prj_install.pl:

          Added a missing option from the usage.

        * templates/nmake.mpd:
        * templates/nmakedll.mpt:
        * templates/nmakeexe.mpt:

          By default, pass the /Zc:wchar_t option to the compiler.  If you
          plan on using nmake with Visual C++ 6.0, you must unset the
          'TreatWChar_tAsBuiltInType' template variable to avoid compiler
          warnings about unknown options.

        * templates/vc7.mpd:

          Allow the user to modify the inline expansion through the
          'InlineFunctionExpansion' template variable.

        * templates/vc7csharp.mpd:
        * templates/vc8csharp.mpd:

          Support the 'prebuild' setting.

Thu Apr 20 13:29:13 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * templates/em3.mpd:
        * templates/em3vcpdll.mpt:
        * templates/em3vcpdllexe.mpt:
        * templates/em3vcplib.mpt:
        * templates/em3vcplibexe.mpt:

          Fixed a bug where /debug was being added to the link flags even
          though it was a Release configuration.  Thanks to Wallace Zhang
          <zhangw@ociweb.com> for finding this.

Fri Mar 31 13:25:32 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/WorkspaceCreator.pm:

          Fixed a bug in the group dependency sorter.  The circular
          dependencies are checked but as a group moves in order, it was
          assumed that the dependencies were already checked for the group
          when in reality it hadn't.  This could cause an infinite loop.

          Also, $() type variables can be used in workspaces.

Mon Mar 27 17:00:31 UTC 2006  James H. Hill  <hillj@isis.vanderbilt.edu>

        * modules/ProjectCreator.pm:

          Added support of ASP.NET project files (.aspx files) to both
          Visual Basic and C# project.

        * templates/vc7vb.mpd:

          - Changed default extension for resx files from .cs to .vb
          - Added template code to correctly handle .aspx files

        * templates/vc7csharp.mpd:
        * templates/vc8csharp.mpd:

          - Added template code to correctly handle .aspx files

Thu Mar 23 14:56:12 UTC 2006  Johnny Willemsen  <jwillemsen@remedy.nl>

        * templates/bds.mpd:
          If linkflags contains -aa then generate option.aa.enabled as 1.

Thu Mar 23 14:51:12 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * templates/vc7.mpd:
        * templates/vc8.mpd:

          Added the missing UNICODE and _UNICODE macros to the resource file
          compile line if the 'unicode' template variable is set.

Thu Mar 23 14:30:00 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/Driver.pm:

          Convert all back slashes to slashes before calling mpc_basename().

        * templates/makedll.mpt:

          Added -ldl to the vxworks_rtp platform section.

        * templates/vc7.mpd:

          Moved the ProgramDataBaseFileName down after the precompiled
          header section to more closely match the way visual studio
          produces project files.

Thu Mar 23 12:11:12 UTC 2006  Johnny Willemsen  <jwillemsen@remedy.nl>

        * templates/bmake.mpd:
          If linkflags are available, generate them into the project
          file

Thu Mar 16 17:58:37 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/VC8ProjectCreator.pm:

          Fixed a bug where the SUPER version of the translate_value()
          wasn't called at the end of the local translate_value() method.
          This was causing problems when the -name_modifier and
          -apply_project options were used together.

        * templates/makedll.mpt:

          Fixed support for VxWorks.

Wed Mar 15 18:44:03 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * generate_export_header.pl:

          Print an error if the script is unable to write to the output
          file.

        * modules/MakeProjectCreator.pm:
        * templates/makedll.mpt:

          Moved the default 'compilers' setting from the mpt to the perl
          module to allow the default compiler to change based on the
          language setting.  Currently, the default is 'java' if the
          language is set to java otherwise it is set to 'gcc' as it was
          previously.

        * README:
        * modules/AutomakeWorkspaceCreator.pm:
        * modules/ProjectCreator.pm:
        * modules/TemplateParser.pm:
        * templates/automake.mpd:
        * templates/bmake.mpd:
        * templates/em3.mpd:
        * templates/ghs.mpd:
        * templates/make.mpd:
        * templates/nmake.mpd:
        * templates/vc6.mpd:
        * templates/vc7.mpd:
        * templates/vc8.mpd:

          Implemented a new project keyword that can only be used within the
          scope of Source_Files.  The 'buildflags' setting can be used to
          specify additional build flags as source files are being compiled.
          This can be used to build a particular subset of source files with
          different compiler options.

Tue Mar 14 14:19:03 2006  Steve Huston  <shuston@riverace.com>

        * templates/vc8platforms.mpt: For WinCE 4-based platforms, add
          EnableFunctionLevelLinking="true". This works around a link-time
          warning LNK1166 for ARM processors. This prevented ACEd.dll (and
          some other examples/test programs) from creating the resultant
          binary dll/exe file.

Mon Mar 13 17:53:45 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/Driver.pm:

          If global.features, default.features, global.mpb or default.rel
          are not found in the path relative to the location of mwc.pl (or
          mpc.pl), look for them in the config directory found underneath
          MPC.  This only matters when working in conjunction with ACE.

Fri Mar 10 18:59:34 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/BMakeWorkspaceCreator.pm:
        * modules/Creator.pm:
        * modules/DirectoryManager.pm:
        * modules/Driver.pm:
        * modules/FeatureParser.pm:
        * modules/HTMLProjectCreator.pm:
        * modules/MakeWorkspaceCreator.pm:
        * modules/NMakeWorkspaceCreator.pm:
        * modules/WorkspaceCreator.pm:

          Implemented a new function, mpc_basename, that is more efficient
          than the one provided by File::Basename.

        * modules/ProjectCreator.pm:

          Moved code outside of add_corresponding_component_files that was
          executed twice.  The result could not possibly change, so it is
          executed once and the result is passed into
          add_corresponding_component_files.

        * modules/TemplateParser.pm:

          Optimized code to avoid using substr() in parse_line().

Thu Mar  9 16:20:24 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/CBXProjectCreator.pm:
        * modules/CBXWorkspaceCreator.pm:
        * templates/cbx.mpd:
        * templates/cbxdll.mpt:
        * templates/cbxexe.mpt:

          Removed these files.

        * USAGE:
        * config/boost_date_time.mpb:
        * config/boost_filesystem.mpb:
        * config/boost_iostreams.mpb:
        * config/boost_prg_exec_monitor.mpb:
        * config/boost_program_options.mpb:
        * config/boost_regex.mpb:
        * config/boost_serialization.mpb:
        * config/boost_signals.mpb:
        * config/boost_test_exec_monitor.mpb:
        * config/boost_thread.mpb:
        * config/boost_wave.mpb:
        * config/xerces.mpb:
        * modules/MPC.pm:
        * modules/MWC.pm:

          Removed the cbx project type.  The format is dead and has been
          replaced by the bds format.

        * README:
        * templates/bmake.mpd:
        * templates/html.mpd:
        * templates/make.mpd:
        * templates/nmake.mpd:
        * templates/vc7.mpd:
        * templates/vc8.mpd:
        * modules/ProjectCreator.pm:

          Added partial support for prebuild.  Some project types can't or
          can't easily support this concept.

        * modules/DirectoryManager.pm:
        * modules/WinProjectBase.pm:

          Moved a portion of the code to remove the current working
          directory from WinProjectBase's version of translate_directory()
          into DirectoryManager's version.

Mon Mar  6 18:09:36 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * config/qt.mpb:

          The qt library can have a variety of suffixes (depending on
          platform and version).  This base project was changed such that
          there is no 'specific' section for for the qt library name.  It is
          added to 'lit_libs' as qt-mt$(QT_VERSION).

        * generate_export_header.pl:

          This is a new script that will generate an export header file that
          can be used (not in conjunction with ACE) to support symbol
          visibility using a variety of compilers.

        * modules/BMakeProjectCreator.pm:
        * modules/BMakeWorkspaceCreator.pm:
        * modules/Creator.pm:
        * modules/DirectoryManager.pm:
        * modules/Driver.pm:
        * modules/HTMLProjectCreator.pm:
        * modules/NMakeWorkspaceCreator.pm:
        * modules/Options.pm:
        * modules/ProjectCreator.pm:
        * modules/TemplateParser.pm:
        * modules/VC7WorkspaceCreator.pm:
        * modules/WinProjectBase.pm:
        * modules/WorkspaceCreator.pm:

          The majority of the changes to these files are performance
          related.  However, two bug fixes are included (one pertaining to
          file grouping and the other pertaining to directory translation of
          a directory only containing "..").

        * templates/make.mpd:

          Three modifications:

          1) Only set PICFLAGS if the dll_ext template variable is defined.
          2) Allow the user to override the 'chmod' template variable.
          3) Removed the .<%slash%> in front of the call to "specialscript"

        * templates/makedll.mpt:

          Added -mthreads -mminimal-toc compiler flags for LynxOS.

        * templates/vc7.mpd:
        * templates/vc8.mpd:

          Fixed whitespace for default grouped files.

Mon Feb 27 17:35:55 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * config/zlib.mpb:

          Changed the Windows section of the zlib library to use libs
          instead of lit_libs.  It is necessary to match up debug to
          debug and release to release when linking an application with this
          library.

Fri Feb 24 00:23:57 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/ProjectCreator.pm:

          Removed calls to escape_regex_special() before calling
          generated_filenames().  This was breaking when files with regular
          expression special characters (like .) were listed.

Thu Feb 23 10:33:25 2006  J.T. Conklin  <jtc@acorntoolworks.com>

        * templates/automake.mpd:

          Added "compile_flags" to conditional which caused a needed
          backslash not to be emitted in somewhat rare circumstances.

Thu Feb 23 14:10:30 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * README:

          Added a paragraph explaining that MPC expects *all* file names
          that contain a directory portion to use forward slashes regardless
          of what the platform natively uses.

        * modules/ProjectCreator.pm:

          Corrected two bugs pertaining to automatic file addition.  The
          first happens when two different custom file sections have the
          same group name; the second group would overwrite the first.  The
          second bug would only happen on Windows based project types if the
          'gendir' setting contained a slash, MPC wouldn't be able to match
          up the generated files (this was introduced with my change from
          Mon Feb 13 11:15:04 2006).

Wed Feb 22 23:58:03 2006  J.T. Conklin  <jtc@acorntoolworks.com>

        * templates/automake.mpd:

          Fix typo which caused compile_flags to be emitted for each
          individual compile_flag.

Wed Feb 22 20:06:00 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * combine_dsw.pl:

          Support combining .vcw files too.  They are almost identical to
          .dsw files.

        * modules/ProjectCreator.pm:

          Removed the $rmesc parameter from the generated_filenames() and
          generated_filename_arrys() methods.  We will always remove the
          escape sequences from the generated file names.  In the one place
          where the escapes are needed, we use escape_regex_special() to
          ensure that the whole file name (including the path) is escaped.

        * modules/VC6WorkspaceCreator.pm:

          Sort the projects so that the generated workspace will be
          deterministic.

        * modules/WinProjectBase.pm:

          Modified translate_directory() to remove the current working
          directory from the directory passed in and then limit the length
          of that to avoid issues with maximum directory/file length on
          NTFS.

        * templates/bmake.mpd:
        * templates/bmakecommon.mpt:
        * templates/bmakedll.mpt:
        * templates/bmakedllexe.mpt:
        * templates/bmakelibexe.mpt:

          Support building with VCL.  Also, add the custom_type libpath
          setting to the PATH variable.

        * templates/make.mpd:
        * templates/makedll.mpt:

          Added support for visibility attributes.  They are off by default,
          so set the 'visibility' template variable to 1 to then them on.
          Also, when generating the clean target, clean the extra
          directories relative to the output location of the makefile
          target.

Tue Feb 21 18:14:21 2006  Steve Huston  <shuston@riverace.com>

        * templates/vc8.mpd: Put .lib files with .dll files in $(OutDir).
          When emitting AdditionalLibraryDirectories and there is a specified
          output_subdir, append output_subdir to each libpath, then the
          plain libpath. This picks up output_subdir specs and hopefully
          won't hurt anything for libpaths that don't have the subdirs.

Thu Feb 16 21:36:37 UTC 2006  Wallace Zhang  <zhangw@ociweb.com>

        * highlight_template.pl:

          Added a newline at the end of the file which is required
          by fuzz.pl.

Thu Feb 16 19:53:13 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * highlight_template.pl:

          Added a tool which can be helpful in debugging MPC template code.
          This utility will color highlight an MPC template and output html.

        * modules/Driver.pm:

          Perl 5.8.8 has a "feature" where basename('') returns './' instead
          of '' as all other versions do.  In the case where we may call
          basename() with an empty string, avoid calling basename() and just
          use '' instead.  Thanks to Johnny Willemsen for helping me debug
          this one.

        * modules/HTMLWorkspaceCreator.pm:

          Output the projects in build order instead of alphabetical order.

        * templates/make.mpd:

          Greatly simplified this template by removing many little foreach's
          and enclose most of the template in two big foreach's.

Wed Feb 15 19:41:59 2006  J.T. Conklin  <jtc@acorntoolworks.com>

        * templates/automake.mpd:

          Process header_files, inline_files, template_files, idl_files,
          and pidl_files even if we're not building a executable or lib.
          This ensures the files will be listed in the Makefile.am (for
          "make distcheck" and/or for "make install").

Wed Feb 15 17:56:02 2006  Steve Huston  <shuston@riverace.com>

        * templates/nmakedll.mpt:
        * templates/nmakeexe.mpt: Changed WinX86_64 platform name to x64 to be
          consistent with vc8platforms.mpt. Also set _M_AMD64 in cpu_defines,
          not _M_AXP64 to be consistent with what Microsoft headers are
          expecting; also added _AMD64_ to ensure it gets set - windows.h
          sets it, but if including winnt.h first, it doesn't get set.
          Thanks to Johnny Willemsen for motivating this change.

Wed Feb 15 18:42:30 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * README:
        * modules/ProjectCreator.pm:

          Added two new pseudo variables 'cmp' for a platform non-specific
          way to compare files and 'os' which provides the type of operating
          system the project is suited for (win32 or unix).

        * registry.pl:

          Register .mpb files just as .mpc files are registered.

Wed Feb 15 16:03:06 UTC 2006  Chad Elliott  <elliott_c@ociweb.com>

        * config/boost_base.mpb:

          Added an include path for $(BOOST_ROOT).

        * config/bzip2.mpb:
        * config/global.features:

          Added a bzip2 feature project and set the bzip2 feature to zero by
          default.

        * config/zlib.mpb:

          Switch from libs to lit_libs so that no decorator is added to the
          library name.

        * modules/ProjectCreator.pm:

          Accept .ipp as inline files.

        * templates/make.mpd:
        * templates/makedll.mpt:

          Provide library versioning on platforms that support it.  Added
          initial support for the intel compiler on Linux.

        * templates/vc7.mpd:

          Allow switching off exception handling.

Tue Feb 14 17:06:40 2006  Steve Huston  <shuston@riverace.com>

        * templates/vc8platforms.mpt: Changed the WinX86_64 platform to be
          x64 to match what VC8 generates itself and expects. Also added
          x64 to the platforms generated by default.

Mon Feb 13 11:15:04 2006  Chad Elliott  <elliott_c@ociweb.com>

        * config/global.features:

          Set the swig_perl, swig_java and python features to zero.

        * config/python.mpb:

          Added a base project for building against the python library.

        * config/swig_java.mpb:

          Added a requires += swig_java.

        * config/swig_perl.mpb:

          Added a requires += swig_perl.

        * modules/ProjectCreator.pm:

          Fixed a problem where if a file is automatically generated and
          gendir is set to '.', the file name may be added twice to a
          project.

          When automatically adding files specified by >>, take into account
          the gendir setting.

          Added a post project creation hook so that sub-classes of
          ProjectCreator can perform an action after a project file is
          created.

        * modules/TemplateParser.pm:

          Renamed the basename() function to tp_basename().

        * modules/VC8ProjectCreator.pm:

          Use the post file creation hook to remove the .user files created
          by VC8.  The .user file will only be removed if the project file
          is different than what was created by prior runs of MPC.

        * README:
        * modules/WorkspaceCreator.pm:

          Allow the user of -genins within a workspace.

        * templates/bmake.mpd:

          Put double quotes around gendir related files just in case gendir
          has a directory with spaces in the name.  Also, prefix all del and
          rmdir commands with - to continue on if there is an error.

        * templates/make.mpd:
        * templates/makedll.mpt:

          Changed the way that the 'configurations' template variable is used.
          The existing use has been renamed to 'compilers' and the
          'configurations' template variable is now used as it is in many of
          the other project types, as Debug or Release.

Fri Feb 10 06:36:59 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/Options.pm:

          Fixed a bug where a -exclude argument with a comma in it would not
          be split.

        * modules/ProjectCreator.pm:

          Reverted a change that affected the way files were listed in
          templates when gendir = . was used.

        * templates/ghs.mpd:
        * templates/ghscommon.mpt:

          Changed libdecorator to lib_modifier to be consistent with all of
          the other templates.

Fri Feb 10 11:26:12 UTC 2006  Johnny Willemsen  <jwillemsen@remedy.nl>

        * templates/vc8platforms.mpt:
          For x86_64 specify an explicit link option

        * templates/nmake.mpd:
          Added platform_defines to the list of defines being generated,
          this is as with the normal vc templates

        * templates/nmakedll.mpt:
        * templates/nmakeexe.mpt:
          Added platform_defines and updated cpu_define to the same
          value used as with the normal vc templates for WinX86_64

Thu Feb  9 12:50:52 2006  Chad Elliott  <elliott_c@ociweb.com>

        * config/boost_iostreams.mpb:
        * config/boost_program_options.mpb:
        * config/boost_python.mpb:
        * config/boost_serialization.mpb:
        * config/boost_wave.mpb:

          Added support for other boost libraries.

        * modules/DirectoryManager.pm:
        * modules/Options.pm:

          Added support for wildcards when using the -exclude option.

        * modules/ProjectCreator.pm:

          When the Define_Custom has the automatic flag set to 1,
          automatically add the files generated that are specified by the >>
          operator.

          Fixed a bug where <% %> variables used within a 'specific' section
          were not translated.

        * modules/TemplateParser.pm:

          Fixed a bug where errors within a <%foreach%> would be silently
          ignored.

        * modules/WorkspaceCreator.pm:

          Added support for wildcards.

        * templates/bmake.mpd:
        * templates/bmakedll.mpt:
        * templates/bmakedllexe.mpt:
        * templates/bmakelib.mpt:
        * templates/bmakelibexe.mpt:

          Fixed a bug where debug_flags was being placed in all
          configurations, not just debug.  And modified these, so that debug
          flags are only emitted in a debug configuration (when optimze is
          overriden to be zero).

        * templates/em3.mpd:
        * templates/em3vcpdll.mpt:
        * templates/em3vcpdllexe.mpt:
        * templates/em3vcplibexe.mpt:

          EVC 4.0 doesn't support "utility" projects, so when custom_only is
          set to 1, just create a DLL project that has no target.  Also,
          fixed link issues for the emulator and x86 targets. And, sort the
          grouped files so that a project can be reproduced consistently.

        * templates/vc6.mpd:
        * templates/vc7.mpd:
        * templates/vc8.mpd:

          Sort the grouped files so that a project can be reproduced
          consistently.

Thu Feb  2 07:02:19 2006  Chad Elliott  <elliott_c@ociweb.com>

        * clone_build_tree.pl:

          Do not clone the .svn directory.  It's administrative just like
          the CVS directory.

        * modules/ProjectCreator.pm:

          There was a bug where file with a path specified using the '>>'
          operator would not be processed correctly on Windows based project
          types.  Thanks to Thomas Rothfuss for reporting this.

Mon Jan 30 12:07:35 2006  Chad Elliott  <elliott_c@ociweb.com>

        * PROBLEM-REPORT-FORM:

          Added a section to provide the Perl version.

        * README:

          Updated the valid command line options for workspaces with the
          -language option.

        * USAGE:

          Documented the -value_template option and provided an example
          where spaces needed to be retained.

        * modules/XMLProjectBase.pm:
        * modules/BDSProjectCreator.pm:
        * modules/CBXProjectCreator.pm:
        * modules/HTMLProjectCreator.pm:
        * modules/SLEProjectCreator.pm:
        * modules/VC7ProjectCreator.pm:

          Created a new project base for XML based project creators.  The
          trend in projects seem to be going toward XML so we can minimize
          the amount of repeated code by using the XMLProjectBase.

        * modules/BDSWorkspaceCreator.pm:
        * modules/CBXWorkspaceCreator.pm:
        * modules/GHSWorkspaceCreator.pm:
        * modules/SLEWorkspaceCreator.pm:

          Tell the sort_dependencies() method that we do not want sorting
          by directory groups.

        * modules/BMakeProjectCreator.pm:

          Removed an unnecessary check of convert_slashes().

        * modules/ProjectCreator.pm:

          Provided support for use of <% %> variables within all of MPC
          project keywords.  The list of valid variables only includes the
          pseudo variables listed under 'postbuild' in the README.

        * templates/bmake.mpd:

          Utilize the 'transdir' template function to fully support files
          with .. in the path name.

        * templates/vc7.mpd:
        * templates/vc7dll.mpt:
        * templates/vc7exe.mpt:
        * templates/vc7lib.mpt:
        * templates/vc7libexe.mpt:
        * templates/vc8.mpd:
        * templates/vc8dll.mpt:
        * templates/vc8exe.mpt:
        * templates/vc8lib.mpt:
        * templates/vc8libexe.mpt:

          Added two new configurations (not generated by default) called
          'Memcheck Debug' and 'Memcheck Release'.  These configurations
          provide settings that are amenable to external memory checking
          tools.

Wed Jan 25 11:40:37 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/WorkspaceCreator.pm:

          Return an array reference from the get_validated_ordering() method
          instead of a string.  In every place get_validated_ordering() was
          called, the return value was immediately converted to an array.

        * modules/VC6WorkspaceCreator.pm:
        * modules/VC71WorkspaceCreator.pm:
        * modules/VC7WorkspaceCreator.pm:

          Use the returned array instead of converting the string into an
          array.

Wed Jan 25 09:02:34 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/DirectoryManager.pm:
        * modules/TemplateParser.pm:
        * modules/WinProjectBase.pm:

          Added a new template function called transdir which will translate
          a directory portion of a filename into a "usable" object file
          directory.  It entails changing .. into the word 'dotdot' and for
          windows based projects it will also change drive letters and $()
          variables.

        * templates/nmake.mpd:

          Use the new transdir function to deal with relative directories
          and other problematic directory names.

Mon Jan 23 13:05:12 2006  Chad Elliott  <elliott_c@ociweb.com>

        * templates/nmake.mpd:

          Added a rule back in that was removed by my change on
          Mon Jan  9 08:30:14 2006.

Mon Jan 23 12:08:25 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/BMakeWorkspaceCreator.pm:
        * modules/MakeWorkspaceCreator.pm:
        * modules/NMakeWorkspaceCreator.pm:

          Tell the number_target_deps() method that we do not want sorting
          by directory groups.

        * modules/VC6WorkspaceCreator.pm:
        * modules/VC71WorkspaceCreator.pm:
        * modules/VC7WorkspaceCreator.pm:

          No need to check for circular dependencies here, it is now done
          when validating the dependencies.

        * modules/WorkspaceCreator.pm:

          Re-wrote the circular directory dependency detection code in order
          to detect multi-directory (3 or more) dependencies.  This slowed
          things down a bit, so I had to find performance in other locations
          throughout the workspace creator.

Thu Jan 19 12:59:55 2006  Chad Elliott  <elliott_c@ociweb.com>

        * USAGE:
        * modules/Driver.pm:
        * modules/Options.pm:

          Added a new option, -gfeature_file, to specify the global feature
          file.

Thu Jan 19 12:30:18 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/VC71ProjectCreator.pm:
        * modules/VC7ProjectCreator.pm:

          Moved a static hash table out of a method and into the local
          namespace (for performace reasons).

        * modules/VC7WorkspaceCreator.pm:
        * templates/vc7csharp.mpd:
        * templates/vc7vb.mpd:

          Removed the code that added references for csharp or vb.  This was
          not necessary and in fact broke the projects.

        * modules/VC8ProjectCreator.pm:
        * templates/vc8csharp.mpd:
        * templates/vc8csharp.mpt:

          Added support for the vc8 style projects for csharp.  Previously,
          the vc7 version for csharp was used and required conversion within
          vc8.

Wed Jan 18 15:12:40 2006  Chad Elliott  <elliott_c@ociweb.com>

        * templates/nmake.mpd:

          Modified the clean rule to just use del /s/f/q instead of listing
          out each object file.  Thanks to Johnny Willemsen for debugging
          this.

Wed Jan 18 13:04:27 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/NMakeWorkspaceCreator.pm:
        * modules/TemplateParser.pm:
        * modules/VC7ProjectCreator.pm:
        * modules/VC7WorkspaceCreator.pm:

          We need to keep track of the language for each project processed.
          This allows the VC7, VC71 and VC8 WorkspaceCreator's to put the
          right GUID in for the individual projects.

Tue Jan 17 07:25:29 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/FeatureParser.pm:

          The previous change included a change to make features
          case-insensitive.  This change was not complete and has been
          corrected.

Mon Jan 16 11:17:45 2006  Chad Elliott  <elliott_c@ociweb.com>

        * MPC.ico:

          Modified the MPC project icon to have the (P) on the left side
          instead of the right so that it looks better with Tortoise.

        * modules/Creator.pm:
        * modules/WorkspaceCreator.pm:

          Added support for using -language within a workspace.  Previously,
          this was disallowed but there was no real reason for that.

        * modules/FeatureParser.pm:
        * modules/ProjectCreator.pm:
        * modules/TemplateParser.pm:

          Added support for accessing MPC features and their values.

        * templates/html.mpd:

          Added all of the MPC project keywords.

        * templates/nmake.mpd:

          Added the -i parameter to the depgen.pl script.

        * templates/vc6dspdll.mpt:

          Added the _WINDLL and _AFXDLL macros for the MFC configurations.

        * templates/vc7.mpd:

          Added the ability to set the GenerateMapFile setting.  Thanks to
          David Hauck for providing the modification.

        * templates/vc7csharp.mpd:
        * templates/vc7vb.mpd:

          Added the ReferencePath setting so that libraries can be located
          (if referenced) and ensured that the 'install' setting worked as
          it does in all other templates.  Thanks to Dan Troesser for
          providing the ReferencePath setting and pointing out the 'install'
          discrepancy.

Tue Jan 10 16:30:32 2006  Ossama Othman  <ossama@dre.vanderbilt.edu>

        From Russell Mora <russell_mora at symantec dot com>
        * templates/nmake.mpd:

          Add to manifest files, if `.manifest' file exists.

Mon Jan  9 08:30:14 2006  Chad Elliott  <elliott_c@ociweb.com>

        * templates/nmake.mpd:

          Corrected a bug reported by Johnny Willemsen where object files
          were not getting cleaned up if they contained a relative path with
          ".." in the name.  In the process, I cleaned up the template a bit
          which should allow this type to be generated slightly faster.

Thu Jan  5 09:45:54 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/Creator.pm:
        * modules/DirectoryManager.pm:
        * modules/ProjectCreator.pm:

          Made MPC more tolerant of file systems that are case insensitive.
          This will help with the relative path replacement on Windows and
          others that have this problematic type of file system.

Wed Jan  4 08:09:20 2006  Chad Elliott  <elliott_c@ociweb.com>

        * modules/ProjectCreator.pm:

          Fixed a bug where adding a grouped set of source files that are
          generated using a wildcard would cause a duplicate of the default
          group if files were added to a different after the generated
          group.

Tue Jan  3 08:26:34 2006  Chad Elliott  <elliott_c@ociweb.com>

        * USAGE:
        * modules/Options.pm:

          Added the possible language settings to the help message.

        * templates/make.mpd:
        * templates/makedll.mpt:

          Allow control of the 'genflags' setting with the 'optimize'
          template variable.  This changes the default 'genflags' setting
          from -g to -O.

        * templates/vc7.mpd:
        * templates/vc7dll.mpt:
        * templates/vc7exe.mpt:
        * templates/vc7lib.mpt:
        * templates/vc7libexe.mpt:
        * templates/vc8.mpd:
        * templates/vc8dll.mpt:
        * templates/vc8exe.mpt:
        * templates/vc8lib.mpt:
        * templates/vc8libexe.mpt:

          Introduced a new template variable, 'debug_prj', which helps
          control which run-time library is used during linking.
          Previously, this was controled by the 'optimize' template
          variable, but building a "Release" configuration with 'optimize'
          turned off did not work where inline functions were used in other
          libraries (being linked in) where 'optimize' was left on.

Mon Dec 26 21:02:36 2005  Chad Elliott  <elliott_c@ociweb.com>

        * templates/vc7.mpd:
        * templates/vc8.mpd:

          Set the run-time library to a static version if either template
          variables type_is_static or need_staticflags are set.

Thu Dec 22 13:56:14 2005  J.T. Conklin  <jtc@acorntoolworks.com>

        * modules/AutomakeProjectCreator.pm:

          Disable code that prefixed include paths with "$(srcdir)/".  In
          some cases an include path should be relative to the source dir,
          in others it should be relative to the build dir, and sometimes
          it should be relative to both.  Since it is impossible to guess
          which is the correct choice, require the *.mpc file to specify
          it correctly.

Thu Dec 22 15:17:30 2005  Chad Elliott  <elliott_c@ociweb.com>

        * templates/vc7csharp.mpd:

          Added a missing <%endif%>.

Thu Dec 22 08:30:56 2005  Chad Elliott  <elliott_c@ociweb.com>

        * USAGE:

          Update the usage to contain the 'bds' type.

        * modules/Creator.pm:

          Fixed a feature where $() variables were automatically expanded
          during a subtraction.  Now, we only expand the $() variable if we
          could not find the subtraction value in the name value.

        * templates/bds.mpd:

          Modified the includes foreach to set the forcount base.

        * templates/bdsdll.mpt:
        * templates/bdsexe.mpt:

          Include the user_bds* file instead of the user_cbx* file.

Wed Dec 21 19:17:12 UTC 2005  Johnny Willemsen  <jwillemsen@remedy.nl>

        * templates/vc8platforms.mpt:
          Set the TargetMachine when building for EM64T

Wed Dec 21 18:55:12 UTC 2005  Johnny Willemsen  <jwillemsen@remedy.nl>

        * templates/bds.mpd:
        * templates/bdsdll.mpt:
        * templates/bdsexe.mpt:
        * modules/BDSProjectCreator.pm:
        * modules/BDSWorkspaceCreator.pm:
          Initial version of Borland Developer Studio template. Work is
          being done for the C++ personality. All files, compiler flags
          and libs are generated but some more work has to be done to
          use these for a full build. Now they are already useful for
          debugging apps that are build from the command line.

        * modules/MPC.pm:
        * modules/MWC.pm:
          Added BDS files

Wed Dec 21 06:28:04 2005  Chad Elliott  <elliott_c@ociweb.com>

        * MPC.ico:
        * registry.pl:

          Added the ability to register the .mpc and .mwc file types as well
          as create context menus within the Windows explorer.

        * PROBLEM-REPORT-FORM:

          Fixed the URL for the MPC FAQ.

        * README:
        * modules/TemplateParser.pm:

          Added the ability to set the base for the <%forcount%> variable.
          See the README for details as to how to use this.  Also, added
          code to only check for mixed values (scalars and hash maps) if the
          foreach value is not the name of an MPC project keyword.

        * config/swig_java.mpb:

          Added support for using SWIG with Java.

        * modules/AutomakeProjectCreator.pm:
        * modules/Driver.pm:
        * modules/GHSProjectCreator.pm:
        * modules/HTMLProjectCreator.pm:
        * modules/MakeProjectCreator.pm:

          Removed the convert_slashes() method.  And use the default from
          DirectoryManager.pm.

        * modules/Creator.pm:

          Use File::Spec to determine file system capabilities to give the
          right warning message.  Also added the ability to determine if any
          files were excluded when generating the default file list.

        * modules/DirectoryManager.pm:

          Corrected problems with using Cwd::getcwd() on VMS as it always
          leaves a trailing slash on the end which no other implementation
          does.  Also, switched the convert_slashes() method to return zero
          as the default (which will require slightly less code overall in
          MPC).

        * modules/HTMLWorkspaceCreator.pm:
        * templates/html.mpd:

          Make the HTML acceptable by WC3 standards.

        * modules/MakeWorkspaceCreator.pm:

          Added a .PHONY: target for each named target.  This will only work
          with GNU Make and won't hurt with other versions of make.

        * modules/ProjectCreator.pm:

          1) Check for case insensitivity (from a new method) when checking
             whether we should use upper or lower case in the
             expand_variables() method.
          2) Added an is_keyword() method to allow the TemplateParser to
             determine if a variable is an MPC project keyword or not.
          3) When adding the built-in OS compatibility methods, check the
             base class to see if it's a WinProjectBase to determine if the
             project type will be used on Windows or not.

        * modules/WinProjectBase.pm:

          For Windows based project types, define the convert_slashes() and
          case_insensitive() methods.

        * modules/WorkspaceCreator.pm:

          Fixed a bug where file exclusions given on the command line
          wouldn't work because somewhere down the line MPC would change
          directory and nothing would match up.  Also, fixed a related bug
          where if all of the .mpc files normally contained within a
          workspace were excluded a default workspace would then be used
          possibly adding unwanted .mpc files.

        * mpc.pl:
        * mwc.pl:

          Finally corrected support for VMS.  FindBin doesn't work on VMS if
          you use a relative directory, so we just use rel2abs() on the
          dirname of $0 in this situation.

        * templates/bmake.mpd:
        * templates/bmakedll.mpt:
        * templates/bmakedllexe.mpt:
        * templates/bmakelibexe.mpt:

          Modified these to move the binary compile flags into the template
          such that correct makefiles would be created if the user set the
          staticname to a valid name and set sharedname to empty.

        * templates/ghs.mpd:
        * templates/ghsdll.mpt:
        * templates/ghsdllexe.mpt:
        * templates/ghslib.mpt:

          Modified these to move the library extensions into the template
          such that correct build files would be created if the user set the
          staticname to a valid name and set sharedname to empty.

        * templates/make.mpd:

          Moved the output file to the last part of the link command line.
          Made "all" the default target for libraries.  Parameterized the
          pch extension.  Added better support for precompiled headers.

        * templates/makedll.mpt:

          Set the default pch extension to .gch.  Renamed the cxx
          configuration to cxx_tru64.  Added precompiled header support for
          SunCC (which was there as of SunCC 5.5).  For SunCC 5.4 and below,
          use -value_template pchsupport= to turn off precompiled header
          support.

        * templates/vc7.mpd:
        * templates/vc7dll.mpt:
        * templates/vc7exe.mpt:
        * templates/vc7lib.mpt:
        * templates/vc7libexe.mpt:
        * templates/vc8.mpd:
        * templates/vc8dll.mpt:
        * templates/vc8exe.mpt:
        * templates/vc8lib.mpt:
        * templates/vc8libexe.mpt:

          Modified the RuntimeLibrary setting to choose the right value for
          static/dynamic configurations.

Tue Dec  6 06:36:27 2005  Chad Elliott  <elliott_c@ociweb.com>

        * modules/WorkspaceCreator.pm:

          Fixed a bug where MPC would go into an infinite loop (while
          generating an intermediate workspace) if there were duplicate
          project names within a single workspace.  The sort_by_groups()
          method is being called prior to the method that checks for
          duplicate projects.

Mon Dec  5 14:17:35 2005  William Otte  <wotte@dre.vanderbilt.edu>

        * config/boost_unit_test_framework.mpb

        Automatic linking is not supported for the unit test
        framework, see http://boost.org/more/getting_started.html#auto-link.

Tue Nov 29 10:11:14 2005  William Otte  <wotte@dre.vanderbilt.edu>

        * config/boost_date_time.mpb:
        * config/boost_filesystem.mpb:
        * config/boost_prg_exec_monitor.mpb:
        * config/boost_regex.mpb:
        * config/boost_signals.mpb:
        * config/boost_test_exec_monitor.mpb:
        * config/boost_thread.mpb:
        * config/boost_unit_test_framework.mpb:

        Corrected a problem with my previous commit that broke boost
        on platforms other than gnuace and windows.  Thanks to Chad
        Elliott and Kitty B. for pointing out the problem and suggesting
        a fix.

Mon Nov 21 15:23:40 2005  William Otte  <wotte@dre.vanderbilt.edu>

        * config/boost_filesystem.mpb:
        * config/boost_regex.mpb:

        Scoped the lit_libs directive inside of a gnuace specific
        block to take advantage of automatic library resolution provided
        by the Windows version of boost.

Mon Nov 21 09:26:35 2005  Chad Elliott  <elliott_c@ociweb.com>

        * README:
        * modules/Creator.pm:
        * modules/ProjectCreator.pm:

          Added a new clause (expand) that can be used to set the expansion
          values of a particular variable.  This lets users define to what
          $(VAR_NAME) gets expanded within an mpc file.  See the README for
          more information.

        * mpc.pl:
        * mwc.pl:
        * modules/DirectoryManager.pm:
        * modules/WorkspaceCreator.pm:
        * templates/make.mpd:
        * templates/makedll.mpt:

          Added better support for OpenVMS.  This mainly entailed dealing
          with the .dir extension on directories and [] within wildcard
          specifications (as the OpenVMS glob() function does not handle
          these).

Wed Nov 16 08:30:51 2005  Chad Elliott  <elliott_c@ociweb.com>

        * modules/Creator.pm:
        * modules/ProjectCreator.pm:

          Fixed a bug where adding or subtracting a value with spaces would
          not work as expected.  When adding, the value would be split at
          each whitespace.  When subtracting, the value would never be
          removed.

          Setting a variable with spaces worked correctly.

Mon Nov 14 12:06:15 2005  Chad Elliott  <elliott_c@ociweb.com>

        * templates/nmake.mpd:

          Corrected a problem in the realclean target where .dll, .lib and
          .exp files would not be deleted unless pdbc or pdbl template
          variables were defined.

Mon Nov 14 09:50:38 2005  Chad Elliott  <elliott_c@ociweb.com>

        * modules/WorkspaceCreator.pm:

          Fixed a bug where a project name that conflicts with a directory
          name would not get mapped in cases where the directory had
          multiple levels.

Mon Nov 14 07:40:19 2005  Chad Elliott  <elliott_c@ociweb.com>

        * modules/WorkspaceCreator.pm:

          Fixed a bug where sorting the projects (with a circular
          dependency) would run infinitely.  This was identical to the
          problem fixed on Thu Apr 15 13:16:03 2004 just in a different
          scenario.

Thu Nov 10 12:23:43 2005  Chad Elliott  <elliott_c@ociweb.com>

        * modules/TemplateParser.pm:

          When checking for duplicate source files in duplicate_index(),
          always use lowercase (since this is currently only used on
          Windows).

Thu Nov 10 09:01:25 2005  Chad Elliott  <elliott_c@ociweb.com>

        * templates/automake.mpd:
        * templates/bmake.mpd:
        * templates/em3.mpd:
        * templates/ghs.mpd:
        * templates/html.mpd:
        * templates/make.mpd:
        * templates/nmake.mpd:
        * templates/sle.mpd:
        * templates/vc6.mpd:
        * templates/vc7.mpd:
        * templates/vc7csharp.mpd:
        * templates/vc7vb.mpd:
        * templates/vc8.mpd:

          Added a template variable, libname_prefix, that can be set to
          prefix all library names (sharedname, staticname and libs).  Note
          that lit_libs and pure_libs are not affected.

Mon Nov  7 10:15:31 2005  Chad Elliott  <elliott_c@ociweb.com>

        * modules/ProjectCreator.pm:

          Fixed a bug where a given custom input file does not match the
          custom defined input extensions and no source files are
          given, the generated source file name would still have the input
          file extension in the name (with an escaped period).

Mon Nov  7 13:59:12 UTC 2005  Johnny Willemsen  <jwillemsen@remedy.nl>

        * config/boost_prg_exec_monitor.mpb:
        * config/boost_test_exec_monitor.mpb:
        * config/boost_unit_test_framework.mpb:
          Added borland

Fri Oct 28 14:58:59 2005  William Otte  <wotte@dre.vanderbilt.edu>

        * config/global.features:
        * config/xerces.mpb:

        Added a xerces feature to the xerces base project, similar to
        boost/zlib/zzip to allow disabling xerces specific projects.

Fri Oct 28 11:43:52 2005  Chad Elliott  <elliott_c@ociweb.com>

        * config/swig_perl.mpb:

          Added $(PERL5_INCLUDE) to the 'libpaths' as well as the 'includes'.

        * templates/vc8.mpd:

          Corrected two instances of subdir_output which only show up if you
          set the template variable 'pdbc'.

Sun Oct 23 08:14:12 UTC 2005  Johnny Willemsen  <jwillemsen@remedy.nl>

        * templates/bmake.mpd:
          Generate also includes for the resource compiler

Wed Oct 19 10:06:50 2005  Chad Elliott  <elliott_c@ociweb.com>

        * config/boost_date_time.mpb:
        * config/boost_filesystem.mpb:
        * config/boost_prg_exec_monitor.mpb:
        * config/boost_regex.mpb:
        * config/boost_signals.mpb:
        * config/boost_test_exec_monitor.mpb:
        * config/boost_thread.mpb:
        * config/boost_unit_test_framework.mpb:

          Added a $(BOOST_STATIC_LIB_PREFIX) to the library name for all
          boost libraries.  For some reason, they insist on prepend 'lib' to
          the name of all static libraries on Windows.  For
          unit_test_framework, prg_exec_monitor and test_exec_monitor, 'lib'
          is always prepended on Windows since these are currently always
          static.  Thanks to Kevin Heifner for pointing this out.

Thu Oct 13 17:24:21 2005  Steve Huston  <shuston@riverace.com>

        * modules/VC8WorkspaceCreator.pm: Add the 3 magic bytes to the start
          of the .sln file that allow double-clicking on the .sln file's icon
          to auto-start Visual Studio.

Mon Oct 10 07:02:30 2005  Chad Elliott  <elliott_c@ociweb.com>

        * modules/TemplateParser.pm:

          Fixed a bug where mixed case template variables within a foreach
          context were not being evaluated case insensitively.  This made it
          appear that these variables were not being set.

        * templates/vc8.mpd:

          Moved an endif to the correct location pertaining to precompiled
          headers.  Too much was being included within an if which depended
          upon the pch_header setting.

          Thanks to Thomas Rothfuss for reporting both of these bugs.

Fri Oct  7 13:50:49 2005  J.T. Conklin  <jtc@acorntoolworks.com>

        * modules/AutomakeWorkspaceCreator.pm:

          Change the way RCS/CVS Id is emitted so it's the same as how it
          is expanded in souces checked out with -kk option.  This allows
          us to regenerate ACE and TAO's Makefile.am files and only see
          the "real" differences.

Fri Oct  7 09:33:41 2005  J.T. Conklin  <jtc@acorntoolworks.com>

        * templates/automake.mpd:

          Add support for custom file dependents.

Thu Oct  6 17:52:41 2005  Steve Huston  <shuston@riverace.com>

        * templates/vc8.mpd:
        * templates/vc8dll.mpt:
        * templates/vc8exe.mpt:
        * templates/vc8lib.mpt:
        * templates/vc8libexe.mpt:
        * templates/vc8platforms.mpt (new file):
          Added support for building Windows CE/Mobile from Visual Studio 2005.
          By default, only the regular desktop Win32 configurations will be
          generated, as before. The CE/mobile platform names can be specified
          using -value_templates platforms="....". The possible platform
          names are listed in vc8platforms.mpt.

          To avoid overwriting outputs when building multiple platforms in
          the same ACE_wrappers directory, a platform can supply an
          output_subdir setting (see vc8platforms.mpt). If specified, vc8.mpd
          will use this in the Intermediate/OutputDirectory entries.

Tue Oct  4 06:35:13 2005  Chad Elliott  <elliott_c@ociweb.com>

        * templates/vc7.mpd:
        * templates/vc8.mpd:

          Improved MIDL support by adding generated files to the generated
          project to ensure that these generated files get cleaned up.

Fri Sep 30 07:46:54 2005  Chad Elliott  <elliott_c@ociweb.com>

        * modules/BMakeWorkspaceCreator.pm:
        * modules/NMakeWorkspaceCreator.pm:

          Corrected the directory changing code to take 2 or more deep
          relative paths into account.  Thanks to Johnny Willemsen
          <jwillemsen@remedy.nl> for reporting this.

        * templates/automake.mpd:

          Optimized this template with respect to checking a variable before
          using foreach.  The foreach already does this, so checking the
          variable before hand is a waste of time.

Mon Sep 26 07:10:17 2005  Chad Elliott  <elliott_c@ociweb.com>

        * README:
        * modules/ProjectCreator.pm:

          Added generic_pre_extension and generic_pre_filename custom build
          settings.

        * templates/vc7.mpd:
        * templates/vc8.mpd:

          Added support for the builtin Visual Studio MIDL.

        * templates/vccommon.mpt:

          Added a comment that this file is not common to Visual C++, just
          vc6.

Thu Sep 22 12:43:43 2005  J.T. Conklin  <jtc@acorntoolworks.com>

        * templates/automake.mpd:

          Changed to output libs, lit_libs, and pure_libs on separate
          lines.

Tue Sep 20 08:47:21 2005  Chad Elliott  <elliott_c@ociweb.com>

        * config/swig_perl.mpb:

          Added an include for $(PERL5_INCLUDE).

        * modules/TemplateInputReader.pm:

          Allow "()." in scope names within .mpt files.

        * modules/WorkspaceCreator.pm:

          Provide the user with more information as to why workspace
          creation failed.

        * templates/makedll.mpt:

          Shared libraries are created on Solaris using the -G option (not
          -shared).

Mon Sep 12 10:47:28 2005  Justin Michel  <michel_j@ociweb.com>

        * clone_build_tree.pl:

          Prevent cloning of .pch files, which are precompiled headers when
          using VC++.

Thu Sep  8 08:06:18 2005  J.T. Conklin  <jtc@acorntoolworks.com>

        * templates/automake.mpd:

          Changed to output compile_flags on separate lines.

          Changed to sort lists of source, header, and inline files
          to make output more deterministic.

Tue Sep  6 10:34:24 2005  Chad Elliott  <elliott_c@ociweb.com>

        * config/swig_perl.mpb:

          Added a base project for using SWIG with perl.

        * templates/automake.mpd:
        * templates/bmake.mpd:
        * templates/em3.mpd:
        * templates/ghs.mpd:
        * templates/make.mpd:
        * templates/nmake.mpd:
        * templates/vc6.mpd:
        * templates/vc7.mpd:
        * templates/vc7csharp.mpd:
        * templates/vc7vb.mpd:
        * templates/vc8.mpd:

          Change the position of the use of custom 'output_option' setting.
          Ensure that the input file is the last thing on the command line.

Mon Aug 29 08:52:15 2005  Chad Elliott  <elliott_c@ociweb.com>

        * templates/vc7.mpd:

          Enabled incremental linking as the default.

        * templates/vc7dll.mpt:
        * templates/vc7exe.mpt:

          Disable incremental linking in release mode as was done in
          Justin's change on Fri Aug 26 13:46:47 2005.

Mon Aug 29 12:41:12 UTC 2005  Johnny Willemsen  <jwillemsen@remedy.nl>

        * templates/nmakedll.mpt:
        * templates/nmakeexe.mpt:
          Added WinX86_64 as platform. This is Windows 64bit on EMT64.

Mon Aug 29 11:48:12 UTC 2005  Johnny Willemsen  <jwillemsen@remedy.nl>

        * templates/nmake.mpd:
          Made it possible to overrule cc, link and rc when generating the
          nmake project files

Fri Aug 26 14:32:48 2005  Justin Michel  <michel_j@ociweb.com>

        * clone_build_tree.pl:

          Updated to prevent cloning of .suo files, which are used to store
          solution settings for VC++ 7+.

Fri Aug 26 13:46:47 2005  Justin Michel  <michel_j@ociweb.com>

        * templates/vc7libexe.mpt:
        * templates/vc8libexe.mpt:

          It is invalid to enable incremental linking on release builds,
          because we also enabled comdat folding and reference optimization.

Mon Aug 22 11:57:03 2005  Chad Elliott  <elliott_c@ociweb.com>

        * templates/vc8.mpd:

          Fixed a bug in the template that caused static projects to have
          incorrect project settings.

Mon Aug 22 07:17:17 2005  Chad Elliott  <elliott_c@ociweb.com>

        * MPC version 3.3.0 released.

Local Variables:
add-log-time-format: current-time-string
indent-tabs-mode: nil
End:
