Thu Jul 20 14:49:21 UTC 2006 Chad Elliott * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * templates/vc7.mpd: Added support for ModuleDefinitionFile Thu Jul 6 14:54:01 UTC 2006 Chad Elliott * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * modules/AutomakeProjectCreator.pm (fill_value): Reverted: Tue May 23 16:49:22 2006 Steve Huston 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 Thanks to J.T. for pointing this out. Fri Jun 9 07:00:13 2006 J.T. Conklin * 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 * 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 * 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 * 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 * 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 * modules/BDSWorkspaceCreator.pm: Generate missing Wed May 3 01:43:46 UTC 2006 Chad Elliott * 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 * 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 * 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 for finding this. Fri Mar 31 13:25:32 UTC 2006 Chad Elliott * 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 * 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 * templates/bds.mpd: If linkflags contains -aa then generate option.aa.enabled as 1. Thu Mar 23 14:51:12 UTC 2006 Chad Elliott * 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 * 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 * templates/bmake.mpd: If linkflags are available, generate them into the project file Thu Mar 16 17:58:37 UTC 2006 Chad Elliott * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 From Russell Mora * templates/nmake.mpd: Add to manifest files, if `.manifest' file exists. Mon Jan 9 08:30:14 2006 Chad Elliott * 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 * 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 * 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 * 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 * 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 * 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 * templates/vc7csharp.mpd: Added a missing <%endif%>. Thu Dec 22 08:30:56 2005 Chad Elliott * 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 * templates/vc8platforms.mpt: Set the TargetMachine when building for EM64T Wed Dec 21 18:55:12 UTC 2005 Johnny Willemsen * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * templates/bmake.mpd: Generate also includes for the resource compiler Wed Oct 19 10:06:50 2005 Chad Elliott * 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 * 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 * 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 * 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 * templates/automake.mpd: Add support for custom file dependents. Thu Oct 6 17:52:41 2005 Steve Huston * 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 * 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 * 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 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 * 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 * templates/automake.mpd: Changed to output libs, lit_libs, and pure_libs on separate lines. Tue Sep 20 08:47:21 2005 Chad Elliott * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * MPC version 3.3.0 released. Local Variables: add-log-time-format: current-time-string indent-tabs-mode: nil End: