summaryrefslogtreecommitdiffstats
path: root/solenv
diff options
context:
space:
mode:
authorMathias Bauer <mba@openoffice.org>2010-11-26 15:27:38 +0100
committerMathias Bauer <mba@openoffice.org>2010-11-26 15:27:38 +0100
commit2e377ca28de1046bb2382f05770b7366383f268b (patch)
tree884e45e4c783c8032fc4fc14c19418ccee2d2160 /solenv
parentgnumake2: sorting all lists in makefiles (diff)
parent#i10000# fix for cont10n (diff)
downloadcore-2e377ca28de1046bb2382f05770b7366383f268b.tar.gz
core-2e377ca28de1046bb2382f05770b7366383f268b.zip
CWS gnumake2: resync to m94
Diffstat (limited to 'solenv')
-rwxr-xr-xsolenv/bin/build.pl697
-rw-r--r--solenv/bin/cws.pl107
-rwxr-xr-xsolenv/bin/modules/SourceConfig.pm13
-rw-r--r--solenv/bin/modules/installer/simplepackage.pm40
-rw-r--r--solenv/bin/modules/installer/substfilenamefiles.pm5
-rw-r--r--solenv/bin/modules/installer/windows/msiglobal.pm1
-rw-r--r--solenv/bin/modules/installer/windows/property.pm4
-rw-r--r--solenv/inc/_tg_shl.mk100
-rw-r--r--solenv/inc/minor.mk6
-rw-r--r--solenv/inc/postset.mk19
-rw-r--r--solenv/inc/pstrules.mk21
-rw-r--r--solenv/inc/settings.mk6
-rw-r--r--solenv/inc/tg_shl.mk10
13 files changed, 454 insertions, 575 deletions
diff --git a/solenv/bin/build.pl b/solenv/bin/build.pl
index 93ddb4e207d3..06f65dc89a5a 100755
--- a/solenv/bin/build.pl
+++ b/solenv/bin/build.pl
@@ -30,6 +30,7 @@
#
# build - build entire project
#
+ use strict;
use Config;
use POSIX;
use Cwd qw (cwd);
@@ -46,6 +47,7 @@
use lib ("$ENV{SOLARENV}/bin/modules");
use SourceConfig;
use RepositoryHelper;
+ use Cwd 'chdir';
my $in_so_env = 0;
if (defined $ENV{COMMON_ENV_TOOLS}) {
@@ -61,24 +63,19 @@
$verbose_mode = ($ENV{verbose} =~ /^t\S*$/i);
}
my $enable_multiprocessing = 1;
- my $cygwin = 0;
- $cygwin++ if ($^O eq 'cygwin');
- if ($ENV{GUI} eq 'WNT' && !$cygwin) {
- eval { require Win32::Process; import Win32::Process; };
- $enable_multiprocessing = 0 if ($@);
- eval { require Win32::Pipe; import Win32::Pipe; };
- };
-
### for XML file format
eval { require XMLBuildListParser; import XMLBuildListParser; };
+ my $enable_xml = 0;
+ my @modes_array = ();
if (!$@) {
$enable_xml = 1;
@modes_array = split('\s' , $ENV{BUILD_TYPE});
};
#### script id #####
- ( $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/;
- $id_str = ' $Revision: 275224 $ ';
+ ( my $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/;
+ my $id_str = ' $Revision: 275224 $ ';
+ my $script_rev = 0;
$id_str =~ /Revision:\s+(\S+)\s+\$/
? ($script_rev = $1) : ($script_rev = "-");
@@ -90,103 +87,98 @@
# #
#########################
- $modules_number++;
- $perl = "";
- $remove_command = "";
- use Cwd 'chdir';
- $perl = 'perl';
- $remove_command = 'rm -rf';
- $nul = '> /dev/null';
+ my $modules_number++;
+ my $perl = 'perl';
+ my $remove_command = 'rm -rf';
+ my $nul = '> /dev/null';
- $processes_to_run = 0;
+ my $processes_to_run = 0;
# delete $pid when not needed
- %projects_deps_hash = (); # hash of projects with no dependencies,
+ my %projects_deps_hash = (); # hash of projects with no dependencies,
# that could be built now
- %broken_build = (); # hash of hashes of the modules,
+ my %broken_build = (); # hash of hashes of the modules,
# where build was broken (error occurred)
- %folders_hashes = ();
- %running_children = ();
- $dependencies_hash = 0;
- $cmd_file = '';
- $build_all_parents = 0;
- $show = 0;
- $checkparents = 0;
- $deliver = 0;
- $pre_custom_job = '';
- $custom_job = '';
- $post_custom_job = '';
- %local_deps_hash = ();
- %PathHash = ();
- %PlatformHash = ();
- %AliveDependencies = ();
- %global_deps_hash = (); # hash of dependencies of the all modules
- %global_deps_hash_backup = (); # backup hash of external dependencies of the all modules
- %module_deps_hash_backup = (); # backup hash of internal dependencies for aech module
- %modules_with_errors = (); # hash of modules hashes, which cannot be built further
- @broken_modules_names = (); # array of modules, which cannot be built further
- @dmake_args = ();
- %dead_parents = ();
- $initial_module = '';
- $all_dependent = 1; # a flag indicating if the hash has independent keys
- $build_from_with_branches = '';
- $build_all_cont = '';
- $build_since = '';
- $dlv_switch = '';
- $child = 0;
- %processes_hash = ();
- %module_announced = ();
- $prepare = ''; # prepare for following incompatible build
- $ignore = '';
- $html = '';
- @ignored_errors = ();
- %incompatibles = ();
- %skip_modules = ();
- %exclude_branches = ();
- $only_platform = ''; # the only platform to prepare
- $only_common = ''; # the only common output tree to delete when preparing
- %build_modes = ();
- $maximal_processes = 0; # the max number of the processes run
- %modules_types = (); # modules types ('mod', 'img', 'lnk') hash
- %platforms = (); # platforms available or being working with
- %platforms_to_copy = (); # copy output trees for the platforms when --prepare
- $tmp_dir = get_tmp_dir(); # temp directory for checkout and other actions
+ my %folders_hashes = ();
+ my %running_children = ();
+ my $dependencies_hash = 0;
+ my $cmd_file = '';
+ my $build_all_parents = 0;
+ my $show = 0;
+ my $checkparents = 0;
+ my $deliver = 0;
+ my $pre_custom_job = '';
+ my $custom_job = '';
+ my $post_custom_job = '';
+ my %local_deps_hash = ();
+ my %path_hash = ();
+ my %platform_hash = ();
+ my %alive_dependencies = ();
+ my %global_deps_hash = (); # hash of dependencies of the all modules
+ my %global_deps_hash_backup = (); # backup hash of external dependencies of the all modules
+ my %module_deps_hash_backup = (); # backup hash of internal dependencies for aech module
+ my @broken_module_names = (); # array of modules, which cannot be built further
+ my @dmake_args = ();
+ my %dead_parents = ();
+ my $initial_module = '';
+ my $all_dependent = 1; # a flag indicating if the hash has independent keys
+ my $build_from_with_branches = '';
+ my $build_all_cont = '';
+ my $build_since = '';
+ my $dlv_switch = '';
+ my $child = 0;
+ my %processes_hash = ();
+ my %module_announced = ();
+ my $prepare = ''; # prepare for following incompatible build
+ my $ignore = '';
+ my $html = '';
+ my @ignored_errors = ();
+ my %incompatibles = ();
+ my %skip_modules = ();
+ my %exclude_branches = ();
+ my $only_platform = ''; # the only platform to prepare
+ my $only_common = ''; # the only common output tree to delete when preparing
+ my %build_modes = ();
+ my $maximal_processes = 0; # the max number of the processes run
+ my %modules_types = (); # modules types ('mod', 'img', 'lnk') hash
+ my %platforms = (); # platforms available or being working with
+ my %platforms_to_copy = (); # copy output trees for the platforms when --prepare
+ my $tmp_dir = get_tmp_dir(); # temp directory for checkout and other actions
# $dmake_batch = undef; #
- @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names
- %build_list_paths = (); # build lists names
- %build_lists_hash = (); # hash of arrays $build_lists_hash{$module} = \($path, $xml_list_object)
- $pre_job = 'announce'; # job to add for not-single module build
- $post_job = ''; # -"-
- %windows_procs = ();
- @warnings = (); # array of warnings to be shown at the end of the process
- @errors = (); # array of errors to be shown at the end of the process
- %html_info = (); # hash containing all necessary info for generating of html page
- %module_by_hash = (); # hash containing all modules names as values and correspondent hashes as keys
- %build_in_progress = (); # hash of modules currently being built
- %build_is_finished = (); # hash of already built modules
- %modules_with_errors = (); # hash of modules with build errors
- %build_in_progress_shown = (); # hash of modules being built,
+ my @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names
+ my %build_list_paths = (); # build lists names
+ my %build_lists_hash = (); # hash of arrays $build_lists_hash{$module} = \($path, $xml_list_object)
+ my $pre_job = 'announce'; # job to add for not-single module build
+ my $post_job = ''; # -"-
+ my @warnings = (); # array of warnings to be shown at the end of the process
+ my @errors = (); # array of errors to be shown at the end of the process
+ my %html_info = (); # hash containing all necessary info for generating of html page
+ my %module_by_hash = (); # hash containing all modules names as values and correspondent hashes as keys
+ my %build_in_progress = (); # hash of modules currently being built
+ my %build_is_finished = (); # hash of already built modules
+ my %modules_with_errors = (); # hash of modules with build errors
+ my %build_in_progress_shown = (); # hash of modules being built,
# and shown last time (to keep order)
- $build_time = time;
- $html_last_updated = 0;
- %jobs_hash = ();
- $html_path = undef;
- $build_finished = 0;
- $html_file = '';
- %had_error = (); # hack for misteriuos windows problems - try run dmake 2 times if first time there was an error
- $mkout = CorrectPath("$ENV{SOLARENV}/bin/mkout.pl");
- %weights_hash = (); # hash contains info about how many modules are dependent from one module
+ my $build_time = time;
+ my $html_last_updated = 0;
+ my %jobs_hash = ();
+ my $html_path = undef;
+ my $build_finished = 0;
+ my $html_file = '';
+ my %had_error = (); # hack for misteriuos windows problems - try run dmake 2 times if first time there was an error
+ my $mkout = correct_path("$ENV{SOLARENV}/bin/mkout.pl");
+ my %weights_hash = (); # hash contains info about how many modules are dependent from one module
# %weight_stored = ();
- $grab_output = 1;
- $stop_build_on_error = 0; # for multiprocessing mode: do not build further module if there is an error
- $interactive = 0; # for interactive mode... (for testing purpose enabled by default)
- $parent_process = 1;
- $server_mode = 0;
- $setenv_string = ''; # string for configuration of the client environment
- $ports_string = ''; # string with possible ports for server
- @server_ports = ();
- $html_port = 0;
- $server_socket_obj = undef; # socket object for server
- $html_socket_obj = undef; # socket object for server
+ my $grab_output = 1;
+ my $stop_build_on_error = 0; # for multiprocessing mode: do not build further module if there is an error
+ my $interactive = 0; # for interactive mode... (for testing purpose enabled by default)
+ my $parent_process = 1;
+ my $server_mode = 0;
+ my $setenv_string = ''; # string for configuration of the client environment
+ my $ports_string = ''; # string with possible ports for server
+ my @server_ports = ();
+ my $html_port = 0;
+ my $server_socket_obj = undef; # socket object for server
+ my $html_socket_obj = undef; # socket object for server
my %clients_jobs = ();
my %clients_times = ();
my $client_timeout = 0; # time for client to build (in sec)...
@@ -205,19 +197,28 @@
my $clear_config = 0;
my $finisched_children = 0;
my $debug = 0;
- %module_deps_hash_pids = ();
+ my %module_deps_hash_pids = ();
my @argv = @ARGV;
my $source_config_file;
+ my @modules_built = ();
+ my $deliver_command = $ENV{DELIVER};
+ my %prj_platform = ();
+ my $check_error_string = '';
+ my $dmake = '';
+ my $dmake_args = '';
+ my $echo = '';
+ my $new_line = "\n";
+ my $incompatible = 0;
+ my $local_host_ip = 'localhost';
### main ###
get_options();
-# my $temp_html_file = CorrectPath($tmp_dir. '/' . $ENV{INPATH}. '.build.html');
+# my $temp_html_file = correct_path($tmp_dir. '/' . $ENV{INPATH}. '.build.html');
get_build_modes();
- %deliver_env = ();
+ my %deliver_env = ();
if ($prepare) {
get_platforms(\%platforms);
- @modules_built = ();
$deliver_env{'BUILD_SOSL'}++;
$deliver_env{'COMMON_OUTDIR'}++;
@@ -227,15 +228,15 @@
$deliver_env{'OUTPATH'}++;
$deliver_env{'L10N_framework'}++;
};
- $StandDir = get_stand_dir(); # This also sets $initial_module
- $source_config = SourceConfig -> new($StandDir);
+ my $workspace_path = get_workspace_path(); # This also sets $initial_module
+ my $source_config = SourceConfig -> new($workspace_path);
check_partial_gnumake_build($initial_module);
if ($html) {
if (defined $html_path) {
- $html_file = CorrectPath($html_path . '/' . $ENV{INPATH}. '.build.html');
+ $html_file = correct_path($html_path . '/' . $ENV{INPATH}. '.build.html');
} else {
- my $log_directory = Cwd::realpath(CorrectPath($StandDir . '/..')) . '/log';
+ my $log_directory = Cwd::realpath(correct_path($workspace_path . '/..')) . '/log';
if ((!-d $log_directory) && (!mkdir($log_directory))) {
print_error("Cannot create $log_directory for writing html file\n");
};
@@ -251,17 +252,9 @@
get_module_and_buildlist_paths();
provide_consistency() if (defined $ENV{CWS_WORK_STAMP} && defined($ENV{COMMON_ENV_TOOLS}));
- $deliver_command = $ENV{DELIVER};
$deliver_command .= ' -verbose' if ($html);
$deliver_command .= ' '. $dlv_switch if ($dlv_switch);
$ENV{mk_tmp}++;
- %prj_platform = ();
- $check_error_string = '';
- $dmake = '';
-# $dmake_bin = '';
- $dmake_args = '';
- $echo = '';
- $new_line = "\n";
get_commands();
unlink ($cmd_file);
@@ -294,7 +287,7 @@
if (scalar keys %broken_build) {
cancel_build();
# } elsif (!$custom_job && $post_custom_job) {
-# do_post_custom_job(CorrectPath($StandDir.$initial_module));
+# do_post_custom_job(correct_path($workspace_path.$initial_module));
};
print_warnings();
if (scalar keys %active_modules) {
@@ -309,7 +302,7 @@
print $echo."$_\n";
};
print $new_line;
- print $echo."not found and couldn't be built. Dependencies on that module(s) ignored. Maybe you should correct build lists.\n";
+ print $echo."not found and couldn't be built. dependencies on that module(s) ignored. Maybe you should correct build lists.\n";
print $new_line;
do_exit(1) if ($checkparents);
};
@@ -366,7 +359,7 @@ sub generate_config_file {
sub start_interactive {
- $pid = open(HTML_PIPE, "-|");
+ my $pid = open(HTML_PIPE, "-|");
print "Pipe is open\n";
if ($pid) { # parent
@@ -440,7 +433,6 @@ sub start_html_message_trigger {
};
sub get_html_orders {
-# print "Parent gonna read\n";
return if (!$interactive);
my $buffer_size = 1024;
my $buffer;
@@ -484,7 +476,6 @@ sub get_html_orders {
schedule_rebuild(\%modules_to_rebuild);
generate_html_file();
};
-# print "Parent got nothing to read\n";
};
sub schedule_delete {
@@ -554,7 +545,7 @@ sub get_build_list_path {
my $possible_dir_path = $module_paths{$_}.'/prj/';
if (-d $possible_dir_path) {
foreach my $build_list (@possible_build_lists) {
- my $possible_build_list_path = CorrectPath($possible_dir_path . $build_list);
+ my $possible_build_list_path = correct_path($possible_dir_path . $build_list);
if (-f $possible_build_list_path) {
$build_list_paths{$module} = $possible_build_list_path;
return $possible_build_list_path;
@@ -564,7 +555,7 @@ sub get_build_list_path {
};
};
$dead_parents{$module}++;
- $build_list_paths{$module} = CorrectPath(retrieve_build_list($module)) if (!defined $build_list_paths{$module});
+ $build_list_paths{$module} = correct_path(retrieve_build_list($module)) if (!defined $build_list_paths{$module});
return $build_list_paths{$module};
};
@@ -587,9 +578,9 @@ sub get_parent_deps {
$parents_deps_hash{$_}++;
}
$$deps_hash{$module} = \%parents_deps_hash;
- foreach $Parent (keys %parents_deps_hash) {
- if (!defined($$deps_hash{$Parent}) && (!defined $exclude_branches{$module})) {
- push (@unresolved_parents, $Parent);
+ foreach my $parent (keys %parents_deps_hash) {
+ if (!defined($$deps_hash{$parent}) && (!defined $exclude_branches{$module})) {
+ push (@unresolved_parents, $parent);
};
};
};
@@ -656,7 +647,7 @@ sub reverse_dependensies {
#
sub build_all {
if ($build_all_parents) {
- my ($Prj, $PrjDir, $orig_prj);
+ my ($prj, $prj_dir, $orig_prj);
get_parent_deps( $initial_module, \%global_deps_hash);
if (scalar keys %active_modules) {
$active_modules{$initial_module}++;
@@ -681,11 +672,11 @@ sub build_all {
exit 0;
} elsif ($incompatible) {
my @missing_modules = ();
- foreach (keys %global_deps_hash) {
+ foreach (sort keys %global_deps_hash) {
push(@missing_modules, $_) if (!defined $active_modules{$_});
};
if (scalar @missing_modules) {
- print_error("There are modules:\n@missing_modules\n\nthat should be built, but they are not activated. Please, verify your $source_config_file.\n");
+ push(@warnings, "The modules: \"@missing_modules\" should be have been built, but they are not activated and have been skipped. Be aware, that can cause compatibility problems. Maybe you should verify your $source_config_file.\n");
};
};
foreach my $module (keys %dead_parents, keys %skip_modules) {
@@ -704,26 +695,26 @@ sub build_all {
if ($server_mode) {
run_server();
};
- while ($Prj = pick_prj_to_build(\%global_deps_hash)) {
- if (!defined $dead_parents{$Prj}) {
+ while ($prj = pick_prj_to_build(\%global_deps_hash)) {
+ if (!defined $dead_parents{$prj}) {
if (scalar keys %broken_build) {
- print $echo . "Skipping project $Prj because of error(s)\n";
- remove_from_dependencies($Prj, \%global_deps_hash);
- $build_is_finished{$Prj}++;
+ print $echo . "Skipping project $prj because of error(s)\n";
+ remove_from_dependencies($prj, \%global_deps_hash);
+ $build_is_finished{$prj}++;
next;
};
- $PrjDir = $module_paths{$Prj};
- get_module_dep_hash($Prj, \%local_deps_hash);
- my $info_hash = $html_info{$Prj};
- $$info_hash{DIRS} = check_deps_hash(\%local_deps_hash, $Prj);
- $module_by_hash{\%local_deps_hash} = $Prj;
+ $prj_dir = $module_paths{$prj};
+ get_module_dep_hash($prj, \%local_deps_hash);
+ my $info_hash = $html_info{$prj};
+ $$info_hash{DIRS} = check_deps_hash(\%local_deps_hash, $prj);
+ $module_by_hash{\%local_deps_hash} = $prj;
build_dependent(\%local_deps_hash);
print $check_error_string;
};
- remove_from_dependencies($Prj, \%global_deps_hash);
- $build_is_finished{$Prj}++;
+ remove_from_dependencies($prj, \%global_deps_hash);
+ $build_is_finished{$prj}++;
};
} else {
store_build_list_content($initial_module);
@@ -743,7 +734,7 @@ sub build_all {
sub backup_deps_hash {
my $source_hash = shift;
my $backup_hash = shift;
- foreach $key (keys %$source_hash) {
+ foreach my $key (keys %$source_hash) {
my %values_hash = %{$$source_hash{$key}};
$$backup_hash{$key} = \%values_hash;
};
@@ -813,7 +804,6 @@ sub dmake_dir {
_exit(0);
} elsif ($error_code && ($error_code != -1)) {
return $error_code;
-# print_error("Error $? occurred while making $job_name");
};
};
@@ -891,7 +881,6 @@ sub get_prj_platform {
};
};
};
-#seek(BUILD_LST, 0, 0);
};
#
@@ -902,8 +891,8 @@ sub get_deps_from_object {
my ($module, $build_list_object, $dependencies_hash) = @_;
foreach my $dir ($build_list_object->getJobDirectories("make", $ENV{GUI})) {
- $PathHash{$dir} = $module_paths{$module};
- $PathHash{$dir} .= $dir if ($dir ne '/');
+ $path_hash{$dir} = $module_paths{$module};
+ $path_hash{$dir} .= $dir if ($dir ne '/');
my %deps_hash = ();
foreach my $dep ($build_list_object->getJobDependencies($dir, "make", $ENV{GUI})) {
@@ -934,7 +923,7 @@ sub get_module_dep_hash {
#
sub get_deps_hash {
my ($dummy, $module_to_build);
- %DeadDependencies = ();
+ my %dead_dependencies = ();
$module_to_build = shift;
my $dependencies_hash = shift;
if ($custom_job) {
@@ -965,37 +954,37 @@ sub get_deps_hash {
};
s/\r\n//;
if ($_ =~ /\s+nmake\s+/o) {
- my ($Platform, $Dependencies, $Dir, $DirAlias);
+ my ($platform, $dependencies, $dir, $dir_alias);
my %deps_hash = ();
- $Dependencies = $';
+ $dependencies = $';
$dummy = $`;
$dummy =~ /(\S+)\s+(\S*)/o;
- $Dir = $2;
- $Dependencies =~ /(\w+)/o;
- $Platform = $1;
- $Dependencies = $';
- while ($Dependencies =~ /,(\w+)/o) {
- $Dependencies = $';
+ $dir = $2;
+ $dependencies =~ /(\w+)/o;
+ $platform = $1;
+ $dependencies = $';
+ while ($dependencies =~ /,(\w+)/o) {
+ $dependencies = $';
};
- $Dependencies =~ /\s+(\S+)\s+/o;
- $DirAlias = $1;
- if (!CheckPlatform($Platform)) {
- next if (defined $PlatformHash{$DirAlias});
- $DeadDependencies{$DirAlias}++;
+ $dependencies =~ /\s+(\S+)\s+/o;
+ $dir_alias = $1;
+ if (!check_platform($platform)) {
+ next if (defined $platform_hash{$dir_alias});
+ $dead_dependencies{$dir_alias}++;
next;
};
- delete $DeadDependencies{$DirAlias} if (defined $DeadDependencies{$DirAlias});
- print_error("Directory alias $DirAlias is defined at least twice!! Please, correct build.lst in module $module_to_build") if (defined $$dependencies_hash{$DirAlias});
- $PlatformHash{$DirAlias}++;
- $Dependencies = $';
- print_error("$module_to_build/prj/build.lst has wrongly written dependencies string:\n$_\n") if (!$Dependencies);
- $deps_hash{$_}++ foreach (GetDependenciesArray($Dependencies));
- $$dependencies_hash{$DirAlias} = \%deps_hash;
+ delete $dead_dependencies{$dir_alias} if (defined $dead_dependencies{$dir_alias});
+ print_error("Directory alias $dir_alias is defined at least twice!! Please, correct build.lst in module $module_to_build") if (defined $$dependencies_hash{$dir_alias});
+ $platform_hash{$dir_alias}++;
+ $dependencies = $';
+ print_error("$module_to_build/prj/build.lst has wrongly written dependencies string:\n$_\n") if (!$dependencies);
+ $deps_hash{$_}++ foreach (get_dependency_array($dependencies));
+ $$dependencies_hash{$dir_alias} = \%deps_hash;
my $local_dir = '';
- if ($Dir =~ /(\\|\/)/o) {
+ if ($dir =~ /(\\|\/)/o) {
$local_dir = "/$'";
};
- $PathHash{$DirAlias} = CorrectPath($module_paths{$module_to_build} . $local_dir);
+ $path_hash{$dir_alias} = correct_path($module_paths{$module_to_build} . $local_dir);
} elsif ($_ !~ /^\s*$/ && $_ !~ /^\w*\s/o) {
chomp;
push(@errors, $_);
@@ -1012,16 +1001,15 @@ sub get_deps_hash {
print_error($message);
};
};
- foreach my $alias (keys %DeadDependencies) {
- next if defined $AliveDependencies{$alias};
- if (!IsHashNative($alias)) {
+ foreach my $alias (keys %dead_dependencies) {
+ next if defined $alive_dependencies{$alias};
+# if (!IsHashNative($alias)) {
remove_from_dependencies($alias, $dependencies_hash);
- delete $DeadDependencies{$alias};
- };
+ delete $dead_dependencies{$alias};
+# };
};
};
-# check_deps_hash($dependencies_hash);
- resolve_aliases($dependencies_hash, \%PathHash);
+ resolve_aliases($dependencies_hash, \%path_hash);
if (!$prepare) {
add_prerequisite_job($dependencies_hash, $module_to_build, $pre_custom_job);
add_prerequisite_job($dependencies_hash, $module_to_build, $pre_job);
@@ -1040,7 +1028,7 @@ sub add_prerequisite_job {
return if (!$job);
$job = "$module $job";
foreach (keys %$dependencies_hash) {
- $deps_hash = $$dependencies_hash{$_};
+ my $deps_hash = $$dependencies_hash{$_};
$$deps_hash{$job}++;
};
$$dependencies_hash{$job} = {};
@@ -1062,15 +1050,15 @@ sub add_dependent_job {
# this procedure converts aliases to absolute paths
#
sub resolve_aliases {
- my ($dependencies_hash, $PathHash) = @_;
+ my ($dependencies_hash, $path_hash) = @_;
foreach my $dir_alias (keys %$dependencies_hash) {
my $aliases_hash_ref = $$dependencies_hash{$dir_alias};
my %paths_hash = ();
foreach (keys %$aliases_hash_ref) {
- $paths_hash{$$PathHash{$_}}++;
+ $paths_hash{$$path_hash{$_}}++;
};
delete $$dependencies_hash{$dir_alias};
- $$dependencies_hash{$$PathHash{$dir_alias}} = \%paths_hash;
+ $$dependencies_hash{$$path_hash{$dir_alias}} = \%paths_hash;
};
};
@@ -1090,7 +1078,7 @@ sub mark_platform {
# Convert path from abstract (with '\' and/or '/' delimiters)
# to system-independent
#
-sub CorrectPath {
+sub correct_path {
$_ = shift;
s/\\/\//g;
return $_;
@@ -1141,76 +1129,50 @@ sub get_commands {
#
# Procedure retrieves list of projects to be built from build.lst
#
-sub get_stand_dir {
+sub get_workspace_path {
if (!defined $ENV{GUI}) {
$ENV{mk_tmp} = '';
die "No environment set\n";
};
my $repository_helper = RepositoryHelper->new();
- my $StandDir = $repository_helper->get_repository_root();
+ my $workspace_path = $repository_helper->get_repository_root();
my $initial_dir = $repository_helper->get_initial_directory();
- if ($StandDir eq $initial_dir) {
+ if ($workspace_path eq $initial_dir) {
print_error('Found no project to build');
};
- $initial_module = substr($initial_dir, length($StandDir) + 1);
+ $initial_module = substr($initial_dir, length($workspace_path) + 1);
if ($initial_module =~ /(\\|\/)/) {
$initial_module = $`;
};
- $module_paths{$initial_module} = $StandDir . "/$initial_module";
-# $build_list_paths{$initial_module} =$StandDir . '/prj/'.$_;
-# if ( defined $ENV{PWD} ) {
-# $StandDir = $ENV{PWD};
-# } elsif (defined $ENV{_cwd}) {
-# $StandDir = $ENV{_cwd};
-# } else {
-# $StandDir = cwd();
-# };
-# my $previous_dir = '';
-# do {
-# foreach (@possible_build_lists) {# ('build.lst', 'build.xlist');
-# if (-e $StandDir . '/prj/'.$_) {
-# $initial_module = File::Basename::basename($StandDir);
-# $build_list_paths{$initial_module} =$StandDir . '/prj/'.$_;
-# $StandDir = File::Basename::dirname($StandDir);
-# $module_paths{$initial_module} = $StandDir . "/$initial_module";
- return $StandDir;
-# } elsif ($StandDir eq $previous_dir) {
-# $ENV{mk_tmp} = '';
-# print_error('Found no project to build');
-# };
-# };
-# $previous_dir = $StandDir;
-# $StandDir = File::Basename::dirname(Cwd::realpath($StandDir));
-# print_error('Found no project to build') if (!$StandDir);
-# }
-# while (chdir "$StandDir");
+ $module_paths{$initial_module} = $workspace_path . "/$initial_module";
+ return $workspace_path;
};
#
# Picks project which can be built now from hash and then deletes it from hash
#
sub pick_prj_to_build {
- my $DepsHash = shift;
+ my $deps_hash = shift;
get_html_orders();
- my $Prj = find_indep_prj($DepsHash);
- if ($Prj) {
- delete $$DepsHash{$Prj};
+ my $prj = find_indep_prj($deps_hash);
+ if ($prj) {
+ delete $$deps_hash{$prj};
generate_html_file();
};
- return $Prj;
+ return $prj;
};
#
# Make a decision if the project should be built on this platform
#
-sub CheckPlatform {
- my $Platform = shift;
- return 1 if ($Platform eq 'all');
- return 1 if (($ENV{GUI} eq 'WIN') && ($Platform eq 'w'));
- return 1 if (($ENV{GUI} eq 'UNX') && ($Platform eq 'u'));
- return 1 if (($ENV{GUI} eq 'OS2') && ($Platform eq 'p'));
+sub check_platform {
+ my $platform = shift;
+ return 1 if ($platform eq 'all');
+ return 1 if (($ENV{GUI} eq 'WIN') && ($platform eq 'w'));
+ return 1 if (($ENV{GUI} eq 'UNX') && ($platform eq 'u'));
+ return 1 if (($ENV{GUI} eq 'OS2') && ($platform eq 'p'));
return 1 if (($ENV{GUI} eq 'WNT') &&
- (($Platform eq 'w') || ($Platform eq 'n')));
+ (($platform eq 'w') || ($platform eq 'n')));
return 0;
};
@@ -1219,14 +1181,14 @@ sub CheckPlatform {
# of all from given project dependent projects
#
sub remove_from_dependencies {
- my ($ExclPrj, $i, $Prj, $Dependencies);
- $ExclPrj = shift;
- my $ExclPrj_orig = '';
- $ExclPrj_orig = $` if (($ExclPrj =~ /\.lnk$/o) || ($ExclPrj =~ /\.link$/o));
- $Dependencies = shift;
- foreach $Prj (keys %$Dependencies) {
- my $prj_deps_hash = $$Dependencies{$Prj};
- delete $$prj_deps_hash{$ExclPrj} if (defined $$prj_deps_hash{$ExclPrj});
+ my ($exclude_prj, $i, $prj, $dependencies);
+ $exclude_prj = shift;
+ my $exclude_prj_orig = '';
+ $exclude_prj_orig = $` if (($exclude_prj =~ /\.lnk$/o) || ($exclude_prj =~ /\.link$/o));
+ $dependencies = shift;
+ foreach $prj (keys %$dependencies) {
+ my $prj_deps_hash = $$dependencies{$prj};
+ delete $$prj_deps_hash{$exclude_prj} if (defined $$prj_deps_hash{$exclude_prj});
};
};
@@ -1248,8 +1210,8 @@ sub check_deps_hash {
do {
$consistent = '';
- foreach $key (sort keys %deps_hash) {
- $local_deps_ref = $deps_hash{$key};
+ foreach my $key (sort keys %deps_hash) {
+ my $local_deps_ref = $deps_hash{$key};
if (!scalar keys %$local_deps_ref) {
if (defined $module) {
$build_number++;
@@ -1283,7 +1245,7 @@ sub check_deps_hash {
BUILD_NUMBER => $build_number,
STATUS => 'waiting',
LOG_PATH => '../' . $source_config->get_module_repository($module) . "/$module/$ENV{INPATH}/misc/logs/$log_name",
- LONG_LOG_PATH => CorrectPath($module_paths{$module} . "/$ENV{INPATH}/misc/logs/$log_name"),
+ LONG_LOG_PATH => correct_path($module_paths{$module} . "/$ENV{INPATH}/misc/logs/$log_name"),
START_TIME => 0,
FINISH_TIME => 0,
CLIENT => '-'
@@ -1316,16 +1278,16 @@ sub check_deps_hash {
# Find project with no dependencies left.
#
sub find_indep_prj {
- my ($Dependencies, $i);
+ my ($dependencies, $i);
my @candidates = ();
$all_dependent = 1;
handle_dead_children(0) if ($processes_to_run);
my $children = children_number();
return '' if (!$server_mode && $children && ($children >= $processes_to_run));
- $Dependencies = shift;
- if (scalar keys %$Dependencies) {
- foreach my $job (keys %$Dependencies) {
- if (!scalar keys %{$$Dependencies{$job}}) {
+ $dependencies = shift;
+ if (scalar keys %$dependencies) {
+ foreach my $job (keys %$dependencies) {
+ if (!scalar keys %{$$dependencies{$job}}) {
push(@candidates, $job);
last if (!$processes_to_run);
};
@@ -1367,56 +1329,55 @@ sub get_waiters_number {
#
# Check if given entry is HASH-native, that is not a user-defined data
#
-sub IsHashNative {
- my $Prj = shift;
- return 1 if ($Prj =~ /^HASH\(0x[\d | a | b | c | d | e | f]{6,}\)/);
- return 0;
-};
+#sub IsHashNative {
+# my $prj = shift;
+# return 1 if ($prj =~ /^HASH\(0x[\d | a | b | c | d | e | f]{6,}\)/);
+# return 0;
+#};
#
# Getting array of dependencies from the string given
#
-sub GetDependenciesArray {
- my ($DepString, @Dependencies, $ParentPrj, $prj, $string);
- @Dependencies = ();
- $DepString = shift;
- $string = $DepString;
+sub get_dependency_array {
+ my ($dep_string, @dependencies, $parent_prj, $prj, $string);
+ @dependencies = ();
+ $dep_string = shift;
+ $string = $dep_string;
$prj = shift;
- while ($DepString !~ /^NULL/o) {
- print_error("Project $prj has wrongly written dependencies string:\n $string") if (!$DepString);
- $DepString =~ /(\S+)\s*/o;
- $ParentPrj = $1;
- $DepString = $';
- if ($ParentPrj =~ /\.(\w+)$/o) {
- $ParentPrj = $`;
- if (($prj_platform{$ParentPrj} ne $1) &&
- ($prj_platform{$ParentPrj} ne 'all')) {
- print_error ("$ParentPrj\.$1 is a wrongly dependency identifier!\nCheck if it is platform dependent");
+ while ($dep_string !~ /^NULL/o) {
+ print_error("Project $prj has wrongly written dependencies string:\n $string") if (!$dep_string);
+ $dep_string =~ /(\S+)\s*/o;
+ $parent_prj = $1;
+ $dep_string = $';
+ if ($parent_prj =~ /\.(\w+)$/o) {
+ $parent_prj = $`;
+ if (($prj_platform{$parent_prj} ne $1) &&
+ ($prj_platform{$parent_prj} ne 'all')) {
+ print_error ("$parent_prj\.$1 is a wrongly dependency identifier!\nCheck if it is platform dependent");
};
- $AliveDependencies{$ParentPrj}++ if (CheckPlatform($1));
- push(@Dependencies, $ParentPrj);
+ $alive_dependencies{$parent_prj}++ if (check_platform($1));
+ push(@dependencies, $parent_prj);
} else {
- if ((exists($prj_platform{$ParentPrj})) &&
- ($prj_platform{$ParentPrj} ne 'all') ) {
- print_error("$ParentPrj is a wrongly used dependency identifier!\nCheck if it is platform dependent");
+ if ((exists($prj_platform{$parent_prj})) &&
+ ($prj_platform{$parent_prj} ne 'all') ) {
+ print_error("$parent_prj is a wrongly used dependency identifier!\nCheck if it is platform dependent");
};
- push(@Dependencies, $ParentPrj);
+ push(@dependencies, $parent_prj);
};
};
- return @Dependencies;
+ return @dependencies;
};
#
# Getting current directory list
#
-sub GetDirectoryList {
- my ($Path);
- $Path = shift;
- opendir(CurrentDirList, $Path);
- @DirectoryList = readdir(CurrentDirList);
+sub get_directory_list {
+ my $path = shift;
+ opendir(CurrentDirList, $path);
+ my @directory_list = readdir(CurrentDirList);
closedir(CurrentDirList);
- return @DirectoryList;
+ return @directory_list;
};
sub print_error {
@@ -1641,7 +1602,7 @@ sub get_options {
};
if ($interactive) {
$html++; # enable html page generation...
- $local_host_name = hostname();
+ my $local_host_name = hostname();
$local_host_ip = inet_ntoa(scalar(gethostbyname($local_host_name)) || 'localhost');
}
# Default build modes(for OpenOffice.org)
@@ -1702,14 +1663,14 @@ sub get_switch_options {
#
sub cancel_build {
# close_server_socket();
- my $broken_modules_number = scalar @broken_modules_names;
+ my $broken_modules_number = scalar @broken_module_names;
my $message_part = 'build ';
if (scalar keys %incompatibles) {
my @incompatible_modules = keys %incompatibles;
if ($stop_build_on_error) {
- $message_part .= "--from @incompatible_modules:@broken_modules_names\n";
+ $message_part .= "--from @incompatible_modules:@broken_module_names\n";
} else {
- $message_part .= "--from @broken_modules_names\n";
+ $message_part .= "--from @broken_module_names\n";
};
} else {
if ($processes_to_run) {
@@ -1717,14 +1678,14 @@ sub cancel_build {
} else {
$message_part .= "--all:";
};
- $message_part .= "@broken_modules_names\n";
+ $message_part .= "@broken_module_names\n";
};
if ($broken_modules_number && $build_all_parents) {
print "\n";
print $broken_modules_number;
print " module(s): ";
- foreach (@broken_modules_names) {
+ foreach (@broken_module_names) {
print "\n\t$_";
};
print "\nneed(s) to be rebuilt\n\nReason(s):\n\n";
@@ -1780,38 +1741,20 @@ sub handle_dead_children {
my $try_once_more = 0;
do {
my $pid = 0;
- if ($ENV{GUI} eq 'WNT' && !$cygwin) {
- foreach $pid (keys %processes_hash) {
- my $exit_code = undef;
- my $proc_obj = $windows_procs{$pid};
- $proc_obj->GetExitCode($exit_code);
- if ( $exit_code != 259 ) {
- $try_once_more = store_error($pid, $exit_code);
- delete $windows_procs{$pid};
- if ($try_once_more) {
- give_second_chance($pid);
- } else {
- clear_from_child($pid);
- };
- };
- };
- sleep 1 if (children_number() >= $processes_to_run || ($force_wait && ($running_children == children_number())));
+ if (children_number() >= $processes_to_run ||
+ ($force_wait && ($running_children == children_number()))) {
+ $pid = wait();
} else {
- if (children_number() >= $processes_to_run ||
- ($force_wait && ($running_children == children_number()))) {
- $pid = wait();
+ $pid = waitpid( -1, &WNOHANG);
+ };
+ if ($pid > 0) {
+ $try_once_more = store_error($pid, $?);
+ if ($try_once_more) {
+ give_second_chance($pid);
} else {
- $pid = waitpid( -1, &WNOHANG);
- };
- if ($pid > 0) {
- $try_once_more = store_error($pid, $?);
- if ($try_once_more) {
- give_second_chance($pid);
- } else {
- clear_from_child($pid);
- };
- $finisched_children++;
+ clear_from_child($pid);
};
+ $finisched_children++;
};
} while(children_number() >= $processes_to_run);
};
@@ -1884,7 +1827,7 @@ sub build_dependent {
mp_success_exit();
} else {
if (dmake_dir($child_nick)) {
- push(@broken_modules_names, $module_by_hash{$dependencies_hash});
+ push(@broken_module_names, $module_by_hash{$dependencies_hash});
cancel_build();
};
};
@@ -1943,19 +1886,19 @@ sub store_pid {
# Build everything that should be built multiprocessing version
#
sub build_multiprocessing {
- my $Prj;
+ my $prj;
do {
my $got_module = 0;
$finisched_children = 0;
- while ($Prj = pick_prj_to_build(\%global_deps_hash)) {
- if (!defined $projects_deps_hash{$Prj}) {
- $projects_deps_hash{$Prj} = {};
- get_module_dep_hash($Prj, $projects_deps_hash{$Prj});
- my $info_hash = $html_info{$Prj};
- $$info_hash{DIRS} = check_deps_hash($projects_deps_hash{$Prj}, $Prj);
- $module_by_hash{$projects_deps_hash{$Prj}} = $Prj;
+ while ($prj = pick_prj_to_build(\%global_deps_hash)) {
+ if (!defined $projects_deps_hash{$prj}) {
+ $projects_deps_hash{$prj} = {};
+ get_module_dep_hash($prj, $projects_deps_hash{$prj});
+ my $info_hash = $html_info{$prj};
+ $$info_hash{DIRS} = check_deps_hash($projects_deps_hash{$prj}, $prj);
+ $module_by_hash{$projects_deps_hash{$prj}} = $prj;
}
- $module_build_queue{$Prj}++;
+ $module_build_queue{$prj}++;
$got_module++;
};
if (!$got_module) {
@@ -1984,7 +1927,7 @@ sub build_multiprocessing {
sub mp_success_exit {
# close_server_socket();
# if (!$custom_job && $post_custom_job) {
-# do_post_custom_job(CorrectPath($StandDir.$initial_module));
+# do_post_custom_job(correct_path($workspace_path.$initial_module));
# };
print "\nMultiprocessing build is finished\n";
print "Maximal number of processes run: $maximal_processes\n";
@@ -2000,8 +1943,7 @@ sub build_actual_queue {
do {
my @sorted_queue = sort {(scalar keys %{$projects_deps_hash{$a}}) <=> (scalar keys %{$projects_deps_hash{$b}})} keys %$build_queue;
my $started_children = 0;
-# foreach $Prj (@sorted_queue) {
- foreach $Prj (keys %$build_queue) {
+ foreach my $prj (keys %$build_queue) {
get_html_orders();
if ($reschedule_queue) {
$reschedule_queue = 0;
@@ -2014,19 +1956,19 @@ sub build_actual_queue {
};
return;
};
- if (defined $modules_with_errors{$projects_deps_hash{$Prj}} && !$ignore) {
- push (@broken_modules_names, $Prj);
- delete $$build_queue{$Prj};
+ if (defined $modules_with_errors{$projects_deps_hash{$prj}} && !$ignore) {
+ push (@broken_module_names, $prj);
+ delete $$build_queue{$prj};
next;
};
- $started_children += build_dependent($projects_deps_hash{$Prj});
- if ((!scalar keys %{$projects_deps_hash{$Prj}}) &&
- !$running_children{$projects_deps_hash{$Prj}}) {
- if (!defined $modules_with_errors{$projects_deps_hash{$Prj}} || $ignore)
+ $started_children += build_dependent($projects_deps_hash{$prj});
+ if ((!scalar keys %{$projects_deps_hash{$prj}}) &&
+ !$running_children{$projects_deps_hash{$prj}}) {
+ if (!defined $modules_with_errors{$projects_deps_hash{$prj}} || $ignore)
{
- remove_from_dependencies($Prj, \%global_deps_hash);
- $build_is_finished{$Prj}++;
- delete $$build_queue{$Prj};
+ remove_from_dependencies($prj, \%global_deps_hash);
+ $build_is_finished{$prj}++;
+ delete $$build_queue{$prj};
$finished_projects++;
};
};
@@ -2045,6 +1987,7 @@ sub build_actual_queue {
sub run_job {
my ($job, $path, $registered_name) = @_;
my $job_to_do = $job;
+ my $error_code = 0;
print "$registered_name\n";
return 0 if ( $show );
$job_to_do = $deliver_command if ($job eq 'deliver');
@@ -2102,38 +2045,38 @@ sub do_custom_job {
# Print announcement for module just started
#
sub announce_module {
- my $Prj = shift;
- $build_in_progress{$Prj}++;
- print_announce($Prj);
+ my $prj = shift;
+ $build_in_progress{$prj}++;
+ print_announce($prj);
};
sub print_announce {
- my $Prj = shift;
- return if (defined $module_announced{$Prj});
+ my $prj = shift;
+ return if (defined $module_announced{$prj});
my $prj_type = '';
- $prj_type = $modules_types{$Prj} if (defined $modules_types{$Prj});
+ $prj_type = $modules_types{$prj} if (defined $modules_types{$prj});
my $text;
if ($prj_type eq 'lnk') {
- if (!defined $active_modules{$Prj}) {
- $text = "Skipping module $Prj\n";
+ if (!defined $active_modules{$prj}) {
+ $text = "Skipping module $prj\n";
} else {
- $text = "Skipping link to $Prj\n";
+ $text = "Skipping link to $prj\n";
};
- $build_is_finished{$Prj}++;
+ $build_is_finished{$prj}++;
} elsif ($prj_type eq 'img') {
- $text = "Skipping incomplete $Prj\n";
- $build_is_finished{$Prj}++;
+ $text = "Skipping incomplete $prj\n";
+ $build_is_finished{$prj}++;
} elsif ($custom_job) {
- $text = "Running custom job \"$custom_job\" in module $Prj\n";
+ $text = "Running custom job \"$custom_job\" in module $prj\n";
} else {
- $text = "Building module $Prj\n";
+ $text = "Building module $prj\n";
};
my $announce_string = $new_line;
$announce_string .= $echo . "=============\n";
$announce_string .= $echo . $text;
$announce_string .= $echo . "=============\n";
print $announce_string;
- $module_announced{$Prj}++;
+ $module_announced{$prj}++;
};
sub are_all_dependent {
@@ -2180,7 +2123,7 @@ sub modules_classify {
#
sub provide_consistency {
check_dir();
- foreach $var_ref (\$build_all_cont, \$build_since) {
+ foreach my $var_ref (\$build_all_cont, \$build_since) {
if ($$var_ref) {
return if (defined $module_paths{$$var_ref});
print_error("Cannot find module '$$var_ref'", 9);
@@ -2235,7 +2178,7 @@ sub clear_module {
closedir(DIRHANDLE);
foreach (@dir_content) {
next if (/^\.+$/);
- my $dir = CorrectPath($module_paths{$module}.'/'.$_);
+ my $dir = correct_path($module_paths{$module}.'/'.$_);
if ((!-d $dir.'/.svn') && is_output_tree($dir)) {
#print "I would delete $dir\n";
rmtree("$dir", 0, 1);
@@ -2297,7 +2240,7 @@ sub retrieve_build_list {
$solver_inc_dir .= '/inc';
$solver_inc_dir .= $ENV{UPDMINOREXT} if (defined $ENV{UPDMINOREXT});
$solver_inc_dir .= "/$module";
- $solver_inc_dir = CorrectPath($solver_inc_dir);
+ $solver_inc_dir = correct_path($solver_inc_dir);
$dead_parents{$module}++;
print "Fetching dependencies for module $module from solver...";
foreach (@possible_build_lists) {
@@ -2324,7 +2267,7 @@ sub fix_permissions {
};
sub prepare_build_from_with_branches {
- ($full_deps_hash, $reversed_full_deps_hash) = @_;
+ my ($full_deps_hash, $reversed_full_deps_hash) = @_;
foreach my $prerequisite (keys %$full_deps_hash) {
foreach my $dependent_module (keys %incompatibles) {
if (defined ${$$reversed_full_deps_hash{$prerequisite}}{$dependent_module}) {
@@ -2419,7 +2362,7 @@ sub prepare_build_all_cont {
$border_prj = $build_all_cont if ($build_all_cont);
$border_prj = $build_since if ($build_since);
while ($prj = pick_prj_to_build($deps_hash)) {
- $orig_prj = '';
+ my $orig_prj = '';
$orig_prj = $` if ($prj =~ /\.lnk$/o);
$orig_prj = $` if ($prj =~ /\.link$/o);
if (($border_prj ne $prj) &&
@@ -2498,7 +2441,7 @@ sub get_workspace_platforms {
my $workspace_patforms = shift;
my $solver_path = $ENV{SOLARVERSION};
opendir(SOLVERDIR, $solver_path);
- @dir_list = readdir(SOLVERDIR);
+ my @dir_list = readdir(SOLVERDIR);
close SOLVERDIR;
foreach (@dir_list) {
next if /^common/;
@@ -2625,7 +2568,7 @@ sub read_ssolar_vars {
my ($verswitch, $source_root, $cwsname);
$verswitch = "-ver $ENV{UPDMINOR}" if (defined $ENV{UPDMINOR});
$source_root = '-sourceroot' if (defined $ENV{SOURCE_ROOT_USED});
- $cws_name = "-cwsname $ENV{CWS_WORK_STAMP}" if (defined $ENV{CWS_WORK_STAMP});
+ my $cws_name = "-cwsname $ENV{CWS_WORK_STAMP}" if (defined $ENV{CWS_WORK_STAMP});
my $param = "-$ENV{WORK_STAMP} $verswitch $source_root $cws_name $pro $platform";
my $ss_command = "$perl $setsolar -file $tmp_file $param $nul";
@@ -2662,8 +2605,8 @@ sub get_solar_vars {
sub get_current_module {
my $module_name = shift;
my $link_name = $module_name . '.lnk';
- $link_name .= '.link' if (-e $StandDir.$module_name . '.link');
- chdir $StandDir;
+ $link_name .= '.link' if (-e $workspace_path.$module_name . '.link');
+ chdir $workspace_path;
getcwd();
print "\nBreaking link to module $module_name";
my $result = rename $link_name, $module_name;
@@ -2684,7 +2627,7 @@ sub check_dir {
if (($current_module =~ /(\.lnk)$/) || ($current_module =~ /(\.link)$/)) {
$current_module = $`;
# we're dealing with a link => fallback to SOLARSRC under UNIX
- $StandDir = $ENV{SOLARSRC}.'/';
+ $workspace_path = $ENV{SOLARSRC}.'/';
get_current_module($current_module);
return;
} else {
@@ -2737,9 +2680,9 @@ sub do_exit {
if ( $^O eq 'os2' )
{
# perl 5.10 returns 'resource busy' for rmtree
- rmdir(CorrectPath($tmp_dir)) if ($tmp_dir);
+ rmdir(correct_path($tmp_dir)) if ($tmp_dir);
}
- rmtree(CorrectPath($tmp_dir), 0, 0) if ($tmp_dir);
+ rmtree(correct_path($tmp_dir), 0, 0) if ($tmp_dir);
print STDERR "Cannot delete $tmp_dir. Please remove it manually\n" if (-d $tmp_dir);
exit($exit_code);
};
@@ -2756,7 +2699,7 @@ sub sort_modules_appearance {
delete $build_in_progress{$_} if (defined $build_in_progress{$_});
delete $build_in_progress_shown{$_} if (defined $build_in_progress_shown{$_});
};
- @modules_order = sort keys %modules_with_errors;
+ my @modules_order = sort keys %modules_with_errors;
foreach (keys %modules_with_errors) {
delete $build_in_progress{$_} if (defined $build_in_progress{$_});
delete $build_is_finished{$_} if (defined $build_is_finished{$_});
@@ -3460,7 +3403,7 @@ sub run_server {
print $new_socket_obj $job_string_base . $job_string;
$clients_jobs{$pid} = $job_string;
$clients_times{$pid} = time;
- $children_running = children_number();
+ my $children_running = children_number();
$verbose_mode && print 'Running processes: ', $children_running, "\n";
$maximal_processes = $children_running if ($children_running > $maximal_processes);
} else {
@@ -3542,23 +3485,23 @@ sub pick_jobdir {
my $build_queue = shift;
my $i = 0;
foreach (@$build_queue) {
- $Prj = $$build_queue[$i];
- my $prj_deps_hash = $projects_deps_hash{$Prj};
+ my $prj = $$build_queue[$i];
+ my $prj_deps_hash = $projects_deps_hash{$prj};
if (defined $modules_with_errors{$prj_deps_hash} && !$ignore) {
- push (@broken_modules_names, $Prj);
+ push (@broken_module_names, $prj);
splice (@$build_queue, $i, 1);
next;
};
$running_children{$prj_deps_hash} = 0 if (!defined $running_children{$prj_deps_hash});
- $child_nick = pick_prj_to_build($prj_deps_hash);
+ my $child_nick = pick_prj_to_build($prj_deps_hash);
if ($child_nick) {
return ($child_nick, $prj_deps_hash);
}
if ((!scalar keys %$prj_deps_hash) && !$running_children{$prj_deps_hash}) {
if (!defined $modules_with_errors{$prj_deps_hash} || $ignore)
{
- remove_from_dependencies($Prj, \%global_deps_hash);
- $build_is_finished{$Prj}++;
+ remove_from_dependencies($prj, \%global_deps_hash);
+ $build_is_finished{$prj}++;
splice (@$build_queue, $i, 1);
next;
};
@@ -3569,16 +3512,16 @@ sub pick_jobdir {
sub fill_modules_queue {
my $build_queue = shift;
- my $Prj;
- while ($Prj = pick_prj_to_build(\%global_deps_hash)) {
- push @$build_queue, $Prj;
- $projects_deps_hash{$Prj} = {};
- get_module_dep_hash($Prj, $projects_deps_hash{$Prj});
- my $info_hash = $html_info{$Prj};
- $$info_hash{DIRS} = check_deps_hash($projects_deps_hash{$Prj}, $Prj);
- $module_by_hash{$projects_deps_hash{$Prj}} = $Prj;
- };
- if (!$Prj && !children_number() && (!scalar @$build_queue)) {
+ my $prj;
+ while ($prj = pick_prj_to_build(\%global_deps_hash)) {
+ push @$build_queue, $prj;
+ $projects_deps_hash{$prj} = {};
+ get_module_dep_hash($prj, $projects_deps_hash{$prj});
+ my $info_hash = $html_info{$prj};
+ $$info_hash{DIRS} = check_deps_hash($projects_deps_hash{$prj}, $prj);
+ $module_by_hash{$projects_deps_hash{$prj}} = $prj;
+ };
+ if (!$prj && !children_number() && (!scalar @$build_queue)) {
cancel_build() if (scalar keys %broken_build);
mp_success_exit();
};
diff --git a/solenv/bin/cws.pl b/solenv/bin/cws.pl
index 439ce02e2742..bf9ce9508d38 100644
--- a/solenv/bin/cws.pl
+++ b/solenv/bin/cws.pl
@@ -74,8 +74,8 @@ my @valid_commands = (
my %valid_options_hash = (
'help' => ['help'],
'create' => ['help', 'milestone', 'migration', 'hg'],
- 'fetch' => ['help', 'milestone', 'childworkspace','platforms','quiet',
- 'onlysolver'],
+ 'fetch' => ['help', 'milestone', 'childworkspace','platforms','noautocommon',
+ 'quiet', 'onlysolver'],
'query' => ['help', 'milestone','masterworkspace','childworkspace'],
'task' => ['help'],
'setcurrent' => ['help', 'milestone'],
@@ -120,6 +120,7 @@ sub parse_command_line
'profile',
'commit|C',
'platforms|p=s',
+ 'noautocommon|x=s',
'onlysolver|o',
'quiet|q',
'help|h'
@@ -445,7 +446,7 @@ sub hg_clone_cws_or_milestone
require LWP::Simple;
my $content = LWP::Simple::get($cws_remote_source);
my $pattern = "<title>cws/". $cws->child();
- if ( $content =~ /$pattern/ ) {
+ if ( $content && $content =~ /$pattern/ ) {
$pull_from_remote = 1;
}
else {
@@ -1457,21 +1458,28 @@ sub do_help
print STDERR "fetch: fetch a milestone or CWS\n";
print STDERR "usage: fetch [-q] [-p platforms] [-o] <-m milestone> <workspace>\n";
print STDERR "usage: fetch [-q] [-p platforms] [-o] <-c cws> <workspace>\n";
+ print STDERR "usage: fetch [-q] [-x platforms] [-o] <-m milestone> <workspace>\n";
+ print STDERR "usage: fetch [-q] [-x platforms] [-o] <-c cws> <workspace>\n";
print STDERR "usage: fetch [-q] <-m milestone> <workspace>\n";
print STDERR "usage: fetch [-q] <-c cws> <workspace>\n";
- print STDERR "\t-m milestone: Checkout milestone <milestone> to workspace <workspace>\n";
- print STDERR "\t Use 'latest' for the for lastest published milestone on the current master\n";
- print STDERR "\t For cross master checkouts use the form <MWS>:<milestone>\n";
- print STDERR "\t--milestone milestone: Same as -m milestone\n";
- print STDERR "\t-c childworkspace: Checkout CWS <childworkspace> to workspace <workspace>\n";
- print STDERR "\t--child childworkspace: Same as -c childworkspace\n";
- print STDERR "\t-p platform: Copy one or more prebuilt platforms 'platform'. \n";
- print STDERR "\t Separate multiple platforms with commas.\n";
- print STDERR "\t--platforms platform: Same as -p\n";
- print STDERR "\t-o Omit checkout of sources, copy only solver. \n";
- print STDERR "\t--onlysolver: Same as -o\n";
- print STDERR "\t-q Silence some of the output of the command.\n";
- print STDERR "\t--quiet: Same as -q\n";
+ print STDERR "\t-m milestone: Checkout milestone <milestone> to workspace <workspace>\n";
+ print STDERR "\t Use 'latest' for the for lastest published milestone on the current master\n";
+ print STDERR "\t For cross master checkouts use the form <MWS>:<milestone>\n";
+ print STDERR "\t--milestone milestone: Same as -m milestone\n";
+ print STDERR "\t-c childworkspace: Checkout CWS <childworkspace> to workspace <workspace>\n";
+ print STDERR "\t--child childworkspace: Same as -c childworkspace\n";
+ print STDERR "\t-p platform: Copy one or more prebuilt platforms 'platform'. \n";
+ print STDERR "\t Separate multiple platforms with commas.\n";
+ print STDERR "\t Automatically adds 'common[.pro]' as required.\n";
+ print STDERR "\t--platforms platform: Same as -p\n";
+ print STDERR "\t-x platform: Copy one or more prebuilt platforms 'platform'. \n";
+ print STDERR "\t Separate multiple platforms with commas.\n";
+ print STDERR "\t Does not automatically adds 'common[.pro]'.\n";
+ print STDERR "\t--noautocommon platform: Same as -x\n";
+ print STDERR "\t-o: Omit checkout of sources, copy only solver. \n";
+ print STDERR "\t--onlysolver: Same as -o\n";
+ print STDERR "\t-q: Silence some of the output of the command.\n";
+ print STDERR "\t--quiet: Same as -q\n";
}
elsif ($arg eq 'setcurrent') {
print STDERR "setcurrent: Set the current milestone for the CWS (only hg based CWSs)\n";
@@ -1576,6 +1584,7 @@ sub do_fetch
my $milestone_opt = $options_ref->{'milestone'};
my $child = $options_ref->{'childworkspace'};
my $platforms = $options_ref->{'platforms'};
+ my $noautocommon = $options_ref->{'noautocommon'};
my $quiet = $options_ref->{'quiet'} ? 1 : 0 ;
my $switch = $options_ref->{'switch'} ? 1 : 0 ;
my $onlysolver = $options_ref->{'onlysolver'} ? 1 : 0 ;
@@ -1590,8 +1599,13 @@ sub do_fetch
do_help(['fetch']);
}
- if ( $onlysolver && !defined($platforms) ) {
- print_error("Option '-o' is Only usuable combination with option '-p'.", 0);
+ if ( defined($platforms) && defined($noautocommon) ) {
+ print_error("Options -p and -x are mutally exclusive", 0);
+ do_help(['fetch']);
+ }
+
+ if ( $onlysolver && !(defined($platforms) || defined($noautocommon)) ) {
+ print_error("Option '-o' is Only usuable combination with option '-p' or '-x'.", 0);
do_help(['fetch']);
}
@@ -1634,42 +1648,47 @@ sub do_fetch
# Check early for platforms so we can bail out before anything time consuming is done
# in case of a missing platform
my @platforms;
- if ( defined($platforms) ) {
+ if ( defined($platforms) || defined($noautocommon) ) {
use Archive::Zip; # warn early if module is missing
if ( !defined($prebuild_dir ) ) {
print_error("PREBUILD_BINARIES not configured, can't find platform solvers", 99);
}
$prebuild_dir = "$prebuild_dir/$masterws";
- @platforms = split(/,/, $platforms);
+ if ( defined($platforms) ) {
+ @platforms = split(/,/, $platforms);
- my $added_product = 0;
- my $added_nonproduct = 0;
- foreach(@platforms) {
- if ( $_ eq 'common.pro' ) {
- $added_product = 1;
- print_warning("'$_' is added automatically to the platform list, don't specify it explicit");
- }
- if ( $_ eq 'common' ) {
- $added_nonproduct = 1;
- print_warning("'$_' is added automatically to the platform list, don't specify it explicit");
- }
- }
-
- # add common.pro/common to platform list
- if ( $so_svn_server ) {
- my $product = 0;
- my $nonproduct = 0;
+ my $added_product = 0;
+ my $added_nonproduct = 0;
foreach(@platforms) {
- if ( /\.pro$/ ) {
- $product = 1;
+ if ( $_ eq 'common.pro' ) {
+ $added_product = 1;
+ print_warning("'$_' is added automatically to the platform list, don't specify it explicit");
}
- else {
- $nonproduct = 1;
+ if ( $_ eq 'common' ) {
+ $added_nonproduct = 1;
+ print_warning("'$_' is added automatically to the platform list, don't specify it explicit");
}
}
- unshift(@platforms, 'common.pro') if ($product && !$added_product);
- unshift(@platforms, 'common') if ($nonproduct && !$added_nonproduct);
+
+ # add common.pro/common to platform list
+ if ( $so_svn_server ) {
+ my $product = 0;
+ my $nonproduct = 0;
+ foreach(@platforms) {
+ if ( /\.pro$/ ) {
+ $product = 1;
+ }
+ else {
+ $nonproduct = 1;
+ }
+ }
+ unshift(@platforms, 'common.pro') if ($product && !$added_product);
+ unshift(@platforms, 'common') if ($nonproduct && !$added_nonproduct);
+ }
+ }
+ else {
+ @platforms = split(/,/, $noautocommon);
}
foreach(@platforms) {
@@ -1733,7 +1752,7 @@ sub do_fetch
}
}
- if ( defined($platforms) ) {
+ if ( defined($platforms) || defined($noautocommon) ) {
if ( !-d $workspace ) {
if ( !mkdir($workspace) ) {
print_error("Can't create directory '$workspace': $!.", 8);
diff --git a/solenv/bin/modules/SourceConfig.pm b/solenv/bin/modules/SourceConfig.pm
index dfaa797d8f48..116a5e9fb893 100755
--- a/solenv/bin/modules/SourceConfig.pm
+++ b/solenv/bin/modules/SourceConfig.pm
@@ -388,7 +388,18 @@ sub add_active_repositories {
sub add_active_modules {
my $self = shift;
- $self->{NEW_MODULES} = shift;
+ my $module_list_ref = shift;
+ my $ignored_modules_string = '';
+ my @real_modules = ();
+ foreach my $module (sort @$module_list_ref) {
+ if ($self->get_module_path($module)) {
+ push(@real_modules, $module);
+ } else {
+ $ignored_modules_string .= " $module";
+ };
+ };
+ push (@{$self->{WARNINGS}}, "\nWARNING: following modules are not found in active repositories, and have not been added to the " . $self->get_config_file_default_path() . ":$ignored_modules_string\n") if ($ignored_modules_string);
+ $self->{NEW_MODULES} = \@real_modules;
croak('Empty module list passed for addition to source_config') if (!scalar @{$self->{NEW_MODULES}});
$self->{VERBOSE} = shift;
generate_config_file($self);
diff --git a/solenv/bin/modules/installer/simplepackage.pm b/solenv/bin/modules/installer/simplepackage.pm
index 7936b6d00377..d76b81a55850 100644
--- a/solenv/bin/modules/installer/simplepackage.pm
+++ b/solenv/bin/modules/installer/simplepackage.pm
@@ -347,9 +347,10 @@ sub replace_one_variable_in_shellscript
sub replace_variables_in_scriptfile
{
- my ($scriptfile, $volume_name, $allvariables) = @_;
+ my ($scriptfile, $volume_name, $volume_name_app, $allvariables) = @_;
replace_one_variable_in_shellscript($scriptfile, $volume_name, "FULLPRODUCTNAME" );
+ replace_one_variable_in_shellscript($scriptfile, $volume_name_app, "FULLAPPPRODUCTNAME" );
replace_one_variable_in_shellscript($scriptfile, $allvariables->{'PRODUCTNAME'}, "PRODUCTNAME" );
replace_one_variable_in_shellscript($scriptfile, $allvariables->{'PRODUCTVERSION'}, "PRODUCTVERSION" );
@@ -408,10 +409,17 @@ sub create_package
$folder = $packagename;
}
- my $volume_name = $allvariables->{'PRODUCTNAME'} . ' ' . $allvariables->{'PRODUCTVERSION'};
- $volume_name = $volume_name . ' ' . $allvariables->{'PRODUCTEXTENSION'} if $allvariables->{'PRODUCTEXTENSION'};
+ # my $volume_name = $allvariables->{'PRODUCTNAME'} . ' ' . $allvariables->{'PRODUCTVERSION'}; # Adding PRODUCTVERSION makes this difficult to maintain!
+ my $volume_name = $allvariables->{'PRODUCTNAME'};
+ my $volume_name_classic = $allvariables->{'PRODUCTNAME'} . ' ' . $allvariables->{'PRODUCTVERSION'};
+ my $volume_name_classic_app = $volume_name; # "app" should not contain version number
+ # $volume_name = $volume_name . ' ' . $allvariables->{'PRODUCTEXTENSION'} if $allvariables->{'PRODUCTEXTENSION'}; # Adding PRODUCTEXTENSION makes this difficult to maintain!
+ $volume_name_classic = $volume_name_classic . ' ' . $allvariables->{'PRODUCTEXTENSION'} if $allvariables->{'PRODUCTEXTENSION'};
+ $volume_name_classic_app = $volume_name_classic_app . ' ' . $allvariables->{'PRODUCTEXTENSION'} if $allvariables->{'PRODUCTEXTENSION'};
if ( $allvariables->{'DMG_VOLUMEEXTENSION'} ) {
$volume_name = $volume_name . ' ' . $allvariables->{'DMG_VOLUMEEXTENSION'};
+ $volume_name_classic = $volume_name_classic . ' ' . $allvariables->{'DMG_VOLUMEEXTENSION'};
+ $volume_name_classic_app = $volume_name_classic_app . ' ' . $allvariables->{'DMG_VOLUMEEXTENSION'};
}
my $sla = 'sla.r';
@@ -427,11 +435,22 @@ sub create_package
if (( $installer::globals::languagepack ) || ( $installer::globals::patch ))
{
$localtempdir = "$tempdir/$packagename";
- if ( $installer::globals::languagepack ) { $volume_name = "$volume_name Language Pack"; }
- if ( $installer::globals::patch ) { $volume_name = "$volume_name Patch"; }
+ if ( $installer::globals::languagepack )
+ {
+ $volume_name = "$volume_name Language Pack";
+ $volume_name_classic = "$volume_name_classic Language Pack";
+ $volume_name_classic_app = "$volume_name_classic_app Language Pack";
+ }
+ if ( $installer::globals::patch )
+ {
+ $volume_name = "$volume_name Patch";
+ $volume_name_classic = "$volume_name_classic Patch";
+ $volume_name_classic_app = "$volume_name_classic_app Patch";
+ }
# Create tar ball named tarball.tar.bz2
- my $appfolder = $localtempdir . "/" . $volume_name . "\.app";
+ # my $appfolder = $localtempdir . "/" . $volume_name . "\.app";
+ my $appfolder = $localtempdir . "/" . $volume_name_classic_app . "\.app";
my $contentsfolder = $appfolder . "/Contents";
my $tarballname = "tarball.tar.bz2";
@@ -474,7 +493,8 @@ sub create_package
if ( $installer::globals::languagepack ) { $scriptfilename = "osx_install_languagepack.applescript"; }
if ( $installer::globals::patch ) { $scriptfilename = "osx_install_patch.applescript"; }
my $scripthelpersolverfilename = "mac_install.script";
- my $scripthelperrealfilename = $volume_name;
+ # my $scripthelperrealfilename = $volume_name;
+ my $scripthelperrealfilename = $volume_name_classic_app;
my $translationfilename = $installer::globals::macinstallfilename;
# Finding both files in solver
@@ -497,7 +517,8 @@ sub create_package
my $scriptfilecontent = installer::files::read_file($scriptfilename);
my $translationfilecontent = installer::files::read_file($$translationfileref);
localize_scriptfile($scriptfilecontent, $translationfilecontent, $languagestringref);
- replace_variables_in_scriptfile($scriptfilecontent, $volume_name, $allvariables);
+ # replace_variables_in_scriptfile($scriptfilecontent, $volume_name, $allvariables);
+ replace_variables_in_scriptfile($scriptfilecontent, $volume_name_classic, $volume_name_classic_app, $allvariables);
installer::files::save_file($scriptfilename, $scriptfilecontent);
$systemcall = "chmod 775 " . "\"" . $scriptfilename . "\"";
@@ -524,7 +545,8 @@ sub create_package
# Replacing variables in Info.plist
$scriptfilecontent = installer::files::read_file($destfile);
- replace_one_variable_in_shellscript($scriptfilecontent, $volume_name, "FULLPRODUCTNAME" );
+ # replace_one_variable_in_shellscript($scriptfilecontent, $volume_name, "FULLPRODUCTNAME" );
+ replace_one_variable_in_shellscript($scriptfilecontent, $volume_name_classic_app, "FULLAPPPRODUCTNAME" ); # OpenOffice.org Language Pack
installer::files::save_file($destfile, $scriptfilecontent);
chdir $localfrom;
diff --git a/solenv/bin/modules/installer/substfilenamefiles.pm b/solenv/bin/modules/installer/substfilenamefiles.pm
index 12cb6ab8eb4f..fd9557ff81c0 100644
--- a/solenv/bin/modules/installer/substfilenamefiles.pm
+++ b/solenv/bin/modules/installer/substfilenamefiles.pm
@@ -34,16 +34,13 @@ use installer::pathanalyzer;
use installer::systemactions;
#########################################################
-# Analyzing files with flag SCPZIP_REPLACE
-# $item can be "File" or "ScpAction"
+# Analyzing files with flag SUBST_FILENAME
#########################################################
sub resolving_subst_filename_flag
{
my ($filesarrayref, $variableshashref, $languagestringref) = @_;
- my $diritem = lc($item);
-
my $replacedirbase = installer::systemactions::create_directories("change_filename", $languagestringref);
installer::logger::include_header_into_logfile("Files with flag SUBST_FILENAME:");
diff --git a/solenv/bin/modules/installer/windows/msiglobal.pm b/solenv/bin/modules/installer/windows/msiglobal.pm
index 9f2d21f8b7f8..716f63499a02 100644
--- a/solenv/bin/modules/installer/windows/msiglobal.pm
+++ b/solenv/bin/modules/installer/windows/msiglobal.pm
@@ -1696,7 +1696,6 @@ sub include_cabs_into_msi
$msifilename = installer::converter::make_path_conform($msifilename);
# msidb.exe really wants backslashes. (And double escaping because system() expands the string.)
- $idtdirbase =~ s/\//\\\\/g;
$msifilename =~ s/\//\\\\/g;
$extraslash = "\\";
diff --git a/solenv/bin/modules/installer/windows/property.pm b/solenv/bin/modules/installer/windows/property.pm
index 35866103d9fa..9e5557e4dacc 100644
--- a/solenv/bin/modules/installer/windows/property.pm
+++ b/solenv/bin/modules/installer/windows/property.pm
@@ -358,8 +358,8 @@ sub set_important_properties
if (( $allvariables->{'PRODUCTEXTENSION'} ) && ( $allvariables->{'PRODUCTEXTENSION'} eq "Beta" ))
{
- my $registryline = "WRITE_REGISTRY" . "\t" . "0" . "\n";
- push(@{$propertyfile}, $registryline);
+ # my $registryline = "WRITE_REGISTRY" . "\t" . "0" . "\n";
+ # push(@{$propertyfile}, $registryline);
my $betainfoline = "BETAPRODUCT" . "\t" . "1" . "\n";
push(@{$propertyfile}, $betainfoline);
}
diff --git a/solenv/inc/_tg_shl.mk b/solenv/inc/_tg_shl.mk
index 3d91783988b9..14a64e2b54ab 100644
--- a/solenv/inc/_tg_shl.mk
+++ b/solenv/inc/_tg_shl.mk
@@ -538,16 +538,6 @@ $(SHL1TARGETN) : \
.ENDIF # "$(GUI)" == "OS2"
-
-.IF "$(TESTDIR)"!=""
-.IF "$(NO_TESTS)"==""
-
-ALLTAR : runtest_$(SHL1TARGET)
-
-runtest_$(SHL1TARGET) : $(SHL1TARGETN)
- testshl $(SHL1TARGETN) sce/$(SHL1TARGET).sce -msg -skip
-.ENDIF # "$(NO_TESTS)"==""
-.ENDIF # "$(TESTDIR)"!=""
.ENDIF # "$(SHL1TARGETN)"!=""
# unroll begin
@@ -1090,16 +1080,6 @@ $(SHL2TARGETN) : \
.ENDIF # "$(GUI)" == "OS2"
-
-.IF "$(TESTDIR)"!=""
-.IF "$(NO_TESTS)"==""
-
-ALLTAR : runtest_$(SHL2TARGET)
-
-runtest_$(SHL2TARGET) : $(SHL2TARGETN)
- testshl $(SHL2TARGETN) sce/$(SHL2TARGET).sce -msg -skip
-.ENDIF # "$(NO_TESTS)"==""
-.ENDIF # "$(TESTDIR)"!=""
.ENDIF # "$(SHL2TARGETN)"!=""
# unroll begin
@@ -1642,16 +1622,6 @@ $(SHL3TARGETN) : \
.ENDIF # "$(GUI)" == "OS2"
-
-.IF "$(TESTDIR)"!=""
-.IF "$(NO_TESTS)"==""
-
-ALLTAR : runtest_$(SHL3TARGET)
-
-runtest_$(SHL3TARGET) : $(SHL3TARGETN)
- testshl $(SHL3TARGETN) sce/$(SHL3TARGET).sce -msg -skip
-.ENDIF # "$(NO_TESTS)"==""
-.ENDIF # "$(TESTDIR)"!=""
.ENDIF # "$(SHL3TARGETN)"!=""
# unroll begin
@@ -2194,16 +2164,6 @@ $(SHL4TARGETN) : \
.ENDIF # "$(GUI)" == "OS2"
-
-.IF "$(TESTDIR)"!=""
-.IF "$(NO_TESTS)"==""
-
-ALLTAR : runtest_$(SHL4TARGET)
-
-runtest_$(SHL4TARGET) : $(SHL4TARGETN)
- testshl $(SHL4TARGETN) sce/$(SHL4TARGET).sce -msg -skip
-.ENDIF # "$(NO_TESTS)"==""
-.ENDIF # "$(TESTDIR)"!=""
.ENDIF # "$(SHL4TARGETN)"!=""
# unroll begin
@@ -2746,16 +2706,6 @@ $(SHL5TARGETN) : \
.ENDIF # "$(GUI)" == "OS2"
-
-.IF "$(TESTDIR)"!=""
-.IF "$(NO_TESTS)"==""
-
-ALLTAR : runtest_$(SHL5TARGET)
-
-runtest_$(SHL5TARGET) : $(SHL5TARGETN)
- testshl $(SHL5TARGETN) sce/$(SHL5TARGET).sce -msg -skip
-.ENDIF # "$(NO_TESTS)"==""
-.ENDIF # "$(TESTDIR)"!=""
.ENDIF # "$(SHL5TARGETN)"!=""
# unroll begin
@@ -3298,16 +3248,6 @@ $(SHL6TARGETN) : \
.ENDIF # "$(GUI)" == "OS2"
-
-.IF "$(TESTDIR)"!=""
-.IF "$(NO_TESTS)"==""
-
-ALLTAR : runtest_$(SHL6TARGET)
-
-runtest_$(SHL6TARGET) : $(SHL6TARGETN)
- testshl $(SHL6TARGETN) sce/$(SHL6TARGET).sce -msg -skip
-.ENDIF # "$(NO_TESTS)"==""
-.ENDIF # "$(TESTDIR)"!=""
.ENDIF # "$(SHL6TARGETN)"!=""
# unroll begin
@@ -3850,16 +3790,6 @@ $(SHL7TARGETN) : \
.ENDIF # "$(GUI)" == "OS2"
-
-.IF "$(TESTDIR)"!=""
-.IF "$(NO_TESTS)"==""
-
-ALLTAR : runtest_$(SHL7TARGET)
-
-runtest_$(SHL7TARGET) : $(SHL7TARGETN)
- testshl $(SHL7TARGETN) sce/$(SHL7TARGET).sce -msg -skip
-.ENDIF # "$(NO_TESTS)"==""
-.ENDIF # "$(TESTDIR)"!=""
.ENDIF # "$(SHL7TARGETN)"!=""
# unroll begin
@@ -4402,16 +4332,6 @@ $(SHL8TARGETN) : \
.ENDIF # "$(GUI)" == "OS2"
-
-.IF "$(TESTDIR)"!=""
-.IF "$(NO_TESTS)"==""
-
-ALLTAR : runtest_$(SHL8TARGET)
-
-runtest_$(SHL8TARGET) : $(SHL8TARGETN)
- testshl $(SHL8TARGETN) sce/$(SHL8TARGET).sce -msg -skip
-.ENDIF # "$(NO_TESTS)"==""
-.ENDIF # "$(TESTDIR)"!=""
.ENDIF # "$(SHL8TARGETN)"!=""
# unroll begin
@@ -4954,16 +4874,6 @@ $(SHL9TARGETN) : \
.ENDIF # "$(GUI)" == "OS2"
-
-.IF "$(TESTDIR)"!=""
-.IF "$(NO_TESTS)"==""
-
-ALLTAR : runtest_$(SHL9TARGET)
-
-runtest_$(SHL9TARGET) : $(SHL9TARGETN)
- testshl $(SHL9TARGETN) sce/$(SHL9TARGET).sce -msg -skip
-.ENDIF # "$(NO_TESTS)"==""
-.ENDIF # "$(TESTDIR)"!=""
.ENDIF # "$(SHL9TARGETN)"!=""
# unroll begin
@@ -5506,16 +5416,6 @@ $(SHL10TARGETN) : \
.ENDIF # "$(GUI)" == "OS2"
-
-.IF "$(TESTDIR)"!=""
-.IF "$(NO_TESTS)"==""
-
-ALLTAR : runtest_$(SHL10TARGET)
-
-runtest_$(SHL10TARGET) : $(SHL10TARGETN)
- testshl $(SHL10TARGETN) sce/$(SHL10TARGET).sce -msg -skip
-.ENDIF # "$(NO_TESTS)"==""
-.ENDIF # "$(TESTDIR)"!=""
.ENDIF # "$(SHL10TARGETN)"!=""
# unroll begin
diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk
index a2e06a2dd244..2716c19b5268 100644
--- a/solenv/inc/minor.mk
+++ b/solenv/inc/minor.mk
@@ -1,5 +1,5 @@
RSCVERSION=300
-RSCREVISION=300m91(Build:9538)
-BUILD=9538
-LAST_MINOR=m91
+RSCREVISION=300m94(Build:9547)
+BUILD=9547
+LAST_MINOR=m94
SOURCEVERSION=DEV300
diff --git a/solenv/inc/postset.mk b/solenv/inc/postset.mk
index f16ccb554fc5..888098fde3df 100644
--- a/solenv/inc/postset.mk
+++ b/solenv/inc/postset.mk
@@ -32,7 +32,9 @@ defaultlangiso=en-US
# Complete list of all supported ISO codes
completelangiso=af \
ar \
+as \
as-IN \
+ast \
be-BY \
bo \
bg \
@@ -44,6 +46,7 @@ bn-IN \
bs \
by \
ca \
+ca-XV \
cs \
cy \
da \
@@ -67,6 +70,7 @@ gl \
gu \
gu-IN \
he \
+hi \
hi-IN \
hr \
hu \
@@ -76,6 +80,7 @@ ja \
kid \
ky \
ka \
+kab \
kk \
km \
kn \
@@ -91,7 +96,9 @@ mk \
mn \
mni \
ms \
+ml \
ml-IN \
+mr \
mr-IN \
my \
ne \
@@ -100,19 +107,26 @@ nl \
nn \
nr \
ns \
+nso \
om \
+oms \
oc \
+or \
or-IN \
pap \
+pa \
pa-IN \
pl \
ps \
pt \
pt-BR \
+gug \
+pyg \
ro \
ru \
rw \
sat \
+sa \
sa-IN \
si \
sc \
@@ -121,22 +135,27 @@ sq \
sk \
sl \
sh \
+son \
sr \
ss \
st \
sv \
sw \
sw-TZ \
+te \
te-IN \
+ti \
ti-ER \
ta \
ta-IN \
+tlh \
th \
tn \
tr \
ts \
tg \
ug \
+ur \
ur-IN \
uk \
uz \
diff --git a/solenv/inc/pstrules.mk b/solenv/inc/pstrules.mk
index 74c50ae9616d..a845b9ae86fe 100644
--- a/solenv/inc/pstrules.mk
+++ b/solenv/inc/pstrules.mk
@@ -153,24 +153,3 @@ $(PAR)/%.par :
# $(COMMAND_ECHO)$(SCPCOMP) -l $(@:b).$(LANGFILEEXT) -s $(MISC)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).pre -o $@
.ENDIF # "$(PARFILES)"!=""
-
-.IF "$(TESTDIR)"!=""
-
-# workaround for strange dmake bug:
-# if the previous block was a rule or a target, "\#" isn't recognized
-# as an escaped "#". if it was an assignment, escaping works...
-some_unique_variable_name:=1
-
-.IF "$(OS)" == "WNT"
-REGEXP:="s/^[\#].*//"
-.ELSE
-REGEXP:='s/^[\#].*//'
-.ENDIF
-
-$(MISC)/%.exp : sce/%.sce
- @@-$(RM) $@
- @@-$(RM) $(@:d)$(@:b).tst
- $(COMMAND_ECHO)$(TYPE) $< | sed $(REGEXP) | sed "s/^/test_/" > $(@:d)$(@:b).tst
- $(COMMAND_ECHO)$(TYPE) $(@:d)$(@:b).tst | sed "/test_./ w $@"
-
-.ENDIF # "$(TESTDIR)"!=""
diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk
index 706f4730a39c..c51888797a8d 100644
--- a/solenv/inc/settings.mk
+++ b/solenv/inc/settings.mk
@@ -1022,9 +1022,9 @@ LNTFLAGSOUTOBJ=-os
.IF "$(OOO_LIBRARY_PATH_VAR)" != ""
# Add SOLARLIBDIR at the begin of a (potentially previously undefined) library
# path (LD_LIBRARY_PATH, PATH, etc.; prepending avoids fetching libraries from
-# an existing office/URE installation ; the ": &&" in the bash case enables this to
-# work at the start of a recipe line that is not prefixed by "+" as well as in
-# the middle of an existing && chain:
+# an existing office/URE installation; the ": &&" enables this to work at the
+# start of a recipe line that is not prefixed by "+" as well as in the middle of
+# an existing && chain:
AUGMENT_LIBRARY_PATH = : && \
$(OOO_LIBRARY_PATH_VAR)=$(normpath, $(SOLARSHAREDBIN))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}}
AUGMENT_LIBRARY_PATH_LOCAL = : && \
diff --git a/solenv/inc/tg_shl.mk b/solenv/inc/tg_shl.mk
index 170947c21c4a..930ea0f8886e 100644
--- a/solenv/inc/tg_shl.mk
+++ b/solenv/inc/tg_shl.mk
@@ -567,16 +567,6 @@ $(SHL$(TNR)TARGETN) : \
.ENDIF # "$(GUI)" == "OS2"
-
-.IF "$(TESTDIR)"!=""
-.IF "$(NO_TESTS)"==""
-
-ALLTAR : runtest_$(SHL$(TNR)TARGET)
-
-runtest_$(SHL$(TNR)TARGET) : $(SHL$(TNR)TARGETN)
- testshl $(SHL$(TNR)TARGETN) sce/$(SHL$(TNR)TARGET).sce -msg -skip
-.ENDIF # "$(NO_TESTS)"==""
-.ENDIF # "$(TESTDIR)"!=""
.ENDIF # "$(SHL$(TNR)TARGETN)"!=""
# unroll end