diff options
author | elliott_c <ocielliottc@users.noreply.github.com> | 2002-07-09 11:49:01 +0000 |
---|---|---|
committer | elliott_c <ocielliottc@users.noreply.github.com> | 2002-07-09 11:49:01 +0000 |
commit | dff790c7d16c30cda8cb13c38cfe61c7e7e5bcdf (patch) | |
tree | 993a40e0e63c0694f8ea0eac073469a6e53a796d | |
parent | 1e4e7674064d807fc413621621c47f85b06ef07e (diff) | |
download | ATCD-dff790c7d16c30cda8cb13c38cfe61c7e7e5bcdf.tar.gz |
Committing many changes. New project and workspace creators and fixes to
old ones.
46 files changed, 1586 insertions, 370 deletions
diff --git a/bin/MakeProjectCreator/README b/bin/MakeProjectCreator/README index 436cad0be21..cf0caab108b 100644 --- a/bin/MakeProjectCreator/README +++ b/bin/MakeProjectCreator/README @@ -44,6 +44,7 @@ pch_header Specifies the precompiled header file name pch_source Specifies the precompiled source file name ssl Specifies that the project will use ssl tao Specifies that the project will use TAO +version Specifies the version number for the library or executable libpaths Specifies 1 or more locations to find libraries includes Specifies 1 or more locations to find include files @@ -105,6 +106,12 @@ Defaulting Behavior it is assumed to be the precompiled header file (the same applies to pch_source) +8) If -relative is not used to set ACE_ROOT and the ACE_ROOT environment + variable is set + + it will be used to set the relative value for ACE_ROOT. If -relative is + not used to set TAO_ROOT, it will be set from the TAO_ROOT environment + variable. If that is not set, the relative value of ACE_ROOT plus /TAO. Processing Order ---------------- diff --git a/bin/MakeProjectCreator/USAGE b/bin/MakeProjectCreator/USAGE index 3d17ee7f5a5..e66edecf08a 100644 --- a/bin/MakeProjectCreator/USAGE +++ b/bin/MakeProjectCreator/USAGE @@ -12,7 +12,8 @@ projects for each one found. Usage: mwc.pl [-global <file>] [-include <directory>] [-ti <dll | lib | dll_exe | lib_exe>:<file>] [-template <file>] [-dynamic_only] [-static_only] - [-type <gnu | nma | vc6 | vc7>] [files] + [-type <bor | em3 | gnu | nma | va4 | vc6 | vc7>] + [files] -global Specifies the global input file. Values stored within this file are applied to all projects. @@ -72,7 +73,8 @@ project in the directory from which the script was started. Usage: mpc.pl [-global <file>] [-include <directory>] [-ti <dll | lib | dll_exe | lib_exe>:<file>] [-template <file>] [-dynamic_only] [-static_only] - [-type <bor | ghs | gnu | nma | vc6 | vc7>] [files] + [-type <bor | em3 | ghs | gnu | nma | va4 | vc6 | vc7>] + [files] -global Specifies the global input file. Values stored within this file are applied to all projects. diff --git a/bin/MakeProjectCreator/config/aceexe.mpb b/bin/MakeProjectCreator/config/aceexe.mpb index e10cdbca535..d722f20a544 100644 --- a/bin/MakeProjectCreator/config/aceexe.mpb +++ b/bin/MakeProjectCreator/config/aceexe.mpb @@ -1,4 +1,4 @@ -project { +project: aceversion { depends += ace includes += $(ACE_ROOT) libpaths += $(ACE_ROOT)/ace diff --git a/bin/MakeProjectCreator/config/acelib.mpb b/bin/MakeProjectCreator/config/acelib.mpb index e10cdbca535..d722f20a544 100644 --- a/bin/MakeProjectCreator/config/acelib.mpb +++ b/bin/MakeProjectCreator/config/acelib.mpb @@ -1,4 +1,4 @@ -project { +project: aceversion { depends += ace includes += $(ACE_ROOT) libpaths += $(ACE_ROOT)/ace diff --git a/bin/MakeProjectCreator/config/aceversion.mpb b/bin/MakeProjectCreator/config/aceversion.mpb new file mode 100644 index 00000000000..8a5707d3155 --- /dev/null +++ b/bin/MakeProjectCreator/config/aceversion.mpb @@ -0,0 +1,3 @@ +project { + version = 5.2.4 +} diff --git a/bin/MakeProjectCreator/config/orbsvcsexe.mpb b/bin/MakeProjectCreator/config/orbsvcsexe.mpb index a5ff183c87e..afd750ca5a1 100644 --- a/bin/MakeProjectCreator/config/orbsvcsexe.mpb +++ b/bin/MakeProjectCreator/config/orbsvcsexe.mpb @@ -1,4 +1,4 @@ project : taoexe { includes += $(TAO_ROOT)/orbsvcs - libpaths += $(TAO_ROOT)/orbsvcs + libpaths += $(TAO_ROOT)/orbsvcs/orbsvcs } diff --git a/bin/MakeProjectCreator/config/taoexe.mpb b/bin/MakeProjectCreator/config/taoexe.mpb index 479758baba9..412d6d6ff2d 100644 --- a/bin/MakeProjectCreator/config/taoexe.mpb +++ b/bin/MakeProjectCreator/config/taoexe.mpb @@ -1,4 +1,4 @@ -project : aceexe { +project : aceexe, taoversion { depends += tao TAO_IDL_EXE tao = 1 includes += $(TAO_ROOT) $(TAO_ROOT)/tao diff --git a/bin/MakeProjectCreator/config/taolib.mpb b/bin/MakeProjectCreator/config/taolib.mpb index 0b1dc108cc6..51811ffdd52 100644 --- a/bin/MakeProjectCreator/config/taolib.mpb +++ b/bin/MakeProjectCreator/config/taolib.mpb @@ -1,4 +1,4 @@ -project : acelib { +project : acelib, taoversion { depends += tao tao = 1 includes += $(TAO_ROOT) $(TAO_ROOT)/tao diff --git a/bin/MakeProjectCreator/config/taoversion.mpb b/bin/MakeProjectCreator/config/taoversion.mpb new file mode 100644 index 00000000000..dcdb52a1f82 --- /dev/null +++ b/bin/MakeProjectCreator/config/taoversion.mpb @@ -0,0 +1,3 @@ +project { + version = 1.2.4 +} diff --git a/bin/MakeProjectCreator/modules/BorlandProjectCreator.pm b/bin/MakeProjectCreator/modules/BorlandProjectCreator.pm index 2c6d708903d..420203f7972 100644 --- a/bin/MakeProjectCreator/modules/BorlandProjectCreator.pm +++ b/bin/MakeProjectCreator/modules/BorlandProjectCreator.pm @@ -11,6 +11,7 @@ package BorlandProjectCreator; # ************************************************************ use strict; + use ProjectCreator; use vars qw(@ISA); @@ -20,25 +21,32 @@ use vars qw(@ISA); # Subroutine Section # ************************************************************ -sub sort_files { +sub translate_value { my($self) = shift; - return 1; -} - - -sub file_sorter { - my($self) = shift; - my($left) = shift; - my($right) = shift; - return lc($left) cmp lc($right); + my($key) = shift; + my($val) = shift; + + if ($key eq 'depends' && $val ne "") { + my($arr) = $self->create_array($val); + $val = ""; + foreach my $entry (@$arr) { + $val .= "\"" . $self->project_file_name($entry) . "\" "; + } + $val =~ s/\s+$//; + } + return $val; } sub project_file_name { my($self) = shift; - return $self->transform_file_name( - "Makefile" . ($self->project_name() ne "" ? "." : "") . - $self->project_name() . ".bor"); + my($name) = shift; + + if (!defined $name) { + $name = $self->project_name(); + } + + return "Makefile" . ($name eq "" ? "" : ".$name") . ".bor"; } diff --git a/bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm b/bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm new file mode 100644 index 00000000000..e20e08de73e --- /dev/null +++ b/bin/MakeProjectCreator/modules/BorlandWorkspaceCreator.pm @@ -0,0 +1,82 @@ +package BorlandWorkspaceCreator; + +# ************************************************************ +# Description : A Borland Workspace (Makefile.bor) creator +# Author : Chad Elliott +# Create Date : 7/02/2002 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; +use File::Basename; + +use BorlandProjectCreator; +use WorkspaceCreator; + +use vars qw(@ISA); +@ISA = qw(WorkspaceCreator); + +# ************************************************************ +# Subroutine Section +# ************************************************************ + +sub workspace_file_name { + my($self) = shift; + return "Makefile.bor"; +} + + +sub pre_workspace { + my($self) = shift; + my($fh) = shift; + my($crlf) = $self->crlf(); + + print $fh "#----------------------------------------------------------------------------$crlf" . + "# Borland Workspace$crlf" . + "#----------------------------------------------------------------------------$crlf" . + "$crlf"; +} + + +sub write_comps { + my($self) = shift; + my($fh) = shift; + my($projects) = $self->get_projects(); + my($pjs) = $self->get_project_info(); + my(@list) = $self->sort_dependencies($projects, $pjs); + my($crlf) = $self->crlf(); + + print $fh "!include <\$(ACE_ROOT)\include\makeinclude\make_flags.bor>" . + "$crlf$crlf" . + "all:$crlf"; + foreach my $project (@list) { + my($dir) = dirname($project); + my($chdir) = 0; + my($back) = 1; + + ## If the directory isn't "." then we need + ## to figure out how to get back to our starting point + if ($dir ne ".") { + $chdir = 1; + my($length) = length($dir); + for(my $i = 0; $i < $length; $i++) { + if (substr($dir, $i, 1) eq "/") { + $back++; + } + } + } + + ## These commands will work. In practicality, only the + ## default configuration can be built at the top level. + print $fh ($chdir ? "\t\@cd $dir$crlf" : "") . + "\t\$(MAKE) -\$(MAKEFLAGS) \$(MAKE_FLAGS) -f " . basename($project) . $crlf . + ($chdir ? "\t\@cd " . ("../" x $back) . $crlf : ""); + } +} + + + +1; diff --git a/bin/MakeProjectCreator/modules/Creator.pm b/bin/MakeProjectCreator/modules/Creator.pm index 581e96d9598..d2dbbfc5811 100644 --- a/bin/MakeProjectCreator/modules/Creator.pm +++ b/bin/MakeProjectCreator/modules/Creator.pm @@ -30,9 +30,11 @@ sub new { my($inc) = shift; my($template) = shift; my($ti) = shift; + my($relative) = shift; my($type) = shift; my($self) = Parser::new($class); + $self->{'relative'} = $relative; $self->{'template'} = $template; $self->{'ti'} = $ti; $self->{'global_cfg'} = $global; @@ -274,15 +276,41 @@ sub get_ti_override { } -sub crlf { +sub get_relative { my($self) = shift; - return "\n"; + return $self->{'relative'}; +} + + +sub windows_crlf { + my($self) = shift; + if ($^O eq 'MSWin32') { + return "\n"; + } + else { + return "\r\n"; + } +} + + +sub transform_file_name { + my($self) = shift; + my($name) = shift; + + $name =~ s/\s/_/g; + return $name; } # ************************************************************ # Virtual Methods To Be Overridden # ************************************************************ +sub crlf { + my($self) = shift; + return "\n"; +} + + sub reset_values { my($self) = shift; } @@ -290,7 +318,7 @@ sub reset_values { sub sort_files { my($self) = shift; - return 0; + return 1; } diff --git a/bin/MakeProjectCreator/modules/Driver.pm b/bin/MakeProjectCreator/modules/Driver.pm index c5faef73725..23e0c58ccad 100644 --- a/bin/MakeProjectCreator/modules/Driver.pm +++ b/bin/MakeProjectCreator/modules/Driver.pm @@ -23,7 +23,7 @@ sub new { my(@creators) = @_; my($self) = bless {'path' => $path, 'name' => $name, - 'version' => 0.7, + 'version' => 0.8, 'types' => {}, 'creators' => \@creators, }, $class; @@ -45,16 +45,18 @@ sub usageAndExit { "[-ti <dll | lib | dll_exe | lib_exe>:<file>]\n" . (" " x (length($base) + 8)) . "[-template <file>] " . "[-dynamic_only] [-static_only]\n" . + (" " x (length($base) + 8)) . "[-relative NAME=VAR]\n" . (" " x (length($base) + 8)) . "[-type <"; - my($t) = $self->{'types'}; - my(@keys) = sort keys %$t; + + my(@keys) = sort keys %{$self->{'types'}}; for(my $i = 0; $i <= $#keys; $i++) { print STDERR "$keys[$i]"; if ($i != $#keys) { print STDERR " | "; } } - print STDERR ">] [files]\n\n"; + print STDERR ">]\n" . + (" " x (length($base) + 8)) . "[files]\n\n"; print STDERR " -global Specifies the global input file. Values stored\n" . @@ -68,6 +70,9 @@ sub usageAndExit { " -template Specifies the template name (with no extension).\n" . " -dynamic_only Specifies that only dynamic projects will be generated.\n" . " -static_only Specifies that only static projects will be generated.\n" . +" -relative Any \$() variable in an mpc that is matched to NAME\n" . +" is replaced by VAR only if VAR can be made into a\n" . +" relative path based on the current working directory.\n" . " -type Specifies the type of project file to generate. This\n" . " option can be used multiple times to generate multiple\n" . " types.\n"; @@ -79,11 +84,12 @@ sub usageAndExit { sub completion_command { my($self) = shift; my($str) = "complete $self->{'name'} " . - "'c/-/(global include type template ti)/' " . + "'c/-/(global include type template relative " . + "ti dynamic_only static_only)/' " . "'c/dll:/f/' 'c/dll_exe:/f/' 'c/lib_exe:/f/' 'c/lib:/f/' " . "'n/-ti/(dll lib dll_exe lib_exe)/:' 'n/-type/("; - my($t) = $self->{'types'}; - my(@keys) = sort keys %$t; + + my(@keys) = sort keys %{$self->{'types'}}; for(my $i = 0; $i <= $#keys; $i++) { $str .= $keys[$i]; if ($i != $#keys) { @@ -109,6 +115,7 @@ sub run { my($dynamic) = 1; my($static) = 1; my($signif) = 3; + my(%relative) = (); ## Dynamically load in each perl module and set up ## the type tags and project creators @@ -165,6 +172,25 @@ sub run { $self->usageAndExit("-template requires a file name argument"); } } + elsif ($arg eq '-relative') { + $i++; + my($rel) = $args[$i]; + if (!defined $rel) { + $self->usageAndExit("-relative requires a variable assignment argument"); + } + else { + if ($rel =~ /(\w+)\s*=\s*(.*)/) { + my($name) = $1; + my($val) = $2; + $val =~ s/^\s+//; + $val =~ s/\s+$//; + $relative{$name} = $val; + } + else { + $self->usageAndExit("Invalid option to -relative"); + } + } + } elsif ($arg eq '-ti') { $i++; my($tmpi) = $args[$i]; @@ -212,12 +238,23 @@ sub run { push(@include, $self->{'path'} . "/config"); push(@include, $self->{'path'} . "/templates"); } + if (!defined $relative{'ACE_ROOT'} && defined $ENV{ACE_ROOT}) { + $relative{'ACE_ROOT'} = $ENV{ACE_ROOT}; + } + if (!defined $relative{'TAO_ROOT'}) { + if (defined $ENV{TAO_ROOT}) { + $relative{'TAO_ROOT'} = $ENV{TAO_ROOT}; + } + else { + $relative{'TAO_ROOT'} = "$relative{TAO_ROOT}/TAO"; + } + } ## Generate the files foreach my $file (@input) { foreach my $name (@generators) { my($generator) = $name->new($global, \@include, $template, - \%ti, $dynamic, $static); + \%ti, $dynamic, $static, \%relative); print "Generating output using " . ($file eq "" ? "default input" : $file) . "\n"; print "Start Time: " . scalar(localtime(time())) . "\n"; diff --git a/bin/MakeProjectCreator/modules/EM3ProjectCreator.pm b/bin/MakeProjectCreator/modules/EM3ProjectCreator.pm new file mode 100644 index 00000000000..8a3806f49d0 --- /dev/null +++ b/bin/MakeProjectCreator/modules/EM3ProjectCreator.pm @@ -0,0 +1,79 @@ +package EM3ProjectCreator; + +# ************************************************************ +# Description : An eMbedded Visual C++ 3.00 Project Creator +# Author : Chad Elliott +# Create Date : 7/3/2002 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; + +use VC6ProjectCreator; + +use vars qw(@ISA); +@ISA = qw(VC6ProjectCreator); + +# ************************************************************ +# Subroutine Section +# ************************************************************ + +sub fill_value { + my($self) = shift; + my($name) = shift; + my($value) = undef; + + if ($name eq "make_file_name") { + $value = $self->base_project_name() . ".vcn"; + } + + return $value; +} + + +sub project_file_name { + my($self) = shift; + return $self->project_name() . ".vcp"; +} + + +sub static_project_file_name { + my($self) = shift; + return $self->project_name() . $self->get_static_append() . ".vcp"; +} + + +sub get_dll_exe_template_input_file { + my($self) = shift; + return "em3vcpdllexe"; +} + + +sub get_lib_exe_template_input_file { + my($self) = shift; + return "em3vcplibexe"; +} + + +sub get_lib_template_input_file { + my($self) = shift; + return "em3vcplib"; +} + + +sub get_dll_template_input_file { + my($self) = shift; + return "em3vcpdll"; +} + + +sub get_template { + my($self) = shift; + return "em3vcp"; +} + + +1; diff --git a/bin/MakeProjectCreator/modules/EM3WorkspaceCreator.pm b/bin/MakeProjectCreator/modules/EM3WorkspaceCreator.pm new file mode 100644 index 00000000000..56fdb137a35 --- /dev/null +++ b/bin/MakeProjectCreator/modules/EM3WorkspaceCreator.pm @@ -0,0 +1,43 @@ +package EM3WorkspaceCreator; + +# ************************************************************ +# Description : An eMbedded v3 Workspace Creator +# Author : Chad Elliott +# Create Date : 7/3/2002 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; + +use EM3ProjectCreator; +use VC6WorkspaceCreator; + +use vars qw(@ISA); +@ISA = qw(VC6WorkspaceCreator); + +# ************************************************************ +# Subroutine Section +# ************************************************************ + + +sub workspace_file_name { + my($self) = shift; + return $self->get_workspace_name() . ".vcw"; +} + + +sub pre_workspace { + my($self) = shift; + my($fh) = shift; + my($crlf) = $self->crlf(); + + print $fh "Microsoft eMbedded Visual Tools Workspace File, Format Version 3.00$crlf" . + "# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!$crlf" . + "$crlf"; +} + + +1; diff --git a/bin/MakeProjectCreator/modules/GHSProjectCreator.pm b/bin/MakeProjectCreator/modules/GHSProjectCreator.pm index ac6047232e8..c370bfbda73 100644 --- a/bin/MakeProjectCreator/modules/GHSProjectCreator.pm +++ b/bin/MakeProjectCreator/modules/GHSProjectCreator.pm @@ -11,6 +11,7 @@ package GHSProjectCreator; # ************************************************************ use strict; + use ProjectCreator; use vars qw(@ISA); @@ -20,10 +21,40 @@ use vars qw(@ISA); # Subroutine Section # ************************************************************ +sub translate_value { + my($self) = shift; + my($key) = shift; + my($val) = shift; + + if ($key eq 'depends' && $val ne "") { + my($arr) = $self->create_array($val); + $val = ""; + foreach my $entry (@$arr) { + $val .= "\"" . $self->project_file_name($entry) . "\" "; + } + $val =~ s/\s+$//; + } + return $val; +} + + +sub file_sorter { + my($self) = shift; + my($left) = shift; + my($right) = shift; + return lc($left) cmp lc($right); +} + + sub project_file_name { my($self) = shift; - return $self->transform_file_name("ghs/" . - $self->project_name() . ".bld"); + my($name) = shift; + + if (!defined $name) { + $name = $self->project_name(); + } + + return "ghs/$name.bld"; } diff --git a/bin/MakeProjectCreator/modules/GHSWorkspaceCreator.pm b/bin/MakeProjectCreator/modules/GHSWorkspaceCreator.pm new file mode 100644 index 00000000000..3ff4ae8dfdb --- /dev/null +++ b/bin/MakeProjectCreator/modules/GHSWorkspaceCreator.pm @@ -0,0 +1,76 @@ +package GHSWorkspaceCreator; + +# ************************************************************ +# Description : An incomplete GHS Workspace creator +# Author : Chad Elliott +# Create Date : 7/3/2002 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; +use File::Basename; + +use GHSProjectCreator; +use WorkspaceCreator; + +use vars qw(@ISA); +@ISA = qw(WorkspaceCreator); + +# ************************************************************ +# Subroutine Section +# ************************************************************ + +sub workspace_file_name { + my($self) = shift; + return "ghs/default.bld"; +} + + +sub pre_workspace { + my($self) = shift; + my($fh) = shift; + my($crlf) = $self->crlf(); + + print $fh "#!build$crlf" . + "default:$crlf"; +} + + +sub write_comps { + my($self) = shift; + my($fh) = shift; + my($gen) = shift; + my($projects) = $self->get_projects(); + my($pjs) = $self->get_project_info(); + my(@list) = $self->sort_dependencies($projects, $pjs); + my($crlf) = $self->crlf(); + + ## Print out the projet + print $fh "\tnobuild$crlf" . + "\t:cx_option=noexceptions$crlf" . + "\t:cx_option=std_namespaces$crlf" . + "\t:cx_template_option=noautomatic$crlf" . + "\t:language=cxx$crlf" . + "\t:cx_mode=ansi$crlf" . + "\t:cx_lib=scnoe$crlf"; + + foreach my $project (@list) { + ## Convert all /'s to \ + $project =~ s/\//\\/g; + + print $fh "..\\$project$crlf"; + if ($gen->exe_target()) { + print $fh "\tprogram$crlf"; + } + else { + print $fh "\tlibrary$crlf"; + } + } +} + + + +1; diff --git a/bin/MakeProjectCreator/modules/GNUProjectCreator.pm b/bin/MakeProjectCreator/modules/GNUProjectCreator.pm index ad8cac45ec9..63fdcac01c8 100644 --- a/bin/MakeProjectCreator/modules/GNUProjectCreator.pm +++ b/bin/MakeProjectCreator/modules/GNUProjectCreator.pm @@ -22,6 +22,12 @@ use vars qw(@ISA); # Subroutine Section # ************************************************************ +sub sort_files { + my($self) = shift; + return 0; +} + + sub translate_value { my($self) = shift; my($key) = shift; @@ -29,7 +35,6 @@ sub translate_value { if ($key eq 'depends' && $val ne "") { my($arr) = $self->create_array($val); - my($app) = ""; $val = ""; foreach my $entry (@$arr) { $val .= "\"" . $self->project_file_name($entry) . "\" "; @@ -129,8 +134,7 @@ sub project_file_name { $name = $self->project_name(); } - return $self->transform_file_name( - "Makefile" . ($name ne "" ? "." : "") . $name); + return "Makefile" . ($name eq "" ? "" : ".$name"); } diff --git a/bin/MakeProjectCreator/modules/GNUWorkspaceCreator.pm b/bin/MakeProjectCreator/modules/GNUWorkspaceCreator.pm index ca91b315eb2..505819a649f 100644 --- a/bin/MakeProjectCreator/modules/GNUWorkspaceCreator.pm +++ b/bin/MakeProjectCreator/modules/GNUWorkspaceCreator.pm @@ -67,15 +67,4 @@ sub write_comps { -sub project_creator { - my($self) = shift; - return new GNUProjectCreator($self->get_global_cfg(), - $self->get_include_path(), - $self->get_template_override(), - $self->get_ti_override(), - $self->get_dynamic(), - $self->get_static()); -} - - 1; diff --git a/bin/MakeProjectCreator/modules/NMakeProjectCreator.pm b/bin/MakeProjectCreator/modules/NMakeProjectCreator.pm index f1eaa4935bd..724d0fec9ff 100644 --- a/bin/MakeProjectCreator/modules/NMakeProjectCreator.pm +++ b/bin/MakeProjectCreator/modules/NMakeProjectCreator.pm @@ -28,7 +28,6 @@ sub translate_value { if ($key eq 'depends' && $val ne "") { my($arr) = $self->create_array($val); - my($app) = ""; $val = ""; foreach my $entry (@$arr) { $val .= "\"" . $self->project_file_name($entry) . "\" "; @@ -39,12 +38,6 @@ sub translate_value { } -sub sort_files { - my($self) = shift; - return 1; -} - - sub file_sorter { my($self) = shift; my($left) = shift; @@ -55,12 +48,7 @@ sub file_sorter { sub crlf { my($self) = shift; - if ($^O eq 'MSWin32') { - return "\n"; - } - else { - return "\r\n"; - } + return $self->windows_crlf(); } @@ -72,7 +60,7 @@ sub project_file_name { $name = $self->project_name(); } - return $self->transform_file_name("$name.mak"); + return "$name.mak"; } diff --git a/bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm b/bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm index 5fe12db7915..fc0e4fb59b5 100644 --- a/bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm +++ b/bin/MakeProjectCreator/modules/NMakeWorkspaceCreator.pm @@ -26,12 +26,7 @@ use vars qw(@ISA); sub crlf { my($self) = shift; - if ($^O eq 'MSWin32') { - return "\n"; - } - else { - return "\r\n"; - } + return $self->windows_crlf(); } @@ -80,21 +75,10 @@ sub write_comps { ## default configuration can be built at the top level. print $fh ($chdir ? "\tcd $dir$crlf" : "") . "\t\$(MAKE) /f " . basename($project) . " CFG=\"\$(CFG)\"$crlf" . - ($chdir ? "\tcd " . ("../" x $back) : ""); + ($chdir ? "\tcd " . ("../" x $back) . $crlf : ""); } } -sub project_creator { - my($self) = shift; - return new NMakeProjectCreator($self->get_global_cfg(), - $self->get_include_path(), - $self->get_template_override(), - $self->get_ti_override(), - $self->get_dynamic(), - $self->get_static()); -} - - 1; diff --git a/bin/MakeProjectCreator/modules/ProjectCreator.pm b/bin/MakeProjectCreator/modules/ProjectCreator.pm index 76ec7e3ebc9..b12217aea06 100644 --- a/bin/MakeProjectCreator/modules/ProjectCreator.pm +++ b/bin/MakeProjectCreator/modules/ProjectCreator.pm @@ -51,6 +51,7 @@ my(%validNames) = ('exename' => 1, 'libout' => 1, 'dllflags' => 1, 'libflags' => 1, + 'version' => 1, ); ## Deal with these components in a special way @@ -68,11 +69,11 @@ sub new { my($ti) = shift; my($dynamic) = shift; my($static) = shift; + my($relative) = shift; my($self) = Creator::new($class, $global, $inc, - $template, $ti, 'project'); - my($typecheck) = $self->{'type_check'}; + $template, $ti, $relative, 'project'); - $self->{$typecheck} = 0; + $self->{$self->{'type_check'}} = 0; $self->{'global_assign'} = {}; $self->{'files_written'} = []; $self->{'project_info'} = []; @@ -113,16 +114,15 @@ sub new { sub read_global_configuration { - my($self) = shift; - my($input) = $self->get_global_cfg(); - my($status) = 0; - my($errorString) = ""; + my($self) = shift; + my($input) = $self->get_global_cfg(); + my($status) = 1; - $self->{'reading_global'} = 1; if (defined $input) { + $self->{'reading_global'} = 1; $status = $self->parse_file($input); + $self->{'reading_global'} = 0; } - $self->{'reading_global'} = 0; return $status; } @@ -556,7 +556,6 @@ sub generate_default_target_names { sub generate_default_pch_filenames { my($self) = shift; - my($base) = shift; my($files) = shift; my($vc) = $self->{'valid_components'}; my($gc) = $$vc{'header_files'}; @@ -638,6 +637,7 @@ sub sift_files { foreach my $file (@$files) { foreach my $ext (@$exts) { + ## Always exclude the precompiled header and cpp if ($file =~ /$ext$/ && (!defined $pchh || $file ne $pchh) && (!defined $pchc || $file ne $pchc)) { my($exclude) = 0; @@ -651,7 +651,9 @@ sub sift_files { } } elsif ($tag eq 'resource_files') { - ## Save these files for later + ## Save these files for later. There may + ## be more than one and we want to try and + ## find the one that corresponds to this project $exclude = 1; push(@saved, $file); } @@ -789,7 +791,7 @@ sub generate_default_idl_generated { if ($self->{'idl_defaulted'}) { ## After all source and headers have been defaulted, see if we - ## need to add the idl generated .h, .inl and .cpp files + ## need to add the idl generated .h, .i and .cpp files if (defined $self->{'idl_files'}) { ## Build up the list of idl files my(@idl) = (); @@ -819,20 +821,23 @@ sub generate_default_idl_generated { sub add_source_corresponding_component_files { my($self) = shift; my($tag) = shift; - my($names) = $self->{'source_files'}; +# my($names) = $self->{'source_files'}; my(@all) = (); my($vc) = $self->{'valid_components'}; - foreach my $name (keys %$names) { - my($comps) = $$names{$name}; - foreach my $comp (keys %$comps) { - push(@all, @{$$comps{$comp}}); + foreach my $filetag ('source_files', 'template_files') { + my($names) = $self->{$filetag}; + foreach my $name (keys %$names) { + my($comps) = $$names{$name}; + foreach my $comp (keys %$comps) { + push(@all, @{$$comps{$comp}}); + } } } ## for each cpp file, we add a corresponding header or inline file ## if it exists and is not already in the list of headers - $names = $self->{$tag}; + my($names) = $self->{$tag}; foreach my $name (keys %$names) { my($comps) = $$names{$name}; foreach my $comp (keys %$comps) { @@ -860,7 +865,7 @@ sub add_source_corresponding_component_files { my($ext) = $e; $ext =~ s/\\//g; - ## If the file is readable or + ## If the file is readable if (-r "$c$ext") { push(@$array, "$c$ext"); $added = 1; @@ -900,7 +905,7 @@ sub generate_defaults { $self->generate_default_target_names($base); my(@files) = $self->generate_default_file_list(); - $self->generate_default_pch_filenames($base, \@files); + $self->generate_default_pch_filenames(\@files); ## Generate default components, but @specialComponents ## are skipped in the initial default components generation @@ -1049,7 +1054,7 @@ sub write_project { my($self) = shift; my($status) = 1; my($error) = ""; - my($name) = $self->project_file_name(); + my($name) = $self->transform_file_name($self->project_file_name()); my($prjname) = $self->get_assignment('project_name'); ## Writing the non-static file so set it to 0 @@ -1064,7 +1069,7 @@ sub write_project { $self->separate_static_project()) { ## Set the project name back to what it originally was $self->process_assignment('project_name', $prjname); - $name = $self->static_project_file_name(); + $name = $self->transform_file_name($self->static_project_file_name()); ## Writing the static file so set it to 1 $self->{'writing_type'} = 1; @@ -1148,15 +1153,6 @@ sub get_template_input { } -sub transform_file_name { - my($self) = shift; - my($name) = shift; - - $name =~ s/\s/_/g; - return $name; -} - - sub update_project_info { my($self) = shift; my($tparser) = shift; diff --git a/bin/MakeProjectCreator/modules/TemplateInputReader.pm b/bin/MakeProjectCreator/modules/TemplateInputReader.pm index 1382cf36aee..09ee7621f93 100644 --- a/bin/MakeProjectCreator/modules/TemplateInputReader.pm +++ b/bin/MakeProjectCreator/modules/TemplateInputReader.pm @@ -27,9 +27,7 @@ sub new { $self->{'values'} = {}; $self->{'cindex'} = 0; - my(@current) = ($self->{'values'}); - $self->{'current'} = \@current; - + $self->{'current'} = [ $self->{'values'} ]; return $self; } @@ -93,12 +91,6 @@ sub parse_line { } -sub get_names { - my($self) = shift; - return keys %{$self->{'values'}}; -} - - sub get_value { my($self) = shift; my($tag) = shift; diff --git a/bin/MakeProjectCreator/modules/TemplateParser.pm b/bin/MakeProjectCreator/modules/TemplateParser.pm index 02719ac71c2..e16ceae33a0 100644 --- a/bin/MakeProjectCreator/modules/TemplateParser.pm +++ b/bin/MakeProjectCreator/modules/TemplateParser.pm @@ -11,6 +11,7 @@ package TemplateParser; # ************************************************************ use strict; +use Cwd; use Parser; @@ -65,6 +66,8 @@ sub basename { for(my $i = length($file) - 1; $i >= 0; $i--) { my($ch) = substr($file, $i, 1); if ($ch eq '/' || $ch eq '\\') { + ## The template file may use this value (<%basename_found%>) + ## to determine whether a basename removed the directory or not $self->{'values'}->{'basename_found'} = 1; return substr($file, $i + 1); } @@ -80,6 +83,8 @@ sub dirname { for(my $i = length($file) - 1; $i != 0; $i--) { my($ch) = substr($file, $i, 1); if ($ch eq '/' || $ch eq '\\') { + ## The template file may use this value (<%dirname_found%>) + ## to determine whether a dirname removed the basename or not $self->{'values'}->{'dirname_found'} = 1; return substr($file, 0, $i); } @@ -116,6 +121,9 @@ sub is_keyword { } +## Append the current value to the line that is being +## built. This line may be a foreach line or a general +## line without a foreach. sub append_current { my($self) = shift; my($value) = shift; @@ -149,6 +157,55 @@ sub set_current_values { } +sub relative { + my($self) = shift; + my($value) = shift; + my($rel) = $self->{'prjc'}->get_relative(); + my(@keys) = keys %$rel; + + if (defined $value && defined $keys[0] && $value =~ /\$/) { + if (UNIVERSAL::isa($value, 'ARRAY')) { + my(@built) = (); + foreach my $val (@$value) { + push(@built, $self->relative($val)); + } + $value = \@built; + } + else { + my($cwd) = getcwd(); + my($start) = 0; + while(substr($value, $start) =~ /(\$\(([^)]+)\))/) { + my($whole) = $1; + my($name) = $2; + my($val) = $$rel{$name}; + if (defined $val) { + $val =~ s/\\/\//g; + if (index($cwd, $val) == 0) { + my($count) = 0; + substr($cwd, 0, length($val)) = ""; + while($cwd =~ /^\\/) { + $cwd =~ s/^\///; + } + my($length) = length($cwd); + for(my $i = 0; $i < $length; $i++) { + if (substr($cwd, $i, 1) eq '/') { + $count++; + } + } + $val = "../" x $count; + $val =~ s/\/$//; + $value =~ s/\$\([^)]+\)/$val/; + } + } + $start += length($whole); + } + } + } + + return $value; +} + + sub get_value { my($self) = shift; my($name) = shift; @@ -193,7 +250,7 @@ sub get_value { } } - return $value; + return $self->relative($value); } @@ -221,6 +278,7 @@ sub get_value_with_default { else { # print "DEBUG: WARNING: $name using default value of $value\n"; } + $value = $self->relative($value); } return $value; @@ -365,7 +423,6 @@ sub handle_if { sub handle_else { my($self) = shift; - my($val) = shift; my($sstack) = $self->{'sstack'}; my(@scopy) = @$sstack; my($name) = "endif"; @@ -407,6 +464,9 @@ sub handle_special { my($name) = shift; my($val) = shift; + ## If $name (fornotlast, forfirst, etc.) is set to 1 + ## Then we append the $val onto the current string that's + ## being built. if ($self->get_value($name)) { $self->append_current($val); } @@ -459,6 +519,9 @@ sub handle_basenoextension { } +## Given a line that starts with an identifier, we split +## then name from the possible value stored inside ()'s and +## we stop looking at the line when we find the %> ending sub split_name_value { my($self) = shift; my($line) = shift; @@ -595,8 +658,8 @@ sub collect_data { ## VC7 Projects need to know the GUID. ## We need to save this value in our know values - ## since each guid will be different. We need this to - ## correspond to the same guid used in the workspace. + ## since each guid generated will be different. We need + ## this to correspond to the same guid used in the workspace. my($guid) = $prjc->update_project_info($self, 1, ['guid']); $self->{'values'}->{'guid'} = $guid; } @@ -607,6 +670,7 @@ sub is_only_keyword { my($line) = shift; my($status) = 0; + ## Does the line contain only a keyword? if ($line =~ /^<%(.*)%>$/) { my($part) = $1; if ($part !~ /%>/) { @@ -630,7 +694,6 @@ sub parse_line { my($errorString) = ""; my($length) = length($line); my($name) = 0; - my($skipempty) = $self->{'if_skip'}; my($crlf) = $self->{'prjc'}->crlf(); my($clen) = length($crlf); my($startempty) = ($line eq "" ? 1 : 0); diff --git a/bin/MakeProjectCreator/modules/VA4ProjectCreator.pm b/bin/MakeProjectCreator/modules/VA4ProjectCreator.pm new file mode 100644 index 00000000000..dd2a99640ca --- /dev/null +++ b/bin/MakeProjectCreator/modules/VA4ProjectCreator.pm @@ -0,0 +1,129 @@ +package VA4ProjectCreator; + +# ************************************************************ +# Description : A VA4 Project Creator +# Author : Chad Elliott +# Create Date : 7/8/2002 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; + +use ProjectCreator; + +use vars qw(@ISA); +@ISA = qw(ProjectCreator); + +# ************************************************************ +# Data Section +# ************************************************************ + +my($sname) = "_Static"; + +# ************************************************************ +# Subroutine Section +# ************************************************************ + +sub translate_value { + my($self) = shift; + my($key) = shift; + my($val) = shift; + + if ($key eq 'depends' && $val ne "") { + my($wt) = $self->get_writing_type(); + my($arr) = $self->create_array($val); + $val = ""; + foreach my $entry (@$arr) { + $val .= "\"" . ($wt == 1 ? $self->static_project_file_name($entry) : + $self->project_file_name($entry)) . "\" "; + } + $val =~ s/\s+$//; + } + return $val; +} + + +sub convert_slashes { + my($self) = shift; + return 0; +} + + +sub file_sorter { + my($self) = shift; + my($left) = shift; + my($right) = shift; + return lc($left) cmp lc($right); +} + + +sub crlf { + my($self) = shift; + return $self->windows_crlf(); +} + + +sub separate_static_project { + my($self) = shift; + return 1; +} + + +sub project_file_name { + my($self) = shift; + my($name) = shift; + + if (!defined $name) { + $name = $self->project_name(); + } + + return "$name.icc"; +} + + +sub static_project_file_name { + my($self) = shift; + my($name) = shift; + + if (!defined $name) { + $name = $self->project_name(); + } + + return "$name$sname.icc"; +} + + +sub get_dll_exe_template_input_file { + my($self) = shift; + return "va4iccdllexe"; +} + + +sub get_lib_exe_template_input_file { + my($self) = shift; + return "va4icclibexe"; +} + + +sub get_lib_template_input_file { + my($self) = shift; + return "va4icclib"; +} + + +sub get_dll_template_input_file { + my($self) = shift; + return "va4iccdll"; +} + + +sub get_template { + my($self) = shift; + return "va4icc"; +} + + +1; diff --git a/bin/MakeProjectCreator/modules/VA4WorkspaceCreator.pm b/bin/MakeProjectCreator/modules/VA4WorkspaceCreator.pm new file mode 100644 index 00000000000..f1eebf02842 --- /dev/null +++ b/bin/MakeProjectCreator/modules/VA4WorkspaceCreator.pm @@ -0,0 +1,76 @@ +package VA4WorkspaceCreator; + +# ************************************************************ +# Description : A VA4 Workspace Creator +# Author : Chad Elliott +# Create Date : 5/13/2002 +# ************************************************************ + +# ************************************************************ +# Pragmas +# ************************************************************ + +use strict; + +use VA4ProjectCreator; +use WorkspaceCreator; + +use vars qw(@ISA); +@ISA = qw(WorkspaceCreator); + +# ************************************************************ +# Subroutine Section +# ************************************************************ + + +sub crlf { + my($self) = shift; + return $self->windows_crlf(); +} + + +sub workspace_file_name { + my($self) = shift; + return $self->get_workspace_name() . ".icp"; +} + + +sub pre_workspace { + my($self) = shift; + my($fh) = shift; + my($crlf) = $self->crlf(); + + print $fh "// Visual Age C++ 4 workspace file$crlf$crlf"; +} + + +sub write_comps { + my($self) = shift; + my($fh) = shift; + my($projects) = $self->get_projects(); + my($pjs) = $self->get_project_info(); + my(@list) = $self->sort_dependencies($projects, $pjs); + my($crlf) = $self->crlf(); + + foreach my $project (@list) { + my($base) = $project; + $base =~ s/\.[^\.]+//; + my($ics) = "$base.ics"; + + print $fh "subproject $base icc \"$project\", ics \"$ics\"$crlf" . + "{$crlf" . + "}$crlf"; + } + + print $fh "build buildAll$crlf" . + "{$crlf"; + foreach my $project (@list) { + my($base) = $project; + $base =~ s/\.[^\.]+//; + print $fh " use $base$crlf"; + } + print $fh "}$crlf$crlf"; +} + + +1; diff --git a/bin/MakeProjectCreator/modules/VC6ProjectCreator.pm b/bin/MakeProjectCreator/modules/VC6ProjectCreator.pm index 069f0eb9d1c..17093fa3cab 100644 --- a/bin/MakeProjectCreator/modules/VC6ProjectCreator.pm +++ b/bin/MakeProjectCreator/modules/VC6ProjectCreator.pm @@ -25,11 +25,41 @@ my($dynamiclib) = "DLL"; my($staticlib) = "LIB"; my($dynamicexe) = "EXE"; my($staticexe) = "Static EXE"; +my($sname) = "_Static"; # ************************************************************ # Subroutine Section # ************************************************************ +sub remove_type_append { + my($self) = shift; + my($str) = shift; + + foreach my $type ($staticexe, $dynamicexe, $staticlib, $dynamiclib) { + if ($str =~ /(.*)\s+$type$/) { + $str = $1; + last; + } + } + + return $str; +} + + +sub base_project_name { + my($self) = shift; + return $self->transform_file_name( + $self->remove_type_append($self->project_name()) . + ($self->get_writing_type() == 1 ? $sname : "")); +} + + +sub get_static_append { + my($self) = shift; + return $sname; +} + + sub get_type_append { my($self) = shift; my($type) = ""; @@ -93,12 +123,6 @@ sub translate_value { } -sub sort_files { - my($self) = shift; - return 1; -} - - sub file_sorter { my($self) = shift; my($left) = shift; @@ -109,12 +133,7 @@ sub file_sorter { sub crlf { my($self) = shift; - if ($^O eq 'MSWin32') { - return "\n"; - } - else { - return "\r\n"; - } + return $self->windows_crlf(); } @@ -124,7 +143,7 @@ sub fill_value { my($value) = undef; if ($name eq "make_file_name") { - $value = $self->transform_file_name($self->project_name() . ".mak"); + $value = $self->base_project_name() . ".mak"; } return $value; @@ -139,13 +158,13 @@ sub separate_static_project { sub project_file_name { my($self) = shift; - return $self->transform_file_name($self->project_name() . ".dsp"); + return $self->project_name() . ".dsp"; } sub static_project_file_name { my($self) = shift; - return $self->transform_file_name($self->project_name() . "_Static.dsp"); + return $self->project_name() . "$sname.dsp"; } diff --git a/bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm b/bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm index 72e0ea8c253..b69ee0280d2 100644 --- a/bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm +++ b/bin/MakeProjectCreator/modules/VC6WorkspaceCreator.pm @@ -25,12 +25,7 @@ use vars qw(@ISA); sub crlf { my($self) = shift; - if ($^O eq 'MSWin32') { - return "\n"; - } - else { - return "\r\n"; - } + return $self->windows_crlf(); } @@ -116,15 +111,4 @@ sub post_workspace { } -sub project_creator { - my($self) = shift; - return new VC6ProjectCreator($self->get_global_cfg(), - $self->get_include_path(), - $self->get_template_override(), - $self->get_ti_override(), - $self->get_dynamic(), - $self->get_static()); -} - - 1; diff --git a/bin/MakeProjectCreator/modules/VC7ProjectCreator.pm b/bin/MakeProjectCreator/modules/VC7ProjectCreator.pm index 4fe9830933c..c2307044ae2 100644 --- a/bin/MakeProjectCreator/modules/VC7ProjectCreator.pm +++ b/bin/MakeProjectCreator/modules/VC7ProjectCreator.pm @@ -29,7 +29,6 @@ sub translate_value { if ($key eq 'depends' && $val ne "") { my($arr) = $self->create_array($val); - my($app) = ""; $val = ""; foreach my $entry (@$arr) { $val .= "\"" . $self->project_file_name($entry) . "\" "; @@ -68,28 +67,9 @@ sub save_project_value { } -sub sort_files { - my($self) = shift; - return 1; -} - - -sub file_sorter { - my($self) = shift; - my($left) = shift; - my($right) = shift; - return lc($left) cmp lc($right); -} - - sub crlf { my($self) = shift; - if ($^O eq 'MSWin32') { - return "\n"; - } - else { - return "\r\n"; - } + return $self->windows_crlf(); } @@ -114,7 +94,7 @@ sub project_file_name { $name = $self->project_name(); } - return $self->transform_file_name("$name.vcproj"); + return "$name.vcproj"; } diff --git a/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm b/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm index 9ece2156f1f..db5be6cacbe 100644 --- a/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm +++ b/bin/MakeProjectCreator/modules/VC7WorkspaceCreator.pm @@ -25,12 +25,7 @@ use vars qw(@ISA); sub crlf { my($self) = shift; - if ($^O eq 'MSWin32') { - return "\n"; - } - else { - return "\r\n"; - } + return $self->windows_crlf(); } @@ -136,15 +131,4 @@ sub write_comps { } -sub project_creator { - my($self) = shift; - return new VC7ProjectCreator($self->get_global_cfg(), - $self->get_include_path(), - $self->get_template_override(), - $self->get_ti_override(), - $self->get_dynamic(), - $self->get_static()); -} - - 1; diff --git a/bin/MakeProjectCreator/modules/WorkspaceCreator.pm b/bin/MakeProjectCreator/modules/WorkspaceCreator.pm index c7c30a2afb3..227703f45b9 100644 --- a/bin/MakeProjectCreator/modules/WorkspaceCreator.pm +++ b/bin/MakeProjectCreator/modules/WorkspaceCreator.pm @@ -37,8 +37,9 @@ sub new { my($ti) = shift; my($dynamic) = shift; my($static) = shift; + my($relative) = shift; my($self) = Creator::new($class, $global, $inc, - $template, $ti, 'workspace'); + $template, $ti, $relative, 'workspace'); my($typecheck) = $self->{'type_check'}; $self->{'workspace_name'} = undef; @@ -220,7 +221,7 @@ sub write_workspace { my($status, $generator) = $self->generate_project_files(); if ($status) { my($fh) = new FileHandle(); - my($name) = $self->workspace_file_name(); + my($name) = $self->transform_file_name($self->workspace_file_name()); my($dir) = dirname($name); if ($dir ne ".") { @@ -257,7 +258,6 @@ sub generate_project_files { foreach my $file (@{$self->{'project_files'}}) { my($dir) = dirname($file); my($gen) = []; - my($sgen) = []; ## We must change to the subdirectory for ## which this project file is intended @@ -341,7 +341,9 @@ sub sort_dependencies { my($darr) = $self->create_array($deps); my($moved) = 0; foreach my $dep (@$darr) { - my($full) = (defined $prepend{$dep} ? "$prepend{$dep}/" : "") . $dep; + my($base) = basename($dep); + my($full) = (defined $prepend{$base} ? + "$prepend{$base}/" : "") . $base; if ($project ne $full) { ## See if the dependency is listed after this project for(my $j = $i; $j <= $#list; $j++) { @@ -364,6 +366,27 @@ sub sort_dependencies { } +sub project_creator { + my($self) = shift; + my($str) = "$self"; + + ## NOTE: If the subclassed WorkspaceCreator name prefix does not + ## match the name prefix of the ProjectCreator, this code + ## will not work and the subclassed WorkspaceCreator will + ## need to override this method. + + $str =~ s/Workspace/Project/; + $str =~ s/=HASH.*//; + return $str->new($self->get_global_cfg(), + $self->get_include_path(), + $self->get_template_override(), + $self->get_ti_override(), + $self->get_dynamic(), + $self->get_static(), + $self->get_relative()); +} + + # ************************************************************ # Virtual Methods To Be Overridden # ************************************************************ @@ -393,10 +416,4 @@ sub post_workspace { } -sub project_creator { - my($self) = shift; - return undef; -} - - 1; diff --git a/bin/MakeProjectCreator/templates/bor.mpd b/bin/MakeProjectCreator/templates/bor.mpd index 8e4194761fb..4da186b39a6 100644 --- a/bin/MakeProjectCreator/templates/bor.mpd +++ b/bin/MakeProjectCreator/templates/bor.mpd @@ -12,45 +12,64 @@ OBJFILES = \ $(OBJDIR)\<%noextension(source_file)%>.obj<%fornotlast(" \\")%> <%endfor%> <%endif%> +<%if(ssl)%> -<%if(libs)%> -LIBFILES = \ -<%foreach(libs)%> - $(CORE_BINDIR)\<%lib%>.lib<%fornotlast(" \\")%> -<%endfor%> +SSL_LIBS =<%foreach(ssl_libs)%> <%ssl_lib%>.lib<%endfor%> +<%else%> +SSL_LIBS = <%endif%> +LIBFILES = $(SSL_LIBS) \ +<%foreach(libs defaultlibs)%> + $(CORE_BINDIR)\<%lib%>.lib<%fornotlast(" \\")%> +<%endfor%> <%if(idl_files)%> + IDLFILES = \ <%foreach(idl_files)%> $(IDLDIR)\<%noextension(idl_file)%>.idl<%fornotlast(" \\")%> <%endfor%> <%endif%> - <%if(resource_files)%> + RESOURCE =<%foreach(resource_files)%> $(OBJDIR)\<%noextension(resource_file)%>.res<%endfor%> <%endif%> -CFLAGS =<%foreach(includes)%> -I<%include%><%endfor%><%if(type_is_dynamic)%><%foreach(dllflags)%> -D<%dllflag%>=1<%endfor%><%endif%><%if(need_libflags)%><%foreach(libflags)%> -D<%libflag%>=1<%endfor%><%endif%> +!ifdef STATIC +LIB_FLAGS =<%foreach(libflags)%> -D<%libflag%>=1<%endfor%> +DLL_FLAGS = +!else +LIB_FLAGS = +DLL_FLAGS =<%foreach(dllflags)%> -D<%dllflag%>=1<%endfor%> +!endif + +CFLAGS =<%foreach(includes)%> -I<%include%><%endfor%> $(DLL_FLAGS) $(LIB_FLAGS) CPPDIR = . INCDIR_NAME = . +<%if(idl_files)%> IDLDIR = . - +<%endif%> <%if(header_files)%> + INCLUDES = \ <%foreach(header_files template_files)%> <%header_file%><%fornotlast(" \\")%> <%endfor%> - <%endif%> <%if(exename)%> +<%if(install)%> + +INSTALL_THIS_TARGET = 1 +<%endif%> + !include <$(ACE_ROOT)\include\makeinclude\build_exe.bor> <%endif%> <%if(sharedname)%> + !include <$(ACE_ROOT)\include\makeinclude\build_core_library.bor> <%endif%> +<%if(idl_files)%> -<%if(libs)%> # # IDL Build rules # @@ -58,6 +77,5 @@ INCLUDES = \ <%foreach(idl_files)%> $(IDLDIR)\<%noextension(idl_file)%>S.cpp $(IDLDIR)\<%noextension(idl_file)%>C.cpp: $(IDLDIR)\<%noextension(idl_file)%>.idl $(TAO_IDL) $** - <%endfor%> <%endif%> diff --git a/bin/MakeProjectCreator/templates/em3vcp.mpd b/bin/MakeProjectCreator/templates/em3vcp.mpd new file mode 100644 index 00000000000..98ba9aaad29 --- /dev/null +++ b/bin/MakeProjectCreator/templates/em3vcp.mpd @@ -0,0 +1,232 @@ +# Microsoft eMbedded Visual Tools Project File - Name="<%project_name%>" - Package Owner=<4> +# Microsoft eMbedded Visual Tools Generated Build File, Format Version 6.02 +# ** DO NOT EDIT ** + +<%foreach(platform_longs)%> +# TARGTYPE "<%platform("Win32")%> (<%platform_long%>) <%type_description("Dynamic-Link Library")%>" <%type_code%> +<%endfor%> + +CFG=<%project_name%> - <%platform("Win32")%> (<%default_platform_long%>) <%default_configuration%> +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE run the tool that generated this project file and specify the +!MESSAGE nmake output type. You can then use the following command: +!MESSAGE +!MESSAGE NMAKE /f "<%make_file_name%>". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "<%make_file_name%>" CFG="<%project_name%> - <%platform%> (<%default_platform_long%>) <%default_configuration%>" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +<%foreach(platform_longs)%> +<%foreach(configurations)%> +!MESSAGE "<%project_name%> - <%platform%> (<%platform_long%>) <%configuration%>" (based on "<%platform%> (<%platform_long%>) <%type_description%>") +<%endfor%> +<%endfor%> +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +# PROP ATL_Project <%atl_project("2")%> + +<%foreach(platform_longs)%> +<%foreach(configurations)%> +!<%fornotfirst("ELSE")%>IF "$(CFG)" == "<%project_name%> - <%platform%> (<%platform_long%>) <%configuration%>" + +# PROP Use_MFC <%use_mfc("0")%> +# PROP Use_Debug_Libraries <%use_debug_libraries("1")%> +<%if(exename)%> +# PROP Output_Dir "<%output_dir%>\<%machine%>" +<%endif%> +<%if(type_is_static)%> +# PROP Output_Dir "<%output_dir%>\<%machine%>" +<%endif%> +<%if(type_is_dynamic)%> +# PROP Output_Dir "<%libout%>\<%machine%>" +<%endif%> +# PROP Intermediate_Dir "<%intermediate_dir%>\<%machine%>" +# PROP CPU_ID "{<%cpu_id%>}" +# PROP Platform_ID "{<%platform_id%>}" +<%if(type_is_dynamic)%> +# PROP Ignore_Export_Lib 0 +<%endif%> +# PROP Target_Dir "" +<%if(type_is_static)%> +LINK32=link.exe -lib +<%endif%> +RSC=rc.exe +# ADD RSC /l 0x409 /d UNDER_CE=$(CEVersion) /d _WIN32_WCE=$(CEVersion) /d "$(CePlatform)"<%foreach(defines common_defines cpu_defines)%> /d <%define%>=1<%endfor%><%foreach(includes)%> /i "<%include%>"<%endfor%> /r +CPP=<%cpp("cl.exe")%> +# ADD CPP /nologo <%compile_flags%> <%foreach(includes)%>/I "<%include%>" <%endfor%>/D _WIN32_WCE=$(CEVersion) /D "$(CePlatform)" /D UNDER_CE=$(CEVersion) <%foreach(defines common_defines cpu_defines)%>/D <%define%>=1 <%endfor%><%if(type_is_dynamic)%><%foreach(dllflags)%>/D <%dllflag%>=1 <%endfor%><%endif%><%if(need_libflags)%><%foreach(libflags)%>/D <%libflag%>=1 <%endfor%><%endif%><%if(pch_header)%><%foreach(pch_defines)%>/D <%pch_define%> <%endfor%><%if(pch_source)%>/Yu<%else%>/YX<%endif%>"<%pch_header%>" /Fp"<%intermediate_dir%>\<%noextension(pch_header)%>.pch" <%endif%>/FR /M$(CECrtMT) /FD /c +<%if(compile_flags_removed)%> +# SUBTRACT CPP <%compile_flags_removed%> +<%endif%> +BSC32=bscmake.exe +# ADD BSC32 /nologo <%if(sharedname)%>/o"<%libout%>\<%sharedname%>.bsc"<%endif%> +<%if(type_is_binary)%> +LINK32=link.exe +# ADD LINK32 <%systemlibs("winsock.lib commctrl.lib coredll.lib iphlpapi.lib")%> <%if(ssl)%><%foreach(ssl_libs)%><%ssl_lib%>.lib <%endfor%><%endif%>/INCREMENTAL:<%incremental("NO")%> <%foreach(libs defaultlibs)%><%lib%><%lib_modifier%>.lib <%endfor%><%foreach(libpaths)%>/libpath:"<%libpath%>\<%machine%>" <%endfor%>/nologo /base:"<%base("0x00100000")%>" /stack:<%stack("0x10000,0x1000")%> /entry:"_DllMainCRTStartup" /nodefaultlib:"$(CENoDefaultLib)" /version:<%version("1.0")%> /subsystem:$(CESubsystem) /align:"<%align("4096")%>" <%if(type_is_dynamic)%> /dll<%endif%> <%if(use_debug_libraries)%>/debug<%endif%> <%if(pdb)%><%if(sharedname)%>/pdb:<%sharedname%><%lib_modifier%>.pdb <%endif%><%endif%>/machine:<%machine%> /out:"<%if(sharedname)%><%dllout%>\<%machine%>\<%sharedname%><%lib_modifier%>.dll<%endif%><%if(exename)%><%if(install)%><%install%>\<%endif%><%machine%>\<%exename%>.exe<%endif%>" +<%if(link_flags_removed)%> +# SUBTRACT LINK32 <%link_flags_removed%> +<%endif%> +<%endif%> +<%if(type_is_static)%> +LIB32=link.exe -lib +# ADD LIB32 /nologo /out:"<%libout%>\<%machine%>\<%staticname%><%lib_modifier%>.lib" +<%endif%> + +<%endfor%> +!ENDIF +<%endfor%> + + +# Begin Target + +<%foreach(platform_longs)%> +<%foreach(configurations)%> +# Name "<%project_name%> - <%platform%> (<%platform_long%>) <%configuration%>" +<%endfor%> +<%endfor%> +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;cxx;c" +<%if(pch_source)%> +<%if(pch_header)%> +# Begin Source File + +SOURCE=.\<%pch_source%> +# ADD CPP /Yc"<%pch_header%>" +# End Source File +<%endif%> +<%endif%> +<%foreach(source_files)%> +# Begin Source File + +SOURCE=.\<%source_file%> +# End Source File +<%endfor%> +# End Group +<%if(header_files)%> +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hh" +<%foreach(header_files)%> +# Begin Source File + +SOURCE=.\<%header_file%> +# End Source File +<%endfor%> +# End Group +<%endif%> +<%if(inline_files)%> +# Begin Group "Inline Files" + +# PROP Default_Filter "i;inl" +<%foreach(inline_files)%> +# Begin Source File + +SOURCE=.\<%inline_file%> +# End Source File +<%endfor%> +# End Group +<%endif%> +<%if(template_files)%> +# Begin Group "Template Files" + +# PROP Default_Filter "" +<%foreach(template_files)%> +# Begin Source File + +SOURCE=.\<%template_file%> +# PROP Exclude_From_Build 1 +# End Source File +<%endfor%> +# End Group +<%endif%> +<%if(documentation_files)%> +# Begin Group "Documentation" + +# PROP Default_Filter "" +<%foreach(documentation_files)%> +# Begin Source File + +SOURCE=.\<%documentation_file%> +# End Source File +<%endfor%> +# End Group +<%endif%> +<%if(resource_files)%> +# Begin Group "Resource Files" + +# PROP Default_Filter "rc;ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe" +<%foreach(resource_files)%> +# Begin Source File + +SOURCE=.\<%resource_file%> +# End Source File +<%endfor%> +# End Group +<%endif%> +<%if(idl_files)%> +# Begin Group "IDL Files" + +# PROP Default_Filter "idl" +<%foreach(idl_files)%> +# Begin Source File + +SOURCE=.\<%idl_file%> + +<%foreach(platform_longs)%> +<%foreach(configurations)%> +!<%fornotfirst("ELSE")%>IF "$(CFG)" == "<%project_name%> - <%platform%> (<%platform_long%>) <%configuration%>" + +# PROP Ignore_Default_Tool 1 +# Begin Custom Build - Invoking TAO_IDL Compiler on $(InputPath) +InputPath=.\<%idl_file%> +InputName=<%noextension(idl_file)%> + +BuildCmds= \ + <%tao_idl_exe("$(ACE_ROOT)\\bin\\tao_idl")%> <%idlflags("-Sc")%> $(InputPath) + +"$(InputName)C.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)C.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)C.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S_T.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S_T.i" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) + +"$(InputName)S_T.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" + $(BuildCmds) +# End Custom Build + +<%endfor%> +!ENDIF +<%endfor%> + +# End Source File +<%endfor%> +# End Group +<%endif%> +# End Target +# End Project diff --git a/bin/MakeProjectCreator/templates/em3vcpdll.mpt b/bin/MakeProjectCreator/templates/em3vcpdll.mpt new file mode 100644 index 00000000000..7cff5904b7b --- /dev/null +++ b/bin/MakeProjectCreator/templates/em3vcpdll.mpt @@ -0,0 +1,46 @@ +configurations = Release Debug +platform_longs = "WCE ARM" "WCE x86" +default_configuration = Debug +default_platform_long = "WCE ARM" +type_is_binary = 1 +type_is_dynamic = 1 +common_defines = UNICODE _UNICODE +pch_defines = ACE_USING_PCH +ssl_libs = libeay32 ssleay32 + +WCE x86 { + type_code = 0x8302 + cpu_id = D6518FF3-710F-11D3-99F2-00105A0DF099 + platform_id = 8A9A2F80-6887-11D3-842E-005004848CBA + machine = IX86 + cpu_defines = _i386_ _X86_ x86 +} + +WCE ARM { + type_code = 0x8502 + cpu_id = D6518FFC-710F-11D3-99F2-00105A0DF099 + platform_id = 8A9A2F80-6887-11D3-842E-005004848CBA + machine = ARM + cpp = clarm.exe + cpu_defines = ARM _ARM_ +} + +Release { + use_debug_libraries = 0 + compile_flags = /W3 /GX /O2 /MD /Zi /Ob2 + defines = NDEBUG + compile_flags_removed = /YX + output_dir = Release + intermediate_dir = Release +} + +Debug { + use_debug_libraries = 1 + compile_flags = /W3 /Gm /GX /Zi /Od /MDd /Gy + defines = _DEBUG + compile_flags_removed = /Fr /YX + intermediate_dir = Debug + lib_modifier = d + pdb = 1 +} + diff --git a/bin/MakeProjectCreator/templates/em3vcpdllexe.mpt b/bin/MakeProjectCreator/templates/em3vcpdllexe.mpt new file mode 100644 index 00000000000..49c10e676b4 --- /dev/null +++ b/bin/MakeProjectCreator/templates/em3vcpdllexe.mpt @@ -0,0 +1,45 @@ +type_description = "Application" +platform_longs = "WCE ARM" "WCE x86" +default_configuration = Debug +default_platform_long = "WCE ARM" +configurations = Release Debug +type_is_binary = 1 +common_defines = UNICODE _UNICODE +pch_defines = ACE_USING_PCH +ssl_libs = libeay32 ssleay32 + +WCE x86 { + type_code = 0x8301 + cpu_id = D6518FF3-710F-11D3-99F2-00105A0DF099 + platform_id = 8A9A2F80-6887-11D3-842E-005004848CBA + machine = IX86 + cpu_defines = _i386_ _X86_ x86 +} + +WCE ARM { + type_code = 0x8501 + cpu_id = D6518FFC-710F-11D3-99F2-00105A0DF099 + platform_id = 8A9A2F80-6887-11D3-842E-005004848CBA + machine = ARM + cpp = clarm.exe + cpu_defines = ARM _ARM_ +} + +Release { + use_debug_libraries = 0 + compile_flags = /W3 /GX /O2 /MD + defines = NDEBUG + compile_flags_removed = /YX + output_dir = Release + intermediate_dir = Release +} + +Debug { + use_debug_libraries = 1 + compile_flags = /W3 /Gm /GX /Zi /Od /MDd /GR /Gy + defines = _DEBUG + compile_flags_removed = /YX + intermediate_dir = Debug + lib_modifier = d +} + diff --git a/bin/MakeProjectCreator/templates/em3vcplib.mpt b/bin/MakeProjectCreator/templates/em3vcplib.mpt new file mode 100644 index 00000000000..15885196b55 --- /dev/null +++ b/bin/MakeProjectCreator/templates/em3vcplib.mpt @@ -0,0 +1,48 @@ +type_description = "Static Library" +platform_longs = "WCE ARM" "WCE x86" +default_configuration = "Static Debug" +default_platform_long = "WCE ARM" +configurations = "Static Release" "Static Debug" +common_defines = UNICODE _UNICODE +type_is_static = 1 +need_libflags = 1 +pch_defines = ACE_USING_PCH + +WCE x86 { + type_code = 0x8304 + cpu_id = D6518FF3-710F-11D3-99F2-00105A0DF099 + platform_id = 8A9A2F80-6887-11D3-842E-005004848CBA + machine = IX86 + cpu_defines = _i386_ _X86_ x86 +} + +WCE ARM { + type_code = 0x8504 + cpu_id = D6518FFC-710F-11D3-99F2-00105A0DF099 + platform_id = 8A9A2F80-6887-11D3-842E-005004848CBA + machine = ARM + cpp = clarm.exe + cpu_defines = ARM _ARM_ +} + +Static Release { + use_debug_libraries = 0 + compile_flags = /G5 /W3 /GX /O2 /MD /Zi + defines = NDEBUG + compile_flags_removed = /YX + output_dir = Static_Release + intermediate_dir = Static_Release + lib_modifier = s +} + +Static Debug { + use_debug_libraries = 1 + compile_flags = /G5 /W3 /Gm /GX /Zi /Od /Gy /MDd + defines = _DEBUG + compile_flags_removed = /Fr /YX + output_dir = Static_Debug + intermediate_dir = Static_Debug + lib_modifier = sd + pdb = 1 +} + diff --git a/bin/MakeProjectCreator/templates/em3vcplibexe.mpt b/bin/MakeProjectCreator/templates/em3vcplibexe.mpt new file mode 100644 index 00000000000..872751a6017 --- /dev/null +++ b/bin/MakeProjectCreator/templates/em3vcplibexe.mpt @@ -0,0 +1,48 @@ +type_description = "Application" +platform_longs = "WCE ARM" "WCE x86" +default_configuration = "Static Debug" +default_platform_long = "WCE ARM" +configurations = "Static Release" "Static Debug" +type_is_binary = 1 +common_defines = UNICODE _UNICODE +pch_defines = ACE_USING_PCH +ssl_libs = libeay32 ssleay32 + +WCE x86 { + type_code = 0x8301 + cpu_id = D6518FF3-710F-11D3-99F2-00105A0DF099 + platform_id = 8A9A2F80-6887-11D3-842E-005004848CBA + machine = IX86 + cpu_defines = _i386_ _X86_ x86 +} + +WCE ARM { + type_code = 0x8501 + cpu_id = D6518FFC-710F-11D3-99F2-00105A0DF099 + platform_id = 8A9A2F80-6887-11D3-842E-005004848CBA + machine = ARM + cpp = clarm.exe + cpu_defines = ARM _ARM_ +} + +Static Release { + use_debug_libraries = 0 + compile_flags = /W3 /GX /O2 /MD + defines = NDEBUG + compile_flags_removed = /YX + lib_modifier = s + need_libflags = 1 + output_dir = Static_Release + intermediate_dir = Static_Release +} + +Static Debug { + use_debug_libraries = 1 + compile_flags = /W3 /Gm /GX /Zi /Od /MDd /GR /Gy + defines = _DEBUG + compile_flags_removed = /YX + lib_modifier = sd + need_libflags = 1 + output_dir = Static_Debug + intermediate_dir = Static_Debug +} diff --git a/bin/MakeProjectCreator/templates/va4icc.mpd b/bin/MakeProjectCreator/templates/va4icc.mpd new file mode 100644 index 00000000000..4dcc547a365 --- /dev/null +++ b/bin/MakeProjectCreator/templates/va4icc.mpd @@ -0,0 +1,142 @@ +// Configuration file to build <%if(type_is_dynamic)%><%sharedname%> shared library (aka DLL)<%endif%><%if(type_is_static)%><%staticname%> static library<%endif%><%if(type_is_binary)%><%exename%> executable<%endif%> on both Win32 +// and AIX using Visual Age C++ 4 (or later) + +if $__TOS_WIN__ { + option PlatformOptions = +<%foreach(defines common_defines)%> + define ("<%define%>", "1"), +<%endfor%> +<%if(type_is_dynamic)%> +<%foreach(dllflags)%> + define ("<%dllflag%>", "1"), +<%endfor%> +<%endif%> +<%if(need_libflags)%> +<%foreach(libflags)%> + define ("<%libflag%>", "1"), +<%endfor%> +<%endif%> + define ("ACE_HAS_WINSOCK2","1"), + define ("ACE_HAS_WCHAR_TYPEDEFS_CHAR","1"), + define ("_stricmp", "stricmp"), + define ("_strnicmp", "strnicmp"), + define ("_O_TEMPORARY", 0x08), + define ("_O_CREAT", "O_CREAT"), + define ("_O_TRUNC", "O_TRUNC"), + define ("_O_EXCL", "O_EXCL"), + define ("_INTEGRAL_MAX_BITS", 64), + define ('ACE_LACKS_RTTI', '1'), + define ('ACE_USE_RCSID', '0'), + gen('check', 'bounds', 'no'), + gen('libansi', 'yes'), + link('typecheck', 'yes'), + opt('level', '0'), + report('level', 'W'), + lang('staticinlinelinkage', 'yes'), + file('once', 'yes') +} + +if $__TOS_AIX__ { + option PlatformOptions = + defaults('xlC_r'), + define ('ACE_AIX_VERS', '<%aix_vers("501")%>'), + define ('ACE_LACKS_RTTI', '1'), + define ('ACE_USE_RCSID', '0'), + gen('check', 'bounds', 'no'), + gen('libansi', 'yes'), + link('typecheck', 'yes'), + opt('level', 0), + report('level', 'W'), + lang('staticinlinelinkage', 'yes'), + file('once', 'yes') +} + +option + PlatformOptions, +<%foreach(includes)%> + incl(searchPath, '<%include%>'), +<%endfor%> +<%if(sharedname)%> + link(exportAll), +<%endif%> + link(linkwithsharedlib), +<%foreach(libpaths)%> + link(libSearchPath, '<%libpath%>'), +<%endfor%> + link(linkWithMultiThreadLib,yes), + link(debug) + { + if $__TOS_WIN__ { + target type ( <%if(type_is_dynamic)%>shr<%endif%><%if(type_is_static)%>lib<%endif%><%if(type_is_binary)%>exe<%endif%> ) '<%if(type_is_dynamic)%>shr.o<%endif%><%if(type_is_static)%>lib<%sharedname%>.a<%endif%><%if(type_is_binary)%><%exename%><%endif%>' + { + option macros(global) + { +<%if(sharedname)%> + source type(hpp) 'wchar.h' + source type(hpp) 'wcstr.h' +<%endif%> +<%if(header_files)%> + source type(hpp) +<%foreach(header_files)%> + '<%header_file%>'<%fornotlast(",")%> +<%endfor%> +<%endif%> + } +<%if(source_files)%> + source type(cpp) +<%foreach(source_files)%> + "<%source_file%>"<%fornotlast(",")%> +<%endfor%> +<%endif%> +<%if(type_is_static)%> + // Template implementation files (#pragma implementation) +<%foreach(template_files)%> + source type(cpp) "<%template_file%>" +<%endfor%> +<%endif%> + + // Libraries needed during linking + source type (lib) "advapi32.lib" + source type (lib) "user32.lib" + source type (lib) "ws2_32.lib" + source type (lib) "wsock32.lib" + source type (lib) "mswsock.lib" +<%foreach(libs default_libs)%> + source type (lib) "<%lib%><%lib_modifier%>.lib" +<%endfor%> + } + } + if $__TOS_AIX__ { + target type ( <%if(type_is_dynamic)%>shr<%endif%><%if(type_is_static)%>lib<%endif%><%if(type_is_binary)%>exe<%endif%> ) '<%if(type_is_dynamic)%>shr.o<%endif%><%if(type_is_static)%>lib<%sharedname%>.a<%endif%><%if(type_is_binary)%><%exename%><%endif%>' + { + run after sources("shr.o") targets ("lib<%sharedname%>.a") "ar -r -u lib<%sharedname%>.a shr.o", "rm -rf shr.o" + run cleanup "rm -rf lib<%sharedname%>.a shr.o" + +<%if(source_files)%> + source type(cpp) +<%foreach(source_files)%> + "<%source_file%>"<%fornotlast(",")%> +<%endfor%> +<%endif%> +<%if(type_is_static)%> + // Template implementation files (#pragma implementation) +<%foreach(template_files)%> + source type(cpp) "<%template_file%>" +<%endfor%> +<%endif%> + + // Libraries needed during linking +<%foreach(libs defaultlibs)%> + source type (lib) "lib<%lib%>.a" +<%endfor%> +<%if(type_is_dynamic)%> + source type (lib) "libtli_r.a" + source type (lib) "libpthreads.a" + source type (lib) "libc_r.a" + source type (lib) "libdl.a" + // Imports + source type (imp) "pse.exp" +<%endif%> + } + } + } diff --git a/bin/MakeProjectCreator/templates/va4iccdll.mpt b/bin/MakeProjectCreator/templates/va4iccdll.mpt new file mode 100644 index 00000000000..3f6265f7b71 --- /dev/null +++ b/bin/MakeProjectCreator/templates/va4iccdll.mpt @@ -0,0 +1,4 @@ +common_defines = _WINDOWS WIN32 +type_is_dynamic = 1 +lib_modifier = d +defines = _DEBUG diff --git a/bin/MakeProjectCreator/templates/va4iccdllexe.mpt b/bin/MakeProjectCreator/templates/va4iccdllexe.mpt new file mode 100644 index 00000000000..1616203a141 --- /dev/null +++ b/bin/MakeProjectCreator/templates/va4iccdllexe.mpt @@ -0,0 +1,4 @@ +common_defines = _WINDOWS _CONSOLE +type_is_binary = 1 +lib_modifier = d +defines = _DEBUG diff --git a/bin/MakeProjectCreator/templates/va4icclib.mpt b/bin/MakeProjectCreator/templates/va4icclib.mpt new file mode 100644 index 00000000000..8584a3b73a4 --- /dev/null +++ b/bin/MakeProjectCreator/templates/va4icclib.mpt @@ -0,0 +1,4 @@ +common_defines = _WINDOWS WIN32 +type_is_static = 1 +lib_modifier = d +defines = _DEBUG
\ No newline at end of file diff --git a/bin/MakeProjectCreator/templates/va4icclibexe.mpt b/bin/MakeProjectCreator/templates/va4icclibexe.mpt new file mode 100644 index 00000000000..8505a668ea5 --- /dev/null +++ b/bin/MakeProjectCreator/templates/va4icclibexe.mpt @@ -0,0 +1,5 @@ +common_defines = _WINDOWS _CONSOLE +type_is_binary = 1 +lib_modifier = d +defines = _DEBUG +need_libflags = 1
\ No newline at end of file diff --git a/bin/MakeProjectCreator/templates/vc6dsplibexe.mpt b/bin/MakeProjectCreator/templates/vc6dsplibexe.mpt index 977f4441004..c3cd0597804 100644 --- a/bin/MakeProjectCreator/templates/vc6dsplibexe.mpt +++ b/bin/MakeProjectCreator/templates/vc6dsplibexe.mpt @@ -7,6 +7,7 @@ common_defines = WIN32 _CONSOLE subsystem = console pch_defines = ACE_USING_PCH ssl_libs = libeay32 ssleay32 +need_libflags = 1 Static Release { use_debug_libraries = 0 @@ -14,7 +15,6 @@ Static Release { defines = NDEBUG compile_flags_removed = /YX lib_modifier = s - need_libflags = 1 output_dir = Static_Release intermediate_dir = Static_Release debug_switch = @@ -26,7 +26,6 @@ Static Debug { defines = _DEBUG compile_flags_removed = /YX lib_modifier = sd - need_libflags = 1 output_dir = Static_Debug intermediate_dir = Static_Debug } diff --git a/bin/MakeProjectCreator/templates/vc7.mpd b/bin/MakeProjectCreator/templates/vc7.mpd index 956b1b2c260..4302f33983e 100644 --- a/bin/MakeProjectCreator/templates/vc7.mpd +++ b/bin/MakeProjectCreator/templates/vc7.mpd @@ -1,206 +1,217 @@ <?xml version="<%xml_version("1.0")%>" encoding = "<%encoding("Windows-1252")%>"?> <VisualStudioProject - ProjectType="Visual C++" - Version="7.00" - Name="<%project_name%>" - ProjectGUID="{<%guid%>}" - SccProjectName="" - SccLocalPath=""> - <Platforms> - <Platform - Name="<%platform("Win32")%>"/> - </Platforms> - <Configurations> + ProjectType="Visual C++" + Version="7.00" + Name="<%project_name%>" + ProjectGUID="{<%guid%>}" + SccProjectName="" + SccLocalPath=""> + <Platforms> + <Platform + Name="<%platform("Win32")%>"/> + </Platforms> + <Configurations> <%foreach(configurations)%> - <Configuration - Name="<%configuration%>|<%platform%>" - OutputDirectory="<%if(type_is_dynamic)%><%libout%><%else%><%output_dir%><%endif%>" - IntermediateDirectory="<%intermediate_dir%>" - ConfigurationType="<%configuration_type("2")%>" - UseOfMFC="<%use_mfc("0")%>" - ATLMinimizesCRunTimeLibraryUsage="FALSE"> - <Tool - Name="VCCLCompilerTool" + <Configuration + Name="<%configuration%>|<%platform%>" + OutputDirectory=".\<%if(type_is_dynamic)%><%libout%><%else%><%output_dir%><%endif%>" + IntermediateDirectory=".\<%intermediate_dir%>" + ConfigurationType="<%configuration_type("2")%>" + UseOfMFC="<%use_mfc("0")%>" + ATLMinimizesCRunTimeLibraryUsage="FALSE"> + <Tool + Name="VCCLCompilerTool" <%if(optimization)%> - Optimization="<%optimization%>" -<%endif%> - InlineFunctionExpansion="<%inline("1")%>" - AdditionalIncludeDirectories="<%foreach(includes)%><%include%><%fornotlast(",")%><%endfor%>" - PreprocessorDefinitions="<%if(type_is_dynamic)%><%foreach(dllflags)%><%dllflag%>;<%endfor%><%endif%><%if(need_libflags)%><%foreach(libflags)%><%libflag%>;<%endfor%><%endif%><%if(pch_header)%><%foreach(pch_defines)%><%pch_define%>;<%endfor%><%endif%><%foreach(defines common_defines)%><%define%><%fornotlast(";")%><%endfor%>" - StringPooling="<%string_pooling("TRUE")%>" - RuntimeLibrary="<%runtime_library%>" - EnableFunctionLevelLinking="TRUE" - RuntimeTypeInfo="<%rtti("TRUE")%>" + Optimization="<%optimization%>" +<%endif%> +<%if(!debug)%> + InlineFunctionExpansion="<%inline("2")%>" +<%endif%> + AdditionalIncludeDirectories="<%foreach(includes)%><%include%><%fornotlast(",")%><%endfor%>" + PreprocessorDefinitions="<%if(type_is_dynamic)%><%foreach(dllflags)%><%dllflag%>;<%endfor%><%endif%><%if(need_libflags)%><%foreach(libflags)%><%libflag%>;<%endfor%><%endif%><%if(pch_header)%><%foreach(pch_defines)%><%pch_define%>;<%endfor%><%endif%><%foreach(defines common_defines)%><%define%><%fornotlast(";")%><%endfor%>" +<%if(!debug)%> + StringPooling="<%string_pooling("TRUE")%>" +<%endif%> + RuntimeLibrary="<%runtime_library%>" + EnableFunctionLevelLinking="TRUE" + RuntimeTypeInfo="<%rtti("TRUE")%>" <%if(pch_header)%> - UsePrecompiledHeader="3" - PrecompiledHeaderThrough="<%pch_header%>" + UsePrecompiledHeader="3" + PrecompiledHeaderThrough="<%pch_header%>" <%if(pch_source)%> - PrecompiledHeaderFile="<%intermediate_dir%>\<%noextension(pch_source)%>.pch" + PrecompiledHeaderFile=".\<%intermediate_dir%>\<%noextension(pch_source)%>.pch" <%endif%> <%endif%> - AssemblerListingLocation="<%intermediate_dir%>" - ObjectFile="<%intermediate_dir%>" + AssemblerListingLocation=".\<%intermediate_dir%>" + ObjectFile=".\<%intermediate_dir%>\" <%if(pdb)%> - ProgramDataBaseFile="<%intermediate_dir%>" -<%endif%> - WarningLevel="<%warning_level("3")%>" - SuppressStartupBanner="TRUE" - Detect64BitPortabilityProblems="<%detect64("FALSE")%>" -<%if(debug)%> - DebugInformationFormat="<%debug_format("3")%>" -<%endif%> - CompileAs="0"/> - <Tool - Name="VCLinkerTool" - AdditionalOptions="/MACHINE:<%machine("I386")%>" + ProgramDataBaseFileName=".\<%intermediate_dir%>" +<%endif%> + WarningLevel="<%warning_level("3")%>" + SuppressStartupBanner="TRUE" + DebugInformationFormat="<%debug_format("3")%>" + CompileAs="0"/> + <Tool + Name="VCCustomBuildTool"/> + <Tool + Name="VCLinkerTool" + AdditionalOptions="/MACHINE:<%machine("I386")%>" <%if(type_is_binary)%> - AdditionalDependencies="<%foreach(libs defaultlibs)%><%lib%><%lib_modifier%>.lib<%fornotlast(" ")%><%endfor%>" + AdditionalDependencies="<%foreach(libs defaultlibs)%><%lib%><%lib_modifier%>.lib<%fornotlast(" ")%><%endfor%>" <%endif%> - OutputFile="<%if(type_is_dynamic)%><%dllout%>\<%sharedname%><%lib_modifier%>.dll<%endif%><%if(exename)%><%if(install)%><%install%>\<%endif%><%exename%>.exe<%endif%><%if(type_is_static)%><%libout%>\<%staticname%><%lib_modifier%>.lib<%endif%>" - Version="<%version("1.0")%>" - LinkIncremental="<%incremental("0")%>" - SuppressStartupBanner="TRUE" - AdditionalLibraryDirectories="<%foreach(libpaths)%><%libpath%><%fornotlast(";")%><%endfor%>" + OutputFile="<%if(type_is_dynamic)%><%dllout%>\<%sharedname%><%lib_modifier%>.dll<%endif%><%if(exename)%><%if(install)%><%install%>\<%endif%><%exename%>.exe<%endif%><%if(type_is_static)%><%libout%>\<%staticname%><%lib_modifier%>.lib<%endif%>" + Version="<%version("1.0")%>" + LinkIncremental="<%incremental("1")%>" + SuppressStartupBanner="TRUE" + AdditionalLibraryDirectories="<%foreach(libpaths)%><%libpath%><%fornotlast(";")%><%endfor%>" <%if(debug)%> - GenerateDebugInformation="TRUE" -<%if(pdb)%> - ProgramDatabaseFileName="<%if(type_is_dynamic)%><%dllout%>\<%sharedname%><%lib_modifier%><%endif%><%if(exename)%><%if(install)%><%install%><%else%><%output_dir%><%endif%>\<%exename%><%endif%><%if(type_is_static)%><%output_dir%>\<%staticdname%><%lib_modifier%><%endif%>.pdb" + GenerateDebugInformation="TRUE" <%endif%> +<%if(pdb)%> + ProgramDatabaseFile="<%if(type_is_dynamic)%><%dllout%>\<%sharedname%><%lib_modifier%><%endif%><%if(exename)%><%if(install)%><%install%><%else%><%output_dir%><%endif%>\<%exename%><%endif%><%if(type_is_static)%><%output_dir%>\<%staticdname%><%lib_modifier%><%endif%>.pdb" <%endif%> - SubSystem="<%subsystem("2")%>" <%if(type_is_dynamic)%> - ImportLibrary="<%sharedname%><%lib_modifier%>.lib" -<%endif%> -/> - <Tool - Name="VCPostBuildEventTool"/> - <Tool - Name="VCPreBuildEventTool"/> - <Tool - Name="VCPreLinkEventTool"/> - <Tool - Name="VCResourceCompilerTool" - PreprocessorDefinitions="<%foreach(defines)%><%define%><%fornotlast(";")%><%endfor%>" - Culture="<%culture("1033")%>"/> - </Configuration> + SubSystem="<%subsystem("2")%>" + ImportLibrary="<%libout%>\<%sharedname%><%lib_modifier%>.lib"/> +<%else%> + SubSystem="<%subsystem("2")%>"/> +<%endif%> + <Tool + Name="VCMIDLTool"/> + <Tool + Name="VCPostBuildEventTool"/> + <Tool + Name="VCPreBuildEventTool"/> + <Tool + Name="VCPreLinkEventTool"/> + <Tool + Name="VCResourceCompilerTool" + PreprocessorDefinitions="<%foreach(defines)%><%define%><%fornotlast(";")%><%endfor%>" + Culture="<%culture("1033")%>" + AdditionalIncludeDirectories="<%foreach(includes)%><%include%><%fornotlast(",")%><%endfor%>"/> + <Tool + Name="VCWebServiceProxyGeneratorTool"/> + <Tool + Name="VCWebDeploymentTool"/> + </Configuration> <%endfor%> - </Configurations> - <Files> + </Configurations> + <Files> <%if(source_files)%> - <Filter - Name="Source Files" - Filter="cpp;cxx;cc;c;C"> + <Filter + Name="Source Files" + Filter="cpp;cxx;cc;C;c"> <%if(pch_source)%> - <File - RelativePath=".\<%pch_source%>"> + <File + RelativePath=".\<%pch_source%>"> <%foreach(configurations)%> - <FileConfiguration - Name="<%configuration%>|<%platform%>"> - <Tool - Name="VCCLCompilerTool" - UsePrecompiledHeader="1"/> - </FileConfiguration> + <FileConfiguration + Name="<%configuration%>|<%platform%>"> + <Tool + Name="VCCLCompilerTool" + UsePrecompiledHeader="1"/> + </FileConfiguration> <%endfor%> - </File> - </Filter> + </File> + </Filter> <%endif%> <%foreach(source_files)%> - <File - RelativePath=".\<%source_file%>"> - </File> + <File + RelativePath=".\<%source_file%>"> + </File> <%endfor%> - </Filter> + </Filter> <%endif%> <%if(header_files)%> - <Filter - Name="Header Files" - Filter="h;hpp;hxx;hh"> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hh"> <%if(pch_header)%> - <File - RelativePath=".\<%pch_header%>"> - </File> + <File + RelativePath=".\<%pch_header%>"> + </File> <%endif%> <%foreach(header_files)%> - <File - RelativePath=".\<%header_file%>"> - </File> + <File + RelativePath=".\<%header_file%>"> + </File> <%endfor%> - </Filter> + </Filter> <%endif%> <%if(idl_files)%> - <Filter - Name="IDL Files" - Filter="idl"> + <Filter + Name="IDL Files" + Filter="idl"> <%foreach(idl_files)%> - <File - RelativePath=".\<%idl_file%>"> + <File + RelativePath=".\<%idl_file%>"> <%foreach(configurations)%> - <FileConfiguration - Name="<%configuration%>|<%platform%>"> - <Tool - Name="VCCustomBuildTool" - Description="Invoking TAO_IDL Compiler on <%idl_file%>" - CommandLine="<%tao_idl_exe("$(ACE_ROOT)\\bin\\tao_idl")%> <%idlflags("-Sc")%> <%idl_file%>" - Outputs="<%noextension(idl_file)%>C.h;<%noextension(idl_file)%>C.i;<%noextension(idl_file)%>C.cpp;<%noextension(idl_file)%>S.h;<%noextension(idl_file)%>S.i;<%noextension(idl_file)%>S.cpp;<%noextension(idl_file)%>S_T.h;<%noextension(idl_file)%>S_T.i;<%noextension(idl_file)%>S_T.cpp"/> - </FileConfiguration> + <FileConfiguration + Name="<%configuration%>|<%platform%>"> + <Tool + Name="VCCustomBuildTool" + Description="Invoking TAO_IDL Compiler on <%idl_file%>" + CommandLine="<%tao_idl_exe("$(ACE_ROOT)\\bin\\tao_idl")%> <%idlflags("-Sc")%> <%idl_file%>" + Outputs="<%noextension(idl_file)%>C.h;<%noextension(idl_file)%>C.i;<%noextension(idl_file)%>C.cpp;<%noextension(idl_file)%>S.h;<%noextension(idl_file)%>S.i;<%noextension(idl_file)%>S.cpp;<%noextension(idl_file)%>S_T.h;<%noextension(idl_file)%>S_T.i;<%noextension(idl_file)%>S_T.cpp"/> + </FileConfiguration> <%endfor%> - </File> + </File> <%endfor%> - </Filter> + </Filter> <%endif%> <%if(inline_files)%> - <Filter - Name="Inline Files" - Filter="i;inl"> + <Filter + Name="Inline Files" + Filter="i;inl"> <%foreach(inline_files)%> - <File - RelativePath=".\<%inline_file%>"> - </File> + <File + RelativePath=".\<%inline_file%>"> + </File> <%endfor%> - </Filter> + </Filter> <%endif%> <%if(template_files)%> - <Filter - Name="Template Files" - Filter=""> + <Filter + Name="Template Files" + Filter=""> <%foreach(template_files)%> - <File - RelativePath=".\<%template_file%>"> + <File + RelativePath=".\<%template_file%>"> <%foreach(configurations)%> - <FileConfiguration - Name="<%configuration%>|<%platform%>" - ExcludedFromBuild="TRUE"> - <Tool - Name="VCCLCompilerTool"/> - </FileConfiguration> + <FileConfiguration + Name="<%configuration%>|<%platform%>" + ExcludedFromBuild="TRUE"> + <Tool + Name="VCCLCompilerTool"/> + </FileConfiguration> <%endfor%> - </File> + </File> <%endfor%> - </Filter> + </Filter> <%endif%> <%if(documentation_files)%> - <Filter - Name="Documentation" - Filter=""> + <Filter + Name="Documentation" + Filter=""> <%foreach(documentation_files)%> - <File - RelativePath=".\<%documentation_file%>"> - </File> + <File + RelativePath=".\<%documentation_file%>"> + </File> <%endfor%> - </Filter> + </Filter> <%endif%> <%if(resource_files)%> - <Filter - Name="Resource Files" - Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg"> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"> <%foreach(resource_files)%> - <File - RelativePath=".\<%resource_file%>"> - </File> + <File + RelativePath=".\<%resource_file%>"> + </File> <%endfor%> - </Filter> + </Filter> <%endif%> - </Files> - <Globals> - </Globals> + </Files> + <Globals> + </Globals> </VisualStudioProject> diff --git a/bin/mpc.pl b/bin/mpc.pl index 0b470ed324c..94dd9be9a56 100755 --- a/bin/mpc.pl +++ b/bin/mpc.pl @@ -31,6 +31,8 @@ my(@creators) = ('GNUProjectCreator', 'VC7ProjectCreator', 'BorlandProjectCreator', 'GHSProjectCreator', + 'EM3ProjectCreator', + 'VA4ProjectCreator', ); # ************************************************************ diff --git a/bin/mwc.pl b/bin/mwc.pl index d15e4895d81..7e7ee31f7d9 100755 --- a/bin/mwc.pl +++ b/bin/mwc.pl @@ -26,9 +26,13 @@ require Driver; # ************************************************************ my(@creators) = ('GNUWorkspaceCreator', + 'NMakeWorkspaceCreator', 'VC6WorkspaceCreator', 'VC7WorkspaceCreator', - 'NMakeWorkspaceCreator', + 'BorlandWorkspaceCreator', + 'GHSWorkspaceCreator', + 'EM3WorkspaceCreator', + 'VA4WorkspaceCreator', ); # ************************************************************ |