diff options
Diffstat (limited to 'solenv')
293 files changed, 10507 insertions, 23508 deletions
diff --git a/solenv/bin/add-modelines b/solenv/bin/add-modelines new file mode 100755 index 000000000000..71d42090121d --- /dev/null +++ b/solenv/bin/add-modelines @@ -0,0 +1,174 @@ +#!/bin/bash + +# add-modelines, a simple script to add comments to +# the beginning and end of source files for LibreOffice devs + +# Blame goes to Jesse Adelman (at least at first) +# someone AT boldandbusted dotty-dot com +# http://www.boldandbusted.com/ +# (c) 2010 Bold and Busted LLC +# Licensed under the MPL/LGPLv3 or later +# First edit 2010-10-08 +# Updated on 2010-10-09 +# Version 0.7 + +# NOTE: At present, this script only works for files with C-like comments. +# NOTE: If you don't specify -p, the script will act on the current working directory. +# NOTE: If no arguments are specified, the defitions below are in effect. + +# TO DO +# - Deuglifiy? +# - Make source file type agnostic modelines? +# - Too many/too few comments? +# - Handle top level source directories with whitespace names? (Do they exist?) + +# Turn off globbing, helps with SourceFiles +set -f + +# POSIX +set -o posix + +# Change these to taste +FirstLine='/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */' +LastLine='/* vim:set shiftwidth=4 softtabstop=4 expandtab: */' +SourceFiles='*.cxx *.cpp *.hxx *.hpp *.c *.h' + +# Set defaults (don't change these) +ModelineReplace="false" + +# Functions + +function SetEnvironment() +{ + if [ -n "$(which tail)" -a -n "$(which head)" ]; then + { + headCMD=`which head` + tailCMD=`which tail` + } + else + { + echo "Missing head or tail, exiting..." + exit 1 + } + fi + if [ -n "$(which find)" ]; then + findCMD=`which find` + else + { + echo "Missing find, exiting..." + exit 1 + } + fi + if [ -n "$(which awk)" ]; then + awkCMD=`which awk` + else + { + echo "Missing awk, exiting..." + exit 1 + } + fi +} + +function EditFile() +{ + local FileToEdit + local currentFirstLine + local currentLastLine + + FileToEdit="$1" + + currentFirstLine=`$headCMD -1 "$FileToEdit"` + currentLastLine=`$tailCMD -1 "$FileToEdit"` + + case "$ModelineReplace" in + "true" ) + if [ "${currentFirstLIne:0:6}" = "${FirstLine:0:6}" ]; then + { + echo "$FirstLine" > "$FileToEdit".new + $tailCMD -n +2 "$FileToEdit" >> "$FileToEdit".new + } + fi + if [ -e "$FileToEdit.new" ]; then + { + echo "$LastLine" >> "$FileToEdit".new + } + fi + if [ "${currentLastLine:0:6}" = "${LastLine:0:6}" ]; then + { + $headCMD -n -1 "$FileToEdit" > "$FileToEdit".new + echo "$LastLine" >> "$FileToEdit".new + } + fi + mv "$FileToEdit".new "$FileToEdit" + echo "$FileToEdit updated" ;; + "false" ) + if [ "${currentFirstLine:0:6}" != "${FirstLine:0:6}" ]; then + if [ "${currentLastLine:0:6}" != "${LastLine:0:6}" ]; then + { + echo "$FirstLine" > "$FileToEdit".new + cat "$FileToEdit" >> "$FileToEdit".new + if [ "x${currentLastLine}" != "x" ] ; then + echo "" >> "$FileToEdit".new + fi + echo "$LastLine" >> "$FileToEdit".new + mv "$FileToEdit".new "$FileToEdit" + echo "$FileToEdit updated" + } + fi + fi ;; + esac +} + +function PrintUsage() +{ + echo "Usage: $0 [-z] [-s \"<sourcefile glob>\"] [-p <path to source>]" +} + +# Main + +SetEnvironment + +# Get command line options + +while getopts "zs:p:" opt; do + case $opt in + z) ModelineReplace="true" ;; + s) SourceFiles="$OPTARG" ;; + p) findPath="$OPTARG" ;; + *) PrintUsage + exit 1 ;; + esac +done + +if [ $OPTIND -gt 1 ]; then + shift $(($OPTIND - 1)) +fi + +if [ $# -gt 1 ]; then +{ + PrintUsage + echo "Remember to quote the source file globs after -s" + exit 1 +} +fi + +# Create GNU find expressions that traverse the filesystem once and only once +if [ -z "$findPath" ]; then + findArgs='.' + else + findArgs="$findPath" +fi + +for FileType in ${SourceFiles}; do + findArgs="$findArgs"' ( -iname '"$FileType"' -print ) , ' +done + +# This gets rid of the final " , " in the find argument list +findArgs="${findArgs:0:(${#findArgs}-2)}" + +for file in $($findCMD $findArgs); do + EditFile "$file" + echo "Completed: " "$file" +done + +# vim:set shiftwidth=4 softtabstop=4 expandtab: diff --git a/solenv/bin/addsym-mingw.sh b/solenv/bin/addsym-mingw.sh index f59dbf5e64b7..f59dbf5e64b7 100644..100755 --- a/solenv/bin/addsym-mingw.sh +++ b/solenv/bin/addsym-mingw.sh diff --git a/solenv/bin/addsym.awk b/solenv/bin/addsym.awk index 621ca2e4bc42..de0b57934f7f 100644 --- a/solenv/bin/addsym.awk +++ b/solenv/bin/addsym.awk @@ -37,15 +37,11 @@ END { print "UDK_3_0_0 {" print "global:" print "_ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions" - if (ENVIRON["USE_SYSTEM_STL"] != "YES") - print "_ZN4_STL7num_put*; # for STLport" print "};" } } state == 2 { print "_ZTI*; _ZTS*; # weak RTTI symbols for C++ exceptions" - if (ENVIRON["USE_SYSTEM_STL"] != "YES") - print "_ZN4_STL7num_put*; # for STLport" state = 3 } # #i66636# - ??? diff --git a/solenv/bin/build.pl b/solenv/bin/build.pl index d7e4ecb781ff..896d0095e4ac 100755 --- a/solenv/bin/build.pl +++ b/solenv/bin/build.pl @@ -43,6 +43,7 @@ use Fcntl; use POSIX qw(:errno_h); use Sys::Hostname; + use IPC::Open3; use lib ("$ENV{SOLARENV}/bin/modules"); use SourceConfig; @@ -54,15 +55,12 @@ unshift(@INC, "$ENV{COMMON_ENV_TOOLS}/modules"); $in_so_env++; }; - if (defined $ENV{CWS_WORK_STAMP}) { - require GenInfoParser; import GenInfoParser; - require IO::Handle; import IO::Handle; - }; my $verbose_mode = 0; if (defined $ENV{verbose} || defined $ENV{VERBOSE}) { $verbose_mode = ($ENV{verbose} =~ /^t\S*$/i); } my $enable_multiprocessing = 1; + ### for XML file format eval { require XMLBuildListParser; import XMLBuildListParser; }; my $enable_xml = 0; @@ -73,17 +71,9 @@ }; #### script id ##### - ( 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 = "-"); - - print "$script_name -- version: $script_rev\n"; - ######################### # # -# Globale Variablen # +# Global Variables # # # ######################### @@ -116,7 +106,7 @@ 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 @broken_modules_names = (); # array of modules, which cannot be built further my @dmake_args = (); my %dead_parents = (); my $initial_module = ''; @@ -143,8 +133,7 @@ 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; # - my @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names + my @possible_build_lists = ('gbuild.lst', '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 @@ -159,15 +148,13 @@ my %build_in_progress_shown = (); # hash of modules being built, # and shown last time (to keep order) 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 %had_error = (); # hack for mysterious 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 = (); 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) @@ -195,11 +182,19 @@ my %add_to_config = (); my %remove_from_config = (); my $clear_config = 0; - my $finisched_children = 0; + my $finished_children = 0; my $debug = 0; my %module_deps_hash_pids = (); my @argv = @ARGV; my $source_config_file; + my $zenity_pid = 0; + my $zenity_in = ''; + my $zenity_out = ''; + my $zenity_err = ''; + my $allow_gbuild = 0; + my %is_gbuild = (); + my $verbose = 0; + my @modules_built = (); my $deliver_command = $ENV{DELIVER}; my %prj_platform = (); @@ -214,13 +209,14 @@ get_options(); -# my $temp_html_file = correct_path($tmp_dir. '/' . $ENV{INPATH}. '.build.html'); + zenity_open(); + zenity_tooltip("Starting build."); + get_build_modes(); my %deliver_env = (); if ($prepare) { get_platforms(\%platforms); - $deliver_env{'BUILD_SOSL'}++; $deliver_env{'COMMON_OUTDIR'}++; $deliver_env{'GUI'}++; $deliver_env{'INPATH'}++; @@ -229,9 +225,11 @@ $deliver_env{'L10N_framework'}++; }; my $workspace_path = get_workspace_path(); # This also sets $initial_module + my $build_error_log = Cwd::realpath(correct_path($workspace_path)) ."/build_error.log"; my $source_config = SourceConfig -> new($workspace_path); check_partial_gnumake_build($initial_module); + system("rm -f $build_error_log"); if ($html) { if (defined $html_path) { $html_file = correct_path($html_path . '/' . $ENV{INPATH}. '.build.html'); @@ -252,7 +250,7 @@ get_module_and_buildlist_paths(); provide_consistency() if (defined $ENV{CWS_WORK_STAMP} && defined($ENV{COMMON_ENV_TOOLS})); - $deliver_command .= ' -verbose' if ($html); + $deliver_command .= ' -verbose' if ($html || $verbose); $deliver_command .= ' '. $dlv_switch if ($dlv_switch); $ENV{mk_tmp}++; @@ -262,7 +260,7 @@ if (open (CMD_FILE, ">>$cmd_file")) { select CMD_FILE; $echo = 'echo '; - if ($ENV{GUI} ne 'UNX') { + if ($ENV{GUI_FOR_BUILD} ne 'UNX') { $new_line = "echo.\n"; print "\@$echo off\npushd\n"; } else { @@ -271,8 +269,6 @@ } else { print_error ("Cannot open file $cmd_file"); }; -# } elsif ($show) { -# select STDOUT; }; print $new_line; @@ -286,8 +282,6 @@ } if (scalar keys %broken_build) { cancel_build(); -# } elsif (!$custom_job && $post_custom_job) { -# do_post_custom_job(correct_path($workspace_path.$initial_module)); }; print_warnings(); if (scalar keys %active_modules) { @@ -306,7 +300,7 @@ print $new_line; do_exit(1) if ($checkparents); }; - if (($ENV{GUI} ne 'UNX') && $cmd_file) { + if (($ENV{GUI_FOR_BUILD} ne 'UNX') && $cmd_file) { print "popd\n"; }; $ENV{mk_tmp} = ''; @@ -406,7 +400,6 @@ sub start_html_message_trigger { if ($child_id) { # parent -# print "started listener trigger\n"; } else { my $buffer_size = 1024; my $buffer; @@ -423,7 +416,6 @@ sub start_html_message_trigger { if (connect(SOCKET, $paddr)) { $full_buffer .= "\n"; syswrite SOCKET, $full_buffer, length $full_buffer; -# close SOCKET or die "Child close socket: $!"; } else { die "Child connect: $!"; }; @@ -440,10 +432,9 @@ sub get_html_orders { my $full_buffer = ''; my %modules_to_rebuild = (); my %modules_to_delete = (); - while ($rv = sysread(HTML_PIPE, $buffer, $buffer_size)) { - $full_buffer .= $buffer; - }; -# }; + while ($rv = sysread(HTML_PIPE, $buffer, $buffer_size)) { + $full_buffer .= $buffer; + }; my @html_messages = split(/\n/, $full_buffer); foreach (@html_messages) { if (/^html_port:(\d+)/) { @@ -531,7 +522,6 @@ sub schedule_rebuild { }; }; - # # procedure retrieves build list path # (all possibilities are taken into account) @@ -545,10 +535,17 @@ 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 = 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; + # if gbuild are allow we favor gbuild.lst as the build instruction + if($build_list ne "gbuild.lst" || $allow_gbuild) { + 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; + if ($build_list eq "gbuild.lst") { +# print "Using gmake for module $module\n"; + $is_gbuild{$module} = 1; + }; + return $possible_build_list_path; + }; }; } print_error("There's no build list for $module"); @@ -628,7 +625,7 @@ sub expand_dependencies { # This procedure fills the second hash with reversed dependencies, # ie, with info about modules "waiting" for the module # -sub reverse_dependensies { +sub reverse_dependencies { my ($deps_hash, $reversed) = @_; foreach my $module (keys %$deps_hash) { foreach (keys %{$$deps_hash{$module}}) { @@ -658,7 +655,7 @@ sub build_all { prepare_incompatible_build(\%global_deps_hash) if ($incompatible && (!$build_from_with_branches)); if ($build_from_with_branches) { my %reversed_full_deps_hash = (); - reverse_dependensies(\%global_deps_hash, \%reversed_full_deps_hash); + reverse_dependencies(\%global_deps_hash, \%reversed_full_deps_hash); prepare_build_from_with_branches(\%global_deps_hash, \%reversed_full_deps_hash); } if ($build_all_cont || $build_since) { @@ -685,7 +682,7 @@ sub build_all { }; store_weights(\%global_deps_hash); backup_deps_hash(\%global_deps_hash, \%global_deps_hash_backup); - reverse_dependensies(\%global_deps_hash_backup, \%reversed_dependencies); + reverse_dependencies(\%global_deps_hash_backup, \%reversed_dependencies); $modules_number = scalar keys %global_deps_hash; initialize_html_info($_) foreach (keys %global_deps_hash); if ($processes_to_run) { @@ -757,6 +754,7 @@ sub dmake_dir { my $job_name = shift; $jobs_hash{$job_name}->{START_TIME} = time(); $jobs_hash{$job_name}->{STATUS} = 'building'; + if ($job_name =~ /(\s)/o && (!-d $job_name)) { $error_code = do_custom_job($job_name, \%local_deps_hash); } else { @@ -779,12 +777,20 @@ sub dmake_dir { print "$dmake\n"; print $check_error_string; } else { - print "\n" if ( ! $show ); print "Entering $job_name\n"; }; remove_from_dependencies($job_name, \%local_deps_hash) if (!$child); return if ($cmd_file || $show); $error_code = run_job($dmake, $job_name); + + #if dmake fails, have a go at regenerating the dependencies + #and try again. dmakes normal failure is 255, while death on signal is 254 + my $real_exit_code = $error_code >> 8; + if (($ENV{GUI_FOR_BUILD} eq 'WNT') && ($real_exit_code == 255) && ($ENV{nodep} eq '') && ($ENV{depend} eq '')) { + print "Retrying $job_name\n"; + $error_code = run_job($dmake, $job_name); + } + html_store_job_info(\%local_deps_hash, $job_name, $error_code) if (!$child); }; @@ -873,7 +879,7 @@ sub get_prj_platform { s/\r\n//; $line++; if ($_ =~ /\snmake\s/) { - if ($' =~ /\s*-\s+(\w+)[,\S+]*\s+(\S+)/ ) { + if ($' =~ /\s*-\s+(\w+)[,\S+]*\s+(\S+)/ ) { #' my $platform = $1; my $alias = $2; print_error ("There is no correct alias set in the line $line!") if ($alias eq 'NULL'); @@ -944,7 +950,6 @@ sub get_deps_hash { }; my $build_list_ref = $build_lists_hash{$module_to_build}; -# delete $build_lists_hash{$module_to_build}; if (ref($build_list_ref) eq 'XMLBuildListParser') { get_deps_from_object($module_to_build, $build_list_ref, $dependencies_hash); } else { @@ -966,7 +971,7 @@ sub get_deps_hash { $platform = $1; $dependencies = $'; while ($dependencies =~ /,(\w+)/o) { - $dependencies = $'; + $dependencies = $'; #' }; $dependencies =~ /\s+(\S+)\s+/o; $dir_alias = $1; @@ -978,7 +983,7 @@ sub get_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 = $'; + $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; @@ -1088,14 +1093,9 @@ sub correct_path { sub check_dmake { -#print "Checking dmake..."; if (open(DMAKEVERSION, "dmake -V |")) { -# if (open(DMAKEVERSION, "dmake -V |")) { my @dmake_version = <DMAKEVERSION>; close DMAKEVERSION; -# if ($dmake_version[0] =~ /^dmake\s\-\sCopyright\s\(c\)/) { -# print " Using version $1\n" if ($dmake_version[0] =~ /Version\s(\d+\.*\d*)/); -# }; return; }; my $error_message = 'dmake: Command not found.'; @@ -1113,7 +1113,7 @@ sub get_commands { check_dmake(); if ($cmd_file) { - if ($ENV{GUI} eq 'UNX') { + if ($ENV{GUI_FOR_BUILD} eq 'UNX') { $check_error_string = "if \"\$?\" != \"0\" exit\n"; } else { $check_error_string = "if \"\%?\" != \"0\" quit\n"; @@ -1125,7 +1125,7 @@ sub get_commands { while ($arg = pop(@dmake_args)) { $dmake .= ' '.$arg; }; - $dmake .= ' verbose=true' if ($html); + $dmake .= ' verbose=true' if ($html || $verbose); }; # @@ -1172,7 +1172,6 @@ sub check_platform { 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'))); return 0; @@ -1350,7 +1349,7 @@ sub get_dependency_array { print_error("Project $prj has wrongly written dependencies string:\n $string") if (!$dep_string); $dep_string =~ /(\S+)\s*/o; $parent_prj = $1; - $dep_string = $'; + $dep_string = $'; #' if ($parent_prj =~ /\.(\w+)$/o) { $parent_prj = $`; if (($prj_platform{$parent_prj} ne $1) && @@ -1404,7 +1403,7 @@ sub print_error { sub usage { print STDERR "\nbuild\n"; - print STDERR "Syntax: build [--all|-a[:prj_name]]|[--from|-f prj_name1[:prj_name2] [prj_name3 [...]]]|[--since|-c prj_name] [--with_branches prj_name1[:prj_name2] [--skip prj_name1[:prj_name2] [prj_name3 [...]] [prj_name3 [...]|-b]|[--prepare|-p][:platform] [--deliver|-d [--dlv_switch deliver_switch]]] [-P processes|--server [--setenvstring \"string\"] [--client_timeout MIN] [--port port1[:port2:...:portN]]] [--show|-s] [--help|-h] [--file|-F] [--ignore|-i] [--version|-V] [--mode|-m OOo[,SO[,EXT]] [--html [--html_path html_file_path] [--dontgraboutput]] [--pre_job=pre_job_sring] [--job=job_string|-j] [--post_job=post_job_sring] [--stoponerror] [--genconf [--removeall|--clear|--remove|--add [module1,module2[,...,moduleN]]]] [--exclude_branch_from prj_name1[:prj_name2] [prj_name3 [...]]] [--interactive]\n"; + print STDERR "Syntax: build [--all|-a[:prj_name]]|[--from|-f prj_name1[:prj_name2] [prj_name3 [...]]]|[--since|-c prj_name] [--with_branches prj_name1[:prj_name2] [--skip prj_name1[:prj_name2] [prj_name3 [...]] [prj_name3 [...]|-b]|[--prepare|-p][:platform] [--deliver|-d [--dlv_switch deliver_switch]]] [-P processes|--server [--setenvstring \"string\"] [--client_timeout MIN] [--port port1[:port2:...:portN]]] [--show|-s] [--help|-h] [--file|-F] [--ignore|-i] [--version|-V] [--mode|-m OOo[,SO[,EXT]] [--html [--html_path html_file_path] [--dontgraboutput]] [--pre_job=pre_job_sring] [--job=job_string|-j] [--post_job=post_job_sring] [--stoponerror] [--genconf [--removeall|--clear|--remove|--add [module1,module2[,...,moduleN]]]] [--exclude_branch_from prj_name1[:prj_name2] [prj_name3 [...]]] [--interactive] [--verbose]\n"; print STDERR "Example1: build --from sfx2\n"; print STDERR " - build all projects dependent from sfx2, starting with sfx2, finishing with the current module\n"; print STDERR "Example2: build --all:sfx2\n"; @@ -1447,6 +1446,7 @@ sub usage { print STDERR " --stoponerror - stop build when error occurs (for mp builds)\n"; print STDERR " --interactive - start interactive build process (process can be managed via html page)\n"; + print STDERR " --verbose - generates a detailed output of the build process\n"; print STDERR " Custom jobs:\n"; print STDERR " --job=job_string - execute custom job in (each) module. job_string is a shell script/command to be executed instead of regular dmake jobs\n"; print STDERR " --pre_job=pre_job_string - execute preliminary job in (each) module. pre_job_string is a shell script/command to be executed before regular job in the module\n"; @@ -1469,9 +1469,10 @@ sub get_options { $arg =~ /^--checkmodules$/ and $checkparents = 1 and $ignore = 1 and next; $arg =~ /^-s$/ and $show = 1 and next; $arg =~ /^--deliver$/ and $deliver = 1 and next; + $arg =~ /^--gmake$/ and $allow_gbuild = 1 and print "ALLOW GBUILD" and next; $arg =~ /^(--job=)/ and $custom_job = $' and next; $arg =~ /^(--pre_job=)/ and $pre_custom_job = $' and next; - $arg =~ /^(--post_job=)/ and $post_custom_job = $' and next; + $arg =~ /^(--post_job=)/ and $post_custom_job = $' and next; #' $arg =~ /^-d$/ and $deliver = 1 and next; $arg =~ /^--dlv_switch$/ and $dlv_switch = shift @ARGV and next; $arg =~ /^--file$/ and $cmd_file = shift @ARGV and next; @@ -1537,6 +1538,7 @@ sub get_options { $arg =~ /^--mode$/ and get_modes() and next; $arg =~ /^--stoponerror$/ and $stop_build_on_error = 1 and next; $arg =~ /^--interactive$/ and $interactive = 1 and next; + $arg =~ /^--verbose$/ and $verbose = 1 and next; if ($arg =~ /^--$/) { push (@dmake_args, get_dmake_args()) if (!$custom_job); next; @@ -1553,7 +1555,6 @@ sub get_options { $grab_output = 0 if ($dont_grab_output); print_error('Switches --with_branches and --all collision') if ($build_from_with_branches && $build_all_cont); print_error('Switch --skip is for building multiple modules only!!') if ((scalar keys %skip_modules) && (!$build_all_parents)); -# print_error('Please prepare the workspace on one of UNIX platforms') if ($prepare && ($ENV{GUI} ne 'UNX')); print_error('Switches --with_branches and --since collision') if ($build_from_with_branches && $build_since); if ($show) { $processes_to_run = 0; @@ -1620,11 +1621,12 @@ sub get_module_and_buildlist_paths { $source_config_file = $source_config->get_config_file_path(); $active_modules{$_}++ foreach ($source_config->get_active_modules()); my %active_modules_copy = %active_modules; - foreach ($source_config->get_all_modules()) { - delete $active_modules_copy{$_} if defined($active_modules_copy{$_}); - next if ($_ eq $initial_module); - $module_paths{$_} = $source_config->get_module_path($_); - $build_list_paths{$_} = $source_config->get_module_build_list($_) + foreach my $module ($source_config->get_all_modules()) { + delete $active_modules_copy{$module} if defined($active_modules_copy{$module}); + next if ($module eq $initial_module); + $module_paths{$module} = $source_config->get_module_path($module); + $build_list_paths{$module} = $source_config->get_module_build_list($module); + $is_gbuild{$module} = $source_config->{GBUILD}; } $dead_parents{$_}++ foreach (keys %active_modules_copy); }; @@ -1664,46 +1666,60 @@ sub get_switch_options { # cancel build when one of children has error exit code # sub cancel_build { -# close_server_socket(); - 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_module_names\n"; - } else { - $message_part .= "--from @broken_module_names\n"; - }; - } else { - if ($processes_to_run) { - $message_part .= "--from "; - } else { - $message_part .= "--all:"; - }; - $message_part .= "@broken_module_names\n"; + my $broken_modules_number = scalar @broken_modules_names; - }; - if ($broken_modules_number && $build_all_parents) { - print STDERR "\n"; - print STDERR $broken_modules_number; - print STDERR " module(s): "; - foreach (@broken_module_names) { - print STDERR "\n\t$_"; - }; - print STDERR "\nneed(s) to be rebuilt\n\nReason(s):\n\n"; - foreach (keys %broken_build) { - print STDERR "ERROR: error " . $broken_build{$_} . " occurred while making $_\n"; - }; - print STDERR "\nAttention: if you fix the errors in above module(s) you may prolongue your the build issuing command:\n\n\t" . $message_part; - } else { + print STDERR "\n"; + print STDERR "-----------------------------------------------------------------------\n"; + print STDERR " Oh dear - something failed during the build - sorry !\n"; + print STDERR " For more help with debugging build errors, please see the section in:\n"; + print STDERR " http://wiki.documentfoundation.org/Development\n"; + print STDERR "\n"; + + if (!$broken_modules_number || !$build_all_parents) { while (children_number()) { handle_dead_children(1); } + } + + if (keys %broken_build) { + print STDERR " internal build errors:\n\n"; foreach (keys %broken_build) { print STDERR "ERROR: error " . $broken_build{$_} . " occurred while making $_\n"; }; - }; - print "\n"; + print STDERR "\n"; + } + + my $module = shift @broken_modules_names; + if ($broken_modules_number > 1) { + print STDERR " it seems you are using a threaded build, which means that the\n"; + print STDERR " actual compile error is probably hidden far above, and could be\n"; + print STDERR " inside any of these other modules:\n"; + print STDERR " @broken_modules_names\n"; + print STDERR " please re-run build inside each one to isolate the problem.\n"; + } else { + print STDERR " it seems that the error is inside '$module', please re-run build\n"; + print STDERR " inside this module to isolate the error and/or test your fix:\n"; + } + print STDERR "-----------------------------------------------------------------------\n"; + print STDERR "\n"; + print STDERR "rm -Rf " . $ENV{'SRC_ROOT'} . "/$module/" . $ENV{'INPATH'} . " # optional module 'clean'\n"; + print STDERR "" . $ENV{'OOO_SHELL'} . "\n"; + print STDERR "cd " . $ENV{'SRC_ROOT'} . "\n"; + print STDERR "source ./" . $ENV{'ENV_SCRIPT'} . "\n"; + print STDERR "cd $module\n"; + if (is_gnumake_module($module)) + { + print STDERR "$ENV{GNUMAKE} -r\n" + } + else + { + print STDERR "build\n"; + } + print STDERR "\n"; + print STDERR "when the problem is isolated and fixed exit and re-run 'make' from the top-level\n"; + zenity_message("LibreOffice Build Failed!"); + zenity_close(); + do_exit(1); }; @@ -1713,8 +1729,15 @@ sub cancel_build { sub store_error { my ($pid, $error_code) = @_; return 0 if (!$error_code); + + #we don't care if zenity itself crashes, e.g. rhbz#670895 + if (zenity_enabled()) { + return 0 if ($zenity_pid == $pid); + } + my $child_nick = $processes_hash{$pid}; - if ($ENV{GUI} eq 'WNT') { + + if ($ENV{GUI_FOR_BUILD} eq 'WNT') { if (!defined $had_error{$child_nick}) { $had_error{$child_nick}++; return 1; @@ -1756,14 +1779,14 @@ sub handle_dead_children { } else { clear_from_child($pid); }; - $finisched_children++; + $finished_children++; }; } while(children_number() >= $processes_to_run); }; sub give_second_chance { my $pid = shift; - # A malicious hack for misterious windows problems - try 2 times + # A malicious hack for mysterious windows problems - try 2 times # to run dmake in the same directory if errors occurs my $child_nick = $processes_hash{$pid}; $running_children{$folders_hashes{$child_nick}}--; @@ -1829,7 +1852,7 @@ sub build_dependent { mp_success_exit(); } else { if (dmake_dir($child_nick)) { - push(@broken_module_names, $module_by_hash{$dependencies_hash}); + push(@broken_modules_names, $module_by_hash{$dependencies_hash}); cancel_build(); }; }; @@ -1891,7 +1914,7 @@ sub build_multiprocessing { my $prj; do { my $got_module = 0; - $finisched_children = 0; + $finished_children = 0; while ($prj = pick_prj_to_build(\%global_deps_hash)) { if (!defined $projects_deps_hash{$prj}) { $projects_deps_hash{$prj} = {}; @@ -1905,8 +1928,7 @@ sub build_multiprocessing { }; if (!$got_module) { cancel_build() if ((!scalar keys %module_build_queue) && !children_number()); - if (!$finisched_children) { -# print "#### 1979: Starting waiting for dead child\n"; + if (!$finished_children) { handle_dead_children(1); }; }; @@ -1915,7 +1937,6 @@ sub build_multiprocessing { # Let the last module be built till the end while (scalar keys %module_build_queue) { build_actual_queue(\%module_build_queue); -# print "#### 1988: Starting waiting for dead child\n"; handle_dead_children(1); }; # Let all children finish their work @@ -1927,12 +1948,10 @@ sub build_multiprocessing { }; sub mp_success_exit { -# close_server_socket(); -# if (!$custom_job && $post_custom_job) { -# 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"; + zenity_message("LibreOffice Build Success!"); + zenity_close(); do_exit(0); }; @@ -1959,7 +1978,7 @@ sub build_actual_queue { return; }; if (defined $modules_with_errors{$projects_deps_hash{$prj}} && !$ignore) { - push (@broken_module_names, $prj); + push (@broken_modules_names, $prj); delete $$build_queue{$prj}; next; }; @@ -1997,19 +2016,23 @@ sub run_job { chdir $path; getcwd(); - if ($html) { - my $log_file = $jobs_hash{$registered_name}->{LONG_LOG_PATH}; - my $log_dir = File::Basename::dirname($log_file); - if (!-d $log_dir) { - system("$perl $mkout"); - }; - $error_code = system ("$job_to_do > $log_file 2>&1"); - if (!$grab_output && -f $log_file) { - system("cat $log_file"); - }; - } else { - $error_code = system ("$job_to_do"); + my $log_file = $jobs_hash{$registered_name}->{LONG_LOG_PATH}; + my $log_dir = File::Basename::dirname($log_file); + if (!-d $log_dir) { + system("$perl $mkout"); }; + open (MAKE, "$job_to_do 2>&1 |") or return 8; + open (LOGFILE, "> $log_file") or return 8; + while (<MAKE>) { print LOGFILE $_; print $_ } + close MAKE; + $error_code = $?; + close LOGFILE; + if ( $error_code != 0) + { + system("echo \"log for $path\" >> $build_error_log"); + system("cat $log_file >> $build_error_log"); + } + return $error_code; }; @@ -2017,18 +2040,17 @@ sub do_custom_job { my ($module_job, $dependencies_hash) = @_; $module_job =~ /(\s)/o; my $module = $`; - my $job = $'; + my $job = $'; #' html_store_job_info($dependencies_hash, $module_job); my $error_code = 0; if ($job eq $pre_job) { announce_module($module); -# html_store_job_info($dependencies_hash, $job_dir); remove_from_dependencies($module_job, $dependencies_hash); } else { $error_code = run_job($job, $module_paths{$module}, $module_job); if ($error_code) { # give windows one more chance - if ($ENV{GUI} eq 'WNT') { + if ($ENV{GUI_FOR_BUILD} eq 'WNT') { $error_code = run_job($job, $module_paths{$module}, $module_job); }; }; @@ -2082,9 +2104,55 @@ sub print_announce { $announce_string .= $echo . $text; $announce_string .= $echo . "=============\n"; print $announce_string; + my $total_modules = scalar(keys %build_lists_hash); + my $modules_started = scalar(keys %module_announced) + 1; + zenity_tooltip("($modules_started/$total_modules) $text"); $module_announced{$prj}++; }; +sub zenity_enabled { + return 0 if ($ENV{ENABLE_ZENITY} ne "TRUE"); + return 0 if (!defined $ENV{DISPLAY}); + return 1 if ($ENV{DISPLAY} =~ m/^:/); # local displays only + return 0; +} + +sub zenity_open { + if (zenity_enabled()) { + $SIG{PIPE} = 'IGNORE'; + $zenity_pid = open3($zenity_in, $zenity_out, $zenity_err, + "zenity --notification --listen"); + }; +}; + +sub zenity_close { + if (zenity_enabled()) { + sleep(1); # Give Zenity a chance to show the message. + close($zenity_in); + }; +}; + +sub zenity_icon { + if (zenity_enabled()) { + my $filename = shift; + print $zenity_in "icon: $filename\n"; + }; +}; + +sub zenity_tooltip { + if (zenity_enabled()) { + my $text = shift; + print $zenity_in "tooltip: LibreOffice Build: $text\n"; + }; +}; + +sub zenity_message { + if (zenity_enabled()) { + my $text = shift; + print $zenity_in "message: $text\n"; + }; +}; + sub are_all_dependent { my $build_queue = shift; my $folder = ''; @@ -2139,21 +2207,6 @@ sub provide_consistency { }; # -# Get the workspace list ('stand.lst'), either from 'localini' -# or, if this is not possible, from 'globalini. -# (Heiner's proprietary :) -# -sub get_workspace_lst -{ - my $home = $ENV{HOME}; - my $inifile = $ENV{HOME}. '/localini/stand.lst'; - if (-f $inifile) { - return $inifile; - }; - return ''; -} - -# # Procedure clears up module for incompatible build # sub ensure_clear_module { @@ -2186,13 +2239,11 @@ sub clear_module { next if (/^\.+$/); 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); if (-d $dir) { system("$remove_command $dir"); if (-d $dir) { push(@warnings, "Cannot delete $dir"); -#print_error("Cannot delete $dir"); } else { print STDERR (">>> Removed $dir by force\n"); }; @@ -2244,7 +2295,6 @@ sub retrieve_build_list { my $solver_inc_dir = "$ENV{SOLARVER}/$ENV{OUTPATH}"; $solver_inc_dir .= $ENV{PROEXT} if (defined $ENV{PROEXT}); $solver_inc_dir .= '/inc'; - $solver_inc_dir .= $ENV{UPDMINOREXT} if (defined $ENV{UPDMINOREXT}); $solver_inc_dir .= "/$module"; $solver_inc_dir = correct_path($solver_inc_dir); $dead_parents{$module}++; @@ -2275,7 +2325,6 @@ sub prepare_build_from_with_branches { if (defined ${$$reversed_full_deps_hash{$prerequisite}}{$dependent_module}) { remove_from_dependencies($prerequisite, $full_deps_hash); delete $$full_deps_hash{$prerequisite}; -# print "Removed $prerequisite\n"; last; }; }; @@ -2343,7 +2392,7 @@ sub prepare_incompatible_build { print "WARNING(S):\n"; print STDERR "$_\n" foreach (@warnings); print "\nATTENTION: If you are performing an incompatible build, please break the build with Ctrl+C and prepare the workspace with \"--prepare\" switch!\n\n" if (!$prepare); - sleep(10); + sleep(5); }; if ($prepare) { print "\nPreparation finished"; @@ -2416,9 +2465,6 @@ sub get_list_of_modules { }; }; }; -# if (!scalar %$hash_ref) { -# print_error('No module list supplied!!'); -# }; }; sub get_modules_passed { @@ -2432,34 +2478,13 @@ sub get_modules_passed { if ($option =~ /(:)/) { $option = $`; print_error("\'--from\' switch collision") if ($build_all_cont); - $build_all_cont = $'; + $build_all_cont = $'; #' }; $$hash_ref{$option}++; }; }; }; -sub get_workspace_platforms { - my $workspace_patforms = shift; - my $solver_path = $ENV{SOLARVERSION}; - opendir(SOLVERDIR, $solver_path); - my @dir_list = readdir(SOLVERDIR); - close SOLVERDIR; - foreach (@dir_list) { - next if /^common/; - next if /^\./; - if (open(LS, "ls $solver_path/$_/inc/*minor.mk 2>$nul |")) { - foreach my $string (<LS>) { - chomp $string; - if ($string =~ /minor.mk$/) { - $$workspace_patforms{$_}++ - }; - }; - close LS; - }; - }; -}; - sub get_platforms { my $platforms_ref = shift; if ($only_platform) { @@ -2469,27 +2494,6 @@ sub get_platforms { $platforms_ref = \%platforms_to_copy; }; - my $workspace_lst = get_workspace_lst(); - if ($workspace_lst) { - my $workspace_db; - eval { $workspace_db = GenInfoParser->new(); }; - if (!$@) { - my $success = $workspace_db->load_list($workspace_lst); - if ( !$success ) { - print_error("Can't load workspace list '$workspace_lst'.", 4); - } - my $access_path = $ENV{WORK_STAMP} . '/Environments'; - my @platforms_available = $workspace_db->get_keys($access_path); - my $solver = $ENV{SOLARVERSION}; - foreach (@platforms_available) { - my $s_path = $solver . '/' . $_; - $$platforms_ref{$_}++ if (-d $s_path); - }; - } else { - get_workspace_platforms(\%platforms); - }; - }; - if (!scalar keys %platforms) { # An Auses wish - fallback to INPATH for new platforms if (defined $ENV{INPATH}) { @@ -2528,7 +2532,6 @@ sub clear_delivered { }; }; my $undeliver = "$deliver_command $deliver_delete_switches $nul"; -# my $current_dir = getcwd(); foreach my $module (sort @modules_built) { if (chdir($module_paths{$module})) { print "Removing delivered from module $module\n"; @@ -2541,8 +2544,6 @@ sub clear_delivered { push(@warnings, "Could not remove delivered files from the module $module. Your build can become inconsistent.\n"); }; }; -# chdir $current_dir; -# getcwd(); }; $ENV{$_} = $backup_vars{$_} foreach (keys %backup_vars); }; @@ -2567,12 +2568,11 @@ sub read_ssolar_vars { $platform = $`; }; - my ($verswitch, $source_root, $cwsname); - $verswitch = "-ver $ENV{UPDMINOR}" if (defined $ENV{UPDMINOR}); + my ($source_root, $cwsname); $source_root = '-sourceroot' if (defined $ENV{SOURCE_ROOT_USED}); 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 $param = "-$ENV{WORK_STAMP} $source_root $cws_name $pro $platform"; my $ss_command = "$perl $setsolar -file $tmp_file $param $nul"; if (system($ss_command)) { unlink $tmp_file; @@ -2587,7 +2587,7 @@ sub read_ssolar_vars { sub get_solar_vars { my ($solar_vars, $file) = @_; my ($var, $value); - open SOLARTABLE, "<$file" or die "can´t open solarfile $file"; + open SOLARTABLE, "<$file" or die "can't open solarfile $file"; while(<SOLARTABLE>) { s/\r\n//o; next if(!/^\w+\s+(\w+)/o); @@ -2675,15 +2675,9 @@ sub pick_for_build_type { }; sub do_exit { -# close_server_socket(); my $exit_code = shift; $build_finished++; generate_html_file(1); - if ( $^O eq 'os2' ) - { - # perl 5.10 returns 'resource busy' for rmtree - rmdir(correct_path($tmp_dir)) 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); @@ -2721,7 +2715,6 @@ sub generate_html_file { return if (!$html); my $force_update = shift; $force_update++ if ($debug); - $html_last_updated = time; my @modules_order = sort_modules_appearance(); my ($successes_percent, $errors_percent) = get_progress_percentage(scalar keys %html_info, scalar keys %build_is_finished, scalar keys %modules_with_errors); my $build_duration = get_time_line(time - $build_time); @@ -2807,9 +2800,6 @@ sub generate_html_file { print HTML $errors_number; print HTML ' error(s)\">', $_, '</a>");' . "\n"; } else { -# print HTML 'document.write("<em style=color:gray>' . $_ . '</em>");'; -#### print HTML 'document.write("<em style=color:gray>' . $_ ."href=\'http://$local_host_ip:$html_port/delete=\'$_". '</em>");'; - print HTML 'document.write(" <a target=\'infoframe\' id='; print HTML $_; print HTML ' href=\"javascript:void(0)\"; title=\"Remove module\">' . $_ . '</a>");' . "\n"; @@ -3168,7 +3158,6 @@ sub get_html_info { } } else { return(undef, undef, 0, 0, 0, '-'); -# $dirs_info_line .= 'No information available yet'; }; $dirs_info_line =~ s/(<br>)*$//o; $dirs_info_line .= '\''; @@ -3183,13 +3172,9 @@ sub get_html_info { $errors_info_line .= 'No errors'; }; $errors_info_line .= '\''; -# if (defined $full_info) { my $time_line = get_time_line($$module_info_hash{BUILD_TIME}); - my ($successes_percent, $errors_percent) = get_progress_percentage($dirs_number - 1, $successful_number - 1, $errorful_number); - return($errors_info_line, $dirs_info_line, $errorful_number, $successes_percent, $errors_percent, $time_line); -# } else { -# return($errors_info_line, $dirs_info_line, $errorful_number); -# }; + my ($successes_percent, $errors_percent) = get_progress_percentage($dirs_number - 1, $successful_number - 1, $errorful_number); + return($errors_info_line, $dirs_info_line, $errorful_number, $successes_percent, $errors_percent, $time_line); }; sub get_time_line { @@ -3252,7 +3237,7 @@ sub start_server_on_port { my $port = shift; my $socket_obj = shift; $client_timeout = 1 if (!$parent_process); - if ($ENV{GUI} eq 'WNT') { + if ($ENV{GUI_FOR_BUILD} eq 'WNT') { $$socket_obj = new IO::Socket::INET (#LocalAddr => hostname(), LocalPort => $port, Proto => 'tcp', @@ -3303,8 +3288,6 @@ sub check_client_jobs { delete $processes_hash{$_}; delete $clients_jobs{$_}; delete $clients_times{$_}; -# } else { -# print time - $clients_times{$_} . "\n"; }; }; }; @@ -3329,10 +3312,6 @@ sub run_server { if ($error) { print STDERR "port $_: $error\n"; } else { -# $SIG{KILL} = \&stop_server; -# $SIG{INT} = \&stop_server; -# $SIG{TERM} = \&stop_server; -# $SIG{QUIT} = \&stop_server; last; }; }; @@ -3357,7 +3336,7 @@ sub run_server { my %client_hash = (); foreach (@client_data) { /(=)/; - $client_hash{$`} = $'; + $client_hash{$`} = $'; #' } my $pid = $client_hash{pid} . '@' . $client_host; if (defined $client_hash{platform}) { @@ -3368,7 +3347,6 @@ sub run_server { }; } else { if ($client_hash{result} eq "0") { -# print "$clients_jobs{$pid} succedded on $pid\n"; } else { print "Error $client_hash{result}\n"; if (store_error($pid, $client_hash{result})) { @@ -3394,7 +3372,6 @@ sub run_server { $job_string = $lost_jobs[0]; delete $lost_client_jobs{$lost_jobs[0]}; } else { -# $job_string = get_job_string(\@build_queue, $pid); $job_string = get_job_string(\@build_queue); }; if ($job_string) { @@ -3456,10 +3433,8 @@ sub get_job_string { $jobs_hash{$job_dir}->{START_TIME} = time(); $jobs_hash{$job_dir}->{STATUS} = 'building'; if ($job_dir =~ /(\s)$pre_job/o) { -# if ($' eq $pre_job) { - do_custom_job($job_dir, $dependencies_hash); - $job_dir = ''; -# } + do_custom_job($job_dir, $dependencies_hash); + $job_dir = ''; }; } while (!$job_dir); }; @@ -3468,8 +3443,15 @@ sub get_job_string { my $log_file = $jobs_hash{$job_dir}->{LONG_LOG_PATH}; my $full_job_dir = $job_dir; if ($job_dir =~ /(\s)/o) { - $job = $'; - $job = $deliver_command if ($job eq $post_job); + $job = $'; #' + print $echo . "determine if we need to deliver $job_dir\n"; + if ($job eq $post_job) { + if( $is_gbuild{$job_dir} ) { + print "Skip deliver for gmake-built module $job_dir\n"; + return''; + }; + $job = $deliver_command + }; $full_job_dir = $module_paths{$`}; } my $log_dir = File::Basename::dirname($log_file); @@ -3490,7 +3472,7 @@ sub pick_jobdir { my $prj = $$build_queue[$i]; my $prj_deps_hash = $projects_deps_hash{$prj}; if (defined $modules_with_errors{$prj_deps_hash} && !$ignore) { - push (@broken_module_names, $prj); + push (@broken_modules_names, $prj); splice (@$build_queue, $i, 1); next; }; @@ -3540,8 +3522,8 @@ sub check_partial_gnumake_build { print "This module has been migrated to GNU make.\n"; print "You can only use build --all/--since here with build.pl.\n"; print "To do the equivalent of 'build && deliver' call:\n"; - print "\tmake -sr\n"; - print "in the module root (This will modify the solver).\n"; + print "\t$ENV{GNUMAKE} -r\n"; + print "in the module root.\n"; exit 1; } } diff --git a/solenv/bin/build_client.pl b/solenv/bin/build_client.pl index 54a5c4f84de2..f518f8198dcc 100755 --- a/solenv/bin/build_client.pl +++ b/solenv/bin/build_client.pl @@ -59,7 +59,6 @@ my $processes_to_run = 1; my %hosts_ports = (); my $default_port = 7890; my @ARGV_COPY = @ARGV; # @ARGV BACKUP -#$ARGV_COPY{$_}++ foreach (@ARGV); print "arguments: @ARGV\n"; get_options(); @@ -149,7 +148,6 @@ sub run_client { # "active" cycle foreach my $active_server (keys %active_servers) { foreach my $active_port (keys %{$active_servers{$active_server}}) { -# print "Active: $active_server:$active_port\n"; my $iaddr = inet_aton($active_server); $paddr = sockaddr_in($active_port, $iaddr); do { @@ -172,7 +170,6 @@ sub run_client { }; # "inactive" cycle -# print "Inactive: $current_server:$current_port\n"; my $iaddr = inet_aton($current_server); $paddr = sockaddr_in($current_port, $iaddr); do { @@ -275,7 +272,7 @@ sub request_job { $message = "platform=$ENV_BACKUP{OUTPATH} pid=$$ osname=$^O" if (!$message); # create the socket, connect to the port socket(SOCKET, PF_INET, SOCK_STREAM, $proto) or die "socket: $!"; - connect(SOCKET, $paddr) or return '';#die "connect: $!"; + connect(SOCKET, $paddr) or return ''; my $error_code = 1; $message .= "\n"; syswrite SOCKET, $message, length $message; @@ -373,8 +370,6 @@ sub do_job { getcwd(); my $job_string = $job_hash{job} . ' > ' . $tmp_log_file . ' 2>&1'; $error_code = system($job_string); -# rename($tmp_log_file, $job_hash{log}) or system("mv", $tmp_log_file, $job_hash{log}); -# delete $job_temp_files{$tmp_log_file};# = $job_hash{log}; }; rename($tmp_log_file, $job_hash{log}) or system("mv", $tmp_log_file, $job_hash{log}); delete $job_temp_files{$tmp_log_file}; @@ -417,7 +412,7 @@ sub print_error { exit(1); }; sub store_env_hash { - my $ss_setenv_file = shift;#($$job_hash{server_pid}.$$job_hash{setsolar_cmd}, $cmd_file); + my $ss_setenv_file = shift; my %solar_vars = (); my $cmd_file = File::Temp::tmpnam($ENV_BACKUP{TMP}); my $env_vars_file = File::Temp::tmpnam($ENV_BACKUP{TMP}); diff --git a/solenv/bin/checkdll.sh b/solenv/bin/checkdll.sh index efafb6b8ef60..538a9c5fb513 100755 --- a/solenv/bin/checkdll.sh +++ b/solenv/bin/checkdll.sh @@ -33,7 +33,7 @@ set -- `getopt "L:" "$@"` || { exit 1 } -checkdll="$SOLARVERSION/$INPATH/bin$UPDMINOREXT/checkdll" +checkdll="$SOLARVERSION/$INPATH/bin/checkdll" if [ -x $checkdll ]; then while : @@ -56,6 +56,11 @@ if [ -x $checkdll ]; then *) DYLD_LIBRARY_PATH=$libpath;; esac export DYLD_LIBRARY_PATH;; + AIX) case "${LIBPATH:+X}" in + X) LIBPATH=$libpath:$LIBPATH;; + *) LIBPATH=$libpath;; + esac + export LIBPATH;; *) case "${LD_LIBRARY_PATH:+X}" in X) LD_LIBRARY_PATH=$libpath:$LD_LIBRARY_PATH;; *) LD_LIBRARY_PATH=$libpath;; @@ -77,6 +82,14 @@ if [ -x $checkdll ]; then fi else echo "WARNING: checkdll not found!" 1>&2 + + for parameter in $*; do + library=$parameter; + done + realname=`echo $library | sed "s/check_//"` + if [ $library != $realname ]; then + mv $library $realname + fi fi exit 0 diff --git a/solenv/bin/cleanzip.pl b/solenv/bin/cleanzip.pl index 8103a13945b1..5e1502b76611 100755 --- a/solenv/bin/cleanzip.pl +++ b/solenv/bin/cleanzip.pl @@ -46,16 +46,11 @@ unless ( $zip->read( $filename ) == AZ_OK ) { my @members = $zip ->members(); foreach my $member ( @members ) { -# printf ( "%o\n",$member->unixFileAttributes()); -# printf ( "%o\n",$member->unixFileAttributes() & 0b111111111111); my $attribs = $member->unixFileAttributes(); if ( $member->isDirectory ) { $attribs = $attribs & 0b101111111111; $member->unixFileAttributes($attribs) } -# printf ( "%o\n",$member->unixFileAttributes()); -# printf ( "%o\n",$member->unixFileAttributes() & 0b111111111111); -# print ( $member->fileName()."\n"); } unless ( $zip->writeToFileNamed( ${filename}."_new" ) == AZ_OK ) { die "$0: ERROR reading ${filename}_new\n"; diff --git a/solenv/bin/clipatchconfig.pl b/solenv/bin/clipatchconfig.pl index 365e0bb14950..49fecd9e8b41 100644 --- a/solenv/bin/clipatchconfig.pl +++ b/solenv/bin/clipatchconfig.pl @@ -27,7 +27,6 @@ use warnings; use strict; -# use diagnostics; sub trim; sub readRedirectionValues($); @@ -52,7 +51,6 @@ if (scalar @ARGV < 3) { my %redirectionValue = readRedirectionValues($ARGV[1]); -#print "|$_| |$redirectionValue{$_}|\n", for keys %redirectionValue; #Read config file in which we will replace the versions diff --git a/solenv/bin/converttags.pl b/solenv/bin/converttags.pl deleted file mode 100644 index aa2fe63c6ce8..000000000000 --- a/solenv/bin/converttags.pl +++ /dev/null @@ -1,94 +0,0 @@ -# -# converttags - a perl script to coonvert some predefined tags -# to user specified values -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# - -if($#ARGV == -1) -{ - die "No parameters were specified.\nperl converttags.pl <mode> <title> <productname> [<color1>] [<color2>] file_1 [... file_n]\n"; -} -if($#ARGV < 2) -{ - die "No file were specified -> no file must be converted!\n"; -} - -# mode = 1 -> convert -# = 2 -> exit without conversion -$mode = shift @ARGV; - -$title = shift @ARGV; -$productname = shift @ARGV; - -$color1 = ""; -$color2 = ""; - -if( $mode =~ s/2/$1/go ) -{ - exit 0; -} - -if( $ARGV[0] =~ s/(#[\w]{6})/$1/go ) -{ - $color1 = shift @ARGV; -} -if( $ARGV[0] =~ s/(#[\w]{6})/$1/go ) -{ - $color2 = shift @ARGV; -} - -print "$title\n"; -print "$productname\n"; -print "$color1\n"; -print "$color2\n"; - -$return = 0; - -while (@ARGV) -{ - my $lineCount = 0; - $ARGV = shift @ARGV; - print "convert tags: $ARGV "; - - open ( FILEIN, $ARGV ) || die "could not open $ARGV for reading"; - @lines = <FILEIN>; - close( FILEIN ); - open( FILEOUT, ">$ARGV.tmp" ) || die "could not open $ARGV.tmp for writing"; - - - foreach $_ (@lines) - { - $lineCount++; - if ( $lineCount == 10 ) - { - $lineCount = 0; - print "."; - } - # change [TITLE] tag - s#\[TITLE\]#$title#go; - - # change [PRODUCTNAME] tag - s#\[PRODUCTNAME\]#$productname#go; - - # change color #003399 to #$color1 if color1 was specified! - if ( ! "$color1" eq "" ) - { - s/#003399/$color1/go; - } - - # change color #99CCFF to #$color2 if color2 was specified! - if ( ! "$color2" eq "" ) - { - s/#99CCFF/$color2/go; - } - print FILEOUT $_; - } - print " OK\n"; - - close FILEOUT; - chmod 0666, $ARGV; - rename "$ARGV.tmp", $ARGV || die "could not rename $ARGV.tmp to $ARGV"; -} - -exit $return; diff --git a/solenv/bin/create-ids b/solenv/bin/create-ids new file mode 100755 index 000000000000..868d88526c76 --- /dev/null +++ b/solenv/bin/create-ids @@ -0,0 +1,8 @@ +#!/bin/sh + +# create ID file for the whole LibO tree. run it in toplevel dir + +. ./*.Set.sh + +dirs="*/$INPATH/inc */$INPATH/misc/build `ls -d */* | sed -e '/\(clone\/\|\/\(common\|unxlng\|unxsol\|unxmac\|wntmsc\|Jamfile\|cscope\.\|tags\|ID\)\)\|^solver\//d'`" +mkid --lang-map=`dirname $0`/id-lang.map --include='C C++ asm perl make' --statistics $dirs diff --git a/solenv/bin/create-tags b/solenv/bin/create-tags new file mode 100755 index 000000000000..12280f62101c --- /dev/null +++ b/solenv/bin/create-tags @@ -0,0 +1,9 @@ +#!/usr/bin/env sh + +. ./*.Set.sh + +omnicppoptions="--c++-kinds=+p --fields=+iaS --extra=+q" +ctags -h "+.hdl.hrc" --langmap=c:+.hdl.hrc.src $omnicppoptions \ + --languages=-HTML,Java \ + -R --exclude=`echo ${INPATH} | sed 's/\./\\\./g'` --exclude=binfilter --exclude=solver \ + --exclude=clone --exclude=install --totals=yes --sort=foldcase * diff --git a/solenv/bin/createpdbrelocators.pl b/solenv/bin/createpdbrelocators.pl index 75047f3952f5..d32dd7d84508 100644..100755 --- a/solenv/bin/createpdbrelocators.pl +++ b/solenv/bin/createpdbrelocators.pl @@ -57,22 +57,13 @@ $id_str =~ /Revision:\s+(\S+)\s+\$/ print "$script_name -- version: $script_rev\n"; my $inpath = $ENV{INPATH}; -my $milestone = $ENV{UPDMINOR}; -my $milestoneext = $ENV{UPDMINOREXT}; -if ( $ARGV[0] ) { - if ( $milestone && ( $milestone ne $ARGV[0] ) ) { - die "Error: specified milestone $ARGV[0] does not match your environment"; - } - $milestone = $ARGV[0]; -} - -if ( !$inpath || !$milestone ) { - print STDERR "$script_name: INAPTH or UPDMINOR not set!\n"; +if ( !$inpath ) { + print STDERR "$script_name: INAPTH not set!\n"; exit(1); } my $relocators = CreatePDBRelocators->new(); -my $rc = $relocators->create_pdb_relocators($inpath, $milestoneext, ""); +my $rc = $relocators->create_pdb_relocators($inpath, "", ""); if ( !$rc ) { print STDERR "$script_name: creating PDB relocators failed!\n"; diff --git a/solenv/bin/cws b/solenv/bin/cws deleted file mode 100755 index e8bcf5060f39..000000000000 --- a/solenv/bin/cws +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -if [ x${SOLARENV}x = xx ]; then - echo No environment found, please use 'configure' - exit 1 -fi -exec perl -w $SOLARENV/bin/cws.pl "$@" diff --git a/solenv/bin/cws.btm b/solenv/bin/cws.btm deleted file mode 100644 index 31bff3ab2d0f..000000000000 --- a/solenv/bin/cws.btm +++ /dev/null @@ -1,11 +0,0 @@ -@echo off -iff "%SOLARENV%" == "" then - echo No environment found, please use 'configure' or 'setsolar' - goto end -endiff -iff "%PERL%" == "" then - call perl5 -I%SOLARENV%\bin\modules %SOLARENV%\bin\cws.pl %1& -else - call %PERL% -I%SOLARENV%\bin\modules %SOLARENV%\bin\cws.pl %1& -endiff -:end diff --git a/solenv/bin/cws.pl b/solenv/bin/cws.pl deleted file mode 100644 index 62a6b2763761..000000000000 --- a/solenv/bin/cws.pl +++ /dev/null @@ -1,2116 +0,0 @@ -#!/usr/bin/perl -w -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -#************************************************************************* -# -# cws.pl - wrap common childworkspace operations -# -use strict; -use Getopt::Long; -use File::Basename; -use File::Path; -use File::Copy; -use Cwd; -use Benchmark; - -#### module lookup -my @lib_dirs; -BEGIN { - if ( !defined($ENV{SOLARENV}) ) { - die "No environment found (environment variable SOLARENV is undefined)"; - } - push(@lib_dirs, "$ENV{SOLARENV}/bin/modules"); -} -use lib (@lib_dirs); - -use Cws; - -#### script id ##### - -( my $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/; - -#### globals #### - -# TODO: replace dummy vales with actual source_config migration milestone -my $ooo320_source_config_milestone = 'm999'; - -# valid command with possible abbreviations -my @valid_commands = ( - 'help', 'h', '?', - 'create', - 'fetch', 'f', - 'query', 'q', - 'task', 't', - 'eisclone', - 'setcurrent' - ); - -# list the valid options to each command -my %valid_options_hash = ( - 'help' => ['help'], - 'create' => ['help', 'milestone', 'migration', 'hg'], - 'fetch' => ['help', 'milestone', 'childworkspace','platforms','noautocommon', - 'quiet', 'onlysolver', 'additionalrepositories'], - 'query' => ['help', 'milestone','masterworkspace','childworkspace'], - 'task' => ['help'], - 'setcurrent' => ['help', 'milestone'], - 'eisclone' => ['help'] - ); - -my %valid_commands_hash; -for (@valid_commands) { - $valid_commands_hash{$_}++; -} - -# set by --debug switch -my $debug = 0; -# set by --profile switch -my $profile = 0; - - -#### main #### - -my ($command, $args_ref, $options_ref) = parse_command_line(); -dispatch_command($command, $args_ref, $options_ref); -exit(0); - -#### subroutines #### - -# Parses the command line. does prelimiary argument and option verification -sub parse_command_line -{ - if (@ARGV == 0) { - usage(); - exit(1); - } - - my %options_hash; - Getopt::Long::Configure ("no_auto_abbrev", "no_ignorecase"); - my $success = GetOptions(\%options_hash, 'milestone|m=s', - 'masterworkspace|master|M=s', - 'hg', - 'migration', - 'childworkspace|child|c=s', - 'debug', - 'profile', - 'commit|C', - 'platforms|p=s', - 'additionalrepositories|r=s', - 'noautocommon|x=s', - 'onlysolver|o', - 'quiet|q', - 'help|h' - ); - - my $command = shift @ARGV; - - if (!exists $valid_commands_hash{$command}) { - print_error("Unkown command: '$command'\n"); - usage(); - exit(1); - } - - if ($command eq 'h' || $command eq '?') { - $command = 'help'; - } - elsif ($command eq 'f') { - $command = 'fetch'; - } - elsif ($command eq 'q') { - $command = 'query'; - } - elsif ($command eq 't') { - $command = 'task'; - } - - # An unkown option might be accompanied with a valid command. - # Show the command specific help - if ( !$success ) { - do_help([$command]) - } - - verify_options($command, \%options_hash); - return ($command, \@ARGV, \%options_hash); -} - -# Verify options against the valid options list. -sub verify_options -{ - my $command = shift; - my $options_ref = shift; - - my $valid_command_options_ref = $valid_options_hash{$command}; - - my %valid_command_options_hash; - foreach (@{$valid_command_options_ref}) { - $valid_command_options_hash{$_}++; - } - - # check all specified options against the valid options for the sub command - foreach (keys %{$options_ref}) { - if ( /debug/ ) { - $debug = 1; - next; - } - if ( /profile/ ) { - $profile = 1; - next; - } - if (!exists $valid_command_options_hash{$_}) { - print_error("can't use option '--$_' with subcommand '$command'.", 1); - } - } - -} - -# Dispatches to the do_xxx() routines depending on command. -sub dispatch_command -{ - my $command = shift; - my $args_ref = shift; - my $options_ref = shift; - - no strict 'refs'; - &{"do_".$command}($args_ref, $options_ref); -} - -# Returns the global cws object. -BEGIN { -my $the_cws; - - sub get_this_cws { - if (!defined($the_cws)) { - $the_cws = Cws->new(); - return $the_cws; - } - else { - return $the_cws; - } - } -} - -# Returns a list of the master workspaces. -sub get_master_workspaces -{ - my $cws = get_this_cws(); - my @masters = $cws->get_masters(); - - return wantarray ? @masters : \@masters; -} - -# Checks if master argument is a valid MWS name. -BEGIN { - my %master_hash; - - sub is_master - { - my $master_name = shift; - - if (!%master_hash) { - my @masters = get_master_workspaces(); - foreach (@masters) { - $master_hash{$_}++; - } - } - return exists $master_hash{$master_name} ? 1 : 0; - } -} - -# Fetches the current CWS from environment, returns a Cws object -sub get_cws_from_environment -{ - my $child = $ENV{CWS_WORK_STAMP}; - my $master = $ENV{WORK_STAMP}; - - if ( !$child ) { - print_error("Environment variable CWS_WORK_STAMP is not set. Please set it to your CWS name.", 2); - } - - if ( !$master ) { - print_error("Environment variable WORK_STAMP is not set. Please set it to the MWS name.", 2); - } - - my $cws = get_this_cws(); - $cws->child($child); - $cws->master($master); - - # Check if we got a valid child workspace. - my $id = $cws->eis_id(); - if ( $debug ) { - print STDERR "CWS-DEBUG: ... master: $master, child: $child, $id\n"; - } - if ( !$id ) { - print_error("Child workspace $child for master workspace $master not found in EIS database.", 2); - } - return ($cws); -} - -# Fetches the CWS by name, returns a Cws object -sub get_cws_by_name -{ - my $child = shift; - - my $cws = get_this_cws(); - $cws->child($child); - - # Check if we got a valid child workspace. - my $id = $cws->eis_id(); - if ( $debug ) { - print STDERR "CWS-DEBUG: child: $child, $id\n"; - } - if ( !$id ) { - print_error("Child workspace $child not found in EIS database.", 2); - } - - # Update masterws part of Cws object. - my $masterws = $cws->get_mws(); - if ( $cws->master() ne $masterws ) { - # can this still happen? - if ( $debug ) { - print STDERR "CWS-DEBUG: get_cws_by_name(): fixup of masterws in cws object detected\n"; - } - $cws->master($masterws); - } - return ($cws); -} - -# Register child workspace with eis. -sub register_child_workspace -{ - my $cws = shift; - my $scm = shift; - my $is_promotion = shift; - - my $milestone = $cws->milestone(); - my $child = $cws->child(); - my $master = $cws->master(); - - # TODO: introduce a EIS_USER in the configuration, which should be used here - my $config = CwsConfig->new(); - my $vcsid = $config->vcsid(); - # TODO: there is no real need for socustom anymore, should go ASAP - my $socustom = $config->sointernal(); - - if ( !$vcsid ) { - if ( $socustom ) { - print_error("Can't determine owner for CWS '$child'. Please set VCSID environment variable.", 11); - } - else { - print_error("Can't determine owner for CWS '$child'. Please set CVS_ID entry in \$HOME/.cwsrc.", 11); - } - } - - if ( $is_promotion ) { - my $rc = $cws->set_scm($scm); - if ( !$rc ) { - print_error("Failed to set the SCM property '$scm' on child workspace '$child'.\nContact EIS administrator!\n", 12); - } - - $rc = $cws->promote($vcsid, ""); - - if ( !$rc ) { - print_error("Failed to promote child workspace '$child' to status 'new'.\n", 12); - } - else { - print "\n***** Successfully ***** promoted child workspace '$child' to status 'new'.\n"; - print "Milestone: '$milestone'.\n"; - } - } - else { - - my $eis_id = $cws->register($vcsid, ""); - - if ( !defined($eis_id) ) { - print_error("Failed to register child workspace '$child' for master '$master'.", 12); - } - else { - my $rc = $cws->set_scm($scm); - if ( !$rc ) { - print_error("Failed to set the SCM property '$scm' on child workspace '$child'.\nContact EIS administrator!\n", 12); - } - print "\n***** Successfully ***** registered child workspace '$child'\n"; - print "for master workspace '$master' (milestone '$milestone').\n"; - print "Child workspace Id: $eis_id.\n"; - } - } - return 0; -} - -sub print_time_elapsed -{ - my $t_start = shift; - my $t_stop = shift; - - my $time_diff = timediff($t_stop, $t_start); - print_message("... finished in " . timestr($time_diff)); -} - -sub hgrc_append_push_path_and_hooks -{ - my $target = shift; - my $cws_source = shift; - - $cws_source =~ s/http:\/\//ssh:\/\/hg@/; - if ( $debug ) { - print STDERR "CWS-DEBUG: hgrc_append_push_path_and_hooks(): default-push path: '$cws_source'\n"; - } - if ( !open(HGRC, ">>$target/.hg/hgrc") ) { - print_error("Can't append to hgrc file of repository '$target'.\n", 88); - } - print HGRC "default-push = " . "$cws_source\n"; - print HGRC "[extensions]\n"; - print HGRC "hgext.win32text=\n"; - print HGRC "[hooks]\n"; - print HGRC "# Reject commits which would introduce windows-style CR/LF files\n"; - print HGRC "pretxncommit.crlf = python:hgext.win32text.forbidcrlf\n"; - close(HGRC); -} - -sub hg_clone_cws_or_milestone -{ - my $rep_type = shift; - my $cws = shift; - my $target = shift; - my $clone_milestone_only = shift; - - my ($hg_local_source, $hg_lan_source, $hg_remote_source); - my $config = CwsConfig->new(); - - $hg_local_source = $config->get_hg_source(uc $rep_type, 'LOCAL'); - $hg_lan_source = $config->get_hg_source(uc $rep_type, 'LAN'); - $hg_remote_source = $config->get_hg_source(uc $rep_type, 'REMOTE'); - - my $masterws = $cws->master(); - my ($master_local_source, $master_lan_source); - - $master_local_source = "$hg_local_source/" . $masterws; - $master_lan_source = "$hg_lan_source/" . $masterws; - - my $milestone_tag; - if ( $clone_milestone_only ) { - $milestone_tag = uc($masterws) . '_' . $clone_milestone_only; - } - else { - my @tags = $cws->get_tags(); - $milestone_tag = $tags[3]; - } - - if ( $debug ) { - print STDERR "CWS-DEBUG: master_local_source: '$master_local_source'\n"; - print STDERR "CWS-DEBUG: master_lan_source: '$master_lan_source'\n"; - if ( !-d $master_local_source ) { - print STDERR "CWS-DEBUG: not a directory '$master_local_source'\n"; - } - } - - my $pull_from_remote = 0; - my $cws_remote_source; - if ( !$clone_milestone_only ) { - if ($rep_type eq "ooo" || $rep_type eq "so") - { - $cws_remote_source = "$hg_remote_source/cws/" . $cws->child(); - } - # e.g. cws_l10n - else - { - $cws_remote_source = "$hg_remote_source/cws_".$rep_type."/" . $cws->child(); - } - - # The outgoing repository might not yet be available. Which is not - # an error. Since pulling from the cws outgoing URL results in an ugly - # and hardly understandable error message, we check for availibility - # first. TODO: incorporate configured proxy instead of env_proxy. Use - # a dedicated request and content-type to find out if the repo is there - # instead of parsing the content of the page - print_message("... check availibility of 'outgoing' repository '$cws_remote_source'."); - require LWP::Simple; - my $content = LWP::Simple::get($cws_remote_source); - my $pattern = "<title>cws/". $cws->child(); - my $pattern2 = "<title>cws_".$rep_type."/". $cws->child(); - if ( $content && ($content =~ /$pattern/ || $content =~ /$pattern2/) ) { - $pull_from_remote = 1; - } - else { - print_message("... 'outgoing' repository '$cws_remote_source' is not accessible/available yet."); - } - } - - # clone repository (without working tree if we still need to pull from remote) - my $clone_with_update = !$pull_from_remote; - hg_clone_repository($master_local_source, $master_lan_source, $target, $milestone_tag, $clone_with_update); - - # now pull from the remote cws outgoing repository if its already available - if ( $pull_from_remote ) { - hg_remote_pull_repository($cws_remote_source, $target); - } - - # if we fetched a CWS adorn the result with push-path and hooks - if ( $cws_remote_source ) { - hgrc_append_push_path_and_hooks($target, $cws_remote_source); - } - - # update the result if necessary - if ( !$clone_with_update ) { - hg_update_repository($target); - } - -} - -sub hg_clone_repository -{ - my $local_source = shift; - my $lan_source = shift; - my $dest = shift; - my $milestone_tag = shift; - my $update = shift; - - my $t1 = Benchmark->new(); - my $source; - my $clone_option = $update ? '' : '-U '; - if ( -d $local_source && can_use_hardlinks($local_source, $dest) ) { - $source = $local_source; - if ( !hg_milestone_is_latest_in_repository($local_source, $milestone_tag) ) { - $clone_option .= "-r $milestone_tag"; - } - print_message("... clone LOCAL repository '$local_source' to '$dest'"); - } - else { - $source = $lan_source; - $clone_option .= "-r $milestone_tag"; - print_message("... clone LAN repository '$lan_source' to '$dest'"); - } - hg_clone($source, $dest, $clone_option); - - my $t2 = Benchmark->new(); - print_time_elapsed($t1, $t2) if $profile; -} - -sub hg_remote_pull_repository -{ - my $remote_source = shift; - my $dest = shift; - - my $t1 = Benchmark->new(); - print_message("... pull from REMOTE repository '$remote_source' to '$dest'"); - hg_pull($dest, $remote_source); - my $t2 = Benchmark->new(); - print_time_elapsed($t1, $t2) if $profile; -} - -sub hg_update_repository -{ - my $dest = shift; - - my $t1 = Benchmark->new(); - print_message("... update repository '$dest'"); - hg_update($dest); - my $t2 = Benchmark->new(); - print_time_elapsed($t1, $t2) if $profile; -} - -sub hg_milestone_is_latest_in_repository -{ - my $repository = shift; - my $milestone_tag = shift; - - # Our milestone is the lastest thing in the repository - # if the parent of the repository tip is adorned - # with the milestone tag. - my $tags_of_parent_of_tip = hg_parent($repository, 'tip', "--template='{tags}\\n'"); - if ( $tags_of_parent_of_tip =~ /\b$milestone_tag\b/ ) { - return 1; - } - return 0; -} - -# Check if clone source and destination are on the same filesystem, -# in that case hg clone can employ hard links. -sub can_use_hardlinks -{ - my $source = shift; - my $dest = shift; - - if ( $^O eq 'cygwin' ) { - # no hard links on windows - return 0; - } - # st_dev is the first field return by stat() - my @stat_source = stat($source); - my @stat_dest = stat(dirname($dest)); - - if ( $debug ) { - my $source_result = defined($stat_source[0]) ? $stat_source[0] : 'stat failed'; - my $dest_result = defined($stat_dest[0]) ? $stat_dest[0] : 'stat failed'; - print STDERR "CWS-DEBUG: can_use_hardlinks(): source device: '$stat_source[0]', destination device: '$stat_dest[0]'\n"; - } - if ( defined($stat_source[0]) && defined($stat_dest[0]) && $stat_source[0] == $stat_dest[0] ) { - return 1; - } - return 0; -} - -sub query_cws -{ - my $query_mode = shift; - my $options_ref = shift; - # get master and child workspace - my $masterws = exists $options_ref->{'masterworkspace'} ? uc($options_ref->{'masterworkspace'}) : $ENV{WORK_STAMP}; - my $childws = exists $options_ref->{'childworkspace'} ? $options_ref->{'childworkspace'} : $ENV{CWS_WORK_STAMP}; - my $milestone = exists $options_ref->{'milestone'} ? $options_ref->{'milestone'} : 'latest'; - - if ( !defined($masterws) && $query_mode ne 'masters') { - print_error("Can't determine master workspace environment.\n", 30); - } - - if ( ($query_mode eq 'integratedinto' || $query_mode eq 'incompatible' || $query_mode eq 'taskids' || $query_mode eq 'status' || $query_mode eq 'current' || $query_mode eq 'owner' || $query_mode eq 'qarep' || $query_mode eq 'issubversion' || $query_mode eq 'ispublic' || $query_mode eq 'build') && !defined($childws) ) { - print_error("Can't determine child workspace environment.\n", 30); - } - - my $cws = Cws->new(); - if ( defined($childws) ) { - $cws->child($childws); - } - if ( defined($masterws) ) { - $cws->master($masterws); - } - - no strict; - &{"query_".$query_mode}($cws, $milestone); - return; -} - -sub query_integratedinto -{ - my $cws = shift; - - if ( is_valid_cws($cws) ) { - my $milestone = $cws->get_milestone_integrated(); - print_message("Integrated into:"); - print defined($milestone) ? "$milestone\n" : "unkown\n"; - } - return; -} - -sub query_incompatible -{ - my $cws = shift; - - if ( is_valid_cws($cws) ) { - my @modules = $cws->incompatible_modules(); - print_message("Incompatible Modules:"); - foreach (@modules) { - if ( defined($_) ) { - print "$_\n"; - } - } - } - return; -} - -sub query_taskids -{ - my $cws = shift; - - if ( is_valid_cws($cws) ) { - my @taskids = $cws->taskids(); - print_message("Task ID(s):"); - foreach (@taskids) { - if ( defined($_) ) { - print "$_\n"; - } - } - } - return; -} - -sub query_status -{ - my $cws = shift; - - if ( is_valid_cws($cws) ) { - my $status = $cws->get_approval(); - if ( !$status ) { - print_error("Internal error: can't get approval status.", 3); - } else { - print_message("Approval status:"); - print "$status\n"; - } - } - return; -} - -sub query_scm -{ - my $cws = shift; - my $masterws = $cws->master(); - my $childws = $cws->child(); - - if ( is_valid_cws($cws) ) { - my $scm = $cws->get_scm(); - if ( !defined($scm) ) { - print_error("Internal error: can't retrieve scm info.", 3); - } else { - print_message("Child workspace uses '$scm'."); - } - } - return; -} - -sub query_ispublic -{ - my $cws = shift; - my $masterws = $cws->master(); - my $childws = $cws->child(); - - if ( is_valid_cws($cws) ) { - my $ispublic = $cws->get_public_flag(); - if ( !defined($ispublic) ) { - print_error("Internal error: can't get isPublic flag.", 3); - } else { - if ( $ispublic==1 ) { - print_message("Child workspace is public"); - } else { - print_message("Child workspace is internal"); - } - } - } - - return; -} - -sub query_current -{ - my $cws = shift; - - if ( is_valid_cws($cws) ) { - my $milestone = $cws->milestone(); - if ( !$milestone ) { - print_error("Internal error: can't get current milestone.", 3); - } else { - print_message("Current milestone:"); - print "$milestone\n"; - } - } - return; -} - -sub query_owner -{ - my $cws = shift; - - if ( is_valid_cws($cws) ) { - my $owner = $cws->get_owner(); - print_message("Owner:"); - if ( !$owner ) { - print "not set\n" ; - } else { - print "$owner\n"; - } - } - return; -} - -sub query_qarep -{ - my $cws = shift; - - if ( is_valid_cws($cws) ) { - my $qarep = $cws->get_qarep(); - print_message("QA Representative:"); - if ( !$qarep ) { - print "not set\n" ; - } else { - print "$qarep\n"; - } - } - return; -} - - -sub query_build -{ - my $cws = shift; - - if ( is_valid_cws($cws) ) { - my $build = $cws->get_build(); - print_message("Build:"); - if ( $build ) { - print "$build\n"; - } - } - return; -} - -sub query_latest -{ - my $cws = shift; - - my $masterws = $cws->master(); - my $latest = $cws->get_current_milestone($masterws); - - - if ( $latest ) { - print_message("Master workspace '$masterws':"); - print_message("Latest milestone available for update:"); - print "$masterws $latest\n"; - } - else { - print_error("Can't determine latest milestone of '$masterws' available for update.", 3); - } - - return; -} - -sub query_masters -{ - my $cws = shift; - - my @mws = $cws->get_masters(); - my $list=""; - - if ( @mws ) { - foreach (@mws) { - if ( $list ne "" ) { - $list .= ", "; - } - $list .= $_; - } - print_message("Master workspaces available: $list"); - } - else { - print_error("Can't determine masterworkspaces.", 3); - } - - return; -} - -sub query_milestones -{ - my $cws = shift; - my $masterws = $cws->master(); - - my @milestones = $cws->get_milestones($masterws); - my $list=""; - - if ( @milestones ) { - foreach (@milestones) { - if ( $list ne "" ) { - $list .= ", "; - } - $list .= $_; - } - print_message("Master workspace '$masterws':"); - print_message("Milestones known on Master: $list"); - } - else { - print_error("Can't determine milestones of '$masterws'.", 3); - } - - return; -} - -sub query_ispublicmaster -{ - my $cws = shift; - my $masterws = $cws->master(); - - my $ispublic = $cws->get_publicmaster_flag(); - my $list=""; - - if ( defined($ispublic) ) { - print_message("Master workspace '$masterws':"); - if ( !defined($ispublic) ) { - print_error("Internal error: can't get isPublicMaster flag.", 3); - } else { - if ( $ispublic==1 ) { - print_message("Master workspace is public"); - } else { - print_message("Master workspace is internal"); - } - } - } - else { - print_error("Can't determine isPublicMaster flag of '$masterws'.", 3); - } - - return; -} - -sub query_buildid -{ - my $cws = shift; - my $milestone = shift; - - my $masterws = $cws->master(); - if ( $milestone eq 'latest' ) { - $milestone = $cws->get_current_milestone($masterws); - } - - if ( !$milestone ) { - print_error("Can't determine latest milestone of '$masterws'.", 3); - } - - if ( !$cws->is_milestone($masterws, $milestone) ) { - print_error("Milestone '$milestone' is no a valid milestone of '$masterws'.", 3); - } - - my $buildid = $cws->get_buildid($masterws, $milestone); - - - if ( $buildid ) { - print_message("Master workspace '$masterws':"); - print_message("BuildId for milestone '$milestone':"); - print("$buildid\n"); - } - - return; -} - -sub query_integrated -{ - my $cws = shift; - my $milestone = shift; - - my $masterws = $cws->master(); - if ( $milestone eq 'latest' ) { - $milestone = $cws->get_current_milestone($masterws); - } - - if ( !$milestone ) { - print_error("Can't determine latest milestone of '$masterws'.", 3); - } - - if ( !$cws->is_milestone($masterws, $milestone) ) { - print_error("Milestone '$milestone' is no a valid milestone of '$masterws'.", 3); - } - - my @integrated_cws = $cws->get_integrated_cws($masterws, $milestone); - - - if ( @integrated_cws ) { - print_message("Master workspace '$masterws':"); - print_message("Integrated CWSs for milestone '$milestone':"); - foreach (@integrated_cws) { - print "$_\n"; - } - } - - return; -} - -sub query_approved -{ - my $cws = shift; - - my $masterws = $cws->master(); - - my @approved_cws = $cws->get_cws_with_state($masterws, 'approved by QA'); - - if ( @approved_cws ) { - print_message("Master workspace '$masterws':"); - print_message("CWSs approved by QA:"); - foreach (@approved_cws) { - print "$_\n"; - } - } - - return; -} - -sub query_nominated -{ - my $cws = shift; - - my $masterws = $cws->master(); - - my @nominated_cws = $cws->get_cws_with_state($masterws, 'nominated'); - - if ( @nominated_cws ) { - print_message("Master workspace '$masterws':"); - print_message("Nominated CWSs:"); - foreach (@nominated_cws) { - print "$_\n"; - } - } - - return; -} - -sub query_ready -{ - my $cws = shift; - - my $masterws = $cws->master(); - - my @ready_cws = $cws->get_cws_with_state($masterws, 'ready for QA'); - - if ( @ready_cws ) { - print_message("Master workspace '$masterws':"); - print_message("CWSs ready for QA:"); - foreach (@ready_cws) { - print "$_\n"; - } - } - - return; -} - -sub query_new -{ - my $cws = shift; - - my $masterws = $cws->master(); - - my @ready_cws = $cws->get_cws_with_state($masterws, 'new'); - - if ( @ready_cws ) { - print_message("Master workspace '$masterws':"); - print_message("CWSs with state 'new':"); - foreach (@ready_cws) { - print "$_\n"; - } - } - - return; -} - -sub query_planned -{ - my $cws = shift; - - my $masterws = $cws->master(); - - my @ready_cws = $cws->get_cws_with_state($masterws, 'planned'); - - if ( @ready_cws ) { - print_message("Master workspace '$masterws':"); - print_message("CWSs with state 'planned':"); - foreach (@ready_cws) { - print "$_\n"; - } - } - - return; -} - -sub is_valid_cws -{ - my $cws = shift; - - my $masterws = $cws->master(); - my $childws = $cws->child(); - # check if we got a valid child workspace - my $id = $cws->eis_id(); - if ( !$id ) { - print_error("Child workspace '$childws' for master workspace '$masterws' not found in EIS database.", 2); - } - print STDERR "Master workspace '$masterws', child workspace '$childws'\n"; - return 1; -} - -sub query_release -{ - my $cws = shift; - - if ( is_valid_cws($cws) ) { - my $release = $cws->get_release(); - print_message("Release target:"); - if ( !$release ) { - print "not set\n"; - } else { - print "$release\n"; - } - } - return; -} - -sub query_due -{ - my $cws = shift; - - if ( is_valid_cws($cws) ) { - my $due = $cws->get_due_date(); - print_message("Due date:"); - if ( !$due ) { - print "not set\n"; - } else { - print "$due\n"; - } - } - return; -} - -sub query_due_qa -{ - my $cws = shift; - - if ( is_valid_cws($cws) ) { - my $due_qa = $cws->get_due_date_qa(); - print_message("Due date (QA):"); - if ( !$due_qa ) { - print "not set\n"; - } else { - print "$due_qa\n"; - } - } - return; -} - -sub query_help -{ - my $cws = shift; - - if ( is_valid_cws($cws) ) { - my $help = $cws->is_helprelevant(); - print_message("Help relevant:"); - if ( !$help ) { - print "false\n"; - } else { - print "true\n"; - } - } - return; -} - -sub query_ui -{ - my $cws = shift; - - if ( is_valid_cws($cws) ) { - my $help = $cws->is_uirelevant(); - print_message("UI relevant:"); - if ( !$help ) { - print "false\n"; - } else { - print "true\n"; - } - } - return; -} - -sub verify_milestone -{ - my $cws = shift; - my $qualified_milestone = shift; - - my $invalid = 0; - my ($master, $milestone); - $invalid++ if $qualified_milestone =~ /-/; - - if ( $qualified_milestone =~ /:/ ) { - ($master, $milestone) = split(/:/, $qualified_milestone); - $invalid++ unless ( $master && $milestone ); - } - else { - $milestone = $qualified_milestone; - } - - if ( $invalid ) { - print_error("Invalid milestone", 0); - usage(); - exit(1); - } - - $master = $cws->master() if !$master; - if ( !$cws->is_milestone($master, $milestone) ) { - print_error("Milestone '$milestone' is not registered with master workspace '$master'.", 21); - } - return ($master, $milestone); -} - -sub relink_workspace { - my $linkdir = shift; - my $restore = shift; - - # The list of obligatorily added modules, build will not work - # if these are not present. - my %added_modules_hash; - if (defined $ENV{ADDED_MODULES}) { - for ( split(/\s/, $ENV{ADDED_MODULES}) ) { - $added_modules_hash{$_}++; - } - } - - # clean out pre-existing linkdir - my $bd = dirname($linkdir); - if ( !opendir(DIR, $bd) ) { - print_error("Can't open directory '$bd': $!.", 44); - } - my @old_link_dirs = grep { /^src.m\d+/ } readdir(DIR); - close(DIR); - - if ( @old_link_dirs > 1 ) { - print_error("Found more than one old link directories:", 0); - foreach (@old_link_dirs) { - print STDERR "@old_link_dirs\n"; - } - if ( $restore ) { - print_error("Please remove all old link directories but the last one", 67); - } - } - - # Originally the extension .lnk indicated a linked module. This turned out to be - # not an overly smart choice. Cygwin has some heuristics which regards .lnk - # files as Windows shortcuts, breaking the build. Use .link instead. - # When in restoring mode still consider .lnk as link to modules (for old CWSs) - my $old_link_dir = "$bd/" . $old_link_dirs[0]; - if ( $restore ) { - if ( !opendir(DIR, $old_link_dir) ) { - print_error("Can't open directory '$old_link_dir': $!.", 44); - } - my @links = grep { !(/\.lnk/ || /\.link/) } readdir(DIR); - close(DIR); - # everything which is not a link to a directory can't be an "added" module - foreach (@links) { - next if /^\./; - my $link = "$old_link_dir/$_"; - if ( -s $link && -d $link ) { - $added_modules_hash{$_} = 1; - } - } - } - print_message("... removing '$old_link_dir'"); - rmtree([$old_link_dir], 0); - - print_message("... (re)create '$linkdir'"); - if ( !mkdir("$linkdir") ) { - print_error("Can't create directory '$linkdir': $!.", 44); - } - if ( !opendir(DIR, "$bd/ooo") ) { - print_error("Can't open directory '$bd/sun': $!.", 44); - } - my @ooo_top_level_dirs = grep { !/^\./ } readdir(DIR); - close(DIR); - if ( !opendir(DIR, "$bd/sun") ) { - print_error("Can't open directory '$bd/sun': $!.", 44); - } - my @so_top_level_dirs = grep { !/^\./ } readdir(DIR); - close(DIR); - my $savedir = getcwd(); - if ( !chdir($linkdir) ) { - print_error("Can't chdir() to directory '$linkdir': $!.", 44); - } - my $suffix = '.link'; - foreach(@ooo_top_level_dirs) { - if ( $_ eq 'REBASE.LOG' || $_ eq 'REBASE.CONFIG_DONT_DELETE' ) { - next; - } - my $target = $_; - if ( -d "../ooo/$_" && !exists $added_modules_hash{$_} ) { - $target .= $suffix; - } - if ( !symlink("../ooo/$_", $target) ) { - print_error("Can't symlink directory '../ooo/$_ -> $target': $!.", 44); - } - } - foreach(@so_top_level_dirs) { - if ( $_ eq 'REBASE.LOG' || $_ eq 'REBASE.CONFIG_DONT_DELETE' ) { - next; - } - my $target = $_; - if ( -d "../sun/$_" && !exists $added_modules_hash{$_} ) { - $target .= $suffix; - } - if ( !symlink("../sun/$_", $target) ) { - print_error("Can't symlink directory '../sun/$_ -> $target': $!.", 44); - } - } - if ( !chdir($savedir) ) { - print_error("Can't chdir() to directory '$linkdir': $!.", 44); - } -} - -sub fetch_external_tarballs -{ - my $source_root_dir = shift; - my $external_tarballs_source = shift; - - my $ooo_external_file = "$source_root_dir/ooo/ooo.lst"; - my $sun_external_file = "$source_root_dir/sun/sun.lst"; - my $sun_path = "$source_root_dir/sun"; - - my @external_sources_list; - push(@external_sources_list, read_external_file($ooo_external_file)); - if ( -d $sun_path ) { - if ( -e $sun_external_file ) { - push(@external_sources_list, read_external_file($sun_external_file)); - } - else { - print_error("Can't find external file list '$sun_external_file'.", 8); - } - } - - my $ext_sources_dir = "$source_root_dir/ext_sources"; - print_message("Copy external tarballs to '$ext_sources_dir'"); - if ( ! -d $ext_sources_dir) { - if ( !mkdir($ext_sources_dir) ) { - print_error("Can't create directory '$ext_sources_dir': $!.", 44); - } - } - foreach (@external_sources_list) { - if ( ! copy("$external_tarballs_source/$_", $ext_sources_dir) ) { - print_error("Can't copy file '$external_tarballs_source' -> '$ext_sources_dir': $!", 0); - } - } - return; -} - -sub read_external_file -{ - my $external_file = shift; - - my @external_sources; - open(EXT, "<$external_file") or print_error("Can't open file '$external_file' for reading: $!", 98); - while(<EXT>) { - if ( !/^http:/ ) { - chomp; - push(@external_sources, $_); - } - } - close(EXT); - return @external_sources; -} - -sub update_solver -{ - my $platform = shift; - my $source = shift; - my $solver = shift; - my $milestone = shift; - my $source_config = shift; - - my @zip_sub_dirs = ('bin', 'doc', 'idl', 'inc', 'lib', 'par', 'pck', 'pdb', 'pus', 'rdb', 'res', 'xml', 'sdf'); - - use Archive::Zip qw( :ERROR_CODES :CONSTANTS ); - - my $platform_solver = "$solver/$platform"; - - if ( -d $platform_solver ) { - print_message("... removing old solver for platform '$platform'"); - if ( !rmtree([$platform_solver]) ) { - print_error("Can't remove directory '$platform_solver': $!.", 44); - } - } - - if ( !mkdir("$platform_solver") ) { - print_error("Can't create directory '$platform_solver': $!.", 44); - } - - my $platform_source = "$source/$platform/zip.$milestone"; - if ( !opendir(DIR, "$platform_source") ) { - print_error("Can't open directory '$platform_source': $!.", 44); - } - my @zips = grep { /\.zip$/ } readdir(DIR); - close(DIR); - - my $nzips = @zips; - print_message("... unzipping $nzips zip archives for platform '$platform'"); - - - foreach(@zips) { - my $zip = Archive::Zip->new(); - unless ( $zip->read( "$platform_source/$_" ) == AZ_OK ) { - print_error("Can't read zip file '$platform_source/$_': $!.", 44); - } - # TODO: check for erorrs - foreach (@zip_sub_dirs) { - my $extract_destination = $source_config ? "$platform_solver/$_" : "$platform_solver/$_.$milestone"; - unless ( $zip->extractTree($_, $extract_destination) == AZ_OK ) { - print_error("Can't extract stream from zip file '$platform_source/$_': $!.", 44); - } - } - } -} - -# TODO: special provisions for "source_config" migration, remove this -# some time after migration -sub get_source_config_for_milestone -{ - my $masterws = shift; - my $milestone = shift; - - my $milestone_sequence_number = extract_milestone_sequence_number($milestone); - my $ooo320_migration_sequence_number = extract_milestone_sequence_number($ooo320_source_config_milestone); - - my $source_config = 1; - if ( $masterws eq 'OOO320' ) { - if ( $milestone_sequence_number < $ooo320_migration_sequence_number ) { - $source_config = 0; - } - } - return $source_config; -} - -sub extract_milestone_sequence_number -{ - my $milestone = shift; - - my $milestone_sequence_number; - if ( $milestone =~ /m(\d+)/ ) { - $milestone_sequence_number = $1; - } - else { - print_error("can't extract milestone sequence number from milestone '$milestone'", 99); - } - return $milestone_sequence_number; -} - -# Executes the help command. -sub do_help -{ - my $args_ref = shift; - my $options_ref = shift; - - if (@{$args_ref} == 0) { - print STDERR "usage: cws <subcommand> [options] [args]\n"; - print STDERR "Type 'cws help <subcommand>' for help on a specific subcommand.\n"; - print STDERR "\n"; - print STDERR "Available subcommands:\n"; - print STDERR "\thelp (h,?)\n"; - print STDERR "\tcreate\n"; - print STDERR "\tfetch (f)\n"; - print STDERR "\tquery (q)\n"; - print STDERR "\ttask (t)\n"; - print STDERR "\tsetcurrent\n"; - print STDERR "\teisclone *** release engineers only ***\n"; - } - - my $arg = $args_ref->[0]; - - if (!defined($arg) || $arg eq 'help') { - print STDERR "help (h, ?): Describe the usage of this script or its subcommands\n"; - print STDERR "usage: help [subcommand]\n"; - } - elsif ($arg eq 'create') { - print STDERR "create: Create a new child workspace\n"; - print STDERR "usage: create [-m milestone] <master workspace> <child workspace>\n"; - print STDERR "\t-m milestone: Milestone to base the child workspace on. If ommitted the\n"; - print STDERR "\t last published milestone will be used.\n"; - print STDERR "\t--milestone milestone: Same as -m milestone.\n"; - } - elsif ($arg eq 'task') { - print STDERR "task: Add a task to a child workspace\n"; - print STDERR "usage: task <task id> [task id ...]\n"; - } - elsif ($arg eq 'query') { - print STDERR "query: Query child workspace for miscellaneous information\n"; - print STDERR "usage: query [-M master] [-c child] <current|integratedinto|incompatible|owner|qarep|status|taskids>\n"; - print STDERR " query [-M master] [-c child] <release|due|due_qa|help|ui|ispublic|scm|build>\n"; - print STDERR " query [-M master] <latest|milestones|ispublicmaster>\n"; - print STDERR " query <masters>\n"; - print STDERR " query [-M master] [-m milestone] <integrated|buildid>\n"; - print STDERR " query [-M master] <planned|new|approved|nominated|ready>\n"; - print STDERR "\t-M master:\t\toverride MWS specified in environment\n"; - print STDERR "\t-c child:\t\toverride CWS specified in environment\n"; - print STDERR "\t-m milestone:\t\toverride latest milestone with specified one\n"; - print STDERR "\t--master master:\tSame as -M master\t\n"; - print STDERR "\t--child child:\t\tSame -c child\n"; - print STDERR "\t--milestone milestone:\tSame as -m milestone\n"; - print STDERR "Modes:\n"; - print STDERR "\tcurrent\t\tquery current milestone of CWS\n"; - print STDERR "\tincompatible\tquery modules which should be build incompatible\n"; - print STDERR "\towner\t\tquery CWS owner\n"; - print STDERR "\tqarep\t\tquery CWS QA Representative\n"; - print STDERR "\tstatus\t\tquery approval status of CWS\n"; - print STDERR "\ttaskids\t\tquery taskids to be handled on the CWS\n"; - print STDERR "\trelease\t\tquery for target release of CWS\n"; - print STDERR "\tdue\t\tquery for due date of CWS\n"; - print STDERR "\tdue_qa\t\tquery for due date (QA) of CWS\n"; - print STDERR "\thelp\t\tquery if the CWS is help relevant\n"; - print STDERR "\tui\t\tquery if the CWS is UI relevant\n"; - print STDERR "\tbuild\t\tquery build String for CWS\n"; - print STDERR "\tlatest\t\tquery the latest milestone available for resync\n"; - print STDERR "\tbuildid\t\tquery build ID for milestone\n"; - print STDERR "\tintegrated\tquery integrated CWSs for milestone\n"; - print STDERR "\tintegratedinto\tquery milestone which CWS was integrated into\n"; - print STDERR "\tplanned\t\tquery for planned CWSs\n"; - print STDERR "\tnew\t\tquery for new CWSs\n"; - print STDERR "\tapproved\tquery CWSs approved by QA\n"; - print STDERR "\tnominated\tquery nominated CWSs\n"; - print STDERR "\tready\t\tquery CWSs ready for QA\n"; - print STDERR "\tispublic\tquery public flag of CWS\n"; - print STDERR "\tscm\t\tquery Source Control Management (SCM) system used for CWS\n"; - print STDERR "\tmasters\t\tquery available MWS\n"; - print STDERR "\tmilestones\tquery which milestones are know on the given MWS\n"; - print STDERR "\tispublicmaster\tquery public flag of MWS\n"; - - } - elsif ($arg eq 'fetch') { - print STDERR "fetch: fetch a milestone or CWS\n"; - print STDERR "usage: fetch [-q] [-p platforms] [-r additionalrepositories] [-o] <-m milestone> <workspace>\n"; - print STDERR "usage: fetch [-q] [-p platforms] [-r additionalrepositories] [-o] <-c cws> <workspace>\n"; - print STDERR "usage: fetch [-q] [-x platforms] [-r additionalrepositories] [-o] <-m milestone> <workspace>\n"; - print STDERR "usage: fetch [-q] [-x platforms] [-r additionalrepositories] [-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 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-r additionalrepositories Checkout additional repositories. \n"; - print STDERR "\t Separate multiple repositories with commas.\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"; - print STDERR "usage: setcurrent [-m milestone]\n"; - print STDERR "\t-m milestone: Set milestone to <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 change use the form <MWS>:<milestone>\n"; - print STDERR "\t--milestone milestone: Same as -m milestone\n"; - } - else { - print STDERR "'$arg': unknown subcommand\n"; - exit(1); - } - exit(0); -} - -# Executes the create command. -sub do_create -{ - my $args_ref = shift; - my $options_ref = shift; - - if ( exists $options_ref->{'help'} || @{$args_ref} != 2) { - do_help(['create']); - } - - if ( exists $options_ref->{'hg'} ) { - print_warning("All childworkspaces are now hosted on Mercurial. The switch --hg is obsolete."); - } - - my $master = uc $args_ref->[0]; - my $cws_name = $args_ref->[1]; - - if (!is_master($master)) { - print_error("'$master' is not a valid master workspace.", 7); - } - - # check if cws name fits the convention - if ( $cws_name !~ /^\w[\w\.\#]*$/ ) { - print_error("Invalid child workspace name '$cws_name'.\nCws names should consist of alphanumeric characters, preferable all lowercase and starting with a letter.\nThe characters . and # are allowed if they are not the first character.", 7); - } - - my $cws = get_this_cws(); - $cws->master($master); - $cws->child($cws_name); - - # check if child workspace already exists - my $eis_id = $cws->eis_id(); - if ( !defined($eis_id) ) { - print_error("Connection with EIS database failed.", 8); - } - - my $is_promotion = 0; - if ( $eis_id > 0 ) { - if ( $cws->get_approval() eq 'planned' ) { - print "Promote child workspace '$cws_name' from 'planned' to 'new'.\n"; - $is_promotion++; - } - else { - print_error("Child workspace '$cws_name' already exists.", 7); - } - } - else { - # check if child workspace name is still available - if ( !$cws->is_cws_name_available()) { - print_error("Child workspace name '$cws_name' is already in use.", 7); - } - } - - my $milestone; - # verify milestone or query latest milestone - if ( exists $options_ref->{'milestone'} ) { - $milestone=$options_ref->{'milestone'}; - # check if milestone exists - if ( !$cws->is_milestone($master, $milestone) ) { - print_error("Milestone '$milestone' is not registered with master workspace '$master'.", 8); - } - } - else { - $milestone=$cws->get_current_milestone($cws->master()); - } - - # set milestone - $cws->milestone($milestone); - - register_child_workspace($cws, 'hg', $is_promotion); - - return; -} - -# Executes the fetch command. -sub do_fetch -{ - my $args_ref = shift; - my $options_ref = shift; - - my $time_fetch_start = Benchmark->new(); - if ( exists $options_ref->{'help'} || @{$args_ref} != 1) { - do_help(['fetch']); - } - - my $milestone_opt = $options_ref->{'milestone'}; - my $additional_repositories_opt = $options_ref->{'additionalrepositories'}; - $additional_repositories_opt = "", if ( !defined $additional_repositories_opt ); - 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 ; - - if ( !defined($milestone_opt) && !defined($child) ) { - print_error("Specify one of these options: -m or -c", 0); - do_help(['fetch']); - } - - if ( defined($milestone_opt) && defined($child) ) { - print_error("Options -m and -c are mutally exclusive", 0); - do_help(['fetch']); - } - - 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']); - } - - my $cws = get_this_cws(); - my $masterws = $ENV{WORK_STAMP}; - if ( !defined($masterws) ) { - print_error("Can't determine current master workspace: check environment variable WORK_STAMP", 21); - } - $cws->master($masterws); - my $milestone; - if( defined($milestone_opt) ) { - if ( $milestone_opt eq 'latest' ) { - $cws->master($masterws); - my $latest = $cws->get_current_milestone($masterws); - - if ( !$latest ) { - print_error("Can't determine latest milestone of master workspace '$masterws'.", 22); - } - $milestone = $cws->get_current_milestone($masterws); - } - else { - ($masterws, $milestone) = verify_milestone($cws, $milestone_opt); - } - } - elsif ( defined($child) ) { - $cws = get_cws_by_name($child); - $masterws = $cws->master(); # CWS can have another master than specified in ENV - $milestone = $cws->milestone(); - } - else { - do_help(['fetch']); - } - - my $config = CwsConfig->new(); - # $so_svn_server is still required to determine if we are in SO environment - # TODO: change this configuration setting to something more meaningful - my $so_svn_server = $config->get_so_svn_server(); - my $prebuild_dir = $config->get_prebuild_binaries_location(); - my $external_tarball_source = $prebuild_dir; - # 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) || 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"; - - 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; - 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) { - if ( ! -d "$prebuild_dir/$_") { - print_error("Can't find prebuild binaries for platform '$_'.", 22); - } - } - - } - - my $cwsname = $cws->child(); - my $linkdir = $milestone_opt ? "src.$milestone" : "src." . $cws->milestone; - - my $workspace = $args_ref->[0]; - - if ( !$onlysolver ) { - if ( -e $workspace ) { - print_error("File or directory '$workspace' already exists.", 8); - } - - my $clone_milestone_only = $milestone_opt ? $milestone : 0; - if ( defined($so_svn_server) ) { - if ( !mkdir($workspace) ) { - print_error("Can't create directory '$workspace': $!.", 8); - } - my $work_master = "$workspace/$masterws"; - if ( !mkdir($work_master) ) { - print_error("Can't create directory '$work_master': $!.", 8); - } - - my %unique = map { $_ => 1 } split( /,/ , $additional_repositories_opt); - my @unique_repo_list = keys %unique; - - if (defined($additional_repositories_opt)) - { - foreach my $repo(@unique_repo_list) - { - # do not double clone ooo and sun - hg_clone_cws_or_milestone($repo, $cws, "$work_master/".$repo, $clone_milestone_only), if $repo ne "ooo" && $repo ne "sun"; - } - - } - - hg_clone_cws_or_milestone('ooo', $cws, "$work_master/ooo", $clone_milestone_only); - hg_clone_cws_or_milestone('so', $cws, "$work_master/sun", $clone_milestone_only); - - if ( get_source_config_for_milestone($masterws, $milestone) ) { - # write source_config file - my $source_config_file = "$work_master/source_config"; - if ( !open(SOURCE_CONFIG, ">$source_config_file") ) { - print_error("Can't create source_config file '$source_config_file': $!.", 8); - } - print SOURCE_CONFIG "[repositories]\n"; - print SOURCE_CONFIG "ooo=active\n"; - print SOURCE_CONFIG "sun=active\n"; - foreach my $repo(@unique_repo_list) - { - print SOURCE_CONFIG $repo."=active\n", if $repo ne "ooo" || $repo ne "sun"; - } - close(SOURCE_CONFIG); - } - else { - my $linkdir = "$work_master/src.$milestone"; - if ( !mkdir($linkdir) ) { - print_error("Can't create directory '$linkdir': $!.", 8); - } - relink_workspace($linkdir); - } - } - else { - hg_clone_cws_or_milestone('ooo', $cws, $workspace, $clone_milestone_only); - } - } - - if ( !$onlysolver && defined($external_tarball_source) ) { - my $source_root_dir = "$workspace/$masterws"; - $external_tarball_source .= "/$masterws/ext_sources"; - if ( -e "$source_root_dir/ooo/ooo.lst" && -d $external_tarball_source ) { - fetch_external_tarballs($source_root_dir, $external_tarball_source); - } - } - - if ( defined($platforms) || defined($noautocommon) ) { - if ( !-d $workspace ) { - if ( !mkdir($workspace) ) { - print_error("Can't create directory '$workspace': $!.", 8); - } - } - my $solver = defined($so_svn_server) ? "$workspace/$masterws" : "$workspace/solver"; - if ( !-d $solver ) { - if ( !mkdir($solver) ) { - print_error("Can't create directory '$solver': $!.", 8); - } - } - my $source_config = get_source_config_for_milestone($masterws, $milestone); - foreach(@platforms) { - my $time_solver_start = Benchmark->new(); - print_message("... copying platform solver '$_'."); - update_solver($_, $prebuild_dir, $solver, $milestone, $source_config); - my $time_solver_stop = Benchmark->new(); - print_time_elapsed($time_solver_start, $time_solver_stop) if $profile; - } - } - my $time_fetch_stop = Benchmark->new(); - my $time_fetch = timediff($time_fetch_stop, $time_fetch_start); - print_message("cws fetch: total time required " . timestr($time_fetch)); -} - -sub do_query -{ - my $args_ref = shift; - my $options_ref = shift; - - # list of available query modes - my @query_modes = qw(integratedinto incompatible taskids status latest current owner qarep build buildid integrated approved nominated ready new planned release due due_qa help ui milestones masters scm ispublic ispublicmaster); - my %query_modes_hash = (); - foreach (@query_modes) { - $query_modes_hash{$_}++; - } - - if ( exists $options_ref->{'help'} || @{$args_ref} != 1) { - do_help(['query']); - } - my $mode = lc($args_ref->[0]); - - # cwquery mode 'state' has been renamed to 'status' to be more consistent - # with CVS etc. 'state' is still an alias for 'status' - $mode = 'status' if $mode eq 'state'; - - # cwquery mode 'vcs' has been renamed to 'scm' to be more consistent - # with general use etc. 'vcs' is still an alias for 'scm' - $mode = 'scm' if $mode eq 'vcs'; - - # there will be more query modes over time - if ( !exists $query_modes_hash{$mode} ) { - do_help(['query']); - } - query_cws($mode, $options_ref); -} - -sub do_task -{ - my $args_ref = shift; - my $options_ref = shift; - - if ( exists $options_ref->{'help'} ) { - do_help(['task']); - } - - # CWS states for which adding tasks are blocked. - my @states_blocked_for_adding = ( - "integrated", - "nominated", - "approved by QA", - "cancelled", - "finished" - ); - my $cws = get_cws_from_environment(); - - # register taskids with EIS database; - # checks taksids for sanity, will notify user - # if taskid is already registered. - my $status = $cws->get_approval(); - - my $child = $cws->child(); - my $master = $cws->master(); - - my @registered_taskids = $cws->taskids(); - - # if called without ids to register just query for tasks - if ( @{$args_ref} == 0 ) { - print_message("Task ID(s):"); - foreach (@registered_taskids) { - if ( defined($_) ) { - print "$_\n"; - } - } - } - - if ( !defined($status) ) { - print_error("Can't determine status of child workspace `$child`.", 20); - } - - if ( grep($status eq $_, @states_blocked_for_adding) ) { - print_error("Can't add tasks to child workspace '$child' with state '$status'.", 21); - } - - # Create hash for easier searching. - my %registered_taskids_hash = (); - for (@registered_taskids) { - $registered_taskids_hash{$_}++; - } - - my @new_taskids = (); - foreach (@{$args_ref}) { - if ( $_ !~ /^([ib]?\d+)$/ ) { - print_error("'$_' is an invalid task ID.", 22); - } - if ( exists $registered_taskids_hash{$1} ) { - print_warning("Task ID '$_' already registered, skipping."); - next; - } - push(@new_taskids, $_); - } - - # TODO: introduce a EIS_USER in the configuration, which should be used here - my $config = CwsConfig->new(); - my $vcsid = $config->vcsid(); - my $added_taskids_ref = $cws->add_taskids($vcsid, @new_taskids); - if ( !$added_taskids_ref ) { - my $taskids_str = join(" ", @new_taskids); - print_error("Couldn't register taskID(s) '$taskids_str' with child workspace '$child'.", 23); - } - my @added_taskids = @{$added_taskids_ref}; - if ( @added_taskids ) { - my $taskids_str = join(" ", @added_taskids); - print_message("Registered taskID(s) '$taskids_str' with child workspace '$child'."); - } - return; -} - -sub do_setcurrent -{ - my $args_ref = shift; - my $options_ref = shift; - - if ( exists $options_ref->{'help'} || @{$args_ref} != 0) { - do_help(['setcurrent']); - } - - if ( !exists $options_ref->{'milestone'} ) { - do_help(['setcurrent']); - } - - my $cws = get_cws_from_environment(); - my $old_masterws = $cws->master(); - my $new_masterws; - my $new_milestone; - - my $milestone = $options_ref->{'milestone'}; - if ( $milestone eq 'latest' ) { - my $latest = $cws->get_current_milestone($old_masterws); - - if ( !$latest ) { - print_error("Can't determine latest milestone of '$old_masterws'.", 22); - } - $new_masterws = $old_masterws; - $new_milestone = $latest; - } - else { - ($new_masterws, $new_milestone) = verify_milestone($cws, $milestone); - } - - print_message("... updating EIS database"); - my $push_return = $cws->set_master_and_milestone($new_masterws, $new_milestone); - # sanity check - if ( $$push_return[1] ne $new_milestone) { - print_error("Couldn't push new milestone '$new_milestone' to database", 0); - } -} - -sub do_eisclone -{ - my $args_ref = shift; - my $options_ref = shift; - - print_error("not yet implemented.", 2); -} - -sub print_message -{ - my $message = shift; - - print "$message\n"; - return; -} - -sub print_warning -{ - my $message = shift; - print STDERR "$script_name: "; - print STDERR "WARNING: $message\n"; - return; -} - -sub print_error -{ - my $message = shift; - my $error_code = shift; - - print STDERR "$script_name: "; - print STDERR "ERROR: $message\n"; - - if ( $error_code ) { - print STDERR "\nFAILURE: $script_name aborted.\n"; - exit($error_code); - } - return; -} - -sub usage -{ - print STDERR "Type 'cws help' for usage.\n"; -} - -### HG glue ### - -sub hg_clone -{ - my $source = shift; - my $dest = shift; - my $options = shift; - - if ( $debug ) { - print STDERR "CWS-DEBUG: ... hg clone: '$source -> $dest', options: '$options'\n"; - } - - # The to be cloned revision might not yet be avaliable. In this case clone - # the available tip. - my @result = execute_hg_command(0, 'clone', $options, $source, $dest); - if ( defined($result[0]) && $result[0] =~ /abort: unknown revision/ ) { - $options =~ s/-r \w+//; - @result = execute_hg_command(1, 'clone', $options, $source, $dest); - } - return @result; -} - -sub hg_parent -{ - my $repository = shift; - my $rev_id = shift; - my $options = shift; - - if ( $debug ) { - print STDERR "CWS-DEBUG: ... hg parent: 'repository', revision: '$rev_id', options: $options\n"; - } - - my @result = execute_hg_command(0, 'parent', "--cwd $repository", "-r $rev_id", $options); - my $line = $result[0]; - chomp($line); - return $line; -} - -sub hg_pull -{ - my $repository = shift; - my $remote = shift; - - if ( $debug ) { - print STDERR "CWS-DEBUG: ... hg pull: 'repository', remote: '$remote'\n"; - } - - my @result = execute_hg_command(0, 'pull', "--cwd $repository", $remote); - my $line = $result[0]; - if ($line =~ /abort: /) { - return undef; - } -} - -sub hg_update -{ - my $repository = shift; - - if ( $debug ) { - print STDERR "CWS-DEBUG: ... hg update: 'repository'\n"; - } - - my @result = execute_hg_command(1, 'update', "--cwd $repository"); - return @result; -} - -sub hg_show -{ - if ( $debug ) { - print STDERR "CWS-DEBUG: ... hg show\n"; - } - my $result = execute_hg_command(0, 'show', ''); - return $result; -} - -sub execute_hg_command -{ - my $terminate_on_rc = shift; - my $command = shift; - my $options = shift; - my @args = @_; - - my $args_str = join(" ", @args); - - # we can only parse english strings, hopefully a C locale is available everywhere - $ENV{LC_ALL}='C'; - $command = "hg $command $options $args_str"; - - if ( $debug ) { - print STDERR "CWS-DEBUG: ... execute command line: '$command'\n"; - } - - my @result; - open(OUTPUT, "$command 2>&1 |") or print_error("Can't execute mercurial command line client", 98); - while (<OUTPUT>) { - push(@result, $_); - } - close(OUTPUT); - - my $rc = $? >> 8; - - if ( $rc > 0 && $terminate_on_rc) { - print STDERR @result; - print_error("The mercurial command line client failed with exit status '$rc'", 99); - } - return wantarray ? @result : \@result; -} - - -# vim: set ts=4 shiftwidth=4 expandtab syntax=perl: diff --git a/solenv/bin/cwsattach b/solenv/bin/cwsattach deleted file mode 100755 index 99bcde52977a..000000000000 --- a/solenv/bin/cwsattach +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -if [ x${SOLARENV}x = xx ]; then - echo No environment found, please use 'configure' or 'setsolar' - exit 1 -fi -exec perl -w $SOLARENV/bin/cwsattach.pl "$@" - diff --git a/solenv/bin/cwsattach.btm b/solenv/bin/cwsattach.btm deleted file mode 100644 index 94a0f28c7ab8..000000000000 --- a/solenv/bin/cwsattach.btm +++ /dev/null @@ -1,11 +0,0 @@ -@echo off -iff "%SOLARENV%" == "" then - echo No environment found, please use 'configure' or 'setsolar' - goto end -endiff -iff "%PERL%" == "" then - call perl5 -I%SOLARENV%\bin\modules %SOLARENV%\bin\cwsattach.pl %1& -else - call %PERL% -I%SOLARENV%\bin\modules %SOLARENV%\bin\cwsattach.pl %1& -endiff -:end diff --git a/solenv/bin/cwsattach.pl b/solenv/bin/cwsattach.pl deleted file mode 100644 index 05e1b8df3cb4..000000000000 --- a/solenv/bin/cwsattach.pl +++ /dev/null @@ -1,220 +0,0 @@ -: -eval 'exec perl -wS $0 ${1+"$@"}' - if 0; -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* -# -# cwsattach.pl - attach files to CWS -# - -use strict; -use Getopt::Long; -use Cwd; - -#### module lookup -my @lib_dirs; -BEGIN { - if ( !defined($ENV{SOLARENV}) ) { - die "No environment found (environment variable SOLARENV is undefined)"; - } - push(@lib_dirs, "$ENV{SOLARENV}/bin/modules"); - push(@lib_dirs, "$ENV{COMMON_ENV_TOOLS}/modules") if defined($ENV{COMMON_ENV_TOOLS}); -} -use lib (@lib_dirs); - -use Cws; - -#### script id ##### - -( my $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/; - -my $script_rev; -my $id_str = ' $Revision: 1.3 $ '; -$id_str =~ /Revision:\s+(\S+)\s+\$/ - ? ($script_rev = $1) : ($script_rev = "-"); - -print STDERR "$script_name -- version: $script_rev\n"; - -#### global ##### - -my $is_debug = 1; # enable debug -my $opt_master = ''; # option: master workspace -my $opt_child = ''; # option: child workspace -my $opt_mime_type = ''; # option: mime type - - -#### main ##### - -my $arg_file = parse_options(); -attach_cws($arg_file); -exit(0); - -#### subroutines #### - -sub attach_cws -{ - my $filename = shift; - # get master and child workspace - my $masterws = $opt_master ? uc($opt_master) : $ENV{WORK_STAMP}; - my $childws = $opt_child ? $opt_child : $ENV{CWS_WORK_STAMP}; - - if ( !defined($masterws) ) { - print_error("Can't determine master workspace environment.\n" - . "Please initialize environment with setsolar ...", 1); - } - - if ( !defined($childws) ) { - print_error("Can't determine child workspace environment.\n" - . "Please initialize environment with setsolar ...", 1); - } - - my $cws = Cws->new(); - $cws->child($childws); - $cws->master($masterws); - - my $mime_type = $opt_mime_type ? $opt_mime_type : find_mime_type($filename); - - no strict; - - if ( is_valid_cws($cws) ) { - #print "CWS is valid filename=" . $filename . " mime_type=" . $mime_type . "\n"; - open(DATA,"<$filename") || die "can't open filename"; - $data=""; - while(<DATA>) { - $data.=$_; - } - my $result=$cws->save_attachment($filename,$mime_type,$data); - } else { - print STDERR "cws is not valid"; - } - exit(0) -} - - -sub find_mime_type -{ - my $filename = shift; - $filename=~/(.*)\.(.*$)/; - my $ext=$2; - my $fmime=''; - - if ( defined($ext) ) { - open(MIME,"< $ENV{SOLARENV}/inc/mime.types")|| die "can not open mimetype file"; - while (<MIME>) { - my @a=split(); - my $iscomment=0; - if ( /(\s*\#).*/ ) { - $iscomment=1; - } else { - $iscomment=0; - } - if ( $iscomment eq 0 && $#a >= 1 && $fmime eq '' ) { - my $i=1; - for ($i=1; $i<=$#a; $i++) { - if ( $a[$i] eq $ext ) { - $fmime=$a[0]; - } - } - } - } - - } - if ( $fmime eq '' ) { - $fmime="application/octet-stream"; - } - return $fmime; -} - - -sub is_valid_cws -{ - my $cws = shift; - - my $masterws = $cws->master(); - my $childws = $cws->child(); - # check if we got a valid child workspace - my $id = $cws->eis_id(); - if ( !$id ) { - print_error("Child workspace '$childws' for master workspace '$masterws' not found in EIS database.", 2); - } - print_message("Master workspace '$masterws', child workspace '$childws':"); - return 1; -} - -sub parse_options -{ - # parse options and do some sanity checks - my $help = 0; - my $success = GetOptions('h' => \$help, 'm=s' => \$opt_master, 'c=s'=> \$opt_child, 't=s'=> \$opt_mime_type); - if ( $help || !$success || $#ARGV < 0 ) { - usage(); - exit(1); - } - - return $ARGV[0]; -} - -sub print_message -{ - my $message = shift; - - print STDERR "$script_name: "; - print STDERR "$message\n"; - return; -} - -sub print_error -{ - my $message = shift; - my $error_code = shift; - - print STDERR "$script_name: "; - print STDERR "ERROR: $message\n"; - - if ( $error_code ) { - print STDERR "\nFAILURE: $script_name aborted.\n"; - exit($error_code); - } - return; -} - -sub usage -{ - print STDERR "Usage: cwsattach [-h] [-m master] [-c child] [-t mimetype] filename\n"; - print STDERR "\n"; - print STDERR "Attach files to CWS in EIS database\n"; - print STDERR "\n"; - print STDERR "Options:\n"; - print STDERR "\t-h\t\thelp\n"; - print STDERR "\t-m master\toverride MWS specified in environment\n"; - print STDERR "\t-c child\toverride CWS specified in environment\n"; - print STDERR "\t-t mimetype\texplicitly set mime type\n"; - print STDERR "Examples:\n"; - print STDERR "\tcwsattach barfoo.html\n"; - print STDERR "\tcwsattach -t text bar.cxx\n"; - print STDERR "\tcwsattach -t text/rtf foo.rtf\n"; -} diff --git a/solenv/bin/cwscreate b/solenv/bin/cwscreate deleted file mode 100755 index c3260f746e39..000000000000 --- a/solenv/bin/cwscreate +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -if [ x${SOLARENV}x = xx ]; then - echo No environment found, please use 'configure' or 'setsolar' - exit 1 -fi -echo "Please use the 'cws create' command for creating new child workspaces!" diff --git a/solenv/bin/cwstestresult b/solenv/bin/cwstestresult deleted file mode 100755 index 29b1c0c8e99d..000000000000 --- a/solenv/bin/cwstestresult +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -if [ x${SOLARENV}x = xx ]; then - echo No environment found, please use 'configure' or 'setsolar' - exit 1 -fi -exec perl -w $SOLARENV/bin/cwstestresult.pl "$@" - diff --git a/solenv/bin/cwstestresult.btm b/solenv/bin/cwstestresult.btm deleted file mode 100644 index 38a012996500..000000000000 --- a/solenv/bin/cwstestresult.btm +++ /dev/null @@ -1,11 +0,0 @@ -@echo off -iff "%SOLARENV%" == "" then - echo No environment found, please use 'configure' or 'setsolar' - goto end -endiff -iff "%PERL%" == "" then - call perl5 -I%SOLARENV%\bin\modules %SOLARENV%\bin\cwstestresult.pl %1& -else - call %PERL% -I%SOLARENV%\bin\modules %SOLARENV%\bin\cwstestresult.pl %1& -endiff -:end diff --git a/solenv/bin/cwstestresult.pl b/solenv/bin/cwstestresult.pl deleted file mode 100644 index 43b41ff7b5e8..000000000000 --- a/solenv/bin/cwstestresult.pl +++ /dev/null @@ -1,192 +0,0 @@ -: -eval 'exec perl -wS $0 ${1+"$@"}' - if 0; -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* -# -# cwstestresult.pl - publish results of CWS tests to EIS -# - -use strict; -use Getopt::Long; -use Cwd; - -#### module lookup -my @lib_dirs; -BEGIN { - if ( !defined($ENV{SOLARENV}) ) { - die "No environment found (environment variable SOLARENV is undefined)"; - } - push(@lib_dirs, "$ENV{SOLARENV}/bin/modules"); - push(@lib_dirs, "$ENV{COMMON_ENV_TOOLS}/modules") if defined($ENV{COMMON_ENV_TOOLS}); -} -use lib (@lib_dirs); - -use Cws; - -#### global ##### -( my $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/; - -my $is_debug = 1; # enable debug -my $opt_master; # option: master workspace -my $opt_child; # option: child workspace -my $opt_milestone; # option: milestone -my $opt_testrunName; # option: testrunName -my $opt_testrunPlatform; # option: testrunPlatfrom -my $opt_resultPage; # option: resultPage - - -#### main ##### - -my $arg_status= parse_options(); -testresult($arg_status); -exit(0); - -#### subroutines #### - -sub testresult -{ - my $status = shift; - # get master and child workspace - my $masterws = $opt_master ? uc($opt_master) : $ENV{WORK_STAMP}; - my $milestone = $opt_milestone ? $opt_milestone : $ENV{UPDMINOR}; - my $childws = $opt_milestone ? undef : ( $opt_child ? $opt_child : $ENV{CWS_WORK_STAMP} ); - - if ( !defined($masterws) ) { - print_error("Can't determine master workspace environment.\n" - . "Please initialize environment with setsolar ...", 1); - } - - if ( !defined($childws) && !defined($milestone) ) { - print_error("Can't determine child workspace environment or milestone.\n" - . "Please initialize environment with setsolar ...", 1); - } - if ( !defined($opt_resultPage) ) { - $opt_resultPage=""; - } - my $cws = Cws->new(); - if ( defined($childws) ) { - $cws->child($childws); - } - $cws->master($masterws); - my $eis = $cws->eis(); - - no strict; - my $result=''; - - if ( defined($childws) ) { - $opt_resultPage=SOAP::Data->type(string => $opt_resultPage); - my $id = $cws->eis_id(); - if ( is_valid_cws($cws) ) { - $result=$eis->submitTestResult($id,$opt_testrunName,$opt_testrunPlatform, $opt_resultPage, $status); - } else { - print STDERR "cws is not valid"; - } - } else { - $opt_resultPage=SOAP::Data->type(string => $opt_resultPage); - $result=$eis->submitTestResultMWS($masterws,$milestone,$opt_testrunName,$opt_testrunPlatform, $opt_resultPage, $status); - } - - exit(0) -} - - -sub is_valid_cws -{ - my $cws = shift; - - my $masterws = $cws->master(); - my $childws = $cws->child(); - # check if we got a valid child workspace - my $id = $cws->eis_id(); - if ( !$id ) { - print_error("Child workspace '$childws' for master workspace '$masterws' not found in EIS database.", 2); - } - return 1; -} - -sub parse_options -{ - # parse options and do some sanity checks - Getopt::Long::Configure("no_ignore_case"); - my $help = 0; - my $success = GetOptions('h' => \$help, 'M=s' => \$opt_master, 'm=s' => \$opt_milestone, 'c=s' => \$opt_child, 'n=s' => \$opt_testrunName, 'p=s' => \$opt_testrunPlatform , 'r=s' => \$opt_resultPage ); - if ( $help || !$success || $#ARGV < 0 || (!defined($opt_testrunName)) || ( !defined($opt_testrunPlatform)) ) { - usage(); - exit(1); - } - if ( defined($opt_milestone) && defined($opt_child) ) { - print_error("-m and -c are mutually exclusive options",1); - } - - return $ARGV[0]; -} - -sub print_message -{ - my $message = shift; - - print STDERR "$script_name: "; - print STDERR "$message\n"; - return; -} - -sub print_error -{ - my $message = shift; - my $error_code = shift; - - print STDERR "$script_name: "; - print STDERR "ERROR: $message\n"; - - if ( $error_code ) { - print STDERR "\nFAILURE: $script_name aborted.\n"; - exit($error_code); - } - return; -} - -sub usage -{ - print STDERR "Usage: cwstestresult[-h] [-m masterws] [-m milestone|-c childws] <-n testrunName> <-p testrunPlatform> <-r resultPage> statusName\n"; - print STDERR "\n"; - print STDERR "Publish result of CWS- or milestone-test to EIS\n"; - print STDERR "\n"; - print STDERR "Options:\n"; - print STDERR "\t-h\t\t\thelp\n"; - print STDERR "\t-M master\t\toverride MWS specified in environment\n"; - print STDERR "\t-m milestone\t\toverride milestone specified in environment\n"; - print STDERR "\t-c child\t\toverride CWS specified in environment\n"; - print STDERR "\t-n testrunName\t\tspecifiy name of the test\n"; - print STDERR "\t-p testrunPlatform\tspecify platform where the test ran on\n"; - print STDERR "\t-r resultPage\t\tspecify name of attachment or hyperlink\n"; - print STDERR "\t\t\t\tfor resultPage\n"; - - - print STDERR "\nExample:\n"; - print STDERR "\tcwstestresult -c mycws -n Performance -p Windows -r PerfomanceTestWindows.html ok\n"; -} diff --git a/solenv/bin/cwstouched b/solenv/bin/cwstouched deleted file mode 100755 index dac08c07f9a7..000000000000 --- a/solenv/bin/cwstouched +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh -if [ x${SOLARENV}x = xx ]; then - echo No environment found, please use 'configure' or 'setsolar' - exit 1 -fi -exec perl -w $SOLARENV/bin/cwstouched.pl diff --git a/solenv/bin/cwstouched.btm b/solenv/bin/cwstouched.btm deleted file mode 100755 index 33e442dbb51c..000000000000 --- a/solenv/bin/cwstouched.btm +++ /dev/null @@ -1,11 +0,0 @@ -@echo off -iff "%SOLARENV%" == "" then - echo No environment found, please use 'configure' or 'setsolar' - goto end -endiff -iff "%PERL%" == "" then - call perl5 -I%SOLARENV%\bin\modules %SOLARENV%\bin\cwstouched.pl %1& -else - call %PERL% -I%SOLARENV%\bin\modules %SOLARENV%\bin\cwstouched.pl %1& -endiff -:end diff --git a/solenv/bin/cwstouched.pl b/solenv/bin/cwstouched.pl deleted file mode 100755 index eb306277580c..000000000000 --- a/solenv/bin/cwstouched.pl +++ /dev/null @@ -1,151 +0,0 @@ -: -eval 'exec perl -wS $0 ${1+"$@"}' - if 0; - -#************************************************************************* -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#***********************************************************************/ - -use strict; -use Cwd; - -#### module lookup -my @lib_dirs; -BEGIN { - if ( !defined($ENV{SOLARENV}) ) { - die "No environment found (environment variable SOLARENV is undefined)"; - } - push(@lib_dirs, "$ENV{SOLARENV}/bin/modules"); -} -use lib (@lib_dirs); - -use Cws; - -# Prototypes -sub getMinor($); -sub getCwsWorkStamp(); - -my $workstamp = $ENV{'WORK_STAMP'}; -my $solenv= $ENV{'SOLARENV'}; -my $cwsWorkStamp = getCwsWorkStamp(); -my $minor = getMinor($cwsWorkStamp); - -my $oldWorkStamp = $workstamp."_".$minor; -my $svndiff="svn diff --summarize --old=svn://svn.services.openoffice.org/ooo/tags/".$oldWorkStamp." --new=svn://svn.services.openoffice.org/ooo/cws/".$cwsWorkStamp; - -my @diff = `$svndiff`; - -my @modules; -foreach(@diff) -{ - if (/.*svn:\/\/svn.services.openoffice.org.*/) - { - $_ =~ /.*$oldWorkStamp\/(\w*)/; - my $newModule=$1; - if (defined($newModule)) - { - if ( ! grep(/$newModule/,@modules)) - { - push(@modules, $newModule); - } - - } - } -} - -foreach(@modules) -{ - print "$_\n"; -} - -exit(0); - -sub getMinor($) -{ - my $workst = shift; - my $min=""; - - if ( ! defined($ENV{'UPDMINOR'})) - { - my $cws = Cws->new(); - $cws->child($workst); - $cws->master($ENV{'WORK_STAMP'}); - my $masterws = $cws->master(); - my $childws = $cws->child(); - - # check if we got a valid child workspace - my $id = $cws->eis_id(); - if ( !$id ) - { - print("Child workspace '$childws' for master workspace '$masterws' not found in EIS database.\n"); - exit(1); - } - - my @milestones = $cws->milestone(); - foreach (@milestones) { - if ( defined($_) ) - { - $min=$_; - } - } - } - else - { - $min = $ENV{'UPDMINOR'}; - } - - chomp($min); - return $min; -} - -sub getCwsWorkStamp() -{ - my $cwsWorkSt=""; - - if ( ! defined($ENV{'CWS_WORK_STAMP'})) - { - my $currPath= cwd; - - chdir($ENV{'SOLARENV'}); - - my @info = `svn info`; - - foreach(@info) - { - if ( /URL:.*/ ) - { - # URL: svn+ssh://svn@svn.services.openoffice.org/ooo/cws/qadev37/solenv - $_ =
~ /.*svn.services.openoffice.org(.*\/(.*))\/\w*/; - $cwsWorkSt=$2; #qadev37 - } - } - - } - else - { - $cwsWorkSt = $ENV{'CWS_WORK_STAMP'}; - } - return $cwsWorkSt -} diff --git a/solenv/bin/cwstouched.py b/solenv/bin/cwstouched.py deleted file mode 100755 index 87dfe4b03595..000000000000 --- a/solenv/bin/cwstouched.py +++ /dev/null @@ -1,111 +0,0 @@ -#!/usr/bin/python - -#************************************************************************* -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#***********************************************************************/ - -import os -import sys -import string -from os import path - -def getCurrPath(): - currPath = sys.path[0] or os.getcwd() - currPath = path.abspath(currPath) - return currPath - -def getCwsWorkStamp(): - cwsWorkStamp=os.getenv('CWS_WORK_STAMP') - - if not cwsWorkStamp: - currPath=getCurrPath() - - os.chdir(os.getenv('SOLARENV')) - - (input, output) = os.popen4("svn info") - - for outline in output.readlines(): - if outline.startswith("URL:"): - cwsWorkStamp = outline[outline.index("svn.services"):outline.index("solenv")-1] - cwsWorkStamp = cwsWorkStamp[cwsWorkStamp.rfind("/")+1:len(cwsWorkStamp)] - break - - os.putenv("CWS_WORK_STAMP",cwsWorkStamp); - os.chdir(currPath) - - return string.strip(cwsWorkStamp) - -def getMinor(cwsWorkStamp): - minor = os.getenv('UPDMINOR') - - if not minor: - if (os.getenv('OSTYPE') == "cygwin"): - bash=os.getenv("SHELL") - (input, output) = os.popen4("cygpath -w "+bash) - winbash=string.strip(output.readlines()[0]) - cws=winbash+" -c 'cws query -c "+cwsWorkStamp+" current'" - else: - cws="cws query -c "+cwsWorkStamp+" current" - - (input, output) = os.popen4(cws) - - found=0 - for outline in output.readlines(): - if found: - minor=outline - break - elif outline.find("Current milestone:") != -1: - found=1 - - return string.strip(minor) - - -workstamp = os.getenv('WORK_STAMP') -solenv= os.getenv('SOLARENV') -cwsWorkStamp=getCwsWorkStamp() -minor = getMinor(cwsWorkStamp) - -oldWorkStamp = workstamp + "_" + minor -diff="svn diff --summarize --old=svn://svn.services.openoffice.org/ooo/tags/"+oldWorkStamp+" --new=svn://svn.services.openoffice.org/ooo/cws/"+cwsWorkStamp - -modules=[] -(input, output) = os.popen4(diff) - -for outline in output.readlines(): - if outline.find("svn://svn.services.openoffice.org"): - index = outline.index(oldWorkStamp)+len(oldWorkStamp)+1 - newModule="" - if outline.find("/",index) != -1: - # seems to be a file - newModule=string.strip(outline[index:outline.index("/",index)]) - else: - #seems to be a folder - if len(outline[index:]) > 0: - newModule=string.strip(outline[index:]) - if newModule != "" and not modules.count(newModule): - modules.append(newModule) - -for module in modules: - print module
\ No newline at end of file diff --git a/solenv/bin/deliver.pl b/solenv/bin/deliver.pl index b87665c6b011..1d1c53618105 100755 --- a/solenv/bin/deliver.pl +++ b/solenv/bin/deliver.pl @@ -43,11 +43,6 @@ use File::Spec; ( $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/; -$id_str = ' $Revision: 275594 $ '; -$id_str =~ /Revision:\s+(\S+)\s+\$/ - ? ($script_rev = $1) : ($script_rev = "-"); - - #### globals #### ### valid actions ### @@ -141,8 +136,6 @@ use sigtrap 'handler' => \&cleanup_and_die, 'normal-signals'; parse_options(); -print "$script_name -- version: $script_rev\n" if !$opt_silent; - if ( ! $opt_delete ) { if ( $ENV{GUI} eq 'WNT' ) { if ($ENV{COM} eq 'GCC') { @@ -238,7 +231,7 @@ sub do_linklib return unless $has_symlinks; $from_dir = expand_macros('../%__SRC%/lib'); - $to_dir = expand_macros('%_DEST%/lib%_EXT%'); + $to_dir = expand_macros('%_DEST%/lib'); @globbed_files = glob("$from_dir/$lib"); @@ -268,7 +261,6 @@ sub do_linklib } else { - # $lib =~ /^(lib[\w-]+(\.so|\.dylib))\.(\d+)$/; $long = 0; } @@ -368,13 +360,13 @@ sub do_symlink } } else { + return unless -e $fullfrom; print "REMOVE: $to\n" if $opt_verbose; unlink $to; if ( $opt_delete ) { push_on_ziplist($to) if $opt_zip; return; } - return unless -e $fullfrom; print "SYMLIB: $from -> $to\n" if $opt_verbose; if ( !symlink("$from", "$to") ) { print_error("can't symlink $from -> $to: $!",0); @@ -446,7 +438,6 @@ sub parse_options sub init_globals { - my $ext; ($module, $repository, $base_dir, $dlst_file) = get_base(); # for CWS: @@ -459,38 +450,18 @@ sub init_globals $umask = 22; } - my $build_sosl = $ENV{'BUILD_SOSL'}; my $common_outdir = $ENV{'COMMON_OUTDIR'}; my $inpath = $ENV{'INPATH'}; my $solarversion = $ENV{'SOLARVERSION'}; my $updater = $ENV{'UPDATER'}; - my $updminor = $ENV{'UPDMINOR'}; - my $updminorext = $ENV{'UPDMINOREXT'}; my $work_stamp = $ENV{'WORK_STAMP'}; - # special security check for release engineers - if ( defined($updater) && !defined($build_sosl) && !$opt_force) { - my $path = getcwd(); - if ( $path !~ /$work_stamp/io ) { - print_error("can't deliver from local directory to SOLARVERSION"); - print STDERR "\nDANGER! Release Engineer:\n"; - print STDERR "do you really want to deliver from $path to SOLARVERSION?\n"; - print STDERR "If so, please use the -force switch\n\n"; - exit(7); - } - } - # do we have a valid environment? if ( !defined($inpath) ) { print_error("no environment", 0); exit(3); } - $ext = ""; - if ( ($updminor) && !$dest ) { - $ext = "$updminorext"; - } - # Do we have common trees? if ( defined($ENV{'common_build'}) && $ENV{'common_build'} eq 'TRUE' ) { $common_build = 1; @@ -530,7 +501,6 @@ sub init_globals [ '%__PRJROOT%', $base_dir ], [ '%__SRC%', $inpath ], [ '%_DEST%', $dest ], - [ '%_EXT%', $ext ], [ '%COMMON_OUTDIR%', $common_outdir ], [ '%COMMON_DEST%', $common_dest ], [ '%GUI%', $gui ] @@ -601,7 +571,7 @@ sub parse_dlst if ( /\.res\s/ ) { my $imagelist = $_; $imagelist =~ s/\.res/\.$ilst_ext/g; - $imagelist =~ s/\\bin%_EXT%\\/\\res%_EXT%\\img\\/; + $imagelist =~ s/DEST%\\bin\\/DEST%\\res\\img\\/; push(@action_data, ['copy', $imagelist]); } } @@ -829,10 +799,6 @@ sub copy_if_newer } } fix_file_permissions($$from_stat_ref[2], $temp_file); - if ( $^O eq 'os2' ) - { - $rc = unlink($to); # YD OS/2 can't rename if $to exists! - } # Ugly hack: on windows file locking(?) sometimes prevents renaming. # Until we've found and fixed the real reason try it repeatedly :-( my $try = 0; @@ -1021,33 +987,33 @@ sub push_default_actions if ( ! $opt_delete ) { # create all the subdirectories on solver foreach $subdir (@subdirs) { - push(@action_data, ['mkdir', "%_DEST%/$subdir%_EXT%"]); + push(@action_data, ['mkdir', "%_DEST%/$subdir"]); } if ( $common_build ) { foreach $subdir (@common_subdirs) { - push(@action_data, ['mkdir', "%COMMON_DEST%/$subdir%_EXT%"]); + push(@action_data, ['mkdir', "%COMMON_DEST%/$subdir"]); } } } - push(@action_data, ['mkdir', "%_DEST%/inc%_EXT%/$module"]); + push(@action_data, ['mkdir', "%_DEST%/inc/$module"]); if ( $common_build ) { - push(@action_data, ['mkdir', "%COMMON_DEST%/inc%_EXT%/$module"]); - push(@action_data, ['mkdir', "%COMMON_DEST%/res%_EXT%/img"]); + push(@action_data, ['mkdir', "%COMMON_DEST%/inc/$module"]); + push(@action_data, ['mkdir', "%COMMON_DEST%/res/img"]); } else { - push(@action_data, ['mkdir', "%_DEST%/res%_EXT%/img"]); + push(@action_data, ['mkdir', "%_DEST%/res/img"]); } # deliver build.lst to $dest/inc/$module - push(@action_data, ['copy', "build.lst %_DEST%/inc%_EXT%/$module/build.lst"]); + push(@action_data, ['copy', "build.lst %_DEST%/inc/$module/build.lst"]); if ( $common_build ) { # ... and to $common_dest/inc/$module - push(@action_data, ['copy', "build.lst %COMMON_DEST%/inc%_EXT%/$module/build.lst"]); + push(@action_data, ['copy', "build.lst %COMMON_DEST%/inc/$module/build.lst"]); } # need to copy libstaticmxp.dylib for Mac OS X if ( $^O eq 'darwin' ) { - push(@action_data, ['copy', "../%__SRC%/lib/lib*static*.dylib %_DEST%/lib%_EXT%/lib*static*.dylib"]); + push(@action_data, ['copy', "../%__SRC%/lib/lib*static*.dylib %_DEST%/lib/lib*static*.dylib"]); } } @@ -1120,20 +1086,8 @@ sub push_on_ziplist return if ( $opt_check ); # strip $dest from path since we don't want to record it in zip file if ( $file =~ s#^\Q$dest\E/##o ) { - if ( $updminor ){ - # strip minor from path - my $ext = "%_EXT%"; - $ext = expand_macros($ext); - $file =~ s#^$ext##o; - } push(@zip_list, $file); } elsif ( $file =~ s#^\Q$common_dest\E/##o ) { - if ( $updminor ){ - # strip minor from path - my $ext = "%_EXT%"; - $ext = expand_macros($ext); - $file =~ s#^$ext##o; - } push(@common_zip_list, $file); } } @@ -1163,10 +1117,6 @@ sub push_on_loglist my $solarversion = $ENV{'SOLARVERSION'}; $solarversion =~ s#\\#/#g; $entry[2] =~ s/^\Q$solarversion\E\///; - # strip minor from 'to' - my $ext = "%_EXT%"; - $ext = expand_macros($ext); - $entry[2] =~ s#$ext([\\\/])#$1#o; if ( $common ) { push @common_log_list, [@entry]; @@ -1182,21 +1132,18 @@ sub zip_files $zipexe .= ' -y' unless $^O eq 'MSWin32'; my ($platform_zip_file, $common_zip_file); - $platform_zip_file = "%_DEST%/zip%_EXT%/$module.zip"; + $platform_zip_file = "%_DEST%/zip/$module.zip"; $platform_zip_file = expand_macros($platform_zip_file); my (%dest_dir, %list_ref); $dest_dir{$platform_zip_file} = $dest; $list_ref{$platform_zip_file} = \@zip_list; if ( $common_build ) { - $common_zip_file = "%COMMON_DEST%/zip%_EXT%/$module.zip"; + $common_zip_file = "%COMMON_DEST%/zip/$module.zip"; $common_zip_file = expand_macros($common_zip_file); $dest_dir{$common_zip_file} = $common_dest; $list_ref{$common_zip_file} = \@common_zip_list; } - my $ext = "%_EXT%"; - $ext = expand_macros($ext); - my @zipfiles; $zipfiles[0] = $platform_zip_file; if ( $common_build ) { @@ -1314,8 +1261,8 @@ sub get_tempfilename sub write_log { my (%log_file, %file_date); - $log_file{\@log_list} = "%_DEST%/inc%_EXT%/$module/deliver.log"; - $log_file{\@common_log_list} = "%COMMON_DEST%/inc%_EXT%/$module/deliver.log"; + $log_file{\@log_list} = "%_DEST%/inc/$module/deliver.log"; + $log_file{\@common_log_list} = "%COMMON_DEST%/inc/$module/deliver.log"; $file_date{\@log_list} = $logfiledate; $file_date{\@common_log_list} = $commonlogfiledate; diff --git a/solenv/bin/fix_def_file.cmd b/solenv/bin/fix_def_file.cmd deleted file mode 100644 index 4db97f8ce435..000000000000 --- a/solenv/bin/fix_def_file.cmd +++ /dev/null @@ -1,52 +0,0 @@ -/* os2 build scripts
-
-this script is used to process def results
-
-*/
-
-lmax = 0
-smax = ''
-ordinal = 1
-
-do while( lines())
-
- l = strip(linein())
- l = strip(l,,X2C(9))
- l = strip(l,,";")
- if LEFT( l,4) \= 'Java' THEN l = '_'l
-
- /* remove comments */
- if POS(';', l) > 0 then l = LEFT( l, POS(';', l)-1)
- if POS('#', l) > 0 then l = LEFT( l, POS('#', l)-1)
- /* remove wildcards */
- if POS('*', l) > 0 then l = ''
-
- /* remove empty lines */
- if l = '_' then l = ''
-
- /* remove component_getDescriptionFunc, since it is already added by tg_def */
- if l = '_component_getDescriptionFunc' then l = ''
- if l = '_GetVersionInfo' then l = ''
-
- /* remove GLOBAL symbols */
-/*
- if POS('_GLOBAL_', l) > 0 then l = ';'l
- if POS('_ZN4_STL', l) > 0 then l = ';'l
- if POS('_ZNK4_STL', l) > 0 then l = ';'l
-*/
- /* if LENGTH(l) > 254 then l = ';(>254)'left(l,100)*/
-
- IF LENGTH(l)>0 THEN DO
- say l
- ordinal = ordinal + 1
- END
-
- if LENGTH(l)>lmax then do
- lmax = LENGTH(l)
- smax = l
- end
-
-end
-
-say ';lmax='lmax
-say ';smax='smax
diff --git a/solenv/bin/fix_def_ord.cmd b/solenv/bin/fix_def_ord.cmd deleted file mode 100644 index eaeb666626db..000000000000 --- a/solenv/bin/fix_def_ord.cmd +++ /dev/null @@ -1,19 +0,0 @@ -/* os2 build scripts
-
-this script is used to process def results.
-Adds ordinal number to every line.
-
-*/
-
-lmax = 0
-smax = ''
-
-ord = 1
-do while( lines())
-
- l = linein()
- IF LENGTH(l)>0 THEN DO
- say l /* ' @'ord ' RESIDENTNAME' */
- ord = ord + 1
- END
-end
diff --git a/solenv/bin/fix_dxp_file.cmd b/solenv/bin/fix_dxp_file.cmd deleted file mode 100644 index 66149c1207ea..000000000000 --- a/solenv/bin/fix_dxp_file.cmd +++ /dev/null @@ -1,30 +0,0 @@ -/* os2 build scripts
-
-this script is used to process dxp files produced from .map
-
-*/
-
-do while( lines())
-
- l = linein()
-
- l = strip(l)
- l = strip(l,,X2C(9))
- l = strip(l,,";")
- if LEFT( l,4) \= 'Java' THEN l = '_'l
-
- /* remove empty lines */
- if l = '_' then l = ''
-
- /* remove component_getDescriptionFunc, since it is already added by tg_def */
- if l = '_component_getDescriptionFunc' then l = ''
- if l = '_GetVersionInfo' then l = ''
-
- /* remove GLOBAL symbols */
-/*
- if WORDPOS( l, '_GLOBAL_') > 0 then l = ''
-*/
-
- say l
-
-end
diff --git a/solenv/bin/fix_exp_file.cmd b/solenv/bin/fix_exp_file.cmd deleted file mode 100644 index bec416c06e05..000000000000 --- a/solenv/bin/fix_exp_file.cmd +++ /dev/null @@ -1,54 +0,0 @@ -/* os2 build scripts
-
-this script is used to process emxexp results
-
-*/
-
-lmax = 0
-ordinal = 1
-
-do while( lines())
-
- l = strip(linein())
- if POS(';', l) > 0 then l = LEFT(l,POS(';', l)-1)
-
- l = strip(translate(l,'','"'))
- l = strip(l,,X2C(9))
-
- /* remove empty lines */
- if l = '_' then l = ''
-
- /* remove component_getDescriptionFunc, since it is already added by tg_def */
- if l = '_component_getDescriptionFunc' then l = ''
- if l = '_GetVersionInfo' then l = ''
-
-
- /* remove GLOBAL symbols */
- if POS('_GLOBAL_', l) > 0 then l = ';'l
-/*
- if POS('!', l) > 0 then l = ';'l
- if POS('_ZN4_STL', l) > 0 then l = ';'l
- if POS('_ZNK4_STL', l) > 0 then l = ';'l
- if POS('ImplClass', l) > 0 then l = ';'l
- if POS('ImplHelper', l) > 0 then l = ';'l
- if POS('UsageHelper', l) > 0 then l = ';'l
- if POS('com3sun4star3', l) > 0 then l = ';'l
-*/
- /* if LENGTH(l) > 254 then l = ';(>254)'left(l,100) */
-
- if POS(';', l) > 0 then l = LEFT(l,POS(';', l)-1)
-
- IF LENGTH(l)>0 THEN DO
- say l
- ordinal = ordinal + 1
- END
-
- if LENGTH(l)>lmax then do
- lmax = LENGTH(l)
- smax = l
- end
-
-end
-
-say ';lmax='lmax
-say ';smax='smax
diff --git a/solenv/bin/fix_lin_file.cmd b/solenv/bin/fix_lin_file.cmd deleted file mode 100644 index 0d074ce9f706..000000000000 --- a/solenv/bin/fix_lin_file.cmd +++ /dev/null @@ -1,13 +0,0 @@ -/* os2 build scripts
-*/
-
-parse arg dir
-
-do while( lines())
-
- l = linein()
-
- /* skip empty lines */
- if l \= '' then say dir || '\' || l
-
-end
diff --git a/solenv/bin/fix_shl.cmd b/solenv/bin/fix_shl.cmd deleted file mode 100644 index ca13abb2074e..000000000000 --- a/solenv/bin/fix_shl.cmd +++ /dev/null @@ -1,11 +0,0 @@ -/* os2 build scripts
-
-will return a 8.3 conformant name for modname.
-
-21/02/2006 Actually this is a simple truncation, seems nothing more needed.
-
-*/
-
-parse arg modname
-if pos('.',modname)>0 then modname = left(modname, pos('.',modname)-1)
-say strip(left(modname,8))
diff --git a/solenv/bin/gccinstlib.pl b/solenv/bin/gccinstlib.pl index 90c8f02a3e06..654c95b7290a 100755 --- a/solenv/bin/gccinstlib.pl +++ b/solenv/bin/gccinstlib.pl @@ -38,19 +38,23 @@ if ($Dest =~ /--help/ || @ARGV < 1) { print "Syntax:\n gcc-instlib <library-in-libpath ...> <destination-dir>\n"; exit (0); } + +%SrcAndDest = (); + foreach $File (@ARGV) { my $string; - - open (GCCOut, "LANGUAGE=C LC_ALL=C $cc -print-file-name=$File|") || die "Failed to exec $cc -print-file-name=$File $!"; + my $normalized_file = $File; + $normalized_file =~ s/\.so\.\d+/.so/; + open (GCCOut, "LANGUAGE=C LC_ALL=C $cc -print-file-name=$normalized_file|") || die "Failed to exec $cc -print-file-name=$normalized_file $!"; $string=<GCCOut>; chomp ($string); - push (@CopySrc, $string); + $SrcAndDest{$string} = "$Dest/$File"; close (GCCOut); } -foreach $Src (@CopySrc) { - printf "copy $Src to $Dest\n"; - system ("/bin/cp $Src $Dest") && die "copy failed: $!"; +while (($Src, $FullDest) = each %SrcAndDest) { + printf "copy $Src to $FullDest\n"; + system ("/bin/cp $Src $FullDest") && die "copy failed: $!"; } diff --git a/solenv/bin/gdb_cxa-atexit_trace-stdout b/solenv/bin/gdb_cxa-atexit_trace-stdout new file mode 100644 index 000000000000..25cfe98974ce --- /dev/null +++ b/solenv/bin/gdb_cxa-atexit_trace-stdout @@ -0,0 +1,8 @@ +set pagination off +break __cxa_atexit +commands + bt + cont +end +run +quit diff --git a/solenv/bin/gdbtrycatchtrace b/solenv/bin/gdbtrycatchtrace new file mode 100644 index 000000000000..636985a14d45 --- /dev/null +++ b/solenv/bin/gdbtrycatchtrace @@ -0,0 +1,21 @@ +set pagination off +catch throw +commands + bt + cont +end +catch catch +commands + bt + cont +end +echo log will be saved as gdbtrace.log, this will take some time, patience...\n +set logging redirect on +set logging file gdbtrace.log +set logging on +set logging overwrite on +run +bt +quit +set logging off +echo log is saved as gdbtrace.log\n diff --git a/solenv/bin/gdbtrycatchtrace-stdout b/solenv/bin/gdbtrycatchtrace-stdout new file mode 100644 index 000000000000..e606a4f12f86 --- /dev/null +++ b/solenv/bin/gdbtrycatchtrace-stdout @@ -0,0 +1,14 @@ +set pagination off +catch throw +commands + bt + cont +end +catch catch +commands + bt + cont +end +run +bt +quit diff --git a/solenv/bin/gen_userfeedback_VCL_names.pl b/solenv/bin/gen_userfeedback_VCL_names.pl index e65968e6b6c2..5cfb5d4c7f9d 100755 --- a/solenv/bin/gen_userfeedback_VCL_names.pl +++ b/solenv/bin/gen_userfeedback_VCL_names.pl @@ -59,7 +59,7 @@ for (<HID>) { if ( exists $hids{$upperlongname} && ( $hids{$upperlongname} != $ID ) ) { - print STDERR "errror: unclear definition of longname: $longname = $hids{$upperlongname} or $ID\n"; + print STDERR "warn: unclear definition of longname: $longname = $hids{$upperlongname} or $ID\n"; } $hids{$upperlongname} = $ID; @@ -121,7 +121,7 @@ foreach ( glob("$winpath/*win") ) { $upperlongname =~ tr/a-z/A-Z/; if ( $shortname !~ /^[\+\*]/ && !exists $hids{$upperlongname} ) { - print STDERR "errror: Longname not in hid.lst: $filename $longname\n"; + print STDERR "warn: Longname not in hid.lst: $filename $longname\n"; } if ( exists $hids{$upperlongname} ) { @@ -131,7 +131,6 @@ foreach ( glob("$winpath/*win") ) { } $iteminfo = "$shortname $longname $ID"; -# print "$iteminfo\n" if ( ! ( $shortname && $longname && $ID )); $iteminfo =~ s/^\*//; $iteminfo =~ s/^\+//; diff --git a/solenv/bin/gsicheck b/solenv/bin/gsicheck index fb2f65cbe01d..5a09880b9014 100755 --- a/solenv/bin/gsicheck +++ b/solenv/bin/gsicheck @@ -5,14 +5,9 @@ exit 1 fi if [ "${OS?}" = MACOSX ]; then - export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH:+${DYLD_LIBRARY_PATH}:}${SOLARVERSION?}/${INPATH?}/lib${UPDMINOREXT} + export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH:+${DYLD_LIBRARY_PATH}:}${SOLARVERSION?}/${INPATH?}/lib else - export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}${SOLARVERSION?}/${INPATH?}/lib${UPDMINOREXT} -fi - -if [ x${SOLARVER}x = xx -o x${UPDMINOREXT}x = xx ]; then - exec $SOLARVERSION/$INPATH/bin/gsicheck "$@" -else - exec $SOLARVERSION/$INPATH/bin$UPDMINOREXT/gsicheck "$@" + export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}${SOLARVERSION?}/${INPATH?}/lib fi +exec $SOLARVERSION/$INPATH/bin/gsicheck "$@" diff --git a/solenv/bin/guw.pl b/solenv/bin/guw.pl index c5326204eb49..0e1e0e6654b4 100755 --- a/solenv/bin/guw.pl +++ b/solenv/bin/guw.pl @@ -301,15 +301,7 @@ sub replace_cyg_env { 'SOLARVERSION', 'SOLARVER', 'SRC_ROOT', - 'LOCALINI', - 'GLOBALINI', 'SOLARENV', - 'STAR_INSTPATH', - 'STAR_SOLARPATH', - 'STAR_PACKMISC', - 'STAR_SOLARENVPATH', - 'STAR_INITROOT', - 'STAR_STANDLST', 'CLASSPATH', 'JAVA_HOME' ); diff --git a/solenv/bin/hicontrast-to-theme.pl b/solenv/bin/hicontrast-to-theme.pl deleted file mode 100644 index 027d7405dab2..000000000000 --- a/solenv/bin/hicontrast-to-theme.pl +++ /dev/null @@ -1,125 +0,0 @@ -: - eval 'exec perl -S $0 ${1+"$@"}' - if 0; -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* -# -# Create ordinary theme from HiContrast images. -# - -use File::Copy; -use File::Find; -use File::Path; -use File::Spec; - -( $src, $dst ) = @ARGV; - -if ( $src eq "" || $dst eq "" ) { - print STDERR "Usage: hicontrast-to-theme.pl src dest\n\n"; - print STDERR "Create ordinary theme from HiContrast images.\n"; - exit 1; -} - -$dst = File::Spec->rel2abs( $dst ); - -@hc_table = ( - [ ".*_h.png", "_h.png", ".png" ], - [ ".*_sch.png", "_sch.png", ".png" ], - [ ".*_hc.png", "_hc.png", ".png" ], - [ "lch_.*.png", "lch_", "lc_" ], - [ "sch_.*.png", "sch_", "sc_" ], - [ "lch[0-9].*.png", "lch", "lc" ], - [ "sch[0-9].*.png", "sch", "sc" ], - [ "loh[0-9].*.png", "loh", "lo" ], - [ "lxh[0-9].*.png", "lxh", "lx" ], - [ "sxh[0-9].*.png", "sxh", "sx" ], - [ "avh[0-9].*.png", "avh", "av" ], - [ "avlh[0-9].*.png", "avlh", "avl" ], - [ "idh[0-9].*.png", "idh", "id" ], - [ "imh[0-9].*.png", "imh", "im" ], - [ "mih[0-9].*.png", "mih", "mi" ], - [ "tbh[0-9].*.png", "tbh", "tb" ], - [ "nah[0-9].*.png", "nah", "na" ], - [ "nch[0-9].*.png", "nch", "nc" ], - [ "nvh[0-9].*.png", "nvh", "nv" ], - [ "ouh[0-9].*.png", "ouh", "ou" ], - [ "ddh[0-9].*.png", "ddh", "dd" ], - [ "sfh[0-9].*.png", "sfh", "sf" ], - [ "srh[0-9].*.png", "srh", "sr" ], - [ "wrh[0-9].*.png", "wrh", "wr" ], - [ "alh[0-9].*.png", "alh", "al" ], - [ "ath[0-9].*.png", "ath", "at" ], - [ "bih[0-9].*.png", "bih", "bi" ], - [ "coh[0-9].*.png", "coh", "co" ], - [ "foh[0-9].*.png", "foh", "fo" ], - [ "fuh[0-9].*.png", "fuh", "fu" ], - [ "oph[0-9].*.png", "oph", "op" ], - [ "unh[0-9].*.png", "unh", "un" ], - [ "edh[0-9].*.png", "edh", "ed" ], - [ "cdh[0-9].*.png", "cdh", "cd" ], - [ "frh[0-9].*.png", "frh", "fr" ], - [ "fwh[0-9].*.png", "fwh", "fw" ], - [ "nuh[0-9].*.png", "nuh", "nu" ], - [ "prh[0-9].*.png", "prh", "pr" ], - [ "shh[0-9].*.png", "shh", "sh" ], - [ "trh[0-9].*.png", "trh", "tr" ], - [ "reh[0-9].*.png", "reh", "re" ], - [ "joh[0-9].*.png", "joh", "jo" ], - [ "fph[0-9].*.png", "fph", "fp" ], - [ "dah[0-9].*.png", "dah", "da" ] -); - -my (@from_stat, @to_stat); - -sub copy_normalized { - $file = $_; - for $hc ( @hc_table ) { - ( $what, $from, $to ) = @$hc; - if ( $file =~ /$what/&&!($file=~/\.svn/) ) { - my $dir = File::Spec->catdir( $dst, $File::Find::dir ); - - if ( ! -d $dir ) { - mkpath( $dir ); - } - - ( my $copy = $file ) =~ s/$from/$to/; - $copy = File::Spec->catfile( $dir, $copy ); - - @from_stat = stat($file); - @to_stat = stat($copy); - if ( $from_stat[9] > $to_stat[9] ) { - copy( $file, $copy ) || die $!; - utime( $from_stat[9], $from_stat[9], $copy ); - } - - last; - } - } -} - -chdir( $src ); -find( \©_normalized, '.' ); diff --git a/solenv/bin/id-lang.map b/solenv/bin/id-lang.map new file mode 100644 index 000000000000..acc5afc0cba6 --- /dev/null +++ b/solenv/bin/id-lang.map @@ -0,0 +1,105 @@ +# Welcome to the mkid language mapper. +# +# The format of each line is: +# +# <pattern> <language> [options] +# +# Filenames are matched top-to-bottom against the patterns, and the +# first match is chosen. The special language `IGNORE' means that +# this file should be ignored by mkid. The options are +# language-specific command-line options to mkid. +# +# If a file name doesn't match any pattern, it is assigned the default +# language. The default language may be specified here with the +# special pattern `**', or overridden from the mkid command-line with +# the `--default-lang=LANG' option. +# +# The special pattern `***' means to include the named file that +# immediately follows. If no file is named, then the default system +# language mapper file (i.e., this file) is included. + +# Default language +** IGNORE # Although this is listed first, + # the default language pattern is + # logically matched last. + +# Backup files +*~ IGNORE +*.bak IGNORE +*.bk[0-9] IGNORE + +# SCCS files +[sp].* IGNORE + +# C dependencies created by automake +*/.deps/* IGNORE + +*.h C +*.h.in C +*.H C++ +*.hh C++ +*.hpp C++ +*.hxx C++ + +*.l C +*.lex C +*.y C +*.yacc C + +*.c C +*.C C++ +*.cc C++ +*.cpp C++ +*.cxx C++ + +*.java Java + +ChangeLog* Cdoc + +*.[sS] asm --comment=; +*.asm asm --comment=; + +# [nt]roff +*.[0-9] roff +*.ms roff +*.me roff +*.mm roff + +*.tex TeX +*.ltx TeX +*.texi texinfo +*.texinfo texinfo + +# portable object (i18n) +*.po po + +*.el lisp +*.elc lisp +*.lisp lisp +*.scm lisp + +*.am make +Makefile make +Makefile.* make + +*.doc text +*.txt text + +*.m4 m4 + +*.pl perl +*.pm perl + +*.gz FILTER gzip -d <%s +*.Z FILTER gzip -d <%s + +######### OOo-specific stuff ####################################### + +# Treat OOo resource header files as C files +*.hrc C +# Treat OOo header files generated from *.idl as C++ files +*.hdl C++ +# Treat OOo resource files as C files +*.src C +# Treat OOo *.mk files as makefiles +*.mk make diff --git a/solenv/bin/image-sort.pl b/solenv/bin/image-sort.pl index 16c792608c66..e4fd8491baf2 100755 --- a/solenv/bin/image-sort.pl +++ b/solenv/bin/image-sort.pl @@ -28,7 +28,7 @@ sub read_new_icons($$) my @new_icons; my %new_icons; for my $icon (@images) { - my $iname = "res/commandimagelist/" . $prefix . $icon . ".png"; + my $iname = "cmd/" . $prefix . $icon . ".png"; if (!defined $global_hash{$iname} && !defined $new_icons{$iname}) { push @new_icons, $iname; diff --git a/solenv/bin/linkoo b/solenv/bin/linkoo index fe75d0d562d4..b1fdc6e271d0 100755 --- a/solenv/bin/linkoo +++ b/solenv/bin/linkoo @@ -2,6 +2,8 @@ eval 'exec perl -S $0 ${1+"$@"}' if 0; +use strict; + #************************************************************************* # # This app makes it easy to link a live build @@ -33,53 +35,71 @@ # <http://www.openoffice.org/license.html> # for a copy of the LGPLv3 License. # +# This file substantially, if not wholely written by volunteers, not Oracle +# #************************************************************************* # ends up in program/ooenv -( $moz_lib = `pkg-config --variable=libdir mozilla-nss` ) =~ tr/\n/:/; -$env_script = ' -java_path=`./javaldx` -export LD_LIBRARY_PATH=".:$java_path:' . $moz_lib . '$LD_LIBRARY_PATH" +( my $moz_lib = `pkg-config --variable=libdir mozilla-nss` ) =~ tr/\n/:/; +my $env_script = ' +java_path=`$thisdir/../basis-link/ure-link/bin/javaldx 2>/dev/null` +export LD_LIBRARY_PATH="$thisdir:$java_path:' . $moz_lib . '$LD_LIBRARY_PATH" ulimit -c unlimited -export PATH=".:$PATH" +export PATH="$thisdir/:$thisdir/../basis-link/program:$thisdir/../basis-link/ure-link/bin:$PATH" export GNOME_DISABLE_CRASH_DIALOG=1 -export STAR_RESOURCEPATH=`pwd`/resource +export STAR_RESOURCEPATH=$thisdir/../basis-link/program/resource # debugging assistance -export OOO_FORCE_SYSALLOC=1 +export SAL_DISABLE_FLOATGRAB=1 +export G_SLICE=always-malloc export MALLOC_CHECK_=2 export OOO_DISABLE_RECOVERY=1 +export SAL_ALLOW_LINKOO_SYMLINKS=1 '; -$program_dir = 'program'; -$program_dir = 'MacOS' if ($ENV{OS} eq 'MACOSX'); +my $dry_run = 0; +my $usage = 0; +my $LANG; +my $TARGET; +my $LIBVER; +my $OOO_BUILD; +my $OOO_INSTALL; + +my $program_dir = 'basis-link/program'; +my $brand_program_dir = 'program'; +my $ure_misc_dir = 'basis-link/ure-link/share/misc'; +my $ure_java_dir = 'basis-link/ure-link/share/java'; +my $ure_lib_dir = 'basis-link/ure-link/lib'; + +$program_dir = 'openoffice.org/basis-link/MacOS' if ($ENV{OS} eq 'MACOSX'); # FIXME probably wrong my @exceptions = ( 'cppuhelper', 'sunjavaplugin', 'libjvmfwk' ); -%replaceable = ( - $program_dir => '\.so', +my %replaceable = ( + $program_dir => '\.so', $program_dir . '/resource' => '\.res$', $program_dir . '/classes' => '\.jar$', - 'share/config' => '\.zip$', + 'basis-link/share/config' => '\.zip$', # 'share/uno_packages' => '\.zip$' ); # strangely enough, OSX has those small differences... $replaceable{$program_dir} = '\.dylib$' if ($ENV{OS} eq 'MACOSX'); +$replaceable{$ure_lib_dir} = '\.dylib$' if ($ENV{OS} eq 'MACOSX'); -@search_dirs = ( 'lib', 'bin', 'class' ); +my @search_dirs = ( 'lib', 'bin', 'class' ); -@known_duplicates = ( 'db.jar', 'libi18n' ); +my @known_duplicates = ( 'db.jar', 'libi18n' ); sub sniff_target($) { my $build_dir = shift; my ($dirhandle, $fname); - my ($target, $libver, $lang) = ( 'unxlngi4.pro', '680', 'en-US' ); # defaults - + my ($target, $libver, $lang) = ( 'unxlngi6.pro', '680', 'en-US' ); # defaults + opendir ($dirhandle, $build_dir) || die "Can't open $build_dir"; while ($fname = readdir ($dirhandle)) { $fname =~ /Set.sh$/ || next; - + my $file; open ($file, "$build_dir/$fname") || die "Can't open $build_dir/$fname"; while (<$file>) { @@ -175,12 +195,45 @@ sub do_link($$$$@) } } +sub scan_one_dir($$$$) +{ + my ($installed_files, $build_files, $path, $solver) = @_; + + for my $elem (@search_dirs) { + my $dirh_module; + my $module_path = "$path/$elem"; + if (opendir ($dirh_module, $module_path)) { + while (my $file = readdir ($dirh_module)) { + if (defined $installed_files->{$file}) { + if (defined $build_files->{$file}) { + my $known = 0; + for my $regexp (@known_duplicates) { + if ($file =~ m/$regexp/) { + $known = 1; + } + } + if (!$known && !$solver) { + print STDERR "\nlinkoo:: Unknown duplicate file '$file' in: '" . + $build_files->{$file} . "' vs '" . + $module_path . "' in module $path\n"; + exit (1); + } + } else { + $build_files->{$file} = $module_path; + } + } + } + } + closedir ($dirh_module); + } +} + sub scan_and_link_files($$$) { my $build_path = shift; my $installed_files = shift; my $target = shift; - + my @modules = (); my $dirh_toplevel; opendir ($dirh_toplevel, $build_path) || die "Can't open '$build_path': $!"; @@ -192,42 +245,21 @@ sub scan_and_link_files($$$) } closedir ($dirh_toplevel); -# FIXME: re-implement the $product functionality - my $module; + # Scan the old-style module/$target/lib directories ... my %build_files; - for $module (@modules) { - for $elem (@search_dirs) { - my $dirh_module; - my $module_path = "$module/$elem"; - if (opendir ($dirh_module, $module_path)) { - while (my $file = readdir($dirh_module)) { - if (defined $installed_files->{$file}) { - if (defined $build_files{$file}) { - my $known = 0; - for my $regexp (@known_duplicates) { - if ($file =~ m/$regexp/) { - $known = 1; - } - } - if (!$known) { - print "Unknown duplicate file '$file' in: '" . - $build_files{$file} . "' vs '" . - $module_path . "' in module $module\n"; - exit (1); - } - } - $build_files{$file} = $module_path; - } - } - } - closedir ($dirh_module); - } + for my $module (@modules) { + scan_one_dir ($installed_files, \%build_files, $module, 0); } + # Now scan the solver + my $upd = 300; + $upd = $ENV{UPD} if (defined $ENV{UPD}); + scan_one_dir ($installed_files, \%build_files, "$build_path/solver/$upd/$target", 1); + for my $file (keys %build_files) { my $src = $build_files{$file}; my $dest = $installed_files->{$file}; - + do_link ($src, $dest, $file, $file); } print "\n"; @@ -257,8 +289,8 @@ sub evilness($) sub link_iso_res() { print "Special iso.res case: "; - my $ooo_res="$OOO_INSTALL/" . $program_dir . "/resource/ooo".$LIBVER.$LANG.".res"; - my $star_res="$OOO_INSTALL/" . $program_dir . "/resource/iso".$LIBVER.$LANG.".res"; + my $ooo_res="$OOO_INSTALL/" . $brand_program_dir . "/resource/ooo".$LIBVER.$LANG.".res"; + my $star_res="$OOO_INSTALL/" . $brand_program_dir . "/resource/iso".$LIBVER.$LANG.".res"; if (-l $ooo_res && -l $star_res) { if ($dry_run) { print "link $ooo_res to $star_res"; @@ -272,39 +304,39 @@ sub link_iso_res() } # Hack for (renamed) types.rdb (types.db) +sub link_oovbaapi_rdb() +{ + print "oovbaapi.rdb case:"; + my $src = "$OOO_BUILD/oovbaapi/$TARGET/ucr"; + my $dest = "$OOO_INSTALL/" . $program_dir; + do_link ($src, $dest, 'oovbaapi.db', 'oovbaapi.rdb'); + print "\n"; +} + sub link_types_rdb() { print "Types.rdb case:"; my $src = "$OOO_BUILD/offapi/$TARGET/ucr"; - my $dest = "$OOO_INSTALL/" . $program_dir; + my $dest = "$OOO_INSTALL/" . $ure_misc_dir; do_link ($src, $dest, 'types.db', 'types.rdb'); print "\n"; } -# link installed files back into src tree: -sub link_soffice_bin_files() +sub link_pagein_files() { - my $dest; - my $src = "$OOO_INSTALL/" . $program_dir; - - print "soffice files"; - $dest = "$OOO_BUILD/desktop/$TARGET/bin"; - do_link ($src, $dest, 'soffice', 'soffice.bin', 1); - do_link ($src, $dest, 'bootstraprc', 'bootstraprc', 1); - do_link ($src, $dest, 'intro.bmp', 'intro.bmp', 1); - do_link ("$OOO_INSTALL", "$OOO_BUILD/desktop/$TARGET", 'share', 'share', 1); - + print "pagein case:"; + my $src = "$OOO_BUILD/desktop/$TARGET/misc"; + my $dest = "$OOO_INSTALL/" . $program_dir; + for my $c ('calc', 'draw', 'impress', 'writer', 'common') { + do_link ($src, $dest, "pagein-$c", "pagein-$c"); + } print "\n"; } -my $a; -my $usage = 0; -for $a (@ARGV) { +for my $a (@ARGV) { # options - if ($a =~ /--product/) { - $product = 1; - } elsif ($a =~ /--dry-run/) { + if ($a =~ /--dry-run/) { $dry_run = 1; } elsif (($a eq '--help') || ($a eq '-h')) { $usage = 1; @@ -325,7 +357,7 @@ if (!defined $OOO_BUILD && defined $ENV{SRC_ROOT}) { } if ($usage || !defined $OOO_INSTALL || !defined $OOO_BUILD) { - printf "Usage: linkoo </path/to/ooo/install> [</path/to/ooo/build/tree>] [--product] [--dry-run]\n"; + printf "Usage: linkoo </path/to/ooo/install> [</path/to/ooo/build/tree>] [--dry-run]\n"; exit (1); } @@ -346,12 +378,16 @@ my $installed_files = build_installed_list ($OOO_INSTALL); scan_and_link_files ($OOO_BUILD, $installed_files, $TARGET); link_iso_res(); link_types_rdb(); -link_soffice_bin_files(); - -if (!-f "$OOO_INSTALL/" . $program_dir . "/ooenv") { - print "Creating '$OOO_INSTALL/", $program_dir, "/ooenv'\n"; - open ($ooenv, ">$OOO_INSTALL/" . $program_dir . "/ooenv") || die "Can't open $OOO_INSTALL/" . $program_dir . "/ooenv: $!"; +link_oovbaapi_rdb(); +link_pagein_files(); + +if (!-f "$OOO_INSTALL/" . $brand_program_dir . "/ooenv") { + my $ooenv; + print "Creating '$OOO_INSTALL/", $brand_program_dir, "/ooenv'\n"; + open ($ooenv, ">$OOO_INSTALL/" . $brand_program_dir . "/ooenv") || die "Can't open $OOO_INSTALL/" . $brand_program_dir . "/ooenv: $!"; + print $ooenv "thisdir=$OOO_INSTALL/" . $brand_program_dir . "/\n"; print $ooenv $env_script; + print $ooenv "# testtool\nexport SRC_ROOT=$OOO_BUILD\n"; close ($ooenv); } diff --git a/solenv/bin/localize b/solenv/bin/localize index ef5550e72e67..9504e8ee37ed 100755 --- a/solenv/bin/localize +++ b/solenv/bin/localize @@ -7,14 +7,9 @@ fi # localize.pl calls localize_sl in solver bin directory which depends on dynamic # libraries in solver lib directory but has no correct RPATH (or equivalent): if [ "${OS?}" = MACOSX ]; then - export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH:+${DYLD_LIBRARY_PATH}:}${SOLARVERSION?}/${INPATH?}/lib${UPDMINOREXT} + export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH:+${DYLD_LIBRARY_PATH}:}${SOLARVERSION?}/${INPATH?}/lib else - export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}${SOLARVERSION?}/${INPATH?}/lib${UPDMINOREXT} -fi - -if [ x${SOLARVER}x = xx -o x${UPDMINOREXT}x = xx ]; then - exec perl -w $SOLARVERSION/$INPATH/bin/localize.pl "$@" -else - exec perl -w $SOLARVERSION/$INPATH/bin$UPDMINOREXT/localize.pl "$@" + export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}${SOLARVERSION?}/${INPATH?}/lib fi +exec perl -w $SOLARVERSION/$INPATH/bin/localize.pl "$@" diff --git a/solenv/bin/localize_sl b/solenv/bin/localize_sl index af7f8351406c..d0db56084a19 100755 --- a/solenv/bin/localize_sl +++ b/solenv/bin/localize_sl @@ -5,14 +5,9 @@ exit 1 fi if [ "${OS?}" = MACOSX ]; then - export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH:+${DYLD_LIBRARY_PATH}:}${SOLARVERSION?}/${INPATH?}/lib${UPDMINOREXT} + export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH:+${DYLD_LIBRARY_PATH}:}${SOLARVERSION?}/${INPATH?}/lib else - export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}${SOLARVERSION?}/${INPATH?}/lib${UPDMINOREXT} -fi - -if [ x${SOLARVER}x = xx -o x${UPDMINOREXT}x = xx ]; then - exec $SOLARVERSION/$INPATH/bin/localize_sl "$@" -else - exec $SOLARVERSION/$INPATH/bin$UPDMINOREXT/localize_sl "$@" + export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}${SOLARVERSION?}/${INPATH?}/lib fi +exec $SOLARVERSION/$INPATH/bin/localize_sl "$@" diff --git a/solenv/bin/macosx-change-install-names.pl b/solenv/bin/macosx-change-install-names.pl index d6eb83ff99ef..29bf64de2b6b 100644 --- a/solenv/bin/macosx-change-install-names.pl +++ b/solenv/bin/macosx-change-install-names.pl @@ -48,6 +48,7 @@ sub action($$$) 'shl/BOXT/URELIB' => '@executable_path/urelibs', 'shl/BOXT/OOO' => '@loader_path/../../../basis-link/program', 'shl/NONE/URELIB' => '@__VIA_LIBRARY_PATH__', + 'shl/OOO/NONE' => '@__VIA_LIBRARY_PATH__', 'shl/NONE/OOO' => '@__VIA_LIBRARY_PATH__', 'shl/NONE/NONE' => '@__VIA_LIBRARY_PATH__'); my ($type, $loc1, $loc2) = @_; @@ -111,6 +112,8 @@ foreach $file (@ARGV) { $change .= " -change $1 " . action($type, $loc, $2) . "$3" if m'^\s*(@_{50}([^/]+)(/.+)) \(compatibility version \d+\.\d+\.\d+, current version \d+\.\d+\.\d+\)\n$'; + $change .= ' -change '.$1.' @loader_path/'.$2 + if m'^\s*(/python-inst/(OOoPython.framework/Versions/[^/]+/OOoPython))'; } close(IN); if ($change ne "") diff --git a/solenv/bin/macosx-dylib-link-list.pl b/solenv/bin/macosx-dylib-link-list.pl index 1554bbe56016..ab2279f62cd8 100644 --- a/solenv/bin/macosx-dylib-link-list.pl +++ b/solenv/bin/macosx-dylib-link-list.pl @@ -76,6 +76,7 @@ foreach $file (@todo) { my $full = $1; my $loc = locate($2); + $loc = locate($1) if $full =~ m'^\s*@loader_path/(OOoPython.framework/Versions/[^/]+/OOoPython)'; if (defined $loc) { handle($full, $loc) unless defined $done{$full}; diff --git a/solenv/bin/make_download.pl b/solenv/bin/make_download.pl index dd492ea3bfa1..62d8888bc383 100644 --- a/solenv/bin/make_download.pl +++ b/solenv/bin/make_download.pl @@ -68,9 +68,6 @@ foreach my $infofilename ( @{$infofilelist} ) installer::logger::print_message( "... WARNING: Signing only for Windows platforms active ...\n" ); } - # installer::logger::include_header_into_logfile("Reading include pathes"); - # installer::worker::collect_all_files_from_includepathes($followmeinfohash->{'includepatharray'}); - if (( $installer::globals::iswindowsbuild ) && ( $installer::globals::dosign )) { $followmeinfohash->{'finalinstalldir'} = installer::windows::sign::sign_install_set($followmeinfohash, $do_copy, $temppath); diff --git a/solenv/bin/make_installer.pl b/solenv/bin/make_installer.pl index c85aaffcde07..561dcef6d16c 100644 --- a/solenv/bin/make_installer.pl +++ b/solenv/bin/make_installer.pl @@ -44,11 +44,10 @@ use installer::exiter; use installer::files; use installer::followme; use installer::globals; -use installer::javainstaller; +use installer::helppack; use installer::languagepack; use installer::languages; use installer::logger; -use installer::mail; use installer::packagelist; use installer::packagepool; use installer::parameter; @@ -270,7 +269,6 @@ installer::simplepackage::check_simple_packager_project($allvariableshashref); #################################################################### installer::control::set_addchildprojects($allvariableshashref); -installer::control::set_addjavainstaller($allvariableshashref); installer::control::set_addsystemintegration($allvariableshashref); ######################################################## @@ -435,8 +433,8 @@ $filesinproductarrayref = installer::scriptitems::remove_delete_only_files_from_ if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles2.log", $filesinproductarrayref); } if (( ! $installer::globals::iswindowsbuild ) && - ( ! $installer::globals::islinuxrpmbuild ) && - ( ! $installer::globals::islinuxdebbuild ) && + ( ! $installer::globals::isrpmbuild ) && + ( ! $installer::globals::isdebbuild ) && ( ! $installer::globals::issolarispkgbuild ) && ( $installer::globals::packageformat ne "installed" ) && ( $installer::globals::packageformat ne "dmg" ) && @@ -452,6 +450,12 @@ if (! $installer::globals::languagepack) if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles2b.log", $filesinproductarrayref); } } +if (! $installer::globals::helppack) +{ + $filesinproductarrayref = installer::scriptitems::remove_Helppacklibraries_from_Installset($filesinproductarrayref); + if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles2b2.log", $filesinproductarrayref); } +} + if (! $installer::globals::patch) { $filesinproductarrayref = installer::scriptitems::remove_patchonlyfiles_from_Installset($filesinproductarrayref); @@ -482,6 +486,7 @@ if (( ! $allvariableshashref->{'XPDINSTALLER'} ) || ( ! $installer::globals::isx } if ( $installer::globals::languagepack ) { installer::scriptitems::use_langpack_copy_scpaction($scpactionsinproductarrayref); } +if ( $installer::globals::helppack ) { installer::scriptitems::use_langpack_copy_scpaction($scpactionsinproductarrayref); } if ( $installer::globals::patch ) { installer::scriptitems::use_patch_copy_scpaction($scpactionsinproductarrayref); } if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions1b.log", $scpactionsinproductarrayref); } @@ -501,9 +506,6 @@ installer::logger::print_message( "... analyzing unix links ... \n" ); my $unixlinksinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Unixlink"); if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "unixlinks1.log", $unixlinksinproductarrayref); } -# $unixlinksinproductarrayref = installer::scriptitems::filter_layerlinks_from_unixlinks($unixlinksinproductarrayref); -# if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "unixlinks1b.log", $unixlinksinproductarrayref); } - installer::logger::print_message( "... analyzing profile ... \n" ); my $profilesinproductarrayref = installer::setupscript::get_all_items_from_script($setupscriptref, "Profile"); @@ -643,6 +645,17 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) else { $installer::globals::makedownload = 0; } } + if ( $installer::globals::helppack ) + { + $installer::globals::addchildprojects = 0; + $installer::globals::addsystemintegration = 0; + $installer::globals::makejds = 0; + $installer::globals::addlicensefile = 0; + + if ( $allvariableshashref->{'OPENSOURCE'} ) { $installer::globals::makedownload = 1; } + else { $installer::globals::makedownload = 0; } + } + ############################################################ # Beginning of language specific logging mechanism # Until now only global logging into default: logfile.txt @@ -810,7 +823,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles10c.log", $filesinproductlanguageresolvedarrayref); } } - if ( ! $allvariableshashref->{'NO_README_IN_ROOTDIR'} ) { $filesinproductlanguageresolvedarrayref = installer::scriptitems::add_License_Files_into_Installdir($filesinproductlanguageresolvedarrayref, $dirsinproductlanguageresolvedarrayref, $languagesarrayref); @@ -909,9 +921,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_with_create_flag_from_directoryarray($dirsinproductlanguageresolvedarrayref, $alldirectoryhash); if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforepmlist2.log", $directoriesforepmarrayref); } - # installer::sorter::sorting_array_of_hashes($directoriesforepmarrayref, "HostName"); - # if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforepmlist3.log", $directoriesforepmarrayref); } - ######################################################### # language dependent scpactions part ######################################################### @@ -984,7 +993,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) my $profilesinproductlanguageresolvedarrayref; my $profileitemsinproductlanguageresolvedarrayref; - if ((!($installer::globals::is_copy_only_project)) && (!($installer::globals::product =~ /ada/i )) && (!($installer::globals::languagepack))) + if ((!($installer::globals::is_copy_only_project)) && (!($installer::globals::product =~ /ada/i )) && (!($installer::globals::languagepack)) && (!($installer::globals::helppack))) { installer::logger::print_message( "... creating profiles ...\n" ); @@ -1089,7 +1098,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) installer::scriptitems::changing_name_of_language_dependent_keys($modulesinproductlanguageresolvedarrayref); if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes_modules($loggingdir . "modules3a.log", $modulesinproductlanguageresolvedarrayref); } - # installer::scriptitems::collect_language_specific_names($modulesinproductlanguageresolvedarrayref); installer::scriptitems::select_required_language_strings($modulesinproductlanguageresolvedarrayref); # using english strings } @@ -1126,6 +1134,35 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) } + # Help pack projects can now start to select the required information + if ( $installer::globals::helppack ) + { + $filesinproductlanguageresolvedarrayref = installer::helppack::select_help_items($filesinproductlanguageresolvedarrayref, $languagesarrayref, "File"); + if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles16b2.log", $filesinproductlanguageresolvedarrayref); } + $scpactionsinproductlanguageresolvedarrayref = installer::helppack::select_help_items($scpactionsinproductlanguageresolvedarrayref, $languagesarrayref, "ScpAction"); + if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productscpactions6b2.log", $scpactionsinproductlanguageresolvedarrayref); } + $linksinproductlanguageresolvedarrayref = installer::helppack::select_help_items($linksinproductlanguageresolvedarrayref, $languagesarrayref, "Shortcut"); + if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productlinks8b2.log", $linksinproductlanguageresolvedarrayref); } + $unixlinksinproductlanguageresolvedarrayref = installer::helppack::select_help_items($unixlinksinproductlanguageresolvedarrayref, $languagesarrayref, "Unixlink"); + if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "unixlinks5b2.log", $unixlinksinproductlanguageresolvedarrayref); } + @{$folderitemsinproductlanguageresolvedarrayref} = (); # no folderitems in helppacks + + # Collecting the directories again, to include only the language specific directories + ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_from_filesarray($filesinproductlanguageresolvedarrayref); + if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforepmlist3ahelppack.log", $directoriesforepmarrayref); } + ($directoriesforepmarrayref, $alldirectoryhash) = installer::scriptitems::collect_directories_with_create_flag_from_directoryarray($dirsinproductlanguageresolvedarrayref, $alldirectoryhash); + if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforepmlist3bhelppack.log", $directoriesforepmarrayref); } + installer::sorter::sorting_array_of_hashes($directoriesforepmarrayref, "HostName"); + if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforepmlist3chelppack.log", $directoriesforepmarrayref); } + + if ( $installer::globals::iswindowsbuild ) + { + $registryitemsinproductlanguageresolvedarrayref = installer::worker::select_helppack_items($registryitemsinproductlanguageresolvedarrayref, "RegistryItem"); + if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "registryitems3aa2.log", $registryitemsinproductlanguageresolvedarrayref); } + } + + } + # Collecting all files without flag PATCH (for maintenance reasons) if ( $installer::globals::patch ) { installer::worker::collect_all_files_without_patch_flag($filesinproductlanguageresolvedarrayref); } @@ -1253,12 +1290,13 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) # Creating directories #################################################### + if ( $allvariableshashref->{'OOODOWNLOADNAME'} ) { installer::download::set_download_filename($languagestringref, $allvariableshashref); } + else { installer::download::resolve_variables_in_downloadname($allvariableshashref, "", $languagestringref); } + $installdir = installer::worker::create_installation_directory($shipinstalldir, $languagestringref, \$current_install_number); my $listfiledir = installer::systemactions::create_directories("listfile", $languagestringref); my $installlogdir = installer::systemactions::create_directory_next_to_directory($installdir, "log"); - # installer::packagelist::add_defaultpathes_into_filescollector($filesinproductlanguageresolvedarrayref); - # my $installchecksumdir = installer::systemactions::create_directory_next_to_directory($installdir, "checksum"); #################################################### # Reading for Solaris all package descriptions @@ -1283,6 +1321,11 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if ( $installer::globals::languagepack ) { installer::languagepack::replace_languagestring_variable($onepackage, $languagestringref); } + # checking, if this is a help pack + # Creating help packs only, if $installer::globals::helppack is set. Parameter: -helppack + + if ( $installer::globals::helppack ) { installer::helppack::replace_languagestring_variable($onepackage, $languagestringref); } + my $onepackagename = $onepackage->{'module'}; # name of the top module (required) my $shellscriptsfilename = ""; @@ -1326,6 +1369,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) my $oldpackagename = $packagename; $installer::globals::add_required_package = $oldpackagename; # the link rpm requires the non-linked version if ( $installer::globals::languagepack ) { $packagename = $packagename . "_u"; } + elsif ( $installer::globals::helppack ) { $packagename = $packagename . "_v"; } # wtf... else { $packagename = $packagename . "u"; } my $savestring = $oldpackagename . "\t" . $packagename; push(@installer::globals::linkrpms, $savestring); @@ -1347,6 +1391,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if (( $installer::globals::patch ) || ( $installer::globals::languagepack ) || + ( $installer::globals::helppack ) || ( $installer::globals::packageformat eq "native" ) || ( $installer::globals::packageformat eq "portable" ) || ( $installer::globals::packageformat eq "osx" )) { $allvariableshashref->{'POOLPRODUCT'} = 0; } @@ -1382,6 +1427,8 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) { $packagerootpath = $onepackage->{'destpath'}; installer::packagelist::resolve_packagevariables(\$packagerootpath, $allvariableshashref, 1); + # we put branding and common stuff into the same prefix on unixes => $packagerootpath must be the whole prefix, including the product name + if ($installer::globals::isunix) { $packagerootpath .= "/$allvariableshashref->{'UNIXBASISROOTNAME'}"; } if ( $^O =~ /darwin/i ) { $packagerootpath =~ s/\/opt\//\/Applications\//; } } else @@ -1445,7 +1492,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) ################################################################# # Linux Patch: The complete RPM has to be built, if one file in the RPM has the flag PATCH (also for DEBs) - if (( $installer::globals::patch ) && (( $installer::globals::islinuxrpmbuild ) || ( $installer::globals::islinuxdebbuild ))) + if (( $installer::globals::patch ) && (( $installer::globals::isrpmbuild ) || ( $installer::globals::isdebbuild ))) { my $patchfiles = installer::worker::collect_all_items_with_special_flag($filesinpackage ,"PATCH"); if ( ! ( $#{$patchfiles} > -1 )) @@ -1478,7 +1525,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) { # special handling for all RPMs in $installer::globals::linuxlinkrpms - # if (( $installer::globals::linuxlinkrpms =~ /\b$onepackagename\b/ ) || ( $installer::globals::languagepack )) if ( $installer::globals::linuxlinkrpms =~ /\b$onepackagename\b/ ) { my $run = 0; @@ -1593,7 +1639,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) installer::epmfile::resolve_path_in_epm_list_before_packaging(\@epmfile, $completeepmfilename, "PRODUCTDIRECTORYNAME", $staticpath); installer::epmfile::resolve_path_in_epm_list_before_packaging(\@epmfile, $completeepmfilename, "SOLSUREPACKAGEPREFIX", $allvariableshashref->{'SOLSUREPACKAGEPREFIX'}); installer::epmfile::resolve_path_in_epm_list_before_packaging(\@epmfile, $completeepmfilename, "UREPACKAGEPREFIX", $allvariableshashref->{'UREPACKAGEPREFIX'}); - # installer::epmfile::resolve_path_in_epm_list_before_packaging(\@epmfile, $completeepmfilename, "BASISDIRECTORYVERSION", $allvariableshashref->{'OOOBASEVERSION'}); installer::files::save_file($completeepmfilename ,\@epmfile); ####################################################### @@ -1651,7 +1696,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) # Solaris: Adding into the pkginfo file: BASEDIR=/opt # Attention: Changing of the path can influence the shell scripts - if (( $installer::globals::is_special_epm ) && ( ($installer::globals::islinuxrpmbuild) || ($installer::globals::issolarispkgbuild) )) # special handling only for Linux RPMs and Solaris Packages + if (( $installer::globals::is_special_epm ) && ( ($installer::globals::isrpmbuild) || ($installer::globals::issolarispkgbuild) )) # special handling only for Linux RPMs and Solaris Packages { if ( $installer::globals::call_epm ) # only do something, if epm is really executed { @@ -1677,7 +1722,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) $installer::globals::postprocess_specialepm = 1; # solaris patch not needed anymore - # if (( $installer::globals::patch ) && ( $installer::globals::issolarisx86build )) { installer::worker::fix2_solaris_x86_patch($packagename, $installer::globals::epmoutpath); } } } else # this is the standard epm (not relocatable) or ( nonlinux and nonsolaris ) @@ -1693,7 +1737,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if ( $installer::globals::call_epm ) { installer::epmfile::call_epm($epmexecutable, $completeepmfilename, $packagename, $includepatharrayref); } - if (($installer::globals::islinuxrpmbuild) || ($installer::globals::issolarispkgbuild) || ($installer::globals::debian)) + if (($installer::globals::isrpmbuild) || ($installer::globals::issolarispkgbuild) || ($installer::globals::debian)) { $installer::globals::postprocess_standardepm = 1; } @@ -1716,7 +1760,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if ( $installer::globals::isxpdplatform ) { - if (( ! $installer::globals::languagepack ) && ( ! $installer::globals::patch )) + if (( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack ) && ( ! $installer::globals::patch )) { if (( $allvariableshashref->{'XPDINSTALLER'} ) && ( $installer::globals::call_epm != 0 )) { @@ -1747,7 +1791,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if ( $installer::globals::addsystemintegration ) { installer::epmfile::put_systemintegration_into_installset($installer::globals::epmoutpath, $includepatharrayref, $allvariableshashref, $modulesinproductarrayref); } # Adding license and readme into installation set - # if ($installer::globals::addlicensefile) { installer::epmfile::put_installsetfiles_into_installset($installer::globals::epmoutpath); } if ($installer::globals::addlicensefile) { installer::worker::put_scpactions_into_installset("."); } # Adding child projects to installation dynamically @@ -1759,20 +1802,20 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) # Creating installation set for Unix language packs, that are not part of multi lingual installation sets if ( ( $installer::globals::languagepack ) && ( ! $installer::globals::debian ) && ( ! $installer::globals::makedownload ) ) { installer::languagepack::build_installer_for_languagepack($installer::globals::epmoutpath, $allvariableshashref, $includepatharrayref, $languagesarrayref, $languagestringref); } + # Creating installation set for Unix help packs, that are not part of multi lingual installation sets + if ( ( $installer::globals::helppack ) && ( ! $installer::globals::debian ) && ( ! $installer::globals::makedownload ) ) { installer::helppack::build_installer_for_helppack($installer::globals::epmoutpath, $allvariableshashref, $includepatharrayref, $languagesarrayref, $languagestringref); } + # Finalizing patch installation sets if (( $installer::globals::patch ) && ( $installer::globals::issolarispkgbuild )) { installer::epmfile::finalize_patch($installer::globals::epmoutpath, $allvariableshashref); } - if (( $installer::globals::patch ) && ( $installer::globals::islinuxrpmbuild )) { installer::epmfile::finalize_linux_patch($installer::globals::epmoutpath, $allvariableshashref, $includepatharrayref); } + if (( $installer::globals::patch ) && ( $installer::globals::isrpmbuild )) { installer::epmfile::finalize_linux_patch($installer::globals::epmoutpath, $allvariableshashref, $includepatharrayref); } # Copying the xpd installer into the installation set if (( $allvariableshashref->{'XPDINSTALLER'} ) && ( $installer::globals::isxpdplatform ) && ( $installer::globals::xpd_files_prepared )) { installer::xpdinstaller::create_xpd_installer($installdir, $allvariableshashref, $languagestringref); - $installer::globals::addjavainstaller = 0; # only one java installer possible } - # Copying the java installer into the installation set chdir($currentdir); # changing back into start directory - if ( $installer::globals::addjavainstaller ) { installer::javainstaller::create_java_installer($installdir, $installer::globals::epmoutpath, $languagestringref, $languagesarrayref, $allvariableshashref, $includepatharrayref, $modulesinproductarrayref); } } if ( $installer::globals::postprocess_standardepm ) @@ -1788,7 +1831,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if ( $installer::globals::addsystemintegration ) { installer::epmfile::put_systemintegration_into_installset($newepmdir, $includepatharrayref, $allvariableshashref, $modulesinproductarrayref); } # Adding license and readme into installation set - # if ($installer::globals::addlicensefile) { installer::epmfile::put_installsetfiles_into_installset($newepmdir); } if ($installer::globals::addlicensefile) { installer::worker::put_scpactions_into_installset("."); } # Adding license file into setup @@ -1797,6 +1839,9 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) # Creating installation set for Unix language packs, that are not part of multi lingual installation sets if ( ( $installer::globals::languagepack ) && ( ! $installer::globals::debian ) && ( ! $installer::globals::makedownload ) ) { installer::languagepack::build_installer_for_languagepack($newepmdir, $allvariableshashref, $includepatharrayref, $languagesarrayref, $languagestringref); } + # Creating installation set for Unix help packs, that are not part of multi lingual installation sets + if ( ( $installer::globals::helppack ) && ( ! $installer::globals::debian ) && ( ! $installer::globals::makedownload ) ) { installer::helppack::build_installer_for_helpepack($newepmdir, $allvariableshashref, $includepatharrayref, $languagesarrayref, $languagestringref); } + chdir($currentdir); # changing back into start directory } @@ -1894,13 +1939,11 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) my $idtdirbase = installer::systemactions::create_directories("idt_files", $languagestringref); $installer::globals::infodirectory = installer::systemactions::create_directories("info_files", $languagestringref); my $installlogdir = installer::systemactions::create_directory_next_to_directory($installdir, "log"); - # my $installchecksumdir = installer::systemactions::create_directory_next_to_directory($installdir, "checksum"); ################################################################################# # Preparing cabinet files from package definitions ################################################################################# - # installer::packagelist::prepare_cabinet_files($packages, $allvariableshashref, $$languagestringref); installer::packagelist::prepare_cabinet_files($packages, $allvariableshashref); # printing packages content: installer::packagelist::log_cabinet_assignments(); @@ -1947,7 +1990,8 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles17c.log", $filesinproductlanguageresolvedarrayref); } if ( $installer::globals::updatedatabase ) { installer::windows::file::check_file_sequences($allupdatefileorder, $allupdatecomponentorder); } - installer::windows::directory::create_directory_table($directoriesforepmarrayref, $newidtdir, $allvariableshashref, $shortdirname, $loggingdir); + # Attention: The table "Director.idt" contains language specific strings -> parameter: $languagesarrayref ! + installer::windows::directory::create_directory_table($directoriesforepmarrayref, $languagesarrayref, $newidtdir, $allvariableshashref, $shortdirname, $loggingdir); if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "productfiles18.log", $filesinproductlanguageresolvedarrayref); } if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt1.log", $directoriesforepmarrayref); } @@ -1989,7 +2033,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) installer::windows::upgrade::create_upgrade_table($newidtdir, $allvariableshashref); - if ( ! $installer::globals::languagepack ) # the following tables not for language packs + if (( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack )) # the following tables not for language packs or help packs { installer::windows::removefile::create_removefile_table($folderitemsinproductlanguageresolvedarrayref, $newidtdir); @@ -2028,7 +2072,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) installer::windows::idtglobal::prepare_language_idt_directory($languageidtdir, $newidtdir, $onelanguage, $filesinproductlanguageresolvedarrayref, \@iconfilecollector, $binarytablefiles, $allvariableshashref); - if ( ! $installer::globals::languagepack ) + if ( ! $installer::globals::languagepack && ! $installer::globals::helppack ) { # For multilingual installation sets, the dialog for the language selection can now be prepared, with # a checkbox for each available language. This has to happen before the following translation. @@ -2140,7 +2184,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) # setting patch codes to detect installed products - if (( $installer::globals::patch ) || ( $installer::globals::languagepack ) || ( $allvariableshashref->{'PDFCONVERTER'} )) { installer::windows::patch::update_patch_tables($languageidtdir, $allvariableshashref); } + if (( $installer::globals::patch ) || ( $installer::globals::languagepack ) || ( $installer::globals::helppack ) || ( $allvariableshashref->{'PDFCONVERTER'} )) { installer::windows::patch::update_patch_tables($languageidtdir, $allvariableshashref); } # Adding Windows Installer CustomActions @@ -2172,7 +2216,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) # validating the database # ToDo my $languagefile = installer::files::read_file($installer::globals::idtlanguagepath . $installer::globals::separator . "SIS.mlf"); - # my $languagefile = installer::files::read_file($installer::globals::idtlanguagepath . $installer::globals::separator . "SIS.ulf"); installer::windows::msiglobal::write_summary_into_msi_database($msifilename, $onelanguage, $languagefile, $allvariableshashref); @@ -2215,7 +2258,6 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) installer::logger::print_message( "... copying files into installation set ...\n" ); - # installer::windows::msiglobal::copy_scpactions_into_installset($defaultlanguage, $installdir, $scpactionsinproductlanguageresolvedarrayref); installer::worker::put_scpactions_into_installset($installdir); # ... copying the setup.exe @@ -2308,6 +2350,7 @@ for ( my $n = 0; $n <= $#installer::globals::languageproducts; $n++ ) my $create_download = 0; my $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "downloadname"); if ( $installer::globals::languagepack ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "langpackdownloadname"); } + if ( $installer::globals::helppack ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "helppackdownloadname"); } if ( $installer::globals::patch ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "patchdownloadname"); } if ( $is_success ) { installer::followme::save_followme_info($finalinstalldir, $includepatharrayref, $allvariableshashref, $$downloadname, $languagestringref, $languagesarrayref, $current_install_number, $loggingdir, $installlogdir); } diff --git a/solenv/bin/makemani.pl b/solenv/bin/makemani.pl index cdebaab77617..7575d07e688b 100644 --- a/solenv/bin/makemani.pl +++ b/solenv/bin/makemani.pl @@ -50,7 +50,6 @@ sub wanted; sub wanted { /^.*\.xc(s|u)\z/s && ( push @findlist, $name ); -# && ( push @findlist, $name ) && print("$name\n"); } sub usage diff --git a/solenv/bin/mapgen.pl b/solenv/bin/mapgen.pl index 48c335c2adba..8a8677f12c7b 100644 --- a/solenv/bin/mapgen.pl +++ b/solenv/bin/mapgen.pl @@ -135,7 +135,10 @@ sub filter_symbols { $env_section = '1' and next if ((/^# SOLARIS #$/) && ($ENV{OS} eq 'SOLARIS')); $env_section = '1' and next if ((/^# LINUX #$/) && ($ENV{OS} eq 'LINUX')); $env_section = '1' and next if ((/^# FREEBSD #$/) && ($ENV{OS} eq 'FREEBSD')); - last if ($env_section && ((/^# SOLARIS #$/) || (/^# FREEBSD #$/) || (/^# LINUX #$/))); + $env_section = '1' and next if ((/^# NETBSD #$/) && ($ENV{OS} eq 'NETBSD')); + $env_section = '1' and next if ((/^# OPENBSD #$/) && ($ENV{OS} eq 'OPENBSD')); + $env_section = '1' and next if ((/^# DRAGONFLY #$/) && ($ENV{OS} eq 'DRAGONFLY')); + last if ($env_section && ((/^# SOLARIS #$/) || (/^# FREEBSD #$/) || (/^# LINUX #$/) || (/^# NETBSD #$/) || (/^# OPENBSD #$/) (/^# DRAGONFLY #$/))); next if (!$_ || /^#/); push(@filters, $_); }; diff --git a/solenv/bin/mkdocs.sh b/solenv/bin/mkdocs.sh new file mode 100755 index 000000000000..3d6ba295c893 --- /dev/null +++ b/solenv/bin/mkdocs.sh @@ -0,0 +1,130 @@ +#!/bin/bash +# +# Doxygen Doc generation +# + +# binaries that we need +which doxygen > /dev/null 2>&1 || { + echo "You need doxygen for doc generation" + exit 1 +} +which dot > /dev/null 2>&1 || { + echo "You need the graphviz tools to create the nice inheritance graphs" + exit 1 +} + +# otherwise, aliases are not expanded below +shopt -s expand_aliases + +# Title of the documentation +DOXYGEN_PROJECT_PREFIX="LibreOffice" + +# suck setup +BINDIR=`dirname $0` +. $BINDIR/setup + +. ./*.Set.sh + +# get list of modules in build order - bah, blows RAM & disk, static list below +INPUT_PROJECTS="o3tl basegfx basebmp comphelper svl vcl canvas cppcanvas oox svtools goodies drawinglayer xmloff slideshow sfx2 editeng svx cui chart2 dbaccess sd starmath sc sw" + +# output directory for generated documentation +BASE_OUTPUT="$1" +mkdir -p "$BASE_OUTPUT" || { + echo "Cannot create $BASE_OUTPUT" + exit 1 +} + +# paths for binary and configuration file +BASE_PATH=`pwd` +DOXYGEN_CFG="$2" +if test ! -f "$DOXYGEN_CFG"; then + echo "doxygen.cfg not found" + exit 1 +fi + +# strip -I. and bin -I prefix; exlude system headers +DOXYGEN_INCLUDE_PATH=`echo $SOLARINC | sed -e ' s/-I\.//'g | sed -e ' s/ -I/ /'g | sed -e ' s|/usr/[^ ]*| |g'` + +# setup version string +DOXYGEN_VERSION="$GITTAG" + + +################################################### +# +# Generate docs +# +################################################### + +# cleanup +rm -rf $BASE_OUTPUT/* + +# make the stuff world-readable +umask 022 + +# generate docs +DOXYGEN_REF_TAGFILES="" +for PROJECT in $INPUT_PROJECTS; +do + # avoid processing of full project subdirs, only add source and inc + DOXYGEN_INPUT=`printf "%s" "$PROJECT/source $PROJECT/inc "` + + DOXYGEN_OUTPUT="$BASE_OUTPUT/$PROJECT" + DOXYGEN_OUR_TAGFILE="$DOXYGEN_OUTPUT/$PROJECT.tags" + DOXYGEN_PROJECTNAME="$DOXYGEN_PROJECT_PREFIX Module $PROJECT" + + # export variables referenced in doxygen config file + export DOXYGEN_INPUT + export DOXYGEN_OUTPUT + export DOXYGEN_INCLUDE_PATH + export DOXYGEN_VERSION + export DOXYGEN_OUR_TAGFILE + export DOXYGEN_REF_TAGFILES + export DOXYGEN_PROJECTNAME + + # debug + echo "Calling $DOXYGEN_PATH/doxygen $DOXYGEN_CFG with" + echo "Input: $DOXYGEN_INPUT" + echo "Output: $DOXYGEN_OUTPUT" + echo "Include: $DOXYGEN_INCLUDE_PATH" + echo "Version: $DOXYGEN_VERSION" + echo "Tagfile: $DOXYGEN_OUR_TAGFILE" + echo "Ref-Tags: $DOXYGEN_REF_TAGFILES" + echo "Title: $DOXYGEN_PROJECTNAME" + + nice -15 doxygen "$DOXYGEN_CFG" + + # setup referenced tagfiles for next round + DOXYGEN_REF_TAGFILES="$DOXYGEN_REF_TAGFILES $DOXYGEN_OUR_TAGFILE=$BASE_URL/$PROJECT/html" +done + +# generate entry page +cat - > $BASE_OUTPUT/index.html <<EOF +<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> +<html> + <head> + <title>LibreOffice Source Code Documentation (fragmentary)</title> + </head> + <body> + <h1>LibreOffice Source Code Documentation (fragmentary)</h1> + <ul> +EOF + +for PROJECT in $INPUT_PROJECTS; +do + echo "<li><a href=\"$PROJECT/html/classes.html\">$PROJECT</a></li>" >> $BASE_OUTPUT/index.html +done + +cat - >> $BASE_OUTPUT/index.html <<EOF + </ul> + <p>Last updated: +EOF +LANG= date >> $BASE_OUTPUT/index.html + +cat - >> $BASE_OUTPUT/index.html <<EOF + </p> + </body> +</html> +EOF + +## done diff --git a/solenv/bin/mkout.pl b/solenv/bin/mkout.pl index 4839b8525bb9..9df626b63568 100755 --- a/solenv/bin/mkout.pl +++ b/solenv/bin/mkout.pl @@ -40,12 +40,6 @@ use File::Path; ( $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/; -$id_str = ' $Revision: 1.8 $ '; -$id_str =~ /Revision:\s+(\S+)\s+\$/ - ? ($script_rev = $1) : ($script_rev = "-"); - -print "$script_name -- version: $script_rev\n"; - #### globals #### $is_debug = 0; diff --git a/solenv/bin/modules/CreatePDBRelocators.pm b/solenv/bin/modules/CreatePDBRelocators.pm index 753075a2bfea..fc488ca3b037 100644 --- a/solenv/bin/modules/CreatePDBRelocators.pm +++ b/solenv/bin/modules/CreatePDBRelocators.pm @@ -76,11 +76,6 @@ sub new } my $SourceConfigObj = SourceConfig->new(); @repos = $SourceConfigObj->get_repositories(); - if ( defined $ENV{UPDMINOREXT} ) { - foreach my $onedir ( @repos ) { - push( @basedirs, $onedir.$ENV{UPDMINOREXT} ); - } - } # basdirs is repositories (dmake) + workdir (gnu make) push(@basedirs, $relworkdir); if (!scalar @basedirs) { diff --git a/solenv/bin/modules/Cws.pm b/solenv/bin/modules/Cws.pm deleted file mode 100755 index 6948c21d554e..000000000000 --- a/solenv/bin/modules/Cws.pm +++ /dev/null @@ -1,2153 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - - -# -# Cws.pm - package for accessing/manipulating child workspaces -# - -# TODO: needs some cleanup - -package Cws; -use strict; - -use Eis; -use CwsConfig; -use Carp; -use URI::Escape; - -my $config = CwsConfig::get_config(); - -##### class data ##### - -my %CwsClassData = ( - # EIS database connectivity - EIS_URI => 'urn:ChildWorkspaceDataService', - EIS_PROXY_LIST => $config->cws_db_url_list_ref(), - NET_PROXY => $config->net_proxy(), - EIS => undef -); - -##### ctor ##### - -sub new -{ - my $invocant = shift; - my $class = ref($invocant) || $invocant; - my $self = {}; - # instance data - # initialize CWS name from environment - $self->{CHILD} = undef; # name of child workspace - $self->{MASTER} = undef; # name of master workspace - $self->{EIS_ID} = undef; # id of child workspace in EIS - $self->{FILES} = undef; # list of files registered with child - # any file can be registered multiple times - $self->{PATCH_FILES} = undef # list of product patch files registered with - # child, each file can be added only once - $self->{MILESTONE} = undef; # master milestone to which child is related - $self->{MODULES} = undef; # list of modules belonging to child - $self->{INCOMPATIBLE_MODULES} = undef; # list of modules belonging to child - $self->{NEW_MODULES} = undef; # list of public new modules belonging to child - $self->{NEW_MODULES_PRIV} = undef; # list of private new modules belonging to child - $self->{TASKIDS} = undef; # list of tasks registered with child - $self->{_CACHED_TAGS} = undef; # list of cached tags (tags are looked up frequently) - bless($self, $class); - return $self; -} - -#### methods to access instance data #### - -# Get the EIS ID for child workspace, -# return value: undef => not yet asked EIS for ID -# or connection failed -# 0 => queried EIS but didn't find such -# a child workspace for this master -# silently ignore any parameter, only the EIS database, -# hands out EIS IDs. -sub eis_id -{ - my $self = shift; - if ( !defined($self->{EIS_ID} ) ) { - $self->{EIS_ID} = $self->get_eis_id(); - } - return $self->{EIS_ID}; -} - -# Generate remaining instance data accessor methods; -# if this looks strange see 'perldoc perltootc' - -# Accessor methods for single value instance data -for my $datum (qw(master milestone)) { - no strict "refs"; - *$datum = sub { - my $self = shift; - my $ucdatum = uc($datum); - if ( @_ ) { - # set item in database - my $item = shift; - # if we already have a valid EIS registered CWS then reset EIS value - # otherwise just set member to the given value - if ( !$self->{uc($datum)} # keep order of evaluation - || !$self->eis_id() - || $self->set_item_in_eis($datum, $item) ) - { - $self->{uc($datum)} = $item; - - } - } - else { - if ( !defined($self->{$ucdatum} ) ) { - # fetch item from database - $self->{$ucdatum} = $self->fetch_item_from_eis($datum); - } - } - return $self->{uc($datum)}; - } -} - -# Accessor methods for instance data consisting of item lists -# like modules and taskids -for my $datum (qw(files patch_files modules incompatible_modules new_modules new_modules_priv taskids)) { - no strict "refs"; - *$datum = sub { - # get current item list - # fetch list from EIS database if called the first time - my $self = shift; - my $ucdatum = uc($datum); - if ( !defined($self->{$ucdatum}) ) { - # fetch item list from databse - $self->{$ucdatum} = $self->fetch_items_from_eis($datum); - return undef if !defined($self->{$ucdatum}); - } - return wantarray ? @{$self->{$ucdatum}} : $self->{$ucdatum} - } -} - -for my $datum (qw(child)) { - no strict "refs"; - *$datum = sub { - my $self = shift; - $self->{uc($datum)} = shift if @_; - return $self->{uc($datum)}; - } -} - - -#### additional public methods #### - -# For resync: Sets master and milestone simultaneously -# In case of a cross master resync it does not make sense to -# change both items separately -sub set_master_and_milestone -{ - my $self = shift; - my $master = shift or return undef; - my $milestone = shift or return undef; - - # if we do not yet have a valid EIS registered CWS use the above more basic methods - if ( !$self->master() - || !$self->milestone() - || !$self->eis_id() ) - { - $self->master($master); - $self->milestone($milestone); - } else { - if ( $self->set_master_and_milestone_in_eis($master, $milestone) ) { - $self->{'MASTER'} = $self->fetch_item_from_eis('master'); - $self->{'MILESTONE'} = $self->fetch_item_from_eis('milestone'); - } - } - my @retarray = ($self->{'MASTER'}, $self->{'MILESTONE'}); - return wantarray ? @retarray : \@retarray; -} - -# Query if CWS name is still available. Does not yet register -# anything with EIS. -sub is_cws_name_available -{ - my $self = shift; - - my $is_available = $self->is_cws_name_available_in_eis(); - return $is_available; -} - -# Register new child workspace with the EIS database. -sub register -{ - my $self = shift; - my $vcsid = shift; - my $location = shift; - - my $child_id = $self->register_child_with_eis($vcsid, $location); - return $child_id; -} - -# Promote a child workspace with status 'planned' to a full CWS -sub promote -{ - my $self = shift; - my $vcsid = shift; - my $location = shift; - - my $rc = $self->promote_child_in_eis($vcsid, $location); - return $rc; -} - -# New style add_module method. Takes an additional bool indicating if -# a module is public or private. Obsoletes add_modules() -sub add_module -{ - my $self = shift; - my $module = shift; - my $public = shift; - - my $items_ref = $self->add_items('modules', $public, $module); - if (defined ($items_ref->[0]) && ($items_ref->[0] eq $module)) { - return 1; # module has been added - } - elsif ( defined($items_ref) ) { - return 0; # module was already add - } - return undef; # something went wrong -} - -# Add module to modules list. -sub add_modules -{ - my $self = shift; - - my $items_ref = $self->add_items('modules', undef, @_); - return undef unless defined($items_ref); - return wantarray ? @{$items_ref} : $items_ref; -} - -# Add tasksids to taskids list. -sub add_taskids -{ - my $self = shift; - my $vcsid = shift; - - my $items_ref = $self->add_items('taskids', $vcsid, @_); - return undef unless defined($items_ref); - return wantarray ? @{$items_ref} : $items_ref; -} - -# Add a file to the files list. -sub add_file -{ - my $self = shift; - my $module = shift; - my $file = shift; - my $revision = shift; - my $authors_ref = shift; - my $taskids_ref = shift; - my $archive_path = shift; - - my $files_ref = $self->files(); - - if ( $self->add_file_to_eis($module, $file, $revision, - $authors_ref, $taskids_ref, $archive_path) ) - { - push(@{$files_ref}, $file); - return 1; - } - return 0; -} - -# Add a file to the patch file list. -sub add_patch_file -{ - my $self = shift; - my $file = shift; - - my $patch_files_ref = $self->patch_files(); - - foreach (@{$patch_files_ref}) { - return 0 if $file eq $_; - } - - if ( $self->add_patch_file_to_eis($file) ) - { - push(@{$patch_files_ref}, $file); - return 1; - } - return 0; -} - -# -# Procedure retrieves the workspace which -# is based on cvs head (not branch) -# -sub get_cvs_head { - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->getCVSHead() }; - if ( $@ ) { - carp("ERROR: get_eis_id(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -}; - -#### public class methods #### - -sub get_master_tag { - my ($self, $master, $milestone) = @_; - $master = $self->master() if (!defined $master); - $milestone = $self->milestone() if (!defined $milestone); - return uc($master) . '_' . lc($milestone); -}; - -sub get_master_branch_tag { - my ($self, $master) = @_; - $master = $self->master() if (!defined $master); - # check in environment if master is on the the HEAD branch - my $cvs_head = get_cvs_head(); - if ( $master eq $cvs_head ) { - return undef; - } - else { - return 'mws_' . lc($master); - } -}; - -sub get_mws { - my $self = shift; - my $eis = Cws::eis(); - my $masters; - my $child = Eis::to_string($self->child()); - eval { $masters = $eis->getMastersForCWS($child) }; - if ( $@ ) { - carp("ERROR: get_eis_id(): EIS database transaction failed. Reason:\n$@\n"); - } - return $$masters[0]; -}; - -# Returns the branch and root tags for child workspace. -sub get_tags -{ - my $self = shift; - - # look up if tags have already been retrieved - if ( defined($self->{_CACHED_TAGS}) ) { - return @{$self->{_CACHED_TAGS}}; - } - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $childws = $self->child(); - # check if child workspace is a clone, - if ( $childws =~ /(\w+)_[[:upper:]]{3}\d{3}/ ) { - $childws = $1; - } - - # check in environment if master is on the the HEAD branch - my $cvs_head = get_cvs_head(); - my $current_master = $self->master(); - my $creation_master = $self->get_creation_master(); - if ( !$creation_master ) { - carp("ERROR: Can't determine creation MWS.\n"); - return undef; - } - my $milestone = $self->milestone(); - - my $master_branch_tag - = (lc($current_master) eq lc($cvs_head)) ? '' : 'mws_' . lc($current_master); - my $cws_branch_tag = 'cws_' . lc($creation_master) . '_' . lc($childws); - my $cws_root_tag = uc($cws_branch_tag) . "_ANCHOR"; - my $master_milestone_tag = uc($current_master) . "_" . $milestone; - - $self->{_CACHED_TAGS} = [$master_branch_tag, $cws_branch_tag, $cws_root_tag, $master_milestone_tag]; - return @{$self->{_CACHED_TAGS}}; -} - -# Get childworkspace owner -sub get_owner -{ - my $self = shift; - - return $self->get_owner_from_eis(); -} - -# get childworkspace qarep -sub get_qarep -{ - my $self = shift; - - return $self->get_qarep_from_eis(); -} - -# store an Attachment to a given CWS -sub save_attachment -{ - my $self = shift; - my $name = shift; - my $mediatype = shift; - my $data = shift; - - return $self->save_attachment_in_eis($name, $mediatype, $data); -} - -# Get child workspace approval status, -# return values can be: -# 'planned', 'new', 'nominated', 'integrated' -# and undef in case of error. -sub get_approval -{ - my $self = shift; - - return $self->get_status_from_eis(); -} - -# Set child workspace approval status -# to 'integrated'. Return true if successful -# or undef in case of error -sub set_integrated -{ - my $self = shift; - - return $self->set_status_in_eis(); -} - -# Set child workspace integration milestone -# Return true if successful or undef in case of error -sub set_integration_milestone -{ - my $self = shift; - my $milestone = shift; - my $buildid = shift; - - return $self->set_integration_milestone_in_eis($milestone, $buildid); -} - -# Get the MWS on which a CWS was created -sub get_creation_master -{ - my $self = shift; - - return $self->get_creation_master_from_eis(); -} - -# Get the 'public' flag indicating whether a CWS is visible on OOo -sub get_public_flag -{ - my $self = shift; - - return $self->get_public_flag_from_eis(); -} - - -# Get the 'publicmaster' flag indicating whether a MWS is visible on OOo -sub get_publicmaster_flag -{ - my $self = shift; - - return $self->get_publicmaster_flag_from_eis(); -} - - -sub get_subversion_flag { - - my $self = shift; - - return $self->get_subversion_flag_from_eis(); -} - -sub set_subversion_flag { - - my $self = shift; - my $value = shift; - - return $self->set_subversion_flag_in_eis($value); -} - -sub get_scm { - my $self = shift; - - return $self->get_scm_from_eis(); -} - -sub set_scm { - my $self = shift; - my $scm_name = shift; - - return $self->set_scm_in_eis($scm_name); -} - - -# Check if milestone exists -sub is_milestone -{ - my $self = shift; - my $master = shift; - my $milestone = shift; - - return $self->is_milestone_registered_with_eis($master, $milestone); -} - -# Check if this cws contains new ui -sub is_uirelevant -{ - my $self = shift; - - return $self->is_uirelevant_from_eis(); -} - -# Check if this cws contains new online help -sub is_helprelevant -{ - my $self = shift; - - return $self->is_helprelevant_from_eis(); -} - -# Set the l10n status -sub set_l10n_status -{ - my $self = shift; - my $status = shift; - - return $self->set_l10n_status_in_eis( $status ); -} - -# Get the l10n status -sub get_l10n_status -{ - my $self = shift; - - return $self->get_l10n_status_from_eis(); -} -sub set_word_count -{ - my $self = shift; - my $language = shift; - my $wordcount = shift; - - return $self->set_word_count_in_eis( $language , $wordcount ); -} - - -# Get target release for CWS -sub get_release -{ - my $self = shift; - - return $self->get_release_from_eis(); -} - -# Get due date -sub get_due_date -{ - my $self = shift; - - return $self->get_due_date_from_eis(); -} - -# Get due date QA -sub get_due_date_qa -{ - my $self = shift; - - return $self->get_due_date_qa_from_eis(); -} - -# Query master milestone combination for being used by an -# active CWS -sub is_milestone_used -{ - my $self = shift; - my $master = shift; - my $milestone = shift; - - return $self->get_is_milestone_used_from_eis($master, $milestone); -} - -# Set current milestone for MWS. -sub set_current_milestone -{ - my $self = shift; - my $master = shift; - my $milestone = shift; - - return $self->set_current_milestone_in_eis($master, $milestone); -} - -# Get current milestone for MWS. -sub get_current_milestone -{ - my $self = shift; - my $master = shift; - - return $self->get_current_milestone_from_eis($master); -} - -sub get_milestone_integrated -{ - my $self = shift; - - return $self->get_milestone_integrated_from_eis(); -} - -# Get masters -sub get_masters -{ - - my $self = shift; - - return $self->get_masters_from_eis(); -} - -# Get milestones for MWS. -sub get_milestones -{ - my $self = shift; - my $master = shift; - - return $self->get_milestones_from_eis($master); -} -# get build string for CWS - -sub get_build -{ - my $self = shift; - my $master = $self->master(); - my $milestone = $self->milestone(); - if ( ! defined($milestone) ) { - return undef; - } - my $bid=$self->get_buildid($master,$milestone); - if ( ! defined($bid) ) { - return undef; - } - return $self->expand_buildid($bid); -} - - - -# expand build for given cwsname -sub expand_buildid -{ - my $self = shift; - my $bid = shift; - return $self->expand_buildid_in_eis($bid); -} - - -# Set BuildID of milestone -sub set_milestone_buildid -{ - my $self = shift; - my $master = shift; - my $milestone = shift; - my $buildid = shift; - - return $self->set_milestone_buildid_in_eis($master, $milestone, $buildid); -} - -# Declare milestone 'removed' -# This triggers EIS to send emails to all (SO-internal) CWS owners -# with living CWSs based on that milestone. -sub milestone_removed -{ - my $self = shift; - my $master = shift; - my $milestone = shift; - - return $self->set_milestone_removed_in_eis($master, $milestone); -} - - -# Get all child workspaces which have been integrated on a -# given master and milestone. -sub get_integrated_cws -{ - my $self = shift; - my $master = shift; - my $milestone = shift; - - my $childworkspaces_arrref = $self->get_childworkspaces_for_milestone($master, $milestone); - if ( !$childworkspaces_arrref ) { - $childworkspaces_arrref = []; - } - return wantarray ? @$childworkspaces_arrref : $childworkspaces_arrref; -} - - -# Get builid for given master and milestone. -sub get_buildid -{ - my $self = shift; - my $master = shift; - my $milestone = shift; - - return $self->get_buildid_for_milestone($master, $milestone); -} - -# -# Get all cws' with a status passed -# -sub get_cws_with_state -{ - my $self = shift; - my $mws = shift; - my $status = shift; - - return wantarray ? @{$self->get_cws_with_state_from_eis($mws, $status)} - : $self->get_cws_with_state_from_eis($mws, $status); -} - -sub get_task_prio_cws -{ - my $self = shift; - my $ref_taskids = shift; - return @{$self->get_task_prios_of_tasks($ref_taskids)}; -} - -# Check is CWS is cloneable for specified master -sub is_cws_cloneable -{ - my $self = shift; - my $master = shift; - - return $self->get_is_cws_cloneable_from_eis($master); -} - -# Clone CWS for specified master -sub clone_cws -{ - my $self = shift; - my $master = shift; - - return $self->clone_cws_in_eis($master); -} - -sub set_log_entry -{ - my $self = shift; - my $commandline = shift; - my $vcsid = shift; - my $start = shift; - my $stop = shift; - my $comment = shift; - return $self->set_log_entry_in_eis($commandline, $vcsid, $start, $stop, $comment); -} - -sub set_log_entry_extended -{ - my $self = shift; - my $commandname = shift; - my $parameter = shift; - my $vcsid = shift; - my $start = shift; - my $stop = shift; - my $comment = shift; - my $mastername = shift; - my $childname = shift; -#set_log_entry_extended_in_eis($commandname, $parameter, $vcsid, $start, $stop, $comment, $mastername, $childname); - return $self->set_log_entry_extended_in_eis($commandname, $parameter, $vcsid, $start, $stop, $comment, $mastername, $childname); -} - - -#### private #### - -# class data accessor methods -sub eis -{ - shift; # ignore calling class/object - $CwsClassData{EIS} = shift if @_; - if ( !defined($CwsClassData{EIS}) ) { - $CwsClassData{EIS} = init_eis_connector(); - } - return $CwsClassData{EIS}; -} - -# generate remaining class data accessor methods -# if this looks strange see 'perldoc perltootc' -for my $datum (qw(eis_uri eis_proxy_list net_proxy)) { - no strict "refs"; - *$datum = sub { - shift; # ignore calling class/object - return $CwsClassData{uc($datum)}; - } -} - -#### helper methods #### - -# instance methods - -# Add item to items list, -# update eis database, -# returns a list of newly added items, -# specifying an existing item is not an -# error, but it want appear in the return list. -sub add_items -{ - my $self = shift; - my $type = shift; - my $optional_data = shift; - - my $items_ref; - if ( $type eq 'modules' ) { - $items_ref = $self->modules(); - } - elsif ( $type eq 'taskids' ) { - $items_ref = $self->taskids(); - } - else { - # fall through, can't happen - carp("ERROR: wrong item type\n"); - return undef; - } - - my $item; - my @new_items = (); - return undef if !defined($items_ref); - # find which items which are not already in items list - ITEM: while ( $item = shift ) { - foreach ( @{$items_ref} ) { - next ITEM if $_ eq $item; - } - push(@new_items, $item); - } - if ( $#new_items > -1 ) { - # add items to database - if ( $self->add_items_to_eis($type, $optional_data, \@new_items) ) { - push(@{$items_ref}, @new_items); - } - else { - # something went wrong - return undef; - } - } - return \@new_items; -} - -# Get EIS id for workspace from EIS database -sub get_eis_id -{ - my $self = shift; - my $eis = Cws::eis(); - - # It's not an error if one of these is unset, so don't carp(). - if ( !$self->master() || !$self->child() ) { - return undef; - } - - my $master = Eis::to_string($self->master()); - my $child = Eis::to_string($self->child()); - - my $result; - eval { $result = int($eis->getChildWorkspaceId($master, $child)) }; - if ( $@ ) { - carp("ERROR: get_eis_id(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub fetch_item_from_eis -{ - my $self = shift; - my $type = shift; - - my $eis = Cws::eis(); - my $id = $self->eis_id(); - - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $result; - if ( $type eq 'milestone' ) { - eval { $result = $eis->getMilestone($id) }; - } - elsif ( $type eq 'master' ) { - # master can't be queried from the EIS database, - # just return what already in member - return $self->{MASTER} - } - else { - # fall through, can't happen - carp("ERROR: wrong item type\n"); - return undef; - } - if ( $@ ) { - carp("ERROR: fetch_item(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub set_item_in_eis -{ - my $self = shift; - my $type = shift; - my $item = shift; - - my $eis = Cws::eis(); - my $id = $self->eis_id(); - - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - # make certain that the item is a string, otherwise - # autotyping will occasionally choose the wrong type - $item = Eis::to_string($item); - - my $result; - if ( $type eq 'milestone' ) { - # this operation invalidates the cached tags list - $self->{_CACHED_TAGS} = undef; - eval { $result = $eis->setMilestone($id, $item) }; - } - elsif ( $type eq 'master' ) { - # this operation invalidates the cached tags list - $self->{_CACHED_TAGS} = undef; - eval { $result = $eis->setMasterWorkspace($id, $item) }; - } - else { - # fall through, can't happen - carp("ERROR: wrong item type\n"); - return 0; - } - - if ( $@ ) { - carp("ERROR: set_item(): EIS database transaction failed. Reason:\n$@\n"); - return undef; - } - return 1 if $result; - return 0; -} - -sub set_master_and_milestone_in_eis -{ - my $self = shift; - my $master = shift; - my $milestone = shift; - - my $eis = Cws::eis(); - my $id = $self->eis_id(); - - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - # make certain that the item is a string, otherwise - # autotyping will occasionally choose the wrong type - $master = Eis::to_string($master); - $milestone = Eis::to_string($milestone); - - my $result; - # this operation invalidates the cached tags list - $self->{_CACHED_TAGS} = undef; - eval { $result = $eis->setMasterWorkspaceAndMilestone($id, $master, $milestone) }; - - if ( $@ ) { - carp("ERROR: set_master_and_milestone(): EIS database transaction failed. Reason:\n$@\n"); - return undef; - } - return 1 if $result; - return 0; -} - -sub fetch_items_from_eis -{ - my $self = shift; - my $type = shift; - - my $eis = Cws::eis(); - my $id = $self->eis_id(); - - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $result; - if ( $type eq 'modules' ) { - eval { $result = $eis->getModules($id) }; - } - elsif ( $type eq 'incompatible_modules' ) { - eval { $result = $eis->getIncompatibleModules($id) }; - } - elsif ( $type eq 'new_modules' ) { - eval { $result = $eis->getNewModules($id) }; - } - elsif ( $type eq 'new_modules_priv' ) { - eval { $result = $eis->getNewModulesPriv($id) }; - } - elsif ( $type eq 'taskids' ) { - eval { $result = $eis->getTaskIds($id) }; - } - elsif ( $type eq 'files' ) { - eval { $result = $eis->getFiles($id) }; - } - elsif ( $type eq 'patch_files' ) { - eval { $result = $eis->getOutputFiles($id) }; - } - else { - # fall through, can't happen - carp("ERROR: wrong item type\n"); - return undef; - } - if ( $@ ) { - carp("ERROR: fetch_item(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub add_items_to_eis -{ - my $self = shift; - my $type = shift; - my $optional_data = shift; - my $item_ref = shift; - - my $eis = Cws::eis(); - my $id = $self->eis_id(); - - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - # make certain that all items are strings, otherwise - # autotyping will occasionally choose the wrong type - my @items = (); - foreach ( @{$item_ref} ) { - push(@items, Eis::to_string($_)); - } - - my $result; - if ( $type eq 'modules' ) { - if ( defined($optional_data) ) { - # add a module new style, with public attribute - eval { $result = $eis->addModule($id, $items[0], $optional_data) }; - } - else { - # old style, add a list of modules - eval { $result = $eis->addModules($id, \@items) }; - } - } - elsif ( $type eq 'taskids' ) { - eval { $result = $eis->addTaskIds($id, \@items, $optional_data) }; - } - else { - # fall through, can't happen - carp("ERROR: wrong item type\n"); - return 0; - } - - if ( $@ ) { - carp("ERROR: add_item(): EIS database transaction failed. Reason:\n$@\n"); - return undef; - } - return 1 if $result; - return 0; -} - -sub add_file_to_eis -{ - my $self = shift; - my $module = shift; - my $file = shift; - my $revision = shift; - my $authors_ref = shift; - my $taskids_ref = shift; - my $archive_path = shift; - - - my $eis = Cws::eis(); - my $id = $self->eis_id(); - - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - # make certain that all task_ids are strings, otherwise - # autotyping will choose the wrong type - # Note: I think typing just the first element should suffice, but ... - my @taskids = (); - foreach ( @{$taskids_ref} ) { - push(@taskids, Eis::to_string($_)); - } - # HACK Its possible that we get no valid taskid. - # Autotyping will fail for a list without elements; - if ( !@taskids ) { - push(@taskids, Eis::to_string('')); - } - - # same for revision - $revision = Eis::to_string($revision); - - if ( !$archive_path ) { - $archive_path = Eis::to_string(''); - } - - my $result; - eval { - $result = $eis->addFile($id, $module, $file, $archive_path, - $revision, $authors_ref, \@taskids) - }; - if ( $@ ) { - carp("ERROR: add_file(): EIS database transaction failed. Reason:\n$@\n"); - return undef; - } - return 1 if $result; - return 0; -} - -sub add_patch_file_to_eis -{ - my $self = shift; - my $file = shift; - - my $eis = Cws::eis(); - my $id = $self->eis_id(); - - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $result; - eval { $result = $eis->addOutputFile($id, $file) }; - if ( $@ ) { - carp("ERROR: add_patch_file(): EIS database transaction failed. Reason:\n$@\n"); - return undef; - } - return $1;# appOutputFile has void as return value ... -} - -sub is_cws_name_available_in_eis -{ - my $self = shift; - - if ( !$self->master() ) { - carp("ERROR: master workspace name not set\n"); - return undef; - } - - if ( !$self->child() ) { - carp("ERROR: child workspace name not set\n"); - return undef; - } - - my $eis = Cws::eis(); - my $master = Eis::to_string($self->master()); - my $child = Eis::to_string($self->child()); - - my $result; - eval { $result = $eis->isChildWorkspaceUnique($master, $child) }; - if ( $@ ) { - carp("ERROR: is_cws_name_available(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub register_child_with_eis -{ - my $self = shift; - my $vcsid = shift; - my $location = shift; - - if ( !$self->master() ) { - carp("ERROR: master workspace name not set\n"); - return undef; - } - - if ( !$self->milestone() ) { - carp("ERROR: master milestone not set\n"); - return undef; - } - - if ( !$self->child() ) { - carp("ERROR: child workspace name not set\n"); - return undef; - } - - $vcsid = '' unless $vcsid; - $location = '' unless $location; - - my $eis = Cws::eis(); - my $master = Eis::to_string($self->master()); - my $milestone = Eis::to_string($self->milestone()); - my $child = Eis::to_string($self->child()); - - $vcsid = Eis::to_string($vcsid); - $location = Eis::to_string($location); - - my $result; - eval { - $result = $eis->createChildWorkspace($master, $milestone, $child, - $vcsid, $location) - }; - - if ( $@ ) { - carp("ERROR: create_child_workspace(): EIS database transaction failed. Reason:\n$@\n"); - return undef; - } - # set EIS_ID directly, since $self->eis_id() is not - # supposed to take parameters. - $self->{EIS_ID} = $result; - return $result; -} - -sub promote_child_in_eis -{ - my $self = shift; - my $vcsid = shift; - my $location = shift; - - my $eis = Cws::eis(); - my $id = $self->eis_id(); - - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - if ( !$self->milestone() ) { - carp("ERROR: master milestone not set\n"); - return undef; - } - - my $milestone = Eis::to_string($self->milestone()); - - $vcsid = '' unless $vcsid; - $location = '' unless $location; - - $vcsid = Eis::to_string($vcsid); - $location = Eis::to_string($location); - - my $result; - eval { - $result = $eis->initializeChildWorkspace($id, $milestone, $vcsid, $location) - }; - - eval { $result = $eis->getStatus($id) }; - if ( $@ ) { - carp("ERROR: promote(): EIS database transaction failed. Reason:\n$@\n"); - return 0; - } - return 1; -} - -# Get child workspace owner from EIS, -# return undef in case of error. -sub get_owner_from_eis -{ - my $self = shift; - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->getOwnerEmail($id) }; - if ( $@ ) { - carp("ERROR: get_OwnerEmail(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -# Get child workspace qarep from EIS, -# return undef in case of error. -sub get_qarep_from_eis -{ - my $self = shift; - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->getQARepresentativeEmail($id) }; - if ( $@ ) { - carp("ERROR: get_qarep(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -# store an attachment to a given CWS -# return undef in case of error. -sub save_attachment_in_eis -{ - my $self = shift; - my $name = shift; - my $mediatype = shift; - my $text = shift; - - # check if child workspace is valid - my $eisid = $self->eis_id(); - if ( !$eisid ) - { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eisname = Eis::to_string($name); - my $eismediatype = Eis::to_string($mediatype); - my $eistextstring = Eis::to_string($text); - - my $eis = Cws::eis(); - my $result; - - eval { $result = $eis->saveAttachment($eisid, $eisname, $eismediatype, $eistextstring ) }; - if ( $@ ) { - carp("ERROR: save_attachment_in_eis(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -# Get child workspace approval status from EIS, -# return undef in case of error. -sub get_status_from_eis -{ - my $self = shift; - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->getStatus($id) }; - if ( $@ ) { - carp("ERROR: get_status(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -# Get child workspace approval status from EIS, -# return undef in case of error. -sub set_status_in_eis -{ - my $self = shift; - my $status = shift; - my $method = 'set'; - $method .= (defined $status) ? $status : 'Integrated'; - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - my $eis = Cws::eis(); - my $result; - if (defined $status) { - eval { $result = $eis->setFixedOnMaster($id) }; - } else { - eval { $result = $eis->setIntegrated($id) }; - } - if ( $@ ) { - carp("ERROR: $method(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -# Get child workspace approval status from EIS, -# return undef in case of error. -sub set_integration_milestone_in_eis -{ - my $self = shift; - my $milestone = shift; - my $buildid = shift; - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - - # just in case ... - if ( !defined($milestone) ) { - $milestone = Eis::to_string(''); - } - # $buildid must be transfered as string - if ( !defined($buildid) ) { - $buildid = Eis::to_string(''); - } - else { - $buildid = Eis::to_string($buildid); - } - - my $result; - eval { $result = $eis->setIntegrationMilestone($id, $milestone, $buildid) }; - if ( $@ ) { - carp("ERROR: set_integration_milestone(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub set_milestone_buildid_in_eis -{ - my $self = shift; - my $master = shift; - my $milestone = shift; - my $buildid = shift; - - $master = Eis::to_string($master); - $milestone = Eis::to_string($milestone); - $buildid = Eis::to_string($buildid); - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->setMilestoneBuild( $master, $milestone, $buildid ) }; - if ( $@ ) { - carp("ERROR: set_milestone_buildid(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub set_current_milestone_in_eis -{ - my $self = shift; - my $master = shift; - my $milestone = shift; - - $master = Eis::to_string($master); - $milestone = Eis::to_string($milestone); - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->setCurrentMilestone( $master, $milestone ) }; - if ( $@ ) { - carp("ERROR: set_current_milestone(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub get_current_milestone_from_eis -{ - my $self = shift; - my $master = shift; - - $master = Eis::to_string($master); - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->getCurrentMilestone( $master ) }; - if ( $@ ) { - carp("ERROR: get_current_milestone(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub get_masters_from_eis -{ - my $self = shift; - - my $eis = Cws::eis(); - my @result; - eval { @result = $eis->getMasterWorkspaces() }; - if ( $@ ) { - carp("ERROR: get_masters(): EIS database transaction failed. Reason:\n$@\n"); - } - - my @result2=(); - my $i=0; - while ( defined($result[0][$i]) ) { - push @result2,$result[0][$i]; - $i++; - } - return @result2; -} - - -sub get_milestones_from_eis -{ - my $self = shift; - my $master = shift; - - $master = Eis::to_string($master); - - my $eis = Cws::eis(); - my @result; - eval { @result = $eis->getMilestones( $master ) }; - if ( $@ ) { - carp("ERROR: get_milestones(): EIS database transaction failed. Reason:\n$@\n"); - } - my @result2=(); - my $i=0; - while ( defined($result[0][$i]) ) { - push @result2,$result[0][$i]; - $i++; - } - return @result2; -} - -# Get child workspace owner from EIS, -# return undef in case of error. -sub expand_buildid_in_eis -{ - my $self = shift; - my $bid = shift; - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $name = $self->child(); - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->expandBuildId($bid, $name) }; - if ( $@ ) { - carp("ERROR: expand_builid(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub set_milestone_removed_in_eis -{ - my $self = shift; - my $master = shift; - my $milestone = shift; - - $master = Eis::to_string($master); - $milestone = Eis::to_string($milestone); - - my $eis = Cws::eis(); - eval { $eis->minorRemoved( $master, $milestone ) }; - if ( $@ ) { - carp("ERROR: set_current_milestone(): EIS database transaction failed. Reason:\n$@\n"); - } - return; -} - -sub is_milestone_registered_with_eis -{ - my $self = shift; - my $master = shift; - my $milestone = shift; - - $master = Eis::to_string($master); - $milestone = Eis::to_string($milestone); - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->isMilestoneValid($master, $milestone) }; - if ( $@ ) { - carp("ERROR: is_milestone(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub get_is_milestone_used_from_eis -{ - my $self = shift; - my $master = shift; - my $milestone = shift; - - $master = Eis::to_string($master); - $milestone = Eis::to_string($milestone); - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->isMilestoneInUse($master, $milestone) }; - if ( $@ ) { - carp("ERROR: is_milestone_used(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub get_buildid_for_milestone -{ - my $self = shift; - my $master = shift; - my $milestone = shift; - - $master = Eis::to_string($master); - $milestone = Eis::to_string($milestone); - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->getMilestoneBuild($master, $milestone) }; - if ( $@ ) { - carp("ERROR: get_buildid_for_milestone(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub get_childworkspaces_for_milestone -{ - my $self = shift; - my $master = shift; - my $milestone = shift; - - $master = Eis::to_string($master); - $milestone = Eis::to_string($milestone); - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->searchChildWorkspacesForMilestone($master, $milestone) }; - if ( $@ ) { - carp("ERROR: get_childworkspaces_for_milestone(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub get_cws_with_state_from_eis { - my $self = shift; - my $mws = shift; - my $status = shift; - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->getCWSWithState($mws, $status) }; - if ( $@ ) { - carp("ERROR: get_cws_with_state_from_eis(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub get_task_prios_of_tasks -{ - my $self = shift; - my $ref_taskids = shift; - - my $eis = Cws::eis(); - my $result; - my @items = (); - foreach ( @{$ref_taskids} ) { - push(@items, Eis::to_string($_)); - } - - eval { $result = $eis->getTasksPriorities( \@items ) }; - if ( $@ ) { - carp("ERROR: get_task_prios_of_tasks(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub get_creation_master_from_eis -{ - my $self = shift; - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->getCreationMasterWorkspace($id) }; - if ( $@ ) { - carp("ERROR: get_creation_master(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; - -} - -sub get_milestone_integrated_from_eis -{ - my $self = shift; - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->getMilestoneIntegrated($id) }; - if ( $@ ) { - carp("ERROR: get_milestone_integrated(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; - -} - -# get isPublic flag from eis -sub get_public_flag_from_eis -{ - my $self = shift; - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->isPublic($id) }; - if ( $@ ) { - carp("ERROR: get_public_flag(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -# get isPublicMaster flag from eis -sub get_publicmaster_flag_from_eis -{ - my $self = shift; - - # check if child workspace is valid - my $master = $self->master(); - if ( !$master ) { - carp("ERROR: MasterWorkspace not defined.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->isPublicMaster($master) }; - if ( $@ ) { - carp("ERROR: get_publicmaster_flag(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -# get isSubVersion flag from eis -sub get_subversion_flag_from_eis -{ - my $self = shift; - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->isSubVersion($id) }; - if ( $@ ) { - carp("ERROR: get_subversion_flag(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -# set isSubVersion flag in eis -sub set_subversion_flag_in_eis -{ - my $self=shift; - my $status=shift; - - my $bool_status=SOAP::Data->type(boolean => $status); - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->setSubVersion($id,$bool_status) }; - if ( $@ ) { - carp("ERROR: get_subversion_flag(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub get_scm_from_eis -{ - my $self = shift; - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->getSCMName($id) }; - if ( $@ ) { - carp("ERROR: get_scm_from_eis(): EIS database transaction failed. Reason:\n$@\n"); - } - return $result; -} - -sub set_scm_in_eis -{ - my $self = shift; - my $scm_name = shift; - - $scm_name = Eis::to_string($scm_name); - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - eval { $eis->setSCMName($id, $scm_name) }; - if ( $@ ) { - carp("ERROR: set_scm_in_eis(): EIS database transaction failed. Reason:\n$@\n"); - return 0; - } - return 1; -} - -sub is_uirelevant_from_eis -{ - my $self = shift; - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->isUIRelevant($id) }; - if ( $@ ) { - carp("ERROR: is_uirelevant_from_eis(): EIS database transaction failed. Reason:\n$@\n"); - } - - return $result; -} - -sub is_helprelevant_from_eis -{ - my $self = shift; - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->isHelpRelevant( $id ) }; - if ( $@ ) { - carp("ERROR: is_helprelevant_from_eis(): EIS database transaction failed. Reason:\n$@\n"); - } - - return $result; -} -sub set_word_count_in_eis -{ - my $self = shift; - my $language = shift; - my $wordcount = shift; - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->setWordCount( $id , $language , $wordcount ) }; - if ( $@ ) { - carp("ERROR: set_word_count_from_eis(): EIS database transaction failed. Reason:\n$@\n"); - } - - return $result; -} - - -sub get_l10n_status_from_eis -{ - my $self = shift; - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->getL10n( $id ) }; - if ( $@ ) { - carp("ERROR: get_l10n_status_from_eis(): EIS database transaction failed. Reason:\n$@\n"); - } - - return $result; -} - -sub set_l10n_status_in_eis -{ - my $self = shift; - my $status = Eis::to_string( shift ); - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - - eval { $result = $eis->setL10n( $id , $status ) }; - if ( $@ ) { - carp("ERROR: set_l10n_status_in_eis(): EIS database transaction failed. Reason:\n$@\n"); - } - - return $result; -} - -sub get_is_cws_cloneable_from_eis -{ - my $self = shift; - my $master = Eis::to_string( shift ); - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - - eval { $result = $eis->isClonableForMaster($id, $master) }; - if ( $@ ) { - carp("ERROR: get_is_cws_cloneable_from_eis(): EIS database transaction failed. Reason:\n$@\n"); - } - - return $result; -} - -sub clone_cws_in_eis -{ - my $self = shift; - my $master = Eis::to_string( shift ); - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - - eval { $eis->cloneForMaster($id, $master) }; - if ( $@ ) { - carp("ERROR: clone_cws_in_eis(): EIS database transaction failed. Reason:\n$@\n"); - return 0; - } - - return 1; -} - -sub get_release_from_eis -{ - my $self = shift; - my $master = Eis::to_string( shift ); - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - - eval { $result = $eis->getRelease($id) }; - if ( $@ ) { - carp("ERROR: get_release_from_eis(): EIS database transaction failed. Reason:\n$@\n"); - } - - return $result; -} - -sub get_due_date_from_eis -{ - my $self = shift; - my $master = Eis::to_string( shift ); - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - - eval { $result = $eis->getDueDate($id) }; - if ( $@ ) { - carp("ERROR: get_due_date_from_eis(): EIS database transaction failed. Reason:\n$@\n"); - } - - return $result; -} - -sub get_due_date_qa_from_eis -{ - my $self = shift; - my $master = Eis::to_string( shift ); - - # check if child workspace is valid - my $id = $self->eis_id(); - if ( !$id ) { - carp("ERROR: Childworkspace not (yet) registered with EIS.\n"); - return undef; - } - - my $eis = Cws::eis(); - my $result; - - eval { $result = $eis->getDueDateQA($id) }; - if ( $@ ) { - carp("ERROR: get_due_date_qa_from_eis(): EIS database transaction failed. Reason:\n$@\n"); - } - - return $result; -} - - -#logging -sub set_log_entry_in_eis -{ - my $self = shift; - my $commandline = shift; - my $vcsid = shift; - my $start = shift; - my $end = shift; - my $comment = shift; - - $commandline = SOAP::Data->type(string => $commandline); - $comment = SOAP::Data->type(string => $comment); - - # *format* for $start and $end = "2003-05-28 12:34:59"; - -#===================================================== - #TO DO: - #experimenell für saubere schnittstelle - #$start = SOAP::Data->type(dateTime => $start); - #$end = SOAP::Data->type(dateTime => $end); -#===================================================== - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->storeCommandLogEntry( $commandline, $vcsid, $start, $end, $comment ) }; - if ( $@ ) { - carp("ERROR: set_log_entry(): Logging failed. Reason:\n$@\n"); - } - return $result; -} - -#set_log_entry_extended_in_eis($commandname, $parameter, $vcsid, $start, $stop, $comment, $mastername, $childname); -sub set_log_entry_extended_in_eis -{ - my $self = shift; - my $commandname = shift; - my $parameter = shift; - my $vcsid = shift; - my $start = shift; - my $end = shift; - my $comment = shift; - my $mastername = shift; - my $childname = shift; - - $commandname = SOAP::Data->type(string => $commandname); - $parameter = SOAP::Data->type(string => $parameter); - $comment = SOAP::Data->type(string => $comment); - $mastername = SOAP::Data->type(string => $mastername); - $childname = SOAP::Data->type(string => $childname); - - # *format* for $start and $end = "2003-05-28 12:34:59"; - -#===================================================== - #TO DO: - #experimenell für saubere schnittstelle - #$start = SOAP::Data->type(dateTime => $start); - #$end = SOAP::Data->type(dateTime => $end); -#===================================================== - - my $eis = Cws::eis(); - my $result; - eval { $result = $eis->storeCommandLogEntry($commandname, $parameter, $vcsid, $start, $end, $comment, $mastername, $childname) }; - if ( $@ ) { - carp("ERROR: set_log_entry_extended(): Logging failed. Reason:\n$@\n"); - } - return $result; -} - - -#### class methods #### - -sub init_eis_connector -{ - my $eis = Eis->new( uri => Cws::eis_uri(), - proxy_list => Cws::eis_proxy_list(), - net_proxy => Cws::net_proxy() - ); - return $eis; -} - -#### - -1; # needed by "use" or "require" -# vim: set ts=4 shiftwidth=4 expandtab syntax=perl: diff --git a/solenv/bin/modules/CwsConfig.pm b/solenv/bin/modules/CwsConfig.pm deleted file mode 100644 index 1ba12fecac1d..000000000000 --- a/solenv/bin/modules/CwsConfig.pm +++ /dev/null @@ -1,541 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - - -# -# CwsConfig.pm - package for read CWS config data -# - -package CwsConfig; -use strict; - -use Carp; -use URI::Escape; - -##### ctor #### - -sub new -{ - my $invocant = shift; - my $class = ref($invocant) || $invocant; - my $self = {}; - $self->{_CONFIG_FILE} = undef; # config file - $self->{_GLOBAL} = undef; # is it a global config file? - $self->{VCSID} = undef; # VCSID - $self->{CWS_DB_URL_LIST_REF} = undef; # list of CWS DB servers - $self->{NET_PROXY} = undef; # network proxy - $self->{CWS_SERVER_ROOT} = undef; # cvs server - $self->{CWS_MIRROR_ROOT} = undef; # mirror of cvs server - $self->{CWS_LOCAL_ROOT} = undef; # local cvs server - $self->{PUBLIC_SVN_SERVER} = undef; # public svn server - $self->{PRIVATE_SVN_SERVER} = undef; # private svn server - bless ($self, $class); - return $self; -} - -sub vcsid -{ - my $self = shift; - - if ( !defined($self->{VCSID}) ) { - # environment overrides config file - my $vcsid = $ENV{VCSID}; - if ( !defined($vcsid) ) { - # check config file - my $config_file = $self->get_config_file(); - $vcsid = $config_file->{CWS_CONFIG}->{'CVS_ID'}; - if ( !defined($vcsid) ) { - # give up - croak("ERROR: no CVS_ID entry found in '\$HOME/.cwsrc'.\n" ); - } - } - $self->{VCSID} = $vcsid; - } - return $self->{VCSID}; -} - -sub cws_db_url_list_ref -{ - my $self = shift; - - if ( !defined($self->{CWS_DB_URL_LIST_REF}) ) { - my $config_file = $self->get_config_file(); - - my $i = 1; - my @cws_db_servers; - - while ( 1 ) { - my $val = $config_file->{CWS_CONFIG}->{"CWS_DB_SERVER_$i"}; - last if !defined($val); - push(@cws_db_servers, $val); - $i++; - } - - if ( !@cws_db_servers) { - croak("ERROR: no CWS_DB_SERVER_* entry found in '\$HOME/.cwsrc'.\n" ); - } - - if ( $cws_db_servers[0] =~ /^https:\/\// ) { - my $id = $self->vcsid(); - my $password = $config_file->{CWS_CONFIG}->{'CVS_PASSWORD'}; - - if ( !defined($password) ) { - croak("ERROR: no CVS_PASSWORD entry found in '\$HOME/.cwsrc'.\n" ); - } - - # *i49473* - do not accept scrambled passwords ending with a space - if ( $password =~ / $/) { - croak("ERROR: The (scrambled) CVS_PASSWORD ends with a space. This is known to cause problems when connecting to the OpenOffice.org EIS database. Please change your OOo account's password" ); - } - - # We are going to stuff $id and $password in an URL, do proper escaping. - $id = uri_escape($id); - $password = uri_escape($password); - - foreach ( @cws_db_servers ) { - s/^https:\/\//https:\/\/$id:$password@/; - } - } - - $self->{CWS_DB_URL_LIST_REF} = \@cws_db_servers; - } - return $self->{CWS_DB_URL_LIST_REF}; -} - -sub net_proxy -{ - my $self = shift; - - if ( !defined($self->{NET_PROXY}) ) { - my $config_file = $self->get_config_file(); - my $net_proxy = $config_file->{CWS_CONFIG}->{'PROXY'}; - if ( !defined($net_proxy) ) { - $net_proxy = ""; - } - $self->{NET_PROXY} = $net_proxy; - } - return $self->{NET_PROXY} ? $self->{NET_PROXY} : undef; -} - -sub cvs_binary -{ - my $self = shift; - - if ( !defined($self->{CVS_BINARY}) ) { - my $config_file = $self->get_config_file(); - my $cvs_binary = $config_file->{CWS_CONFIG}->{'CVS_BINARY'}; - if ( !defined($cvs_binary) ) { - # defaults - $cvs_binary = ($^O eq 'MSWin32') ? 'cvs.exe' : 'cvs'; - } - # special case, don't ask - if ( $self->{_GLOBAL} && $cvs_binary =~ /cvs.clt2/ && $^O eq 'MSWin32' ) { - $cvs_binary = 'cvsclt2.exe'; - } - $self->{CVS_BINARY} = $cvs_binary; - } - return $self->{CVS_BINARY}; -} - -sub cvs_server_root -{ - my $self = shift; - - if ( !defined($self->{CVS_SERVER_ROOT}) ) { - my $config_file = $self->get_config_file(); - my $cvs_server_root = $config_file->{CWS_CONFIG}->{'CVS_SERVER_ROOT'}; - if ( !defined($cvs_server_root) ) { - # give up, this is a mandatory entry - croak("ERROR: can't parse CVS_SERVER_ROOT entry in '\$HOME/.cwsrc'.\n"); - } - if ( $self->{_GLOBAL} ) { - # a global config file will almost always have the wrong vcsid in - # the cvsroot -> substitute vcsid - my $id = $self->vcsid(); - $cvs_server_root =~ s/:pserver:\w+@/:pserver:$id@/; - } - $self->{CVS_SERVER_ROOT} = $cvs_server_root; - } - return $self->{CVS_SERVER_ROOT}; -} - -sub cvs_mirror_root -{ - my $self = shift; - - if ( !defined($self->{CVS_MIRROR_ROOT}) ) { - my $config_file = $self->get_config_file(); - my $cvs_mirror_root = $config_file->{CWS_CONFIG}->{'CVS_MIRROR_ROOT'}; - if ( !defined($cvs_mirror_root) ) { - $cvs_mirror_root = ""; - } - $self->{CVS_MIRROR_ROOT} = $cvs_mirror_root; - } - return $self->{CVS_MIRROR_ROOT} ? $self->{CVS_MIRROR_ROOT} : undef; -} - -sub cvs_local_root -{ - my $self = shift; - - if ( !defined($self->{CVS_LOCAL_ROOT}) ) { - my $config_file = $self->get_config_file(); - my $cvs_local_root = $config_file->{CWS_CONFIG}->{'CVS_LOCAL_ROOT'}; - if ( !defined($cvs_local_root) ) { - $cvs_local_root = ""; - } - $self->{CVS_LOCAL_ROOT} = $cvs_local_root; - } - return $self->{CVS_LOCAL_ROOT} ? $self->{CVS_LOCAL_ROOT} : undef; -} - -sub get_cvs_server -{ - my $self = shift; - - my ($method, $id, $server, $repository) = CwsConfig::split_root($self->cvs_server_root(), 'SERVER'); - return $server; -} - -sub get_cvs_mirror -{ - my $self = shift; - - my ($method, $id, $server, $repository) = CwsConfig::split_root($self->cvs_mirror_root(), 'MIRROR'); - return $server; -} - -sub get_cvs_local -{ - my $self = shift; - - my ($method, $id, $server, $repository) = CwsConfig::split_root($self->cvs_local_root(), 'LOCAL'); - return $server; -} - -sub get_cvs_server_method -{ - my $self = shift; - - my ($method, $id, $server, $repository) = CwsConfig::split_root($self->cvs_server_root(), 'SERVER'); - return $method; -} - -sub get_cvs_mirror_method -{ - my $self = shift; - - my ($method, $id, $server, $repository) = CwsConfig::split_root($self->cvs_mirror_root(), 'MIRROR'); - return $method; -} - -sub get_cvs_local_method -{ - my $self = shift; - - my ($method, $id, $server, $repository) = CwsConfig::split_root($self->cvs_local_root(), 'LOCAL'); - return $method; -} - -sub get_cvs_server_repository -{ - my $self = shift; - - my ($method, $id, $server, $repository) = CwsConfig::split_root($self->cvs_server_root(), 'SERVER'); - return $repository; -} - -sub get_cvs_mirror_repository -{ - my $self = shift; - - my ($method, $id, $server, $repository) = CwsConfig::split_root($self->cvs_mirror_root(), 'MIRROR'); - return $repository; -} - -sub get_cvs_local_repository -{ - my $self = shift; - - my ($method, $id, $server, $repository) = CwsConfig::split_root($self->cvs_local_root(), 'LOCAL'); - return $repository; -} - -sub get_cvs_server_id -{ - my $self = shift; - - my ($method, $id, $server, $repository) = CwsConfig::split_root($self->cvs_server_root(), 'SERVER'); - return $id; -} - -sub get_cvs_mirror_id -{ - my $self = shift; - - my ($method, $id, $server, $repository) = CwsConfig::split_root($self->cvs_mirror_root(), 'MIRROR'); - return $id; -} - -sub get_cvs_local_id -{ - my $self = shift; - - my ($method, $id, $server, $repository) = CwsConfig::split_root($self->cvs_local_root(), 'LOCAL'); - return $id; -} - -#### SVN methods #### - -sub get_ooo_svn_server -{ - my $self = shift; - - if ( !defined($self->{SVN_SERVER}) ) { - my $config_file = $self->get_config_file(); - my $ooo_svn_server = $config_file->{CWS_CONFIG}->{'SVN_SERVER'}; - if ( !defined($ooo_svn_server) ) { - $ooo_svn_server = ""; - } - $self->{SVN_SERVER} = $ooo_svn_server; - } - return $self->{SVN_SERVER} ? $self->{SVN_SERVER} : undef; -} - -sub get_so_svn_server -{ - my $self = shift; - - if ( !defined($self->{SO_SVN_SERVER}) ) { - my $config_file = $self->get_config_file(); - my $so_svn_server = $config_file->{CWS_CONFIG}->{'SO_SVN_SERVER'}; - if ( !defined($so_svn_server) ) { - $so_svn_server = ""; - } - $self->{SO_SVN_SERVER} = $so_svn_server; - } - return $self->{SO_SVN_SERVER} ? $self->{SO_SVN_SERVER} : undef; -} - -#### HG methods #### - -sub _get_hg_source -{ - my $self = shift; - my $repository_source = shift; - if ( !defined($self->{$repository_source}) ) { - my $config_file = $self->get_config_file(); - my $source = $config_file->{CWS_CONFIG}->{$repository_source}; - if ( !defined($source) ) { - $source = ""; - } - $self->{$repository_source} = $source; - } - return $self->{$repository_source} ? $self->{$repository_source} : undef; - -} - -sub get_hg_source -{ - my $self = shift; - my $repository = shift; - my $location = shift; - - #Special prefix handling, see cwsrc - if ($repository eq "OOO") - { - if ($location eq "LOCAL") - { - return $self->_get_hg_source('HG_LOCAL_SOURCE'); - } - elsif ($location eq "LAN") - { - return $self->_get_hg_source('HG_LAN_SOURCE'); - } - elsif ($location eq "REMOTE") - { - return $self->_get_hg_source('HG_REMOTE_SOURCE'); - } - } - else - { - if ($location eq "LOCAL") - { - return $self->_get_hg_source($repository.'_HG_LOCAL_SOURCE'); - } - elsif ($location eq "LAN") - { - return $self->_get_hg_source($repository.'_HG_LAN_SOURCE'); - } - elsif ($location eq "REMOTE") - { - return $self->_get_hg_source($repository.'_HG_REMOTE_SOURCE'); - } - } -} - -#### Prebuild binaries configuration #### - -sub get_prebuild_binaries_location -{ - my $self = shift; - - if ( !defined($self->{PREBUILD_BINARIES}) ) { - my $config_file = $self->get_config_file(); - my $pre_build_binaries = $config_file->{CWS_CONFIG}->{'PREBUILD_BINARIES'}; - if ( !defined($pre_build_binaries) ) { - $pre_build_binaries = ""; - } - $self->{PREBUILD_BINARIES} = $pre_build_binaries; - } - return $self->{PREBUILD_BINARIES} ? $self->{PREBUILD_BINARIES} : undef; -} - - - -#### class methods ##### -sub get_config -{ - my $config = CwsConfig->new(); - return $config; -} - -sub split_root -{ - my $root = shift; - my $type = shift; - - if ( !defined($root) ) { - return (undef, undef, undef, undef); - } - - my ($dummy, $method, $id_at_host, $repository) = split(/:/, $root); - $repository =~ s/^\d*//; - my ($id, $server); - if ( $id_at_host ) { - ($id, $server) = split(/@/, $id_at_host); - } - if ( !defined($method) || !defined($id) || !defined($server) || !defined($repository) ) { - # give up - print "$method, $id, $server, $repository\n"; - croak("ERROR: can't parse CVS_".$type."_ROOT entry in '\$HOME/.cwsrc'.\n"); - } - return ($method, $id, $server, $repository); -} - -#### private helper methods #### - -sub get_config_file -{ - my $self = shift; - - if ( !defined $self->{_CONFIG_FILE} ) { - $self->parse_config_file(); - } - return $self->{_CONFIG_FILE}; -} - -sub read_config -{ - my $self = shift; - my $fname = shift; - my $fhandle; - my $section = ''; - my %config; - - open ($fhandle, $fname) || croak("ERROR: Can't open '$fname': $!"); - while ( <$fhandle> ) { - tr/\r\n//d; # win32 pain - # Issue #i62815#: Scrambled CVS passwords may contain one or more '#'. - # Ugly special case needed: still allow in-line (perl style) comments - # elsewhere because existing configuration files may depend on them. - if ( !/^\s*CVS_PASSWORD/ ) { - s/\#.*//; # kill comments - } - /^\s*$/ && next; - - if (/\[\s*(\S+)\s*\]/) { - $section = $1; - if (!defined $config{$section}) { - $config{$section} = {}; - } - } - defined $config{$section} || croak("ERROR: unknown / no section '$section'\n"); - if ( m/(\w[\w\d]*)=(.*)/ ) { - my $var = $1; - my $val = $2; - # New style value strings may be surrounded by quotes - if ( $val =~ s/\s*(['"])(.*)\1\s*$/$2/ ) { - my $quote = $1; - # If and only if the value string is surrounded by quotes we - # can expect that \" or \' are escaped characters. In an unquoted - # old style value string they could mean exactly what is standing there - # - # Actually the RE above works without quoting the quote character - # (either " or ') inside the value string but users will probably - # expect that they need to be escaped if quotes are used. - # - # This is still not completly correct for all thinkable situations but - # should be good enough for all practical use cases. - $val =~ s/\\($quote)/$1/g; - } - $config{$section}->{$var} = $val; - # print "Set '$var' to '$val'\n"; - } - } - close ($fhandle) || croak("ERROR: Failed to close: $!"); - - $self->{_CONFIG_FILE} = \%config; -} - -sub parse_config_file -{ - my $self = shift; - - my $config_file; - # check for config files - if ( -e "$ENV{HOME}/.cwsrc" ) { - $self->read_config("$ENV{HOME}/.cwsrc"); - $self->{_GLOBAL} = 0; - } - elsif ( -e "$ENV{COMMON_ENV_TOOLS}/cwsrc" ) { - $self->read_config("$ENV{COMMON_ENV_TOOLS}/cwsrc"); - $self->{_GLOBAL} = 1; - } - else { - croak("ERROR: can't find CWS config file '\$HOME/.cwsrc'.\n"); - } -} - -sub sointernal -{ - my $self = shift; - my $config_file = $self->get_config_file(); - my $val = ($config_file->{CWS_CONFIG}->{"SO_INTERNAL"}) ? 1 : 0; - return $val; -} -1; # needed by "use" or "require" diff --git a/solenv/bin/modules/GenInfoParser.pm b/solenv/bin/modules/GenInfoParser.pm index 2671da13a69d..fdab7e44ff17 100644 --- a/solenv/bin/modules/GenInfoParser.pm +++ b/solenv/bin/modules/GenInfoParser.pm @@ -128,10 +128,7 @@ sub parse_list return 0 if ! -r $list_file; open(FILE, "<$list_file") or croak("can't open $list_file: $!"); - # my $t0 = new Benchmark; $self->parse_block(\*FILE, $self->{'DATA'}); - # my $t1 = new Benchmark; - # print STDERR "parsing $list_file took: ", timestr(timediff($t1, $t0)), "\n"; close(FILE); } diff --git a/solenv/bin/modules/RepositoryHelper.pm b/solenv/bin/modules/RepositoryHelper.pm index 8ea7996f6bc6..a3459c2bb575 100644 --- a/solenv/bin/modules/RepositoryHelper.pm +++ b/solenv/bin/modules/RepositoryHelper.pm @@ -118,8 +118,7 @@ sub search_for_hg { sub search_via_build_lst { my $self = shift; -# my @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names - my @possible_build_lists = ('build.lst'); # build lists names + my @possible_build_lists = ('gbuild.lst', 'build.lst'); # build lists names my $previous_dir = ''; my $rep_root_candidate = $self->{INITIAL_DIRECTORY}; do { @@ -136,7 +135,7 @@ sub search_via_build_lst { }; }; $previous_dir = $rep_root_candidate; - $rep_root_candidate = File::Basename::dirname(Cwd::realpath($rep_root_candidate)); + $rep_root_candidate = File::Basename::dirname($rep_root_candidate); return 0 if ((!$rep_root_candidate) || ($rep_root_candidate eq $previous_dir)); } while (chdir "$rep_root_candidate"); diff --git a/solenv/bin/modules/SourceConfig.pm b/solenv/bin/modules/SourceConfig.pm index e7b526e2cfca..5ca61b5c2c9f 100755..100644 --- a/solenv/bin/modules/SourceConfig.pm +++ b/solenv/bin/modules/SourceConfig.pm @@ -76,8 +76,16 @@ sub new { $source_root .= '/..'; } } else { - $source_root = $ENV{SOURCE_ROOT_DIR}; + $source_root = $ENV{SRC_ROOT}; }; + if ( defined $ENV{USE_GBUILD} and "$ENV{USE_GBUILD}" ne "" ) + { + $self->{POSSIBLE_BUILD_LIST} = ('gbuild.lst', 'build.lst', 'build.xlist'); # build lists names + } + else + { + $self->{POSSIBLE_BUILD_LIST} = ('build.lst', 'build.xlist'); # build lists names + } $source_root = Cwd::realpath($source_root); $self->{SOURCE_ROOT} = $source_root; $self->{DEBUG} = 0; @@ -94,6 +102,7 @@ sub new { $self->{REMOVE_REPOSITORIES} = {}; $self->{NEW_REPOSITORIES} = []; $self->{WARNINGS} = []; + $self->{GBUILD} = 0; $self->{REPORT_MESSAGES} = []; $self->{CONFIG_FILE_CONTENT} = []; if (defined $self->{USER_SOURCE_ROOT}) { @@ -173,11 +182,14 @@ sub get_module_build_list { if (defined ${$self->{MODULE_BUILD_LIST_PATHS}}{$module}) { return ${$self->{MODULE_BUILD_LIST_PATHS}}{$module}; } else { - my @possible_build_lists = ('build.lst', 'build.xlist'); # build lists names - foreach (@possible_build_lists) { - my $possible_path = ${$self->{MODULE_PATHS}}{$module} . "/prj/$_"; + my @possible_build_lists = $self->{POSSIBLE_BUILD_LIST}; # build lists names + foreach my $build_list (@possible_build_lists) { + my $possible_path = ${$self->{MODULE_PATHS}}{$module} . "/prj/$build_list"; if (-e $possible_path) { ${$self->{MODULE_BUILD_LIST_PATHS}}{$module} = $possible_path; + if ( $build_list eq "gbuild.lst" ) { + $self->{GBUILD} = 1; + }; return $possible_path; }; }; @@ -305,12 +317,6 @@ sub read_config_file { if (/\s*(\S+)=active\s*(\s+#)*/) { if ($repository_section) { my $repository_source_path = $self->{SOURCE_ROOT} . "/$1"; - if (defined $ENV{UPDMINOREXT}) { - $repository_source_path .= $ENV{UPDMINOREXT}; - if (defined ${$self->{REPOSITORIES}}{$1.$ENV{UPDMINOREXT}}) { - delete ${$self->{REPOSITORIES}}{$1.$ENV{UPDMINOREXT}}; - }; - }; ${$self->{REPOSITORIES}}{$1} = $repository_source_path; ${$self->{ACTIVATED_REPOSITORIES}}{$1}++; next; diff --git a/solenv/bin/modules/installer/archivefiles.pm b/solenv/bin/modules/installer/archivefiles.pm index e85903c699aa..af23ed21e3a6 100644 --- a/solenv/bin/modules/installer/archivefiles.pm +++ b/solenv/bin/modules/installer/archivefiles.pm @@ -36,6 +36,7 @@ use installer::globals; use installer::logger; use installer::pathanalyzer; use installer::systemactions; +use Cwd; ################################################################# # Changing the name for files with flag RENAME_TO_LANGUAGE @@ -87,7 +88,7 @@ sub get_patch_file_list $patchfilestring =~ s/^\s*\///; $patchfilestring =~ s/^\s*\\//; - my $patchfilesarray = installer::converter::convert_stringlist_into_array_without_linebreak_and_quotes(\$patchfilestring, ","); + my $patchfilesarray = installer::converter::convert_stringlist_into_array_without_newline(\$patchfilestring, ","); return $patchfilesarray; } @@ -241,9 +242,6 @@ sub resolving_archive_flag my $unzipdir; - # if ($iscommonfile) { $unzipdir = $commonunzipdirbase . $installer::globals::separator . $onelanguage . $installer::globals::separator; } - # else { $unzipdir = $platformunzipdirbase . $installer::globals::separator . $onelanguage . $installer::globals::separator; } - $unzipdir = $platformunzipdirbase . $installer::globals::separator . $onelanguage . $installer::globals::separator; installer::systemactions::create_directory($unzipdir); # creating language specific subdirectories @@ -264,10 +262,13 @@ sub resolving_archive_flag my $counter = 0; my $contains_dll = 0; + my @dllList = (); + my @dirs = (); foreach my $member ( $zip->memberNames() ) { $counter++; - if ( $member =~ /.dll\s*$/ ) { $contains_dll = 1; } + if ( $member =~ /.dll\s*$/i ) { $contains_dll = 1; push(@dllList, $member); } + if ( $member =~ m/\/$/ ) { push(@dirs, $member); } } if (! ( $counter > 0 )) # the zipfile is empty @@ -284,31 +285,34 @@ sub resolving_archive_flag if (( $^O =~ /cygwin/i ) && ( $contains_dll )) { - # Make dll's executable - $systemcall = "cd $unzipdir; find . -name \\*.dll -exec chmod 775 \{\} \\\;"; - $returnvalue = system($systemcall); - $infoline = "Systemcall: $systemcall\n"; + my $dir = getcwd(); + chdir($unzipdir); + my $changed = chmod(0775, @dllList); + $infoline = "Changed mode of $changed files (of ".scalar(@dllList).")\n"; push( @installer::globals::logfileinfo, $infoline); + chdir($dir); - if ($returnvalue) + if ($changed != scalar(@dllList)) { - $infoline = "ERROR: Could not execute \"$systemcall\"!\n"; + $infoline = "ERROR: Could not chmod all files!\n"; push( @installer::globals::logfileinfo, $infoline); } } - if ( ! $installer::globals::iswindowsbuild ) + if ( ! $installer::globals::iswindowsbuild && scalar(@dirs) > 0 ) { + my $dir = getcwd(); + chdir($unzipdir); # Setting unix rights to "775" for all created directories inside the package + my $changed = chmod(0775, @dirs); + $infoline = "Changed mode of : $changed; should be: ".scalar(@dirs)."\n"; + chdir($dir); - $systemcall = "cd $unzipdir; find . -type d -exec chmod 775 \{\} \\\;"; - $returnvalue = system($systemcall); - $infoline = "Systemcall: $systemcall\n"; push( @installer::globals::logfileinfo, $infoline); - if ($returnvalue) + if ($changed != scalar(@dirs)) { - $infoline = "ERROR: Could not execute \"$systemcall\"!\n"; + $infoline = "ERROR: Could not chmod all files!\n"; push( @installer::globals::logfileinfo, $infoline); } } @@ -411,13 +415,9 @@ sub resolving_archive_flag $newfile{'Styles'} =~ s/\,\s*\,/\,/; $newfile{'Styles'} =~ s/\(\s*\,/\(/; $newfile{'Styles'} =~ s/\,\s*\)/\)/; - # $infoline = "Removing PATCH flag from: $zipname\n"; - # push( @installer::globals::logfileinfo, $infoline); } else { - # $infoline = "Keeping PATCH flag at: $zipname\n"; - # push( @installer::globals::logfileinfo, $infoline); push( @keptpatchflags, $zipname); # collecting all PATCH flags } } diff --git a/solenv/bin/modules/installer/configuration.pm b/solenv/bin/modules/installer/configuration.pm index 4aa82d25b5b2..0fb587f68bb6 100644 --- a/solenv/bin/modules/installer/configuration.pm +++ b/solenv/bin/modules/installer/configuration.pm @@ -482,7 +482,6 @@ sub insert_into_config_file elsif ( $styles =~ /CFG_NUMERIC/ ) { $valuetype = "int"; } elsif ( $styles =~ /CFG_BOOLEAN/ ) { $valuetype = "boolean"; } elsif ( $styles =~ /CFG_STRINGLIST/ ) { $valuetype = "string-list"; } -# elsif ( $styles =~ /CFG_STRINGLIST/ ) { $valuetype = "string-list oor:separator=\"\|\""; } else { installer::exiter::exit_program("ERROR: Unknown configuration value type: $styles", "insert_into_config_file"); @@ -525,8 +524,8 @@ sub insert_into_config_file if (( $styles =~ /\bCREATE\b/ ) && (!($isbracketnode))) { - # my $typepart = 'oor:type="xs:VALUETYPE"'; # VALUETYPE can be "string", "boolean", ... - + # $typepart is 'oor:type="xs:VALUETYPE"'; + # VALUETYPE can be "string", "boolean", ... my $localtypepart = $typepart; $localtypepart =~ s/VALUETYPE/$valuetype/; @@ -552,8 +551,6 @@ sub insert_into_config_file # ToDo: Substituting the setup replace variables - # replace_setting_variables(); - $value =~ s/^\s*\<//; $value =~ s/\>\s*$//; @@ -577,14 +574,12 @@ sub insert_into_config_file if (!($oneconfig->{'isisocode'} )) # this is the simpe case { - # my $valueline = '<value SEPARATORPART>VALUECONTENT</value>' . "\n"; $newvalueline = $valueline; $newvalueline =~ s/VALUECONTENT/$value/g; $newvalueline =~ s/SEPARATORPART/$separatorpart/; } else { - # my $langvalueline = '<value xml:lang="SAVEDLANGUAGE">VALUECONTENT</value>' . "\n"; $newvalueline = $langvalueline; $newvalueline =~ s/VALUECONTENT/$value/; my $savedlanguage = $oneconfig->{'Key'}; diff --git a/solenv/bin/modules/installer/control.pm b/solenv/bin/modules/installer/control.pm index 20bc2efdcf4f..3f6b43f563fb 100644 --- a/solenv/bin/modules/installer/control.pm +++ b/solenv/bin/modules/installer/control.pm @@ -77,7 +77,6 @@ sub check_system_path { # The following files have to be found in the environment variable PATH # All platforms: zip - # Windows only: msvcp70.dll, msvcr70.dll for regcomp.exe # Windows only: "msiinfo.exe", "msidb.exe", "uuidgen.exe", "makecab.exe", "msitran.exe", "expand.exe" for msi database and packaging my $onefile; @@ -87,9 +86,14 @@ sub check_system_path if( $^O =~ /cygwin/i ) { # When using cygwin's perl the PATH variable is POSIX style and ... - $pathvariable = qx{cygpath -mp "$pathvariable"} ; + my $temparrayref = installer::converter::convert_stringlist_into_array_without_newline(\$pathvariable, $local_pathseparator); + foreach $i (0..$#$temparrayref) { + $$temparrayref[$i] = qx{cygpath -m "$$temparrayref[$i]"}; + chomp($$temparrayref[$i]); + } # has to be converted to DOS style for further use. $local_pathseparator = ';'; + $pathvariable = join($local_pathseparator, @$temparrayref); } my $patharrayref = installer::converter::convert_stringlist_into_array(\$pathvariable, $local_pathseparator); @@ -100,19 +104,6 @@ sub check_system_path if (($installer::globals::iswin) && ($installer::globals::iswindowsbuild)) { @needed_files_in_path = ("zip.exe", "msiinfo.exe", "msidb.exe", "uuidgen.exe", "makecab.exe", "msitran.exe", "expand.exe"); - - if ( $installer::globals::compiler eq "wntmsci8" ) - { - push(@needed_files_in_path, "msvcp70.dll"); - push(@needed_files_in_path, "msvcr70.dll"); - } - - if ( $installer::globals::compiler eq "wntmsci10" ) - { - push(@needed_files_in_path, "msvcp71.dll"); - push(@needed_files_in_path, "msvcr71.dll"); - } - } elsif ($installer::globals::iswin) { @@ -341,11 +332,11 @@ sub check_logfile # Errors are all errors, but not the Windows installer table "Error.idt" my $compareline = $line; - $compareline =~ s/Error\.idt//g; # removing all occurences of "Error.idt" - $compareline =~ s/Error\.mlf//g; # removing all occurences of "Error.mlf" - $compareline =~ s/Error\.ulf//g; # removing all occurences of "Error.ulf" - $compareline =~ s/Error\.idl//g; # removing all occurences of "Error.idl" - $compareline =~ s/Error\.html//g; # removing all occurences of "Error.html" + $compareline =~ s/Error\.idt//g; # removing all occurrences of "Error.idt" + $compareline =~ s/Error\.mlf//g; # removing all occurrences of "Error.mlf" + $compareline =~ s/Error\.ulf//g; # removing all occurrences of "Error.ulf" + $compareline =~ s/Error\.idl//g; # removing all occurrences of "Error.idl" + $compareline =~ s/Error\.html//g; # removing all occurrences of "Error.html" if ( $compareline =~ /\bError\b/i ) { @@ -364,7 +355,7 @@ sub check_logfile { my $line = "\n*********************************************************************\n"; push(@output, $line); - $line = "ERROR: The following errors occured in packaging process:\n\n"; + $line = "ERROR: The following errors occurred in packaging process:\n\n"; push(@output, $line); for ( my $i = 0; $i <= $#errors; $i++ ) @@ -375,7 +366,6 @@ sub check_logfile $line = "*********************************************************************\n"; push(@output, $line); -# exit(-1); } else { @@ -440,7 +430,6 @@ sub determine_ship_directory { my $number_of_languages = installer::systemactions::get_number_of_langs($languagestring); chomp(my $shorter = `echo $languagestring | md5sum | sed -e "s/ .*//g"`); - # $languagestring = $shorter; my $id = substr($shorter, 0, 8); # taking only the first 8 digits $languagestring = "lang_" . $number_of_languages . "_id_" . $id; } @@ -455,6 +444,7 @@ sub determine_ship_directory } if ( $installer::globals::languagepack ) { $productstring = $productstring . "_languagepack"; } + if ( $installer::globals::helppack ) { $productstring = $productstring . "_helppack"; } if ( $installer::globals::patch ) { $productstring = $productstring . "_patch"; } my $destdir = $shipdrive . $installer::globals::separator . $installer::globals::compiler . @@ -654,11 +644,6 @@ sub read_encodinglist $installer::globals::msiencoding = \%msiencoding; $installer::globals::msilanguage = \%msilanguage; - - # my $key; - # foreach $key (keys %{$installer::globals::msiencoding}) { print "A Key: $key : Value: $installer::globals::msiencoding->{$key}\n"; } - # foreach $key (keys %{$installer::globals::msilanguage}) { print "B Key: $key : Value: $installer::globals::msilanguage->{$key}\n"; } - } ############################################################# @@ -720,24 +705,6 @@ sub set_addchildprojects push( @installer::globals::globallogfileinfo, $infoline); } -#################################################################### -# Setting global variable "$installer::globals::addjavainstaller" -#################################################################### - -sub set_addjavainstaller -{ - my ($allvariables) = @_; - - if ( $allvariables->{'JAVAINSTALLER'} ) { $installer::globals::addjavainstaller = 1; } - - if ( $installer::globals::patch ) { $installer::globals::addjavainstaller = 0; } - if ( $installer::globals::languagepack ) { $installer::globals::addjavainstaller = 0; } - if ( $allvariableshashref->{'XPDINSTALLER'} ) { $installer::globals::addjavainstaller = 0; } - - my $infoline = "Value of \$installer::globals::addjavainstaller: $installer::globals::addjavainstaller\n"; - push( @installer::globals::globallogfileinfo, $infoline); -} - ####################################################################### # Setting global variable "$installer::globals::addsystemintegration" ####################################################################### @@ -750,6 +717,7 @@ sub set_addsystemintegration if ( $installer::globals::patch ) { $installer::globals::addsystemintegration = 0; } if ( $installer::globals::languagepack ) { $installer::globals::addsystemintegration = 0; } + if ( $installer::globals::helppack ) { $installer::globals::addsystemintegration = 0; } if (( $installer::globals::packageformat eq "native" ) || ( $installer::globals::packageformat eq "portable" )) { $installer::globals::addsystemintegration = 0; } my $infoline = "Value of \$installer::globals::addsystemintegration: $installer::globals::addsystemintegration\n"; diff --git a/solenv/bin/modules/installer/converter.pm b/solenv/bin/modules/installer/converter.pm index beeec52b71ac..53eb1081aa06 100644 --- a/solenv/bin/modules/installer/converter.pm +++ b/solenv/bin/modules/installer/converter.pm @@ -39,16 +39,10 @@ sub convert_array_to_hash my %newhash = (); - for ( my $i = 0; $i <= $#{$arrayref}; $i++ ) + for (@{$arrayref}) { - my $line = ${$arrayref}[$i]; - - if ( $line =~ /^\s*([\w-]+?)\s+(.*?)\s*$/ ) - { - my $key = $1; - my $value = $2; - $newhash{$key} = $value; - } + next unless /^\s*([\w-]+?)\s+(.*?)\s*$/; + $newhash{$1} = $2; } return \%newhash; @@ -58,44 +52,7 @@ sub convert_hash_into_array { my ($hashref) = @_; - my @array = (); - my $key; - - foreach $key (keys %{$hashref}) - { - my $value = $hashref->{$key}; - my $input = "$key = $value\n"; - push(@array ,$input); - } - - return \@array -} - -############################################################################# -# Converting a string list with separator $listseparator -# into an array -############################################################################# - -sub convert_stringlist_into_array_without_linebreak_and_quotes -{ - my ( $includestringref, $listseparator ) = @_; - - my @newarray = (); - my $first; - my $last = ${$includestringref}; - - while ( $last =~ /^\s*(.+?)\Q$listseparator\E(.+)\s*$/) # "$" for minimal matching - { - $first = $1; - $last = $2; - $first =~ s/\"//g; - push(@newarray, $first); - } - - $last =~ s/\"//g; - push(@newarray, $last); - - return \@newarray; + return [map { "$_ = $hashref->{$_}\n" } keys %{$hashref}]; } ############################################################################# @@ -107,22 +64,7 @@ sub convert_stringlist_into_array { my ( $includestringref, $listseparator ) = @_; - my @newarray = (); - my $first; - my $last = ${$includestringref}; - - while ( $last =~ /^\s*(.+?)\Q$listseparator\E(.+)\s*$/) # "$" for minimal matching - { - $first = $1; - $last = $2; - # Problem with two directly following listseparators. For example a path with two ";;" directly behind each other - $first =~ s/^$listseparator//; - push(@newarray, "$first\n"); - } - - push(@newarray, "$last\n"); - - return \@newarray; + return [map "$_\n", split /\Q$listseparator\E\s*/, ${$includestringref}]; } ############################################################################# @@ -134,20 +76,7 @@ sub convert_stringlist_into_array_without_newline { my ( $includestringref, $listseparator ) = @_; - my @newarray = (); - my $first; - my $last = ${$includestringref}; - - while ( $last =~ /^\s*(.+?)\Q$listseparator\E(.+)\s*$/) # "$" for minimal matching - { - $first = $1; - $last = $2; - push(@newarray, "$first"); - } - - push(@newarray, "$last"); - - return \@newarray; + return [split /\Q$listseparator\E\s*/, ${$includestringref}]; } ############################################################################# @@ -159,20 +88,7 @@ sub convert_stringlist_into_hash { my ( $includestringref, $listseparator ) = @_; - my %newhash = (); - my $first; - my $last = ${$includestringref}; - - while ( $last =~ /^\s*(.+?)\Q$listseparator\E(.+)\s*$/) # "$" for minimal matching - { - $first = $1; - $last = $2; - $newhash{$first} = 1; - } - - $newhash{$last} = 1; - - return \%newhash; + return {map {$_, 1} split /\Q$listseparator\E\s*/, ${$includestringref}}; } ############################################################################# @@ -184,20 +100,11 @@ sub convert_whitespace_stringlist_into_array { my ( $includestringref ) = @_; - my @newarray = (); - my $first; - my $last = ${$includestringref}; + my $tmp = ${$includestringref}; + $tmp = s/^\s+//; + $tmp = s/\s+$//; - while ( $last =~ /^\s*(\S+?)\s+(\S+)\s*$/) # "$" for minimal matching - { - $first = $1; - $last = $2; - push(@newarray, "$first\n"); - } - - push(@newarray, "$last\n"); - - return \@newarray; + return [map "$_\n", split /\s+/, $tmp]; } ############################################################################# @@ -208,16 +115,13 @@ sub convert_array_to_comma_separated_string { my ( $arrayref ) = @_; - my $newstring = ""; - - for ( my $i = 0; $i <= $#{$arrayref}; $i++ ) - { - my $arrayentry = ${$arrayref}[$i]; - $arrayentry =~ s/\s*$//; - $newstring = $newstring . $arrayentry . ","; + my $newstring; + for (@{$arrayref}) { + my $tmp = $_; + $tmp =~ s/\s+$//; + $newstring .= "$tmp,"; } - - $newstring =~ s/\,\s*$//; + $newstring =~ s/\,$//; return $newstring; } @@ -230,16 +134,13 @@ sub convert_array_to_space_separated_string { my ( $arrayref ) = @_; - my $newstring = ""; - - for ( my $i = 0; $i <= $#{$arrayref}; $i++ ) - { - my $arrayentry = ${$arrayref}[$i]; - $arrayentry =~ s/\s*$//; - $newstring = $newstring . $arrayentry . " "; + my $newstring; + for (@{$arrayref}) { + my $tmp = $_; + $tmp =~ s/\s+$//; + $newstring .= "$tmp "; } - - $newstring =~ s/\s*$//; + $newstring =~ s/ $//; return $newstring; } @@ -253,9 +154,8 @@ sub convert_slash_to_backslash { my ($filesarrayref) = @_; - for ( my $i = 0; $i <= $#{$filesarrayref}; $i++ ) + for my $onefile (@{$filesarrayref}) { - my $onefile = ${$filesarrayref}[$i]; if ( $onefile->{'Name'} ) { $onefile->{'Name'} =~ s/\//\\/g; } } } @@ -269,11 +169,7 @@ sub copy_item_object { my ($olditemhashref, $newitemhashref) = @_; - foreach $key (keys %{$olditemhashref}) - { - my $value = $olditemhashref->{$key}; - $newitemhashref->{$key} = $value; - } + $newitemhashref = {%{$olditemhashref}}; } ################################################################# @@ -286,18 +182,9 @@ sub copy_item_object sub make_path_conform { my ( $path ) = @_; + my $s = $installer::globals::separator; - my $oldpath = $path; - - while ( $path =~ /(^.*)(\Q$installer::globals::separator\E.*?[^\.])(\Q$installer::globals::separator\E\.\.)(\Q$installer::globals::separator\E.*$)/ ) - { - my $part1 = $1; - my $part2 = $4; - - # $2 must not end with a "." ! Problem with "..\.." - - $path = $part1 . $part2; - } + while ($path =~ s/[^\.\Q$s\E]+?\Q$s\E\.\.(?:\Q$s\E|$)//g) {} return $path; } @@ -309,61 +196,7 @@ sub make_path_conform sub copy_collector { - my ( $oldcollector ) = @_; - - my @newcollector = (); - - for ( my $i = 0; $i <= $#{$oldcollector}; $i++ ) - { - my %newhash = (); - my $key; - - foreach $key (keys %{${$oldcollector}[$i]}) - { - $newhash{$key} = ${$oldcollector}[$i]->{$key}; - } - - push(@newcollector, \%newhash); - } - - return \@newcollector; -} - -################################################################# -# Copying an array -################################################################# - -sub copy_array_from_references -{ - my ( $arrayref ) = @_; - - my @newarray = (); - - for ( my $i = 0; $i <= $#{$arrayref}; $i++ ) - { - push(@newarray, ${$arrayref}[$i]); - } - - return \@newarray; -} - -########################################################### -# Copying a hash -########################################################### - -sub copy_hash_from_references -{ - my ($hashref) = @_; - - my %newhash = (); - my $key; - - foreach $key (keys %{$hashref}) - { - $newhash{$key} = $hashref->{$key}; - } - - return \%newhash; + return [map { {%{$_}} } @{$_[0]}]; } ################################################################# @@ -376,41 +209,11 @@ sub combine_arrays_from_references_first_win my $hashref1 = convert_array_to_hash($arrayref1); my $hashref2 = convert_array_to_hash($arrayref2); - my %commonhash = (); - my @newarray = (); - - # starting with second hash - foreach my $key ( keys %{$hashref2} ) { $commonhash{$key} = $hashref2->{$key}; } - # overwriting with first hash - foreach my $key ( keys %{$hashref1} ) { $commonhash{$key} = $hashref1->{$key}; } - - # Creating the new array - foreach my $key ( keys %commonhash ) { push(@newarray, "$key $commonhash{$key}\n"); } - - return \@newarray; -} -################################################################# -# Combining two arrays -################################################################# - -sub combine_arrays_from_references -{ - my ( $arrayref1, $arrayref2 ) = @_; - - my @newarray = (); - - for ( my $i = 0; $i <= $#{$arrayref1}; $i++ ) - { - push(@newarray, ${$arrayref1}[$i]); - } - - for ( my $i = 0; $i <= $#{$arrayref2}; $i++ ) - { - push(@newarray, ${$arrayref2}[$i]); - } + # add key-value pairs from hash1 to hash2 (overwrites existing keys) + @{$hashref2}{keys %{$hashref1}} = values %{$hashref1}; - return \@newarray; + return [map { "$_ $hashref2->{$_}\n" } keys %{$hashref2}]; } ################################################################# @@ -453,9 +256,9 @@ sub resolve_masked_separator { my ($arrayref, $separator, $replacementstring) = @_; - for ( my $i = 0; $i <= $#{$arrayref}; $i++ ) + for (@{$arrayref}) { - ${$arrayref}[$i] =~ s/$replacementstring/$separator/g + s/$replacementstring/$separator/g; } } diff --git a/solenv/bin/modules/installer/copyproject.pm b/solenv/bin/modules/installer/copyproject.pm index 5db9cf7f8b04..8157db4983f8 100644 --- a/solenv/bin/modules/installer/copyproject.pm +++ b/solenv/bin/modules/installer/copyproject.pm @@ -32,7 +32,6 @@ use installer::converter; use installer::files; use installer::globals; use installer::logger; -use installer::mail; use installer::systemactions; use installer::worker; @@ -69,17 +68,14 @@ sub copy_project installer::systemactions::copy_one_file($source, $destination); - if ( $destination =~ /install\s*$/ ) + if ( $onefile->{'UnixRights'} ) { - my $localcall = "chmod 775 $destination \>\/dev\/null 2\>\&1"; - system($localcall); + chmod oct($onefile->{'UnixRights'}), $destination; } - - if ( $onefile->{'UnixRights'} ) + elsif ( $destination =~ /install\s*$/ ) { - my $localcall = "chmod $onefile->{'UnixRights'} $destination \>\/dev\/null 2\>\&1"; - system($localcall); - } + chmod 0775, $destination; + } } # copy ScpActions @@ -93,16 +89,13 @@ sub copy_project installer::systemactions::copy_one_file($source, $destination); - if ( $destination =~ /install\s*$/ ) + if ( $onefile->{'UnixRights'} ) { - my $localcall = "chmod 775 $destination \>\/dev\/null 2\>\&1"; - system($localcall); + chmod oct($onefile->{'UnixRights'}), $destination; } - - if ( $onefile->{'UnixRights'} ) + elsif ( $destination =~ /install\s*$/ ) { - my $localcall = "chmod $onefile->{'UnixRights'} $destination \>\/dev\/null 2\>\&1"; - system($localcall); + chmod 0775, $destination; } } diff --git a/solenv/bin/modules/installer/download.pm b/solenv/bin/modules/installer/download.pm index 34f228c791f7..604f7574cc95 100644 --- a/solenv/bin/modules/installer/download.pm +++ b/solenv/bin/modules/installer/download.pm @@ -118,8 +118,7 @@ sub save_script_file if ( ! $installer::globals::iswindowsbuild ) { - my $localcall = "chmod 775 $newscriptfilename \>\/dev\/null 2\>\&1"; - system($localcall); + chmod 0775, $newscriptfilename; } return $newscriptfilename; @@ -339,8 +338,7 @@ sub tar_package push( @installer::globals::logfileinfo, $infoline); } - my $localcall = "chmod 775 $tarfilename \>\/dev\/null 2\>\&1"; - $returnvalue = system($localcall); + chmod 0775, $tarfilename; return ( -s $tarfilename ); } @@ -422,6 +420,7 @@ sub get_installation_type my $type = ""; if ( $installer::globals::languagepack ) { $type = "langpack"; } + elsif ( $installer::globals::helppack ) { $type = "helppack"; } else { $type = "install"; } return $type; @@ -443,14 +442,6 @@ sub get_downloadname_language $languages =~ s/_en-US//; } - # en-US is default language and can be removed therefore - # for one-language installation sets - - # if ( $languages =~ /^\s*en-US\s*$/ ) - # { - # $languages = ""; - # } - if ( length ($languages) > $installer::globals::max_lang_length ) { $languages = 'multi'; @@ -467,25 +458,21 @@ sub get_downloadname_productname { my ($allvariables) = @_; - my $start = "OOo"; + my $start = "LibO"; - if ( $allvariables->{'PRODUCTNAME'} eq "OpenOffice.org" ) { $start = "OOo"; } + if ( $allvariables->{'PRODUCTNAME'} eq "LibreOffice" ) { $start = "LibO"; } - if ( $allvariables->{'PRODUCTNAME'} eq "OOo-dev" ) { $start = "OOo-Dev"; } + if ( $allvariables->{'PRODUCTNAME'} eq "LibO-dev" ) { $start = "LibO-Dev"; } - if (( $allvariables->{'PRODUCTNAME'} eq "OpenOffice.org" ) && ( $allvariables->{'POSTVERSIONEXTENSION'} eq "SDK" )) { $start = "OOo-SDK"; } + if (( $allvariables->{'PRODUCTNAME'} eq "LibreOffice" ) && ( $allvariables->{'POSTVERSIONEXTENSION'} eq "SDK" )) { $start = "LibO-SDK"; } - if (( $allvariables->{'PRODUCTNAME'} eq "OOo-dev" ) && ( $allvariables->{'POSTVERSIONEXTENSION'} eq "SDK" )) { $start = "OOo-Dev-SDK"; } + if (( $allvariables->{'PRODUCTNAME'} eq "LibO-dev" ) && ( $allvariables->{'POSTVERSIONEXTENSION'} eq "SDK" )) { $start = "LibO-Dev-SDK"; } - if ( $allvariables->{'PRODUCTNAME'} eq "URE" ) { $start = "OOo-URE"; } + if ( $allvariables->{'PRODUCTNAME'} eq "URE" ) { $start = "LibO-URE"; } - if ( $allvariables->{'PRODUCTNAME'} eq "BrOffice.org" ) { $start = "BrOo"; } + if ( $allvariables->{'PRODUCTNAME'} eq "OxygenOffice" ) { $start = "OOOP"; } - if ( $allvariables->{'PRODUCTNAME'} eq "BrOo-dev" ) { $start = "BrOo-Dev"; } - if (( $allvariables->{'PRODUCTNAME'} eq "BrOffice.org" ) && ( $allvariables->{'POSTVERSIONEXTENSION'} eq "SDK" )) { $start = "BrOo-SDK"; } - - if (( $allvariables->{'PRODUCTNAME'} eq "BrOo-dev" ) && ( $allvariables->{'POSTVERSIONEXTENSION'} eq "SDK" )) { $start = "BrOo-Dev-SDK"; } return $start; } @@ -592,7 +579,6 @@ sub get_download_platformname } else { - # $platformname = $installer::globals::packageformat; $platformname = $installer::globals::compiler; } @@ -657,12 +643,31 @@ sub get_install_type { $type = "langpack"; - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { $type = $type . "-rpm"; } - if ( $installer::globals::islinuxdebbuild ) + if ( $installer::globals::isdebbuild ) + { + $type = $type . "-deb"; + } + + if ( $installer::globals::packageformat eq "archive" ) + { + $type = $type . "-arc"; + } + } + elsif ( $installer::globals::helppack ) + { + $type = "helppack"; + + if ( $installer::globals::isrpmbuild ) + { + $type = $type . "-rpm"; + } + + if ( $installer::globals::isdebbuild ) { $type = $type . "-deb"; } @@ -676,12 +681,12 @@ sub get_install_type { $type = "install"; - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { $type = $type . "-rpm"; } - if ( $installer::globals::islinuxdebbuild ) + if ( $installer::globals::isdebbuild ) { $type = $type . "-deb"; } @@ -709,7 +714,7 @@ sub get_downloadname_addon { my $addon = ""; - if ( $installer::globals::islinuxdebbuild ) { $addon = $addon . "_deb"; } + if ( $installer::globals::isdebbuild ) { $addon = $addon . "_deb"; } if ( $installer::globals::product =~ /_wJRE\s*$/ ) { $addon = "_wJRE"; } @@ -753,7 +758,6 @@ sub get_current_version my $infoline = ""; my $versionstring = ""; my $filename = "version.info"; - # $filename = $installer::globals::ooouploaddir . $installer::globals::separator . $filename; if ( -f $filename ) { @@ -778,9 +782,7 @@ sub get_current_version ############################################################################################### # Setting the download file name # Syntax: -# (PRODUCTNAME)_(VERSION)_(TIMESTAMP)_(OS)_(ARCH)_(INSTALLTYPE)_(LANGUAGE).(FILEEXTENSION) -# Rules: -# Timestamp only for Beta and Release Candidate +# (PRODUCTNAME)_(VERSION)_(OS)_(ARCH)_(INSTALLTYPE)_(LANGUAGE).(FILEEXTENSION) ############################################################################################### sub set_download_filename @@ -789,7 +791,6 @@ sub set_download_filename my $start = get_downloadname_productname($allvariables); my $versionstring = get_download_version($allvariables); - my $date = set_date_string($allvariables); my $platform = get_download_platformname(); my $architecture = get_download_architecture(); my $type = get_install_type($allvariables); @@ -797,7 +798,7 @@ sub set_download_filename # Setting the extension happens automatically - my $filename = $start . "_" . $versionstring . "_" . $date . "_" . $platform . "_" . $architecture . "_" . $type . "_" . $language; + my $filename = $start . "_" . $versionstring . "_" . "_" . $platform . "_" . $architecture . "_" . $type . "_" . $language; $filename =~ s/\_\_/\_/g; # necessary, if $versionstring or $platform or $language are empty $filename =~ s/\_\s*$//; # necessary, if $language and $addon are empty @@ -986,16 +987,16 @@ sub put_windows_productname_into_template } ################################################################## -# Windows: Including the path to the banner.bmp into nsi template +# Windows: Substituting the path to a file into the nsi template ################################################################## -sub put_banner_bmp_into_template +sub substitute_path_into_template { - my ($templatefile, $includepatharrayref, $allvariables) = @_; + my ($templatefile, $includepatharrayref, $allvariables, $var, $subst) = @_; - # my $filename = "downloadbanner.bmp"; - if ( ! $allvariables->{'DOWNLOADBANNER'} ) { installer::exiter::exit_program("ERROR: DOWNLOADBANNER not defined in product definition!", "put_banner_bmp_into_template"); } - my $filename = $allvariables->{'DOWNLOADBANNER'}; + if ( ! $allvariables->{$var} ) { $var =~ s/_.*$//; } # _BR suffix ? + if ( ! $allvariables->{$var} ) { installer::exiter::exit_program("ERROR: $var not defined in product definition!", "substitute_path_into_template"); } + my $filename = $allvariables->{$var}; my $completefilenameref = ""; @@ -1008,125 +1009,24 @@ sub put_banner_bmp_into_template $completefilenameref = installer::scriptitems::get_sourcepath_from_filename_and_includepath_classic(\$filename, $includepatharrayref, 0); } - if ($$completefilenameref eq "") { installer::exiter::exit_program("ERROR: Could not find download file $filename!", "put_banner_bmp_into_template"); } + if ($$completefilenameref eq "") { installer::exiter::exit_program("ERROR: Could not find download file $filename!", "substitute_path_into_template"); } if ( $^O =~ /cygwin/i ) { $$completefilenameref =~ s/\//\\/g; } - replace_one_variable($templatefile, "BANNERBMPPLACEHOLDER", $$completefilenameref); + replace_one_variable($templatefile, $subst, $$completefilenameref); } ################################################################## -# Windows: Including the path to the welcome.bmp into nsi template +# Windows: substitute a variable into the nsi template ################################################################## - -sub put_welcome_bmp_into_template +sub substitute_variable_into_template($$$$) { - my ($templatefile, $includepatharrayref, $allvariables) = @_; - - # my $filename = "downloadbitmap.bmp"; - if ( ! $allvariables->{'DOWNLOADBITMAP'} ) { installer::exiter::exit_program("ERROR: DOWNLOADBITMAP not defined in product definition!", "put_welcome_bmp_into_template"); } - my $filename = $allvariables->{'DOWNLOADBITMAP'}; - - my $completefilenameref = ""; - - if ( $installer::globals::include_pathes_read ) - { - $completefilenameref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$filename, $includepatharrayref, 0); - } - else - { - $completefilenameref = installer::scriptitems::get_sourcepath_from_filename_and_includepath_classic(\$filename, $includepatharrayref, 0); - } + my ($templatefile, $variableshashref, $varname, $subst) = @_; - if ($$completefilenameref eq "") { installer::exiter::exit_program("ERROR: Could not find download file $filename!", "put_welcome_bmp_into_template"); } + my $var = ""; + if ( $variableshashref->{$varname} ) { $var = $variableshashref->{$varname}; } - if ( $^O =~ /cygwin/i ) { $$completefilenameref =~ s/\//\\/g; } - - replace_one_variable($templatefile, "WELCOMEBMPPLACEHOLDER", $$completefilenameref); -} - -################################################################## -# Windows: Including the path to the setup.ico into nsi template -################################################################## - -sub put_setup_ico_into_template -{ - my ($templatefile, $includepatharrayref, $allvariables) = @_; - - # my $filename = "downloadsetup.ico"; - if ( ! $allvariables->{'DOWNLOADSETUPICO'} ) { installer::exiter::exit_program("ERROR: DOWNLOADSETUPICO not defined in product definition!", "put_setup_ico_into_template"); } - my $filename = $allvariables->{'DOWNLOADSETUPICO'}; - - my $completefilenameref = ""; - - if ( $installer::globals::include_pathes_read ) - { - $completefilenameref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$filename, $includepatharrayref, 0); - } - else - { - $completefilenameref = installer::scriptitems::get_sourcepath_from_filename_and_includepath_classic(\$filename, $includepatharrayref, 0); - } - - if ($$completefilenameref eq "") { installer::exiter::exit_program("ERROR: Could not find download file $filename!", "put_setup_ico_into_template"); } - - if ( $^O =~ /cygwin/i ) { $$completefilenameref =~ s/\//\\/g; } - - replace_one_variable($templatefile, "SETUPICOPLACEHOLDER", $$completefilenameref); -} - -################################################################## -# Windows: Including the publisher into nsi template -################################################################## - -sub put_publisher_into_template -{ - my ($templatefile) = @_; - - my $publisher = "Sun Microsystems, Inc."; - - replace_one_variable($templatefile, "PUBLISHERPLACEHOLDER", $publisher); -} - -################################################################## -# Windows: Including the web site into nsi template -################################################################## - -sub put_website_into_template -{ - my ($templatefile) = @_; - - my $website = "http\:\/\/www\.sun\.com\/staroffice"; - - replace_one_variable($templatefile, "WEBSITEPLACEHOLDER", $website); -} - -################################################################## -# Windows: Including the Java file name into nsi template -################################################################## - -sub put_javafilename_into_template -{ - my ($templatefile, $variableshashref) = @_; - - my $javaversion = ""; - - if ( $variableshashref->{'WINDOWSJAVAFILENAME'} ) { $javaversion = $variableshashref->{'WINDOWSJAVAFILENAME'}; } - - replace_one_variable($templatefile, "WINDOWSJAVAFILENAMEPLACEHOLDER", $javaversion); -} - -################################################################## -# Windows: Including the product version into nsi template -################################################################## - -sub put_windows_productversion_into_template -{ - my ($templatefile, $variableshashref) = @_; - - my $productversion = $variableshashref->{'PRODUCTVERSION'}; - - replace_one_variable($templatefile, "PRODUCTVERSIONPLACEHOLDER", $productversion); + replace_one_variable($templatefile, $subst, $var); } ################################################################## @@ -1139,13 +1039,9 @@ sub put_windows_productpath_into_template my $productpath = $variableshashref->{'PROPERTYTABLEPRODUCTNAME'}; - my $locallangs = $$languagestringref; - $locallangs =~ s/_/ /g; if (length($locallangs) > $installer::globals::max_lang_length) { $locallangs = "multi lingual"; } - if ( ! $installer::globals::languagepack ) { $productpath = $productpath . " (" . $locallangs . ")"; } - - # if (( $installer::globals::languagepack ) && ( $installer::globals::unicodensis )) { $productpath = convert_textstring_to_utf16($productpath, $localnsisdir, "stringhelper.txt"); } + if ( ! $installer::globals::languagepack || ! $installer::globals::helppack ) { $productpath = $productpath . " (" . sprintf('%x', time()) . ")"; } replace_one_variable($templatefile, "PRODUCTPATHPLACEHOLDER", $productpath); } @@ -1295,14 +1191,12 @@ sub nsis_language_converter elsif ( $language eq "ja" ) { $nsislanguage = "Japanese"; } elsif ( $language eq "ko" ) { $nsislanguage = "Korean"; } elsif ( $language eq "th" ) { $nsislanguage = "Thai"; } - elsif ( $language eq "vi" ) { $nsislanguage = "Vietnamese"; } elsif ( $language eq "zh-CN" ) { $nsislanguage = "SimpChinese"; } elsif ( $language eq "zh-TW" ) { $nsislanguage = "TradChinese"; } else { my $infoline = "NSIS language_converter : Could not find nsis language for $language!\n"; push( @installer::globals::logfileinfo, $infoline); $nsislanguage = "English"; - # installer::exiter::exit_program("ERROR: Could not find nsis language for $language!", "nsis_language_converter"); } return $nsislanguage; @@ -1442,7 +1336,7 @@ sub get_language_string_from_language_block ################################################################## # Windows: Replacing strings in NSIS nsh file # nsh file syntax: -# !define MUI_TEXT_DIRECTORY_TITLE "Zielverzeichnis auswählen" +# !define MUI_TEXT_DIRECTORY_TITLE "Zielverzeichnis ausw�hlen" ################################################################## sub replace_identifier_in_nshfile @@ -1531,8 +1425,6 @@ sub convert_utf16_to_utf8 my $savfilename = $filename . "_before.utf16"; installer::systemactions::copy_one_file($filename, $savfilename); -# open( IN, "<:utf16", $filename ) || installer::exiter::exit_program("ERROR: Cannot open file $filename for reading", "convert_utf16_to_utf8"); -# open( IN, "<:para:crlf:uni", $filename ) || installer::exiter::exit_program("ERROR: Cannot open file $filename for reading", "convert_utf16_to_utf8"); open( IN, "<:encoding(UTF16-LE)", $filename ) || installer::exiter::exit_program("ERROR: Cannot open file $filename for reading", "convert_utf16_to_utf8"); while ( $line = <IN> ) { push @localfile, $line; @@ -1757,12 +1649,6 @@ sub get_path_to_nsis_sdk $nsispath = $ENV{'NSISSDK_SOURCE'}; # overriding the NSIS SDK with NSISSDK_SOURCE } -# if( ($^O =~ /cygwin/i) and $nsispath =~ /\\/ ) { -# # We need a POSIX path for W32-4nt-cygwin-perl -# $nsispath =~ s/\\/\\\\/g; -# chomp( $nsispath = qx{cygpath -u "$nsispath"} ); -# } - if ( $nsispath eq "" ) { installer::logger::print_message( "... no Environment variable \"SOLARROOT\", \"NSIS_PATH\" or \"NSISSDK_SOURCE\" found and NSIS not found in path!", "get_path_to_nsis_sdk"); @@ -1788,7 +1674,7 @@ sub call_nsis if( $^O =~ /cygwin/i ) { $nsifile =~ s/\\/\//g; } - my $systemcall = "$makensisexe $nsifile |"; + my $systemcall = "$makensisexe /V4 /DMUI_VERBOSE=4 $nsifile |"; my $infoline = "Systemcall: $systemcall\n"; push( @installer::globals::logfileinfo, $infoline); @@ -1838,7 +1724,8 @@ sub replace_variables { my ($translationfile, $variableshashref) = @_; - foreach $key (keys %{$variableshashref}) + # we want to substitute FOO_BR before FOO to avoid floating _BR suffixes + foreach $key (sort { length ($b) <=> length ($a) } keys %{$variableshashref}) { my $value = $variableshashref->{$key}; @@ -1877,9 +1764,6 @@ sub remove_english_for_nsis_installer { my ($languagestringref, $languagesarrayref) = @_; - # $$languagestringref =~ s/en-US_//; - # shift(@{$languagesarrayref}); - @{$languagesarrayref} = ("en-US"); # only english for NSIS installer! } @@ -1891,7 +1775,7 @@ sub create_link_tree { my ($sourcedownloadfile, $destfilename, $versionstring) = @_; - if ( ! $installer::globals::ooouploaddir ) { installer::exiter::exit_program("ERROR: Directory for OOo upload not defined!", "create_link_tree"); } + if ( ! $installer::globals::ooouploaddir ) { installer::exiter::exit_program("ERROR: Directory for LO upload not defined!", "create_link_tree"); } my $versiondir = $installer::globals::ooouploaddir . $installer::globals::separator . $versionstring; my $infoline = "Directory for the link: $versiondir\n"; push(@installer::globals::logfileinfo, $infoline); @@ -1910,7 +1794,7 @@ sub create_link_tree } ####################################################### -# Setting supported platform for Sun OpenOffice.org +# Setting supported platform for LibreOffice # builds ####################################################### @@ -1918,7 +1802,7 @@ sub is_supported_platform { my $is_supported = 0; - if (( $installer::globals::islinuxrpmbuild ) || + if (( $installer::globals::isrpmbuild ) || ( $installer::globals::issolarissparcbuild ) || ( $installer::globals::issolarisx86build ) || ( $installer::globals::iswindowsbuild )) @@ -1955,7 +1839,7 @@ sub create_download_sets my $lastdir = $installationdir; installer::pathanalyzer::make_absolute_filename_to_relative_filename(\$lastdir); - if ( $lastdir =~ /\./ ) { $lastdir =~ s/\./_download_inprogress\./ } + if ( $installer::globals::iswindowsbuild && $lastdir =~ /\./ ) { $lastdir =~ s/\./_download_inprogress\./ } else { $lastdir = $lastdir . "_download_inprogress"; } # removing existing directory "_native_packed_inprogress" and "_native_packed_witherror" and "_native_packed" @@ -2081,13 +1965,27 @@ sub create_download_sets # add product name into script template put_windows_productname_into_template($templatefile, $allvariableshashref); - put_banner_bmp_into_template($templatefile, $includepatharrayref, $allvariableshashref); - put_welcome_bmp_into_template($templatefile, $includepatharrayref, $allvariableshashref); - put_setup_ico_into_template($templatefile, $includepatharrayref, $allvariableshashref); - put_publisher_into_template($templatefile); - put_website_into_template($templatefile); - put_javafilename_into_template($templatefile, $allvariableshashref); - put_windows_productversion_into_template($templatefile, $allvariableshashref); + @path_substs = ( + 'DOWNLOADBANNER' => 'BANNERBMPPLACEHOLDER', + 'DOWNLOADBITMAP' => 'WELCOMEBMPPLACEHOLDER', + 'DOWNLOADSETUPICO' => 'SETUPICOPLACEHOLDER' + ); + while (@path_substs) { + my $var= shift @path_substs; + my $val = shift @path_substs; + substitute_path_into_template($templatefile, $includepatharrayref, + $allvariableshashref, $var, $val); + } + %var_substs = ( + 'OOOVENDOR' => 'PUBLISHERPLACEHOLDER', + 'STARTCENTER_INFO_URL' => 'WEBSITEPLACEHOLDER', + 'WINDOWSJAVAFILENAME' => 'WINDOWSJAVAFILENAMEPLACEHOLDER', + 'PRODUCTVERSION' => 'PRODUCTVERSIONPLACEHOLDER' + ); + for $var (keys %var_substs) { + substitute_variable_into_template($templatefile, $allvariableshashref, + $var, $var_substs{$var}); + } put_windows_productpath_into_template($templatefile, $allvariableshashref, $languagestringref, $localnsisdir); put_outputfilename_into_template($templatefile, $downloadname); put_filelist_into_template($templatefile, $installationdir); @@ -2108,7 +2006,7 @@ sub create_download_sets } #################################################### -# Creating OOo upload tree +# Creating LO upload tree #################################################### sub create_download_link_tree @@ -2157,9 +2055,6 @@ sub create_download_link_tree push( @installer::globals::logfileinfo, $infoline); create_link_tree($sourcedownloadfile, $destdownloadfilename, $versionstring); - # my $md5sumoutput = call_md5sum($downloadfile); - # my $md5sum = get_md5sum($md5sumoutput); - } } else diff --git a/solenv/bin/modules/installer/downloadsigner.pm b/solenv/bin/modules/installer/downloadsigner.pm index aa3bbb25a484..8a63242e0685 100644 --- a/solenv/bin/modules/installer/downloadsigner.pm +++ b/solenv/bin/modules/installer/downloadsigner.pm @@ -91,8 +91,6 @@ Ende sub getparameter { - # installer::logger::print_message("Checking parameter"); - while ( $#ARGV >= 0 ) { my $param = shift(@ARGV); @@ -347,7 +345,6 @@ sub check_cws_build my $iscws = 1; if ( $filename =~ /follow_me_\d+_/ ) { $iscws = 0; } - # if ( $filename =~ /log_\d+_/ ) { $iscws = 0; } return $iscws; } @@ -414,6 +411,11 @@ sub filter_all_files_with_correct_settings my $workstamp = ""; if ( $ENV{'WORK_STAMP'} ) { $workstamp = $ENV{'WORK_STAMP'}; } + + # This is broken, we don't want to support any UPDMINOR + # complexities in LibreOffice. (Or do we?) This needs updating if + # we want to actually use this file for signing. + if ( $ENV{'UPDMINOR'} ) { $minor = $ENV{'UPDMINOR'}; } if ( $minor eq "" ) { installer::exiter::exit_program("ERROR: Environment variable \"UPDMINOR\" not set!", "filter_all_files_with_correct_settings"); } diff --git a/solenv/bin/modules/installer/environment.pm b/solenv/bin/modules/installer/environment.pm index c0d166081032..c80d8375f3c2 100644 --- a/solenv/bin/modules/installer/environment.pm +++ b/solenv/bin/modules/installer/environment.pm @@ -47,7 +47,6 @@ sub create_pathvariables $variables{'solarpath'} = $solarpath; my $solarcommonpath = $environment->{'SOLARVERSION'} . $installer::globals::separator . "common" . $installer::globals::productextension; - # my $solarcommonpath = $environment->{'SOLARVERSION'} . $installer::globals::separator . $environment->{'COMMON_OUTDIR'} . $installer::globals::productextension; $variables{'solarcommonpath'} = $solarcommonpath; my $osdef = lc($environment->{'GUI'}); @@ -110,10 +109,8 @@ sub set_global_environment_variables my ( $environment ) = @_; $installer::globals::build = $environment->{'WORK_STAMP'}; - # $installer::globals::minor = $environment->{'UPDMINOR'}; $installer::globals::compiler = $environment->{'OUTPATH'}; - if ( $ENV{'UPDMINOR'} ) { $installer::globals::minor = $ENV{'UPDMINOR'}; } if ( $ENV{'LAST_MINOR'} ) { $installer::globals::lastminor = $ENV{'LAST_MINOR'}; } if ( $ENV{'PROEXT'} ) { $installer::globals::pro = 1; } diff --git a/solenv/bin/modules/installer/epmfile.pm b/solenv/bin/modules/installer/epmfile.pm index 119eb95e0b7c..682967ed0647 100644 --- a/solenv/bin/modules/installer/epmfile.pm +++ b/solenv/bin/modules/installer/epmfile.pm @@ -228,14 +228,10 @@ sub put_directories_into_epmfile if ( $onedir->{'Dir'} ) { $dir = $onedir->{'Dir'}; } - # if (!($dir =~ /\bPREDEFINED_/ )) if ((!($dir =~ /\bPREDEFINED_/ )) || ( $dir =~ /\bPREDEFINED_PROGDIR\b/ )) { my $hostname = $onedir->{'HostName'}; - # not including simple directory "/opt" - # if (( $allvariables->{'SETSTATICPATH'} ) && ( $hostname eq $packagerootpath )) { next; } - my $line = "d 755 root $group $hostname -\n"; push(@{$epmfileref}, $line) @@ -322,7 +318,7 @@ sub create_epm_header my @epmheader = (); - my ($licensefilename, $readmefilename); + my ($licensefilename, $readmefilename, $readmefilenameen); my $foundlicensefile = 0; my $foundreadmefile = 0; @@ -330,11 +326,11 @@ sub create_epm_header my $line = ""; my $infoline = ""; - # %product OpenOffice.org Software + # %product LibreOffice Software # %version 2.0 # %description A really great software # %copyright 1999-2003 by OOo - # %vendor OpenOffice.org + # %vendor LibreOffice # %license /test/replace/01/LICENSE01 # %readme /test/replace/01/README01 # %requires foo @@ -356,7 +352,6 @@ sub create_epm_header # Determining the release version # This release version has to be listed in the line %version : %version versionnumber releasenumber - # if ( $variableshashref->{'PACKAGEVERSION'} ) { $installer::globals::packageversion = $variableshashref->{'PACKAGEVERSION'}; } if ( ! $onepackage->{'packageversion'} ) { installer::exiter::exit_program("ERROR: No packageversion defined for package: $onepackage->{'module'}!", "create_epm_header"); } $installer::globals::packageversion = $onepackage->{'packageversion'}; installer::packagelist::resolve_packagevariables(\$installer::globals::packageversion, $variableshashref, 0); @@ -366,7 +361,7 @@ sub create_epm_header push(@epmheader, $line); $line = "%release" . " " . $installer::globals::packagerevision . "\n"; - if ( $installer::globals::islinuxrpmbuild ) { $line = "%release" . " " . $installer::globals::buildid . "\n"; } + if ( $installer::globals::isrpmbuild ) { $line = "%release" . " " . $installer::globals::buildid . "\n"; } push(@epmheader, $line); # Description, Copyright and Vendor are multilingual and are defined in @@ -393,24 +388,27 @@ sub create_epm_header { $licensefilename = "license.txt"; $readmefilename = "readme.txt"; + $readmefilenameen = "readme_en-US.txt"; } else { $licensefilename = "LICENSE"; $readmefilename = "README"; + $readmefilenameen = "README_en-US"; } - if (( $installer::globals::languagepack ) # in language packs the files LICENSE and README are removed, because they are not language specific + if (( $installer::globals::languagepack ) # in language packs and help packs the files LICENSE and README are removed, because they are not language specific + || ( $installer::globals::helppack ) || ( $variableshashref->{'NO_README_IN_ROOTDIR'} )) { if ( $installer::globals::iswindowsbuild ) { - $licensefilename = "license_$searchlanguage.txt"; + $licensefilename = "license.txt"; # _$searchlanguage.txt"; $readmefilename = "readme_$searchlanguage.txt"; } else { - $licensefilename = "LICENSE_$searchlanguage"; + $licensefilename = "LICENSE"; # _$searchlanguage"; $readmefilename = "README_$searchlanguage"; } } @@ -437,18 +435,41 @@ sub create_epm_header $license_in_package_defined = 1; } } - # searching for and readme file - for ( my $i = 0; $i <= $#{$filesinproduct}; $i++ ) + # searching for and readme file; + # URE uses special README; others use README_en-US + # it does not matter which one is passed for epm if both are packaged + foreach my $possiblereadmefilename ($readmefilenameen, $readmefilename) + { + last if ($foundreadmefile); + for ( my $i = 0; $i <= $#{$filesinproduct}; $i++ ) + { + my $onefile = ${$filesinproduct}[$i]; + my $filename = $onefile->{'Name'}; + if ( $filename eq $possiblereadmefilename ) + { + $foundreadmefile = 1; + $line = "%readme" . " " . $onefile->{'sourcepath'} . "\n"; + push(@epmheader, $line); + last; + } + } + } + + # the readme file need not be packaged more times in the help content + # it needs to be installed in parallel with the main package anyway + # try to find the README file between all available files (not only between the packaged) + if (!($foundreadmefile) && $installer::globals::helppack) { - my $onefile = ${$filesinproduct}[$i]; - my $filename = $onefile->{'Name'}; - if ( $filename eq $readmefilename ) + my $fileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$readmefilenameen, "" , 0); + if($$fileref ne "" ) { + $infoline = "Fallback to readme file: \"$$fileref\"!\n"; + push(@installer::globals::logfileinfo, $infoline); + $foundreadmefile = 1; - $line = "%readme" . " " . $onefile->{'sourcepath'} . "\n"; + $line = "%readme" . " " . $$fileref . "\n"; push(@epmheader, $line); - last; } } @@ -507,6 +528,23 @@ sub create_epm_header last; } } + + # the license file need not be packaged more times in the langpacks + # they need to be installed in parallel with the main package anyway + # try to find the LICENSE file between all available files (not only between the packaged) + if (!($foundlicensefile) && ($installer::globals::languagepack || $installer::globals::helppack)) + { + my $fileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$licensefilename, "" , 0); + if($$fileref ne "" ) + { + $infoline = "Fallback to license file: \"$$fileref\"!\n"; + push(@installer::globals::logfileinfo, $infoline); + + $foundlicensefile = 1; + $line = "%license" . " " . $$fileref . "\n"; + push(@epmheader, $line); + } + } } if (!($foundlicensefile)) @@ -560,11 +598,11 @@ sub create_epm_header } } - if ( $installer::globals::debian && $variableshashref->{'UNIXPRODUCTNAME'} eq 'openoffice.org' ) + if ( $installer::globals::debian && $variableshashref->{'UNIXPRODUCTNAME'} eq 'libreoffice' ) { - $line = "%provides" . " openoffice.org-unbundled\n"; + $line = "%provides" . " libreoffice-unbundled\n"; push(@epmheader, $line); - $line = "%incompat" . " openoffice.org-bundled\n"; + $line = "%incompat" . " libreoffice-bundled\n"; push(@epmheader, $line); } } @@ -585,7 +623,7 @@ sub create_epm_header $provides = "freebsdprovides"; # the name in the packagelist $requires = "freebsdrequires"; # the name in the packagelist } - elsif (( $installer::globals::islinuxrpmbuild ) && + elsif (( $installer::globals::isrpmbuild ) && ( $installer::globals::patch ) && ( exists($onepackage->{'linuxpatchrequires'}) )) { @@ -598,15 +636,9 @@ sub create_epm_header $requires = "requires"; # the name in the packagelist } - # if ( $installer::globals::patch ) - # { - # $onepackage->{$provides} = ""; my $isdict = 0; if ( $onepackage->{'packagename'} =~ /-dict-/ ) { $isdict = 1; } - # $onepackage->{$requires} = ""; - # } - if ( $onepackage->{$provides} ) { my $providesstring = $onepackage->{$provides}; @@ -649,19 +681,6 @@ sub create_epm_header $onerequires =~ s/\s*$//; installer::packagelist::resolve_packagevariables2(\$onerequires, $variableshashref, 0, $isdict); - # Special handling for Solaris. In depend files, the names of the packages are required, not - # only the abbreviation. Therefore there is a special syntax for names in packagelist: - # solarisrequires = "SUNWcar (Name="Package name of SUNWcar"),SUNWkvm (Name="Package name of SUNWcar"), ... - # if ( $installer::globals::issolarispkgbuild ) - # { - # if ( $onerequires =~ /^\s*(.*?)\s+\(\s*Name\s*=\s*\"(.*?)\"\s*\)\s*$/ ) - # { - # $onerequires = $1; - # $packagename = $2; - # $installer::globals::dependfilenames{$onerequires} = $packagename; - # } - # } - $line = "%requires" . " " . $onerequires . "\n"; push(@epmheader, $line); } @@ -683,19 +702,6 @@ sub create_epm_header $onerequires =~ s/\s*$//; installer::packagelist::resolve_packagevariables(\$onerequires, $variableshashref, 0); - # Special handling for Solaris. In depend files, the names of the packages are required, not - # only the abbreviation. Therefore there is a special syntax for names in packagelist: - # solarisrequires = "SUNWcar (Name="Package name of SUNWcar"),SUNWkvm (Name="Package name of SUNWcar"), ... - # if ( $installer::globals::issolarispkgbuild ) - # { - # if ( $onerequires =~ /^\s*(.*?)\s+\(\s*Name\s*=\s*\"(.*?)\"\s*\)\s*$/ ) - # { - # $onerequires = $1; - # $packagename = $2; - # $installer::globals::dependfilenames{$onerequires} = $packagename; - # } - # } - $line = "%requires" . " " . $onerequires . "\n"; push(@epmheader, $line); } @@ -762,8 +768,6 @@ sub replace_many_variables_in_shellscripts foreach $key (keys %{$variableshashref}) { my $value = $variableshashref->{$key}; - # $value = lc($value); # lowercase ! - # if ( $installer::globals::issolarisbuild) { $value =~ s/\.org/org/g; } # openofficeorg instead of openoffice.org replace_variable_in_shellscripts($scriptref, $value, $key); } } @@ -776,8 +780,6 @@ sub adding_shellscripts_to_epm_file { my ($epmfileref, $shellscriptsfilename, $localrootpath, $allvariableshashref, $filesinpackage) = @_; - # $installer::globals::shellscriptsfilename - push( @{$epmfileref}, "\n\n" ); my $shellscriptsfileref = installer::files::read_file($shellscriptsfilename); @@ -880,7 +882,7 @@ sub set_patch_state push( @installer::globals::logfileinfo, $infoline); } - if ( ( $installer::globals::is_special_epm ) && (($installer::globals::islinuxrpmbuild) || ($installer::globals::issolarispkgbuild)) ) + if ( ( $installer::globals::is_special_epm ) && (($installer::globals::isrpmbuild) || ($installer::globals::issolarispkgbuild)) ) { # Special postprocess handling only for Linux RPM and Solaris packages $installer::globals::postprocess_specialepm = 1; @@ -994,7 +996,7 @@ sub add_one_line_into_file push(@{$file}, $insertline); # simply adding at the end of pkginfo file } - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { # Adding behind the line beginning with: Group: @@ -1080,8 +1082,6 @@ sub set_revision_in_pkginfo my $finalminor = $minor; my $finalmicro = 0; - # if (( $packagename =~ /-ure\s*$/ ) && ( $finalmajor == 1 )) { $finalminor = 4; } - $version = "$finalmajor.$finalminor.$finalmicro"; } @@ -1326,7 +1326,6 @@ sub set_topdir_in_specfile { my ($changefile, $filename, $newepmdir) = @_; - # $newepmdir =~ s/^\s*\.//; # removing leading "." $newepmdir = cwd() . $installer::globals::separator . $newepmdir; # only absolute path allowed # removing "%define _topdir", if existing @@ -1695,7 +1694,7 @@ sub set_tab_into_datafile $newclassesstring = installer::converter::convert_array_to_space_separated_string(\@newclasses); } - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { for ( my $i = 0; $i <= $#{$filesref}; $i++ ) { @@ -1927,11 +1926,6 @@ sub include_patchinfos_into_pkginfo } $newline = "SUNW_PATCH_PROPERTIES=\n"; add_one_line_into_file($changefile, $newline, $filename); - # $newline = "SUNW_PKGTYPE=usr\n"; - # add_one_line_into_file($changefile, $newline, $filename); - - # $newline = "SUNW_PKGVERS=1.0\n"; - # add_one_line_into_file($changefile, $newline, $filename); } ############################################################ @@ -2019,7 +2013,7 @@ sub collect_patch_files { my $line = ${$file}[$i]; - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { # %attr(0444,root,root) "/opt/openofficeorg20/program/about.bmp" @@ -2109,9 +2103,8 @@ sub prepare_packages $newline = "BASEDIR\=" . $localrelocatablepath . "\n"; } - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { - # if ( $localrelocatablepath =~ /^\s*$/ ) { $localrelocatablepath = "/"; }; # at least the "/" $filename = $packagename . ".spec"; $newline = "Prefix\:\ " . $localrelocatablepath . "\n"; } @@ -2126,12 +2119,9 @@ sub prepare_packages installer::files::save_file($completefilename, $changefile); } - # my $newepmdir = $completefilename; - # installer::pathanalyzer::get_path_from_fullqualifiedname(\$newepmdir); - # adding new "topdir" and removing old "topdir" in specfile - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { set_topdir_in_specfile($changefile, $filename, $newepmdir); set_autoprovreq_in_specfile($changefile, $onepackage->{'findrequires'}, "$installer::globals::unpackpath" . "/bin"); @@ -2139,7 +2129,6 @@ sub prepare_packages if ( is_extension_package($changefile) ) { set_prereq_in_specfile($changefile); } set_license_in_specfile($changefile, $variableshashref); set_tab_into_datafile($changefile, $filesref); - # check_requirements_in_specfile($changefile); installer::files::save_file($completefilename, $changefile); if ( $installer::globals::patch ) { collect_patch_files($changefile, $packagename, $localrelocatablepath); } } @@ -2253,7 +2242,6 @@ sub determine_rpm_version my $rpmout = ""; my $systemcall = ""; - # my $systemcall = "rpm --version |"; # "rpm --version" has problems since LD_LIBRARY_PATH was removed. Therefore the content of $RPM has to be called. # "rpm --version" and "rpmbuild --version" have the same output. Therefore $RPM can be used. Its value # is saved in $installer::globals::rpm @@ -2362,7 +2350,6 @@ sub create_packages_without_epm installer::pathanalyzer::get_path_from_fullqualifiedname(\$destinationdir); $destinationdir =~ s/\/\s*$//; # removing ending slashes - # my $systemcall = "pkgmk -o -f $prototypefile -d $destinationdir \> /dev/null 2\>\&1"; my $systemcall = "pkgmk -l 1073741824 -o -f $prototypefile -d $destinationdir 2\>\&1 |"; installer::logger::print_message( "... $systemcall ...\n" ); @@ -2429,7 +2416,7 @@ sub create_packages_without_epm # Setting unix rights to "775" for all created directories inside the package, # that is saved in temp directory - $systemcall = "cd $packagestempdir; find $packagename -type d -exec chmod 775 \{\} \\\;"; + $systemcall = "cd $packagestempdir; find $packagename -type d | xargs -i chmod 775 \{\} \;"; installer::logger::print_message( "... $systemcall ...\n" ); $returnvalue = system($systemcall); @@ -2492,7 +2479,7 @@ sub create_packages_without_epm # Setting unix rights to "775" for all created directories inside the package - $systemcall = "cd $destinationdir; find $packagename -type d -exec chmod 775 \{\} \\\;"; + $systemcall = "cd $destinationdir; find $packagename -type d | xargs -i chmod 775 \{\} \;"; installer::logger::print_message( "... $systemcall ...\n" ); $returnvalue = system($systemcall); @@ -2511,6 +2498,7 @@ sub create_packages_without_epm push( @installer::globals::logfileinfo, $infoline); } + ###################### # making pkg files ###################### @@ -2526,13 +2514,13 @@ sub create_packages_without_epm # if ($returnvalue) # { - # $infoline = "ERROR: Could not execute \"$systemcall\"!\n"; - # push( @installer::globals::logfileinfo, $infoline); + # $infoline = "ERROR: Could not execute \"$systemcall\"!\n"; + # push( @installer::globals::logfileinfo, $infoline); # } # else # { - # $infoline = "Success: Executed \"$systemcall\" successfully!\n"; - # push( @installer::globals::logfileinfo, $infoline); + # $infoline = "Success: Executed \"$systemcall\" successfully!\n"; + # push( @installer::globals::logfileinfo, $infoline); # } ######################### @@ -2550,35 +2538,34 @@ sub create_packages_without_epm # if ($returnvalue) # { - # $infoline = "ERROR: Could not execute \"$systemcall\"!\n"; - # push( @installer::globals::logfileinfo, $infoline); + # $infoline = "ERROR: Could not execute \"$systemcall\"!\n"; + # push( @installer::globals::logfileinfo, $infoline); # } # else # { - # $infoline = "Success: Executed \"$systemcall\" successfully!\n"; - # push( @installer::globals::logfileinfo, $infoline); + # $infoline = "Success: Executed \"$systemcall\" successfully!\n"; + # push( @installer::globals::logfileinfo, $infoline); # } + } # Linux: rpm -bb so8m35.spec ( -> dependency check abklemmen? ) - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { my $specfilename = $epmdir . $packagename . ".spec"; if (! -f $specfilename) { installer::exiter::exit_program("ERROR: Did not find file: $specfilename", "create_packages_without_epm"); } - # my $rpmcommand = "rpm"; my $rpmcommand = $installer::globals::rpm; my $rpmversion = determine_rpm_version(); - # if ( $rpmversion >= 4 ) { $rpmcommand = "rpmbuild"; } - # saving globally for later usage $installer::globals::rpmcommand = $rpmcommand; $installer::globals::rpmquerycommand = "rpm"; my $target = ""; if ( $installer::globals::compiler =~ /unxlngi/) { $target = "i586"; } + elsif ( $installer::globals::compiler =~ /unxaigppc/) { $target = "ppc"; } elsif ( $installer::globals::compiler =~ /unxlng/) {$target = (POSIX::uname())[4]; } # rpm 4.6 ignores buildroot tag in spec file @@ -2621,7 +2608,6 @@ sub create_packages_without_epm for ( my $j = 0; $j <= $#rpmoutput; $j++ ) { - # if ( $i < $maxrpmcalls ) { $rpmoutput[$j] =~ s/\bERROR\b/PROBLEM/ig; } $rpmoutput[$j] =~ s/\bERROR\b/PROBLEM/ig; push( @installer::globals::logfileinfo, "$rpmoutput[$j]"); } @@ -2724,39 +2710,13 @@ sub remove_temporary_epm_files $infoline = "Systemcall: $systemcall\n"; push( @installer::globals::logfileinfo, $infoline); } - - # removing the package - -# my $removedir = $epmdir . $packagename; -# -# my $systemcall = "rm -rf $removedir"; -# -# print "... $systemcall ...\n"; -# -# my $returnvalue = system($systemcall); -# -# my $infoline = "Systemcall: $systemcall\n"; -# push( @installer::globals::logfileinfo, $infoline); -# -# if ($returnvalue) -# { -# $infoline = "ERROR: Could not execute \"$systemcall\"!\n"; -# push( @installer::globals::logfileinfo, $infoline); -# } -# else -# { -# $infoline = "Success: Executed \"$systemcall\" successfully!\n"; -# push( @installer::globals::logfileinfo, $infoline); -# } } - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { my $removefile = $epmdir . $packagename . ".spec"; my $destfile = $loggingdir . $packagename . ".spec.log"; - # if (! -f $removefile) { next; } - my $systemcall = "mv -f $removefile $destfile"; system($systemcall); # ignoring the return value $infoline = "Systemcall: $systemcall\n"; @@ -2832,13 +2792,17 @@ sub create_new_directory_structure my $newdir = $installer::globals::epmoutpath; - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { my $rpmdir; my $machine = ""; if ( $installer::globals::compiler =~ /unxlngi/) { $rpmdir = "$installer::globals::epmoutpath/RPMS/i586"; } + elsif ( $installer::globals::compiler =~ /unxaigppc/) { + $machine = "ppc"; + $rpmdir = "$installer::globals::epmoutpath/RPMS/$machine"; + } elsif ( $installer::globals::compiler =~ /unxlng/) { $machine = (POSIX::uname())[4]; $rpmdir = "$installer::globals::epmoutpath/RPMS/$machine"; @@ -2869,6 +2833,7 @@ sub create_new_directory_structure { installer::systemactions::remove_empty_directory("$installer::globals::epmoutpath/RPMS/$machine"); } + installer::systemactions::remove_empty_directory("$installer::globals::epmoutpath/RPMS/powerpc"); installer::systemactions::remove_empty_directory("$installer::globals::epmoutpath/RPMS/x86_64"); installer::systemactions::remove_empty_directory("$installer::globals::epmoutpath/RPMS/i586"); installer::systemactions::remove_empty_directory("$installer::globals::epmoutpath/RPMS/i386"); @@ -2877,23 +2842,7 @@ sub create_new_directory_structure } # Setting unix rights to "775" for $newdir ("RPMS" or "packages") - - my $localcall = "chmod 775 $newdir \>\/dev\/null 2\>\&1"; - my $callreturnvalue = system($localcall); - - my $callinfoline = "Systemcall: $localcall\n"; - push( @installer::globals::logfileinfo, $callinfoline); - - if ($callreturnvalue) - { - $callinfoline = "ERROR: Could not execute \"$localcall\"!\n"; - push( @installer::globals::logfileinfo, $callinfoline); - } - else - { - $callinfoline = "Success: Executed \"$localcall\" successfully!\n"; - push( @installer::globals::logfileinfo, $callinfoline); - } + chmod 0775, $newdir; } ###################################################### @@ -3195,40 +3144,6 @@ sub analyze_rootpath $rootpath =~ s/\/\s*$//; # removing ending slash ############################################################## - # Version 1: "/opt" is variable and "openofficeorg20" fixed - ############################################################## - - # my $staticpath = $rootpath; - # installer::pathanalyzer::make_absolute_filename_to_relative_filename(\$staticpath); - # $$staticpathref = $staticpath; # will be "openofficeorg20" - - # my $relocatablepath = $rootpath; - # installer::pathanalyzer::get_path_from_fullqualifiedname(\$relocatablepath); - # $$relocatablepathref = $relocatablepath; # will be "/opt/" - - ############################################################## - # Version 2: "/opt/openofficeorg20" is variable and "" fixed - ############################################################## - - # if ( $$relocatablepathref eq "" ) # relocatablepath is not defined in package list - # { - # $$staticpathref = ""; # will be "" - # $$relocatablepathref = $rootpath . "\/"; # relocatable path must end with "/", will be "/opt/openofficeorg20/" - # # setting the static path to the hostname of the directory with style OFFICEDIRECTORY - # if ( $allvariables->{'SETSTATICPATH'} ) { $$staticpathref = $installer::globals::officedirhostname; } - # - # } - # else # relocatablepath is defined in package list - # { - # $$relocatablepathref =~ s/\/\s*$//; # removing ending slash - # $$relocatablepathref = $$relocatablepathref . "\/"; # relocatable path must end with "/" - # my $staticpath = $rootpath; - # $staticpath =~ s/\Q$$relocatablepathref\E//; - # $staticpath =~ s/\/\s*$//; - # $$staticpathref = $staticpath; - # } - - ############################################################## # Version 3: "/" is variable and "/opt/openofficeorg20" fixed ############################################################## @@ -3238,17 +3153,16 @@ sub analyze_rootpath # For RPM version 3.x it is required, that Prefix is not "/" in spec file. In this case --relocate will not work, # because RPM 3.x says, that the package is not relocatable. Therefore we have to use Prefix=/opt and for # all usages of --relocate this path has to be on both sides of the "=": --relocate /opt=<myselectdir>/opt . - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { $$relocatablepathref = $rootpath . "\/"; # relocatable path must end with "/", will be "/opt/" $$staticpathref = $installer::globals::officedirhostname; # to be used as replacement in shell scripts } - if ( $installer::globals::islinuxdebbuild ) + if ( $installer::globals::isdebbuild ) { $$relocatablepathref = ""; # $$staticpathref is already "/opt/openoffice.org3", no additional $rootpath required. - # $$staticpathref = $rootpath . $installer::globals::separator . $$staticpathref; # no relocatibility for Debian } } @@ -3270,8 +3184,7 @@ sub put_installsetfiles_into_installset my $onefile = $installer::globals::installsetfiles[$i]; my $sourcefile = $onefile->{'sourcepath'}; my $destfile = ""; - if ( $installer::globals::addjavainstaller ) { $destfile = $onefile->{'Name'}; } - else { $destfile = $destdir . $installer::globals::separator . $onefile->{'Name'}; } + $destfile = $destdir . $installer::globals::separator . $onefile->{'Name'}; installer::systemactions::copy_one_file($sourcefile, $destfile); my $infoline = "Adding to installation set \"$destfile\" from source \"$sourcefile\".\n"; @@ -3399,20 +3312,6 @@ sub finalize_linux_patch if ( ! ( $#{$rpmfiles} > -1 )) { installer::exiter::exit_program("ERROR: Could not find rpm in directory $newepmdir!", "finalize_linux_patch"); } for ( my $i = 0; $i <= $#{$rpmfiles}; $i++ ) { installer::pathanalyzer::make_absolute_filename_to_relative_filename(\${$rpmfiles}[$i]); } -# my $installline = ""; -# -# for ( my $i = 0; $i <= $#{$rpmfiles}; $i++ ) -# { -# $installline = $installline . " rpm --prefix \$PRODUCTINSTALLLOCATION -U $newepmdir/${$rpmfiles}[$i]\n"; -# } -# -# $installline =~ s/\s*$//; -# -# for ( my $j = 0; $j <= $#{$scriptfile}; $j++ ) -# { -# ${$scriptfile}[$j] =~ s/INSTALLLINES/$installline/; -# } - # Searching packagename containing -core01 my $found_package = 0; my $searchpackagename = ""; @@ -3439,7 +3338,6 @@ sub finalize_linux_patch my $productname = $allvariables->{'PRODUCTNAME'}; $productname = lc($productname); $productname =~ s/ /_/g; # abc office -> abc_office -# $productname =~ s/\.//g; # openoffice.org -> openofficeorg $infoline = "Adding productname $productname into Linux patch script\n"; push( @installer::globals::logfileinfo, $infoline); @@ -3448,15 +3346,14 @@ sub finalize_linux_patch # Saving the file - my $newscriptfilename = "setup"; # $newepmdir . $installer::globals::separator . "setup"; + my $newscriptfilename = "setup"; installer::files::save_file($newscriptfilename, $scriptfile); $infoline = "Saved Linux patch setup $newscriptfilename \n"; push( @installer::globals::logfileinfo, $infoline); # Setting unix rights 755 - my $localcall = "chmod 775 $newscriptfilename \>\/dev\/null 2\>\&1"; - system($localcall); + chmod 0755, $newscriptfilename; } 1; diff --git a/solenv/bin/modules/installer/followme.pm b/solenv/bin/modules/installer/followme.pm index 1abc035d5615..535ac31588ff 100644 --- a/solenv/bin/modules/installer/followme.pm +++ b/solenv/bin/modules/installer/followme.pm @@ -70,11 +70,11 @@ sub save_followme_info push(@filecontent, "globals:issolarisx86build: $installer::globals::issolarisx86build\n"); push(@filecontent, "globals:isfreebsdpkgbuild: $installer::globals::isfreebsdpkgbuild\n"); push(@filecontent, "globals:islinuxbuild: $installer::globals::islinuxbuild\n"); - push(@filecontent, "globals:islinuxrpmbuild: $installer::globals::islinuxrpmbuild\n"); + push(@filecontent, "globals:isrpmbuild: $installer::globals::isrpmbuild\n"); push(@filecontent, "globals:islinuxintelrpmbuild: $installer::globals::islinuxintelrpmbuild\n"); push(@filecontent, "globals:islinuxppcrpmbuild: $installer::globals::islinuxppcrpmbuild\n"); push(@filecontent, "globals:islinuxx86_64rpmbuild: $installer::globals::islinuxx86_64rpmbuild\n"); - push(@filecontent, "globals:islinuxdebbuild: $installer::globals::islinuxdebbuild\n"); + push(@filecontent, "globals:isdebbuild: $installer::globals::isdebbuild\n"); push(@filecontent, "globals:islinuxinteldebbuild: $installer::globals::islinuxinteldebbuild\n"); push(@filecontent, "globals:islinuxppcdebbuild: $installer::globals::islinuxppcdebbuild\n"); push(@filecontent, "globals:islinuxx86_64debbuild: $installer::globals::islinuxx86_64debbuild\n"); @@ -87,6 +87,7 @@ sub save_followme_info push(@filecontent, "globals:product: $installer::globals::product\n"); push(@filecontent, "globals:patch: $installer::globals::patch\n"); push(@filecontent, "globals:languagepack: $installer::globals::languagepack\n"); + push(@filecontent, "globals:helppack: $installer::globals::helppack\n"); push(@filecontent, "globals:installertypedir: $installer::globals::installertypedir\n"); push(@filecontent, "globals:max_lang_length: $installer::globals::max_lang_length\n"); push(@filecontent, "globals:compiler: $installer::globals::compiler\n"); @@ -169,11 +170,11 @@ sub read_followme_info if ( $name eq "issolarisx86build" ) { $installer::globals::issolarisx86build = $value; } if ( $name eq "isfreebsdpkgbuild" ) { $installer::globals::isfreebsdpkgbuild = $value; } if ( $name eq "islinuxbuild" ) { $installer::globals::islinuxbuild = $value; } - if ( $name eq "islinuxrpmbuild" ) { $installer::globals::islinuxrpmbuild = $value; } + if ( $name eq "isrpmbuild" ) { $installer::globals::isrpmbuild = $value; } if ( $name eq "islinuxintelrpmbuild" ) { $installer::globals::islinuxintelrpmbuild = $value; } if ( $name eq "islinuxppcrpmbuild" ) { $installer::globals::islinuxppcrpmbuild = $value; } if ( $name eq "islinuxx86_64rpmbuild" ) { $installer::globals::islinuxx86_64rpmbuild = $value; } - if ( $name eq "islinuxdebbuild" ) { $installer::globals::islinuxdebbuild = $value; } + if ( $name eq "isdebbuild" ) { $installer::globals::isdebbuild = $value; } if ( $name eq "islinuxinteldebbuild" ) { $installer::globals::islinuxinteldebbuild = $value; } if ( $name eq "islinuxppcdebbuild" ) { $installer::globals::islinuxppcdebbuild = $value; } if ( $name eq "islinuxx86_64debbuild" ) { $installer::globals::islinuxx86_64debbuild = $value; } @@ -189,6 +190,7 @@ sub read_followme_info if ( $name eq "product" ) { $installer::globals::product = $value; } if ( $name eq "patch" ) { $installer::globals::patch = $value; } if ( $name eq "languagepack" ) { $installer::globals::languagepack = $value; } + if ( $name eq "helppack" ) { $installer::globals::helppack = $value; } if ( $name eq "installertypedir" ) { $installer::globals::installertypedir = $value; } if ( $name eq "max_lang_length" ) { $installer::globals::max_lang_length = $value; } if ( $name eq "compiler" ) { $installer::globals::compiler = $value; } diff --git a/solenv/bin/modules/installer/globals.pm b/solenv/bin/modules/installer/globals.pm index 066e13dcf6d4..ace634a3ac5e 100644 --- a/solenv/bin/modules/installer/globals.pm +++ b/solenv/bin/modules/installer/globals.pm @@ -131,8 +131,8 @@ BEGIN $ismacosx = 0; $iswindowsbuild = 0; $islinuxbuild = 0; - $islinuxrpmbuild = 0; - $islinuxdebbuild = 0; + $isrpmbuild = 0; + $isdebbuild = 0; $islinuxintelrpmbuild = 0; $islinuxppcrpmbuild = 0; $islinuxinteldebbuild = 0; @@ -196,7 +196,7 @@ BEGIN %alllangmodules = (); $englishlicenseset = 0; $englishlicense = ""; - $englishsolarislicensename = "LICENSE_en-US"; + $englishsolarislicensename = "LICENSE"; # _en-US"; $solarisdontcompress = 0; $patharray = ""; @@ -310,7 +310,6 @@ BEGIN $productxpdfile = "setup.xpd"; $xpd_files_prepared = 0; $defaultlanguage = ""; - # @emptyxpdparents = (); @createdxpdfiles = (); @allxpdfiles = (); $isxpdplatform = 0; @@ -318,7 +317,6 @@ BEGIN $javasettozero = 0; $addlicensefile = 1; $addsystemintegration = 0; - $addjavainstaller = 0; $added_directories = 0; $makedownload = 1; $makejds = 1; @@ -329,6 +327,7 @@ BEGIN @binarytableonlyfiles = (); @allscpactions = (); $languagepackaddon = "LanguagePack"; + $helppackaddon = "HelpPack"; $patchaddon = "Patch"; $ooodownloadfilename = ""; $downloadfilename = ""; @@ -346,6 +345,7 @@ BEGIN $patch_user_dir = 0; $addchildprojects = 0; $languagepack = 0; + $helppack = 0; $tab = 0; $patch = 0; $patchincludepath = ""; @@ -424,7 +424,7 @@ BEGIN $one_cab_file = 0; $fix_number_of_cab_files = 1; $cab_file_per_component = 0; - $cabfilecompressionlevel = 2; + $cabfilecompressionlevel = 21; # Using LZX compression, possible values are: 15 | 16 | ... | 21 (best compression) $number_of_cabfiles = 1; # only for $fix_number_of_cab_files = 1 $include_cab_in_msi = 0; $use_packages_for_cabs = 0; @@ -464,6 +464,7 @@ BEGIN @environmentvariables = ( "SOLARVERSION", "GUI", "WORK_STAMP", "OUTPATH", "LOCAL_OUT", "LOCAL_COMMON_OUT" ); @packagelistitems = ("module", "solarispackagename", "packagename", "copyright", "vendor", "description" ); @languagepackfeature =(); + @helppackfeature =(); @featurecollector =(); $msiassemblyfiles = ""; $nsisfilename = "Nsis"; @@ -536,9 +537,6 @@ BEGIN $isunix = 1; $iswin = 0; } - # WRAPCMD is gone - remove this and all related - # $installer::globals::wrapcmd entries - $wrapcmd = ""; if ( $plat =~ /linux/i ) { $islinux = 1; } if ( $plat =~ /kfreebsd/i ) { $islinux = 1; } diff --git a/solenv/bin/modules/installer/helppack.pm b/solenv/bin/modules/installer/helppack.pm new file mode 100644 index 000000000000..e5b674c93f8c --- /dev/null +++ b/solenv/bin/modules/installer/helppack.pm @@ -0,0 +1,537 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +package installer::helppack; + +use installer::converter; +use installer::existence; +use installer::files; +use installer::globals; +use installer::logger; +use installer::pathanalyzer; +use installer::scpzipfiles; +use installer::scriptitems; +use installer::systemactions; +use installer::worker; + +sub select_help_items +{ + my ( $itemsref, $languagesarrayref, $itemname ) = @_; + + installer::logger::include_header_into_logfile("Selecting items for help pack. Item: $itemname"); + + my @itemsarray = (); + + for ( my $i = 0; $i <= $#{$itemsref}; $i++ ) + { + my $oneitem = ${$itemsref}[$i]; + + my $styles = ""; + if ( $oneitem->{'Styles'} ) { $styles = $oneitem->{'Styles'}; } + + if (( $styles =~ /\bHELPPACK\b/ ) || ( $styles =~ /\bFORCEHELPPACK\b/ )) + { + # Files with style "HELPPACK" and "FORCEHELPPACK" also have to be included into the help pack. + # Files with style "HELPPACK" are only included into help packs. + # Files with style "FORCEHELPPACK" are included into help packs and non help packs. They are + # forced, because otherwise they not not be included into helppacks. + + my $ismultilingual = $oneitem->{'ismultilingual'}; + + if ($ismultilingual) + { + my $specificlanguage = ""; + if ( $oneitem->{'specificlanguage'} ) { $specificlanguage = $oneitem->{'specificlanguage'}; } + + for ( my $j = 0; $j <= $#{$languagesarrayref}; $j++ ) # iterating over all languages + { + my $onelanguage = ${$languagesarrayref}[$j]; + my $locallang = $onelanguage; + $locallang =~ s/-/_/; + + if ( $specificlanguage eq $onelanguage ) + { + push(@itemsarray, $oneitem); + } + } + } + else + { + push(@itemsarray, $oneitem); + } + } + } + + return \@itemsarray; +} + +sub replace_languagestring_variable +{ + my ($onepackageref, $languagestringref) = @_; + + my $key; + + foreach $key (keys %{$onepackageref}) + { + my $value = $onepackageref->{$key}; + $value =~ s/\%LANGUAGESTRING/$$languagestringref/g; + $onepackageref->{$key} = $value; + } +} + +######################################################### +# Including the license text into the script template +######################################################### + +sub put_license_file_into_script +{ + my ($scriptfile, $licensefile) = @_; + + my $infoline = "Adding licensefile into help pack script\n"; + push( @installer::globals::logfileinfo, $infoline); + + my $includestring = ""; + + for ( my $i = 0; $i <= $#{$licensefile}; $i++ ) + { + $includestring = $includestring . ${$licensefile}[$i]; + } + + for ( my $i = 0; $i <= $#{$scriptfile}; $i++ ) + { + ${$scriptfile}[$i] =~ s/LICENSEFILEPLACEHOLDER/$includestring/; + } +} + +######################################################### +# Creating a tar.gz file from a Solaris package +######################################################### + +sub create_tar_gz_file +{ + my ($installdir, $packagename, $packagestring) = @_; + + $packagename =~ s/\.rpm\s*$//; + my $targzname = $packagename . ".tar.gz"; + $systemcall = "cd $installdir; tar -cf - $packagestring | gzip > $targzname"; + installer::logger::print_message( "... $systemcall ...\n" ); + + my $returnvalue = system($systemcall); + + my $infoline = "Systemcall: $systemcall\n"; + push( @installer::globals::logfileinfo, $infoline); + + if ($returnvalue) + { + $infoline = "ERROR: Could not execute \"$systemcall\"!\n"; + push( @installer::globals::logfileinfo, $infoline); + } + else + { + $infoline = "Success: Executed \"$systemcall\" successfully!\n"; + push( @installer::globals::logfileinfo, $infoline); + } + + return $targzname; +} + +######################################################### +# Determining the name of the package file +######################################################### + +sub get_packagename_from_packagelist +{ + my ( $alldirs, $allvariables, $languagestringref ) = @_; + + # my $packagename = ""; + + # for ( my $i = 0; $i <= $#{$alldirs}; $i++ ) + # { + # if ( ${$alldirs}[$i] =~ /-fonts/ ) { next; } + # if ( ${$alldirs}[$i] =~ /-help/ ) { next; } + # if ( ${$alldirs}[$i] =~ /-res/ ) { next; } + # + # $packagename = ${$alldirs}[$i]; + # last; + # } + + # if ( $packagename eq "" ) { installer::exiter::exit_program("ERROR: Could not find base package in directory $installdir!", "get_packagename_from_packagelist"); } + + my $localproductname = $allvariables->{'PRODUCTNAME'}; + $localproductname = lc($localproductname); + $localproductname =~ s/ //g; + $localproductname =~ s/-/_/g; + + my $packagename = $localproductname . "_" . $$languagestringref; + + return $packagename; +} + +######################################################### +# Determining the name of the package file or the rpm +# in the installation directory. For help packs +# there is only one file in this directory +######################################################### + +sub determine_packagename +{ + my ( $installdir, $allvariables, $languagestringref ) = @_; + + my $packagename = ""; + my $allnames = ""; + + if ( $installer::globals::isrpmbuild ) + { + # determining the rpm file in directory $installdir + + my $fileextension = "rpm"; + my $rpmfiles = installer::systemactions::find_file_with_file_extension($fileextension, $installdir); + if ( ! ( $#{$rpmfiles} > -1 )) { installer::exiter::exit_program("ERROR: Could not find package in directory $installdir!", "determine_packagename"); } + my $rpmsav = [@{$rpmfiles}]; + for ( my $i = 0; $i <= $#{$rpmfiles}; $i++ ) { installer::pathanalyzer::make_absolute_filename_to_relative_filename(\${$rpmfiles}[$i]); } + + $packagename = get_packagename_from_packagelist($rpmfiles, $allvariables, $languagestringref); + + my $packagestring = installer::converter::convert_array_to_space_separated_string($rpmfiles); + $packagename = create_tar_gz_file($installdir, $packagename, $packagestring); # only one file + for ( my $i = 0; $i <= $#{$rpmsav}; $i++ ) + { + my $onefile = $installdir . $installer::globals::separator . ${$rpmsav}[$i]; + unlink($onefile); + } + + $allnames = $rpmfiles; + } + + if ( $installer::globals::issolarisbuild ) + { + # determining the Solaris package file in directory $installdir + my $alldirs = installer::systemactions::get_all_directories($installdir); + + if ( ! ( $#{$alldirs} > -1 )) { installer::exiter::exit_program("ERROR: Could not find package in directory $installdir!", "determine_packagename"); } + my $alldirssav = [@{$alldirs}]; + for ( my $i = 0; $i <= $#{$alldirs}; $i++ ) { installer::pathanalyzer::make_absolute_filename_to_relative_filename(\${$alldirs}[$i]); } + + $packagename = get_packagename_from_packagelist($alldirs, $allvariables, $languagestringref); + my $packagestring = installer::converter::convert_array_to_space_separated_string($alldirs); + $packagename = create_tar_gz_file($installdir, $packagename, $packagestring); # only a file (not a directory) can be included into the shell script + for ( my $i = 0; $i <= $#{$alldirssav}; $i++ ) { installer::systemactions::remove_complete_directory(${$alldirssav}[$i], 1); } + $allnames = $alldirs; + } + + my $infoline = "Found package in installation directory $installdir : $packagename\n"; + push( @installer::globals::logfileinfo, $infoline); + + return ( $packagename, $allnames); +} + +######################################################### +# Including the name of the package file or the rpm +# into the script template +######################################################### + +sub put_packagename_into_script +{ + my ($scriptfile, $packagename, $allnames) = @_; + + my $localpackagename = $packagename; + $localpackagename =~ s/\.tar\.gz//; # making "OOOopenoffice-it-ea.tar.gz" to "OOOopenoffice-it-ea" + my $infoline = "Adding packagename $localpackagename into help pack script\n"; + push( @installer::globals::logfileinfo, $infoline); + + my $installline = ""; + + if ( $installer::globals::issolarisbuild ) { $installline = " /usr/sbin/pkgadd -d \$outdir -a \$adminfile"; } + + if ( $installer::globals::isrpmbuild ) { $installline = " rpm --prefix \$PRODUCTINSTALLLOCATION --replacepkgs -i"; } + + for ( my $i = 0; $i <= $#{$allnames}; $i++ ) + { + if ( $installer::globals::issolarisbuild ) { $installline = $installline . " ${$allnames}[$i]"; } + + if ( $installer::globals::isrpmbuild ) { $installline = $installline . " \$outdir/${$allnames}[$i]"; } + } + + for ( my $j = 0; $j <= $#{$scriptfile}; $j++ ) + { + ${$scriptfile}[$j] =~ s/INSTALLLINES/$installline/; + } +} + +################################################################## +# Including the lowercase product name into the script template +################################################################## + +sub put_productname_into_script +{ + my ($scriptfile, $variableshashref) = @_; + + my $productname = $variableshashref->{'PRODUCTNAME'}; + $productname = lc($productname); + $productname =~ s/\.//g; # openoffice.org -> openofficeorg + + my $infoline = "Adding productname $productname into help pack script\n"; + push( @installer::globals::logfileinfo, $infoline); + + for ( my $i = 0; $i <= $#{$scriptfile}; $i++ ) + { + ${$scriptfile}[$i] =~ s/PRODUCTNAMEPLACEHOLDER/$productname/; + } +} + +################################################################## +# Including the full product name into the script template +# (name and version) +################################################################## + +sub put_fullproductname_into_script +{ + my ($scriptfile, $variableshashref) = @_; + + my $productname = $variableshashref->{'PRODUCTNAME'}; + my $productversion = ""; + if ( $variableshashref->{'PRODUCTVERSION'} ) { $productversion = $variableshashref->{'PRODUCTVERSION'}; }; + my $fullproductname = $productname . " " . $productversion; + + my $infoline = "Adding full productname \"$fullproductname\" into help pack script\n"; + push( @installer::globals::logfileinfo, $infoline); + + for ( my $i = 0; $i <= $#{$scriptfile}; $i++ ) + { + ${$scriptfile}[$i] =~ s/FULLPRODUCTNAMELONGPLACEHOLDER/$fullproductname/; + } +} + +################################################################## +# Including the name of the search package (-core01) +# into the script template +################################################################## + +sub put_searchpackage_into_script +{ + my ($scriptfile, $variableshashref) = @_; + + my $basispackageprefix = $variableshashref->{'BASISPACKAGEPREFIX'}; + my $basispackageversion = $variableshashref->{'OOOBASEVERSION'}; + + if ( $installer::globals::issolarisbuild ) { $basispackageversion =~ s/\.//g; } # "3.0" -> "30" + + my $infoline = "Adding basis package prefix $basispackageprefix into help pack script\n"; + push( @installer::globals::logfileinfo, $infoline); + + $infoline = "Adding basis package version $basispackageversion into help pack script\n"; + push( @installer::globals::logfileinfo, $infoline); + + for ( my $i = 0; $i <= $#{$scriptfile}; $i++ ) + { + ${$scriptfile}[$i] =~ s/BASISPACKAGEPREFIXPLACEHOLDER/$basispackageprefix/; + ${$scriptfile}[$i] =~ s/OOOBASEVERSIONPLACEHOLDER/$basispackageversion/; + } + +} + +######################################################### +# Including the linenumber into the script template +######################################################### + +sub put_linenumber_into_script +{ + my ( $scriptfile, $licensefile, $allnames ) = @_; + + my $linenumber = $#{$scriptfile} + $#{$licensefile} + 3; # also adding the content of the license file! + + my $infoline = "Adding linenumber $linenumber into help pack script\n"; + push( @installer::globals::logfileinfo, $infoline); + + for ( my $i = 0; $i <= $#{$scriptfile}; $i++ ) + { + ${$scriptfile}[$i] =~ s/LINENUMBERPLACEHOLDER/$linenumber/; + } +} + +######################################################### +# Determining the name of the new scriptfile +######################################################### + +sub determine_scriptfile_name +{ + my ( $packagename ) = @_; + + my $scriptfilename = $packagename; + +# if ( $installer::globals::isrpmbuild ) { $scriptfilename =~ s/\.rpm\s*$/\.sh/; } +# if ( $installer::globals::issolarisbuild ) { $scriptfilename =~ s/\.tar\.gz\s*$/\.sh/; } + + $scriptfilename =~ s/\.tar\.gz\s*$/\.sh/; + + my $infoline = "Setting help pack script file name to $scriptfilename\n"; + push( @installer::globals::logfileinfo, $infoline); + + return $scriptfilename; +} + +######################################################### +# Saving the script file in the installation directory +######################################################### + +sub save_script_file +{ + my ($installdir, $newscriptfilename, $scriptfile) = @_; + + $newscriptfilename = $installdir . $installer::globals::separator . $newscriptfilename; + installer::files::save_file($newscriptfilename, $scriptfile); + + my $infoline = "Saving script file $newscriptfilename\n"; + push( @installer::globals::logfileinfo, $infoline); + + return $newscriptfilename; +} + +######################################################### +# Including the binary package into the script +######################################################### + +sub include_package_into_script +{ + my ( $scriptfilename, $installdir, $packagename ) = @_; + + my $longpackagename = $installdir . $installer::globals::separator . $packagename; + my $systemcall = "cat $longpackagename >>$scriptfilename"; + + my $returnvalue = system($systemcall); + + my $infoline = "Systemcall: $systemcall\n"; + push( @installer::globals::logfileinfo, $infoline); + + if ($returnvalue) + { + $infoline = "ERROR: Could not execute \"$systemcall\"!\n"; + push( @installer::globals::logfileinfo, $infoline); + } + else + { + $infoline = "Success: Executed \"$systemcall\" successfully!\n"; + push( @installer::globals::logfileinfo, $infoline); + } + + my $localcall = "chmod 775 $scriptfilename \>\/dev\/null 2\>\&1"; + system($localcall); + +} + +######################################################### +# Removing the binary package +######################################################### + +sub remove_package +{ + my ( $installdir, $packagename ) = @_; + + my $remove_package = 1; + + if ( $ENV{'DONT_REMOVE_PACKAGE'} ) { $remove_package = 0; } + + if ( $remove_package ) + { + my $longpackagename = $installdir . $installer::globals::separator . $packagename; + unlink $longpackagename; + + my $infoline = "Removing package: $longpackagename \n"; + push( @installer::globals::logfileinfo, $infoline); + } +} + +#################################################### +# Unix help packs, that are not part of +# multilingual installation sets, need a +# shell script installer +#################################################### + +sub build_installer_for_helppack +{ + my ($installdir, $allvariableshashref, $includepatharrayref, $languagesarrayref, $languagestringref) = @_; + + installer::logger::print_message( "... creating shell script installer ...\n" ); + + installer::logger::include_header_into_logfile("Creating shell script installer:"); + + # find and read setup script template + + my $scriptfilename = "langpackscript.sh"; + my $scriptref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$scriptfilename, $includepatharrayref, 0); + if ($$scriptref eq "") { installer::exiter::exit_program("ERROR: Could not find script file $scriptfilename!", "build_installer_for_helppack"); } + my $scriptfile = installer::files::read_file($$scriptref); + + my $infoline = "Found script file $scriptfilename: $$scriptref \n"; + push( @installer::globals::logfileinfo, $infoline); + + # find and read english license file + my $licenselanguage = "en-US"; # always english ! + my $licensefilename = "LICENSE"; # _" . $licenselanguage; + my $licenseincludepatharrayref = installer::worker::get_language_specific_include_pathes($includepatharrayref, $licenselanguage); + + my $licenseref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$licensefilename, $licenseincludepatharrayref, 0); + if ($$licenseref eq "") { installer::exiter::exit_program("ERROR: Could not find License file $licensefilename!", "build_installer_for_helppack"); } + my $licensefile = installer::files::read_file($$licenseref); + + $infoline = "Found licensefile $licensefilename: $$licenseref \n"; + push( @installer::globals::logfileinfo, $infoline); + + # including variables into license file + installer::scpzipfiles::replace_all_ziplistvariables_in_file($licensefile, $allvariableshashref); + + # add license text into script template + put_license_file_into_script($scriptfile, $licensefile); + + # add rpm or package file name into script template + my ( $packagename, $allnames) = determine_packagename($installdir, $allvariableshashref, $languagestringref); + put_packagename_into_script($scriptfile, $packagename, $allnames); + + # add product name into script template + put_productname_into_script($scriptfile, $allvariableshashref); + + # add product name into script template + put_fullproductname_into_script($scriptfile, $allvariableshashref); + + # add product name into script template + put_searchpackage_into_script($scriptfile, $allvariableshashref); + + # replace linenumber in script template + put_linenumber_into_script($scriptfile, $licensefile, $allnames); + + # saving the script file + my $newscriptfilename = determine_scriptfile_name($packagename); + $newscriptfilename = save_script_file($installdir, $newscriptfilename, $scriptfile); + + # include rpm or package into script + include_package_into_script($newscriptfilename, $installdir, $packagename); + + # remove rpm or package + remove_package($installdir, $packagename); +} + +1; diff --git a/solenv/bin/modules/installer/javainstaller.pm b/solenv/bin/modules/installer/javainstaller.pm deleted file mode 100644 index f68346bdcce2..000000000000 --- a/solenv/bin/modules/installer/javainstaller.pm +++ /dev/null @@ -1,1885 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* -package installer::javainstaller; - -use Cwd; -use installer::exiter; -use installer::files; -use installer::globals; -use installer::languages; -use installer::pathanalyzer; -use installer::scriptitems; -use installer::systemactions; -use installer::worker; -use installer::logger; - -############################################################## -# Returning a specific language string from the block -# of all translations -############################################################## - -sub get_language_string_from_language_block -{ - my ($language_block, $language, $oldstring) = @_; - - my $newstring = ""; - - for ( my $i = 0; $i <= $#{$language_block}; $i++ ) - { - if ( ${$language_block}[$i] =~ /^\s*$language\s*\=\s*\"(.*)\"\s*$/ ) - { - $newstring = $1; - last; - } - } - - if ( $newstring eq "" ) - { - $language = "en-US"; # defaulting to english - - for ( my $i = 0; $i <= $#{$language_block}; $i++ ) - { - if ( ${$language_block}[$i] =~ /^\s*$language\s*\=\s*\"(.*)\"\s*$/ ) - { - $newstring = $1; - last; - } - } - } - - return $newstring; -} - -############################################################## -# Returning the complete block in all languages -# for a specified string -############################################################## - -sub get_language_block_from_language_file -{ - my ($searchstring, $languagefile) = @_; - - my @language_block = (); - - for ( my $i = 0; $i <= $#{$languagefile}; $i++ ) - { - if ( ${$languagefile}[$i] =~ /^\s*\[\s*$searchstring\s*\]\s*$/ ) - { - my $counter = $i; - - push(@language_block, ${$languagefile}[$counter]); - $counter++; - - while (( $counter <= $#{$languagefile} ) && (!( ${$languagefile}[$counter] =~ /^\s*\[/ ))) - { - push(@language_block, ${$languagefile}[$counter]); - $counter++; - } - - last; - } - } - - return \@language_block; -} - -####################################################### -# Searching for the module name and description in the -# modules collector -####################################################### - -sub get_module_name_description -{ - my ($modulesarrayref, $onelanguage, $gid, $type) = @_; - - my $found = 0; - - my $newstring = ""; - - for ( my $i = 0; $i <= $#{$modulesarrayref}; $i++ ) - { - my $onemodule = ${$modulesarrayref}[$i]; - - if ( $onemodule->{'gid'} eq $gid ) - { - my $typestring = $type . " " . "(" . $onelanguage . ")"; - if ( $onemodule->{$typestring} ) { $newstring = $onemodule->{$typestring}; } - $found = 1; - } - - if ( $found ) { last; } - } - - # defaulting to english - - if ( ! $found ) - { - my $defaultlanguage = "en-US"; - - for ( my $i = 0; $i <= $#{$modulesarrayref}; $i++ ) - { - my $onemodule = ${$modulesarrayref}[$i]; - - if ( $onemodule->{'gid'} eq $gid ) - { - my $typestring = $type . " " . "(" . $defaultlanguage . ")"; - if ( $onemodule->{$typestring} ) { $newstring = $onemodule->{$typestring}; } - $found = 1; - } - - if ( $found ) { last; } - } - } - - return $newstring; -} - -####################################################### -# Setting the productname and productversion -####################################################### - -sub set_productname_and_productversion -{ - my ($templatefile, $variableshashref) = @_; - - my $infoline = "\nSetting product name and product version in Java template file\n"; - push( @installer::globals::logfileinfo, $infoline); - - my $productname = $variableshashref->{'PRODUCTNAME'}; - my $productversion = $variableshashref->{'PRODUCTVERSION'}; - - for ( my $i = 0; $i <= $#{$templatefile}; $i++ ) - { - ${$templatefile}[$i] =~ s/\{PRODUCTNAME\}/$productname/g; - ${$templatefile}[$i] =~ s/\{PRODUCTVERSION\}/$productversion/g; - } - - $infoline = "End of: Setting product name and product version in Java template file\n\n"; - push( @installer::globals::logfileinfo, $infoline); -} - -####################################################### -# Setting the localized Module name and description -####################################################### - -sub set_component_name_and_description -{ - my ($templatefile, $modulesarrayref, $onelanguage) = @_; - - my $infoline = "\nSetting component names and description in Java template file\n"; - push( @installer::globals::logfileinfo, $infoline); - - for ( my $i = 0; $i <= $#{$templatefile}; $i++ ) - { - # OOO_gid_Module_Prg_Wrt_Name - # OOO_gid_Module_Prg_Wrt_Description - - my $oneline = ${$templatefile}[$i]; - my $oldstring = ""; - my $gid = ""; - my $type = ""; - - if ( $oneline =~ /\b(OOO_gid_\w+)\b/ ) - { - $oldstring = $1; - - $infoline = "Found: $oldstring\n"; - push( @installer::globals::logfileinfo, $infoline); - - if ( $oldstring =~ /^\s*OOO_(gid_\w+)_(\w+?)\s*$/ ) - { - $gid = $1; - $type = $2; - } - - my $newstring = get_module_name_description($modulesarrayref, $onelanguage, $gid, $type); - - $infoline = "\tReplacing (language $onelanguage): OLDSTRING: $oldstring NEWSTRING $newstring\n"; - push( @installer::globals::logfileinfo, $infoline); - - ${$templatefile}[$i] =~ s/$oldstring/$newstring/; # always substitute, even if $newstring eq "" - } - } - - $infoline = "End of: Setting component names and description in Java template file\n\n"; - push( @installer::globals::logfileinfo, $infoline); -} - -####################################################### -# Translating the Java file -####################################################### - -sub translate_javafile -{ - my ($templatefile, $languagefile, $onelanguage) = @_; - - for ( my $i = 0; $i <= $#{$templatefile}; $i++ ) - { - my @allstrings = (); - - my $oneline = ${$templatefile}[$i]; - - while ( $oneline =~ /\b(OOO_\w+)\b/ ) - { - my $replacestring = $1; - push(@allstrings, $replacestring); - $oneline =~ s/$replacestring//; - } - - my $oldstring; - - foreach $oldstring (@allstrings) - { - my $language_block = get_language_block_from_language_file($oldstring, $languagefile); - my $newstring = get_language_string_from_language_block($language_block, $onelanguage, $oldstring); - - $newstring =~ s/\"/\\\"/g; # masquerading the " - $newstring =~ s/\\\\\"/\\\"/g; # unmasquerading if \" was converted to \\" (because " was already masked) - - # if (!( $newstring eq "" )) { ${$idtfile}[$i] =~ s/$oldstring/$newstring/; } - ${$templatefile}[$i] =~ s/$oldstring/$newstring/; # always substitute, even if $newstring eq "" - } - } -} - -########################################################### -# Returning the license file name for a defined language -########################################################### - -sub get_licensefilesource -{ - my ($language, $includepatharrayref) = @_; - - my $licensefilename = "LICENSE_" . $language; - - my $licenseref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$licensefilename, $includepatharrayref, 0); - if ($$licenseref eq "") { installer::exiter::exit_program("ERROR: Could not find License file $licensefilename!", "get_licensefilesource"); } - - my $infoline = "Found licensefile $licensefilename: $$licenseref \n"; - push( @installer::globals::logfileinfo, $infoline); - - return $$licenseref; -} - -####################################################### -# Converting the license string into the -# Java specific encoding. -####################################################### - -sub convert_licenstring -{ - my ($licensefile, $includepatharrayref, $javadir, $onelanguage) = @_; - - my $licensedir = $javadir . $installer::globals::separator . "license"; - installer::systemactions::create_directory($licensedir); - - # saving the original license file - - my $licensefilename = $licensedir . $installer::globals::separator . "licensefile.txt"; - installer::files::save_file($licensefilename, $licensefile); - - # creating the ulf file from the license file - - $licensefilename = $licensedir . $installer::globals::separator . "licensefile.ulf"; - my @licensearray = (); - - my $section = "\[TRANSLATE\]\n"; - push(@licensearray, $section); - - for ( my $i = 0; $i <= $#{$licensefile}; $i++ ) - { - my $oneline = ${$licensefile}[$i]; - - if ($i == 0) { $oneline =~ s/^\s*\ï\»\¿//; } - - $oneline =~ s/\s*$//; - $oneline =~ s/\"/\\\"/g; # masquerading the " - $oneline =~ s/\'/\\\'/g; # masquerading the ' - - $oneline =~ s/\$\{/\{/g; # replacement of variables, only {PRODUCTNAME}, not ${PRODUCTNAME} - - my $ulfstring = $onelanguage . " = " . "\"" . $oneline . "\"\n"; - push(@licensearray, $ulfstring); - } - - installer::files::save_file($licensefilename, \@licensearray); - - # converting the ulf file to the jlf file with ulfconv - - @licensearray = (); - - my $converter = "ulfconv"; - - my $converterref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$converter, $includepatharrayref, 0); - if ($$converterref eq "") { installer::exiter::exit_program("ERROR: Could not find converter $converter!", "convert_licenstring"); } - - my $infoline = "Found converter file $converter: $$converterref \n"; - push( @installer::globals::logfileinfo, $infoline); - - my $systemcall = "$$converterref $licensefilename |"; - open (CONV, "$systemcall"); - @licensearray = <CONV>; - close (CONV); - - $licensefilename = $licensedir . $installer::globals::separator . "licensefile.jlf"; - installer::files::save_file($licensefilename, \@licensearray); - - # creating the license string from the jlf file - - $licensestring = ""; - - for ( my $i = 1; $i <= $#licensearray; $i++ ) # not the first line! - { - my $oneline = $licensearray[$i]; - $oneline =~ s/^\s*$onelanguage\s*\=\s*\"//; - $oneline =~ s/\"\s*$//; - $licensestring = $licensestring . $oneline . "\\n"; - } - - $infoline = "Systemcall: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - - if ( $licensestring eq "" ) - { - $infoline = "ERROR: Could not convert $licensefilename !\n"; - push( @installer::globals::logfileinfo, $infoline); - } - - return $licensestring; -} - -####################################################### -# Adding the license file into the java file -# In the template java file there are two -# occurences of INSTALLSDK_GUI_LICENSE -# and INSTALLSDK_CONSOLE_LICENSE -####################################################### - -sub add_license_file_into_javafile -{ - my ( $templatefile, $licensefile, $includepatharrayref, $javadir, $onelanguage ) = @_; - - my $licensestring = convert_licenstring($licensefile, $includepatharrayref, $javadir, $onelanguage); - - # saving the licensestring in an ulf file - # converting the file using "ulfconv license.ulf" - # including the new string into the java file - - for ( my $i = 0; $i <= $#{$templatefile}; $i++ ) - { - ${$templatefile}[$i] =~ s/INSTALLSDK_GUI_LICENSE/$licensestring/; - ${$templatefile}[$i] =~ s/INSTALLSDK_CONSOLE_LICENSE/$licensestring/; - } -} - -####################################################### -# Executing one system call -####################################################### - -sub make_systemcall -{ - my ( $systemcall, $logreturn ) = @_; - - my @returns = (); - - installer::logger::print_message( "... $systemcall ...\n" ); - - open (REG, "$systemcall"); - while (<REG>) {push(@returns, $_); } - close (REG); - - my $returnvalue = $?; # $? contains the return value of the systemcall - - my $infoline = "Systemcall: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - - if ( $logreturn ) - { - for ( my $j = 0; $j <= $#returns; $j++ ) { push( @installer::globals::logfileinfo, "$returns[$j]"); } - } - - if ($returnvalue) - { - $infoline = "ERROR: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - $error_occured = 1; - } - else - { - $infoline = "SUCCESS: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); - } - - return \@returns; -} - -####################################################### -# Setting the class path for the Installer SDK -####################################################### - -sub set_classpath_for_install_sdk -{ - my ( $directory ) = @_; - - my $installsdk = ""; - my $solarVersion = ""; - my $inPath = ""; - my $updMinorExt = ""; - - if ( defined( $ENV{ 'SOLARVERSION' } ) ) { $solarVersion = $ENV{'SOLARVERSION'}; } - else { installer::exiter::exit_program("ERROR: Environment variable \"SOLARVERSION\" not set!", "set_classpath_for_install_sdk"); } - - if ( defined( $ENV{ 'INPATH' } ) ) { $inPath = $ENV{'INPATH'}; } - else { installer::exiter::exit_program("ERROR: Environment variable \"INPATH\" not set!", "set_classpath_for_install_sdk"); } - - if ( defined( $ENV{ 'UPDMINOREXT' } ) ) { $updMinorExt = $ENV{'UPDMINOREXT'}; } - - $installsdk = $solarVersion . $installer::globals::separator . $inPath . $installer::globals::separator . "bin" . $updMinorExt; - $installsdk = $installsdk . $installer::globals::separator . "javainstaller"; - - if ( $ENV{'INSTALLSDK_SOURCE'} ) { $installsdk = $ENV{'INSTALLSDK_SOURCE'}; } # overriding the Install SDK with INSTALLSDK_SOURCE - - # The variable CLASSPATH has to contain: - # $installsdk/classes:$installsdk/classes/setupsdk.jar: - # $installsdk/classes/parser.jar:$installsdk/classes/jaxp.jar: - # $installsdk/classes/ldapjdk.jar:$directory - - my @additional_classpath = (); - push(@additional_classpath, "$installsdk\/classes"); - push(@additional_classpath, "$installsdk\/installsdk.jar"); - push(@additional_classpath, "$installsdk\/classes\/parser.jar"); - push(@additional_classpath, "$installsdk\/classes\/jaxp.jar"); - push(@additional_classpath, "$directory"); - - my $newclasspathstring = ""; - my $oldclasspathstring = ""; - if ( $ENV{'CLASSPATH'} ) { $oldclasspathstring = $ENV{'CLASSPATH'}; } - else { $oldclasspathstring = "\."; } - - for ( my $i = 0; $i <= $#additional_classpath; $i++ ) - { - $newclasspathstring = $newclasspathstring . $additional_classpath[$i] . ":"; - } - - $newclasspathstring = $newclasspathstring . $oldclasspathstring; - - $ENV{'CLASSPATH'} = $newclasspathstring; - - my $infoline = "Setting CLASSPATH to $ENV{'CLASSPATH'}\n"; - push( @installer::globals::logfileinfo, $infoline); -} - -####################################################### -# Setting the class file name in the Java locale file -####################################################### - -sub set_classfilename -{ - my ($templatefile, $classfilename, $searchstring) = @_; - - for ( my $j = 0; $j <= $#{$templatefile}; $j++ ) - { - if ( ${$templatefile}[$j] =~ /\Q$searchstring\E/ ) - { - ${$templatefile}[$j] =~ s/$searchstring/$classfilename/; - last; - } - } -} - -####################################################### -# Substituting one variable in the xml file -####################################################### - -sub replace_one_variable -{ - my ($xmlfile, $variable, $searchstring) = @_; - - for ( my $i = 0; $i <= $#{$xmlfile}; $i++ ) - { - ${$xmlfile}[$i] =~ s/\$\{$searchstring\}/$variable/g; - } -} - -####################################################### -# Substituting the variables in the xml file -####################################################### - -sub substitute_variables -{ - my ($xmlfile, $variableshashref) = @_; - - my $key; - - foreach $key (keys %{$variableshashref}) - { - my $value = $variableshashref->{$key}; - replace_one_variable($xmlfile, $value, $key); - } -} - -########################################################## -# Finding the line number in xml file of a special -# component -########################################################## - -sub find_component_line -{ - my ($xmlfile, $componentname) = @_; - - my $linenumber = 0; - - for ( my $i = 0; $i <= $#{$xmlfile}; $i++ ) - { - if ( ${$xmlfile}[$i] =~ /name\s*\=\'\s*$componentname/ ) - { - $linenumber = $i; - last; - } - } - - return $linenumber; -} - -########################################################## -# Removing one package from the xml file -########################################################## - -sub remove_package -{ - my ($xmlfile, $packagename) = @_; - - my $searchstring = $packagename; - if ( $searchstring =~ /\-(\S+?)\s*$/ ) { $searchstring = $1; } # "SUNW%PRODUCTNAME-mailcap" -> "mailcap" - - my $packagestring = ""; - my $namestring = ""; - my $infoline = ""; - - if ( $installer::globals::issolarispkgbuild ) - { - $packagestring = "\<pkgunit"; - $namestring = "pkgName"; - } - elsif ( $installer::globals::islinuxrpmbuild ) - { - $packagestring = "\<rpmunit"; - $namestring = "rpmUniqueName"; - } - - my $removed_packge = 0; - - for ( my $i = 0; $i <= $#{$xmlfile}; $i++ ) - { - if ( ${$xmlfile}[$i] =~ /^\s*\Q$packagestring\E/ ) - { - # this is a package, but is it the correct one? - - my $do_delete = 0; - my $linecounter = 1; - my $startline = $i+1; - my $line = ${$xmlfile}[$startline]; - if (($line =~ /^\s*\Q$namestring\E\s*\=/) && ($line =~ /\-\Q$searchstring\E/)) { $do_delete = 1; } - - # but not deleting fonts package in language packs - if ( $line =~ /-ONELANGUAGE-/ ) { $do_delete = 0; } - - my $endcounter = 0; - - while ((!( $line =~ /\/\>/ )) && ( $startline <= $#{$xmlfile} )) - { - $linecounter++; - $startline++; - $line = ${$xmlfile}[$startline]; - if (($line =~ /^\s*\Q$namestring\E\s*\=/) && ($line =~ /\-\Q$searchstring\E/)) { $do_delete = 1; } - } - - $linecounter = $linecounter + 1; - - if ( $do_delete ) - { - my $infoline = "\tReally removing package $packagename from xml file.\n"; - push( @installer::globals::logfileinfo, $infoline); - splice(@{$xmlfile},$i, $linecounter); # removing $linecounter lines, beginning in line $i - $removed_packge = 1; - last; - } - } - } - - if ( $removed_packge ) - { - $infoline = "Package $packagename successfully removed from xml file.\n"; - push( @installer::globals::logfileinfo, $infoline); - } - else - { - $infoline = "Did not find package $packagename in xml file.\n"; - push( @installer::globals::logfileinfo, $infoline); - } - -} - -########################################################## -# Removing one component from the xml file -########################################################## - -sub remove_component -{ - my ($xmlfile, $componentname) = @_; - - my @removed_lines = (); - - push(@removed_lines, "\n"); - - for ( my $i = 0; $i <= $#{$xmlfile}; $i++ ) - { - if ( ${$xmlfile}[$i] =~ /name\s*\=\'\s*$componentname/ ) - { - # Counting the lines till the second "</component>" - - push(@removed_lines, ${$xmlfile}[$i]); - my $linecounter = 1; - my $startline = $i+1; - my $line = ${$xmlfile}[$startline]; - push(@removed_lines, $line); - my $endcounter = 0; - - while ((!( $line =~ /^\s*\<\/component\>\s*$/ )) && ( $startline <= $#{$xmlfile} )) - { - $linecounter++; - $startline++; - $line = ${$xmlfile}[$startline]; - push(@removed_lines, $line); - } - - $linecounter = $linecounter + 2; # last line and following empty line - - splice(@{$xmlfile},$i, $linecounter); # removing $linecounter lines, beginning in line $i - last; - } - } - - return \@removed_lines; -} - -########################################################## -# If this is an installation set without language packs -# the language pack module can be removed -########################################################## - -sub remove_languagepack_from_xmlfile -{ - my ($xmlfile) = @_; - - # Component begins with "<component selected="true" name='module_languagepacks' componentVersion="${PRODUCTVERSION}">" - # and ends with "</component>" (the second "</component>" !) - - remove_component($xmlfile, "languagepack_DEFAULT"); - remove_component($xmlfile, "languagepack_ONELANGUAGE"); - remove_component($xmlfile, "module_languagepacks"); -} - -########################################################## -# Duplicating a component -########################################################## - -sub duplicate_component -{ - my ( $arrayref ) = @_; - - @newarray = (); - - for ( my $i = 0; $i <= $#{$arrayref}; $i++ ) - { - push(@newarray, ${$arrayref}[$i]); - } - - return \@newarray; -} - -########################################################## -# Including a component into the xml file -# at a specified line -########################################################## - -sub include_component_at_specific_line -{ - my ($xmlfile, $unit, $line) = @_; - - splice(@{$xmlfile},$line, 0, @{$unit}); -} - -########################################################## -# Font packages do not exist for all languages. -########################################################## - -sub remove_font_package_from_unit -{ - my ( $unitcopy, $onelanguage ) = @_; - - my $searchstring = "-fonts"; - - my $packagestring = ""; - my $namestring = ""; - - if ( $installer::globals::issolarispkgbuild ) - { - $packagestring = "\<pkgunit"; - $namestring = "pkgName"; - } - elsif ( $installer::globals::islinuxrpmbuild ) - { - $packagestring = "\<rpmunit"; - $namestring = "rpmUniqueName"; - } - - for ( my $i = 0; $i <= $#{$unitcopy}; $i++ ) - { - if ( ${$unitcopy}[$i] =~ /^\s*\Q$packagestring\E/ ) - { - # this is a package, but is it the correct one? - - my $do_delete = 0; - my $linecounter = 1; - my $startline = $i+1; - my $line = ${$unitcopy}[$startline]; - if (($line =~ /^\s*\Q$namestring\E\s*\=/) && ($line =~ /\Q$searchstring\E/)) { $do_delete = 1; } - - my $endcounter = 0; - - while ((!( $line =~ /\/\>/ )) && ( $startline <= $#{$unitcopy} )) - { - $linecounter++; - $startline++; - $line = ${$unitcopy}[$startline]; - if (($line =~ /^\s*\Q$namestring\E\s*\=/) && ($line =~ /\Q$searchstring\E/)) { $do_delete = 1; } - } - - $linecounter = $linecounter + 1; - - if ( $do_delete ) - { - splice(@{$unitcopy},$i, $linecounter); # removing $linecounter lines, beginning in line $i - last; - } - } - } -} - -########################################################## -# If this is an installation set with language packs, -# modules for each language pack have to be created -# dynamically -########################################################## - -sub duplicate_languagepack_in_xmlfile -{ - my ($xmlfile, $languagesarrayref) = @_; - - my $unit = remove_component($xmlfile, "languagepack_ONELANGUAGE"); - my $startline = find_component_line($xmlfile, "module_languagepacks"); - my $infoline = ""; - $startline = $startline + 1; - - for ( my $i = 0; $i <= $#{$languagesarrayref}; $i++ ) - { - my $onelanguage = ${$languagesarrayref}[$i]; - my $unitcopy = duplicate_component($unit); - - # replacing string ONELANGUAGE in the unit copy - for ( my $j = 0; $j <= $#{$unitcopy}; $j++ ) { ${$unitcopy}[$j] =~ s/ONELANGUAGE/$onelanguage/g; } - - # including the unitcopy into the xml file - include_component_at_specific_line($xmlfile, $unitcopy, $startline); - $startline = $startline + $#{$unitcopy} + 1; - } - - # adding the default language as language pack, too - $unit = remove_component($xmlfile, "languagepack_DEFAULT"); - $startline = find_component_line($xmlfile, "module_languagepacks"); - $startline = $startline + 1; - - $onelanguage = ${$languagesarrayref}[0]; - $unitcopy = duplicate_component($unit); - - # replacing string DEFAULT in the unit copy - for ( my $j = 0; $j <= $#{$unitcopy}; $j++ ) { ${$unitcopy}[$j] =~ s/DEFAULT/$onelanguage/g; } - - # including the unitcopy into the xml file - include_component_at_specific_line($xmlfile, $unitcopy, $startline); - $startline = $startline + $#{$unitcopy} + 1; -} - -####################################################### -# Removing empty packages from xml file. The names -# are stored in @installer::globals::emptypackages -####################################################### - -sub remove_empty_packages_in_xmlfile -{ - my ($xmlfile) = @_; - - for ( my $i = 0; $i <= $#installer::globals::emptypackages; $i++ ) - { - my $packagename = $installer::globals::emptypackages[$i]; - my $infoline = "Try to remove package $packagename from xml file.\n"; - push( @installer::globals::logfileinfo, $infoline); - remove_package($xmlfile, $packagename); - } -} - -####################################################### -# Preparing the language packs in the xml file -####################################################### - -sub prepare_language_pack_in_xmlfile -{ - my ($xmlfile, $languagesarrayref) = @_; - - # if ( ! $installer::globals::is_unix_multi ) - # { - # remove_languagepack_from_xmlfile($xmlfile); - # } - # else - # { - duplicate_languagepack_in_xmlfile($xmlfile, $languagesarrayref); - # } - -} - -####################################################### -# Returning a rpm unit from a xml file -####################################################### - -sub get_rpm_unit_from_xmlfile -{ - my ($rpmname, $xmlfile) = @_; - - my $infoline = "Searching for $rpmname in xml file.\n"; - push( @installer::globals::logfileinfo, $infoline); - - my @rpmunit = (); - my $includeline = 0; - my $record = 0; - my $foundrpm = 0; - - for ( my $i = 0; $i <= $#{$xmlfile}; $i++ ) - { - my $oneline = ${$xmlfile}[$i]; - - if ( $oneline =~ /^\s*\<rpmunit/ ) { $record = 1; } - - if ( $record ) { push(@rpmunit, $oneline); } - - if ( $oneline =~ /^\s*rpmUniqueName\s*=\s*\"\Q$rpmname\E\"\s*$/ ) { $foundrpm = 1; } - - if (( $record ) && ( $oneline =~ /\/\>\s*$/ )) { $record = 0; } - - if (( ! $foundrpm ) && ( ! $record )) { @rpmunit = (); } - - if (( $foundrpm ) && ( ! $record )) { $includeline = $i + 1; } - - if (( $foundrpm ) && ( ! $record )) { last; } - } - - if ( ! $foundrpm ) { installer::exiter::exit_program("ERROR: Did not find rpmunit $rpmname in xml file!", "get_rpm_unit_from_xmlfile"); } - - $infoline = "Found $rpmname in xml file. Returning block lines: $#rpmunit + 1. Includeline: $includeline \n"; - push( @installer::globals::logfileinfo, $infoline); - - return (\@rpmunit, $includeline); -} - -####################################################### -# Exchanging package names in xml file -####################################################### - -sub exchange_name_in_rpmunit -{ - my ($rpmunit, $oldpackagename, $newpackagename) = @_; - - for ( my $i = 0; $i <= $#{$rpmunit}; $i++ ) - { - ${$rpmunit}[$i] =~ s/$oldpackagename/$newpackagename/; - } -} - -####################################################### -# Preparing link RPMs in the xml file -####################################################### - -sub prepare_linkrpm_in_xmlfile -{ - my ($xmlfile, $rpmlist) = @_; - - for ( my $i = 0; $i <= $#{$rpmlist}; $i++ ) - { - my $oldpackagename = ""; - my $newpackagename = ""; - - my $rpmline = ${$rpmlist}[$i]; - - my $infoline = "Preparing link/patch RPM: $rpmline\n"; - push( @installer::globals::logfileinfo, $infoline); - - if ( $rpmline =~ /^\s*(\S.*?\S)\s+(\S.*?\S)\s*$/ ) - { - $oldpackagename = $1; - $newpackagename = $2; - } - - my ($rpmunit, $includeline) = get_rpm_unit_from_xmlfile($oldpackagename, $xmlfile); - exchange_name_in_rpmunit($rpmunit, $oldpackagename, $newpackagename); - include_component_at_specific_line($xmlfile, $rpmunit, $includeline); - } -} - -####################################################################### -# Removing w4w filter module from xml file for Solaris x86 and Linux -####################################################################### - -sub remove_w4w_from_xmlfile -{ - my ($xmlfile) = @_; - - # Component begins with "<component selected='true' name='gid_Module_Prg_Wrt_Flt_W4w' componentVersion="8">" - # and ends with "</component>" - - for ( my $i = 0; $i <= $#{$xmlfile}; $i++ ) - { - if ( ${$xmlfile}[$i] =~ /name\s*\=\'\s*gid_Module_Prg_Wrt_Flt_W4w/ ) - { - # Counting the lines till "</component>" - - my $linecounter = 1; - my $startline = $i+1; - my $line = ${$xmlfile}[$startline]; - - while ((!( $line =~ /^\s*\<\/component\>\s*$/ )) && ( $startline <= $#{$xmlfile} )) - { - $linecounter++; - $startline++; - $line = ${$xmlfile}[$startline]; - } - - $linecounter = $linecounter + 2; # last line and following empty line - - splice(@{$xmlfile},$i, $linecounter); # removing $linecounter lines, beginning in line $i - last; - } - } -} - -####################################################################### -# Removing module from xml file, if not defined in scp -####################################################################### - -sub remove_scpgid_from_xmlfile -{ - my ($xmlfile, $scpgid) = @_; - - # Component begins with "<component selected='true' name='$scpgid' componentVersion="8">" - # and ends with "</component>" - - my $successfully_removed = 0; - - for ( my $i = 0; $i <= $#{$xmlfile}; $i++ ) - { - if ( ${$xmlfile}[$i] =~ /name\s*\=\'\s*\Q$scpgid\E/ ) - { - # Counting the lines till "</component>" - - my $linecounter = 1; - my $startline = $i+1; - my $line = ${$xmlfile}[$startline]; - - while ((!( $line =~ /^\s*\<\/component\>\s*$/ )) && ( $startline <= $#{$xmlfile} )) - { - $linecounter++; - $startline++; - $line = ${$xmlfile}[$startline]; - } - - $linecounter = $linecounter + 2; # last line and following empty line - - splice(@{$xmlfile},$i, $linecounter); # removing $linecounter lines, beginning in line $i - $successfully_removed = 1; - last; - } - } - - my $infoline = ""; - if ($successfully_removed) - { - $infoline = "Module $scpgid successfully removed from xml file.\n"; - push( @installer::globals::logfileinfo, $infoline); - } - else - { - $infoline = "Module $scpgid not found in xml file (no problem).\n"; - push( @installer::globals::logfileinfo, $infoline); - } -} - -####################################################################### -# Special mechanism for removing modules for xml file, if they are -# not defined in scp (introduced for onlineupdate module). -####################################################################### - -sub remove_module_if_not_defined -{ - my ($xmlfile, $modulesarrayref, $scpgid) = @_; - - my $infoline = "Checking existence of $scpgid in scp definition\n"; - push( @installer::globals::logfileinfo, $infoline); - - my $found = 0; - - for ( my $i = 0; $i <= $#{$modulesarrayref}; $i++ ) - { - my $onemodule = ${$modulesarrayref}[$i]; - if ( $onemodule->{'gid'} eq $scpgid ) { $found = 1; } - if ( $found ) { last; } - } - - if ( ! $found ) - { - $infoline = "Module $scpgid not found -> Removing from xml file.\n"; - push( @installer::globals::logfileinfo, $infoline); - remove_scpgid_from_xmlfile($xmlfile, $scpgid); - } -} - -########################################################### -# Preparing the package subdirectory -########################################################### - -sub create_empty_packages -{ - my ( $xmlfile ) = @_; - - if ( $installer::globals::issolarispkgbuild ) - { - my $path = ""; - - for ( my $i = 0; $i <= $#{$xmlfile}; $i++ ) - { - if ( ${$xmlfile}[$i] =~ /pkgRelativePath\s*\=\s*\'(.*?)\'\s*$/ ) - { - $path = $1; - installer::systemactions::create_directory_structure($path); - last; # only creating one path - } - } - - for ( my $i = 0; $i <= $#{$xmlfile}; $i++ ) - { - if ( ${$xmlfile}[$i] =~ /pkgName\s*\=\s*\'(.*?)\'\s*$/ ) - { - my $pkgname = $1; - if ( $path ne "" ) { $pkgname = $path . $installer::globals::separator . $pkgname; } - installer::systemactions::create_directory_structure($pkgname); - } - } - } - - # "-novalidate" does not work for Linux RPMs - - if ( $installer::globals::islinuxrpmbuild ) - { - for ( my $i = 0; $i <= $#{$xmlfile}; $i++ ) - { - if ( ${$xmlfile}[$i] =~ /rpmPath\s*\=\s*\"(.*?)\"\s*$/ ) - { - my $rpmpath = $1; - my $path = ""; - - if ( $rpmpath =~ /^\s*(.*)\/(.*?)\s*$/ ) - { - $path = $1; - } - - if ( $path ne "" ) { installer::systemactions::create_directory_structure($path); } - - my $systemcall = "touch $rpmpath"; # creating empty rpm - system($systemcall); - } - } - } -} - -########################################################### -# Reading the archive file name from the xml file -########################################################### - -sub get_archivefilename -{ - my ( $xmlfile ) = @_; - - my $archivefilename = ""; - - for ( my $j = 0; $j <= $#{$xmlfile}; $j++ ) - { - if ( ${$xmlfile}[$j] =~ /archiveFileName\s*=\s*\'(.*?)\'/ ) - { - $archivefilename = $1; - last; - } - } - - return $archivefilename; -} - -####################################################### -# Copying the loader locally -####################################################### - -sub copy_setup_locally -{ - my ($includepatharrayref, $loadername, $newname) = @_; - - my $loadernameref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$loadername, $includepatharrayref, 0); - - if ($$loadernameref eq "") { installer::exiter::exit_program("ERROR: Could not find Java loader $loadername!", "copy_setup_locally"); } - - installer::systemactions::copy_one_file($$loadernameref, $newname); - my $localcall = "chmod 775 $newname \>\/dev\/null 2\>\&1"; - system($localcall); -} - - -####################################################### -# Copying the loader into the installation set -####################################################### - -sub put_loader_into_installset -{ - my ($installdir, $filename) = @_; - - my $installname = $installdir . $installer::globals::separator . $filename; - - installer::systemactions::copy_one_file($filename, $installname); - - my $localcall = "chmod 775 $installname \>\/dev\/null 2\>\&1"; - system($localcall); -} - -################################################################# -# Setting for Solaris the package names in the Java translation -# file. The name is used for the -# This name is displayed tools like prodreg. -# Unfortunately this name in the component is also used -# in the translation template file for the module name -# and module description translations. -################################################################# - -sub replace_component_name_in_java_file -{ - my ($alljavafiles, $oldname, $newname) = @_; - - # The new name must not contain white spaces - - $newname =~ s/ /\_/g; - - for ( my $i = 0; $i <= $#{$alljavafiles}; $i++ ) - { - my $javafilename = ${$alljavafiles}[$i]; - my $javafile = installer::files::read_file($javafilename); - - my $oldstring = "ComponentDescription-" . $oldname; - my $newstring = "ComponentDescription-" . $newname; - - for ( my $j = 0; $j <= $#{$javafile}; $j++ ) { ${$javafile}[$j] =~ s/\b$oldstring\b/$newstring/; } - - $oldstring = $oldname . "-install-DisplayName"; - $newstring = $newname . "-install-DisplayName"; - - for ( my $j = 0; $j <= $#{$javafile}; $j++ ) { ${$javafile}[$j] =~ s/\b$oldstring\b/$newstring/; } - - $oldstring = $oldname . "-uninstall-DisplayName"; - $newstring = $newname . "-uninstall-DisplayName"; - - for ( my $j = 0; $j <= $#{$javafile}; $j++ ) { ${$javafile}[$j] =~ s/\b$oldstring\b/$newstring/; } - - installer::files::save_file($javafilename, $javafile); - $infoline = "Changes in Java file: $javafilename : $oldname \-\> $newname\n"; - push( @installer::globals::logfileinfo, $infoline); - } -} - -################################################################# -# Some module names are not defined in the scp project. -# The names for this modules are searched in the base Java -# translation file. -################################################################# - -sub get_module_name_from_basejavafile -{ - my ($componentname, $javatemplateorigfile, $ulffile) = @_; - - my $searchname = $componentname . "-install-DisplayName"; - my $modulename = ""; - my $replacename = ""; - - # line content: { "coremodule-install-DisplayName", "OOO_INSTALLSDK_117" }, - - for ( my $i = 0; $i <= $#{$javatemplateorigfile}; $i++ ) - { - if ( ${$javatemplateorigfile}[$i] =~ /\"\s*\Q$searchname\E\s*\"\s*\,\s*\"\s*(.*?)\s*\"\s*\}\s*\,\s*$/ ) - { - $replacename = $1; - last; - } - } - - if ( $replacename ne "" ) - { - my $language_block = get_language_block_from_language_file($replacename, $ulffile); - $modulename = get_language_string_from_language_block($language_block, "en-US", $replacename); - } - - return $modulename; -} - -################################################################# -# Setting for Solaris the package names in the xml file. -# This name is displayed tools like prodreg. -# Unfortunately this name in the component is also used -# in the translation template file for the module name -# and module description translations. -################################################################# - -sub replace_component_names -{ - my ($xmlfile, $templatefilename, $modulesarrayref, $javatemplateorigfile, $ulffile) = @_; - - # path in which all java languages files are located - - my $javafilesdir = $templatefilename; - installer::pathanalyzer::get_path_from_fullqualifiedname(\$javafilesdir); - my $alljavafiles = installer::systemactions::find_file_with_file_extension("java", $javafilesdir); - for ( my $i = 0; $i <= $#{$alljavafiles}; $i++ ) { ${$alljavafiles}[$i] = $javafilesdir . ${$alljavafiles}[$i]; } - - # analyzing the xml file - - for ( my $i = 0; $i <= $#{$xmlfile}; $i++ ) - { - my $newstring = ""; - my $componentname = ""; - - if ( ${$xmlfile}[$i] =~ /\bcomponent\b.*\bname\s*\=\'\s*(.*?)\s*\'/ ) - { - $componentname = $1; - - # Getting module name from the scp files in $modulesarrayref - - my $onelanguage = "en-US"; - my $gid = $componentname; - my $type = "Name"; - - my $modulename = ""; - $modulename = get_module_name_description($modulesarrayref, $onelanguage, $gid, $type); - - if ( $modulename eq "" ) - { - $infoline = "Info: Modulename for $gid not defined in modules collector. Looking in Java ulf file.\n"; - push( @installer::globals::logfileinfo, $infoline); - } - - if ( $modulename eq "" ) # the modulename can also be set in the Java ulf file - { - $modulename = get_module_name_from_basejavafile($componentname, $javatemplateorigfile, $ulffile); - } - - if ( $modulename ne "" ) # only do something, if the modulename was found - { - ${$xmlfile}[$i] =~ s/$componentname/$modulename/; - - $infoline = "Replacement in xml file (Solaris): $componentname \-\> $modulename\n"; - push( @installer::globals::logfileinfo, $infoline); - - # Replacement has to be done in all Java language files - replace_component_name_in_java_file($alljavafiles, $componentname, $modulename); - } - - if ( $modulename eq "" ) # the modulename can also be set in the Java ulf file - { - $infoline = "WARNING: No replacement in xml file for component: $componentname\n"; - push( @installer::globals::logfileinfo, $infoline); - } - } - } -} - -############################################################################# -# Collecting all packages or rpms located in the installation directory -############################################################################# - -sub get_all_packages_in_installdir -{ - my ($installdir, $subdir) = @_; - - my $infoline = ""; - - my @allrpms = (); # not needed for Solaris at the moment - my $allrpms = \@allrpms; - - $installdir =~ s/\Q$installer::globals::separator\E\s*$//; - my $directory = $installdir . $installer::globals::separator . $subdir; - $directory =~ s/\Q$installer::globals::separator\E\s*$//; - - if ( $installer::globals::islinuxrpmbuild ) - { - $allrpms = installer::systemactions::find_file_with_file_extension("rpm", $directory); - - # collecting rpms with the complete path - - for ( my $i = 0; $i <= $#{$allrpms}; $i++ ) - { - ${$allrpms}[$i] = $directory . $installer::globals::separator . ${$allrpms}[$i]; - $infoline = "Found RPM: ${$allrpms}[$i]\n"; - push( @installer::globals::logfileinfo, $infoline); - } - } - - return $allrpms; -} - -####################################################### -# Adding the values of the array -####################################################### - -sub do_sum -{ - my ( $allnumbers ) = @_; - - my $sum = 0; - - for ( my $i = 0; $i <= $#{$allnumbers}; $i++ ) - { - $sum = $sum + ${$allnumbers}[$i]; - } - - return $sum; -} - -####################################################### -# Setting the filesize for the RPMs in the xml file -####################################################### - -sub set_filesize_in_xmlfile -{ - my ($filesize, $rpmname, $xmlfile) = @_; - - my $infoline = ""; - my $foundrpm = 0; - my $filesizeset = 0; - - for ( my $i = 0; $i <= $#{$xmlfile}; $i++ ) - { - my $line = ${$xmlfile}[$i]; - - # searching for "rpmPath="RPMS/${UNIXPRODUCTNAME}-core01-${PACKAGEVERSION}-${PACKAGEREVISION}.i586.rpm"" - - if (( $line =~ /rpmPath\s*=/ ) && ( $line =~ /\Q$rpmname\E\"\s*$/ )) - { - $foundrpm = 1; - - my $number = $i; - $number++; - - while ( ! ( ${$xmlfile}[$number] =~ /\/\>\s*$/ )) - { - if ( ${$xmlfile}[$number] =~ /FILESIZEPLACEHOLDER/ ) - { - ${$xmlfile}[$number] =~ s/FILESIZEPLACEHOLDER/$filesize/; - $filesizeset = 1; - $infoline = "Setting filesize for $rpmname : $filesize\n"; - push( @installer::globals::logfileinfo, $infoline); - last; - } - - $number++; - } - - last; - } - } - - if ( ! $foundrpm ) - { - $infoline = "ERROR: Did not find $rpmname in xml file !\n"; - push( @installer::globals::logfileinfo, $infoline); - } - - if ( ! $filesizeset ) - { - $infoline = "ERROR: Did not set filesize for $rpmname in xml file !\n"; - push( @installer::globals::logfileinfo, $infoline); - } -} - -############################################################ -# Collecting all rpmUniqueName in xml file. -############################################################ - -sub collect_uniquenames_in_xmlfile -{ - my ($xmlfile) = @_; - - my @rpmuniquenames = (); - - for ( my $i = 0; $i <= $#{$xmlfile}; $i++ ) - { - my $oneline = ${$xmlfile}[$i]; - - if ( $oneline =~ /^\s*rpmUniqueName\s*\=\s*\"(.*)\"\s*$/ ) - { - my $rpmuniquename = $1; - push(@rpmuniquenames, $rpmuniquename) - } - } - - return \@rpmuniquenames; -} - -############################################################ -# Searching for the corresponding rpm, that fits to -# the unique rpm name. -# Simple mechanism: The name of the rpm starts with the -# unique rpm name followed by a "-". -############################################################ - -sub find_rpmname_to_uniquename -{ - my ($uniquename, $listofpackages) = @_; - - my @all_correct_rpms = (); - my $infoline = ""; - - # special handling for java RPMs, which have a very strange naming schema - my $localuniquename = $uniquename; - if ( $uniquename =~ /^\s*jre\-/ ) { $localuniquename = "jre"; } - - for ( my $i = 0; $i <= $#{$listofpackages}; $i++ ) - { - my $completerpmname = ${$listofpackages}[$i]; - my $rpmname = $completerpmname; - installer::pathanalyzer::make_absolute_filename_to_relative_filename(\$rpmname); - - if ( $rpmname =~ /^\s*\Q$localuniquename\E\-\d/ ) { push(@all_correct_rpms, $rpmname); } - } - - # @all_correct_rpms has to contain exactly one value - - if ( $#all_correct_rpms > 0 ) - { - my $number = $#all_correct_rpms + 1; - $infoline = "There are $number RPMs for the unique name \"$uniquename\" :\n"; - push( @installer::globals::logfileinfo, $infoline); - my $allrpmstring = ""; - for ( my $i = 0; $i <= $#all_correct_rpms; $i++ ) { $allrpmstring = $allrpmstring . $all_correct_rpms[$i] . "\n"; } - push( @installer::globals::logfileinfo, $allrpmstring); - installer::exiter::exit_program("ERROR: Found $number RPMs that start with unique name \"$uniquename\". Only one allowed!", "find_rpmname_to_uniquename"); - } - - if ( $#all_correct_rpms < 0 ) - { - $infoline = "There is no rpm for the unique name \"$uniquename\"\n"; - push( @installer::globals::logfileinfo, $infoline); - installer::exiter::exit_program("ERROR: There is no RPM that start with unique name \"$uniquename\"!", "find_rpmname_to_uniquename"); - } - - if ( $#all_correct_rpms == 0 ) - { - $infoline = "Found one rpm for the unique name \"$uniquename\" : $all_correct_rpms[0]\n"; - push( @installer::globals::logfileinfo, $infoline); - } - - return $all_correct_rpms[0]; -} - -####################################################### -# Including the complete RPM name into the xml file -####################################################### - -sub set_rpmname_into_xmlfile -{ - my ($rpmname, $uniquename, $xmlfile) = @_; - - my $foundrpm = 0; - my $rpmnameset = 0; - - for ( my $i = 0; $i <= $#{$xmlfile}; $i++ ) - { - my $oneline = ${$xmlfile}[$i]; - - if ( $oneline =~ /^\s*rpmUniqueName\s*\=\s*\"\Q$uniquename\E\"\s*$/ ) - { - $foundrpm = 1; - - my $number = $i; - $number++; - - while ( ! ( ${$xmlfile}[$number] =~ /\/\>\s*$/ )) - { - if ( ${$xmlfile}[$number] =~ /RPMFILENAMEPLACEHOLDER/ ) - { - ${$xmlfile}[$number] =~ s/RPMFILENAMEPLACEHOLDER/$rpmname/; - $rpmnameset = 1; - $infoline = "Setting RPM name for $uniquename : $rpmname\n"; - push( @installer::globals::logfileinfo, $infoline); - last; - } - - $number++; - } - - last; - } - } - - if ( ! $foundrpm ) - { - $infoline = "ERROR: Did not find $rpmname in xml file !\n"; - push( @installer::globals::logfileinfo, $infoline); - } - - if ( ! $rpmnameset ) - { - $infoline = "ERROR: Did not set rpm name for $uniquename in xml file !\n"; - push( @installer::globals::logfileinfo, $infoline); - } - -} - -############################################################ -# Including the rpm path dynamically into the xml file. -# This is introduced, because system integration has -# variable PackageVersion and PackageRevision in xml file. -############################################################ - -sub put_rpmpath_into_xmlfile -{ - my ($xmlfile, $listofpackages) = @_; - - my $infoline = ""; - - my $alluniquenames = collect_uniquenames_in_xmlfile($xmlfile); - - my $number = $#{$listofpackages} + 1; - $infoline = "Number of packages in installation set: $number\n"; - push( @installer::globals::logfileinfo, $infoline); - $number = $#{$alluniquenames} + 1; - $infoline = "Number of unique RPM names in xml file: $number\n"; - push( @installer::globals::logfileinfo, $infoline); - - $infoline = "\nPackages in installation set:\n"; - push( @installer::globals::logfileinfo, $infoline); - for ( my $i = 0; $i <= $#{$listofpackages}; $i++ ) - { - $infoline = "${$listofpackages}[$i]\n"; - push( @installer::globals::logfileinfo, $infoline); - } - - $infoline = "\nUnique RPM names in xml file:\n"; - push( @installer::globals::logfileinfo, $infoline); - for ( my $i = 0; $i <= $#{$alluniquenames}; $i++ ) - { - $infoline = "${$alluniquenames}[$i]\n"; - push( @installer::globals::logfileinfo, $infoline); - } - - if ( $#{$alluniquenames} != $#{$listofpackages} ) { installer::exiter::exit_program("ERROR: xml file contains $#{$alluniquenames} unique names, but there are $#{$listofpackages} packages in installation set!", "put_rpmpath_into_xmlfile"); } - - for ( my $i = 0; $i <= $#{$alluniquenames}; $i++ ) - { - my $uniquename = ${$alluniquenames}[$i]; - my $rpmname = find_rpmname_to_uniquename($uniquename, $listofpackages); - set_rpmname_into_xmlfile($rpmname, $uniquename, $xmlfile); - } -} - -####################################################### -# Including the file size of the rpms into the -# xml file -####################################################### - -sub put_filesize_into_xmlfile -{ - my ($xmlfile, $listofpackages) = @_; - - my $infoline = ""; - - for ( my $i = 0; $i <= $#{$listofpackages}; $i++ ) - { - my $completerpmname = ${$listofpackages}[$i]; - my $rpmname = $completerpmname; - installer::pathanalyzer::make_absolute_filename_to_relative_filename(\$rpmname); - - if ( ! $installer::globals::rpmquerycommand ) { installer::exiter::exit_program("ERROR: rpm not found for querying packages!", "put_filesize_into_xmlfile"); } - my $systemcall = "$installer::globals::rpmquerycommand -qp --queryformat \"\[\%\{FILESIZES\}\\n\]\" $completerpmname 2\>\&1 |"; - my $rpmout = make_systemcall($systemcall, 0); - my $filesize = do_sum($rpmout); - - $infoline = "Filesize $rpmname : $filesize\n"; - push( @installer::globals::logfileinfo, $infoline); - - set_filesize_in_xmlfile($filesize, $rpmname, $xmlfile); - } -} - -####################################################### -# Creating the java installer class file dynamically -####################################################### - -sub create_java_installer -{ - my ( $installdir, $newdir, $languagestringref, $languagesarrayref, $allvariableshashref, $includepatharrayref, $modulesarrayref ) = @_; - - installer::logger::include_header_into_logfile("Creating Java installer:"); - - my $infoline = ""; - - # collecting all packages or rpms located in the installation directory - my $listofpackages = get_all_packages_in_installdir($installdir, $newdir); - - # creating the directory - my $javadir = installer::systemactions::create_directories("javainstaller", $languagestringref); - $javadir =~ s/\/\s*$//; -# push(@installer::globals::removedirs, $javadir); - - # copying the content from directory install_sdk into the java directory - - my $projectroot = ""; - if ( $ENV{'PRJ'} ) { $projectroot = $ENV{'PRJ'}; } - else { installer::exiter::exit_program("ERROR: Environment variable PRJ not set", "create_java_installer"); } - - $projectroot =~ s/\/\s*$//; - my $sourcedir = "$projectroot/inc_global/unix/install_sdk"; - installer::systemactions::copy_complete_directory_without_cvs($sourcedir, $javadir); - - # determining the java template file - - my $templatefilename = $javadir . $installer::globals::separator . "locale/resources/MyResources_template.java"; - - # Saving the content of the template file. It is used in the xml files - - my $javatemplateorigfile = installer::files::read_file($templatefilename); - - # determining the ulf language file - - # my $ulffilename = "installsdk.ulf"; - my $ulffilename = "installsdk.jlf"; - $ulffilename = $installer::globals::javalanguagepath . $installer::globals::separator . $ulffilename; - my $ulffile = installer::files::read_file($ulffilename); - - $infoline = "\nReading ulf file: $ulffilename\n"; - push( @installer::globals::logfileinfo, $infoline); - - $infoline = "Translating the Java template file\n"; - push( @installer::globals::logfileinfo, $infoline); - - for ( my $i = 0; $i <= $#{$languagesarrayref}; $i++ ) - { - my $onelanguage = ${$languagesarrayref}[$i]; - - # replacing all strings in the Java file with content of ulf files - - my $templatefile = installer::files::read_file($templatefilename); - - set_component_name_and_description($templatefile, $modulesarrayref, $onelanguage); - translate_javafile($templatefile, $ulffile, $onelanguage); - - # adding the license file into the Java file - - my $licensefilesource = get_licensefilesource($onelanguage, $includepatharrayref); - my $licensefile = installer::files::read_file($licensefilesource); - add_license_file_into_javafile($templatefile, $licensefile, $includepatharrayref, $javadir, $onelanguage); - - # setting productname and productversion - - set_productname_and_productversion($templatefile, $allvariableshashref); - - # setting the class name in the java file ( "MyResources_TEMPLATE" -> "MyResources_en" ) - - # if ( $onelanguage =~ /^\s*(\w+)\-(\w+)\s*$/ ) { $onelanguage = $1; } - $onelanguage =~ s/en-US/en/; # java file name and class name contain only "_en" - $onelanguage =~ s/\-/\_/; # "pt-BR" -> "pt_BR" - my $classfilename = "MyResources_" . $onelanguage; - set_classfilename($templatefile, $classfilename, "MyResources_TEMPLATE"); - - # saving the new file - - my $newfilename = $templatefilename; - $newfilename =~ s/_template\.java\s*$/_$onelanguage\.java/; - - installer::files::save_file($newfilename, $templatefile); - - $infoline = "Saving Java file: $newfilename\n"; - push( @installer::globals::logfileinfo, $infoline); - } - - # renaming one language java file to "MyResources.java" - - my $baselanguage = installer::languages::get_default_language($languagesarrayref); - $baselanguage =~ s/\-/\_/; # "pt-BR" -> "pt_BR" - $baselanguage =~ s/en_US/en/; # java file name and class name contain only "_en" - # if ( $baselanguage =~ /^\s*(\w+)\-(\w+)\s*$/ ) { $baselanguage = $1; } # java file name and class name contain only "_en" - # $baselanguage =~ s/en-US/en/; # java file name and class name contain only "_en" - my $baselanguagefilename = $javadir . $installer::globals::separator . "locale/resources/MyResources_" . $baselanguage . "\.java"; - my $basedestfilename = $javadir . $installer::globals::separator . "locale/resources/MyResources.java"; - installer::systemactions::copy_one_file($baselanguagefilename, $basedestfilename); - - # setting the class file name also for the base class - - my $basetemplatefile = installer::files::read_file($basedestfilename); - my $oldclassfilename = $baselanguagefilename; - installer::pathanalyzer::make_absolute_filename_to_relative_filename(\$oldclassfilename); - $oldclassfilename =~ s/\.java//; - my $newclassfilename = $basedestfilename; - installer::pathanalyzer::make_absolute_filename_to_relative_filename(\$newclassfilename); - $newclassfilename =~ s/\.java//; - - set_classfilename($basetemplatefile, $newclassfilename, $oldclassfilename); - - installer::files::save_file($basedestfilename, $basetemplatefile); - - $infoline = "Created base Java file: $basedestfilename\n"; - push( @installer::globals::logfileinfo, $infoline); - - # deleting the template file - - unlink($templatefilename); - - $infoline = "Deleted template Java resource file: $templatefilename\n"; - push( @installer::globals::logfileinfo, $infoline); - - # changing into Java directory - - my $from = cwd(); - - chdir($javadir); - - $infoline = "Changing into directory: $javadir\n"; - push( @installer::globals::logfileinfo, $infoline); - - # preparing the xml file - - my $xmlfilename = ""; - my $subdir = ""; - - if ( $installer::globals::issolarispkgbuild ) - { - $xmlfilename = "pkgUnit.xml"; - } - elsif ( $installer::globals::islinuxrpmbuild ) - { - $xmlfilename = "rpmUnit.xml"; - } - else - { - installer::exiter::exit_program("ERROR: No platform for Install SDK", "create_java_installer"); - } - - # reading, editing and saving the xmlfile - - my $xmlfile = installer::files::read_file($xmlfilename); - prepare_language_pack_in_xmlfile($xmlfile, $languagesarrayref); - my $xmlfilename2 = $xmlfilename . ".test2"; - installer::files::save_file($xmlfilename2, $xmlfile); - remove_empty_packages_in_xmlfile($xmlfile); - my $xmlfilename3 = $xmlfilename . ".test3"; - installer::files::save_file($xmlfilename3, $xmlfile); - substitute_variables($xmlfile, $allvariableshashref); - if (( $installer::globals::islinuxrpmbuild ) && ( $#installer::globals::linkrpms > -1 )) { prepare_linkrpm_in_xmlfile($xmlfile,\@installer::globals::linkrpms); } - if ( $installer::globals::issolarisx86build || $installer::globals::islinuxbuild ) { remove_w4w_from_xmlfile($xmlfile); } - remove_module_if_not_defined($xmlfile, $modulesarrayref, "gid_Module_Optional_Onlineupdate"); - replace_component_names($xmlfile, $templatefilename, $modulesarrayref, $javatemplateorigfile, $ulffile); - my $xmlfilename4 = $xmlfilename . ".test4"; - installer::files::save_file($xmlfilename4, $xmlfile); - if ( $installer::globals::islinuxrpmbuild ) { put_rpmpath_into_xmlfile($xmlfile, $listofpackages); } - if ( $installer::globals::islinuxrpmbuild ) { put_filesize_into_xmlfile($xmlfile, $listofpackages); } - installer::files::save_file($xmlfilename, $xmlfile); - $infoline = "Saving xml file: $xmlfilename\n"; - push( @installer::globals::logfileinfo, $infoline); - - # Setting the classpath and starting compiler - - set_classpath_for_install_sdk($javadir); - - # creating class files: - # language class file, dialog class files, installer class file - - my $jdkpath = ""; - if ( $ENV{'JDKPATH'} ) { $jdkpath = $ENV{'JDKPATH'}; } - - my $javac = "javac"; - if ( $jdkpath ) { $javac = $jdkpath . $installer::globals::separator . $javac; } - - my $systemcall = "$javac locale\/resources\/\*\.java 2\>\&1 |"; - make_systemcall($systemcall, 1); - - $systemcall = "$javac com\/sun\/staroffice\/install\/\*\.java 2\>\&1 |"; - make_systemcall($systemcall, 1); - - # making subdirectory creating empty packages - create_empty_packages($xmlfile); - - # Copy "jresetup" from solver locally to include it into the classfile - # Copy "jresetup" from solver to installdir - - my $setupname = "jresetup"; - my $newname = "setup"; - copy_setup_locally($includepatharrayref, $setupname, $newname); - - my $java = "java"; - if ( $jdkpath ) { $java = $jdkpath . $installer::globals::separator . $java; } - - $systemcall = "$java com.sun.setup.builder.InstallBuilder $xmlfilename -novalidate 2\>\&1 |"; - make_systemcall($systemcall, 1); - - # copying the newly created classfile into the installation set - - my $archivefilename = get_archivefilename($xmlfile); - $archivefilename = $archivefilename . ".class"; - - if ( ! -f $archivefilename ) { installer::exiter::exit_program("ERROR: Could not find Java class file $archivefilename!", "create_java_installer"); } - - installer::systemactions::copy_one_file($archivefilename, $installdir); - - # Adding the loader into the installation set. The name of the loader is setup. - put_loader_into_installset($installdir, $newname); - - chdir($from); - - $infoline = "Changing into directory: $from\n"; - push( @installer::globals::logfileinfo, $infoline); -} - -1; diff --git a/solenv/bin/modules/installer/languagepack.pm b/solenv/bin/modules/installer/languagepack.pm index ded5bc3d2e21..2108c17ae724 100644 --- a/solenv/bin/modules/installer/languagepack.pm +++ b/solenv/bin/modules/installer/languagepack.pm @@ -82,33 +82,6 @@ sub select_language_items if ( $specificlanguage eq $onelanguage ) { - # $oneitem->{'modules'} = $installer::globals::rootmodulegid; # all files in a language pack are root files - # Using $installer::globals::languagemodulesbase (?) - -# # no more automatic change of module assignments -# $oneitem->{'modules'} = $installer::globals::rootmodulegid . "_$locallang"; # all files in a language pack are root files -# -# if (( $installer::globals::islinuxbuild ) || ( $installer::globals::issolarispkgbuild )) -# { -# if ( $oneitem->{'Dir'} ) -# { -# if ( $oneitem->{'Dir'} eq "gid_Dir_Fonts_Truetype" ) { $oneitem->{'modules'} = "gid_Module_Langpack_Fonts_$locallang"; } -# if ( $oneitem->{'Dir'} eq "gid_Dir_Resource" ) { $oneitem->{'modules'} = "gid_Module_Langpack_Resource_$locallang"; } -# if ( $oneitem->{'Dir'} eq "gid_Dir_Help_Isolanguage" ) { $oneitem->{'modules'} = "gid_Module_Langpack_Help_$locallang"; } -# } -# } - - # preparing different modules for Windows Installer language packs - # my $underlinelanguage = $specificlanguage; - # $underlinelanguage =~ s/-/_/; - # if ( $installer::globals::iswindowsbuild ) { $oneitem->{'modules'} = $installer::globals::languagemodulesbase . $underlinelanguage; } - -# # no more collecting of language pack feature -# if (! installer::existence::exists_in_array($oneitem->{'modules'}, \@installer::globals::languagepackfeature)) -# { -# push(@installer::globals::languagepackfeature, $oneitem->{'modules'}); # Collecting all language pack feature -# } - push(@itemsarray, $oneitem); } } @@ -195,20 +168,6 @@ sub get_packagename_from_packagelist { my ( $alldirs, $allvariables, $languagestringref ) = @_; - # my $packagename = ""; - - # for ( my $i = 0; $i <= $#{$alldirs}; $i++ ) - # { - # if ( ${$alldirs}[$i] =~ /-fonts/ ) { next; } - # if ( ${$alldirs}[$i] =~ /-help/ ) { next; } - # if ( ${$alldirs}[$i] =~ /-res/ ) { next; } - # - # $packagename = ${$alldirs}[$i]; - # last; - # } - - # if ( $packagename eq "" ) { installer::exiter::exit_program("ERROR: Could not find base package in directory $installdir!", "get_packagename_from_packagelist"); } - my $localproductname = $allvariables->{'PRODUCTNAME'}; $localproductname = lc($localproductname); $localproductname =~ s/ //g; @@ -232,14 +191,14 @@ sub determine_packagename my $packagename = ""; my $allnames = ""; - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { # determining the rpm file in directory $installdir my $fileextension = "rpm"; my $rpmfiles = installer::systemactions::find_file_with_file_extension($fileextension, $installdir); if ( ! ( $#{$rpmfiles} > -1 )) { installer::exiter::exit_program("ERROR: Could not find package in directory $installdir!", "determine_packagename"); } - my $rpmsav = installer::converter::copy_array_from_references($rpmfiles); + my $rpmsav = [@{$rpmfiles}]; for ( my $i = 0; $i <= $#{$rpmfiles}; $i++ ) { installer::pathanalyzer::make_absolute_filename_to_relative_filename(\${$rpmfiles}[$i]); } $packagename = get_packagename_from_packagelist($rpmfiles, $allvariables, $languagestringref); @@ -261,7 +220,7 @@ sub determine_packagename my $alldirs = installer::systemactions::get_all_directories($installdir); if ( ! ( $#{$alldirs} > -1 )) { installer::exiter::exit_program("ERROR: Could not find package in directory $installdir!", "determine_packagename"); } - my $alldirssav = installer::converter::copy_array_from_references($alldirs); + my $alldirssav = [@{$alldirs}]; for ( my $i = 0; $i <= $#{$alldirs}; $i++ ) { installer::pathanalyzer::make_absolute_filename_to_relative_filename(\${$alldirs}[$i]); } $packagename = get_packagename_from_packagelist($alldirs, $allvariables, $languagestringref); @@ -295,13 +254,13 @@ sub put_packagename_into_script if ( $installer::globals::issolarisbuild ) { $installline = " /usr/sbin/pkgadd -d \$outdir -a \$adminfile"; } - if ( $installer::globals::islinuxrpmbuild ) { $installline = " rpm --prefix \$PRODUCTINSTALLLOCATION --replacepkgs -i"; } + if ( $installer::globals::isrpmbuild ) { $installline = " rpm --prefix \$PRODUCTINSTALLLOCATION --replacepkgs -i"; } for ( my $i = 0; $i <= $#{$allnames}; $i++ ) { if ( $installer::globals::issolarisbuild ) { $installline = $installline . " ${$allnames}[$i]"; } - if ( $installer::globals::islinuxrpmbuild ) { $installline = $installline . " \$outdir/${$allnames}[$i]"; } + if ( $installer::globals::isrpmbuild ) { $installline = $installline . " \$outdir/${$allnames}[$i]"; } } for ( my $j = 0; $j <= $#{$scriptfile}; $j++ ) @@ -411,9 +370,6 @@ sub determine_scriptfile_name my $scriptfilename = $packagename; -# if ( $installer::globals::islinuxrpmbuild ) { $scriptfilename =~ s/\.rpm\s*$/\.sh/; } -# if ( $installer::globals::issolarisbuild ) { $scriptfilename =~ s/\.tar\.gz\s*$/\.sh/; } - $scriptfilename =~ s/\.tar\.gz\s*$/\.sh/; my $infoline = "Setting language pack script file name to $scriptfilename\n"; @@ -466,8 +422,7 @@ sub include_package_into_script push( @installer::globals::logfileinfo, $infoline); } - my $localcall = "chmod 775 $scriptfilename \>\/dev\/null 2\>\&1"; - system($localcall); + chmod 0775, $scriptfilename; } @@ -519,7 +474,7 @@ sub build_installer_for_languagepack # find and read english license file my $licenselanguage = "en-US"; # always english ! - my $licensefilename = "LICENSE_" . $licenselanguage; + my $licensefilename = "LICENSE"; # _" . $licenselanguage; my $licenseincludepatharrayref = installer::worker::get_language_specific_include_pathes($includepatharrayref, $licenselanguage); my $licenseref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$licensefilename, $licenseincludepatharrayref, 0); diff --git a/solenv/bin/modules/installer/languages.pm b/solenv/bin/modules/installer/languages.pm index 7070b09f80b8..8f0b6e929356 100644 --- a/solenv/bin/modules/installer/languages.pm +++ b/solenv/bin/modules/installer/languages.pm @@ -331,45 +331,6 @@ sub get_java_language { my ( $language ) = @_; - # my $javalanguage = ""; - - # if ( $language eq "en-US" ) { $javalanguage = "en_US"; } - # elsif ( $language eq "ar" ) { $javalanguage = "ar_AR"; } - # elsif ( $language eq "bg" ) { $javalanguage = "bg_BG"; } - # elsif ( $language eq "ca" ) { $javalanguage = "ca_CA"; } - # elsif ( $language eq "cs" ) { $javalanguage = "cs_CS"; } - # elsif ( $language eq "da" ) { $javalanguage = "da_DA"; } - # elsif ( $language eq "de" ) { $javalanguage = "de"; } - # elsif ( $language eq "de" ) { $javalanguage = "de_DE"; } - # elsif ( $language eq "et" ) { $javalanguage = "et_ET"; } - # elsif ( $language eq "el" ) { $javalanguage = "el_EL"; } - # elsif ( $language eq "fi" ) { $javalanguage = "fi_FI"; } - # elsif ( $language eq "fr" ) { $javalanguage = "fr_FR"; } - # elsif ( $language eq "hu" ) { $javalanguage = "hu_HU"; } - # elsif ( $language eq "he" ) { $javalanguage = "he_HE"; } - # elsif ( $language eq "it" ) { $javalanguage = "it_IT"; } - # elsif ( $language eq "nl" ) { $javalanguage = "nl_NL"; } - # elsif ( $language eq "es" ) { $javalanguage = "es_ES"; } - # elsif ( $language eq "sv" ) { $javalanguage = "sv_SV"; } - # elsif ( $language eq "sk" ) { $javalanguage = "sk_SK"; } - # elsif ( $language eq "pl" ) { $javalanguage = "pl_PL"; } - # elsif ( $language eq "pt-BR" ) { $javalanguage = "pt_BR"; } - # elsif ( $language eq "ru" ) { $javalanguage = "ru_RU"; } - # elsif ( $language eq "tr" ) { $javalanguage = "tr_TR"; } - # elsif ( $language eq "ja" ) { $javalanguage = "ja"; } - # elsif ( $language eq "ja" ) { $javalanguage = "ja_JP"; } - # elsif ( $language eq "ko" ) { $javalanguage = "ko_KR"; } - # elsif ( $language eq "th" ) { $javalanguage = "th_TH"; } - # elsif ( $language eq "zh-CN" ) { $javalanguage = "zh_CN"; } - # elsif ( $language eq "zh-TW" ) { $javalanguage = "zh_TW"; } - - # languages not defined yet - # if ( $javalanguage eq "" ) - # { - # $javalanguage = $language; - # $javalanguage =~ s/\-/\_/; - # } - $javalanguage = $language; $javalanguage =~ s/\-/\_/; diff --git a/solenv/bin/modules/installer/mail.pm b/solenv/bin/modules/installer/mail.pm deleted file mode 100644 index 3580b3f3b6ab..000000000000 --- a/solenv/bin/modules/installer/mail.pm +++ /dev/null @@ -1,136 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -package installer::mail; - -use Net::SMTP; -use installer::converter; -use installer::exiter; -use installer::ziplist; - -######################################### -# Sending a mail -######################################### - -sub send_mail -{ - my ($message, $listenerstring, $mailinfostring, $languagesref, $destdir) = @_; - - my $listener = installer::converter::convert_stringlist_into_array($listenerstring, ","); - my $mailinfo = installer::converter::convert_stringlist_into_array($mailinfostring, ","); - - my @listener = (); - - for ( my $i = 0; $i <= $#{$listener}; $i++ ) { push(@listener, ${$listener}[$i]); } - for ( my $i = 0; $i <= $#{$mailinfo}; $i++ ) { ${$mailinfo}[$i] =~ s/\s*$//g; } - - my $smtphost = ${$mailinfo}[0]; - my $account = ${$mailinfo}[1]; - my $sender = ${$mailinfo}[2]; - - if ( ! $smtphost ) { installer::exiter::exit_program("ERROR: Could not read SMTP Host in list file!", "send_mail"); } - if ( ! $account ) { installer::exiter::exit_program("ERROR: Could not read Account in list file!", "send_mail"); } - if ( ! $sender ) { installer::exiter::exit_program("ERROR: Could not read Sender in list file!", "send_mail"); } - - my $subject = ""; - my $basestring = $installer::globals::product . " " . $installer::globals::compiler . $installer::globals::productextension . " " . $installer::globals::build. " " . $installer::globals::buildid . " " . $$languagesref . "\n"; - if ( $message eq "ERROR" ) { $subject = "ERROR: $basestring" } - if ( $message eq "SUCCESS" ) { $subject = "SUCCESS: $basestring" } - - my @message = (); - - my $recipient_string = join ',', @listener; - push(@message, "Subject: $subject"); - push(@message, "To: $recipient_string"); - push(@message, "\n"); - push(@message, "Located at $destdir"); - - if ( $message eq "ERROR" ) - { - for ( my $j = 0; $j <= $#installer::globals::errorlogfileinfo; $j++ ) - { - my $line = $installer::globals::errorlogfileinfo[$j]; - $line =~ s/\s*$//g; - push(@message, $line); - } - } - - for ( my $i = 0; $i <= $#message; $i++ ) { $message[$i] = $message[$i] . "\015\012"; } - - my $smtp = Net::SMTP->new( $smtphost, Hello => $account, Debug => 0 ); - - # set sender - $smtp->mail($sender); - - # listener - my @good_addresses = (); - $smtp->recipient( @listener, { SkipBad => 1 } ); - - # send message - $smtp->data(\@message); - - # quit server - $smtp->quit(); -} - -sub send_fail_mail -{ - my ($allsettingsarrayref, $languagestringref, $errordir) = @_; - - # sending a mail into the error board - my $listener = ""; - $listener = installer::ziplist::getinfofromziplist($allsettingsarrayref, "fail"); - - if ( $$listener ) - { - my $mailinfo = installer::ziplist::getinfofromziplist($allsettingsarrayref, "mailinfo"); - - if ( $$mailinfo ) { send_mail("ERROR", $listener, $mailinfo, $languagestringref, $errordir); } - else { installer::exiter::exit_program("ERROR: Could not read mailinfo in list file!", "send_fail_mail"); } - } -} - -sub send_success_mail -{ - my ($allsettingsarrayref, $languagestringref, $completeshipinstalldir) = @_; - - # sending success mail - my $listener = ""; - $listener = installer::ziplist::getinfofromziplist($allsettingsarrayref, "success"); - - if ( $$listener ) - { - my $mailinfo = installer::ziplist::getinfofromziplist($allsettingsarrayref, "mailinfo"); - - if ( $$mailinfo ) { send_mail("SUCCESS", $listener, $mailinfo, $languagestringref, $completeshipinstalldir); } - else { installer::exiter::exit_program("ERROR: Could not read mailinfo in list file!", "send_success_mail"); } - - } -} - - -1; diff --git a/solenv/bin/modules/installer/packagelist.pm b/solenv/bin/modules/installer/packagelist.pm index f2becc19a610..1c5d6fa00ba0 100644 --- a/solenv/bin/modules/installer/packagelist.pm +++ b/solenv/bin/modules/installer/packagelist.pm @@ -85,7 +85,6 @@ sub analyze_list push(@allmodules, $onegid); - # get_children($moduleslist, $onegid, \@allmodules); get_children_with_hash($moduleshash, $onegid, \@allmodules); $onepackage->{'allmodules'} = \@allmodules; @@ -180,8 +179,6 @@ sub remove_multiple_modules_packages my $onepackage = ${$allpackagemodules}[$i]; my $allmodules = $onepackage->{'allmodules'}; - # print "Modules below $onepackage->{'module'}: $#{$allmodules}\n"; - # Comparing each package, with all following packages. If a # gid for the module is part of more than one package, it is # removed if the number of modules in the package is greater @@ -240,14 +237,6 @@ sub remove_multiple_modules_packages $onepackage->{'allmodules'} = \@optimizedpackage; } - - # for ( my $i = 0; $i <= $#{$allpackagemodules}; $i++ ) - # { - # my $onepackage = ${$allpackagemodules}[$i]; - # my $allmodules = $onepackage->{'allmodules'}; - # print "New: Modules below $onepackage->{'module'}: $#{$allmodules}\n"; - # } - } ##################################################################### @@ -652,11 +641,6 @@ sub collectpackages { my $modulegid = $onemodule->{'gid'}; - # Only collecting modules with correct language for language packs -# if ( $installer::globals::languagepack ) { if ( ! ( $modulegid =~ /_$onelanguage\s*$/ )) { next; } } - # Resetting language, if this is no language pack -# if ( ! $installer::globals::languagepack ) { $onelanguage = ""; } - my $styles = ""; if ( $onemodule->{'Styles'} ) { $styles = $onemodule->{'Styles'}; } diff --git a/solenv/bin/modules/installer/packagepool.pm b/solenv/bin/modules/installer/packagepool.pm index d4032b7db17e..c3f3a91d2bd3 100644 --- a/solenv/bin/modules/installer/packagepool.pm +++ b/solenv/bin/modules/installer/packagepool.pm @@ -743,7 +743,7 @@ sub package_is_up_to_date log_pool_info(0); # removing new package from installation set - if ( $newpackagepath ne "" ) { remove_package_from_installset($newpackagepath); } # A file was copied and a problem occured with pooling + if ( $newpackagepath ne "" ) { remove_package_from_installset($newpackagepath); } # A file was copied and a problem occurred with pooling $package_is_up_to_date = 4; # repeat this package return $package_is_up_to_date; @@ -756,7 +756,7 @@ sub package_is_up_to_date log_pool_info(1); # removing new package from installation set - if ( $newpackagepath ne "" ) { remove_package_from_installset($newpackagepath); } # A file was copied and a problem occured with pooling + if ( $newpackagepath ne "" ) { remove_package_from_installset($newpackagepath); } # A file was copied and a problem occurred with pooling $package_is_up_to_date = 4; # repeat this package return $package_is_up_to_date; @@ -914,7 +914,7 @@ sub put_content_into_pool } # Before the new package is renamed in the pool, it has to be checked, if this process still has the lock for this package. - # Check, if lock file still exists and if this process is the owner. Otherwise a pool error occured. + # Check, if lock file still exists and if this process is the owner. Otherwise a pool error occurred. if ( ! -f $installer::globals::poollockfilename ) { unlink $uniquedestination; # removing file from pool @@ -936,7 +936,7 @@ sub put_content_into_pool push( @installer::globals::logfileinfo, $infoline); # Before the lock file in the pool can be removed, it has to be checked, if this process is still the owner of this lock file. - # Check, if lock file still exists and if this process is the owner. Otherwise a pool error occured. + # Check, if lock file still exists and if this process is the owner. Otherwise a pool error occurred. if ( ! -f $installer::globals::poollockfilename ) { log_pool_info(0); diff --git a/solenv/bin/modules/installer/parameter.pm b/solenv/bin/modules/installer/parameter.pm index 70bc32e36c7c..9c5ec8c24394 100644 --- a/solenv/bin/modules/installer/parameter.pm +++ b/solenv/bin/modules/installer/parameter.pm @@ -69,6 +69,7 @@ The following parameter are needed: -ispatchedepm : Usage of a patched (non-standard) epm (opt., non-Windows only) -copyproject : is set for projects that are only used for copying (optional) -languagepack : do create a languagepack, no product pack (optional) +-helppack : do create a helppack, no product pack (optional) -patch : do create a patch (optional) -patchinc: Source for the patch include files (Solaris only) -dontstrip: No file stripping (Unix only) @@ -153,13 +154,14 @@ sub getparameter elsif ($param eq "-buildid") { $installer::globals::buildid = shift(@ARGV); } elsif ($param eq "-copyproject") { $installer::globals::is_copy_only_project = 1; } elsif ($param eq "-languagepack") { $installer::globals::languagepack = 1; } + elsif ($param eq "-helppack") { $installer::globals::helppack = 1;} elsif ($param eq "-patch") { $installer::globals::patch = 1; } elsif ($param eq "-debian") { $installer::globals::debian = 1; } elsif ($param eq "-dontstrip") { $installer::globals::strip = 0; } elsif ($param eq "-destdir") # new parameter for simple installer { $installer::globals::rootpath ne "" && die "must set destdir before -i or -simple"; - $installer::globals::destdir = shift @ARGV; + $installer::globals::destdir = Cwd::realpath( shift @ARGV ); } elsif ($param eq "-simple") # new parameter for simple installer { @@ -299,6 +301,11 @@ sub setglobalvariables } } + if ( $installer::globals::compiler =~ /unxobsd/ ) + { + $installer::globals::epmoutpath = "openbsd"; + } + if ( $installer::globals::compiler =~ /unxfbsd/ ) { $installer::globals::isfreebsdbuild = 1; @@ -314,12 +321,23 @@ sub setglobalvariables if ( $installer::globals::compiler =~ /unxso[lg]i/ ) { $installer::globals::issolarisx86build = 1; } + if ($ENV{OS} eq 'AIX') + { + if ( $installer::globals::packageformat eq "rpm" ) + { + $installer::globals::isrpmbuild = 1; + $installer::globals::isxpdplatform = 1; + $installer::globals::epmoutpath = "RPMS"; + } + if ( $installer::globals::rpm eq "" ) { installer::exiter::exit_program("ERROR: Environment variable \"\$RPM\" has to be defined!", "setglobalvariables"); } + } + if ($ENV{OS} eq 'LINUX') { $installer::globals::islinuxbuild = 1; if ( $installer::globals::packageformat eq "rpm" ) { - $installer::globals::islinuxrpmbuild = 1; + $installer::globals::isrpmbuild = 1; $installer::globals::isxpdplatform = 1; $installer::globals::epmoutpath = "RPMS"; if ( $installer::globals::compiler =~ /unxlngi/ ) @@ -346,8 +364,8 @@ sub setglobalvariables my $message = "Creating Debian packages"; installer::logger::print_message( $message ); push(@installer::globals::globallogfileinfo, $message); - $installer::globals::islinuxrpmbuild = 0; - $installer::globals::islinuxdebbuild = 1; + $installer::globals::isrpmbuild = 0; + $installer::globals::isdebbuild = 1; $installer::globals::epmoutpath = "DEBS"; if ( $installer::globals::compiler =~ /unxlngi/ ) { @@ -379,7 +397,6 @@ sub setglobalvariables if ($installer::globals::unpackpath eq "") # unpackpath not set { $installer::globals::unpackpath = cwd(); - if ( $installer::globals::iswin ) { $installer::globals::unpackpath =~ s/\//\\/g; } } if ( $installer::globals::localunpackdir ne "" ) { $installer::globals::unpackpath = $installer::globals::localunpackdir; } @@ -398,7 +415,7 @@ sub setglobalvariables # setting jds exclude file list - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { $installer::globals::jdsexcludefilename = "jds_excludefiles_linux.txt"; } @@ -425,8 +442,7 @@ sub setglobalvariables if ( $installer::globals::compiler =~ /^unxmac/ ) { - my $localcall = "chmod 777 $installer::globals::temppath \>\/dev\/null 2\>\&1"; - system($localcall); + chmod 0777, $installer::globals::temppath; } $installer::globals::temppath = $installer::globals::temppath . $installer::globals::separator . "i"; @@ -532,7 +548,7 @@ sub control_required_parameter # for Solaris packages and Linux ####################################### - if (( $installer::globals::patch ) && ( ! $installer::globals::issolarispkgbuild ) && ( ! $installer::globals::islinuxrpmbuild ) && ( ! $installer::globals::islinuxdebbuild ) && ( ! $installer::globals::iswindowsbuild ) && ( ! $installer::globals::ismacdmgbuild )) + if (( $installer::globals::patch ) && ( ! $installer::globals::issolarispkgbuild ) && ( ! $installer::globals::isrpmbuild ) && ( ! $installer::globals::isdebbuild ) && ( ! $installer::globals::iswindowsbuild ) && ( ! $installer::globals::ismacdmgbuild )) { installer::logger::print_error( "Sorry, Patch flag currently only available for Solaris pkg, Linux RPM and Windows builds!" ); usage(); @@ -636,6 +652,7 @@ sub outputparameter } if ( $installer::globals::is_copy_only_project ) { push(@output, "This is a copy only project!\n"); } if ( $installer::globals::languagepack ) { push(@output, "Creating language pack!\n"); } + if ( $installer::globals::helppack ) { push(@output, "Creating help pack!\n"); } if ( $installer::globals::patch ) { push(@output, "Creating patch!\n"); } push(@output, "########################################################\n"); diff --git a/solenv/bin/modules/installer/pathanalyzer.pm b/solenv/bin/modules/installer/pathanalyzer.pm index 1c57a0d76e02..62085dac5e14 100644 --- a/solenv/bin/modules/installer/pathanalyzer.pm +++ b/solenv/bin/modules/installer/pathanalyzer.pm @@ -39,7 +39,7 @@ sub get_path_from_fullqualifiedname if ( $$longfilenameref =~ /\Q$installer::globals::separator\E/ ) # Is there a separator in the path? Otherwise the path is empty. { - if ( $$longfilenameref =~ /^\s*(\S.*\S\Q$installer::globals::separator\E)(\S.+\S?)/ ) + if ( $$longfilenameref =~ /^\s*(.*\Q$installer::globals::separator\E)(.+)/ ) { $$longfilenameref = $1; } diff --git a/solenv/bin/modules/installer/remover.pm b/solenv/bin/modules/installer/remover.pm index 541a33bce4c1..c23007edd177 100644 --- a/solenv/bin/modules/installer/remover.pm +++ b/solenv/bin/modules/installer/remover.pm @@ -37,8 +37,8 @@ sub remove_leading_and_ending_whitespaces { my ( $stringref ) = @_; - $$stringref =~ s/^\s*//; - $$stringref =~ s/\s*$//; + $$stringref =~ s/^\s+//; + $$stringref =~ s/\s+$//; } sub remove_leading_and_ending_quotationmarks diff --git a/solenv/bin/modules/installer/scppatchsoname.pm b/solenv/bin/modules/installer/scppatchsoname.pm index 32a142828981..df7caeb48c81 100644 --- a/solenv/bin/modules/installer/scppatchsoname.pm +++ b/solenv/bin/modules/installer/scppatchsoname.pm @@ -175,9 +175,6 @@ sub resolving_patchsoname_flag my $destinationpath = $replacedir . $onefilename; my $movepath = $destinationpath . ".orig"; - # if (!(-f $destinationpath)) # do nothing if the file already exists - # { - my $copysuccess = installer::systemactions::copy_one_file($sourcepath, $movepath); if ( $copysuccess ) @@ -197,8 +194,6 @@ sub resolving_patchsoname_flag } } - # } - # Saving the original source, where the file was found $onefile->{'originalsourcepath'} = $onefile->{'sourcepath'}; diff --git a/solenv/bin/modules/installer/scpzipfiles.pm b/solenv/bin/modules/installer/scpzipfiles.pm index 52dea6032ee1..cb0e6408e565 100644 --- a/solenv/bin/modules/installer/scpzipfiles.pm +++ b/solenv/bin/modules/installer/scpzipfiles.pm @@ -45,7 +45,7 @@ sub replace_all_ziplistvariables_in_file { my $line = ${$fileref}[$i]; - if ( $line =~ /^.*\$\{\w+\}.*$/ ) # only occurence of ${abc} + if ( $line =~ /^.*\$\{\w+\}.*$/ ) # only occurrence of ${abc} { my $key; @@ -69,13 +69,11 @@ sub replace_all_ziplistvariables_in_rtffile { my ( $fileref, $variablesref, $onelanguage, $loggingdir ) = @_; - # installer::files::save_file($loggingdir . "license_" . $onelanguage . "_before.rtf", $fileref); - for ( my $i = 0; $i <= $#{$fileref}; $i++ ) { my $line = ${$fileref}[$i]; - if ( $line =~ /^.*\$\\\{\w+\\\}.*$/ ) # only occurence of $\{abc\} + if ( $line =~ /^.*\$\\\{\w+\\\}.*$/ ) # only occurrence of $\{abc\} { for ( my $j = 0; $j <= $#{$variablesref}; $j++ ) { @@ -96,8 +94,6 @@ sub replace_all_ziplistvariables_in_rtffile } } } - - # installer::files::save_file($loggingdir . "license_" . $onelanguage . "_after.rtf", $fileref); } ######################################################### diff --git a/solenv/bin/modules/installer/scriptitems.pm b/solenv/bin/modules/installer/scriptitems.pm index 54d22df1e19e..f6b3909a53a0 100644 --- a/solenv/bin/modules/installer/scriptitems.pm +++ b/solenv/bin/modules/installer/scriptitems.pm @@ -809,7 +809,6 @@ sub replace_setup_variables if ( $localminor =~ /^\s*\w(\d+)\w*\s*$/ ) { $localminor = $1; } - # $updateid my $updateid = $productname . "_" . $userdirproductversion . "_" . $$languagestringref; $updateid =~ s/ /_/g; @@ -830,6 +829,8 @@ sub replace_setup_variables $value =~ s/\<sourceid\>/$installer::globals::build/; $value =~ s/\<updateid\>/$updateid/; $value =~ s/\<pkgformat\>/$installer::globals::packageformat/; + $value =~ s/\<vendor\>/$ENV{'OOO_VENDOR'}/; + $value =~ s/\<buildversion\>/$ENV{'BUILD_VER_STRING'}/; $oneitem->{'Value'} = $value; } @@ -1226,6 +1227,7 @@ sub get_Source_Directory_For_Files_From_Includepathlist if ( $styles =~ /\bFILE_CAN_MISS\b/ ) { $file_can_miss = 1; } if (( $installer::globals::languagepack ) && ( ! $onefile->{'ismultilingual'} ) && ( ! ( $styles =~ /\bFORCELANGUAGEPACK\b/ ))) { $file_can_miss = 1; } + if (( $installer::globals::helppack ) && ( ! $onefile->{'ismultilingual'} ) && ( ! ( $styles =~ /\bFORCEHELPPACK\b/ ))) { $file_can_miss = 1; } my $sourcepathref = ""; @@ -1243,7 +1245,6 @@ sub get_Source_Directory_For_Files_From_Includepathlist my $oldname = $onefile->{'Name'}; my $oldlanguage = $onefile->{'specificlanguage'}; my $newlanguage = "en-US"; - # $onefile->{'Name'} =~ s/$oldlanguage\./$newlanguage\./; # Example: tplwizfax_it.zip -> tplwizfax_en-US.zip $onefilename = $onefile->{'Name'}; $onefilename =~ s/$oldlanguage\./$newlanguage\./; # Example: tplwizfax_it.zip -> tplwizfax_en-US.zip $onefilename =~ s/^\s*\Q$installer::globals::separator\E//; # filename begins with a slash, for instance /registry/schema/org/openoffice/VCL.xcs @@ -1255,7 +1256,6 @@ sub get_Source_Directory_For_Files_From_Includepathlist $infoline = "WARNING: Using $onefilename instead of $oldname\n"; push( @installer::globals::logfileinfo, $infoline); print " $infoline"; - # if ( $onefile->{'destination'} ) { $onefile->{'destination'} =~ s/\Q$oldname\E/$onefile->{'Name'}/; } # If the directory, in which the new file is installed, is not language dependent, # the filename has to be changed to avoid installation conflicts @@ -1338,7 +1338,7 @@ sub remove_Files_Without_Sourcedirectory my $infoline; - my $error_occured = 0; + my $error_occurred = 0; my @missingfiles = (); push(@missingfiles, "ERROR: The following files could not be found: \n"); @@ -1354,17 +1354,17 @@ sub remove_Files_Without_Sourcedirectory my $styles = $onefile->{'Styles'}; my $filename = $onefile->{'Name'}; - if ( ! $installer::globals::languagepack ) + if ( ! $installer::globals::languagepack && !$installer::globals::helppack) { $infoline = "ERROR: Removing file $filename from file list.\n"; push( @installer::globals::logfileinfo, $infoline); push(@missingfiles, "ERROR: File not found: $filename\n"); - $error_occured = 1; + $error_occurred = 1; next; # removing this file from list, if sourcepath is empty } - else # special case for language packs + elsif ( $installer::globals::languagepack ) # special case for language packs { if (( $onefile->{'ismultilingual'} ) || ( $styles =~ /\bFORCELANGUAGEPACK\b/ )) { @@ -1372,7 +1372,7 @@ sub remove_Files_Without_Sourcedirectory push( @installer::globals::logfileinfo, $infoline); push(@missingfiles, "ERROR: File not found: $filename\n"); - $error_occured = 1; + $error_occurred = 1; next; # removing this file from list, if sourcepath is empty } @@ -1386,6 +1386,28 @@ sub remove_Files_Without_Sourcedirectory next; # removing this file from list, if sourcepath is empty } } + else # special case for help packs + { + if (( $onefile->{'ismultilingual'} ) || ( $styles =~ /\bFORCEHELPPACK\b/ )) + { + $infoline = "ERROR: Removing file $filename from file list.\n"; + push( @installer::globals::logfileinfo, $infoline); + + push(@missingfiles, "ERROR: File not found: $filename\n"); + $error_occured = 1; + + next; # removing this file from list, if sourcepath is empty + } + else + { + $infoline = "INFO: Removing file $filename from file list. It is not language dependent.\n"; + push( @installer::globals::logfileinfo, $infoline); + $infoline = "INFO: It is not language dependent and can be ignored in help packs.\n"; + push( @installer::globals::logfileinfo, $infoline); + + next; # removing this file from list, if sourcepath is empty + } + } } push(@newfilesarray, $onefile); @@ -1394,7 +1416,7 @@ sub remove_Files_Without_Sourcedirectory $infoline = "\n"; push( @installer::globals::logfileinfo, $infoline); - if ( $error_occured ) + if ( $error_occurred ) { for ( my $i = 0; $i <= $#missingfiles; $i++ ) { print "$missingfiles[$i]"; } installer::exiter::exit_program("ERROR: Missing files", "remove_Files_Without_Sourcedirectory"); @@ -1870,6 +1892,44 @@ sub remove_Languagepacklibraries_from_Installset } ############################################################################ +# Removing all help pack files from installation set (files with +# the style HELPPACK), except this is a help pack. +############################################################################ + +sub remove_Helppacklibraries_from_Installset +{ + my ($itemsarrayref) = @_; + + if ( $installer::globals::debug ) { installer::logger::debuginfo("installer::scriptitems::remove_Helppacklibraries_from_Installset : $#{$itemsarrayref}"); } + + my $infoline; + + my @newitemsarray = (); + + for ( my $i = 0; $i <= $#{$itemsarrayref}; $i++ ) + { + my $oneitem = ${$itemsarrayref}[$i]; + my $styles = ""; + if ( $oneitem->{'Styles'} ) { $styles = $oneitem->{'Styles'}; } + + if ( $styles =~ /\bHELPPACK\b/ ) + { + $infoline = "Removing help pack file $oneitem->{'gid'} from the installation set.\n"; + push( @installer::globals::globallogfileinfo, $infoline); + + next; + } + + push(@newitemsarray, $oneitem); + } + + $infoline = "\n"; + push( @installer::globals::globallogfileinfo, $infoline); + + return \@newitemsarray; +} + +############################################################################ # Removing all files with flag PATCH_ONLY from installation set. # This function is not called during patch creation. ############################################################################ @@ -2009,18 +2069,14 @@ sub quoting_illegal_filenames # sourcepath and destination have to be quoted for epm list file - # $filename =~ s/\$/\$\$/g; $destpath =~ s/\$/\$\$/g; $sourcepath =~ s/\$/\$\$/g; - # my $infoline = "ATTENTION: Files: Renaming $onefile->{'Name'} to $filename\n"; - # push( @installer::globals::logfileinfo, $infoline); my $infoline = "ATTENTION: Files: Quoting sourcepath $onefile->{'sourcepath'} to $sourcepath\n"; push( @installer::globals::logfileinfo, $infoline); $infoline = "ATTENTION: Files: Quoting destination path $onefile->{'destination'} to $destpath\n"; push( @installer::globals::logfileinfo, $infoline); - # $onefile->{'Name'} = $filename; $onefile->{'sourcepath'} = $sourcepath; $onefile->{'destination'} = $destpath; } @@ -2028,19 +2084,20 @@ sub quoting_illegal_filenames } ############################################################################ -# Removing multiple occurences of same module. +# Removing multiple occurrences of same module. ############################################################################ sub optimize_list { my ( $longlist ) = @_; + my %tmpHash; - my $shortlist = ""; - my $hashref = installer::converter::convert_stringlist_into_hash(\$longlist, ","); - foreach my $key (sort keys %{$hashref} ) { $shortlist = "$shortlist,$key"; } - $shortlist =~ s/^\s*\,//; + $longlist =~ s/^\s+//; + $longlist =~ s/\s+$//; + $longlist =~ s/\s*,\s*/,/g; - return $shortlist; + @tmpHash{split /,/, $longlist} = (); + return join(",", sort keys %tmpHash); } ####################################################################### @@ -2063,7 +2120,6 @@ sub collect_directories_from_filesarray my %alldirectoryhash = (); my $predefinedprogdir_added = 0; - my $alreadyincluded = 0; # Preparing this already as hash, although the only needed value at the moment is the HostName # But also adding: "specificlanguage" and "Dir" (for instance gid_Dir_Program) @@ -2075,64 +2131,26 @@ sub collect_directories_from_filesarray installer::pathanalyzer::get_path_from_fullqualifiedname(\$destinationpath); $destinationpath =~ s/\Q$installer::globals::separator\E\s*$//; # removing ending slashes or backslashes - $alreadyincluded = 0; - if ( exists($alldirectoryhash{$destinationpath}) ) { $alreadyincluded = 1; } - - if (!($alreadyincluded)) + do { - my %directoryhash = (); - $directoryhash{'HostName'} = $destinationpath; - $directoryhash{'specificlanguage'} = $onefile->{'specificlanguage'}; - $directoryhash{'Dir'} = $onefile->{'Dir'}; - $directoryhash{'modules'} = $onefile->{'modules'}; # NEW, saving modules - # NEVER!!! if ( ! $installer::globals::iswindowsbuild ) { $directoryhash{'Styles'} = "(CREATE)"; } # this directories must be created - - if ( $onefile->{'Dir'} eq "PREDEFINED_PROGDIR" ) { $predefinedprogdir_added = 1; } - - $alldirectoryhash{$destinationpath} = \%directoryhash; - - # Problem: The $destinationpath can be share/registry/schema/org/openoffice - # but not all directories contain files and will be added to this list. - # Therefore the path has to be analyzed. - - while ( $destinationpath =~ /(^.*\S)\Q$installer::globals::separator\E(\S.*?)\s*$/ ) # as long as the path contains slashes + if (!exists($alldirectoryhash{$destinationpath})) { - $destinationpath = $1; - - $alreadyincluded = 0; - if ( exists($alldirectoryhash{$destinationpath}) ) { $alreadyincluded = 1; } - - if (!($alreadyincluded)) - { - my %directoryhash = (); + my %directoryhash = (); + $directoryhash{'HostName'} = $destinationpath; + $directoryhash{'specificlanguage'} = $onefile->{'specificlanguage'}; + $directoryhash{'Dir'} = $onefile->{'Dir'}; + $directoryhash{'modules'} = $onefile->{'modules'}; # NEW, saving modules - $directoryhash{'HostName'} = $destinationpath; - $directoryhash{'specificlanguage'} = $onefile->{'specificlanguage'}; - $directoryhash{'Dir'} = $onefile->{'Dir'}; - $directoryhash{'modules'} = $onefile->{'modules'}; # NEW, saving modules - # NEVER!!! if ( ! $installer::globals::iswindowsbuild ) { $directoryhash{'Styles'} = "(CREATE)"; } # this directories must be created + $predefinedprogdir_added ||= $onefile->{'Dir'} eq "PREDEFINED_PROGDIR"; - $alldirectoryhash{$destinationpath} = \%directoryhash; - } - else - { - # Adding the modules to the module list! - $alldirectoryhash{$destinationpath}->{'modules'} = $alldirectoryhash{$destinationpath}->{'modules'} . "," . $onefile->{'modules'}; - } + $alldirectoryhash{$destinationpath} = \%directoryhash; } - } - else - { - # Adding the modules to the module list! - $alldirectoryhash{$destinationpath}->{'modules'} = $alldirectoryhash{$destinationpath}->{'modules'} . "," . $onefile->{'modules'}; - - # Also adding the module to all parents - while ( $destinationpath =~ /(^.*\S)\Q$installer::globals::separator\E(\S.*?)\s*$/ ) # as long as the path contains slashes + else { - $destinationpath = $1; - $alldirectoryhash{$destinationpath}->{'modules'} = $alldirectoryhash{$destinationpath}->{'modules'} . "," . $onefile->{'modules'}; + # Adding the modules to the module list! + $alldirectoryhash{$destinationpath}->{'modules'} .= "," . $onefile->{'modules'}; } - } + } while ($destinationpath =~ s/(^.*\S)\Q$installer::globals::separator\E(\S.*?)\s*$/$1/); # as long as the path contains slashes } # if there is no file in the root directory PREDEFINED_PROGDIR, it has to be included into the directory array now @@ -2195,7 +2213,6 @@ sub collect_directories_with_create_flag_from_directoryarray my %directoryhash = (); $directoryhash{'HostName'} = $directoryname; $directoryhash{'specificlanguage'} = $onedir->{'specificlanguage'}; - # $directoryhash{'gid'} = $onedir->{'gid'}; $directoryhash{'Dir'} = $onedir->{'gid'}; $directoryhash{'Styles'} = $onedir->{'Styles'}; @@ -2468,7 +2485,6 @@ sub insert_for_item ($$$) { my ($hash, $item, $id) = @_; - # print STDERR "insert '$id' for '$item'\n"; if (!defined $hash->{$item}) { my @gids = (); @@ -2522,7 +2538,6 @@ sub get_string_of_modulegids_for_itemgid my $haslanguagemodule = 0; my %foundmodules = (); - # print STDERR "lookup '" . lc($itemgid) . "'\n"; my $gid_list = $module_lookup_table->{lc($itemgid)}; for my $gid (@{$gid_list}) @@ -2542,8 +2557,6 @@ sub get_string_of_modulegids_for_itemgid if ( ! $isreallylanguagemodule ) { installer::exiter::exit_program("ERROR: \"$itemgid\" is assigned to modules with flag \"LANGUAGEMODULE\" and also to modules without this flag! Modules: $allmodules", "get_string_of_modulegids_for_itemgid"); } } - # print STDERR "get_string_for_itemgid ($itemgid, $itemname) => $allmodules, $haslanguagemodule\n"; - return ($allmodules, $haslanguagemodule); } @@ -2923,7 +2936,7 @@ sub filter_layerlinks_from_unixlinks if ( $styles =~ /\bLAYERLINK\b/ ) { # Platforms, that do not need the layer links - if (( $installer::globals::islinuxrpmbuild ) || ( $installer::globals::issolarispkgbuild )) + if (( $installer::globals::isrpmbuild ) || ( $installer::globals::issolarispkgbuild )) { $isrequired = 0; } diff --git a/solenv/bin/modules/installer/setupscript.pm b/solenv/bin/modules/installer/setupscript.pm index a3bf5abf50a9..c463eb23bd45 100644 --- a/solenv/bin/modules/installer/setupscript.pm +++ b/solenv/bin/modules/installer/setupscript.pm @@ -162,23 +162,17 @@ sub add_lowercase_productname_setupscriptvariable push(@{$variablesref} ,$newline); $value = $original; $value =~ s/\s/\_/g; - # if ( $value =~ /^\s*(.*?)\_(\w)(.*?)\_(\w)(.*)\s*$/ ) { $value = $1 . $2 . $4; } $newline = "\%UNIXPRODUCTNAME " . lc($value) . "\n"; push(@{$variablesref} ,$newline); $newline = "\%SYSTEMINTUNIXPACKAGENAME " . lc($value) . "\n"; push(@{$variablesref} ,$newline); - # if ( $value =~ /^\s*(.*?)\_(\w)(.*?)\_(\w)(.*)\s*$/ ) { $value = $1 . $2 . $4; } - # if ( $value =~ /^\s*(.*?)\_(\w)(.*?)\_(\w)(.*)\s*$/ ) { $value = $2 . $4; } $newline = "\%UNIXPACKAGENAME " . lc($value) . "\n"; push(@{$variablesref} ,$newline); $value = $original; $value =~ s/\s/\_/g; $value =~ s/\.//g; - # if ( $value =~ /^\s*(.*?)\_(\w)(.*?)\_(\w)(.*)\s*$/ ) { $value = $1 . $2 . $4; } $newline = "\%WITHOUTDOTUNIXPRODUCTNAME " . lc($value) . "\n"; push(@{$variablesref} ,$newline); - # if ( $value =~ /^\s*(.*?)\_(\w)(.*?)\_(\w)(.*)\s*$/ ) { $value = $1 . $2 . $4; } - # if ( $value =~ /^\s*(.*?)\_(\w)(.*?)\_(\w)(.*)\s*$/ ) { $value = $2 . $4; } $newline = "\%WITHOUTDOTUNIXPACKAGENAME " . lc($value) . "\n"; push(@{$variablesref} ,$newline); $newline = "\%SOLARISBRANDPACKAGENAME " . lc($value) . "\n"; @@ -272,7 +266,7 @@ sub replace_all_setupscriptvariables_in_script my $bigstring = ''; for my $line (@{$scriptref}) { $bigstring = $bigstring . $line; } - foreach my $key ( keys %subs ) + foreach my $key (sort { length ($b) <=> length ($a) } keys %subs) { # Attention: It must be possible to substitute "%PRODUCTNAMEn", "%PRODUCTNAME%PRODUCTVERSIONabc" my $value = $subs{$key}; @@ -292,7 +286,6 @@ sub replace_all_setupscriptvariables_in_script if (( $check =~ /%1/ ) || ( $check =~ /%2/ ) || ( $check =~ /%verify/ )) { next; } my $infoline = "WARNING: mis-named or un-known '%' variable in setup script at line $num:\n$check\n"; push( @installer::globals::globallogfileinfo, $infoline); - # print STDERR "Warning: mis-named or un-known '%' variable at line $num:\n$check\n"; } } @@ -311,91 +304,72 @@ sub get_all_items_from_script my @allitemarray = (); - my ($itemkey, $itemvalue, $valuecounter); + my ($itemkey, $itemvalue); for ( my $i = 0; $i <= $#{$scriptref}; $i++ ) { my $line = ${$scriptref}[$i]; - if ( $line =~ /^\s*\Q$searchitem\E\s+(\S+)\s*$/ ) - { - my $gid = $1; - my $counter = $i + 1; + next unless ($line =~ /^\s*\Q$searchitem\E\s+(\S+)\s*$/); + my $gid = $1; - my %oneitemhash = (); - my $ismultilang = 0; + my %oneitemhash = (); + my $ismultilang = 0; - $oneitemhash{'gid'} = $gid; + $oneitemhash{'gid'} = $gid; - while (!( $line =~ /^\s*End\s*$/ )) + while (!( $line =~ /^\s*End\s*$/ )) + { + if ( $i >= $#{$scriptref} ) { + installer::exiter::exit_program("Invalid setup script file. End of file reached before 'End' line of '$searchitem' section.", "get_all_items_from_script"); + } + $line = ${$scriptref}[++$i]; + + if ( $line =~ /^\s*(.+?)\=\s*(.+?)\;\s*$/ ) # only oneliner! { - if ( $counter > $#{$scriptref} ) { - installer::exiter::exit_program("Invalid setup script file. End of file reached before 'End' line of '$searchitem' section.", "get_all_items_from_script"); - } - $line = ${$scriptref}[$counter]; - $counter++; + $itemkey = $1; + $itemvalue = $2; - if ( $line =~ /^\s*(.+?)\s*\=\s*(.+?)\s*\;\s*$/ ) # only oneliner! - { - $itemkey = $1; - $itemvalue = $2; + $itemkey =~ s/\s+$//; + $itemvalue =~ s/\s+$//; - installer::remover::remove_leading_and_ending_quotationmarks(\$itemvalue); - $itemvalue =~ s/\s*$//; # removing ending whitespaces. Could be introduced by empty variables. + installer::remover::remove_leading_and_ending_quotationmarks(\$itemvalue); - $oneitemhash{$itemkey} = $itemvalue; + $oneitemhash{$itemkey} = $itemvalue; - if ( $itemkey =~ /^\s*\S+\s+\(\S+\)\s*$/ ) - { - $ismultilang = 1; - } - } - else + $ismultilang ||= $itemkey =~ /^\S+\s+\(\S+\)$/; + } + elsif (($searchitem eq "Module") && + ($line =~ /^\s*.+?\s*\=\s*\(/) && + (!($line =~ /\)\;\s*$/))) # more than one line, for instance files at modules! + { + $line =~ /^\s*(.+?)\s*\=\s*(.+?)\s*$/; # the first line + $itemkey = $1; + $itemvalue = $2; + + # collecting the complete itemvalue + do { - if ( $searchitem eq "Module" ) # more than one line, for instance files at modules! - { - if (( $line =~ /^\s*(.+?)\s*\=\s*\(/ ) && (!($line =~ /\)\;\s*$ / ))) - { - if ( $line =~ /^\s*(.+?)\s*\=\s*(.+)/ ) # the first line - { - $itemkey = $1; - $itemvalue = $2; - $itemvalue =~ s/\s*$//; - } - - # collecting the complete itemvalue - - $valuecounter = $counter; - $line = ${$scriptref}[$valuecounter]; - installer::remover::remove_leading_and_ending_whitespaces(\$line); - $itemvalue = $itemvalue . $line; - - while (!( $line =~ /\)\;\s*$/ )) - { - $valuecounter++; - $line = ${$scriptref}[$valuecounter]; - installer::remover::remove_leading_and_ending_whitespaces(\$line); - $itemvalue = $itemvalue . $line; - } - - # removing ending ";" - $itemvalue =~ s/\;\s*$//; - - $oneitemhash{$itemkey} = $itemvalue; - - if ( $itemkey =~ /^\s*\S+\s+\(\S+\)\s*$/ ) - { - $ismultilang = 1; - } - } + if ( $i >= $#{$scriptref} ) { + installer::exiter::exit_program("Invalid setup script file. Premature end of file.", "get_all_items_from_script"); } - } - } + $line = ${$scriptref}[++$i]; + installer::remover::remove_leading_and_ending_whitespaces(\$line); + $itemvalue .= $line; + } while (!($line =~ /\)\;\s*$/)); + + # removing ending ";" + $itemvalue =~ s/\;\s*$//; - $oneitemhash{'ismultilingual'} = $ismultilang; + $oneitemhash{$itemkey} = $itemvalue; - push(@allitemarray, \%oneitemhash); + $ismultilang ||= $itemkey =~ /^\S+\s+\(\S+\)$/; + } } + + $oneitemhash{'ismultilingual'} = $ismultilang+0; + + push(@allitemarray, \%oneitemhash); } return \@allitemarray; @@ -521,10 +495,6 @@ sub replace_preset_properties my @presetproperties = (); push(@presetproperties, "SOLARISBRANDPACKAGENAME"); push(@presetproperties, "SYSTEMINTUNIXPACKAGENAME"); - # push(@presetproperties, "UNIXPACKAGENAME"); - # push(@presetproperties, "WITHOUTDOTUNIXPACKAGENAME"); - # push(@presetproperties, "UNIXPRODUCTNAME"); - # push(@presetproperties, "WITHOUTDOTUNIXPRODUCTNAME"); foreach $property ( @presetproperties ) diff --git a/solenv/bin/modules/installer/simplepackage.pm b/solenv/bin/modules/installer/simplepackage.pm index 1f392f4f6c86..8c0e9ee0be79 100755 --- a/solenv/bin/modules/installer/simplepackage.pm +++ b/solenv/bin/modules/installer/simplepackage.pm @@ -27,7 +27,6 @@ package installer::simplepackage; -# use Archive::Zip qw( :ERROR_CODES :CONSTANTS ); use Cwd; use File::Copy; use installer::download; @@ -111,6 +110,13 @@ sub register_extensions push( @installer::globals::logfileinfo, $infoline); } + if (( $installer::globals::helppack ) && ( ! -f $unopkgfile )) + { + $unopkgexists = 0; + $infoline = "Help packs do not contain unopkg!\n"; + push( @installer::globals::logfileinfo, $infoline); + } + if ( ! -f $unopkgfile ) { $unopkgexists = 0; @@ -127,7 +133,7 @@ sub register_extensions if ( ! -f $unopkgfile ) { installer::exiter::exit_program("ERROR: $unopkgfile not found!", "register_extensions"); } - my $systemcall = $unopkgfile . " sync --verbose" . " -env:UNO_JAVA_JFW_ENV_JREHOME=true 2\>\&1 |"; + my $systemcall = "JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1 " . $unopkgfile . " sync --verbose" . " -env:UNO_JAVA_JFW_ENV_JREHOME=true 2\>\&1 |"; print "... $systemcall ...\n"; @@ -174,9 +180,6 @@ sub register_extensions sub get_mac_translation_file { my $translationfilename = $installer::globals::maclangpackfilename; - # my $translationfilename = $installer::globals::idtlanguagepath . $installer::globals::separator . $installer::globals::maclangpackfilename; - # if ( $installer::globals::unicodensis ) { $translationfilename = $translationfilename . ".uulf"; } - # else { $translationfilename = $translationfilename . ".mlf"; } if ( ! -f $translationfilename ) { installer::exiter::exit_program("ERROR: Could not find language file $translationfilename!", "get_mac_translation_file"); } my $translationfile = installer::files::read_file($translationfilename); @@ -288,8 +291,6 @@ sub localize_scriptfile { my ($scriptfile, $translationfile, $languagestringref) = @_; - # my $translationfile = get_mac_translation_file(); - my $onelanguage = $$languagestringref; if ( $onelanguage =~ /^\s*(.*?)_/ ) { $onelanguage = $1; } @@ -337,7 +338,7 @@ sub replace_variables_in_scriptfile replace_one_variable_in_shellscript($scriptfile, $allvariables->{'PRODUCTVERSION'}, "PRODUCTVERSION" ); my $scriptname = lc($allvariables->{'PRODUCTNAME'}) . "\.script"; - if ( $allvariables->{'PRODUCTNAME'} eq "OpenOffice.org" ) { $scriptname = "org.openoffice.script"; } + if ( $allvariables->{'PRODUCTNAME'} eq "LibreOffice" ) { $scriptname = "org.libreoffice.script"; } replace_one_variable_in_shellscript($scriptfile, $scriptname, "SEARCHSCRIPTNAME" ); } @@ -414,9 +415,10 @@ sub create_package my $localtempdir = $tempdir; - if (( $installer::globals::languagepack ) || ( $installer::globals::patch )) + if (( $installer::globals::languagepack ) || ( $installer::globals::helppack ) || ( $installer::globals::patch )) { $localtempdir = "$tempdir/$packagename"; + if ( $installer::globals::helppack ) { $volume_name = "$volume_name Help Pack"; } if ( $installer::globals::languagepack ) { $volume_name = "$volume_name Language Pack"; @@ -473,6 +475,7 @@ sub create_package my $scriptrealfilename = "osx_install.applescript"; my $scriptfilename = ""; if ( $installer::globals::languagepack ) { $scriptfilename = "osx_install_languagepack.applescript"; } + if ( $installer::globals::helppack ) { $scriptfilename = "osx_install_helppack.applescript"; } if ( $installer::globals::patch ) { $scriptfilename = "osx_install_patch.applescript"; } my $scripthelpersolverfilename = "mac_install.script"; # my $scripthelperrealfilename = $volume_name; @@ -503,10 +506,8 @@ sub create_package replace_variables_in_scriptfile($scriptfilecontent, $volume_name_classic, $volume_name_classic_app, $allvariables); installer::files::save_file($scriptfilename, $scriptfilecontent); - $systemcall = "chmod 775 " . "\"" . $scriptfilename . "\""; - system($systemcall); - $systemcall = "chmod 775 " . "\"" . $scripthelperrealfilename . "\""; - system($systemcall); + chmod 0775, $scriptfilename; + chmod 0775, $scripthelperrealfilename; # Copy also Info.plist and icon file # Finding both files in solver @@ -620,6 +621,7 @@ sub create_simple_package { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "downloadname"); if ( $installer::globals::languagepack ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "langpackdownloadname"); } + if ( $installer::globals::helppack ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "helppackdownloadname"); } if ( $installer::globals::patch ) { $downloadname = installer::ziplist::getinfofromziplist($allsettingsarrayref, "patchdownloadname"); } $packagename = installer::download::resolve_variables_in_downloadname($allvariables, $$downloadname, \$locallanguage); } @@ -709,7 +711,7 @@ sub create_simple_package } else { - $infoline = "ERROR: Could not copy $source to $destination\n"; + $infoline = "ERROR: Could not copy $source to $destination $!\n"; $returnvalue = 0; } @@ -722,13 +724,9 @@ sub create_simple_package if ( ! $installer::globals::iswindowsbuild ) { # see issue 102274 - my $unixrights = ""; if ( $onefile->{'UnixRights'} ) { - $unixrights = $onefile->{'UnixRights'}; - - my $localcall = "$installer::globals::wrapcmd chmod $unixrights \'$destination\' \>\/dev\/null 2\>\&1"; - system($localcall); + chmod oct($onefile->{'UnixRights'}), $destination; } } } diff --git a/solenv/bin/modules/installer/substfilenamefiles.pm b/solenv/bin/modules/installer/substfilenamefiles.pm index fd9557ff81c0..98906913c159 100644 --- a/solenv/bin/modules/installer/substfilenamefiles.pm +++ b/solenv/bin/modules/installer/substfilenamefiles.pm @@ -79,7 +79,6 @@ sub resolving_subst_filename_flag my $sourcepath = $onefile->{'sourcepath'}; - # if ( $onefilename =~ /^\s*\Q$installer::globals::separator\E/ ) # filename begins with a slash, for instance /registry/schema/org/openoffice/VCL.xcs if ( $onefilename =~ /\Q$installer::globals::separator\E/ ) # filename begins with a slash, for instance /registry/schema/org/openoffice/VCL.xcs { $onefilename =~ s/^\s*\Q$installer::globals::separator\E//; diff --git a/solenv/bin/modules/installer/systemactions.pm b/solenv/bin/modules/installer/systemactions.pm index 07cd838cf4fa..09b4cb1882a3 100644 --- a/solenv/bin/modules/installer/systemactions.pm +++ b/solenv/bin/modules/installer/systemactions.pm @@ -43,108 +43,7 @@ sub create_directory { my ($directory) = @_; - my $returnvalue = 1; - my $infoline = ""; - - if (!(-d $directory)) - { - $returnvalue = mkdir($directory, 0775); - - if ($returnvalue) - { - $infoline = "\nCreated directory: $directory\n"; - push(@installer::globals::logfileinfo, $infoline); - - my $localcall = "chmod 0775 $directory \>\/dev\/null 2\>\&1"; - system($localcall); - - # chmod 0775 is not sufficient on mac to remove sticky tag - $localcall = "chmod a-s $directory \>\/dev\/null 2\>\&1"; - system($localcall); - } - else - { - # New solution in parallel packing: It is possible, that the directory now exists, although it - # was not created in this process. There is only an important error, if the directory does not - # exist now. - - $infoline = "\nDid not succeed in creating directory: \"$directory\". Further attempts will follow.\n"; - push(@installer::globals::logfileinfo, $infoline); - - if (!(-d $directory)) - { - # Problem with parallel packaging? -> Try a little harder, before exiting. - # Did someone else remove the parent directory in the meantime? - my $parentdir = $directory; - installer::pathanalyzer::get_path_from_fullqualifiedname(\$parentdir); - if (!(-d $parentdir)) - { - $returnvalue = mkdir($parentdir, 0775); - - if ($returnvalue) - { - $infoline = "\nAttention: Successfully created parent directory (should already be created before): $parentdir\n"; - push(@installer::globals::logfileinfo, $infoline); - - my $localcall = "chmod 775 $parentdir \>\/dev\/null 2\>\&1"; - system($localcall); - } - else - { - $infoline = "\Error: \"$directory\" could not be created. Even the parent directory \"$parentdir\" does not exist and could not be created.\n"; - push(@installer::globals::logfileinfo, $infoline); - if ( -d $parentdir ) - { - $infoline = "\nAttention: Finally the parent directory \"$parentdir\" exists, but I could not create it.\n"; - push(@installer::globals::logfileinfo, $infoline); - } - else - { - # Now it is time to exit, even the parent could not be created. - installer::exiter::exit_program("ERROR: Could not create parent directory \"$parentdir\"", "create_directory"); - } - } - } - - # At this point we have to assume, that the parent directory exist. - # Trying once more to create the desired directory - - $returnvalue = mkdir($directory, 0775); - - if ($returnvalue) - { - $infoline = "\nAttention: Created directory \"$directory\" in the second try.\n"; - push(@installer::globals::logfileinfo, $infoline); - - my $localcall = "chmod 775 $directory \>\/dev\/null 2\>\&1"; - system($localcall); - } - else - { - if ( -d $directory ) - { - $infoline = "\nAttention: Finally the directory \"$directory\" exists, but I could not create it.\n"; - push(@installer::globals::logfileinfo, $infoline); - } - else - { - # It is time to exit, even the second try failed. - installer::exiter::exit_program("ERROR: Failed to create the directory: $directory", "create_directory"); - } - } - } - else - { - $infoline = "\nAnother process created this directory in exactly this moment :-) : $directory\n"; - push(@installer::globals::logfileinfo, $infoline); - } - } - } - else - { - $infoline = "\nAlready existing directory, did not create: $directory\n"; - push(@installer::globals::logfileinfo, $infoline); - } + create_directory_with_privileges( $directory, "755" ); } ###################################################### @@ -157,10 +56,10 @@ sub create_directory_with_privileges my $returnvalue = 1; my $infoline = ""; + my $localprivileges = oct("0".$privileges); # changes "777" to 0777 if (!(-d $directory)) { - my $localprivileges = oct("0".$privileges); # changes "777" to 0777 $returnvalue = mkdir($directory, $localprivileges); if ($returnvalue) @@ -168,8 +67,7 @@ sub create_directory_with_privileges $infoline = "\nCreated directory: $directory\n"; push(@installer::globals::logfileinfo, $infoline); - my $localcall = "chmod $privileges $directory \>\/dev\/null 2\>\&1"; - system($localcall); + chmod $localprivileges, $directory; } else { @@ -195,8 +93,7 @@ sub create_directory_with_privileges $infoline = "\nAttention: Successfully created parent directory (should already be created before): $parentdir\n"; push(@installer::globals::logfileinfo, $infoline); - my $localcall = "chmod $privileges $parentdir \>\/dev\/null 2\>\&1"; - system($localcall); + chmod $localprivileges, $parentdir; } else { @@ -225,8 +122,7 @@ sub create_directory_with_privileges $infoline = "\nAttention: Created directory \"$directory\" in the second try.\n"; push(@installer::globals::logfileinfo, $infoline); - my $localcall = "chmod $privileges $directory \>\/dev\/null 2\>\&1"; - system($localcall); + chmod $localprivileges, $directory; } else { @@ -254,8 +150,7 @@ sub create_directory_with_privileges $infoline = "\nAlready existing directory, did not create: $directory\n"; push(@installer::globals::logfileinfo, $infoline); - my $localcall = "chmod $privileges $directory \>\/dev\/null 2\>\&1"; - system($localcall); + chmod $localprivileges, $directory; } } @@ -374,6 +269,7 @@ sub create_directories } if ( $installer::globals::languagepack ) { $path = $path . $localproductname . "_languagepack" . $installer::globals::separator; } + elsif ( $installer::globals::helppack ) { $path = $path . $localproductname . "_helppack" . $installer::globals::separator; } elsif ( $installer::globals::patch ) { $path = $path . $localproductname . "_patch" . $installer::globals::separator; } else { $path = $path . $localproductname . $installer::globals::separator; } @@ -395,21 +291,30 @@ sub create_directories if ( $$languagesref ) { $locallanguagesref = $$languagesref; } - if (!($locallanguagesref eq "" )) # this will be a path like "01_49", for Profiles and ConfigurationFiles, idt-Files + if ($newdirectory eq "install" && $installer::globals::ooodownloadfilename ne "" ) { - my $languagestring = $$languagesref; - - if (length($languagestring) > $installer::globals::max_lang_length ) + # put packages into versioned path; needed only on linux (fdo#30837) + $path = $path . "$installer::globals::ooodownloadfilename" . $installer::globals::separator; + create_directory($path); + } + else + { + if ($locallanguagesref ne "") # this will be a path like "01_49", for Profiles and ConfigurationFiles, idt-Files { - my $number_of_languages = get_number_of_langs($languagestring); - chomp(my $shorter = `echo $languagestring | md5sum | sed -e "s/ .*//g"`); - # $languagestring = $shorter; - my $id = substr($shorter, 0, 8); # taking only the first 8 digits - $languagestring = "lang_" . $number_of_languages . "_id_" . $id; - } - $path = $path . $languagestring . $installer::globals::separator; - create_directory($path); + my $languagestring = $$languagesref; + + if (length($languagestring) > $installer::globals::max_lang_length ) + { + my $number_of_languages = get_number_of_langs($languagestring); + chomp(my $shorter = `echo $languagestring | md5sum | sed -e "s/ .*//g"`); + my $id = substr($shorter, 0, 8); # taking only the first 8 digits + $languagestring = "lang_" . $number_of_languages . "_id_" . $id; + } + + $path = $path . $languagestring . $installer::globals::separator; + create_directory($path); + } } } @@ -439,7 +344,7 @@ sub copy_one_file } else { - $infoline = "ERROR: Could not copy $source to $dest\n"; + $infoline = "ERROR: Could not copy $source to $dest $!\n"; $returnvalue = 0; } @@ -1194,9 +1099,7 @@ sub rename_directory } else { - installer::exiter::exit_program("ERROR: Could not move directory from $olddir to $newdir", "rename_directory"); - # $infoline = "\nATTENTION: Could not move directory from $olddir to $newdir, \"rename_directory\"\n"; - # push(@installer::globals::logfileinfo, $infoline); + installer::exiter::exit_program("ERROR: Could not move directory from $olddir to $newdir $!", "rename_directory"); } return $newdir; @@ -1433,12 +1336,7 @@ sub try_to_create_directory $infoline = "\nCreated directory: $directory\n"; push(@installer::globals::logfileinfo, $infoline); - my $localcall = "chmod 0775 $directory \>\/dev\/null 2\>\&1"; - system($localcall); - - # chmod 0775 is not sufficient on mac to remove sticky tag - $localcall = "chmod a-s $directory \>\/dev\/null 2\>\&1"; - system($localcall); + chmod 0775, $directory; } else { diff --git a/solenv/bin/modules/installer/windows/admin.pm b/solenv/bin/modules/installer/windows/admin.pm index 47a71b059b2a..6c79aaedea3c 100644 --- a/solenv/bin/modules/installer/windows/admin.pm +++ b/solenv/bin/modules/installer/windows/admin.pm @@ -54,13 +54,6 @@ sub unpack_cabinet_file # But this wrong expand.exe is typically in the PATH before this expand.exe, to unpack # cabinet files. -# if ( $^O =~ /cygwin/i ) -# { -# $expandfile = $ENV{'SYSTEMROOT'} . "/system32/expand.exe"; # Has to be located in the systemdirectory -# $expandfile =~ s/\\/\//; -# if ( ! -f $expandfile ) { exit_program("ERROR: Did not find file $expandfile in the Windows system folder!"); } -# } - if ( $^O =~ /cygwin/i ) { $expandfile = qx(cygpath -u "$ENV{WINDIR}"/System32/expand.exe); @@ -70,7 +63,6 @@ sub unpack_cabinet_file my $expandlogfile = $unpackdir . $installer::globals::separator . "expand.log"; # exclude cabinet file - # my $systemcall = $cabarc . " -o X " . $mergemodulehash->{'cabinetfile'}; my $systemcall = ""; if ( $^O =~ /cygwin/i ) { @@ -326,7 +318,6 @@ sub analyze_registry_file my $component = $6; my %helphash = (); - # $helphash{'Registry'} = $registry; $helphash{'Root'} = $root; $helphash{'Key'} = $key; $helphash{'Name'} = $name; @@ -489,13 +480,7 @@ sub copy_files_into_directory_structure } if ( $destfile =~ /unopkg\.exe\s*$/ ) { $unopkgfile = $destfile; } - - # installer::systemactions::copy_one_file($sourcefile, $destfile); } - # else # allowing missing sequence numbers ? - # { - # installer::exiter::exit_program("ERROR: No file assigned to sequence $i", "copy_files_into_directory_structure"); - # } } return $unopkgfile; @@ -805,8 +790,6 @@ sub remove_empty_dirs_in_folder # try to remove empty directory my $returnvalue = rmdir $dir; - - # if ( $returnvalue ) { print "Successfully removed empty dir $dir\n"; } } } diff --git a/solenv/bin/modules/installer/windows/assembly.pm b/solenv/bin/modules/installer/windows/assembly.pm index bb5efe2207d5..349f92cecc42 100644 --- a/solenv/bin/modules/installer/windows/assembly.pm +++ b/solenv/bin/modules/installer/windows/assembly.pm @@ -81,7 +81,6 @@ sub get_msiassembly_filemanifest my $filemanifest = ""; $filemanifest = $onefile->{'uniquename'}; - # $filemanifest = $onefile->{'Name'}; return $filemanifest; } @@ -139,8 +138,6 @@ sub get_msiassembly_file } # It does not need to exist. For example products that do not contain the libraries. - # if (! $foundfile ) { installer::exiter::exit_program("ERROR: No unique file name found for $filename !", "get_selfreg_file"); } - if (! $foundfile ) { $onefile = ""; } return $onefile; @@ -170,8 +167,6 @@ sub get_msiassembly_file_by_gid } # It does not need to exist. For example products that do not contain the libraries. - # if (! $foundfile ) { installer::exiter::exit_program("ERROR: No unique file name found for $filename !", "get_selfreg_file"); } - if (! $foundfile ) { $onefile = ""; } return $onefile; @@ -344,7 +339,6 @@ sub add_assembly_condition_into_component_table { # setting the condition - # $condition = "MsiNetAssemblySupport"; $condition = "DOTNET_SUFFICIENT=1"; $oneline = $component . "\t" . $componentid . "\t" . $directory . "\t" . $attributes . "\t" . $condition . "\t" . $keypath . "\n"; ${$componenttable}[$j] = $oneline; @@ -368,4 +362,4 @@ sub add_assembly_condition_into_component_table } } -1;
\ No newline at end of file +1; diff --git a/solenv/bin/modules/installer/windows/component.pm b/solenv/bin/modules/installer/windows/component.pm index 4ab5aac68954..da11997e5f83 100644 --- a/solenv/bin/modules/installer/windows/component.pm +++ b/solenv/bin/modules/installer/windows/component.pm @@ -128,6 +128,11 @@ sub get_file_component_directory return $installer::globals::templatefolder; } + if ( $destdir =~ /\bPREDEFINED_OSWINSHELLNEWDIR\b/ ) + { + return "WindowsShellNewFolder"; + } + my $destination = $onefile->{'destination'}; installer::pathanalyzer::get_path_from_fullqualifiedname(\$destination); @@ -395,9 +400,6 @@ sub create_component_table installer::windows::idtglobal::write_idt_header(\@componenttable, "component"); - # collect_layer_conditions(); - - # File components for ( my $i = 0; $i <= $#{$allfilecomponentsref}; $i++ ) @@ -527,4 +529,4 @@ sub set_component_in_environment_table } } -1;
\ No newline at end of file +1; diff --git a/solenv/bin/modules/installer/windows/createfolder.pm b/solenv/bin/modules/installer/windows/createfolder.pm index 7ade8866c6c5..cc3d87e47bb7 100644 --- a/solenv/bin/modules/installer/windows/createfolder.pm +++ b/solenv/bin/modules/installer/windows/createfolder.pm @@ -96,6 +96,7 @@ sub get_createfolder_component my $onefile = ""; if ( $installer::globals::languagepack ) { $onefile = get_languagepack_file($filesref, $onedir); } + elsif ( $installer::globals::helppack ) { $onefile = installer::existence::get_specified_file($filesref, 'gid_File_Help_Common_Zip'); } else { $onefile = installer::existence::get_specified_file($filesref, $globalfilegid); } return $onefile->{'componentname'}; @@ -121,8 +122,8 @@ sub create_createfolder_table { my $onedir = ${$dirref}[$i]; - # language packs get only language dependent directories - if (( $installer::globals::languagepack ) && ( $onedir->{'specificlanguage'} eq "" )) { next }; + # language packs and help packs get only language dependent directories + if (( $installer::globals::languagepack ) || ( $installer::globals::languagepack ) && ( $onedir->{'specificlanguage'} eq "" )) { next }; my $styles = ""; @@ -150,4 +151,4 @@ sub create_createfolder_table } -1;
\ No newline at end of file +1; diff --git a/solenv/bin/modules/installer/windows/directory.pm b/solenv/bin/modules/installer/windows/directory.pm index f7b13747e3bf..7a588edeb71b 100644 --- a/solenv/bin/modules/installer/windows/directory.pm +++ b/solenv/bin/modules/installer/windows/directory.pm @@ -133,6 +133,8 @@ sub make_short_dir_version # Adding unique directory names to the directory collection ############################################################## +my $already_checked_the_frigging_directories_for_uniqueness = 0; + sub create_unique_directorynames { my ($directoryref, $allvariables) = @_; @@ -161,6 +163,7 @@ sub create_unique_directorynames $uniquename =~ s/\.//g; # removing dots in directoryname $uniquename =~ s/\Q$installer::globals::separator\E/\_/g; # replacing slash and backslash with underline $uniquename =~ s/OpenOffice/OO/g; + $uniquename =~ s/LibreOffice/LO/g; $uniquename =~ s/_registry/_rgy/g; $uniquename =~ s/_registration/_rgn/g; $uniquename =~ s/_extension/_ext/g; @@ -176,7 +179,8 @@ sub create_unique_directorynames $uniquename = make_short_dir_version($uniquename, $startlength, $hostname); # taking care of underlines! } - if ( exists($installer::globals::alluniquedirectorynames{$uniquename}) ) + if ( !$already_checked_the_frigging_directories_for_uniqueness && + exists($installer::globals::alluniquedirectorynames{$uniquename}) ) { # This is an error, that must stop the packaging process $errorcount++; @@ -260,6 +264,7 @@ sub check_sourcedir_addon if (($installer::globals::addchildprojects) || ($installer::globals::patch) || ($installer::globals::languagepack) || + ($installer::globals::helppack) || ($allvariableshashref->{'CHANGETARGETDIR'})) { my $sourcediraddon = "\:\."; @@ -335,7 +340,6 @@ sub create_defaultdir_directorynames $hostname =~ s/\Q$installer::globals::separator\E\s*$//; get_last_directory_name(\$hostname); - # installer::pathanalyzer::make_absolute_filename_to_relative_filename(\$hostname); # making program/classes to classes my $uniquename = $onedir->{'uniquename'}; my $shortstring; if (( $installer::globals::updatedatabase ) && ( exists($shortdirnamehashref->{$uniquename}) )) @@ -408,22 +412,15 @@ sub create_directorytable_from_collection sub add_root_directories { - my ($directorytableref, $allvariableshashref) = @_; - -# my $sourcediraddon = ""; -# if (($installer::globals::addchildprojects) || -# ($installer::globals::patch) || -# ($installer::globals::languagepack) || -# ($allvariableshashref->{'CHANGETARGETDIR'})) -# { -# $sourcediraddon = "\:\."; -# } + my ($directorytableref, $allvariableshashref, $onelanguage) = @_; my $oneline = ""; - if (( ! $installer::globals::patch ) && ( ! $installer::globals::languagepack ) && ( ! $allvariableshashref->{'DONTUSESTARTMENUFOLDER'} )) + if (( ! $installer::globals::patch ) && ( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack ) && ( ! $allvariableshashref->{'DONTUSESTARTMENUFOLDER'} )) { - my $productname = $allvariableshashref->{'PRODUCTNAME'}; + my $productname; + + $productname = $allvariableshashref->{'PRODUCTNAME'}; my $productversion = $allvariableshashref->{'PRODUCTVERSION'}; my $baseproductversion = $productversion; @@ -461,6 +458,12 @@ sub add_root_directories $oneline = "TARGETDIR\t\tSourceDir\n"; push(@{$directorytableref}, $oneline); + $oneline = "WindowsFolder\tTARGETDIR\tWindows\n"; + push(@{$directorytableref}, $oneline); + + $oneline = "WindowsShellNewFolder\tWindowsFolder\tShellNew\n"; + push(@{$directorytableref}, $oneline); + $oneline = "$installer::globals::programfilesfolder\tTARGETDIR\t.\n"; push(@{$directorytableref}, $oneline); @@ -520,7 +523,7 @@ sub add_root_directories sub create_directory_table { - my ($directoryref, $basedir, $allvariableshashref, $shortdirnamehashref, $loggingdir) = @_; + my ($directoryref, $languagesarrayref, $basedir, $allvariableshashref, $shortdirnamehashref, $loggingdir) = @_; # Structure of the directory table: # Directory Directory_Parent DefaultDir @@ -530,28 +533,34 @@ sub create_directory_table # Before ":" : [sourcedir]:[destdir] (not programmed yet) # After ":" : 8+3 and not 8+3 the destination directory name + for ( my $m = 0; $m <= $#{$languagesarrayref}; $m++ ) + { + my $onelanguage = ${$languagesarrayref}[$m]; + $installer::globals::installlocationdirectoryset = 0; + my @directorytable = (); my $infoline; overwrite_programfilesfolder($allvariableshashref); if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt_local_1.log", $directoryref); } create_unique_directorynames($directoryref, $allvariableshashref); + $already_checked_the_frigging_directories_for_uniqueness++; if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt_local_1a.log", $directoryref); } create_defaultdir_directorynames($directoryref, $shortdirnamehashref); # only destdir! if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt_local_2.log", $directoryref); } set_installlocation_directory($directoryref, $allvariableshashref); if ( $installer::globals::globallogging ) { installer::files::save_array_of_hashes($loggingdir . "directoriesforidt_local_3.log", $directoryref); } installer::windows::idtglobal::write_idt_header(\@directorytable, "directory"); - add_root_directories(\@directorytable, $allvariableshashref); + add_root_directories(\@directorytable, $allvariableshashref, $onelanguage); create_directorytable_from_collection(\@directorytable, $directoryref); # Saving the file - my $directorytablename = $basedir . $installer::globals::separator . "Director.idt"; + my $directorytablename = $basedir . $installer::globals::separator . "Director.idt" . "." . $onelanguage; installer::files::save_file($directorytablename ,\@directorytable); $infoline = "Created idt file: $directorytablename\n"; push(@installer::globals::logfileinfo, $infoline); - + } } 1; diff --git a/solenv/bin/modules/installer/windows/feature.pm b/solenv/bin/modules/installer/windows/feature.pm index 39521baecdfe..e5aa5f5a3fdc 100644 --- a/solenv/bin/modules/installer/windows/feature.pm +++ b/solenv/bin/modules/installer/windows/feature.pm @@ -120,8 +120,8 @@ sub get_feature_display # Special handling for c05office. No program module visible. if (( $onefeature->{'gid'} eq "gid_Module_Prg" ) && ( $installer::globals::product =~ /c05office/i )) { $display = "0"; } - # making all feature invisible in Language packs! - if ( $installer::globals::languagepack ) { $display = "0"; } + # making all feature invisible in Language packs and in Help packs! + if ( $installer::globals::languagepack || $installer::globals::helppack ) { $display = "0"; } return $display } @@ -218,7 +218,8 @@ sub replace_variables { my ($translationfile, $variableshashref) = @_; - foreach $key (keys %{$variableshashref}) + # we want to substitute FOO_BR before FOO to avoid floating _BR suffixes + foreach $key (sort { length ($b) <=> length ($a) } keys %{$variableshashref}) { my $value = $variableshashref->{$key}; replace_one_variable($translationfile, $value, $key); @@ -399,7 +400,6 @@ sub create_feature_table $feature{'feature'} = get_feature_gid($onefeature); $feature{'feature_parent'} = get_feature_parent($onefeature); - # if ( $onefeature->{'ParentID'} eq "" ) { $feature{'feature_parent'} = ""; } # Root has no parent $feature{'Title'} = $onefeature->{'Name'}; $feature{'Description'} = $onefeature->{'Description'}; $feature{'Display'} = get_feature_display($onefeature); diff --git a/solenv/bin/modules/installer/windows/featurecomponent.pm b/solenv/bin/modules/installer/windows/featurecomponent.pm index c5053212aad3..8e9ebee84703 100644 --- a/solenv/bin/modules/installer/windows/featurecomponent.pm +++ b/solenv/bin/modules/installer/windows/featurecomponent.pm @@ -132,71 +132,6 @@ sub create_featurecomponent_table_from_registry_collector } ################################################################################# -# Collecting all feature that are listed in the featurecomponent table. -################################################################################# - -sub collect_all_feature -{ - my ($featurecomponenttable) = @_; - - my @allfeature = (); - - for ( my $i = 3; $i <= $#{$featurecomponenttable}; $i++ ) # beginning in line 4 - { - my $oneline = ${$featurecomponenttable}[$i]; - - if ( $oneline =~ /^\s*(\S+)\s+(\S+)\s*$/ ) - { - my $feature = $1; - - if (! installer::existence::exists_in_array($feature, \@allfeature)) { push(@allfeature, $feature); } - } - } - - return \@allfeature; -} - -################################################################################# -# On Win98 and Win Me there seems to be the problem, that maximum 817 -# components can be added to a feature. Even if Windows Installer 2.0 -# is used. -################################################################################# - -sub check_number_of_components_at_feature -{ - my ($featurecomponenttable) = @_; - - my $infoline = "\nChecking number of components at features. Maximum is 817 (for Win 98 and Win Me)\n"; - push(@installer::globals::logfileinfo, $infoline); - - my $allfeature = collect_all_feature($featurecomponenttable); - - for ( my $i = 0; $i <= $#{$allfeature}; $i++ ) - { - my $onefeature = ${$allfeature}[$i]; - my $featurecomponents = 0; - - for ( my $j = 0; $j <= $#{$featurecomponenttable}; $j++ ) - { - if ( ${$featurecomponenttable}[$j] =~ /^\s*\Q$onefeature\E\s+(\S+)\s*$/ ) { $featurecomponents++; } - } - - if ( $featurecomponents > 816 ) - { - installer::exiter::exit_program("ERROR: More than 816 components ($featurecomponents) at feature $onefeature. This causes problems on Win 98 and Win Me!", "check_number_of_components_at_feature"); - } - - # Logging the result - - $infoline = "Number of components at feature $onefeature : $featurecomponents\n"; - push(@installer::globals::logfileinfo, $infoline); - } - - $infoline = "\n"; - push(@installer::globals::logfileinfo, $infoline); -} - -################################################################################# # Creating the file FeatureC.idt dynamically # Content: # Feature Component @@ -228,10 +163,6 @@ sub create_featurecomponent_table # Additional components have to be added here - # Checking, whether there are more than 817 components at a feature - - check_number_of_components_at_feature(\@featurecomponenttable); - # Saving the file my $featurecomponenttablename = $basedir . $installer::globals::separator . "FeatureC.idt"; @@ -241,4 +172,4 @@ sub create_featurecomponent_table } -1;
\ No newline at end of file +1; diff --git a/solenv/bin/modules/installer/windows/file.pm b/solenv/bin/modules/installer/windows/file.pm index 3ac72ecf6ac3..c4315b43aceb 100644 --- a/solenv/bin/modules/installer/windows/file.pm +++ b/solenv/bin/modules/installer/windows/file.pm @@ -877,7 +877,6 @@ sub create_files_table # The filenames must be collected because of uniqueness # 01-44-~1.DAT, 01-44-~2.DAT, ... - # my @shortnames = (); my %shortnames = (); if ( $installer::globals::updatedatabase ) { collect_shortnames_from_old_database($uniquefilenamehashref, \%shortnames); } @@ -902,7 +901,6 @@ sub create_files_table $onefile->{'componentname'} = $file{'Component_'}; # Collecting all components - # if (!(installer::existence::exists_in_array($file{'Component_'}, $allfilecomponentsref))) { push(@{$allfilecomponentsref}, $file{'Component_'}); } if ( ! exists($allfilecomponents{$file{'Component_'}}) ) { $allfilecomponents{$file{'Component_'}} = 1; } @@ -984,7 +982,6 @@ sub create_files_table } # Collecting all language specific conditions - # if ( $onefile->{'haslanguagemodule'} ) if ( $onefile->{'ismultilingual'} ) { if ( $onefile->{'ComponentCondition'} ) { installer::exiter::exit_program("ERROR: Cannot set language condition. There is already another component condition for file $onefile->{'gid'}: \"$onefile->{'ComponentCondition'}\" !", "create_files_table"); } diff --git a/solenv/bin/modules/installer/windows/font.pm b/solenv/bin/modules/installer/windows/font.pm index 9dab78caf5f7..3e3afed5577b 100644 --- a/solenv/bin/modules/installer/windows/font.pm +++ b/solenv/bin/modules/installer/windows/font.pm @@ -58,7 +58,6 @@ sub create_font_table my %font = (); $font{'File_'} = $onefile->{'uniquename'}; - # $font{'FontTitle'} = $onefile->{'FontName'}; # results in a warning during validation $font{'FontTitle'} = ""; my $oneline = $font{'File_'} . "\t" . $font{'FontTitle'} . "\n"; diff --git a/solenv/bin/modules/installer/windows/idtglobal.pm b/solenv/bin/modules/installer/windows/idtglobal.pm index 4a54ead9dfd4..94b5dcc62399 100644 --- a/solenv/bin/modules/installer/windows/idtglobal.pm +++ b/solenv/bin/modules/installer/windows/idtglobal.pm @@ -139,7 +139,6 @@ sub get_next_free_number_with_hash if (!($dontsave)) { - # push(@{$shortnamesref}, $newname); # adding the new shortname to the array of shortnames $shortnamesref->{$newname} = 1; # adding the new shortname to the array of shortnames, always uppercase $saved = 1; } @@ -273,7 +272,6 @@ sub make_eight_three_conform_with_hash my $changed = 0; my $saved; - # if (( $inputstring =~ /^\s*(.*?)\.(.*?)\s*$/ ) && ( $pattern eq "file" )) # files with a dot if (( $inputstring =~ /^\s*(.*)\.(.*?)\s*$/ ) && ( $pattern eq "file" )) # files with a dot { # extension has to be non-greedy, but name is. This is important to find the last dot in the filename @@ -401,7 +399,7 @@ sub write_idt_header { $oneline = "File\tComponent_\tFileName\tFileSize\tVersion\tLanguage\tAttributes\tSequence\n"; push(@{$idtref}, $oneline); - $oneline = "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti2\n"; + $oneline = "s72\ts72\tl255\ti4\tS72\tS20\tI2\ti4\n"; push(@{$idtref}, $oneline); $oneline = "File\tFile\n"; push(@{$idtref}, $oneline); @@ -461,7 +459,7 @@ sub write_idt_header { $oneline = "DiskId\tLastSequence\tDiskPrompt\tCabinet\tVolumeLabel\tSource\n"; push(@{$idtref}, $oneline); - $oneline = "i2\ti2\tL64\tS255\tS32\tS72\n"; + $oneline = "i2\ti4\tL64\tS255\tS32\tS72\n"; push(@{$idtref}, $oneline); $oneline = "Media\tDiskId\n"; push(@{$idtref}, $oneline); @@ -629,7 +627,6 @@ sub get_languagefilename { my ($idtfilename, $basedir) = @_; - # $idtfilename =~ s/\.idt/\.ulf/; $idtfilename =~ s/\.idt/\.mlf/; my $languagefilename = $basedir . $installer::globals::separator . $idtfilename; @@ -758,7 +755,6 @@ sub translate_idtfile my $language_block = get_language_block_from_language_file($oldstring, $languagefile); my $newstring = get_language_string_from_language_block($language_block, $onelanguage, $oldstring); - # if (!( $newstring eq "" )) { ${$idtfile}[$i] =~ s/$oldstring/$newstring/; } ${$idtfile}[$i] =~ s/$oldstring/$newstring/; # always substitute, even if $newstring eq "" (there are empty strings for control.idt) } } @@ -922,18 +918,12 @@ sub get_rtf_licensetext for ( my $i = 0; $i <= $#{$licensefile}; $i++ ) { my $oneline = ${$licensefile}[$i]; - # if ( $oneline =~ /^\s*$/ ) { $oneline = '\par'; } # empty lines if ( $i == 0 ) { $oneline =~ s/^\W*//; } $oneline =~ s/\t/ /g; # no tabs allowed, converting to four spaces $oneline =~ s/\n$//g; # no newline at line end -# $oneline =~ s/ä/\\\'e4/g; # converting "ä" -# $oneline =~ s/ö/\\\'f6/g; # converting "ö" -# $oneline =~ s/ü/\\\'fc/g; # converting "ü" -# $oneline =~ s/ß/\\\'df/g; # converting "ß" - # german replacements $oneline =~ s/\Ã\„/\\\'c4/g; # converting "Ä" @@ -1146,11 +1136,7 @@ sub add_language_checkboxes_to_database my $onelanguage = ${$languagesarrayref}[$i]; my $windowslanguage = installer::windows::language::get_windows_language($onelanguage); - # my $is_english = 0; - # if ( $windowslanguage eq "1033" ) { $is_english = 1; } - my $checkboxattribute = "3"; - # if ( $is_english ) { $checkboxattribute = "1"; } # english is not deselectable my $count = $i + 1; my $nextcount = $i + 2; @@ -1167,7 +1153,6 @@ sub add_language_checkboxes_to_database my $yvalue = $offset + $i * $multiplier; my $property = "IS" . $windowslanguage; - # if ( ! exists($installer::globals::languageproperties{$property}) ) { installer::exiter::exit_program("ERROR: Could not find property \"$property\" in the list of language properties!", "add_language_checkboxes_to_database"); } my $controlnext = ""; if ( $last ) { $controlnext = "Next"; } @@ -1301,7 +1286,7 @@ sub set_custom_action # All files are located in $filesref and in @installer::globals::binarytableonlyfiles. # Both must be added together - my $localfilesref = installer::converter::combine_arrays_from_references(\@installer::globals::binarytableonlyfiles, $filesref); + my $localfilesref = [@installer::globals::binarytableonlyfiles, @{$filesref}]; for ( my $i = 0; $i <= $#{$localfilesref}; $i++ ) { @@ -1379,7 +1364,7 @@ sub add_custom_action_to_install_table # All files are located in $filesref and in @installer::globals::binarytableonlyfiles. # Both must be added together - my $localfilesref = installer::converter::combine_arrays_from_references(\@installer::globals::binarytableonlyfiles, $filesref); + my $localfilesref = [@installer::globals::binarytableonlyfiles, @{$filesref}]; for ( my $i = 0; $i <= $#{$localfilesref}; $i++ ) { @@ -1613,7 +1598,6 @@ sub include_subdirname_into_directory_table { my $newuniquename = "sub" . $subdir; $newdir = $newuniquename; - # my $newparent = $parent; my $newparent = "INSTALLLOCATION"; my $newname = $name . "\:" . $subdir; my $newline = @@ -2097,7 +2081,7 @@ sub get_customaction_position ########################################################################## # Setting the position of CustomActions in sequence tables. -# Replacing all occurences of "POSITIONTEMPLATE_" +# Replacing all occurrences of "POSITIONTEMPLATE_" ########################################################################## sub set_positions_in_table @@ -2107,7 +2091,7 @@ sub set_positions_in_table my $infoline = "\nSetting positions in table \"$tablename\".\n"; push(@installer::globals::logfileinfo, $infoline); - # Step 1: Resolving all occurences of "POSITIONTEMPLATE_end" + # Step 1: Resolving all occurrences of "POSITIONTEMPLATE_end" my $lastposition = get_last_position_in_sequencetable($sequencetable); @@ -2123,9 +2107,9 @@ sub set_positions_in_table } } - # Step 2: Resolving all occurences of "POSITIONTEMPLATE_abc" or "POSITIONTEMPLATE_behind_abc" + # Step 2: Resolving all occurrences of "POSITIONTEMPLATE_abc" or "POSITIONTEMPLATE_behind_abc" # where abc is the name of the reference Custom Action. - # This has to be done, until there is no more occurence of POSITIONTEMPLATE (success) + # This has to be done, until there is no more occurrence of POSITIONTEMPLATE (success) # or there is no replacement in one circle (failure). my $template_exists = 0; @@ -2180,7 +2164,7 @@ sub set_positions_in_table } } while (( $template_exists ) && ( $template_replaced )); - # An error occured, because templates still exist, but could not be replaced. + # An error occurred, because templates still exist, but could not be replaced. # Reason: # 1. Wrong name of CustomAction in scp2 (typo?) # 2. Circular dependencies of CustomActions (A after B and B after A) @@ -2193,9 +2177,6 @@ sub set_positions_in_table if (( $template_exists ) && ( ! $template_replaced )) { - # Giving a precise error message, collecting all unresolved templates - # my $templatestring = ""; - for ( my $i = 0; $i <= $#{$sequencetable}; $i++ ) { if ( ${$sequencetable}[$i] =~ /^\s*([\w\.]+)\t.*\t\s*(POSITIONTEMPLATE_.*?)\s*$/ ) @@ -2204,22 +2185,12 @@ sub set_positions_in_table my $fulltemplate = $2; my $template = $fulltemplate; $template =~ s/POSITIONTEMPLATE_//; - # my $newstring = $customactionname . " (" . $template . ")"; - # $templatestring = $templatestring . $newstring . ", "; - # Setting at the end! $lastposition = $lastposition + 25; ${$sequencetable}[$i] =~ s/$fulltemplate/$lastposition/; $infoline = "WARNING: Setting position \"$lastposition\" for custom action \"$customactionname\". Could not find CustomAction \"$template\".\n"; push(@installer::globals::logfileinfo, $infoline); } } - # $templatestring =~ s/,\s*$//; - - # $infoline = "Error: Saving table \"$tablename\"\n"; - # push(@installer::globals::logfileinfo, $infoline); - # print $infoline; - # installer::files::save_file($tablename, $sequencetable); - # installer::exiter::exit_program("ERROR: Unresolved positions in CustomActions in scp2: $templatestring", "set_positions_in_table"); } } diff --git a/solenv/bin/modules/installer/windows/language.pm b/solenv/bin/modules/installer/windows/language.pm index c0dca543eb56..a95bed94517c 100644 --- a/solenv/bin/modules/installer/windows/language.pm +++ b/solenv/bin/modules/installer/windows/language.pm @@ -60,7 +60,6 @@ sub get_windows_encoding if ( $installer::globals::msiencoding->{$language} ) { $windowsencoding = $installer::globals::msiencoding->{$language}; } - # if ( $windowsencoding eq "" ) { installer::exiter::exit_program("ERROR: Unknown language $language in function get_windows_encoding", "get_windows_encoding"); } if ( $windowsencoding eq "" ) { $windowsencoding = "0"; } # setting value, if the language is not listed in the encodinglist if ( $windowsencoding eq "0" ) { $windowsencoding = "65001"; } # languages with "0" have to be available in UTF-8 (65001) @@ -71,4 +70,4 @@ sub get_windows_encoding return $windowsencoding; } -1;
\ No newline at end of file +1; diff --git a/solenv/bin/modules/installer/windows/media.pm b/solenv/bin/modules/installer/windows/media.pm index 35e90f6a3856..12da8a723c9d 100644 --- a/solenv/bin/modules/installer/windows/media.pm +++ b/solenv/bin/modules/installer/windows/media.pm @@ -351,7 +351,6 @@ sub create_media_table if ( $allvariables->{'CABFILENUMBER'} ) { $maxcabfilenumber = $allvariables->{'CABFILENUMBER'}; } my $allfiles = $#{$filesref} + 1; my $maxfilenumber = get_maximum_filenumber($allfiles, $maxcabfilenumber); - # my $maxfilenumber = 1000; # maximum 1000 files in each cabinet file my $cabfilenumber = 0; my $cabfull = 0; my $counter = 0; @@ -385,7 +384,6 @@ sub create_media_table $cabfilenumber++; $media{'DiskId'} = get_media_diskid($cabfilenumber); - # $media{'LastSequence'} = get_media_lastsequence($onefile); $media{'LastSequence'} = $i + 1; # This should be correct, also for unsorted files collectors $media{'DiskPrompt'} = get_media_diskprompt(); $media{'Cabinet'} = generate_cab_filename_for_some_cabs($allvariables, $cabfilenumber); @@ -420,7 +418,6 @@ sub create_media_table my $maximumfile = $#{$filesref}; $media{'DiskId'} = get_media_diskid($diskid); - # $media{'LastSequence'} = ${$filesref}[$maximumfile]->{'sequencenumber'}; # sequence number of the last file $media{'LastSequence'} = $maximumfile + 1; # This works also for unsorted file collector $media{'DiskPrompt'} = get_media_diskprompt(); $media{'Cabinet'} = generate_cab_filename($allvariables); diff --git a/solenv/bin/modules/installer/windows/mergemodule.pm b/solenv/bin/modules/installer/windows/mergemodule.pm index eb524fdafc3e..b9591c417994 100755 --- a/solenv/bin/modules/installer/windows/mergemodule.pm +++ b/solenv/bin/modules/installer/windows/mergemodule.pm @@ -51,7 +51,7 @@ sub merge_mergemodules_into_msi_database my ($mergemodules, $filesref, $msifilename, $languagestringref, $language, $languagefile, $allvariables, $includepatharrayref, $allupdatesequences, $allupdatelastsequences, $allupdatediskids) = @_; my $domerge = 0; - if (( $#{$mergemodules} > -1 ) && ( ! $installer::globals::patch ) && ( ! $installer::globals::languagepack )) { $domerge = 1; } + if (( $#{$mergemodules} > -1 ) && ( ! $installer::globals::patch ) && ( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack )) { $domerge = 1; } if ( $domerge ) { @@ -79,7 +79,6 @@ sub merge_mergemodules_into_msi_database %installer::globals::mergemodules = (); my $mergemoduledir = installer::systemactions::create_directories("mergefiles", $languagestringref); - # push(@installer::globals::removedirs, $mergemoduledir); my $mergemodule; foreach $mergemodule ( @{$mergemodules} ) @@ -144,7 +143,6 @@ sub merge_mergemodules_into_msi_database } else { - # $systemcall = $msidb . " -d " . $filename . " -f " . $workdir . " -e File Component MsiAssembly Directory"; $systemcall = $msidb . " -d " . $filename . " -f " . $workdir . " -e \*"; } @@ -398,14 +396,14 @@ sub merge_mergemodules_into_msi_database installer::logger::include_timestamp_into_logfile("\nPerformance Info: After merging database"); # Saving original idt files - if ( -f "File.idt" ) { installer::systemactions::rename_one_file("File.idt", "File.idt.$counter"); } - if ( -f "Media.idt" ) { installer::systemactions::rename_one_file("Media.idt", "Media.idt.$counter"); } - if ( -f "Directory.idt" ) { installer::systemactions::rename_one_file("Directory.idt", "Directory.idt.$counter"); } - if ( -f "Director.idt" ) { installer::systemactions::rename_one_file("Director.idt", "Director.idt.$counter"); } - if ( -f "FeatureComponents.idt" ) { installer::systemactions::rename_one_file("FeatureComponents.idt", "FeatureComponents.idt.$counter"); } - if ( -f "FeatureC.idt" ) { installer::systemactions::rename_one_file("FeatureC.idt", "FeatureC.idt.$counter"); } - if ( -f "MsiAssembly.idt" ) { installer::systemactions::rename_one_file("MsiAssembly.idt", "MsiAssembly.idt.$counter"); } - if ( -f "MsiAssem.idt" ) { installer::systemactions::rename_one_file("MsiAssem.idt", "MsiAssem.idt.$counter"); } + if ( -f "File.idt" ) { installer::systemactions::rename_one_file("File.idt", "old.File.idt.$counter"); } + if ( -f "Media.idt" ) { installer::systemactions::rename_one_file("Media.idt", "old.Media.idt.$counter"); } + if ( -f "Directory.idt" ) { installer::systemactions::rename_one_file("Directory.idt", "old.Directory.idt.$counter"); } + if ( -f "Director.idt" ) { installer::systemactions::rename_one_file("Director.idt", "old.Director.idt.$counter"); } + if ( -f "FeatureComponents.idt" ) { installer::systemactions::rename_one_file("FeatureComponents.idt", "old.FeatureComponents.idt.$counter"); } + if ( -f "FeatureC.idt" ) { installer::systemactions::rename_one_file("FeatureC.idt", "old.FeatureC.idt.$counter"); } + if ( -f "MsiAssembly.idt" ) { installer::systemactions::rename_one_file("MsiAssembly.idt", "old.MsiAssembly.idt.$counter"); } + if ( -f "MsiAssem.idt" ) { installer::systemactions::rename_one_file("MsiAssem.idt", "old.MsiAssem.idt.$counter"); } # Extracting tables @@ -474,13 +472,13 @@ sub merge_mergemodules_into_msi_database # merged into the three ExecuteSequences with the following process (also into InstallUISequence.idt). # Saving original idt files - if ( -f "InstallE.idt" ) { installer::systemactions::rename_one_file("InstallE.idt", "InstallE.idt.$counter"); } - if ( -f "InstallU.idt" ) { installer::systemactions::rename_one_file("InstallU.idt", "InstallU.idt.$counter"); } - if ( -f "AdminExe.idt" ) { installer::systemactions::rename_one_file("AdminExe.idt", "AdminExe.idt.$counter"); } - if ( -f "AdvtExec.idt" ) { installer::systemactions::rename_one_file("AdvtExec.idt", "AdvtExec.idt.$counter"); } - if ( -f "ModuleInstallExecuteSequence.idt" ) { installer::systemactions::rename_one_file("ModuleInstallExecuteSequence.idt", "ModuleInstallExecuteSequence.idt.$counter"); } - if ( -f "ModuleAdminExecuteSequence.idt" ) { installer::systemactions::rename_one_file("ModuleAdminExecuteSequence.idt", "ModuleAdminExecuteSequence.idt.$counter"); } - if ( -f "ModuleAdvtExecuteSequence.idt" ) { installer::systemactions::rename_one_file("ModuleAdvtExecuteSequence.idt", "ModuleAdvtExecuteSequence.idt.$counter"); } + if ( -f "InstallE.idt" ) { installer::systemactions::rename_one_file("InstallE.idt", "old.InstallE.idt.$counter"); } + if ( -f "InstallU.idt" ) { installer::systemactions::rename_one_file("InstallU.idt", "old.InstallU.idt.$counter"); } + if ( -f "AdminExe.idt" ) { installer::systemactions::rename_one_file("AdminExe.idt", "old.AdminExe.idt.$counter"); } + if ( -f "AdvtExec.idt" ) { installer::systemactions::rename_one_file("AdvtExec.idt", "old.AdvtExec.idt.$counter"); } + if ( -f "ModuleInstallExecuteSequence.idt" ) { installer::systemactions::rename_one_file("ModuleInstallExecuteSequence.idt", "old.ModuleInstallExecuteSequence.idt.$counter"); } + if ( -f "ModuleAdminExecuteSequence.idt" ) { installer::systemactions::rename_one_file("ModuleAdminExecuteSequence.idt", "old.ModuleAdminExecuteSequence.idt.$counter"); } + if ( -f "ModuleAdvtExecuteSequence.idt" ) { installer::systemactions::rename_one_file("ModuleAdvtExecuteSequence.idt", "old.ModuleAdvtExecuteSequence.idt.$counter"); } # Extracting tables my $moduleexecutetables = "ModuleInstallExecuteSequence ModuleAdminExecuteSequence ModuleAdvtExecuteSequence"; # new tables @@ -557,16 +555,22 @@ sub merge_mergemodules_into_msi_database my $localworkdir = $workdir; $localmsifilename =~ s/\//\\\\/g; $localworkdir =~ s/\//\\\\/g; - $systemcall = $msidb . " -d " . $localmsifilename . " -f " . $localworkdir . " -i " . $workingtables. " " . $executetables; + foreach $table (split / /, $workingtables . ' ' . $executetables) { + $systemcall = $msidb . " -d " . $localmsifilename . " -f " . $localworkdir . " -i " . $table; + my $retval = system($systemcall); + $infoline = "Systemcall returned $retval: $systemcall\n"; + push( @installer::globals::logfileinfo, $infoline); + $returnvalue |= $retval; + } } else { $systemcall = $msidb . " -d " . $msifilename . " -f " . $workdir . " -i " . $workingtables. " " . $executetables; - } - $returnvalue = system($systemcall); + $returnvalue = system($systemcall); + $infoline = "Systemcall: $systemcall\n"; + push( @installer::globals::logfileinfo, $infoline); - $infoline = "Systemcall: $systemcall\n"; - push( @installer::globals::logfileinfo, $infoline); + } if ($returnvalue) { @@ -1105,23 +1109,6 @@ sub change_file_table { if ( ! -d $unpackdir ) { installer::systemactions::create_directory($unpackdir); } - # Unpack the cab file, so that in can be included into the last office cabinet file. Attention: cararc.exe from cabsdk required. - # cabarc.exe -o X <fullcabfilepath> - - # my $cabarcfilename = "cabarc.exe"; - # my $cabarcfile = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$cabarcfilename, $includepatharrayref, 1); - - # if ( ! -f $$cabarcfile ) - # { - # $cabarcfilename = "CABARC.EXE"; - # $cabarcfile = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$cabarcfilename, $includepatharrayref, 1); - # if ( ! -f $$cabarcfile ) - # { - # installer::exiter::exit_program("ERROR: cabarc.exe not found !", "change_file_table"); - # } - # } - # my $cabarc = $$cabarcfile; - # changing directory my $from = cwd(); my $to = $mergemodulehash->{'workdir'}; @@ -1148,9 +1135,6 @@ sub change_file_table my $cabfilename = "MergeModule.CABinet"; - # exclude cabinet file - # my $systemcall = $cabarc . " -o X " . $mergemodulehash->{'cabinetfile'}; - my $systemcall = ""; if ( $^O =~ /cygwin/i ) { my $localunpackdir = qx(cygpath -m "$unpackdir"); diff --git a/solenv/bin/modules/installer/windows/msiglobal.pm b/solenv/bin/modules/installer/windows/msiglobal.pm index dbb6e051aa29..07f6b73c9cbc 100644 --- a/solenv/bin/modules/installer/windows/msiglobal.pm +++ b/solenv/bin/modules/installer/windows/msiglobal.pm @@ -64,7 +64,10 @@ sub write_ddf_file_header push(@{$ddffileref} ,$oneline); $oneline = ".Set Compress=ON\n"; push(@{$ddffileref} ,$oneline); - $oneline = ".Set CompressionLevel=$installer::globals::cabfilecompressionlevel\n"; +# The window size for LZX compression +# CompressionMemory=15 | 16 | ... | 21 +# Reference: http://msdn.microsoft.com/en-us/library/bb417343.aspx + $oneline = ".Set CompressionMemory=$installer::globals::cabfilecompressionlevel\n"; push(@{$ddffileref} ,$oneline); $oneline = ".Set Cabinet=ON\n"; push(@{$ddffileref} ,$oneline); @@ -1010,9 +1013,9 @@ sub create_transforms my $infoline = "Systemcall: $systemcall\n"; push( @installer::globals::logfileinfo, $infoline); - # Problem: msitran.exe in version 4.0 always returns "1", even if no failure occured. + # Problem: msitran.exe in version 4.0 always returns "1", even if no failure occurred. # Therefore it has to be checked, if this is version 4.0. If yes, if the mst file - # exists and if it is larger than 0 bytes. If this is true, then no error occured. + # exists and if it is larger than 0 bytes. If this is true, then no error occurred. # File Version of msitran.exe: 4.0.6000.16384 has checksum: "b66190a70145a57773ec769e16777b29". # Same for msitran.exe from wntmsci12: "aa25d3445b94ffde8ef0c1efb77a56b8" @@ -1026,7 +1029,7 @@ sub create_transforms my $digest = Digest::MD5->new->addfile(*FILE)->hexdigest; close(FILE); - my @problemchecksums = ("b66190a70145a57773ec769e16777b29", "aa25d3445b94ffde8ef0c1efb77a56b8"); + my @problemchecksums = ("b66190a70145a57773ec769e16777b29", "aa25d3445b94ffde8ef0c1efb77a56b8", "748206e54fc93efe6a1aaa9d491f3ad1"); my $isproblemchecksum = 0; foreach my $problemchecksum ( @problemchecksums ) @@ -1057,13 +1060,13 @@ sub create_transforms } else { - $infoline = "Filesize indicates that an error occured.\n"; + $infoline = "Filesize indicates that an error occurred.\n"; push( @installer::globals::logfileinfo, $infoline); } } else { - $infoline = "File $transformfile does not exist -> An error occured.\n"; + $infoline = "File $transformfile does not exist -> An error occurred.\n"; push( @installer::globals::logfileinfo, $infoline); } } @@ -1476,7 +1479,6 @@ sub get_guid_list # "-c" for uppercase output - # my $systemcall = "$uuidgen -n$number -c |"; my $systemcall = "$uuidgen -n$number |"; open (UUIDGEN, "$systemcall" ) or die("uuidgen is missing."); my @uuidlist = <UUIDGEN>; @@ -1519,7 +1521,6 @@ sub calculate_guid my $digest = $md5->hexdigest; $digest = uc($digest); - # my $id = pack("A32", $digest); my ($first, $second, $third, $fourth, $fifth) = unpack ('A8 A4 A4 A4 A12', $digest); $guid = "$first-$second-$third-$fourth-$fifth"; @@ -1593,8 +1594,6 @@ sub set_uuid_into_component_table my $infoline = ""; my $counter = 0; - # my $componentfile = installer::files::read_file($installer::globals::componentfilename); - # my $componenthash = fill_component_hash($componentfile); for ( my $i = 3; $i <= $#{$componenttable}; $i++ ) # ignoring the first three lines { @@ -1604,13 +1603,6 @@ sub set_uuid_into_component_table my $uuid = ""; - # if ( $componenthash->{$componentname} ) - # { - # $uuid = $componenthash->{$componentname}; - # } - # else - # { - if ( exists($installer::globals::calculated_component_guids{$componentname})) { $uuid = $installer::globals::calculated_component_guids{$componentname}; @@ -1634,44 +1626,12 @@ sub set_uuid_into_component_table if ( exists($installer::globals::allcalculated_guids{$uuid}) ) { installer::exiter::exit_program("ERROR: \"$uuid\" was already created before!", "set_uuid_into_component_table"); } $installer::globals::allcalculated_guids{$uuid} = 1; $installer::globals::calculated_component_guids{$componentname} = $uuid; - - # Setting new uuid - # $componenthash->{$componentname} = $uuid; - - # Setting flag - # $installer::globals::created_new_component_guid = 1; # this is very important! } - # } ${$componenttable}[$i] =~ s/COMPONENTGUID/$uuid/; } installer::files::save_file($componenttablename, $componenttable); - -# if ( $installer::globals::created_new_component_guid ) -# { -# # create new component file! -# $componentfile = create_new_component_file($componenthash); -# installer::worker::sort_array($componentfile); -# -# # To avoid conflict the components file cannot be saved at the same place -# # All important data have to be saved in the directory: $installer::globals::infodirectory -# my $localcomponentfilename = $installer::globals::componentfilename; -# installer::pathanalyzer::make_absolute_filename_to_relative_filename(\$localcomponentfilename); -# $localcomponentfilename = $installer::globals::infodirectory . $installer::globals::separator . $localcomponentfilename; -# installer::files::save_file($localcomponentfilename, $componentfile); -# -# # installer::files::save_file($installer::globals::componentfilename, $componentfile); # version using new file in solver -# -# $infoline = "COMPONENTCODES: Created $counter new GUIDs for components ! \n"; -# push( @installer::globals::logfileinfo, $infoline); -# } -# else -# { -# $infoline = "SUCCESS COMPONENTCODES: All component codes exist! \n"; -# push( @installer::globals::logfileinfo, $infoline); -# } - } ######################################################################### @@ -1884,8 +1844,6 @@ sub execute_packaging installer::logger::print_message( "... makecab.exe ($callscounter/$allmakecabcalls) ... \n" ); - # my $returnvalue = system($systemcall); - for ( my $n = 1; $n <= $maxmakecabcalls; $n++ ) { my @ddfoutput = (); @@ -1913,7 +1871,6 @@ sub execute_packaging } push( @installer::globals::logfileinfo, $infoline); - # for ( my $j = 0; $j <= $#ddfoutput; $j++ ) { push( @installer::globals::logfileinfo, "$ddfoutput[$j]"); } for ( my $m = 0; $m <= $#ddfoutput; $m++ ) { @@ -1930,7 +1887,6 @@ sub execute_packaging } else { - # installer::logger::print_message( "Success (Try $n): \"$systemcall\"\n" ); $infoline = "Success (Try $n): $systemcall"; push( @installer::globals::logfileinfo, $infoline); last; @@ -2033,7 +1989,6 @@ sub set_global_code_variables $installer::globals::upgradecode = installer::windows::idtglobal::get_language_string_from_language_block($codeblock, $onelanguage, ""); } - # if (( $installer::globals::productcode eq "" ) && ( ! $isopensource )) { installer::exiter::exit_program("ERROR: ProductCode for language $onelanguage not defined in $installer::globals::codefilename !", "set_global_code_variables"); } if ( $installer::globals::upgradecode eq "" ) { installer::exiter::exit_program("ERROR: UpgradeCode not defined in $installer::globals::codefilename !", "set_global_code_variables"); } $infoline = "Setting ProductCode to: $installer::globals::productcode \n"; @@ -2226,8 +2181,8 @@ sub read_saved_mappings { my @errorlines = (); my $errorstring = ""; - my $error_occured = 0; - my $file_error_occured = 0; + my $error_occurred = 0; + my $file_error_occurred = 0; my $dir_error = 0; my $idtdir = $installer::globals::previous_idt_dir; @@ -2251,28 +2206,28 @@ sub read_saved_mappings if ( exists($installer::globals::savedmapping{"$2/$5"})) { - if ( ! $file_error_occured ) + if ( ! $file_error_occurred ) { $errorstring = "\nErrors in $idtfile: \n"; push(@errorlines, $errorstring); } $errorstring = "Duplicate savedmapping{" . "$2/$5}\n"; push(@errorlines, $errorstring); - $error_occured = 1; - $file_error_occured = 1; + $error_occurred = 1; + $file_error_occurred = 1; } if ( exists($installer::globals::savedrevmapping{$lc1})) { - if ( ! $file_error_occured ) + if ( ! $file_error_occurred ) { $errorstring = "\nErrors in $idtfile: \n"; push(@errorlines, $errorstring); } $errorstring = "Duplicate savedrevmapping{" . "$lc1}\n"; push(@errorlines, $errorstring); - $error_occured = 1; - $file_error_occured = 1; + $error_occurred = 1; + $file_error_occurred = 1; } my $shortname = $4 || ''; @@ -2286,15 +2241,15 @@ sub read_saved_mappings if (( $shortname ne '' ) && ( index($shortname, '~') > 0 ) && ( exists($installer::globals::savedrev83mapping{$shortname}) )) { - if ( ! $file_error_occured ) + if ( ! $file_error_occurred ) { $errorstring = "\nErrors in $idtfile: \n"; push(@errorlines, $errorstring); } $errorstring = "Duplicate savedrev83mapping{" . "$shortname}\n"; push(@errorlines, $errorstring); - $error_occured = 1; - $file_error_occured = 1; + $error_occurred = 1; + $file_error_occurred = 1; } $installer::globals::savedmapping{"$2/$5"} = "$1;$shortname"; @@ -2326,15 +2281,15 @@ sub read_saved_mappings if ( exists($installer::globals::saved83dirmapping{$1}) ) { - if ( ! $dir_error_occured ) + if ( ! $dir_error_occurred ) { $errorstring = "\nErrors in $idtfile: \n"; push(@errorlines, $errorstring); } $errorstring = "Duplicate saved83dirmapping{" . "$1}\n"; push(@errorlines, $errorstring); - $error_occured = 1; - $dir_error_occured = 1; + $error_occurred = 1; + $dir_error_occurred = 1; } $installer::globals::saved83dirmapping{$1} = $4; @@ -2346,7 +2301,7 @@ sub read_saved_mappings # Analyzing errors - if ( $error_occured ) + if ( $error_occurred ) { for ( my $i = 0; $i <= $#errorlines; $i++ ) { @@ -2356,7 +2311,6 @@ sub read_saved_mappings installer::exiter::exit_program("ERROR: Duplicate entries in saved mappings!", "read_saved_mappings"); } } else { - # push( @installer::globals::globallogfileinfo, "WARNING: Windows patch shall be prepared, but PREVIOUS_IDT_DIR is not set!\n" ); installer::exiter::exit_program("ERROR: Windows patch shall be prepared, but environment variable PREVIOUS_IDT_DIR is not set!", "read_saved_mappings"); } diff --git a/solenv/bin/modules/installer/windows/msp.pm b/solenv/bin/modules/installer/windows/msp.pm index ac28f9258820..7593c96a6ea8 100644 --- a/solenv/bin/modules/installer/windows/msp.pm +++ b/solenv/bin/modules/installer/windows/msp.pm @@ -420,7 +420,6 @@ sub execute_msimsp $locallogfilename =~ s/\//\\\\/g; $localmspfilename =~ s/\\/\\\\/g; # path already contains backslash - # $localmspfilename =~ s/\//\\\\/g; $localmsimsptemppath = qx{cygpath -w "$localmsimsptemppath"}; $localmsimsptemppath =~ s/\\/\\\\/g; @@ -888,7 +887,7 @@ sub change_patchmetadata_table if ( $allvariables->{'PROPERTYTABLEPRODUCTNAME'} ) { $targetproductnamevalue = $allvariables->{'PROPERTYTABLEPRODUCTNAME'}; } my $manufacturerstring = "ManufacturerName"; - my $manufacturervalue = "OpenOffice.org"; + my $manufacturervalue = "LibreOffice"; if ( $installer::globals::longmanufacturer ) { $manufacturervalue = $installer::globals::longmanufacturer; } my $displaynamestring = "DisplayName"; @@ -897,7 +896,7 @@ sub change_patchmetadata_table my $descriptionvalue = ""; my $base = $allvariables->{'PRODUCTNAME'} . " " . $allvariables->{'PRODUCTVERSION'}; - if ( $installer::globals::languagepack ) { $base = $targetproductnamevalue; } + if ( $installer::globals::languagepack || $installer::globals::helppack ) { $base = $targetproductnamevalue; } my $windowspatchlevel = 0; if ( $allvariables->{'WINDOWSPATCHLEVEL'} ) { $windowspatchlevel = $allvariables->{'WINDOWSPATCHLEVEL'}; } @@ -1176,6 +1175,7 @@ sub correct_patch my $localproduct = $installer::globals::product; if ( $installer::globals::languagepack ) { $localproduct = $localproduct . "LanguagePack"; } + elsif ( $installer::globals::helppack ) { $localproduct = $localproduct . "HelpPack"; } if ( $product eq $localproduct ) { $product_is_good = 1; } @@ -1273,10 +1273,7 @@ sub convert_unicode_to_ascii my $savfilename = $filename . "_before.unicode"; installer::systemactions::copy_one_file($filename, $savfilename); -# open( IN, "<:utf16", $filename ) || installer::exiter::exit_program("ERROR: Cannot open file $filename for reading", "convert_unicode_to_ascii"); -# open( IN, "<:para:crlf:uni", $filename ) || installer::exiter::exit_program("ERROR: Cannot open file $filename for reading", "convert_unicode_to_ascii"); open( IN, "<:encoding(UTF16-LE)", $filename ) || installer::exiter::exit_program("ERROR: Cannot open file $filename for reading", "convert_unicode_to_ascii"); -# open( IN, "<:encoding(UTF-8)", $filename ) || installer::exiter::exit_program("ERROR: Cannot open file $filename for reading", "convert_unicode_to_ascii"); while ( $line = <IN> ) { push @localfile, $line; } @@ -1408,6 +1405,7 @@ sub create_msp_patch my $pcpfilename = $allvariables->{'PCPFILENAME'}; if ( $installer::globals::languagepack ) { $pcpfilename =~ s/.pcp\s*$/languagepack.pcp/; } + elsif ( $installer::globals::helppack ) { $pcpfilename =~ s/.pcp\s*$/helppack.pcp/; } # Searching the pcp file in the include pathes my $fullpcpfilenameref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$pcpfilename, $includepatharrayref, 1); @@ -1456,7 +1454,7 @@ sub create_msp_patch installer::systemactions::copy_complete_directory($oldinstallationsetpath, $mspdir); # Copying additional patches into the installation set, if required - if (( $allvariables->{'ADDITIONALREQUIREDPATCHES'} ) && ( $allvariables->{'ADDITIONALREQUIREDPATCHES'} ne "" ) && ( ! $installer::globals::languagepack )) + if (( $allvariables->{'ADDITIONALREQUIREDPATCHES'} ) && ( $allvariables->{'ADDITIONALREQUIREDPATCHES'} ne "" ) && ( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack )) { my $filename = $allvariables->{'ADDITIONALREQUIREDPATCHES'}; diff --git a/solenv/bin/modules/installer/windows/property.pm b/solenv/bin/modules/installer/windows/property.pm index a5d3745d94c3..5cfa674dd7c0 100644 --- a/solenv/bin/modules/installer/windows/property.pm +++ b/solenv/bin/modules/installer/windows/property.pm @@ -54,6 +54,7 @@ sub get_arpcomments_for_property_table } if ( $installer::globals::languagepack ) { $comment = $comment . " " . "Language Pack"; } + elsif ( $installer::globals::helppack ) { $comment = $comment . " " . "Help Pack"; } if ( $installer::globals::patch ) { @@ -142,11 +143,20 @@ sub get_english_language_string return $langstring; } -sub get_productname_for_property_table +sub get_productname($$) { - my ( $allvariables ) = @_; + my ( $language, $allvariables ) = @_; my $name = $allvariables->{'PRODUCTNAME'}; + + return $name; +} + +sub get_productname_for_property_table($$) +{ + my ( $language, $allvariables ) = @_; + + my $name = get_productname ($language, $allvariables); my $version = $allvariables->{'PRODUCTVERSION'}; my $productname = $name . " " . $version; @@ -166,10 +176,14 @@ sub get_productname_for_property_table if ( $installer::globals::languagepack ) { - # my $langstring = get_language_string(); # Example (English, Deutsch) - my $langstring = get_english_language_string(); # New: (English, German) + my $langstring = get_english_language_string(); # Example: (English, German) $productname = $name . " " . $version . " Language Pack" . " " . $langstring; } + elsif ( $installer::globals::helppack ) + { + my $langstring = get_english_language_string(); # New: (English, German) + $productname = $name . " " . $version . " Help Pack" . " " . $langstring; + } if ( $installer::globals::patch ) { @@ -186,13 +200,12 @@ sub get_productname_for_property_table return $productname; } -sub get_quickstarterlinkname_for_property_table +sub get_quickstarterlinkname_for_property_table($$) { - my ( $allvariables ) = @_; + my ( $language, $allvariables ) = @_; # no usage of POSTVERSIONEXTENSION for Quickstarter link name! - - my $name = $allvariables->{'PRODUCTNAME'}; + my $name = get_productname ($language, $allvariables); my $version = $allvariables->{'PRODUCTVERSION'}; my $quickstartername = $name . " " . $version; @@ -358,6 +371,11 @@ sub set_important_properties my $onepropertyline = "ISLANGUAGEPACK" . "\t" . "1" . "\n"; push(@{$propertyfile}, $onepropertyline); } + elsif ( $installer::globals::helppack ) + { + my $onepropertyline = "ISHELPPACK" . "\t" . "1" . "\n"; + push(@{$propertyfile}, $onepropertyline); + } my $languagesline = "PRODUCTALLLANGUAGES" . "\t" . $$languagestringref . "\n"; push(@{$propertyfile}, $languagesline); @@ -485,9 +503,9 @@ sub update_property_table my $ischeckforproductupdates = get_ischeckforproductupdates_for_property_table(); my $manufacturer = get_manufacturer_for_property_table(); my $productlanguage = get_productlanguage_for_property_table($language); - my $productname = get_productname_for_property_table($allvariables); + my $productname = get_productname_for_property_table($language, $allvariables); my $productversion = get_productversion_for_property_table(); - my $quickstarterlinkname = get_quickstarterlinkname_for_property_table($allvariables); + my $quickstarterlinkname = get_quickstarterlinkname_for_property_table($language, $allvariables); # Updating the values diff --git a/solenv/bin/modules/installer/windows/registry.pm b/solenv/bin/modules/installer/windows/registry.pm index 18981d661372..ad036865ebc3 100644 --- a/solenv/bin/modules/installer/windows/registry.pm +++ b/solenv/bin/modules/installer/windows/registry.pm @@ -94,6 +94,7 @@ sub get_registry_component_name $componentname = $componentname . $addon; if (( $styles =~ /\bLANGUAGEPACK\b/ ) && ( $installer::globals::languagepack )) { $componentname = $componentname . "_lang"; } + elsif (( $styles =~ /\bHELPPACK\b/ ) && ( $installer::globals::helppack )) { $componentname = $componentname . "_help"; } if ( $styles =~ /\bALWAYS_REQUIRED\b/ ) { $componentname = $componentname . "_forced"; } # Attention: Maximum length for the componentname is 72 diff --git a/solenv/bin/modules/installer/windows/shortcut.pm b/solenv/bin/modules/installer/windows/shortcut.pm index 76039baf10c9..cb62a0a7fdd9 100644 --- a/solenv/bin/modules/installer/windows/shortcut.pm +++ b/solenv/bin/modules/installer/windows/shortcut.pm @@ -357,10 +357,9 @@ sub get_folderitem_directory { my ($shortcut) = @_; - # my $directory = "$installer::globals::programmenufolder"; # default my $directory = "$installer::globals::officemenufolder"; # default - # The value $installer::globals::programmenufolder is not correct for the + # The default is not correct for the # PREDEFINED folders, like PREDEFINED_AUTOSTART if ( $shortcut->{'FolderID'} eq "PREDEFINED_AUTOSTART" ) @@ -694,4 +693,4 @@ sub create_shortcut_table } -1;
\ No newline at end of file +1; diff --git a/solenv/bin/modules/installer/windows/sign.pm b/solenv/bin/modules/installer/windows/sign.pm index 70954bd9f5b1..8fb7b3fe13a0 100644 --- a/solenv/bin/modules/installer/windows/sign.pm +++ b/solenv/bin/modules/installer/windows/sign.pm @@ -243,9 +243,6 @@ sub execute_open_system_call if( $^O =~ /cygwin/i ) { - # $comspec =~ s/\\/\\\\/g; - # $comspec = qx{cygpath -u "$comspec"}; - # $comspec =~ s/\s*$//g; $comspec = ""; } @@ -548,7 +545,6 @@ sub cabinet_cosistency_check my $sourcecabfile = $finalinstalldir . $installer::globals::separator . $onefile; my $currentpath = cwd(); my $destcabfile = $currentpath . $installer::globals::separator . $onefile; - # my $destcabfile = $onefile; if ( $^O =~ /cygwin/i ) { @@ -614,7 +610,6 @@ sub cabinet_cosistency_check # Also making a binary diff? my $difffile = "diff.exe"; # has to be in the path - # $systemcall = "$difffile $sourcecabfile $destcabfile"; # Test for differences $systemcall = "$difffile $origfile $newfile"; $infoline = $systemcall . "\n"; $returnvalue = make_systemcall($systemcall, $systemcall); @@ -634,9 +629,9 @@ sub cabinet_cosistency_check } else { - $infoline = "ERROR: Problem occured calling diff.exe (File: $lastfile)\n"; + $infoline = "ERROR: Problem occurred calling diff.exe (File: $lastfile)\n"; push( @installer::globals::logfileinfo, $infoline); - installer::exiter::exit_program("ERROR: Problem occured calling diff.exe (File: $lastfile) !", "cabinet_cosistency_check"); + installer::exiter::exit_program("ERROR: Problem occurred calling diff.exe (File: $lastfile) !", "cabinet_cosistency_check"); } } } @@ -1050,8 +1045,6 @@ sub already_certified if ( $returnvalue ) { $success = 0; } - # my $success = make_systemcall($systemcall, $systemcall); - if ( $success ) { $is_certified = 1; diff --git a/solenv/bin/modules/installer/windows/update.pm b/solenv/bin/modules/installer/windows/update.pm index efe6949b6fc4..50d31f022024 100644 --- a/solenv/bin/modules/installer/windows/update.pm +++ b/solenv/bin/modules/installer/windows/update.pm @@ -215,6 +215,7 @@ sub correct_database my $localproduct = $installer::globals::product; if ( $installer::globals::languagepack ) { $localproduct = $localproduct . "LanguagePack"; } + elsif ( $installer::globals::helppack ) { $localproduct = $localproduct . "HelpPack"; } if ( $product eq $localproduct ) { $product_is_good = 1; } @@ -334,7 +335,6 @@ sub readdatabase } else { - # installer::logger::print_message( "... no update process, no database found ...\n" ); $infoline = "\nNo database found in $completelistname. This is no update process!\n\n"; } push( @installer::globals::logfileinfo, $infoline); @@ -597,4 +597,4 @@ sub create_database_hashes } -1;
\ No newline at end of file +1; diff --git a/solenv/bin/modules/installer/windows/upgrade.pm b/solenv/bin/modules/installer/windows/upgrade.pm index 49479b26bf49..547bc4ce7bf1 100644 --- a/solenv/bin/modules/installer/windows/upgrade.pm +++ b/solenv/bin/modules/installer/windows/upgrade.pm @@ -47,7 +47,7 @@ sub create_upgrade_table # fix for problematic OOo 1.9 versions my $include_ooo_fix = 0; my $ooomaxnew = ""; - if (($installer::globals::product =~ /^\s*OpenOffice/i ) && ( ! ( $installer::globals::product =~ /SDK/i )) && ( ! $installer::globals::languagepack )) + if (($installer::globals::product =~ /^\s*OpenOffice/i ) && ( ! ( $installer::globals::product =~ /SDK/i )) && ( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack )) { $include_ooo_fix = 1; $ooomaxnew = "34.0.0"; @@ -61,7 +61,8 @@ sub create_upgrade_table push(@upgradetable, $newline); # Setting all products, that must be removed. - $newline = $installer::globals::upgradecode . "\t" . $installer::globals::msimajorproductversion . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "257" . "\t" . "\t" . "OLDPRODUCTSSAMEMAJOR" . "\n"; + # $newline = $installer::globals::upgradecode . "\t" . $installer::globals::msimajorproductversion . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "257" . "\t" . "\t" . "OLDPRODUCTSSAMEMAJOR" . "\n"; + $newline = $installer::globals::upgradecode . "\t" . $installer::globals::msimajorproductversion . "\t" . $installer::globals::msiproductversion . "\t" . "\t" . "769" . "\t" . "\t" . "OLDPRODUCTSSAMEMAJOR" . "\n"; push(@upgradetable, $newline); if ( ! $installer::globals::patch ) @@ -70,8 +71,8 @@ sub create_upgrade_table $newline = $installer::globals::upgradecode . "\t" . $installer::globals::msiproductversion . "\t" . $ooomaxnew . "\t" . "\t" . "2" . "\t" . "\t" . "NEWPRODUCTS" . "\n"; push(@upgradetable, $newline); - $newline = $installer::globals::upgradecode . "\t" . $installer::globals::msiproductversion . "\t" . $ooomaxnew . "\t" . "\t" . "258" . "\t" . "\t" . "SAMEPRODUCTS" . "\n"; - push(@upgradetable, $newline); + # $newline = $installer::globals::upgradecode . "\t" . $installer::globals::msiproductversion . "\t" . $ooomaxnew . "\t" . "\t" . "258" . "\t" . "\t" . "SAMEPRODUCTS" . "\n"; + # push(@upgradetable, $newline); if ( $include_ooo_fix ) { @@ -93,7 +94,7 @@ sub create_upgrade_table # also searching for the beta - if (( $allvariableshashref->{'BETAUPGRADECODE'} ) && ( ! $installer::globals::languagepack )) + if (( $allvariableshashref->{'BETAUPGRADECODE'} ) && ( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack )) { $newline = $allvariableshashref->{'BETAUPGRADECODE'} . "\t" . "1.0" . "\t" . "\t" . "\t" . "1" . "\t" . "\t" . "BETAPRODUCTS" . "\n"; push(@upgradetable, $newline); @@ -101,7 +102,7 @@ sub create_upgrade_table # also searching for the stub - if (( $allvariableshashref->{'STUBUPGRADECODE'} ) && ( ! $installer::globals::languagepack )) + if (( $allvariableshashref->{'STUBUPGRADECODE'} ) && ( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack )) { $newline = $allvariableshashref->{'STUBUPGRADECODE'} . "\t" . "1.0" . "\t" . "\t" . "\t" . "1" . "\t" . "\t" . "STUBPRODUCTS" . "\n"; push(@upgradetable, $newline); @@ -109,7 +110,7 @@ sub create_upgrade_table # searching for all older patches and languagepacks (defined in a extra file) - if (( $allvariableshashref->{'REMOVE_UPGRADE_CODE_FILE'} ) && ( ! $installer::globals::languagepack )) + if (( $allvariableshashref->{'REMOVE_UPGRADE_CODE_FILE'} ) && ( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack )) { my $filename = $allvariableshashref->{'REMOVE_UPGRADE_CODE_FILE'}; my $langpackcodefilename = $installer::globals::idttemplatepath . $installer::globals::separator . $filename; @@ -124,7 +125,7 @@ sub create_upgrade_table # No upgrade for Beta versions! - if (( $allvariableshashref->{'PRODUCTEXTENSION'} eq "Beta" ) && ( ! $installer::globals::patch ) && ( ! $installer::globals::languagepack )) + if (( $allvariableshashref->{'PRODUCTEXTENSION'} eq "Beta" ) && ( ! $installer::globals::patch ) && ( ! $installer::globals::languagepack ) && ( ! $installer::globals::helppack )) { @upgradetable = (); installer::windows::idtglobal::write_idt_header(\@upgradetable, "upgrade"); diff --git a/solenv/bin/modules/installer/worker.pm b/solenv/bin/modules/installer/worker.pm index 564a8cb71da7..d3b96d155e59 100644 --- a/solenv/bin/modules/installer/worker.pm +++ b/solenv/bin/modules/installer/worker.pm @@ -31,6 +31,7 @@ use Cwd; use File::Copy; use File::stat; use File::Temp qw(tmpnam); +use File::Path; use installer::control; use installer::converter; use installer::existence; @@ -38,7 +39,6 @@ use installer::exiter; use installer::files; use installer::globals; use installer::logger; -use installer::mail; use installer::pathanalyzer; use installer::scpzipfiles; use installer::scriptitems; @@ -104,13 +104,6 @@ sub copy_install_sets_to_ship installer::logger::print_message( "... copy installation set from " . $destdir . " to " . $localshipinstalldir . "\n" ); installer::systemactions::copy_complete_directory($destdir, $localshipinstalldir); - if (( ! $installer::globals::iswindowsbuild ) && ( $installer::globals::addjavainstaller )) - { - # Setting Unix rights for Java starter ("setup") - my $localcall = "chmod 775 $localshipinstalldir/setup \>\/dev\/null 2\>\&1"; - system($localcall); - } - # unpacking the tar.gz file for Solaris if ( $installer::globals::issolarisbuild ) { unpack_all_targzfiles_in_directory($localshipinstalldir); } @@ -184,17 +177,6 @@ sub make_checksum_file my $checksumfileref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$installer::globals::checksumfile, $includepatharrayref, 1); if ( $$checksumfileref eq "" ) { installer::exiter::exit_program("ERROR: Could not find file $installer::globals::checksumfile !", "make_checksum_file"); } -# # very slow on Windows -# for ( my $i = 0; $i <= $#{$filesref}; $i++ ) -# { -# my $onefile = ${$filesref}[$i]; -# my $systemcall = "$$checksumfileref $onefile->{'sourcepath'} |"; -# open (CHECK, "$systemcall"); -# my $localchecksum = <CHECK>; -# close (CHECK); -# push(@checksum, $localchecksum); -# } - my $systemcall = "$$checksumfileref"; for ( my $i = 0; $i <= $#{$filesref}; $i++ ) @@ -429,12 +411,11 @@ sub analyze_and_save_logfile my $contains_error = installer::control::check_logfile(\@installer::globals::logfileinfo); - # Dependent from the success, the installation directory can be renamed and mails can be send. + # Dependent from the success, the installation directory can be renamed. if ( $contains_error ) { my $errordir = installer::systemactions::rename_string_in_directory($installdir, "_inprogress", "_witherror"); - if ( $installer::globals::updatepack ) { installer::mail::send_fail_mail($allsettingsarrayref, $languagestringref, $errordir); } # Error output to STDERR for ( my $j = 0; $j <= $#installer::globals::errorlogfileinfo; $j++ ) { @@ -460,7 +441,6 @@ sub analyze_and_save_logfile if ( $installdir =~ /_packed/ ) { $destdir = installer::systemactions::rename_string_in_directory($installdir, "_inprogress", ""); } else { $destdir = installer::systemactions::rename_string_in_directory($installdir, "_inprogress", "_packed"); } } - installer::mail::send_success_mail($allsettingsarrayref, $languagestringref, $destdir); } else { @@ -486,7 +466,7 @@ sub analyze_and_save_logfile if ( $installer::globals::creating_windows_installer_patch ) { $installer::globals::creating_windows_installer_patch = 0; } - # Exiting the packaging process, if an error occured. + # Exiting the packaging process, if an error occurred. # This is important, to get an error code "-1", if an error was found in the log file, # that did not break the packaging process @@ -563,45 +543,8 @@ sub clean_jds_temp_dirs } ########################################################### -# Copying a reference array -########################################################### - -sub copy_array_from_references -{ - my ( $arrayref ) = @_; - - my @newarray = (); - - for ( my $i = 0; $i <= $#{$arrayref}; $i++ ) - { - push(@newarray, ${$arrayref}[$i]); - } - - return \@newarray; -} - -########################################################### -# Copying a reference hash -########################################################### - -sub copy_hash_from_references -{ - my ($hashref) = @_; - - my %newhash = (); - my $key; - - foreach $key (keys %{$hashref}) - { - $newhash{$key} = $hashref->{$key}; - } - - return \%newhash; -} - -########################################################### # Setting one language in the language independent -# array of include pathes with $(LANG) +# array of include paths with $(LANG) ########################################################### sub get_language_specific_include_pathes @@ -773,9 +716,16 @@ sub install_simple ($$$$$$) if ((!($dir =~ /\bPREDEFINED_/ )) || ( $dir =~ /\bPREDEFINED_PROGDIR\b/ )) { - # printf "mkdir $destdir$onedir->{'HostName'}\n"; - mkdir $destdir . $onedir->{'HostName'}; - push @lines, "%dir " . $onedir->{'HostName'} . "\n"; + my $hostname = $onedir->{'HostName'}; + + # ignore '.' subdirectories + next if ( $hostname =~ m/\.$/ ); + # remove './' from the path + $hostname =~ s/\.\///g; + + # printf "mkdir $destdir$hostname\n"; + mkdir $destdir . $hostname; + push @lines, "%dir " . $hostname . "\n"; } } @@ -792,13 +742,23 @@ sub install_simple ($$$$$$) $destination =~ s/\$\$/\$/; $sourcepath =~ s/\$\$/\$/; + # remove './' from the path + $sourcepath =~ s/\.\///g; + $destination =~ s/\.\///g; + push @lines, "$destination\n"; - # printf "cp $sourcepath $destdir$destination\n"; + if(-d "$destdir$destination"){ + rmtree("$destdir$destination"); + } + if(-e "$destdir$destination") { + unlink "$destdir$destination"; + } + copy ("$sourcepath", "$destdir$destination") || die "Can't copy file: $sourcepath -> $destdir$destination $!"; my $sourcestat = stat($sourcepath); utime ($sourcestat->atime, $sourcestat->mtime, "$destdir$destination"); chmod (oct($unixrights), "$destdir$destination") || die "Can't change permissions: $!"; - push @lines, "$destination\n"; + push @lines, "$destination\n"; } for ( my $i = 0; $i <= $#{$linksarray}; $i++ ) @@ -807,7 +767,9 @@ sub install_simple ($$$$$$) my $destination = $onelink->{'destination'}; my $destinationfile = $onelink->{'destinationfile'}; - # print "link $destinationfile -> $destdir$destination\n"; + if(-e "$destdir$destination") { + unlink "$destdir$destination"; + } symlink ("$destinationfile", "$destdir$destination") || die "Can't create symlink: $!"; push @lines, "$destination\n"; } @@ -818,7 +780,6 @@ sub install_simple ($$$$$$) my $target = $onelink->{'Target'}; my $destination = $onelink->{'destination'}; - # print "Unix link $target -> $destdir$destination\n"; `ln -sf '$target' '$destdir$destination'`; push @lines, "$destination\n"; } @@ -827,7 +788,6 @@ sub install_simple ($$$$$$) { my $filelist; my $fname = $installer::globals::destdir . "/$packagename"; - if ($installer::globals::languagepack) { $fname .= ".$languagestring"; } open ($filelist, ">$fname") || die "Can't open $fname: $!"; print $filelist @lines; close ($filelist); @@ -1223,7 +1183,7 @@ sub select_patch_items_without_name } ########################################################### -# Selecting patch items +# Selecting langpack items ########################################################### sub select_langpack_items @@ -1248,6 +1208,31 @@ sub select_langpack_items } ########################################################### +# Selecting helppack items +########################################################### + +sub select_helppack_items +{ + my ( $itemsref, $itemname ) = @_; + + installer::logger::include_header_into_logfile("Selecting RegistryItems for Help Packs"); + + my @itemsarray = (); + + for ( my $i = 0; $i <= $#{$itemsref}; $i++ ) + { + my $oneitem = ${$itemsref}[$i]; + + # Items with style "HELPPACK" have to be included into the patch + my $styles = ""; + if ( $oneitem->{'Styles'} ) { $styles = $oneitem->{'Styles'}; } + if (( $styles =~ /\bHELPPACK\b/ ) || ( $styles =~ /\bFORCEHELPPACK\b/ )) { push(@itemsarray, $oneitem); } + } + + return \@itemsarray; +} + +########################################################### # Searching if LICENSE and README, which are not removed # in select_patch_items are really needed for the patch. # If not, they are removed now. @@ -1491,7 +1476,6 @@ sub reorg_patchfile for ( my $j = 0; $j <= $#{$patchfiles}; $j++ ) { - # "\tXXXXX\t" . $olddestination . "\n"; if ( ${$patchfiles}[$j] =~ /^\s*(.*?)\s*\tXXXXX\t\Q$directory\E\s*$/ ) { $line = $1 . "\n"; @@ -1625,7 +1609,6 @@ sub prepare_windows_patchfiles my $patchfilename2 = "patchmsi.dll"; if ( ! $allvariableshashref->{'WINDOWSPATCHLEVEL'} ) { installer::exiter::exit_program("ERROR: No Windows patch level defined in list file (WINDOWSPATCHLEVEL) !", "prepare_windows_patchfiles"); } - # my $windowspatchlevel = $allvariableshashref->{'WINDOWSPATCHLEVEL'}; my $windowspatchlevel = $installer::globals::buildid; # the environment variable CWS_WORK_STAMP is set only in CWS @@ -1701,9 +1684,6 @@ sub prepare_windows_patchfiles $infoline = "Size of patch file list: $filesize\n\n"; push( @installer::globals::logfileinfo, $infoline); installer::logger::print_message( "... size of patch list file: $filesize Byte ... \n" ); - - # Win 98: Maximum size of ini file is 65 kB - # if ( $filesize > 64000 ) { installer::exiter::exit_program("ERROR: Maximum size of patch file list is 65 kB (Win98), now reached: $filesize Byte !", "prepare_windows_patchfiles"); } } } @@ -1721,7 +1701,8 @@ sub replace_variables_in_string { my $key; - foreach $key (keys %{$variableshashref}) + # we want to substitute FOO_BR before FOO to avoid floating _BR suffixes + foreach $key (sort { length ($b) <=> length ($a) } keys %{$variableshashref}) { my $value = $variableshashref->{$key}; $key = "\%" . $key; @@ -1767,14 +1748,9 @@ sub get_all_files_from_filelist my @allpackages = (); - for ( my $i = 0; $i <= $#{$listfile}; $i++ ) - { - my $line = ${$listfile}[$i]; - if ( $line =~ /^\s*\#/ ) { next; } # this is a comment line - if ( $line =~ /^\s*$/ ) { next; } # empty line - $line =~ s/^\s*//; - $line =~ s/\s*$//; - push(@allpackages, $line); + for (@{$listfile}) { + next unless /^\s*([^#].*?)\s*$/; + push @allpackages, $1; } return \@allpackages; @@ -1860,7 +1836,7 @@ sub get_all_packages_in_installdir my @allpackages = (); my $allpackages = \@allpackages; - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { $allpackages = installer::systemactions::find_file_with_file_extension("rpm", $directory); } @@ -1930,7 +1906,7 @@ sub copy_all_packages if ( ! is_matching($packagename, $allexcludepackages ) ) { - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { my $sourcepackage = $sourcedir . $installer::globals::separator . $packagename; my $destfile = $destdir . $installer::globals::separator . $packagename; @@ -1942,8 +1918,6 @@ sub copy_all_packages { my $destinationdir = $destdir . $installer::globals::separator . $packagename; if ( ! -d $onepackage ) { installer::exiter::exit_program("ERROR: Could not find Solaris package $onepackage!", "copy_all_packages"); } - # installer::systemactions::hardlink_complete_directory($onepackage, $destinationdir); - # installer::systemactions::copy_complete_directory($onepackage, $destinationdir); my $systemcall = "cp -p -R $onepackage $destinationdir"; make_systemcall($systemcall); @@ -2108,8 +2082,6 @@ sub check_jds_language my $infoline = ""; - # languagesarrayref and $allvariableshashref->{'JDSLANG'} - if ( ! $allvariableshashref->{'JDSLANG'} ) { installer::exiter::exit_program("ERROR: For building JDS installation sets \"JDSLANG\" must be defined!", "check_jds_language"); } my $languagestring = $allvariableshashref->{'JDSLANG'}; @@ -2207,8 +2179,7 @@ sub put_scpactions_into_installset if ( $onescpaction->{'UnixRights'} ) { - my $localcall = "chmod $onescpaction->{'UnixRights'} $destfile \>\/dev\/null 2\>\&1"; - system($localcall); + chmod oct($onescpaction->{'UnixRights'}), $destfile; } } @@ -2273,7 +2244,6 @@ sub get_platform_name } else { - # $platformname = $installer::globals::packageformat; $platformname = $installer::globals::compiler; } @@ -2295,7 +2265,7 @@ sub add_variables_from_inc_to_hashref my $includefilelist = ""; if ( $allvariables->{'ADD_INCLUDE_FILES'} ) { $includefilelist = $allvariables->{'ADD_INCLUDE_FILES'}; } - my $includefiles = installer::converter::convert_stringlist_into_array_without_linebreak_and_quotes(\$includefilelist, ","); + my $includefiles = installer::converter::convert_stringlist_into_array_without_newline(\$includefilelist, ","); for ( my $i = 0; $i <= $#{$includefiles}; $i++ ) { @@ -2341,7 +2311,7 @@ sub add_variables_from_inc_to_hashref } ############################################## -# Collecting all files from include pathes +# Collecting all files from include paths ############################################## sub collect_all_files_from_includepathes @@ -2349,7 +2319,7 @@ sub collect_all_files_from_includepathes my ($patharrayref) = @_; installer::logger::globallog("Reading all directories: Start"); - installer::logger::print_message( "... reading include pathes ...\n" ); + installer::logger::print_message( "... reading include paths ...\n" ); # empty the global @installer::globals::allincludepathes =(); @@ -2369,7 +2339,6 @@ sub collect_all_files_from_includepathes my @sourcefiles = (); my $pathstring = ""; - # installer::systemactions::read_complete_directory($includepath, $pathstring, \@sourcefiles); installer::systemactions::read_full_directory($includepath, $pathstring, \@sourcefiles); if ( ! ( $#sourcefiles > -1 )) @@ -2424,9 +2393,6 @@ sub find_file_by_id } } - # It does not need to exist. For example products that do not contain the libraries. - # if (! $foundfile ) { installer::exiter::exit_program("ERROR: No unique file name found for $filename !", "get_selfreg_file"); } - if (! $foundfile ) { $onefile = ""; } return $onefile; @@ -2974,7 +2940,6 @@ sub resolving_hidden_flag if ( $copysuccess ) { - # $onefile->{'Name'} = $newfilename; $onefile->{'sourcepath'} = $destfile; $destination = $onefile->{'destination'}; installer::pathanalyzer::get_path_from_fullqualifiedname(\$destination); @@ -3132,8 +3097,8 @@ sub put_license_into_setup # find and read english license file my $licenselanguage = "en-US"; # always english ! - # my $licensefilename = "LICENSE_" . $licenselanguage; - my $licensefilename = "license_" . $licenselanguage . ".txt"; + # my $licensefilename = "LICENSE"; # _" . $licenselanguage; + my $licensefilename = "license"; # . $licenselanguage . ".txt"; my $licenseincludepatharrayref = get_language_specific_include_pathes($includepatharrayref, $licenselanguage); my $licenseref = installer::scriptitems::get_sourcepath_from_filename_and_includepath(\$licensefilename, $licenseincludepatharrayref, 0); @@ -3184,7 +3149,6 @@ sub tar_package if ( $getuidlibrary ne "" ) { $ldpreloadstring = "LD_PRELOAD=" . $getuidlibrary; } my $systemcall = "cd $installdir; $ldpreloadstring tar -cf - $packagename > $tarfilename"; - # my $systemcall = "cd $installdir; $ldpreloadstring tar -cf - * > $tarfilename"; my $returnvalue = system($systemcall); @@ -3202,8 +3166,7 @@ sub tar_package push( @installer::globals::logfileinfo, $infoline); } - my $localcall = "chmod 775 $tarfilename \>\/dev\/null 2\>\&1"; - $returnvalue = system($localcall); + chmod 0775, $tarfilename; my $fulltarfile = $installdir . $installer::globals::separator . $tarfilename; my $filesize = ( -s $fulltarfile ); @@ -3240,8 +3203,7 @@ sub untar_package push( @installer::globals::logfileinfo, $infoline); } - my $localcall = "chmod 775 $tarfilename \>\/dev\/null 2\>\&1"; - $returnvalue = system($localcall); + chmod 0775, $tarfilename; } ######################################################### @@ -3252,32 +3214,12 @@ sub shuffle_array { my ( $arrayref ) = @_; - # my $counter = 0; - # my $infoline = "Old package order: \n"; - # push( @installer::globals::logfileinfo, $infoline); - # foreach my $onepackage ( @{$arrayref} ) - # { - # $counter++; - # $infoline = "$counter: $onepackage->{'module'}\n"; - # push( @installer::globals::logfileinfo, $infoline); - # } - my $i = @$arrayref; while (--$i) { my $j = int rand ($i+1); @$arrayref[$i,$j] = @$arrayref[$j,$i]; } - - # $counter = 0; - # $infoline = "New package order: \n"; - # push( @installer::globals::logfileinfo, $infoline); - # foreach my $onepackage ( @{$arrayref} ) - # { - # $counter++; - # $infoline = "$counter: $onepackage->{'module'}\n"; - # push( @installer::globals::logfileinfo, $infoline); - # } } ################################################ @@ -3427,7 +3369,6 @@ sub collectpackagemaps # Create a tar gz file with all package maps my $tarfilename = $subdirname . ".tar"; my $targzname = $tarfilename . ".gz"; - # my $systemcall = "cd $pkgmapdir; tar -cf - $subdirname > $tarfilename"; $systemcall = "cd $pkgmapdir; tar -cf - $subdirname | gzip > $targzname"; make_systemcall($systemcall); installer::systemactions::remove_complete_directory($pkgmapsubdir, 1); diff --git a/solenv/bin/modules/installer/xpdinstaller.pm b/solenv/bin/modules/installer/xpdinstaller.pm index c6938292b313..3b72889d2bc1 100644 --- a/solenv/bin/modules/installer/xpdinstaller.pm +++ b/solenv/bin/modules/installer/xpdinstaller.pm @@ -109,8 +109,6 @@ sub get_module $found = 1; last; } - - # if ( ! $found ) { installer::exiter::exit_program("ERROR: Could not find module belonging to gid $modulegid!", "get_module (xpdinstaller)"); } } return $searchmodule; @@ -445,8 +443,8 @@ sub get_forceintoupdate_value } ################################################### -# Substituting all occurences of "<" by "<" -# and all occurences of ">" by ">" +# Substituting all occurrences of "<" by "<" +# and all occurrences of ">" by ">" ################################################### sub replace_brackets_in_string @@ -460,7 +458,7 @@ sub replace_brackets_in_string } ################################################### -# Substituting all occurences of "\uUXYZ" by +# Substituting all occurrences of "\uUXYZ" by # "&#xUXYZ;", because the use xml saxparser does # not know anything about this encoding. Therfore # the xml file can keep standard encoding "UTF-8" @@ -579,9 +577,8 @@ sub get_size_value my $isrpmfile = 0; if ( $packagename =~ /\.rpm\s*$/ ) { $isrpmfile = 1; } - if (( $installer::globals::islinuxrpmbuild ) && ( $isrpmfile )) + if (( $installer::globals::isrpmbuild ) && ( $isrpmfile )) { - # if ( ! $installer::globals::rpmquerycommand ) { installer::exiter::exit_program("ERROR: rpm not found for querying packages!", "get_size_value"); } if ( ! $installer::globals::rpmquerycommand ) { $installer::globals::rpmquerycommand = "rpm"; } my $systemcall = "$installer::globals::rpmquerycommand -qp --queryformat \"\[\%\{FILESIZES\}\\n\]\" $packagename 2\>\&1 |"; @@ -658,7 +655,7 @@ sub get_md5_value return $value; } - if ( $installer::globals::islinuxrpmbuild ) + if ( $installer::globals::isrpmbuild ) { my $md5file = "/usr/bin/md5sum"; @@ -712,7 +709,7 @@ sub get_fullpkgname_value my $isrpmfile = 0; if ( $packagename =~ /\.rpm\s*$/ ) { $isrpmfile = 1; } - if (( $installer::globals::islinuxrpmbuild ) && ( $isrpmfile )) + if (( $installer::globals::isrpmbuild ) && ( $isrpmfile )) { if ( $xpdinfo->{'FullPackageName'} ) { @@ -720,7 +717,6 @@ sub get_fullpkgname_value return $value; } - # if ( ! $installer::globals::rpmquerycommand ) { installer::exiter::exit_program("ERROR: rpm not found for querying packages!", "get_fullpkgname_value"); } if ( ! $installer::globals::rpmquerycommand ) { $installer::globals::rpmquerycommand = "rpm"; } my $systemcall = "$installer::globals::rpmquerycommand -qp $packagename |"; my $ld_library_backup = $ENV{LD_LIBRARY_PATH}; @@ -888,7 +884,7 @@ sub make_systemcall { $infoline = "ERROR: $systemcall\n"; push( @installer::globals::logfileinfo, $infoline); - $error_occured = 1; + $error_occurred = 1; } else { @@ -931,13 +927,13 @@ sub make_systemcall_allowing_error { $infoline = "WARNING: Failed system call: $systemcall\n"; push( @installer::globals::logfileinfo, $infoline); - $error_occured = 1; + $error_occurred = 1; } else { $infoline = "ERROR: $systemcall\n"; push( @installer::globals::logfileinfo, $infoline); - $error_occured = 1; + $error_occurred = 1; } } else @@ -1076,7 +1072,6 @@ sub set_productdir_tag if ( $allvariables->{"BRANDPACKAGEVERSION"} ) { $productdir = $productdir . $allvariables->{"BRANDPACKAGEVERSION"}; -# if ( $allvariables->{"LCPRODUCTEXTENSION"} ) { $productdir = $productdir . $allvariables->{"LCPRODUCTEXTENSION"}; } } else { @@ -1487,7 +1482,6 @@ sub create_emptyparents_xpd_file push(@installer::globals::logfileinfo, $infoline); } - # push(@installer::globals::emptyxpdparents, $parentgid); push( @installer::globals::createdxpdfiles, $parentgid); return $grandpagid; @@ -1558,7 +1552,6 @@ sub create_xpd_file my $xpddir = installer::systemactions::create_directories("xpdinstaller", $languagestringref); $xpddir =~ s/\/\s*$//; $installer::globals::xpddir = $xpddir; - # push(@installer::globals::removedirs, $xpddir); my $modulegid = $onepackage->{'module'}; @@ -1616,7 +1609,6 @@ sub create_xpd_file { my $create_missing_parent = is_empty_parent($parentgid, $allpackages); - # if (( $create_missing_parent ) && ( ! installer::existence::exists_in_array($parentgid, \@installer::globals::emptyxpdparents) )) if (( $create_missing_parent ) && ( ! installer::existence::exists_in_array($parentgid, \@installer::globals::createdxpdfiles) )) { $grandpagid = create_emptyparents_xpd_file($parentgid, $modulesarrayref, $xpddir); @@ -1627,7 +1619,6 @@ sub create_xpd_file { my $create_missing_parent = is_empty_parent($grandpagid, $allpackages); - # if (( $create_missing_parent ) && ( ! installer::existence::exists_in_array($parentgid, \@installer::globals::emptyxpdparents) )) if (( $create_missing_parent ) && ( ! installer::existence::exists_in_array($grandpagid, \@installer::globals::createdxpdfiles) )) { create_emptyparents_xpd_file($grandpagid, $modulesarrayref, $xpddir); @@ -1671,7 +1662,6 @@ sub create_xpd_file_for_childproject if ( $parentgid ne "root" ) { - # my $create_missing_parent = is_empty_parent($parentgid, $allpackages); my $create_missing_parent = 1; # -> Always missing parent by child projects! # Parent is now created, if it was not created before. Attention: Parent module must not come later. if (( $create_missing_parent ) && ( ! installer::existence::exists_in_array($parentgid, \@installer::globals::createdxpdfiles) )) @@ -1698,12 +1688,10 @@ sub create_xpd_file_for_systemintegration { my $newpackagename = ${$newcontent}[$i]; - # installer::pathanalyzer::make_absolute_filename_to_relative_filename(\$newpackagename); - my $infoline = "Creating xpd file for package: $newpackagename\n"; push( @installer::globals::logfileinfo, $infoline); - my $childmodule = installer::worker::copy_hash_from_references($module); + my $childmodule = {%{$module}}; $childmodule->{'ParentID'} = $module->{'gid'}; # the module gid is the new parent $childmodule->{'InstallOrder'} = $installer::globals::defaultsystemintinstallorder; my $number = $i + 1; diff --git a/solenv/bin/modules/installer/ziplist.pm b/solenv/bin/modules/installer/ziplist.pm index 9a5460cacb3c..d52e97bf4e87 100644 --- a/solenv/bin/modules/installer/ziplist.pm +++ b/solenv/bin/modules/installer/ziplist.pm @@ -464,7 +464,7 @@ sub replace_all_variables_in_pathes my $key; - foreach $key (keys %{$variableshashref}) + foreach $key (sort { length ($b) <=> length ($a) } keys %{$variableshashref}) { my $value = $variableshashref->{$key}; @@ -489,18 +489,8 @@ sub replace_minor_in_pathes { my $line = ${$patharrayref}[$i]; - if ( ! defined $ENV{CWS_WORK_STAMP} and defined $ENV{UPDMINOR} ) -# if ( $installer::globals::minor ) - { - $line =~ s/\{minor\}/$installer::globals::minor/g; - # no difference for minor and minornonpre (ToDo ?) - $line =~ s/\{minornonpre\}/$installer::globals::minor/g; - } - else # building without a minor - { - $line =~ s/\.\{minor\}//g; - $line =~ s/\.\{minornonpre\}//g; - } + $line =~ s/\.\{minor\}//g; + $line =~ s/\.\{minornonpre\}//g; ${$patharrayref}[$i] = $line; } @@ -643,7 +633,7 @@ sub set_manufacturer { my ($allvariables) = @_; - my $openofficeproductname = "OpenOffice.org"; + my $openofficeproductname = "LibreOffice"; my $sunname = ""; @@ -793,6 +783,7 @@ sub add_variables_to_allvariableshashref if ( $installer::globals::patch ) { $variableshashref->{'PRODUCTADDON'} = $installer::globals::patchaddon; } elsif ( $installer::globals::languagepack ) { $variableshashref->{'PRODUCTADDON'} = $installer::globals::languagepackaddon; } + elsif ( $installer::globals::helppack ) { $variableshashref->{'PRODUCTADDON'} = $installer::globals::helppackpackaddon; } else { $variableshashref->{'PRODUCTADDON'} = ""; } my $localbuild = $installer::globals::build; diff --git a/solenv/bin/modules/osarch.pm b/solenv/bin/modules/osarch.pm deleted file mode 100755 index 205e4c933193..000000000000 --- a/solenv/bin/modules/osarch.pm +++ /dev/null @@ -1,195 +0,0 @@ -#!/usr/bin/perl -w - -# *********************************************************************** -# Description: -# Filename: osarch.pm -# Autor: EG -# Date: 28.10.96 -# $Header: /zpool/svn/migration/cvs_rep_09_09_08/code/solenv/bin/modules/osarch.pm,v 1.3 2008-08-18 13:11:04 vg Exp $ -# Copyright: STAR DIVISION -# **********************************************************************/ - -package osarch; - -$m_str = `uname -m`; -$s_str = `uname -s`; -chop( $m_str, $s_str ); - -%osTable = ("SunOS", "solaris", - "HP-UX", "hpux", - "AIX", "aix", - "OS/390", "s390", - "Linux", "linux", - "FreeBSD", "freebsd", - "NetBSD", "netbsd", - "OSF1", "decunix", - "SCO_SV", "scoosr5", -# "SCO_SV", "scouw21", - "Darwin", "macosxp", - "Mac OS", "macosxp", - "SINIX-N", "sinix" - ); - -%osDefTable = ("SunOS", "-DSYSV -DSOLARIS", - "HP-UX", "-DSYSV -DHPUX", - "AIX", "-DSYSV -DAIX", - "Linux", "-DLINUX", - "FreeBSD", "-DFREEBSD", - "NetBSD", "-DNETBSD", - "OSF1", "-DSYSV -DDECUNIX", - "SCO_SV", "-DSYSV -DSCO -DSCO_OSR5", -# "SCO_SV", "-DSYSV -DSCO -DSCO_UW21", - "Darwin", "-DBSD -DMACOSX", - "Mac OS", "-DBSD -DMACOSX", - "SINIX-N", "-DSYSV -DSINIX" - ); - -%osDosTable = ("SunOS", "sol", - "HP-UX", "hpx", - "AIX", "aix", - "OS/390", "mvs", - "Linux", "lng", - "FreeBSD", "fbsd", - "NetBSD", "bsd", - "SCO_SV", "sco", - "Darwin", "macx", - "Mac OS", "macx", - "SINIX-N", "sni" - ); - -%archTable = ("sun4c", "sparc", - "sun4m", "sparc", - "sun4u", "sparc", - "9000/712", "hp9000", - "9000/715", "hp9000", - "9000/778", "hp9000", - "000029484600", "rs6000", # salsa - "000328144600", "rs6000", # lambada - "00245D29E000", "rs6000", # segv - "00245C46E000", "rs6000", # bus - "002012974600", "rs6000", # tango - "0006404C4C00", "rs6000", # jive - "2003", "g3", # ezopen4 - "i86pc", "x86", # blauwal - "i386", "x86", # SCO_SV, NetBSD, FreeBSD - "i486", "x86", # tiger - "i586", "x86", # blauwal - "i686", "x86", - "prep", "ppc", # hooge - "ppc", "ppc", # ppc-linux - "alpha", "alpha", - "RM400", "rm400", # garbo - "IP22", "mips", # voyager - "IP32", "mips", # giotto - "Power Macintosh", "ppc", # NetBSD/arm32 - "arm32", "arm32" # NetBSD/arm32 - ); - -%archDefTable=("sun4c", "-DSPARC -DSUN -DSUN4", # hawai - "sun4m", "-DSPARC -DSUN -DSUN4", # broccoli - "sun4u", "-DSPARC -DSUN -DSUN4", # broccoli - "9000/712", "-DHP9000", # tuborg - "9000/715", "-DHP9000", # koepi - "9000/778", "-DHP9000", # jever, flens - "000029484600", "-DRS6000", # salsa - "000328144600", "-DRS6000", # lambada - "00245D29E000", "-DRS6000", # segv - "00245C46E000", "-DRS6000", # segv - "002012974600", "-DRS6000", # tango - "0006404C4C00", "-DRS6000", # jive - "2003", "-DG3", # ezopen4 - "i86pc", "-DX86 -DINTEL",# gepard - "i386", "-DX86", # SCO_SV, NetBSD, FreeBSD - "i486", "-DX86", # tiger - "i586", "-DX86", # blauwal - "i686", "-DX86", # - "prep", "-DPPC", # hooge - "ppc", "-DPPC", # ppc-linux - "alpha", "-DALPHA", # mars - "RM400", "-DMIPS -DRM400", # ekberg, garbo - "IP22", "-DMIPS", # voyager - "IP32", "-DMIPS", # giotto - "Power Macintosh", "-DPPC", # NetBSD/arm32 - "arm32", "-DARM32" # NetBSD/arm32 - ); - -%archDosTable=("sun4c", "s", # hawai - "sun4m", "s", # broccoli - "sun4u", "s", # broccoli - "9000/712", "r", # tuborg - "9000/715", "r", # koepi - "9000/778", "r", # jever, flens - "000029484600", "p", # salsa - "000328144600", "p", # lambada - "00245D29E000", "p", # segv - "00245C46E000", "p", # segv - "002012974600", "p", # tango - "0006404C4C00", "p", # jive - "2003", "g", # ezopen4 - "i86pc", "i", # gepard - "i386", "i", # SCO_SV, NetBSD, FreeBSD - "i486", "i", # tiger - "i586", "i", # blauwal - "i686", "i", - "prep", "p", # hooge - "ppc", "p", # ppc-linux - "alpha", "a", # mars - "RM400", "m", # ekberg, garbo - "IP22", "m", # voyager - "IP32", "m", # giotto - "Power Macintosh", "p", # NetBSD/arm32 - "arm32", "a" # NetBSD/arm32 - ); - -$main::solarDef = $osDefTable{ $s_str }.' '.$archDefTable{ $m_str }; - -$main::solarOS = $osTable{ $s_str }; -$main::solarMT = $archTable{ $m_str }; - -$main::solarArch = $main::solarOS.$main::solarMT; -$main::solarOldArch = $main::solarArch; # for compatibility - -$main::solarDOS = 'unx'.$osDosTable{ $s_str }. $archDosTable{ $m_str }; - -sub main::osarch -{ - local ( $flag ) = @_; - - $perlFlag = $flag eq 'perl'; - $defFlag = $flag eq 'def'; - $oldFlag = $flag eq 'old'; - $dirFlag = $flag eq 'dir'; - $dosFlag = $flag eq 'dos'; - - local( $result ) = ( '' ); - - if ( $perlFlag ) - { - $result .= '$solarDef = '."'$main::solarDef';\n"; - $result .= '$solarArch = '."'$main::solarArch';\n"; - $result .= '$solarOldArch = '."'$main::solarOldArch';\n"; - $result .= '$solarOS = '."'$main::solarOS';\n"; - $result .= '$solarMT = '."'$main::solarMT';\n"; - $result .= '$solarDOS = '."'$main::solarDOS';"; - } - elsif ( $defFlag ) - { - $result = $main::solarDef; - } - elsif ( $dirFlag ) - { - $result = "$main::solarOS-$main::solarMT"; - } - elsif ( $dosFlag ) - { - $result = $main::solarDOS; - } - else - { - $result = $oldFlag ? $main::solarOldArch : $main::solarArch; - } - - return $result; -} - -1; diff --git a/solenv/bin/modules/packager/work.pm b/solenv/bin/modules/packager/work.pm index ae0c743a635f..014d53b19efe 100644 --- a/solenv/bin/modules/packager/work.pm +++ b/solenv/bin/modules/packager/work.pm @@ -293,7 +293,7 @@ sub do_broadcast print "cmd_bcst -s 18 \@$tmpfile_name\n"; unlink "$tmpfile_name"; - if ( $returnvalue ) # an error occured + if ( $returnvalue ) # an error occurred { if (!($packager::globals::ignoreerrors)) { packager::exiter::exit_program("ERROR: Packing not successful!", "do_broadcast"); } } diff --git a/solenv/bin/modules/par2script/systemactions.pm b/solenv/bin/modules/par2script/systemactions.pm index f5a8db9979a7..149fafe93b0b 100644 --- a/solenv/bin/modules/par2script/systemactions.pm +++ b/solenv/bin/modules/par2script/systemactions.pm @@ -133,7 +133,7 @@ sub copy_one_file } else { - $infoline = "Error: Could not copy $source to $dest\n"; + $infoline = "Error: Could not copy $source to $dest $!\n"; $returnvalue = 0; } diff --git a/solenv/bin/modules/par2script/work.pm b/solenv/bin/modules/par2script/work.pm index fd266e306d04..c9b0bb150bce 100644 --- a/solenv/bin/modules/par2script/work.pm +++ b/solenv/bin/modules/par2script/work.pm @@ -148,67 +148,74 @@ sub collect_definitions my $multidefinitionerror = 0; my @multidefinitiongids = (); + my %itemhash; - foreach $oneitem ( @par2script::globals::allitems ) + # create empty item hashes + foreach $oneitem ( @par2script::globals::allitems ) { + my %items; + $par2script::globals::definitions{$oneitem} = \%items; + } + + for ( my $i = 0; $i <= $#{$parfilecontent}; $i++ ) { - my $docollect = 0; - my $gid = ""; - my %allitemhash = (); + my $line = ${$parfilecontent}[$i]; + my $oneitem, $gid; - for ( my $i = 0; $i <= $#{$parfilecontent}; $i++ ) - { - my $line = ${$parfilecontent}[$i]; + $line =~ /^\s*$/ && next; # skip blank lines - if ( $line =~ /^\s*$oneitem\s+(\w+)\s*$/ ) - { - $gid = $1; - $docollect = 1; - } - else - { - $docollect = 0; - } + # lines should be well formed: + if ($line =~ m/^\s*(\w+)\s+(\w+)\s*$/) + { + $oneitem = $1; + $gid = $2; + } else { + chomp ($line); + my $invalid = $line; + $invalid =~ s/[\s\w]*//g; + par2script::exiter::exit_program("ERROR: malformed par file, invalid character '$invalid', expecting <token> <gid> but saw '$line'", "test_par_syntax"); + } +# print STDERR "line '$line' -> '$oneitem' '$gid'\n"; - if ( $docollect ) - { - my $currentline = $i; - my %oneitemhash; + # hunt badness variously + if ( ! defined $par2script::globals::definitions{$oneitem} ) + { + par2script::exiter::exit_program("ERROR: invalid scp2 fragment item type '$oneitem' in line: '$line'", "test_par_syntax"); + } - while (! ( ${$parfilecontent}[$currentline] =~ /^\s*End\s*$/i ) ) - { - if ( ${$parfilecontent}[$currentline] =~ /^\s*(.+?)\s*\=\s*(.+?)\s*\;\s*$/ ) # only oneliner! - { - $itemkey = $1; - $itemvalue = $2; + # no hyphen allowed in gids -> cannot happen here because (\w+) is required for gids + if ( $gid =~ /-/ ) { par2script::exiter::exit_program("ERROR: No hyphen allowed in global id: $gid", "test_of_hyphen"); } - if ( $oneitem eq "Directory" ) { if ( $itemkey =~ "DosName" ) { $itemkey =~ s/DosName/HostName/; } } - if (( $oneitem eq "Directory" ) || ( $oneitem eq "File" ) || ( $oneitem eq "Unixlink" )) { if ( $itemvalue eq "PD_PROGDIR" ) { $itemvalue = "PREDEFINED_PROGDIR"; }} - if (( $itemkey eq "Styles" ) && ( $itemvalue =~ /^\s*(\w+)(\s*\;\s*)$/ )) { $itemvalue = "($1)$2"; } + my %oneitemhash; - $oneitemhash{$itemkey} = $itemvalue; - } + while (! ( ${$parfilecontent}[$i] =~ /^\s*End\s*$/i ) ) + { + if ( ${$parfilecontent}[$i] =~ /^\s*(.+?)\s*\=\s*(.+?)\s*\;\s*$/ ) # only oneliner! + { + $itemkey = $1; + $itemvalue = $2; - $currentline++; - } + if ( $oneitem eq "Directory" ) { if ( $itemkey =~ "DosName" ) { $itemkey =~ s/DosName/HostName/; } } + if (( $oneitem eq "Directory" ) || ( $oneitem eq "File" ) || ( $oneitem eq "Unixlink" )) { if ( $itemvalue eq "PD_PROGDIR" ) { $itemvalue = "PREDEFINED_PROGDIR"; }} + if (( $itemkey eq "Styles" ) && ( $itemvalue =~ /^\s*(\w+)(\s*\;\s*)$/ )) { $itemvalue = "($1)$2"; } - # no hyphen allowed in gids -> cannot happen here because (\w+) is required for gids - if ( $gid =~ /-/ ) { par2script::exiter::exit_program("ERROR: No hyphen allowed in global id: $gid", "test_of_hyphen"); } + $oneitemhash{$itemkey} = $itemvalue; + } + $i++; + } - # test of uniqueness - if ( exists($allitemhash{$gid}) ) - { - $multidefinitionerror = 1; - push(@multidefinitiongids, $gid); - } + my $allitemhash = \$par2script::globals::definitions{$oneitem}; - $allitemhash{$gid} = \%oneitemhash; - } - } + # test of uniqueness + if ( defined ($par2script::globals::definitions{$oneitem}->{$gid}) ) + { + $multidefinitionerror = 1; + push(@multidefinitiongids, $gid); + } - $par2script::globals::definitions{$oneitem} = \%allitemhash; + $par2script::globals::definitions{$oneitem}->{$gid} = \%oneitemhash; } - if ( $multidefinitionerror ) { par2script::exiter::multidefinitionerror(\@multidefinitiongids); } + if ( $multidefinitionerror ) { par2script::exiter::multidefinitionerror(\@multidefinitiongids); } # foreach $key (keys %par2script::globals::definitions) # { diff --git a/solenv/bin/modules/pre2par/language.pm b/solenv/bin/modules/pre2par/language.pm index b5dc336ba847..a6025e4fc804 100644 --- a/solenv/bin/modules/pre2par/language.pm +++ b/solenv/bin/modules/pre2par/language.pm @@ -27,6 +27,7 @@ package pre2par::language; +use strict; use pre2par::existence; ############################################################## @@ -71,63 +72,39 @@ sub get_language_string_from_language_block return $newstring; } -############################################################## -# Returning the complete block in all languages -# for a specified string -############################################################## - -sub get_language_block_from_language_file -{ - my ($searchstring, $langfile) = @_; - - my @language_block = (); - - for ( my $i = 0; $i <= $#{$langfile}; $i++ ) - { - if ( ${$langfile}[$i] =~ /^\s*\[\s*$searchstring\s*\]\s*$/ ) - { - my $counter = $i; - - push(@language_block, ${$langfile}[$counter]); - $counter++; - - while (( $counter <= $#{$langfile} ) && (!( ${$langfile}[$counter] =~ /^\s*\[/ ))) - { - push(@language_block, ${$langfile}[$counter]); - $counter++; - } - - last; - } - } - - return \@language_block; -} - ############################################ -# collecting all replace strings +# collecting all replace variables # in a language file ############################################ -sub get_all_replace_strings +sub get_all_replace_variables { my ($langfile) = @_; - my @allstrings = (); + my %allvars = (); for ( my $i = 0; $i <= $#{$langfile}; $i++ ) { if ( ${$langfile}[$i] =~ /^\s*\[\s*(.*?)\s*\]\s*$/ ) { - my $replacestring = $1; - if (! pre2par::existence::exists_in_array($replacestring, \@allstrings)) - { - push(@allstrings, $replacestring); - } + my $variable = $1; +# print "lang block '$variable'\n"; + my @lang_block = (); + my $counter; + + # Store the complete block in all languages for a specified variable + for ( $counter = $i + 1; $counter <= $#{$langfile}; $counter++ ) { + my $line = ${$langfile}[$counter]; + last if ($line =~ /^s*\[/); # next decl. + push @lang_block, $line; + } +# print "$variable = '@lang_block'\n"; + $allvars{$variable} = \@lang_block; + $i = $counter - 1; } } - return \@allstrings; + return \%allvars; } ############################################ @@ -139,32 +116,30 @@ sub localize { my ($parfile, $langfile) = @_; - my $allreplacestrings = get_all_replace_strings($langfile); + my $replace_hash = get_all_replace_variables($langfile); + # parse lines of the form Name (st) = STR_NAME_MODULE_HELPPACK_OC; + # for variable substitution + my $langlinere = qr/^\s*\w+\s*\(([\w-]+)\)\s*\=\s*([\w-]+)\s*;/; for ( my $i = 0; $i <= $#{$parfile}; $i++ ) { my $oneline = ${$parfile}[$i]; - for ( my $j = 0; $j <= $#{$allreplacestrings}; $j++ ) - { - if ( $oneline =~ /\b${$allreplacestrings}[$j]\b/ ) # Not for basic scripts - { - my $oldstring = ${$allreplacestrings}[$j]; - - if ( $oneline =~ /^\s*\w+\s*\(([\w-]+)\)\s*\=/ ) - { - my $language = $1; # can be "01" or "en" or "en-US" or ... + if ( $oneline =~ $langlinere) { + my $language = $1; # can be "01" or "en" or "en-US" or ... + my $variable = $2; - my $languageblock = get_language_block_from_language_file($oldstring, $langfile); - my $newstring = get_language_string_from_language_block($languageblock, $language); +# print "line '$oneline' split to '$language' '$variable'\n"; - if ( $newstring eq "" ) { $newstring = "\"" . $oldstring . "\""; } + if (defined $replace_hash->{$variable}) { + my $languageblock = $replace_hash->{$variable}; + my $newstring = get_language_string_from_language_block($replace_hash->{$variable}, $language); + if ( $newstring eq "" ) { $newstring = "\"" . $variable . "\""; } - $oneline =~ s/$oldstring/$newstring/g; + $oneline =~ s/$variable/$newstring/g; ${$parfile}[$i] = $oneline; } - } } } } diff --git a/solenv/bin/modules/pre2par/systemactions.pm b/solenv/bin/modules/pre2par/systemactions.pm index e084d7753f48..0e7b3d8c253a 100644 --- a/solenv/bin/modules/pre2par/systemactions.pm +++ b/solenv/bin/modules/pre2par/systemactions.pm @@ -155,7 +155,7 @@ sub copy_one_file } else { - $infoline = "Error: Could not copy $source to $dest\n"; + $infoline = "Error: Could not copy $source to $dest $!\n"; $returnvalue = 0; } diff --git a/solenv/bin/ooinstall b/solenv/bin/ooinstall new file mode 100755 index 000000000000..56825e18e813 --- /dev/null +++ b/solenv/bin/ooinstall @@ -0,0 +1,138 @@ +#!/usr/bin/env perl + +# This script has three uses: +# 1. From the command line to install straight into a given directory: +# bin/ooinstall /opt/Foo +# 2. From the command line to link into a given directory: +# bin/ooinstall -l /opt/FooLinked +# 3. When packaging (called from package-ooo), to install to DESTDIR + +use File::Find; +use File::Path qw(mkpath); +use Cwd; + +$path = ''; +$do_link = 0; +$is_windows = 0; +my $tmp_dir; + +if ($ENV{GUI} eq 'WNT') { + $is_windows = 1; +} + +if( defined($ENV{TMPDIR}) ) { + $tmp_dir = $ENV{TMPDIR}; +} elsif( defined($ENV{TMP}) ) { + $tmp_dir = $ENV{TMP}; +} else { + $tmp_dir = '/tmp'; +} +if (!-d $tmp_dir) {die "Set TMP or TMPDIR!\n";} + +# Workaround for system Mozilla +if ( $ENV{'SYSTEM_MOZILLA'} eq 'YES' ) { + $ENV{'LD_LIBRARY_PATH'} = "$ENV{'MOZ_LIB'}:$ENV{'LD_LIBRARY_PATH'}"; +} + +# Workaround for the Python +$ENV{'PYTHONPATH'} = "$ENV{'SRC_ROOT'}/instsetoo_native/$ENV{'INPATH'}/bin:$ENV{'SOLARVERSION'}/$ENV{'INPATH'}/lib:$ENV{'SOLARVERSION'}/$ENV{'INPATH'}/lib/python:$ENV{'SOLARVERSION'}/$ENV{'INPATH'}/lib/python/lib-dynload"; + +for $arg (@ARGV) { + if ($arg eq '-l') { + $do_link = 1; + } elsif ($arg eq '-h' || $arg eq '--help') { + $help = 1; + } else { + # Cwd::realpath does not work if the path does not exist + mkpath($ENV{DESTDIR} . $arg) unless -d $ENV{DESTDIR} . $arg; + $path = Cwd::realpath( $ENV{DESTDIR} . $arg ); + if (!$do_link) { + my $destdir = Cwd::realpath( $ENV{DESTDIR} ); + $path =~ s|$destdir||; + } + } +} + +$help = 1 if $path eq ''; + +if ($help) { + print "ooinstall [-l] <prefix to install to>\n"; + print " -l - performs a linkoo on the installed source\n"; + exit 1; +} + +my $BUILD=undef; +my $LAST_MINOR=undef; +open MINORMK, "$ENV{'SOLARENV'}/inc/minor.mk"; +while (<MINORMK>) { + my $t = "\$" . $_; + if(/^BUILD/ || /^LAST_MINOR/) { + eval $t; + } +} +close MINORMK; +$ENV{LAST_MINOR} = $LAST_MINOR; +$ENV{OUT} = "../$ENV{'INPATH'}"; +$ENV{LOCAL_OUT} = $ENV{OUT}; +$ENV{LOCAL_COMMON_OUT} = $ENV{OUT}; +# FIXME: the following variable helps to install localizations even if some +# files are not localized (like Japanese, Chinese wordbook), it makes +# the installer to use the English localization of the file instead. +$ENV{DEFAULT_TO_ENGLISH_FOR_PACKING} = 1; + +my @larr; +$langs=$ENV{WITH_LANG}; +$langs='en-US' if $langs eq ''; +if ($langs eq 'ALL') { + opendir(DIR,$ENV{L10N_MODULE} . "/source"); + @larr = readdir(DIR); + @larr = grep { $_ ne '.' } @larr; + @larr = grep { $_ ne '..' } @larr; + @larr = (@larr,"en-US"); + closedir(DIR); +} +else { + @larr = grep { $_ ne '' } split(/ /, $langs); +} +$langs = join (",", @larr); + +$destdir=''; +if ( defined $ENV{DESTDIR} && + $ENV{DESTDIR} ne "" ) { + $destdir = "-destdir \"$ENV{DESTDIR}\""; +} + +$strip=''; +if ( defined $ENV{DISABLE_STRIP} && + $ENV{DISABLE_STRIP} eq "TRUE" ) { + $strip = "-dontstrip"; +} + +$msi=''; +if ($is_windows) { + $msi = "-msitemplate $ENV{SRC_ROOT}/instsetoo_native/$ENV{INPATH}/misc/openoffice/msi_templates " . + "-msilanguage $ENV{SRC_ROOT}/instsetoo_native/$ENV{INPATH}/misc/win_ulffiles"; +} + +print "Running LibreOffice installer\n"; +system ("cd $ENV{SRC_ROOT}/instsetoo_native/util ; " . + "perl -w $ENV{SOLARENV}/bin/make_installer.pl " . + "-f openoffice.lst -l $langs -p LibreOffice " . + "-u $tmp_dir " . + "-buildid $BUILD $destdir $strip $msi " . + "-simple $path") && die "Failed to install: $!"; + +if ($ENV{BUILD_TYPE} =~ m/ODK/) { + print "Running SDK installer\n"; + system ("cd $ENV{SRC_ROOT}/instsetoo_native/util ; " . + "perl -w $ENV{SOLARENV}/bin/make_installer.pl " . + "-f openoffice.lst -l en-US -p LibreOffice_SDK " . + "-u $tmp_dir " . + "-buildid $BUILD $destdir $strip $msi" . + "-simple $path") && die "Failed to install: $!"; +} +print "Installer finished\n"; + +if ($do_link && !$is_windows) { + `$ENV{SOLARENV}/bin/linkoo $path $ENV{SRC_ROOT}`; +} diff --git a/solenv/bin/packimages.pl b/solenv/bin/packimages.pl index 9466110124d2..24bca5c77160 100755 --- a/solenv/bin/packimages.pl +++ b/solenv/bin/packimages.pl @@ -356,9 +356,13 @@ sub create_zip_archive foreach ( optimize_zip_layout($zip_hash_ref) ) { my $path = $zip_hash_ref->{$_} . "/$_"; print_message("zipping '$path' ...") if $extra_verbose; - my $member = $zip->addFile($path, $_); - if ( !$member ) { - print_error("can't add file '$path' to image zip archive: $!", 5); + if ( -e $path) { + my $member = $zip->addFile($path, $_, COMPRESSION_STORED); + if ( !$member ) { + print_error("can't add file '$path' to image zip archive: $!", 5); + } + } else { + print_message("file '$path' not found"); } } my $status = $zip->writeToFileNamed($tmp_out_file); diff --git a/solenv/bin/receditor b/solenv/bin/receditor index 1b4046010485..d0549c6c79ab 100755 --- a/solenv/bin/receditor +++ b/solenv/bin/receditor @@ -3,4 +3,4 @@ if [ x${SOLARENV}x = xx ]; then echo No environment found, please use 'configure' or 'setsolar' exit 1 fi -exec java -DSOLARSRC=${SOLARSRC} -DWORK_STAMP=${WORK_STAMP} -jar ${SOLARVER}/${INPATH}/bin${UPDMINOREXT}/receditor.jar +exec java -DSOLARSRC=${SOLARSRC} -DWORK_STAMP=${WORK_STAMP} -jar ${SOLARVER}/${INPATH}/bin/receditor.jar diff --git a/solenv/bin/relocate b/solenv/bin/relocate index 2158d5d7314c..6a5cfb992a3c 100755 --- a/solenv/bin/relocate +++ b/solenv/bin/relocate @@ -34,6 +34,8 @@ # <http://www.openoffice.org/license.html> # for a copy of the LGPLv3 License. # +# written substantially, if not entirely by non-Sun volunteers +# #************************************************************************* sub sniff_set($) @@ -43,7 +45,7 @@ sub sniff_set($) opendir ($dirhandle, $build_dir) || die "Can't open $build_dir"; while ($fname = readdir ($dirhandle)) { - $fname =~ /[Ss]et.sh$/ && last; + $fname =~ /Set.sh$/ && last; } closedir ($dirhandle); @@ -103,39 +105,65 @@ sub rewrite_set($$$) $state{'win32_new_root'} = $tmp; sed_file ("$new_root/$set", \&rewrite_value, \%state); - - my $tcsh_set = $set; - $tcsh_set =~ s/\.sh$//; - - print " $tcsh_set\n"; - - sed_file ("$new_root/$tcsh_set", \&rewrite_value, \%state); } -sub find_old_root($$) +sub read_set($$) { my $new_root = shift; my $set = shift; my $fname = "$new_root/$set"; - my $old_root; my $file; + my %env_keys; open ($file, $fname) || die "Can't open $fname: $!"; - + while (<$file>) { if (/\s*([^=]+)\s*=\s*\"([^\"]+)\"/) { my ($name, $value) = ($1, $2); - if ($name eq 'SRC_ROOT') { - $old_root = $value; - last; - } + $env_keys{$name} = $value; } } - + close ($file) || die "Failed to close $fname: $!"; - return $old_root; + return \%env_keys; +} + +sub sed_file_no_touch($$$) +{ + my ($new_root, $old_root, $file) = @_; + my ($fin, $fout); + + ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size, + $atime,$mtime,$ctime,$blksize,$blocks) = stat ($file); + + open ($fin, $file) || die "Can't open $fin: $!"; + open ($fout, ">$file.sed.bak") || die "Can't open $file.sed.bak: $!"; + while (<$fin>) { + s/$old_root/$new_root/g; + print $fout $_; + } + close ($fin); + close ($fout); + rename ("$file.sed.bak", $file); +# print "rename $file.sed.bak to $file\n"; + + utime $atime, $mtime, $file; +} + +sub sed_no_touch_recursive ($$$) +{ + my ($new_root, $old_root, $dir) = @_; + my $dh; + opendir ($dh, $dir) || die "Can't open dir: $dir: $!"; + while (my $entry = readdir ($dh)) { + $entry =~ /^\./ && next; + my $path = "$dir/$entry"; + sed_no_touch_recursive ($new_root, $old_root, $path) if (-d $path); + sed_file_no_touch ($new_root, $old_root, $path) if (-f $path); + } + closedir ($dh); } sub rewrite_product_deps($$$) @@ -151,8 +179,8 @@ sub rewrite_product_deps($$$) while ($name = readdir ($misc_dir)) { # Should try re-writing these - but perhaps this would # screw with timestamps ? - if ($name =~ m/\.dpcc$/ || $name =~ m/\.dpslo$/ || $name =~ m/\.dpobj$/) { - unlink ("$path/$name"); + if ($name =~ m/\.dpcc$/ || $name =~ m/\.dpslo$/ || $name =~ m/\.dpobj$/) { + sed_file_no_touch ($new_root, $old_root, "$path/$name"); } } closedir ($misc_dir); @@ -184,6 +212,35 @@ sub rewrite_dpcc($$) closedir ($sub_dir); } closedir ($top_dir); + print "\n"; +} + +sub rewrite_symlinks($$) +{ + my $new_root = shift; + my $old_root = shift; + + my $dirh; + opendir ($dirh, $new_root); + while (my $ent = readdir ($dirh)) { + $ent =~ /^\./ && next; + my $link = "$new_root/$ent"; + -l $link || next; + my $target = readlink ($link); + my $newtarget = $target; + $newtarget =~ s/$old_root/$new_root/; + if ($target =~ m/$new_root/) { + print STDERR "skip correct link $target\n"; + } elsif ($newtarget eq $target) { + print STDERR "unusual - possibly stale link: $target\n"; + if ($target =~ m/\/clone\//) { die "failed to rename link"; } + } else { + print "Re-write link $target to $newtarget\n"; + unlink ($link); + symlink ($newtarget, $link); + } + } + closedir ($dirh); } sub rewrite_bootstrap($$) @@ -217,17 +274,29 @@ substr ($OOO_BUILD, 0, 1) eq '/' || die "relocate requires absolute paths"; my $set; $set = sniff_set($OOO_BUILD) || die "Can't find env. set"; -$OLD_ROOT = find_old_root($OOO_BUILD, $set); +my $env_keys = read_set ($OOO_BUILD, $set); +$OLD_ROOT = $env_keys->{'SRC_ROOT'}; +my $solver = $env_keys->{SOLARVER} . "/" . $env_keys->{INPATH}; print "Relocate: $OLD_ROOT -> $OOO_BUILD\n"; +if ($OLD_ROOT eq $OOO_BUILD) { + print "nothing to do\n"; + exit 0; +} -print "re-writing environment:\n"; - -rewrite_set($OOO_BUILD, $OLD_ROOT, $set); -rewrite_bootstrap($OOO_BUILD, $OLD_ROOT); +print "re-writing symlinks\n"; +rewrite_symlinks($OOO_BUILD, $OLD_ROOT); print "re-writing dependencies:\n"; - rewrite_dpcc($OOO_BUILD, $OLD_ROOT); +if (-d "$solver/workdir/Dep") { + print "re-writing new dependencies:\n"; + sed_no_touch_recursive ($OOO_BUILD, $OLD_ROOT, "$solver/workdir/Dep"); +} + +print "re-writing environment:\n"; +rewrite_set($OOO_BUILD, $OLD_ROOT, $set); +rewrite_bootstrap($OOO_BUILD, $OLD_ROOT); + print "done.\n"; diff --git a/solenv/bin/remangle32to64.pl b/solenv/bin/remangle32to64.pl new file mode 100644 index 000000000000..0ed98fbd4d4e --- /dev/null +++ b/solenv/bin/remangle32to64.pl @@ -0,0 +1,327 @@ +#!/usr/bin/perl -w /* -*- indent-tabs-mode: nil -*- */ + +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Novell, Inc +# Portions created by the Initial Developer are Copyright (C) 2011 Novell, +# Inc. All Rights Reserved. +# +# Contributor(s): Tor Lillqvist <tml@iki.fi> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. + +# Change MSVC mangled C++ names from 32-bit form to the corresponding +# 64-bit form. Each line of input can contain at most one mangled +# name. + +# Based on experimentation with MSVC2008 and the following web pages: + +# http://www.geoffchappell.com/viewer.htm?doc=studies/msvc/language/decoration/index.htm +# Thorough but incomplete. Still, describes details the below sources +# don't mention. + +# http://cvs.winehq.com/cvsweb/wine/dlls/msvcrt/undname.c +# Wine's __unDname function, presumably the most complete, although +# not really written to act as "documentation" + +# http://mearie.org/documents/mscmangle/ +# Relatively complete but a bit badly structured and terse. + +# http://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B_Name_Mangling +# seems to be mostly a ripoff on the mearie.org page + +# Example transformation: +# ??0ORealDynamicLoader@salhelper@@IAE@PAPAV01@ABVOUString@rtl@@1PAX2@Z => +# ??0ORealDynamicLoader@salhelper@@IEAA@PEAPEAV01@AEBVOUString@rtl@@1PEAX2@Z + +# It should be relatively easy to remove the modification parts of the +# below code and use the regex for some other task on MSVC mangled +# names. + +# The regular expression below accepts also nonsensical mangled names, +# so it should not be used to verify correctness of mangled names. + +use strict; + +my @opstack = (); + +sub parse_number($) +{ + my ($num) = @_; + + return $num + 1 if ($num eq '0' || ($num ge '1' && $num le '9')); + + $num =~ tr/ABCDEFGHIJKLMNOP@/0123456789ABCDEF /; + hex($num); +} + +sub format_number($) +{ + my ($num) = @_; + + return $num - 1 if ($num <= 10); + + $num = sprintf("%X", $num); + $num =~ tr/0123456789ABCDEF/ABCDEFGHIJKLMNOP/; + $num.'@'; +} + +sub double_thunk($$) +{ + my ($number, $position) = @_; + + my $bytes = parse_number($number); + $bytes *= 2; + push(@opstack, 'r '.($position - length($number)).' '.length($number).' '.format_number($bytes)); +} + +while (<>) + { + m/ + # Named subpattern definitions. I use names of the form + # __CamelCase__ for the named subpatters so that they are easier + # to see. + (?(DEFINE) + (?<__Number__> + \?? ([0-9] | [A-P]+@) + ) + (?<__32BitChecksum__> + [A-P]{8}@ + ) + (?<__CallingConvention__> + (?: + [AB] + | + [C-L] + (?{ push(@opstack, 'r '.(pos()-1).' 1 A cdecl'); }) + ) + ) + (?<__StringLiteralText__> + (?: + [_a-zA-Z0-9] + | + \?\$[A-P][A-P] + | + \?[0-9A-Za-z] + ){1,20} + ) + (?<__Identifier__> + [_a-zA-Z\$][_a-zA-Z0-9\$]*@ + ) + (?<__ArgsZTerminated__> + (?&__DataTypeInArgs__)+ @? Z + ) + (?<__ArgsNonZTerminated__> + (?&__DataTypeInArgs__)+ @? + ) + (?<__TemplateName__> + (?&__Identifier__) (?&__ArgsNonZTerminated__) + ) + (?<__Class__> + (?: + [0-9] + | + \?\$ (?&__TemplateName__) + | + (?&__Identifier__) + )+@ + ) + (?<__DataTypeCommon__> + (?: + # extended types like _int64, bool and wchar_t + _[D-NW] + | + # simple types + [C-KMNOXZ] + | + # class, struct, union, cointerface + [TUVY] (?&__Class__) + | + # references + [AB] + (?{ push(@opstack, 'i '.pos().' E reference'); }) + (?&__ModifiedType__) + | + # pointers + [QRS] + (?{ push(@opstack, 'i '.pos().' E pointer'); }) + (?&__ModifiedType__) + | + P + (?: + # function pointer + 6 (?&__CallingConvention__) (?&__DataTypeNotInArgs__) (?&__ArgsZTerminated__) + | + # other pointer + (?{ push(@opstack, 'i '.pos().' E pointer'); }) + (?&__ModifiedType__) + ) + | + W 4 (?&__Class__) + | + [0-9] + | + \$ (?: + [0DQ] (?&__Number__) + | + F (?&__Number__){2} + | + G (?&__Number__){3} + | + \$ [ABCD] (?&__DataTypeNotInArgs__) + ) + ) + ) + (?<__ModifiedType__> + [ABCD] + (?: + # multidimensional array + Y (?&__Number__)+ + )? + (?&__DataTypeNotInArgs__) + ) + (?<__DataTypeInArgs__> + (?: + (?&__DataTypeCommon__) + | + # template parameter + \? (?&__Number__) + ) + ) + (?<__DataTypeNotInArgs__> + (?: + (?&__DataTypeCommon__) + | + \? (?&__ModifiedType__) + ) + ) + ) + + # All mangled names start with a question mark + \? + (?: + # Ctors, dtors, operators etc have separate a priori defined + # special mangled names like the very simple ?0 for constructor + # and ?_R16789 for "RTTI Base Class Descriptor at (6,7,8,9)" + # whatever that might mean. + ( + \? + ([0-9A-Z] + | + _(?: + # C is for string literals, see below + # R is RTTI, see immediately below + [0-9ABD-QS-Z] + | + R0(?&__DataTypeNotInArgs__) + | + R1(?&__Number__){4} + | + R[234] + | + _(?: + E + ) + ) + ) + )? + (?&__Class__) + + (?: + # Static members and normal variables + [0-5] + (?&__DataTypeNotInArgs__) + [ABCD] + | + # Compiler-generated static + [67] + [ABCD] + (?: + @ + | + (?&__Class__) + ) + | + # Non-static Methods, implicit 'this' + [ABEFIJMNQRUV] + [AB] + (?{ push(@opstack, 'i '.(pos()-1).' E this'); }) + (?&__CallingConvention__) + (?: + @ + | + (?&__DataTypeNotInArgs__) + ) + (?&__ArgsZTerminated__) + | + # Static methods + [CDKLST] + (?&__CallingConvention__) + (?: + @ + | + (?&__DataTypeNotInArgs__) + ) + (?&__ArgsZTerminated__) + | + # Thunks + [GHOPWX] + ((?&__Number__)) + (?{ double_thunk($^N, pos()); }) + [AB] + (?{ push(@opstack, 'i '.(pos()-1).' E this'); }) + (?&__CallingConvention__) + (?: + @ + | + (?&__DataTypeNotInArgs__) + ) + (?&__ArgsZTerminated__) + | + # Functions + [YZ] + (?&__CallingConvention__) + (?: + @ + | + (?&__DataTypeNotInArgs__) + ) + (?&__ArgsZTerminated__) + | + # Template + \$ (?&__Identifier__) (?&__ArgsNonZTerminated__) + ) + | + # pooled string literals + \?_C\@_[01](?&__Number__)(?&__32BitChecksum__)(?&__StringLiteralText__)@ + ) + /x; + + while (my $op = pop(@opstack)) + { + # print STDERR "op=$op\n"; + my @a = split (' ', $op); + if ($a[0] eq 'i') { + substr($_,$a[1],0) = $a[2]; + } elsif ($a[0] eq 'r') { + substr($_,$a[1],$a[2]) = $a[3]; + } + } + + print; + } diff --git a/solenv/bin/striplanguagetags.sh b/solenv/bin/striplanguagetags.sh new file mode 100755 index 000000000000..a8834795e28c --- /dev/null +++ b/solenv/bin/striplanguagetags.sh @@ -0,0 +1,54 @@ +#!/usr/bin/env bash +#take a .zip containing a flat hierarchy of odf files and strip out the +#language and country tags in each of them and repack it all up +#should convert templates so that documents based on them use +#the default-document-language rather than the hardcoded lang-tag + +#All a bit hacky, but it should work + +tempfoo=`basename $0` + +XSL=`mktemp /tmp/${tempfoo}.XXXXXX` +if [ $? -ne 0 ]; then + echo "$0: Can't create temp file, exiting..." + exit 1 +fi + +# On Windows, xsltproc is a non-Cygwin program, so we can't pass +# a Cygwin /tmp path to it +[ "$COM" == MSC ] && XSL=`cygpath -m -s $XSL` + +WRKDIR=`mktemp -d /tmp/${tempfoo}.XXXXXX` +if [ $? -ne 0 ]; then + echo "$0: Can't create temp dir, exiting..." + exit 1 +fi + +cat > $XSL << EOF +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" version="1.0"> + +<xsl:template match="node()|@*"> + <xsl:copy> + <xsl:apply-templates select="@*|node()"/> + </xsl:copy> +</xsl:template> + +<xsl:template match="@fo:language"/> +<xsl:template match="@fo:country"/> + +</xsl:stylesheet> +EOF + +unzip -q $1 -d $WRKDIR +pushd $WRKDIR +for a in *; do + unzip -qc $a styles.xml > styles.tmp + eval "$CALLXSLTPROC -o styles.xml $XSL styles.tmp" + zip -qr $a styles.xml + rm styles.xml styles.tmp +done +popd +zip -qrj $1 $WRKDIR +rm -rf $WRKDIR +rm -f $XSL diff --git a/solenv/bin/subsequenttests b/solenv/bin/subsequenttests index ae9b61922bd8..5052523cfb32 100755 --- a/solenv/bin/subsequenttests +++ b/solenv/bin/subsequenttests @@ -1,171 +1,29 @@ -eval 'exec "$PERL" -Sw "$0" "$@"' - if 0; -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#***********************************************************************/ - -use lib("$ENV{SOLARENV}/bin/modules"); -use SourceConfig; - -my $keep_going = 0; -my $dry_run = 0; -my $max_running = 1; -while (@ARGV) { - my $arg = shift(@ARGV); - if ($arg =~ /^-P([1-9]\d*)$/) { - $max_running = $1; - } elsif ($arg eq '--') { - last; - } else { - my $n = substr($arg, 0, 1) eq '-' ? 1 : 0; - while ($n && $n < length($arg)) { - my $c = substr($arg, $n++, 1); - if ($c eq 'k') { - $keep_going = 1; - } elsif ($c eq 'n') { - $dry_run = 1; - } else { - $n = 0; - last; - } - } - if (!$n) { - print STDERR "unknown argument \"$arg\"\n"; - print STDERR "usage: $0 [-kn] [-P<n>] [-- <args>]\n"; - print STDERR " -k continue with other dmake invocations upon\n"; - print STDERR " failure\n"; - print STDERR " -n write directories that would be processed\n"; - print STDERR " to standard output\n"; - print STDERR " -P<n> number of parallel dmake invocations\n"; - print STDERR " <args> are passed to dmake invocations\n"; - exit(1); - } - } -} - -my @testpaths = (); -my $sc = SourceConfig->new($ENV{'SOLARSRC'}); -my $module; -my $gbuildpath = "$ENV{'SOLARSRC'}/GNUmakefile"; -foreach $module ($sc->get_active_modules()) { - my $buildlst = $sc->get_module_build_list($module); - next unless defined($buildlst); - my %deps = (); - open(BUILDLST, $buildlst) or die("cannot open $buildlst"); - while (<BUILDLST>) { - next unless - /^\s*\w+\s+(\S+)\s+nmake\s+-\s+all\s+(\S+)(\s+(:?\S+\s+)*)NULL\s*$/; - my ($dir, $id, $ids) = ($1, $2, $3); - $dir =~ s|\\|/|g; - $dir =~ s|^[^/]+||; - my $path = $sc->get_module_path($module) . $dir; - my $makefile = $path . '/makefile.mk'; - open(MAKEFILE, $makefile) or die("cannot open $makefile"); - while (<MAKEFILE>) { - if (/\bOOO_SUBSEQUENT_TESTS\b/) { - push(@testpaths, $path); - $deps{$id} = $ids; - last; - } - } - close(MAKEFILE); - } - close(BUILDLST); - my $id1; - foreach $id1 (keys(%deps)) { - my ($id2, $ids); - while (($id2, $ids) = each(%deps)) { - $ids !~ /\s\Q$id1\E\s/ or die("$module: $id2 depends on $id1"); - } - } -} - -if ($dry_run) { - foreach $path (@testpaths) { - print "$path\n"; - } - print "$gbuildpath\n"; - exit(0); -} - -my @failedpaths = (); -my @gbuildargs = ("-j$max_running", "-s"); -if ($keep_going) { - push(@gbuildargs,"-k"); -} -push(@gbuildargs, "--file=$gbuildpath"); -push(@gbuildargs, "subsequentcheck"); -if (system($ENV{'GNUMAKE'}, @gbuildargs) != 0) { - push(@failedpaths,$gbuildpath); - @testpaths = () unless $keep_going; -} - -my $cmd = 'dmake'; -foreach (@ARGV) { - s/'/'\''/g; - $cmd .= " '" . $_ . "'"; -} -$cmd .= ' 2>&1 |'; - -my %pids = (); -my $running = 0; -my $counter = 0; -while (@testpaths || $running > 0) { - while (@testpaths && $running < $max_running) { - my $testpath = shift(@testpaths); - ++$counter; - print("$counter: make $testpath\n"); - my $pid = fork(); - defined($pid) or die("$counter: $!"); - if ($pid == 0) { - chdir($testpath) or die("$counter: $!"); - $ENV{'OOO_SUBSEQUENT_TESTS'} = 'TRUE'; - open(OUTPUT, $cmd) or die("$counter: $!"); - while (<OUTPUT>) { - s/\r?\n$//; - print("$counter: $_\n"); - } - close(OUTPUT); - exit($? == 0 ? 0 : 1); - } - $pids{$pid} = $testpath; - ++$running; - } - my $pid = wait(); - $pid != -1 or die($!); - my $testpath = delete($pids{$pid}); - defined($testpath) or die("unmatched PID $pid"); - if ($? != 0) { - push(@failedpaths, $testpath); - @testpaths = () unless $keep_going; - } - --$running; -} -my $failedpath; -foreach $failedpath (@failedpaths) { - print STDERR "failed in $failedpath\n"; -} -exit(scalar(@failedpaths) == 0 ? 0 : 1); +#!/bin/sh +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License or as specified alternatively below. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Bjoern Michaelsen, Canonical Ltd. <bjoern.michaelsen@canonical.com> +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Major Contributor(s): +# +# For minor contributions see the git repository. +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +set -e +${GNUMAKE} -sf ${SOLARSRC}/GNUmakefile.mk subsequentcheck $* diff --git a/solenv/bin/transform_description.pl b/solenv/bin/transform_description.pl index b1adb03626dd..ff99df425049 100644 --- a/solenv/bin/transform_description.pl +++ b/solenv/bin/transform_description.pl @@ -130,7 +130,7 @@ sub explain print STDOUT "\n"; print STDOUT " The following transformations are done at the moment:\n"; print STDOUT " - duplicate all lines containing #LANG#, for ever token of \$WITH_LANG\n"; - print STDOUT " replacing every occurance of \$LANG with a token\n"; + print STDOUT " replacing every occurrence of \$LANG with a token\n"; print STDOUT "\n"; print STDOUT " And yes, the functionality of this script should be\n"; print STDOUT " - moved to solenv/inc/tg_ext.mk\n"; diff --git a/solenv/bin/update_module_ignore_lists.pl b/solenv/bin/update_module_ignore_lists.pl deleted file mode 100644 index 88d73a0217d6..000000000000 --- a/solenv/bin/update_module_ignore_lists.pl +++ /dev/null @@ -1,255 +0,0 @@ -: - eval 'exec perl -S $0 ${1+"$@"}' - if 0; -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -use Cwd; -use File::Temp qw/ tempfile tempdir /; - -my $verbosity = 1; # will be adjusted to the value of $Env{VERBOSE} below - -# platforms which are not supported anymore, and thus can be filtered from the svn:ignore list -my %obsolete_platforms = ( - ); - # (none so far) - -# platforms whose output trees should appear in all modules' svn:ignore list -my @platforms = ( - "common", - "unxlngi6", - "unxlngx6", - "unxsols4", - "unxsolu4", - "unxsoli4", - "wntmsci12", - "unxmacxi", - "unxubit8", - "unxaixp", - "unxbsda", - "unxbsdi2", - "unxbsdi", - "unxbsds", - "unxfbsdi", - "unxfbsd", - "unxfbsdx", - "unxhpgr", - "unxhpxr", - "unxirgm", - "unxirxm3", - "unxirxm", - "unxlnga", - "unxlngm68k", - "unxlngmips", - "unxlngp", - "unxlngppc4", - "unxlngppc64", - "unxlngppc", - "unxlngr", - "unxlngs3904", - "unxlngs390x", - "unxlngs", - "unxlnxi", - "unxmacxp", - "unxsogi", - "unxsogs" - ); - - -# ......................................................................... -# retrieves the repository URL of the SVN working copy in the current directory -sub retrieve_repo_url -{ - open( SVN, "svn info 2>&1 |" ); - my @result = <SVN>; - close( SVN ); - - foreach (@result) - { - chomp; - next if ( ! /^URL: / ); - s/^URL: //; - return $_; - } - return undef; -} - -# ......................................................................... -# gets the "modules" below the given SVN repository URL, by calling "svn list" -sub get_modules -{ - my @modules = (); - - open( SVN, "svn list $_ 2>&1 |" ); - my @result = <SVN>; - close( SVN ); - - foreach (@result) - { - chomp; - s/\/$//; - push @modules, $_; - } - - return @modules; -} - -# ......................................................................... -sub set_ignore_property -{ - my ($repo_url, @modules) = @_; - - # max length of a module name - my $max_len = 0; - foreach ( @modules ) { $max_len = length( $_ ) if ( length( $_ ) > $max_len ); } - - my $updated = 0; - - my $current = 0; - my $count = $#modules + 1; - foreach $module ( @modules ) - { - ++$current; - - # print progress - if ( $verbosity > 1 ) - { - my $progress = "$module "; - $progress .= "(" . $current . "/" . $count . ")"; - - my $dots = 3 + ( $max_len - length($module) ); - $dots += int( digits( $count ) ) - int( digits( $current ) ); - - $progress .= ( "." x $dots ); - $progress .= " "; - - print STDOUT $progress; - } - elsif ( $verbosity > 0 ) - { - print STDOUT "."; - } - - # retrieve the current ignore list - open( SVN, "svn propget svn:ignore $module 2>&1 |" ); - my @ignore_list = <SVN>; - close( SVN ); - - # the last item in the list is an empty string, usually. Don't let it confuse the below - # code - my $supposed_empty = pop @ignore_list; - chomp( $supposed_empty ); - push( @ignore_list, $supposed_empty ) if ( !( $supposed_empty =~ /^$/ ) ); - - # filter out obsolte entries - my @stripped_ignore_list = (); - foreach $ignore_entry (@ignore_list) - { - chomp( $ignore_entry ); - next if ( $ignore_entry =~ /^$/ ); - - if ( ( exists $obsolete_platforms{$ignore_entry} ) - || ( exists $obsolete_platforms{"$ignore_entry.pro"} ) - ) - { - next; - } - push @stripped_ignore_list, $ignore_entry; - } - my $removed = $#ignore_list - $#stripped_ignore_list; - @ignore_list = @stripped_ignore_list; - - # append the platforms which should appear in the ignore list - my %ignore_list = (); - foreach (@ignore_list) { $ignore_list{$_} = 1; } - foreach $platform_entry ( @platforms ) - { - $ignore_list{$platform_entry} = 1; - $ignore_list{"$platform_entry.pro"} = 1; - } - my @extended_ignore_list = keys %ignore_list; - my $added = $#extended_ignore_list - $#ignore_list; - @ignore_list = @extended_ignore_list; - - if ( $removed || $added ) - { - # create a temporary file taking the new content of the svn_ignore property - my $temp_dir = tempdir( CLEANUP => 1 ); - my ($fh, $filename) = tempfile( DIR => $dir ); - open( IGNORE, ">$filename" ); - print IGNORE join "\n", @ignore_list; - close( IGNORE ); - - # actually set the property - open( SVN, "svn propset -F $filename svn:ignore $module 2>&1 |" ); - - ++$updated; - } - - # statistics - print STDOUT "done (removed/added: $removed/$added)\n" if $verbosity > 1; - } - - print STDOUT "\n" if $verbosity eq 1; - print STDOUT "$updated module(s) updated\n" if $verbosity > 0; -} - -# ......................................................................... -sub digits -{ - my ($number, $base) = @_; - $base = 10 if !defined $base; - return log($number)/log($base); -} - -# ......................................................................... -# 'main' - -# initialize verbosity -my $verbose = $ENV{VERBOSE}; -if ( defined $verbose ) -{ - $verbose = uc( $verbose ); - $verbosity = 2 if ( $verbose eq "TRUE" ); - $verbosity = 0 if ( $verbose eq "FALSE" ); -} - -# work on the current directory -my $working_copy_root = cwd(); -die "current directory does not contain an SVN working copy" if !-d $working_copy_root . "/\.svn"; - -# retrieve repository URL -my $repo_url = retrieve_repo_url(); -die "unable to retrieve repository URL" if !defined $repo_url; -print STDOUT "repository URL: $repo_url\n" if $verbosity > 1; - -# list modules -my @modules = get_modules( $repo_url ); -print STDOUT "processing " . ( $#modules + 1 ) . " modules\n" if $verbosity > 0; - -# process modules, by setting the svn:ignore property -set_ignore_property( $repo_url, @modules ); diff --git a/solenv/bin/zipdep.pl b/solenv/bin/zipdep.pl index f19f79f00e52..b92ee1d6221e 100755 --- a/solenv/bin/zipdep.pl +++ b/solenv/bin/zipdep.pl @@ -33,17 +33,6 @@ eval 'exec perl -wS $0 ${1+"$@"}' # use Cwd; -#### script id ##### - -( $script_name = $0 ) =~ s/^.*\b(\w+)\.pl$/$1/; - -$id_str = ' $Revision: 1.12 $ '; -$id_str =~ /Revision:\s+(\S+)\s+\$/ - ? ($script_rev = $1) : ($script_rev = "-"); - -print STDERR "$script_name -- version: $script_rev\n"; -print STDERR "Multi Platform Enabled Edition\n"; - ######################### # # # Globale Variablen # diff --git a/solenv/config/sdev300.ini b/solenv/config/sdev300.ini deleted file mode 100644 index 254f3b5f45cc..000000000000 --- a/solenv/config/sdev300.ini +++ /dev/null @@ -1,3483 +0,0 @@ -common -{ - environment - { - common - { - ADDED_MODULES solenv default_images custom_images ooo_custom_images external_images postprocess instset_native instsetoo_native smoketest_native smoketestoo_native - BIG_SVX TRUE - BMP_WRITES_FLAG TRUE - BUILD_SPECIAL TRUE - BUILD_STAX YES - BUILD_TYPE SO OOo EXT BINFILTER MORE_FONTS BSH CURL DICTIONARIES HSQLDB HUNSPELL HYPHEN MYTHES JPEG LIBXML2 LIBXMLSEC LPSOLVE MOZ NEON TWAIN PYTHON ZLIB SANE UNIXODBC X11_EXTENSIONS LIBWPD EPM ODK MSFONTEXTRACT MATHMLDTD BOOST MDDS EXPAT CRASHREP BERKELEYDB LIBXSLT SUN AGG GTK ICU SYSTRAY_GTK JAVAINSTALLER2 VIGRA OPENSSL JFREEREPORT APACHE_COMMONS TOMCAT REPORTBUILDER SDEXT SWEXT XPDF LUCENE REDLAND SAXON WRITER2LATEX NSS GRAPHITE MYSQLCPPCONN MYSQLC CPPUNIT LIBTEXTCAT LIBTEXTCATDATA AFMS CAIRO - CONFIG_PROJECT config_office - DIC_ALL TRUE - ENABLEUNICODE TRUE - ENABLE_AGG YES - ENABLE_CUPS TRUE - ENABLE_DIRECTX TRUE - ENABLE_FONTCONFIG TRUE - ENABLE_GTK TRUE - ENABLE_MEDIAWIKI YES - ENABLE_MINIMIZER YES - ENABLE_MYSQLC YES - ENABLE_NSS_MODULE YES - ENABLE_RANDR TRUE - ENABLE_REPORTBUILDER YES - ENABLE_SVCTAGS YES - ISERVER iserver.germany.sun.com - LU_HGFLAG "" - LU_NOSOURCE "" - LU_RFLAG "" - NEW_JAR_PACK TRUE - NO_REC_RES TRUE - OOODMAKEMODE YES - OOO_SHELL /bin/bash - PCLEAN_PATH xxx - RES_ENUS TRUE - RES_GER TRUE - rsc_once TRUE - SHIPDRIVE /so/install - STLPORT4 NO_STLPORT4 - STLPORT_VER 400 - WITH_FONTOOO YES - WITH_LDAP YES - wrapper_override_cc_wrapper TRUE - MAXPROC maxproc=15 - XINERAMA_LINK dynamic - } - common:0 IF %UPDATER% == YES - { - DEFAULT_TO_ENGLISH_FOR_PACKING 1 - DISABLE_SAL_DBGBOX 1 - } - common:1 IF X%CWS_WORK_STAMP%X != XX - { - CWS_WORK_STAMP_EXT _%CWS_WORK_STAMP% - } - common:2 IF %UPDATER% == YES - { - WITH_LANG en-US de - } - common:3 IF %UPDATER% != YES - { - } - crashdump - { - ENABLE_CRASHDUMP TRUE - } - hg - { - LU_HGFLAG hg_source - } - maxproc - { - MAXPROC maxproc=%MAXPROCESS% - } - minorext - { - UPDMINOREXT .%UPDMINOR% - } - nosource - { - LU_NOSOURCE no_source - } - pro:0 IF %UPDATER% == YES - { - product full - PROEXT .pro - PROFULLSWITCH product=full - WITH_LANG en-US de es fr hu it ja ko nl pl pt pt-BR ru sv th tr zh-CN zh-TW ar - } - pro:1 IF %UPDATER% != YES - { - product full - PROEXT .pro - PROFULLSWITCH product=full - } - - r_only - { - LU_RFLAG r_only - } - tmp - { - SOL_TMP %SOL_TMP_DIR% - } - verbose - { - VERBOSE VERBOSE - } - } - extern - { - ENVROOT - PATH - SRC_ROOT - UPDATER - } - order minorext common:2 common:3 pro:0 pro:1 common common:0 cwsname common:1 tmp crashdump maxproc hg r_only nosource - reset - { - ALT_L10N_MODULE - ENVCFLAGS - HOMEDRIVE - HOMEPATH - JAVAHOME - JAVA_HOME - LU_HGFLAG - LU_NOSOURCE - LU_RFLAGS - MKDIRHIER - PROEXT - PROFULLSWITCH - SHIPDRIVE - SOLARSRC - SOLAR_JAVA - SPEW - STLPORT4 - UPDMINOREXT - WITH_FONTOOO - } - restore - { - PATH - } - standlst - { - DRIVE_O %WORK_STAMP%/drives/o:/UnixVolume - DRIVE_S %WORK_STAMP%/drives/s:/UnixVolume - } - switches - { - crashdump - cwsname CWS_WORK_STAMP - envroot - hg - minorext - nosource - pro - maxproc MAXPROCESS - r_only - tmp SOL_TMP_DIR - verbose VERBOSE - with_lang - } -} -finish -{ - environment - { - cap - { - SOLARSRC %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT% - SOURCE_ROOT_DIR $expand(%SOLARSRC%/..) - } - cax - { - SOLARSRC %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT% - SOURCE_ROOT_DIR $expand(%SOLARSRC%/..) - } - common_0:0 IF %OS% == MACOSX - { - ENABLE_GTK - SOLARINCLUDES -I%SOLARVERSION%$/%INPATH%$/inc%UPDMINOREXT% -I%SOLARENV%$/%OUTPATH%$/inc -I%SOLARENV%$/inc %SOLAREXTRAINC% - } - common_0:3 IF %SOLARINCLUDES% == - { - SOLARINCLUDES -I%SOLARVERSION%$/%INPATH%$/inc%UPDMINOREXT% %PSDKINC% -I%COMPATH%$/include -I%SOLARENV%$/inc %SOLAREXTRAINC% - } - common_1 - { - BISON_HAIRY %SOLARROOT%$/btools$/bison.hairy - BISON_SIMPLE %SOLARROOT%$/btools$/bison.simple - DPKG %BUILD_TOOLS%$/dpkg - OOO_JUNIT_JAR %SOLARROOT%$/btools$/junit-4.8.1.jar - PATH .$:$cp(%SOLARENV%$/bin)$:$cp(%COMMON_BUILD_TOOLS%)$:$cp(%BUILD_TOOLS%$/dmake412)$:$cp(%BUILD_TOOLS%)$:$cp(%COMMON_ENV_TOOLS%)$:$cp(%ENV_TOOLS%)$:$cp(%COMPATH%$/bin)$:$cp(%JDKPATH%)$:$cp(%PATHEXTRA%)$:%PATH% - PATH_SEPERATOR $; - SOLARINC -I%SOLAR_STLPATH% -I%SOLARVERSION%$/%INPATH%$/inc%UPDMINOREXT%$/external %SOLARINCLUDES% - SOLARLIB -L%SOLARVER%/%INPATH%/lib%UPDMINOREXT% %JDKLIBS% %SOLAREXTRALIB% - SOLARSRC %SRC_ROOT% - SOURCE_ROOT_DIR $expand(%SOLARSRC%/..) - ANT_HOME %COMMON_BUILD_TOOLS%$/apache-ant-1.7.1 - WORKDIR %SOLARVERSION%/%INPATH%/workdir - OUTDIR %SOLARVERSION%/%INPATH% - - } - common_2:0 IF X%CWS_WORK_STAMP%X == XX - { - MWS_BUILD TRUE - DELIVER_TO_ZIP TRUE - gb_MAKETARGET packmodule - } - common_a - { - *o: cd %SOLARSRC% - ALT_L10N_MODULE $expand(%SOLARSRC%/..)/sun/l10n_so - TARFILE_LOCATION %SOURCE_ROOT_DIR%/ext_sources - gb_REPOS %SOURCE_ROOT_DIR%/ooo %SOURCE_ROOT_DIR%/sun - gb_LOCALBUILDDIR %SOL_TMP%/gb_%CWS_WORK_STAMP%/%WORK_STAMP% - } - common_setrepo:0 IF X%WITH_LANG%X != XX - { - gb_REPOS %gb_REPOS% %SOURCE_ROOT_DIR%/l10n - BUILD_TYPE %BUILD_TYPE% L10N - } - common_jre:0 IF %JREPATH% == - { - HIER set - } - common_jre:1 IF %LD_LIBRARY_PATH% == - { - PATH %PATH%$:$cp(%JREPATH%) - } - cwsname:0 IF X%SOURCE_ROOT_USED%X == XX - { - *build - *deliver - DMAKEROOT SOURCE_ROOT_not_used - SOLARINC SOURCE_ROOT_not_used - SOLARINCLUDE SOURCE_ROOT_not_used - SOLARSRC SOURCE_ROOT_not_used - SOLARVER SOURCE_ROOT_not_used - SOLARVERSION SOURCE_ROOT_not_used - SOLAR_SOURCE_ROOT SOURCE_ROOT_not_used - SO_GEN_ERROR Error - Using -cwsname without -sourceroot switch is harmful... - SO_GEN_ERROR2 ...resetting path to source tree - SRC_ROOT SOURCE_ROOT_not_used - } - cwsname:1 IF X%SOURCE_ROOT%X == XX - { - *build - *deliver - DMAKEROOT SOURCE_ROOT_not_set - SOLARINC SOURCE_ROOT_not_set - SOLARINCLUDE SOURCE_ROOT_not_set - SOLARSRC SOURCE_ROOT_not_set - SOLARVER SOURCE_ROOT_not_set - SOLARVERSION SOURCE_ROOT_not_set - SOLAR_SOURCE_ROOT SOURCE_ROOT_not_set - SO_GEN_ERROR Error - Using -cwsname without SOURCE_ROOT set is harmful... - SO_GEN_ERROR2 ...resetting path to source tree - SRC_ROOT SOURCE_ROOT_not_set - } - cwsname:2 IF X%UPDMINOR%X == XX - { - *build - *deliver - DMAKEROOT UPDMINOR_not_used - SOLARINC UPDMINOR_not_used - SOLARINCLUDE UPDMINOR_not_used - SOLARSRC UPDMINOR_not_used - SOLARVER UPDMINOR_not_used - SOLARVERSION UPDMINOR_not_used - SOLAR_SOURCE_ROOT UPDMINOR_not_used - SO_GEN_ERROR Error - Using -cwsname without -ver switch is harmful... - SO_GEN_ERROR2 ...resetting path to source tree - SRC_ROOT UPDMINOR_not_used - } - jdk14 - { - CLASSPATH .$;%JAVA_HOME%$/jre$/lib$/rt.jar - ILIB %LIB%$;%JDKLIB% - LIB %LIB%$;%JDKLIB% - JAVA_TARGET_FLAG -target 1.4 - } - jdk15 - { - CLASSPATH .$;%JAVA_HOME%$/jre$/lib$/rt.jar - ILIB %LIB%$;%JDKLIB% - LIB %LIB%$;%JDKLIB% - JAVA_TARGET_FLAG -target 1.5 - } - l10n - { - framework %L10N_framework% - L10N-framework %L10N_framework% - } - ojdk16 - { - CLASSPATH .$;%JAVA_HOME%$/jre$/lib$/rt.jar - ILIB %LIB%$;%JDKLIB% - LIB %LIB%$;%JDKLIB% - JAVA_TARGET_FLAG -target 1.6 - } - } - order cwsname:0 cwsname:1 cwsname:2 common_0:0 common_0:1 common_0:2 common_0:3 jdk14 jdk15 ojdk16 common_1 common_2:0 l10n common_jre:0 common_jre:1 cax cap common_a common_setrepo:0 - switches - { - cwsname CWS_WORK_STAMP - } -} -unxfbsdi -{ - environment - { - bs_sourceroot - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT_USED TRUE - } - cap - { - COPYALL TRUE - COPY_PACKED TRUE - DEVROOT %SOL_TMP%$/r - PCLEAN_PATH %SOLARROOT%/etools - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - cax - { - COPYALL FALSE - DEVROOT %SOL_TMP%$/r - PCLEAN_PATH %SOL_TMP%$/r/etools - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - common - { - *build nice perl %SOLARENV%/bin/build.pl %PROFULLSWITCH% - *build_client nice perl %SOLARENV%/bin/build_client.pl - *copyprj perl %COMMON_ENV_TOOLS%/copyprj.pl - *deliver perl %SOLARENV%/bin/deliver.pl - *mkout perl %SOLARENV%/bin/mkout.pl - *r: cd %SOLARROOT% - *s: cd %SOLARVERSION% - *zipdep perl %SOLARENV%/bin/zipdep.pl - COPYPRJ perl %COMMON_ENV_TOOLS%/copyprj.pl - DELIVER perl %SOLARENV%/bin/deliver.pl - DMAKEROOT %SOLARENV%/inc/startup - LD_LIBRARY_PATH .:%SOLARVERSION%/%INPATH%/lib%UPDMINOREXT%:%COMPATH%/libexec - MKOUT perl %SOLARENV%/bin/mkout.pl - PATHEXTRA %combin%:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11 - SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include -I%SYSBASE%/usr/include/X11 - SOLAREXTRALIB -L../lib -L%SYSBASE%/usr/X11R6/lib -L%SYSBASE%/usr/lib -L/usr/X11R6/lib -L%SOLAR_STLLIBPATH% - SOLAR_JAVA TRUE - ZIPDEP perl %SOLARENV%/bin/zipdep.pl - ENABLE_GCONF YES - ENABLE_GNOMEVFS YES - SYSTEM_LIBRSVG YES - SYSTEM_LIBCROCO YES - SYSTEM_GDKPIXBUF YES - SYSTEM_GLIB YES - SYSTEM_GETTEXT YES - SYSTEM_PANGO YES - SYSTEM_LIBPNG YES - SYSTEM_LIBJPEG YES - SYSTEM_LIBGSF YES - } - common0 - { - SOLAR_ENV_ROOT /so/env - SOLAR_SOURCE_ROOT %DRIVE_O% - } - common1 - { - COMPATH %SOLAR_ENV_ROOT%$/gcc_3.0.1_linux_libc2.11_turbolinux - DEVROOT %SOLAR_ENV_ROOT% - PKGFORMAT some_dummy - SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv - SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv - SOLARROOT %SOLAR_ENV_ROOT% - SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLAR_JDK13PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.3.1 - SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.4.2_11 - SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.5.0_06 - SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% - SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT% - } - common2 - { - BUILD_TOOLS %SOLARROOT%/bt_unxfbsdi/bin - COM GCC - COMMON_BUILD_TOOLS %SOLARROOT%$/btools - COMMON_ENV_TOOLS %SOLARROOT%$/etools - CPU I - CPUNAME INTEL - CVER C300 - ENV_TOOLS %SOLARROOT%/et_unxfbsdi/bin - GUI UNX - GUIBASE unx - GVER VCL - INPATH unxfbsdi%PROEXT% - JDK13PATH %SOLAR_JDK13PATH% - JDK14PATH %SOLAR_JDK14PATH% - JDK15PATH %SOLAR_JDK15PATH% - NO_BSYMBOLIC True - OS FREEBSD - OUTPATH unxfbsdi - SOLAR_STLLIBPATH %SOLARVERSION%$/unxfbsdi%PROEXT%$/lib%UPDMINOREXT% - SOLAR_STLPATH %SOLARVERSION%$/unxfbsdi%PROEXT%$/inc%UPDMINOREXT%$/stl - SYSBASE %SOLAR_SYSBASE_ROOT% - TEMP /tmp - TMP /tmp - } - compath - { - COMPATH %STAR_COMPATH% - } - debug - { - LD_LIBRARY_PATH %SOLARROOT%/solenv/unxlngi4/lib/debug:%LD_LIBRARY_PATH% - } - distroot:0 if X%DIST_ROOT%X != XX - { - SHARED_SOLARVERSION %DIST_ROOT%/%WORK_STAMP% - SOLARVER %DIST_ROOT%/%WORK_STAMP% - SOLARVERSION %DIST_ROOT%/%WORK_STAMP% - } - envroot:0 IF X%ENV_ROOT%X != XX - { - SOLAR_ENV_ROOT %ENV_ROOT% - } - jdk14 - { - JAVA_HOME %JDK14PATH% - JDKINC %JDK14PATH%/include:%JDK14PATH%/include/linux - JDKINCS -I%JDK14PATH%/include -I%JDK14PATH%/include/linux - JDKLIB %JDK14PATH%/jre/lib:%JDK14PATH%/jre/lib/i386:%JDK14PATH%/jre/lib/i386/client - JDKLIBS -L%JDK14PATH%/jre/lib -L%JDK14PATH%/jre/lib/i386 -L%JDK14PATH%/jre/lib/i386/client - JDKPATH %JDK14PATH%/bin - JDK_VERSION 142 - XCLASSPATH .:%JDK14PATH%/jre/lib/rt.jar - } - jdk14path:0 IF X%JDK_PATH%X != XX - { - SOLAR_JDK14PATH %JDK_PATH% - } - jdk15 - { - JAVA_HOME %JDK15PATH% - JDKINC %JDK15PATH%/include:%JDK15PATH%/include/linux - JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/linux - JDKLIB %JDK15PATH%/jre/lib:%JDK15PATH%/jre/lib/i386:%JDK15PATH%/jre/lib/i386/client - JDKLIBS -L%JDK15PATH%/jre/lib -L%JDK15PATH%/jre/lib/i386 -L%JDK15PATH%/jre/lib/i386/client - JDKPATH %JDK15PATH%/bin - JDK_VERSION 150 - XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar - } - jdk15path:0 IF X%JDK_PATH%X != XX - { - SOLAR_JDK15PATH %JDK_PATH% - } - pro - { - PROSWITCH -DPRODUCT - } - sourceroot:0 IF X%SOURCE_ROOT%X != XX - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT% - SOURCE_ROOT_USED TRUE - } - sysbaseroot - { - SOLAR_SYSBASE_ROOT %SYSBASE_ROOT% - } - } - extern - { - DIST_ROOT - ENV_ROOT - HOME - JDK_PATH - LOCALINI - SOL_TMP - SOURCE_ROOT - SYSBASE_ROOT - USER - } - order common0 bs_sourceroot envroot:0 sourceroot:0 sysbaseroot common1 jdk14path:0 jdk15path:0 distroot:0 cap cax compath common2 pro common jdk14 jdk15 debug - reset - { - CLASSPATH - COPYALL - } - restore - { - INCLUDE - } - script - { - csh - { - 400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 600: umask 002 - 800: rehash - 820: wrapfetch.sh - 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR - 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 - 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR - 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 - } - sh - { - 400: if [ $COPYALL ]; then - 410: $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 415: fi - 600: umask 002 - 800: hash -r - 820: wrapfetch.sh - 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then - 851: export SO_GEN_ERROR - 852: fi - 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then - 861: export SO_GEN_ERROR2 - 862: fi - 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then - 871: echo $SO_GEN_ERROR - 872: fi - 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then - 881: echo $SO_GEN_ERROR2 - 882: fi - } - } - switches - { - bs_sourceroot SOURCE_ROOT_TMP - bsclient - cap - cax - compath STAR_COMPATH - debug - distroot - envroot - jdk14 - jdk14path - jdk15 - jdk15path - l10n L10N_framework - pro - sourceroot - sysbaseroot - } -} -unxlngi6 -{ - environment - { - bs_sourceroot - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT_USED TRUE - } - cap - { - COPYALL TRUE - COPY_PACKED TRUE - DEVROOT %SOL_TMP%$/r - PCLEAN_PATH %SOLARROOT%/etools - PERL %SOL_TMP%$/r$/bt_linux_libc2.5$/%WORK_STAMP%$/bin$/perl - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - cax - { - COPYALL FALSE - DEVROOT %SOL_TMP%$/r - PCLEAN_PATH %SOL_TMP%$/r/etools - PERL %SOL_TMP%$/r$/bt_linux_libc2.5$/%WORK_STAMP%$/bin$/perl - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - common - { - *build nice %PERL% %SOLARENV%/bin/build.pl %PROFULLSWITCH% - *build_client nice %PERL% %SOLARENV%/bin/build_client.pl - *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - *deliver %PERL% %SOLARENV%/bin/deliver.pl - *mkout %PERL% %SOLARENV%/bin/mkout.pl - *r: cd %SOLARROOT% - *s: cd %SOLARVERSION% - *zipdep %PERL% %SOLARENV%/bin/zipdep.pl - COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - DELIVER %PERL% %SOLARENV%/bin/deliver.pl - DMAKEROOT %SOLARENV%/inc/startup - HAVE_GCC_VISIBILITY_FEATURE TRUE - HAVE_LD_BSYMBOLIC_FUNCTIONS TRUE - HAVE_LD_HASH_STYLE TRUE - LIBRARY_PATH %SYSBASE%/usr/lib - MKOUT %PERL% %SOLARENV%/bin/mkout.pl - PATHEXTRA %combin%:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11 - FREETYPE_CFLAGS -I%SYSBASE%/usr/include/freetype2 - VALGRIND_CFLAGS -I%SOLARVERSION%$/unxlngi6%PROEXT%$/inc%UPDMINOREXT%/valgrind - SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include -I%SYSBASE%/usr/include/X11 -I%SYSBASE%/include - SOLAREXTRALIB -L../lib -L%SYSBASE%/usr/X11R6/lib -L%SYSBASE%/lib -L%SYSBASE%/usr/lib -L/usr/X11R6/lib -L%SOLAR_STLLIBPATH% - SOLAR_JAVA TRUE - ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl - ENABLE_GCONF TRUE - ENABLE_GNOMEVFS TRUE - GNUCOPY cp - GNUMAKE make - SYSTEM_LIBRSVG YES - SYSTEM_LIBCROCO YES - SYSTEM_GDKPIXBUF YES - SYSTEM_GLIB YES - SYSTEM_GETTEXT YES - SYSTEM_PANGO YES - SYSTEM_LIBPNG YES - SYSTEM_LIBJPEG YES - SYSTEM_LIBGSF YES - } - common0 - { - SOLAR_ENV_ROOT /so/env - SOLAR_SOURCE_ROOT %DRIVE_O% - SOLAR_SYSBASE_ROOT /so/env/gcc_4.2.3_linux_libc2.5/glibc2.5 - } - common1 - { - COMPATH %SOLAR_ENV_ROOT%$/gcc_4.2.3_linux_libc2.5 - DEVROOT %SOLAR_ENV_ROOT% - LFS_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 - PERL %SOLAR_ENV_ROOT%/bt_linux_libc2.5/%WORK_STAMP%/bin/perl - PKGFORMAT rpm - SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv - SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv - SOLARROOT %SOLAR_ENV_ROOT% - SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLAR_JDK13PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.3.1 - SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.4.2_11 - SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.5.0_06 - SOLAR_OJDK16PATH %SOLAR_ENV_ROOT%/openjdk-6-b08-linux-i586 - SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% - SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT% - PKG_CONFIG_LIBDIR %SOLAR_SYSBASE_ROOT%/usr/lib/pkgconfig - KDE_ROOT /so/env/kde/linux/kde-3.2.2 - } - common2 - { - ENABLE_GRAPHITE TRUE - ENABLE_GSTREAMER TRUE - BUILD_TOOLS %SOLARROOT%/bt_linux_libc2.5/%WORK_STAMP%/bin - COM GCC - COMMON_BUILD_TOOLS %SOLARROOT%$/btools - COMMON_ENV_TOOLS %SOLARROOT%$/etools - CPU I - CPUNAME INTEL - CVER C432 - ENABLE_KAB TRUE - ENABLE_KDE TRUE - ENABLE_EVOAB2 TRUE - ENV_TOOLS %SOLARROOT%/et_linux_libc2.5/%WORK_STAMP%/bin - GUI UNX - GUIBASE unx - GVER VCL - INPATH unxlngi6%PROEXT% - JDK13PATH %SOLAR_JDK13PATH% - JDK14PATH %SOLAR_JDK14PATH% - JDK15PATH %SOLAR_JDK15PATH% - LIBMYSQL_PATH %SOLARROOT%/mysql-connector-c-6.0.2/unxlngi6 - NO_BSYMBOLIC True - OJDK16PATH %SOLAR_OJDK16PATH% - OS LINUX - OUTPATH unxlngi6 - RPM %SOLARENV%/bin/rpm-wrapper - SOLAR_STLLIBPATH %SOLARVERSION%$/unxlngi6%PROEXT%$/lib%UPDMINOREXT% - SOLAR_STLPATH %SOLARVERSION%$/unxlngi6%PROEXT%$/inc%UPDMINOREXT%$/stl - SYSBASE %SOLAR_SYSBASE_ROOT% - TEMP /tmp - TMP /tmp - GTK_CFLAGS -I%SOLAR_SYSBASE_ROOT%/usr/include/gtk-2.0 -I%SOLAR_SYSBASE_ROOT%/usr/lib/gtk-2.0/include -I%SOLAR_SYSBASE_ROOT%/usr/include/atk-1.0 -I%SOLAR_SYSBASE_ROOT%/usr/include/cairo -I%SOLAR_SYSBASE_ROOT%/usr/include/pango-1.0 -I%SOLAR_SYSBASE_ROOT%/usr/include/glib-2.0 -I%SOLAR_SYSBASE_ROOT%/usr/lib/glib-2.0/include - GTK_LIBS -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0 - KDE_CFLAGS -I%KDE_ROOT%/include -DQT_CLEAN_NAMESPACE - KDE_LIBS -L%KDE_ROOT%/lib -lkdeui -lkdecore -lqt-mt - } - common3:0 IF X%UPDATER%X == XX - { - FORCE2ARCHIVE TRUE - } - compath - { - COMPATH %STAR_COMPATH% - } - distroot:0 if X%DIST_ROOT%X != XX - { - SHARED_SOLARVERSION %DIST_ROOT%/%WORK_STAMP% - SOLARVER %DIST_ROOT%/%WORK_STAMP% - SOLARVERSION %DIST_ROOT%/%WORK_STAMP% - } - envroot:0 IF X%ENV_ROOT%X != XX - { - SOLAR_ENV_ROOT %ENV_ROOT% - } - jdk14 - { - JAVA_HOME %JDK14PATH% - JDKINC %JDK14PATH%/include:%JDK14PATH%/include/linux - JDKINCS -I%JDK14PATH%/include -I%JDK14PATH%/include/linux - JDKLIB %JDK14PATH%/jre/lib:%JDK14PATH%/jre/lib/i386:%JDK14PATH%/jre/lib/i386/client - JDKLIBS -L%JDK14PATH%/jre/lib -L%JDK14PATH%/jre/lib/i386 -L%JDK14PATH%/jre/lib/i386/client - JDKPATH %JDK14PATH%/bin - JDK_VERSION 142 - XCLASSPATH .:%JDK14PATH%/jre/lib/rt.jar - } - jdk14path:0 IF X%JDK_PATH%X != XX - { - SOLAR_JDK14PATH %JDK_PATH% - } - jdk15 - { - JAVA_HOME %JDK15PATH% - JDKINC %JDK15PATH%/include:%JDK15PATH%/include/linux - JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/linux - JDKLIB %JDK15PATH%/jre/lib:%JDK15PATH%/jre/lib/i386:%JDK15PATH%/jre/lib/i386/client:%JDK15PATH%/jre/lib/i386/xawt - JDKLIBS -L%JDK15PATH%/jre/lib -L%JDK15PATH%/jre/lib/i386 -L%JDK15PATH%/jre/lib/i386/client - JDKPATH %JDK15PATH%/bin - JDK_VERSION 150 - XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar - } - jdk15path:0 IF X%JDK_PATH%X != XX - { - SOLAR_JDK15PATH %JDK_PATH% - } - ojdk16 - { - JAVA_HOME %OJDK16PATH% - JDKINC %OJDK16PATH%/include:%OJDK16PATH%/include/linux - JDKINCS -I%OJDK16PATH%/include -I%OJDK16PATH%/include/linux - JDKLIB %OJDK16PATH%/jre/lib:%OJDK16PATH%/jre/lib/i386:%OJDK16PATH%/jre/lib/i386/client:%OJDK16PATH%/jre/lib/i386/xawt - JDKLIBS -L%OJDK16PATH%/jre/lib -L%OJDK16PATH%/jre/lib/i386 -L%OJDK16PATH%/jre/lib/i386/client - JDKPATH %OJDK16PATH%/bin - JDK_VERSION 160 - XCLASSPATH .:%OJDK16PATH%/jre/lib/rt.jar - } - ojdk16path:0 IF X%JDK_PATH%X != XX - { - SOLAR_OJDK16PATH %JDK_PATH% - } - pro - { - PROSWITCH -DPRODUCT - } - sourceroot:0 IF X%SOURCE_ROOT%X != XX - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT% - SOURCE_ROOT_USED TRUE - } - sysbaseroot - { - SOLAR_SYSBASE_ROOT %SYSBASE_ROOT% - } - } - extern - { - DIST_ROOT - ENV_ROOT - HOME - JDK_PATH - LOCALINI - SOL_TMP - SOURCE_ROOT - SYSBASE_ROOT - USER - } - order common0 bs_sourceroot envroot:0 sourceroot:0 sysbaseroot common1 jdk14path:0 jdk15path:0 ojdk16path:0 distroot:0 cap cax compath common2 pro common3:0 common jdk14 jdk15 ojdk16 - reset - { - CLASSPATH - COPYALL - } - restore - { - INCLUDE - } - script - { - csh - { - 400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 600: umask 002 - 800: rehash - 820: wrapfetch.sh - 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR - 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 - 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR - 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 - } - sh - { - 400: if [ $COPYALL ]; then - 410: $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 415: fi - 600: umask 002 - 800: hash -r - 820: wrapfetch.sh - 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then - 851: export SO_GEN_ERROR - 852: fi - 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then - 861: export SO_GEN_ERROR2 - 862: fi - 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then - 871: echo $SO_GEN_ERROR - 872: fi - 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then - 881: echo $SO_GEN_ERROR2 - 882: fi - } - } - switches - { - bs_sourceroot SOURCE_ROOT_TMP - bsclient - cap - cax - compath STAR_COMPATH - debug - distroot - envroot - jdk14 - jdk14path - jdk15 - jdk15path - l10n L10N_framework - ojdk16 - ojdk16path - pro - sourceroot - sysbaseroot - } -} - -unxlngx6 -{ - environment - { - bs_sourceroot - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT_USED TRUE - } - cap - { - COPYALL TRUE - COPY_PACKED TRUE - DEVROOT %SOL_TMP%$/r - PCLEAN_PATH %SOLARROOT%/etools - PERL %SOL_TMP%$/r$/bt_linux64_libc2.5$/%WORK_STAMP%$/bin$/perl - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - cax - { - COPYALL FALSE - DEVROOT %SOL_TMP%$/r - PCLEAN_PATH %SOL_TMP%$/r/etools - PERL %SOL_TMP%$/r$/bt_linux64_libc2.5$/%WORK_STAMP%$/bin$/perl - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - common - { - *build nice %PERL% %SOLARENV%/bin/build.pl %PROFULLSWITCH% - *build_client nice %PERL% %SOLARENV%/bin/build_client.pl - *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - *deliver %PERL% %SOLARENV%/bin/deliver.pl - *mkout %PERL% %SOLARENV%/bin/mkout.pl - *r: cd %SOLARROOT% - *s: cd %SOLARVERSION% - *zipdep %PERL% %SOLARENV%/bin/zipdep.pl - COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - DELIVER %PERL% %SOLARENV%/bin/deliver.pl - DMAKEROOT %SOLARENV%/inc/startup - HAVE_GCC_VISIBILITY_FEATURE TRUE - HAVE_LD_BSYMBOLIC_FUNCTIONS TRUE - HAVE_LD_HASH_STYLE TRUE - LIBRARY_PATH %SYSBASE%/usr/lib64 - MKOUT %PERL% %SOLARENV%/bin/mkout.pl - PATHEXTRA %combin%:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11 - FREETYPE_CFLAGS -I%SYSBASE%/usr/include/freetype2 - VALGRIND_CFLAGS -I%SOLARVERSION%$/unxlngx6%PROEXT%$/inc%UPDMINOREXT%/valgrind - SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include -I%SYSBASE%/usr/include/X11 -I%SYSBASE%/include - SOLAREXTRALIB -L../lib64 -L%SYSBASE%/lib -L%SYSBASE%/usr/lib64 -L%SOLAR_STLLIBPATH% - SOLAR_JAVA TRUE - ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl - ENABLE_GCONF TRUE - ENABLE_GNOMEVFS TRUE - GNUMAKE make - SYSTEM_LIBRSVG YES - SYSTEM_LIBCROCO YES - SYSTEM_GDKPIXBUF YES - SYSTEM_GLIB YES - SYSTEM_GETTEXT YES - SYSTEM_PANGO YES - SYSTEM_LIBPNG YES - SYSTEM_LIBJPEG YES - SYSTEM_LIBGSF YES - } - common0 - { - SOLAR_ENV_ROOT /so/env - SOLAR_SOURCE_ROOT %DRIVE_O% - SOLAR_SYSBASE_ROOT /so/env/gcc_4.2.3_linux64_libc2.5/glibc2.5 - } - common1 - { - COMPATH %SOLAR_ENV_ROOT%$/gcc_4.2.3_linux64_libc2.5 - DEVROOT %SOLAR_ENV_ROOT% - PERL %SOLAR_ENV_ROOT%/bt_linux64_libc2.5/%WORK_STAMP%/bin/perl - PKGFORMAT rpm - SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv - SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv - SOLARROOT %SOLAR_ENV_ROOT% - SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.4.2.32 - SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/Linux_JDK_1.5.0_15.x64 - SOLAR_OJDK16PATH %SOLAR_ENV_ROOT%/openjdk-6-b08-linux-amd64 - SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% - SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT% - USE_SYSTEM_STL YES - XAU_LIBS -lXau - PKG_CONFIG_LIBDIR %SOLAR_SYSBASE_ROOT%/usr/lib/pkgconfig - KDE_ROOT /so/env/kde/linux-x64/kde-3.5.10 - } - common2 - { - PKG_CONFIG_PATH %COMPATH%/glibc2.5/usr/lib64/pkgconfig - ENABLE_GRAPHITE TRUE - ENABLE_GSTREAMER TRUE - BUILD_TOOLS %SOLARROOT%/bt_linux64_libc2.5/%WORK_STAMP%/bin - COM GCC - COMMON_BUILD_TOOLS %SOLARROOT%$/btools - COMMON_ENV_TOOLS %SOLARROOT%$/etools - CPU X - CPUNAME INTEL - CVER C341 - ENABLE_KAB TRUE - ENABLE_KDE TRUE - ENV_TOOLS %SOLARROOT%/et_linux64_libc2.5/%WORK_STAMP%/bin - GUI UNX - GUIBASE unx - GUIENV sal - GVER VCL - INPATH unxlngx6%PROEXT% - JDK14PATH %SOLAR_JDK14PATH% - JDK15PATH %SOLAR_JDK15PATH% - LIBMYSQL_PATH %SOLARROOT%/mysql-connector-c-6.0.2/unxlngx6 - NO_BSYMBOLIC True - OJDK16PATH %SOLAR_OJDK16PATH% - OS LINUX - OUTPATH unxlngx6 - PA_VER 18 - RPM %SOLARENV%/bin/rpm-wrapper - SOLARUPD %UPD% - SOLAR_STLLIBPATH %SOLARVERSION%$/unxlngx6%PROEXT%$/lib%UPDMINOREXT% - SOLAR_STLPATH %SOLARVERSION%$/unxlngx6%PROEXT%$/inc%UPDMINOREXT%$/stl - SYSBASE %SOLAR_SYSBASE_ROOT% - TEMP /tmp - TMP /tmp - GTK_CFLAGS -I%SOLAR_SYSBASE_ROOT%/usr/include/gtk-2.0 -I%SOLAR_SYSBASE_ROOT%/usr/lib/gtk-2.0/include -I%SOLAR_SYSBASE_ROOT%/usr/include/atk-1.0 -I%SOLAR_SYSBASE_ROOT%/usr/include/cairo -I%SOLAR_SYSBASE_ROOT%/usr/include/pango-1.0 -I%SOLAR_SYSBASE_ROOT%/usr/include/glib-2.0 -I%SOLAR_SYSBASE_ROOT%/usr/lib/glib-2.0/include - GTK_LIBS -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0 - KDE_CFLAGS -I%KDE_ROOT%/include -DQT_CLEAN_NAMESPACE - KDE_LIBS -L%KDE_ROOT%/lib64 -L%KDE_ROOT%/lib -lkdeui -lkdecore -lqt-mt - } - common3:0 IF X%UPDATER%X == XX - { - FORCE2ARCHIVE TRUE - } - compath - { - COMPATH %STAR_COMPATH% - } - distroot:0 if X%DIST_ROOT%X != XX - { - SHARED_SOLARVERSION %DIST_ROOT%/%WORK_STAMP% - SOLARVER %DIST_ROOT%/%WORK_STAMP% - SOLARVERSION %DIST_ROOT%/%WORK_STAMP% - } - envroot:0 IF X%ENV_ROOT%X != XX - { - SOLAR_ENV_ROOT %ENV_ROOT% - } - jdk14 - { - JAVA_HOME %JDK15PATH% - JDKINC %JDK15PATH%/include:%JDK15PATH%/include/linux - JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/linux - JDKLIB %JDK15PATH%/jre/lib:%JDK15PATH%/jre/lib/amd64:%JDK15PATH%/jre/lib/amd64/server:%JDK15PATH%/jre/lib/amd64/xawt - JDKLIBS -L%JDK15PATH%/jre/lib -L%JDK15PATH%/jre/lib/amd64 -L%JDK15PATH%/jre/lib/amd64/server - JDKPATH %JDK15PATH%/bin - JDK_VERSION 150 - XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar - } - jdk14path:0 IF X%JDK_PATH%X != XX - { - SOLAR_JDK14PATH %JDK_PATH% - } - jdk15 - { - JAVA_HOME %JDK15PATH% - JDKINC %JDK15PATH%/include:%JDK15PATH%/include/linux - JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/linux - JDKLIB %JDK15PATH%/jre/lib:%JDK15PATH%/jre/lib/amd64:%JDK15PATH%/jre/lib/amd64/server:%JDK15PATH%/jre/lib/amd64/xawt - JDKLIBS -L%JDK15PATH%/jre/lib -L%JDK15PATH%/jre/lib/amd64 -L%JDK15PATH%/jre/lib/amd64/server - JDKPATH %JDK15PATH%/bin - JDK_VERSION 150 - XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar - } - jdk15path:0 IF X%JDK_PATH%X != XX - { - SOLAR_JDK15PATH %JDK_PATH% - } - ojdk16 - { - JAVA_HOME %OJDK16PATH% - JDKINC %OJDK16PATH%/include:%OJDK16PATH%/include/linux - JDKINCS -I%OJDK16PATH%/include -I%OJDK16PATH%/include/linux - JDKLIB %OJDK16PATH%/jre/lib:%OJDK16PATH%/jre/lib/amd64:%OJDK16PATH%/jre/lib/amd64/server:%OJDK16PATH%/jre/lib/amd64/xawt - JDKLIBS -L%OJDK16PATH%/jre/lib -L%OJDK16PATH%/jre/lib/amd64 -L%OJDK16PATH%/jre/lib/amd64/server - JDKPATH %OJDK16PATH%/bin - JDK_VERSION 160 - XCLASSPATH .:%OJDK16PATH%/jre/lib/rt.jar - } - ojdk16path:0 IF X%JDK_PATH%X != XX - { - SOLAR_OJDK16PATH %JDK_PATH% - } - pro - { - PROSWITCH -DPRODUCT - } - sourceroot:0 IF X%SOURCE_ROOT%X != XX - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT% - SOURCE_ROOT_USED TRUE - } - sysbaseroot - { - SOLAR_SYSBASE_ROOT %SYSBASE_ROOT% - } - } - extern - { - DIST_ROOT - ENV_ROOT - HOME - JDK_PATH - LOCALINI - SOL_TMP - SOURCE_ROOT - SYSBASE_ROOT - USER - } - order common0 bs_sourceroot envroot:0 sourceroot:0 sysbaseroot common1 jdk14path:0 jdk15path:0 ojdk16path:0 distroot:0 cap cax compath common2 common3:0 pro common jdk14 jdk15 ojdk16 - reset - { - CLASSPATH - COPYALL - } - restore - { - INCLUDE - } - script - { - csh - { - 400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 600: umask 002 - 800: rehash - 820: wrapfetch.sh - 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR - 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 - 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR - 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 - } - sh - { - 400: if [ $COPYALL ]; then - 410: $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 415: fi - 600: umask 002 - 800: hash -r - 820: wrapfetch.sh - 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then - 851: export SO_GEN_ERROR - 852: fi - 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then - 861: export SO_GEN_ERROR2 - 862: fi - 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then - 871: echo $SO_GEN_ERROR - 872: fi - 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then - 881: echo $SO_GEN_ERROR2 - 882: fi - } - } - switches - { - bs_sourceroot SOURCE_ROOT_TMP - bsclient - cap - cax - compath STAR_COMPATH - debug - distroot - envroot - jdk14 - jdk14path - jdk15 - jdk15path - l10n L10N_framework - ojdk16 - ojdk16path - pro - sourceroot - sysbaseroot - } -} - -unxmacxi -{ - environment - { - bs_sourceroot - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT_USED TRUE - } - cap - { - COPYALL TRUE - COPY_PACKED TRUE - DEVROOT %SOL_TMP%$/r - PCLEAN_PATH %SOLARROOT%/etools - PERL %SOL_TMP%$/r$/bt_macosx_intel$/%WORK_STAMP%$/bin$/perl - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - cax - { - COPYALL FALSE - DEVROOT %SOL_TMP%$/r - PCLEAN_PATH %SOL_TMP%$/r/etools - PERL %SOL_TMP%$/r$/bt_macosx_intel$/%WORK_STAMP%$/bin$/perl - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - common - { - *build nice %PERL% %SOLARENV%/bin/build.pl %PROFULLSWITCH% - *build_client nice %PERL% %SOLARENV%/bin/build_client.pl - *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - *deliver %PERL% %SOLARENV%/bin/deliver.pl - *mkout %PERL% %SOLARENV%/bin/mkout.pl - *r: cd %SOLARROOT% - *s: cd %SOLARVERSION% - *zipdep %PERL% %SOLARENV%/bin/zipdep.pl - COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - DELIVER %PERL% %SOLARENV%/bin/deliver.pl - DMAKEROOT %SOLARENV%/inc/startup - HAVE_GCC_VISIBILITY_FEATURE TRUE - LIBRARY_PATH %SYSBASE%/usr/lib - MKOUT %PERL% %SOLARENV%/bin/mkout.pl - PATHEXTRA %combin%:/usr/bin:/bin:/usr/sbin:/etc - VALGRIND_CFLAGS -I%SOLARVERSION%$/unxmacxi%PROEXT%$/inc%UPDMINOREXT%/valgrind - SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include/c++/4.0.0 -I%SYSBASE%/usr/include/c++/4.0.0/i686-apple-darwin8 -I%SYSBASE%/usr/lib/gcc/i686-apple-darwin8/4.0.1/include -I%SYSBASE%/usr/include/python2.3 -I%SYSBASE%/MacOSX10.4u.sdk/usr/lib/gcc/i686-apple-darwin8/4.0.1/include -I%SYSBASE%/MacOSX10.4u.sdk/Developer/Headers/FlatCarbon - SOLAREXTRALIB -L%SOLAR_STLLIBPATH% - SOLAR_JAVA TRUE - ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl - GNUCOPY gnucp - GNUMAKE make - } - common0 - { - GXX_INCLUDE_PATH /so/env/gcc_4.0.1_macosx/usr/include/c++/4.0.0 - SOLAR_ENV_ROOT /so/env - SOLAR_SOURCE_ROOT %DRIVE_O% - SOLAR_SYSBASE_ROOT /so/env/gcc_4.0.1_macosx - MACDEVSDK /so/env/gcc_4.0.1_macosx/MacOSX10.4u.sdk - } - common1 - { - BUILD_OS_APPLEOSX TRUE - BUILD_OS_MAJOR 10 - BUILD_OS_MINOR 4 - BUILD_OS_REV 10 - COMPATH %SOLAR_ENV_ROOT%$/gcc_4.0.1_macosx - DEVROOT %SOLAR_ENV_ROOT% - DISABLE_DEPRECATION_WARNING TRUE - EXTRA_CDEFS -DBUILD_OS_APPLEOSX -DBUILD_OS_MAJOR=10 -DBUILD_OS_MINOR=4 -DBUILD_OS_REV=10 - EXTRA_CFLAGS -isysroot %COMPATH%/MacOSX10.4u.sdk - EXTRA_LINKFLAGS -Wl,-syslibroot,%COMPATH%/MacOSX10.4u.sdk - LFS_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 - LIBXML_CFLAGS -I%COMPATH%/MacOSX10.4u.sdk/usr/include/libxml2 - LIBXML_LIBS -L%COMPATH%/MacOSX10.4u.sdk/usr/lib -lxml2 -lz -lpthread -liconv -lm - LIBXSLT_CFLAGS -I%COMPATH%/MacOSX10.4u.sdk/usr/include/libxml2 - LIBXSLT_LIBS -L%COMPATH%/MacOSX10.4u.sdk/usr/lib -lxslt -lxml2 -lz -lpthread -liconv -lm - MACOSX_DEPLOYMENT_TARGET 10.4 - OPENSSL_LIBS -lssl -lcrypto - PERL %SOLAR_ENV_ROOT%/bt_macosx_intel/%WORK_STAMP%/bin/perl - PKGFORMAT dmg - SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv - SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv - SOLARROOT %SOLAR_ENV_ROOT% - SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/mac_jdk14_unknown - SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/MacOSX_JDK_1.5.0_07.intel - SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% - SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT% - SYSTEM_CURL YES - SYSTEM_LIBXML YES - SYSTEM_LIBXSLT YES - SYSTEM_OPENSSL YES - SYSTEM_PYTHON YES - SYSTEM_ZLIB YES - SYSTEM_LIBGSF YES - USE_SYSTEM_STL YES - BUILD_PIXMAN YES - WITH_MOZILLA YES - ENABLE_CAIRO TRUE - SYSTEM_LIBRSVG NO - SYSTEM_LIBCROCO NO - SYSTEM_GDKPIXBUF NO - SYSTEM_GLIB NO - SYSTEM_GETTEXT NO - SYSTEM_PANGO NO - SYSTEM_LIBPNG NO - SYSTEM_LIBJPEG NO - } - common2 - { - BUILD_TOOLS %SOLARROOT%/bt_macosx_intel/%WORK_STAMP%/bin - COM GCC - COMMON_BUILD_TOOLS %SOLARROOT%$/btools - COMMON_ENV_TOOLS %SOLARROOT%$/etools - CPU I - CPUNAME INTEL - CVER C341 - ENV_TOOLS %SOLARROOT%/et_macosx_intel/%WORK_STAMP%/bin - GUI UNX - GUIBASE aqua - GVER VCL - INPATH unxmacxi%PROEXT% - JDK13PATH %SOLAR_JDK13PATH% - JDK14PATH %SOLAR_JDK15PATH% - JDK15PATH %SOLAR_JDK15PATH% - LIBMYSQL_PATH %SOLARROOT%/mysql-connector-c-6.0.2/unxmacxi - NO_BSYMBOLIC True - OS MACOSX - OUTPATH unxmacxi - PA_VER 18 - SOLAR_STLLIBPATH %SOLARVERSION%$/unxmacxi%PROEXT%$/lib%UPDMINOREXT% - SOLAR_STLPATH %SOLARVERSION%$/unxmacxi%PROEXT%$/inc%UPDMINOREXT%$/stl - SYSBASE %SOLAR_SYSBASE_ROOT% - TEMP /tmp - TMP /tmp - } - compath - { - COMPATH %STAR_COMPATH% - } - distroot:0 if X%DIST_ROOT%X != XX - { - SHARED_SOLARVERSION %DIST_ROOT%/%WORK_STAMP% - SOLARVER %DIST_ROOT%/%WORK_STAMP% - SOLARVERSION %DIST_ROOT%/%WORK_STAMP% - } - envroot:0 IF X%ENV_ROOT%X != XX - { - SOLAR_ENV_ROOT %ENV_ROOT% - } - jdk14 - { - JAVA_HOME %JDK15PATH% - JDKINC %JDK15PATH%/include:%JDK15PATH%/include/linux - JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/linux - JDKLIB %JDK15PATH%/jre/lib - JDKLIBS -L%JDK15PATH%/jre/lib - JDKPATH %JDK15PATH%/bin - JDK_VERSION 150 - XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar - } - jdk14path:0 IF X%JDK_PATH%X != XX - { - SOLAR_JDK14PATH %JDK_PATH% - } - jdk15 - { - JAVA_HOME %JDK15PATH% - JDKINC %JDK15PATH%/include:%JDK15PATH%/include/linux - JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/linux - JDKLIB %JDK15PATH%/jre/lib - JDKLIBS -L%JDK15PATH%/jre/lib - JDKPATH %JDK15PATH%/bin - JDK_VERSION 150 - XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar - } - jdk15path:0 IF X%JDK_PATH%X != XX - { - SOLAR_JDK15PATH %JDK_PATH% - } - pro - { - PROSWITCH -DPRODUCT - } - sourceroot:0 IF X%SOURCE_ROOT%X != XX - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT% - SOURCE_ROOT_USED TRUE - } - sysbaseroot - { - SOLAR_SYSBASE_ROOT %SYSBASE_ROOT% - } - } - extern - { - DIST_ROOT - ENV_ROOT - HOME - JDK_PATH - LOCALINI - SOL_TMP - SOURCE_ROOT - SYSBASE_ROOT - USER - } - order common0 bs_sourceroot envroot:0 sourceroot:0 sysbaseroot common1 jdk14path:0 jdk15path:0 distroot:0 cap cax compath common2 pro common jdk14 jdk15 - reset - { - CLASSPATH - COPYALL - } - restore - { - INCLUDE - } - script - { - csh - { - 400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 600: umask 002 - 800: rehash - 820: wrapfetch.sh - 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR - 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 - 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR - 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 - } - sh - { - 400: if [ $COPYALL ]; then - 410: $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 415: fi - 600: umask 002 - 800: hash -r - 820: wrapfetch.sh - 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then - 851: export SO_GEN_ERROR - 852: fi - 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then - 861: export SO_GEN_ERROR2 - 862: fi - 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then - 871: echo $SO_GEN_ERROR - 872: fi - 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then - 881: echo $SO_GEN_ERROR2 - 882: fi - } - } - switches - { - bs_sourceroot SOURCE_ROOT_TMP - bsclient - cap - cax - compath STAR_COMPATH - debug - distroot - envroot - jdk14 - jdk14path - jdk15 - jdk15path - l10n L10N_framework - pro - sourceroot - sysbaseroot - } -} -unxsoli4 -{ - environment - { - bs_sourceroot - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT_USED TRUE - } - cap - { - COPYALL TRUE - COPY_PACKED TRUE - DEVROOT %SOL_TMP%$/r - PCLEAN_PATH %SOLARROOT%/etools - PERL %SOL_TMP%$/r$/bt_solaris_intel$/bin$/perl - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - cax - { - COPYALL FALSE - DEVROOT %SOL_TMP%$/r - PCLEAN_PATH %SOL_TMP%$/r/etools - PERL %SOL_TMP%$/r$/bt_solaris_intel$/bin$/perl - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - common - { - *build nice %PERL% %SOLARENV%/bin/build.pl %PROFULLSWITCH% - *build_client nice %PERL% %SOLARENV%/bin/build_client.pl - *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - *deliver %PERL% %SOLARENV%/bin/deliver.pl - *mkout %PERL% %SOLARENV%/bin/mkout.pl - *r: cd %SOLARROOT% - *s: cd %SOLARVERSION% - *zipdep %PERL% %SOLARENV%/bin/zipdep.pl - COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - DELIVER %PERL% %SOLARENV%/bin/deliver.pl - DMAKEROOT %SOLARENV%/inc/startup - MKOUT %PERL% %SOLARENV%/bin/mkout.pl - PATHEXTRA /usr/ccs/bin:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11:/opt/langtools/bin:/usr/dt/bin - FREETYPE_CFLAGS -I%SYSBASE%/usr/sfw/include -I%SYSBASE%/usr/sfw/include/freetype2 - SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include - SOLAREXTRALIB -L%COMPATH%$/lib -L../lib -L%SYSBASE%/usr/lib -L%SYSBASE%/usr/sfw/lib -L/lib -L/usr/lib -L/usr/dt/lib -L/usr/openwin/lib -L%SOLAR_STLLIBPATH% - SOLAR_JAVA TRUE - ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl - __cdpath %DRIVE_O%/%WORK_STAMP%/ooo%UPDMINOREXT% - ENABLE_GCONF TRUE - ENABLE_GNOMEVFS TRUE - GNUCOPY gnucp - GNUMAKE gmake - SYSTEM_LIBRSVG YES - SYSTEM_LIBCROCO YES - SYSTEM_GDKPIXBUF YES - SYSTEM_GLIB YES - SYSTEM_GETTEXT YES - SYSTEM_PANGO YES - SYSTEM_LIBPNG YES - SYSTEM_LIBJPEG YES - SYSTEM_LIBGSF YES - } - common0 - { - SOLAR_ENV_ROOT /so/env - SOLAR_SOURCE_ROOT %DRIVE_O% - SOLAR_SYSBASE_ROOT /so/env/solaris_2.10_intel - OOO_SYSBASE_SYS_RELEASE 5.10 - } - common1 - { - COMPATH /so/env/compilers/SUNWS12_p/intel/SUNWspro - DEVROOT %SOLAR_ENV_ROOT% - LFS_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 - PERL %SOLAR_ENV_ROOT%/bt_solaris_intel/bin/perl - PKGFORMAT pkg - SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv - SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv - SOLARROOT %SOLAR_ENV_ROOT% - SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLAR_JDK13PATH %SOLAR_ENV_ROOT%/Solaris_JDK_1.3.1_01.intel - SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/Solaris_JDK_1.4.2_11.intel - SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/Solaris_JDK_1.5.0_06.intel - SOLAR_OJDK16PATH %SOLAR_ENV_ROOT%/openjdk-6-b08-solaris-i586 - SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% - SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT% - SOLAR_GTK_ROOT /so/env/gnome/solaris_intel/cinnabar_b15 - } - common2 - { - BUILD_TOOLS %SOLARROOT%/bt_solaris_intel/%WORK_STAMP%/bin - COM C52 - COMEX 4 - COMMON_BUILD_TOOLS %SOLARROOT%$/btools - COMMON_ENV_TOOLS %SOLARROOT%$/etools - CPU I - CPUNAME INTEL - CVER C52 - ENABLE_EVOAB2 TRUE - ENV_TOOLS %SOLARROOT%/et_solaris_intel/%WORK_STAMP%/bin - GUI UNX - GUIBASE unx - GVER VCL - INPATH unxsoli4%PROEXT% - JDK13PATH %SOLAR_JDK13PATH% - JDK14PATH %SOLAR_JDK14PATH% - JDK15PATH %SOLAR_JDK15PATH% - LIBMYSQL_PATH %SOLARROOT%/mysql-connector-c-6.0.2/unxsoli4 - OJDK16PATH %SOLAR_OJDK16PATH% - OS SOLARIS - OUTPATH unxsoli4 - SOLAR_STLLIBPATH %SOLARVERSION%$/unxsoli4%PROEXT%$/lib%UPDMINOREXT% - SOLAR_STLPATH %SOLARVERSION%$/unxsoli4%PROEXT%$/inc%UPDMINOREXT%$/stl - SYSBASE %SOLAR_SYSBASE_ROOT% - TEMP /var/tmp - TMP /var/tmp - GTK_CFLAGS -I%SOLAR_GTK_ROOT%/usr/include/gtk-2.0 -I%SOLAR_GTK_ROOT%/usr/lib/gtk-2.0/include -I%SOLAR_GTK_ROOT%/usr/include/atk-1.0 -I%SOLAR_GTK_ROOT%/usr/include/pango-1.0 -I/usr/openwin/include -I%SOLAR_GTK_ROOT%/usr/sfw/include -I%SOLAR_GTK_ROOT%/usr/sfw/include/freetype2 -I%SOLAR_GTK_ROOT%/usr/include/glib-2.0 -I%SOLAR_GTK_ROOT%/usr/lib/glib-2.0/include - GTK_LIBS -L%SOLAR_GTK_ROOT%/usr/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0 - } - compath - { - COMPATH %STAR_COMPATH% - } - distroot:0 if X%DIST_ROOT%X != XX - { - SHARED_SOLARVERSION %DIST_ROOT%/%WORK_STAMP% - SOLARVER %DIST_ROOT%/%WORK_STAMP% - SOLARVERSION %DIST_ROOT%/%WORK_STAMP% - } - envroot:0 if X%ENV_ROOT%X != XX - { - SOLAR_ENV_ROOT %ENV_ROOT% - } - jdk14 - { - JAVA_HOME %JDK14PATH% - JDKINC %JDK14PATH%/include:%JDK14PATH%/include/solaris - JDKINCS -I%JDK14PATH%/include -I%JDK14PATH%/include/solaris - JDKLIB %JDK14PATH%/jre/lib/i386:%JDK14PATH%/lib:%JDK14PATH%/jre/lib/i386/native_threads:%JDK14PATH%/jre/plugin/i386:%JDK14PATH%/jre/lib/i386/motif21 - JDKLIBS -L%JDK14PATH%/jre/lib/i386 -L%JDK14PATH%/lib -L%JDK14PATH%/jre/lib/i386/native_threads -L%JDK14PATH%/jre/plugin/i386 -L%JDK14PATH%/jre/lib/i386/motif21 - JDKPATH %JDK14PATH%/bin - JDK_VERSION 142 - XCLASSPATH .:%JDK14PATH%/jre/lib/rt.jar - } - jdk14path:0 if X%JDK_PATH%X != XX - { - SOLAR_JDK14PATH %JDK_PATH% - } - jdk15 - { - JAVA_HOME %JDK15PATH% - JDKINC %JDK15PATH%/include:%JDK15PATH%/include/solaris - JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/solaris - JDKLIB %JDK15PATH%/jre/lib/i386:%JDK15PATH%/lib:%JDK15PATH%/jre/lib/i386/native_threads:%JDK15PATH%/jre/plugin/i386:%JDK15PATH%/jre/lib/i386/motif21 - JDKLIBS -L%JDK15PATH%/jre/lib/i386 -L%JDK15PATH%/lib -L%JDK15PATH%/jre/lib/i386/native_threads -L%JDK15PATH%/jre/plugin/i386 -L%JDK15PATH%/jre/lib/i386/motif21 - JDKPATH %JDK15PATH%/bin - JDK_VERSION 150 - XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar - } - jdk15path:0 if X%JDK_PATH%X != XX - { - SOLAR_JDK15PATH %JDK_PATH% - } - ojdk16 - { - JAVA_HOME %OJDK16PATH% - JDKINC %OJDK16PATH%/include:%OJDK16PATH%/include/solaris - JDKINCS -I%OJDK16PATH%/include -I%OJDK16PATH%/include/solaris - JDKLIB %OJDK16PATH%/jre/lib/i386:%OJDK16PATH%/lib:%OJDK16PATH%/jre/lib/i386/native_threads:%OJDK16PATH%/jre/plugin/i386:%OJDK16PATH%/jre/lib/i386/xawt - JDKLIBS -L%OJDK16PATH%/jre/lib/i386 -L%OJDK16PATH%/lib -L%OJDK16PATH%/jre/lib/i386/native_threads -L%OJDK16PATH%/jre/plugin/i386 -L%OJDK16PATH%/jre/lib/i386/xawt - JDKPATH %OJDK16PATH%/bin - JDK_VERSION 160 - XCLASSPATH .:%OJDK16PATH%/jre/lib/rt.jar - } - ojdk16path:0 if X%JDK_PATH%X != XX - { - SOLAR_OJDK16PATH %JDK_PATH% - } - pro - { - PROSWITCH -DPRODUCT - } - sourceroot:0 if X%SOURCE_ROOT%X != XX - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT% - SOURCE_ROOT_USED TRUE - } - sysbaseroot - { - SOLAR_SYSBASE_ROOT %SYSBASE_ROOT% - OOO_SYSBASE_SYS_RELEASE - } - } - extern - { - DIST_ROOT - ENV_ROOT - HOME - JDK_PATH - LOCALINI - SOL_TMP - SOURCE_ROOT - SYSBASE_ROOT - USER - } - order common0 bs_sourceroot envroot:0 sourceroot:0 common1 distroot:0 jdk14path:0 jdk15path:0 ojdk16path:0 sysbaseroot cap cax compath common2 pro common jdk14 jdk15 ojdk16 - reset - { - CLASSPATH - } - script - { - csh - { - 400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 600: umask 002 - 800: rehash - 820: wrapfetch.sh - 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR - 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 - 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR - 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 - } - sh - { - 400: if [ $COPYALL ]; then - 410: $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 415: fi - 600: umask 002 - 800: hash -r - 820: wrapfetch.sh - 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then - 851: export SO_GEN_ERROR - 852: fi - 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then - 861: export SO_GEN_ERROR2 - 862: fi - 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then - 871: echo $SO_GEN_ERROR - 872: fi - 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then - 881: echo $SO_GEN_ERROR2 - 882: fi - } - } - switches - { - bs_sourceroot SOURCE_ROOT_TMP - bsclient - cap - cax - compath STAR_COMPATH - distroot - envroot - jdk14 - jdk14path - jdk15 - jdk15path - l10n L10N_framework - ojdk16 - ojdk16path - pro - sourceroot - sysbaseroot - } -} -unxsols4 -{ - environment - { - bs_sourceroot - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT_USED TRUE - } - cap - { - COPYALL TRUE - COPY_PACKED TRUE - DEVROOT %SOL_TMP%$/r - PCLEAN_PATH %SOLARROOT%/etools - PERL %SOL_TMP%$/r$/bt_solaris_sparc$/bin$/perl - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - cax - { - COPYALL FALSE - DEVROOT %SOL_TMP%$/r - PCLEAN_PATH %SOL_TMP%$/r/etools - PERL %SOL_TMP%$/r$/bt_solaris_sparc$/bin$/perl - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - common - { - *build nice %PERL% %SOLARENV%/bin/build.pl %PROFULLSWITCH% - *build_client nice %PERL% %SOLARENV%/bin/build_client.pl - *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - *deliver %PERL% %SOLARENV%/bin/deliver.pl - *mkout %PERL% %SOLARENV%/bin/mkout.pl - *r: cd %SOLARROOT% - *s: cd %SOLARVERSION% - *zipdep %PERL% %SOLARENV%/bin/zipdep.pl - COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - DELIVER %PERL% %SOLARENV%/bin/deliver.pl - DMAKEROOT %SOLARENV%/inc/startup - MKOUT %PERL% %SOLARENV%/bin/mkout.pl - PATHEXTRA /usr/ccs/bin:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11:/opt/langtools/bin:/usr/dt/bin - FREETYPE_CFLAGS -I%SYSBASE%/usr/sfw/include -I%SYSBASE%/usr/sfw/include/freetype2 - SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include - SOLAREXTRALIB -L%COMPATH%$/lib -L../lib -L%SYSBASE%/usr/lib -L%SYSBASE%/usr/sfw/lib -L/lib -L/usr/lib -L/usr/dt/lib -L/usr/openwin/lib -L%SOLAR_STLLIBPATH% - SOLAR_JAVA TRUE - ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl - __cdpath %DRIVE_O%/%WORK_STAMP%/ooo%UPDMINOREXT% - ENABLE_GCONF TRUE - ENABLE_GNOMEVFS TRUE - GNUCOPY gnucp - GNUMAKE gmake - SYSTEM_LIBRSVG YES - SYSTEM_LIBCROCO YES - SYSTEM_GDKPIXBUF YES - SYSTEM_GLIB YES - SYSTEM_GETTEXT YES - SYSTEM_PANGO YES - SYSTEM_LIBPNG YES - SYSTEM_LIBJPEG YES - SYSTEM_LIBGSF YES - } - common0 - { - SOLAR_ENV_ROOT /so/env - SOLAR_LICENSE_FILE /opt/SUNWspro/license_dir/sunpro.lic,1 - SOLAR_SOURCE_ROOT %DRIVE_O% - SOLAR_SYSBASE_ROOT /so/env/solaris_2.10_sparc - OOO_SYSBASE_SYS_RELEASE 5.10 - } - common1 - { - COMPATH /so/env/compilers/SUNWS12_p/sparc/SUNWspro - DEVROOT %SOLAR_ENV_ROOT% - LFS_CFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 - PERL %SOLAR_ENV_ROOT%/bt_solaris_sparc/bin/perl - PKGFORMAT pkg - SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv - SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv - SOLARROOT %SOLAR_ENV_ROOT% - SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLAR_JDK13PATH %SOLAR_ENV_ROOT%/Solaris_JDK_1.3.1_01.sparc - SOLAR_JDK14PATH %SOLAR_ENV_ROOT%/Solaris_JDK_1.4.2_11.sparc - SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/Solaris_JDK_1.5.0_06.sparc - SOLAR_OJDK16PATH %SOLAR_ENV_ROOT%/openjdk-6-b08-solaris-sparc - SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% - SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT% - SOLAR_GTK_ROOT /so/env/gnome/solaris_sparc/cinnabar_b15 - } - common2 - { - BUILD_TOOLS %SOLARROOT%/bt_solaris_sparc/%WORK_STAMP%/bin - COM C52 - COMEX 4 - COMMON_BUILD_TOOLS %SOLARROOT%$/btools - COMMON_ENV_TOOLS %SOLARROOT%$/etools - CPU S - CPUNAME SPARC - CVER C52 - ENABLE_EVOAB2 TRUE - ENV_TOOLS %SOLARROOT%/et_solaris_sparc/%WORK_STAMP%/bin - GUI UNX - GUIBASE unx - GVER VCL - INPATH unxsols4%PROEXT% - JDK13PATH %SOLAR_JDK13PATH% - JDK14PATH %SOLAR_JDK14PATH% - JDK15PATH %SOLAR_JDK15PATH% - LIBMYSQL_PATH %SOLARROOT%/mysql-connector-c-6.0.2/unxsols4 - LM_LICENSE_FILE %SOLAR_LICENSE_FILE% - OJDK16PATH %SOLAR_OJDK16PATH% - OS SOLARIS - OUTPATH unxsols4 - SOLAR_STLLIBPATH %SOLARVERSION%$/unxsols4%PROEXT%$/lib%UPDMINOREXT% - SOLAR_STLPATH %SOLARVERSION%$/unxsols4%PROEXT%$/inc%UPDMINOREXT%$/stl - SYSBASE %SOLAR_SYSBASE_ROOT% - TEMP /var/tmp - TMP /var/tmp - GTK_CFLAGS -I%SOLAR_GTK_ROOT%/usr/include/gtk-2.0 -I%SOLAR_GTK_ROOT%/usr/lib/gtk-2.0/include -I%SOLAR_GTK_ROOT%/usr/include/atk-1.0 -I%SOLAR_GTK_ROOT%/usr/include/pango-1.0 -I/usr/openwin/include -I%SOLAR_GTK_ROOT%/usr/sfw/include -I%SOLAR_GTK_ROOT%/usr/sfw/include/freetype2 -I%SOLAR_GTK_ROOT%/usr/include/glib-2.0 -I%SOLAR_GTK_ROOT%/usr/lib/glib-2.0/include - GTK_LIBS -L%SOLAR_GTK_ROOT%/usr/lib -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangox-1.0 -lpango-1.0 -lgobject-2.0 -lgmodule-2.0 -ldl -lgthread-2.0 -lglib-2.0 - } - common:3 IF %UPDATER% == YES - { - TEMP /tmp - TMP /tmp - } - compath - { - COMPATH %STAR_COMPATH% - } - distroot:0 if X%DIST_ROOT%X != XX - { - SHARED_SOLARVERSION %DIST_ROOT%/%WORK_STAMP% - SOLARVER %DIST_ROOT%/%WORK_STAMP% - SOLARVERSION %DIST_ROOT%/%WORK_STAMP% - } - envroot:0 if X%ENV_ROOT%X != XX - { - SOLAR_ENV_ROOT %ENV_ROOT% - } - jdk14 - { - JAVA_HOME %JDK14PATH% - JDKINC %JDK14PATH%/include:%JDK14PATH%/include/solaris - JDKINCS -I%JDK14PATH%/include -I%JDK14PATH%/include/solaris - JDKLIB %JDK14PATH%/jre/lib/sparc:%JDK14PATH%/lib:%JDK14PATH%/jre/lib/sparc/native_threads:%JDK14PATH%/jre/plugin/sparc:%JDK14PATH%/jre/lib/sparc/motif21 - JDKLIBS -L%JDK14PATH%/jre/lib/sparc -L%JDK14PATH%/lib -L%JDK14PATH%/jre/lib/sparc/native_threads -L%JDK14PATH%/jre/plugin/sparc -L%JDK14PATH%/jre/lib/sparc/motif21 - JDKPATH %JDK14PATH%/bin - JDK_VERSION 142 - XCLASSPATH .:%JDK14PATH%/jre/lib/rt.jar - } - jdk14path:0 if X%JDK_PATH%X != XX - { - SOLAR_JDK14PATH %JDK_PATH% - } - jdk15 - { - JAVA_HOME %JDK15PATH% - JDKINC %JDK15PATH%/include:%JDK15PATH%/include/solaris - JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/solaris - JDKLIB %JDK15PATH%/jre/lib/sparc:%JDK15PATH%/lib:%JDK15PATH%/jre/lib/sparc/native_threads:%JDK15PATH%/jre/plugin/sparc:%JDK15PATH%/jre/lib/sparc/motif21 - JDKLIBS -L%JDK15PATH%/jre/lib/sparc -L%JDK15PATH%/lib -L%JDK15PATH%/jre/lib/sparc/native_threads -L%JDK15PATH%/jre/plugin/sparc -L%JDK15PATH%/jre/lib/sparc/motif21 - JDKPATH %JDK15PATH%/bin - JDK_VERSION 150 - XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar - } - jdk15path:0 if X%JDK_PATH%X != XX - { - SOLAR_JDK15PATH %JDK_PATH% - } - ojdk16 - { - JAVA_HOME %OJDK16PATH% - JDKINC %OJDK16PATH%/include:%OJDK16PATH%/include/solaris - JDKINCS -I%OJDK16PATH%/include -I%OJDK16PATH%/include/solaris - JDKLIB %OJDK16PATH%/jre/lib/sparc:%OJDK16PATH%/lib:%OJDK16PATH%/jre/lib/sparc/native_threads:%OJDK16PATH%/jre/plugin/sparc:%OJDK16PATH%/jre/lib/sparc/xawt - JDKLIBS -L%OJDK16PATH%/jre/lib/sparc -L%OJDK16PATH%/lib -L%OJDK16PATH%/jre/lib/sparc/native_threads -L%OJDK16PATH%/jre/plugin/sparc -L%OJDK16PATH%/jre/lib/sparc/xawt - JDKPATH %OJDK16PATH%/bin - JDK_VERSION 160 - XCLASSPATH .:%OJDK16PATH%/jre/lib/rt.jar - } - ojdk16path:0 if X%JDK_PATH%X != XX - { - SOLAR_OJDK16PATH %JDK_PATH% - } - pro - { - PROSWITCH -DPRODUCT - } - sourceroot:0 if X%SOURCE_ROOT%X != XX - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT% - SOURCE_ROOT_USED TRUE - } - sysbaseroot - { - SOLAR_SYSBASE_ROOT %SYSBASE_ROOT% - OOO_SYSBASE_SYS_RELEASE - } - } - extern - { - DIST_ROOT - ENV_ROOT - HOME - JDK_PATH - LM_LICENSE_FILE - LOCALINI - SOL_TMP - SOURCE_ROOT - SYSBASE_ROOT - USER - } - order common0 bs_sourceroot envroot:0 sourceroot:0 common1 distroot:0 jdk14path:0 jdk15path:0 ojdk16path:0 sysbaseroot cap cax compath common2 common:3 pro common jdk14 jdk15 ojdk16 - reset - { - CLASSPATH - } - script - { - csh - { - 400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 600: umask 002 - 800: rehash - 820: wrapfetch.sh - 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR - 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 - 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR - 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 - } - sh - { - 400: if [ $COPYALL ]; then - 410: $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 415: fi - 600: umask 002 - 800: hash -r - 820: wrapfetch.sh - 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then - 851: export SO_GEN_ERROR - 852: fi - 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then - 861: export SO_GEN_ERROR2 - 862: fi - 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then - 871: echo $SO_GEN_ERROR - 872: fi - 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then - 881: echo $SO_GEN_ERROR2 - 882: fi - } - } - switches - { - bs_sourceroot SOURCE_ROOT_TMP - bsclient - cap - cax - compath STAR_COMPATH - distroot - envroot - jdk14 - jdk14path - jdk15 - jdk15path - l10n L10N_framework - ojdk16 - ojdk16path - pro - sourceroot - sysbaseroot - } -} -unxsolu4 -{ - environment - { - bs_sourceroot - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT_USED TRUE - } - cap - { - COPYALL TRUE - COPY_PACKED TRUE - DEVROOT %SOL_TMP%$/r - PCLEAN_PATH %SOLARROOT%/etools - PERL %SOL_TMP%$/r$/bt_solaris_sparc$/bin$/perl - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - cax - { - COPYALL FALSE - DEVROOT %SOL_TMP%$/r - PCLEAN_PATH %SOL_TMP%$/r/etools - PERL %SOL_TMP%$/r$/bt_solaris_sparc$/bin$/perl - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - common - { - *build nice %PERL% %SOLARENV%/bin/build.pl %PROFULLSWITCH% - *build_client nice %PERL% %SOLARENV%/bin/build_client.pl - *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - *deliver %PERL% %SOLARENV%/bin/deliver.pl - *mkout %PERL% %SOLARENV%/bin/mkout.pl - *r: cd %SOLARROOT% - *s: cd %SOLARVERSION% - *zipdep %PERL% %SOLARENV%/bin/zipdep.pl - COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - DELIVER %PERL% %SOLARENV%/bin/deliver.pl - DMAKEROOT %SOLARENV%/inc/startup - FREETYPE_CFLAGS -I%SYSBASE%/usr/sfw/include -I%SYSBASE%/usr/sfw/include/freetype2 - FREETYPE_LIBS -L%SYSBASE%/usr/sfw/lib/sparcv9 -lfreetype - LIBXML_CFLAGS -I%SYSBASE%/usr/include/libxml2 - LIBXML_LIBS -L%SYSBASE%/usr/lib/sparcv9 -lxml2 -lpthread -lz -lm -lsocket -lnsl - LIBXSLT_CFLAGS -I%SYSBASE%/usr/include/libxml2 - LIBXSLT_LIBS -L%SYSBASE%/usr/lib/sparcv9 -lxslt -lxml2 -lpthread -lz -lm -lsocket -lnsl - MKOUT %PERL% %SOLARENV%/bin/mkout.pl - PATHEXTRA /usr/ccs/bin:/usr/bin:/bin:/usr/sbin:/etc:/usr/bin/X11:/opt/langtools/bin:/usr/dt/bin - SOLAREXTRAINC -I%SOLAR_STLPATH% -I%SYSBASE%/usr/include - SOLAREXTRALIB -L%COMPATH%$/lib -L../lib -L%SYSBASE%/usr/lib -L/lib -L/usr/lib -L/usr/dt/lib -L/usr/openwin/lib -L%SOLAR_STLLIBPATH% - SOLAR_JAVA TRUE - SYSTEM_FREETYPE YES - SYSTEM_LIBXML YES - SYSTEM_LIBXSLT YES - ZIPDEP %PERL% %SOLARENV%/bin/zipdep.pl - __cdpath %DRIVE_O%/%WORK_STAMP%/ooo%UPDMINOREXT% - ENABLE_GCONF TRUE -# ENABLE_GNOMEVFS TRUE - GNUMAKE gmake - SYSTEM_LIBRSVG YES - SYSTEM_LIBCROCO YES - SYSTEM_GDKPIXBUF YES - SYSTEM_GLIB YES - SYSTEM_GETTEXT YES - SYSTEM_PANGO YES - SYSTEM_LIBPNG YES - SYSTEM_LIBJPEG YES - SYSTEM_LIBGSF YES - } - common0 - { - SOLAR_ENV_ROOT /so/env - SOLAR_SOURCE_ROOT %DRIVE_O% - SOLAR_SYSBASE_ROOT /so/env/solaris_2.10_sparc - OOO_SYSBASE_SYS_RELEASE 5.10 - } - common1 - { - COMPATH /so/env/compilers/SUNWS12m1/sparc/SUNWspro - DEVROOT %SOLAR_ENV_ROOT% - PERL %SOLAR_ENV_ROOT%/bt_solaris_sparc/bin/perl - PKGFORMAT pkg - SHARED_SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv - SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLARENV %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT%/solenv - SOLARROOT %SOLAR_ENV_ROOT% - SOLARVER %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLARVERSION %SOLAR_SOURCE_ROOT%/%WORK_STAMP% - SOLAR_JDK15PATH %SOLAR_ENV_ROOT%/Solaris_JDK_1.5.0_15.sparc - SO_PACK %SOLAR_ENV_ROOT%/pack/%WORK_STAMP% - SRC_ROOT %SOLAR_SOURCE_ROOT%/%WORK_STAMP%/ooo%UPDMINOREXT% - USE_SYSTEM_STL YES - } - common2 - { - BUILD_TOOLS %SOLARROOT%/bt_solaris_sparc/%WORK_STAMP%/bin - COM C52 - COMEX 4 - COMMON_BUILD_TOOLS %SOLARROOT%$/btools - COMMON_ENV_TOOLS %SOLARROOT%$/etools - CPU U - CPUNAME SPARC - CVER C52 - ENV_TOOLS %SOLARROOT%/et_solaris_sparc/%WORK_STAMP%/bin - GUI UNX - GUIBASE unx - GVER VCL - INPATH unxsolu4%PROEXT% - JDK15PATH %SOLAR_JDK15PATH% - OS SOLARIS - OUTPATH unxsolu4 - SOLAR_STLLIBPATH %SOLARVERSION%$/unxsolu4%PROEXT%$/lib%UPDMINOREXT% - SOLAR_STLPATH %SOLARVERSION%$/unxsolu4%PROEXT%$/inc%UPDMINOREXT%$/stl - SYSBASE %SOLAR_SYSBASE_ROOT% - TEMP /var/tmp - TMP /var/tmp - } - common:3 IF %UPDATER% == YES - { - TEMP /tmp - TMP /tmp - } - compath - { - COMPATH %STAR_COMPATH% - } - distroot:0 if X%DIST_ROOT%X != XX - { - SHARED_SOLARVERSION %DIST_ROOT%/%WORK_STAMP% - SOLARVER %DIST_ROOT%/%WORK_STAMP% - SOLARVERSION %DIST_ROOT%/%WORK_STAMP% - } - envroot:0 if X%ENV_ROOT%X != XX - { - SOLAR_ENV_ROOT %ENV_ROOT% - } - jdk15 - { - JAVA_HOME %JDK15PATH% - JDKINC %JDK15PATH%/include:%JDK15PATH%/include/solaris - JDKINCS -I%JDK15PATH%/include -I%JDK15PATH%/include/solaris - JDKLIB %JDK15PATH%/jre/lib/sparcv9:%JDK15PATH%/lib:%JDK15PATH%/jre/lib/sparcv9/native_threads:%JDK15PATH%/jre/lib/sparcv9/server:%JDK15PATH%/jre/plugin/sparcv9:%JDK15PATH%/jre/lib/sparcv9/motif21 - JDKLIBS -L%JDK15PATH%/jre/lib/sparcv9 -L%JDK15PATH%/lib -L%JDK15PATH%/jre/lib/sparcv9/native_threads -L%JDK15PATH%/jre/lib/sparcv9/server -L%JDK15PATH%/jre/plugin/sparcv9 -L%JDK15PATH%/jre/lib/sparcv9/motif21 - JDKPATH %JDK15PATH%/bin/sparcv9 - JDK_VERSION 150 - XCLASSPATH .:%JDK15PATH%/jre/lib/rt.jar - } - jdk15path:0 if X%JDK_PATH%X != XX - { - SOLAR_JDK15PATH %JDK_PATH% - } - pro - { - PROSWITCH -DPRODUCT - } - sourceroot:0 if X%SOURCE_ROOT%X != XX - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT% - SOURCE_ROOT_USED TRUE - } - sysbaseroot - { - SOLAR_SYSBASE_ROOT %SYSBASE_ROOT% - OOO_SYSBASE_SYS_RELEASE - } - } - extern - { - DIST_ROOT - ENV_ROOT - HOME - JDK_PATH - LM_LICENSE_FILE - LOCALINI - SOL_TMP - SOURCE_ROOT - SYSBASE_ROOT - USER - } - order common0 bs_sourceroot envroot:0 sourceroot:0 common1 distroot:0 jdk15path:0 sysbaseroot cap cax compath common2 common:3 pro common jdk15 - reset - { - CLASSPATH - } - script - { - csh - { - 400: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/etools/lucopy.pl all $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 600: umask 002 - 800: rehash - 820: wrapfetch.sh - 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR - 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 - 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR - 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 - } - sh - { - 400: if [ $COPYALL ]; then - 410: $SOLAR_ENV_ROOT/etools/lucopy.pl all $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 415: fi - 600: umask 002 - 800: hash -r - 820: wrapfetch.sh - 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then - 851: export SO_GEN_ERROR - 852: fi - 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then - 861: export SO_GEN_ERROR2 - 862: fi - 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then - 871: echo $SO_GEN_ERROR - 872: fi - 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then - 881: echo $SO_GEN_ERROR2 - 882: fi - } - } - switches - { - bs_sourceroot SOURCE_ROOT_TMP - bsclient - cap - cax - compath STAR_COMPATH - distroot - envroot - jdk15 - jdk15path - l10n L10N_framework - pro - sourceroot - sysbaseroot - } -} -wntgcci1 -{ - environment - { - bs_sourceroot - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT_USED TRUE - } - cap - { - COMPATH %SOL_TMP%$/r$/MinGW - COPYALL TRUE - COPY_PACKED TRUE - DEVROOT %SOL_TMP%$/r - FSDK %SOL_TMP%$/r$/msvc7net$/FrameworkSDK - NSIS_PATH %SOL_TMP%$/r$/NSIS_242_unicode - PCLEAN_PATH %SOLARROOT%$/etw - PERL %SOL_TMP%$/r$/btw$/perl$/bin$/perl - PSDK %SOL_TMP%$/r$/MinGW$/w32api - SHARED_COM_SDK_PATH %SOL_TMP%$/r$/msvc7net$/Common7$/ide - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - cax - { - COMPATH %SOL_TMP%$/r$/MinGW - COPYALL FALSE - FSDK %SOL_TMP%$/r$/msvc7net$/FrameworkSDK - NSIS_PATH %SOL_TMP%$/r$/NSIS_242_unicode - PCLEAN_PATH %SOL_TMP%$/r$/etw - PERL %SOL_TMP%$/r$/btw$/perl$/bin$/perl - PSDK %SOL_TMP%$/r$/MinGW$/w32api - SHARED_COM_SDK_PATH %SOL_TMP%$/r$/msvc7net$/Common7$/ide - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - common - { - *build %PERL% %SOLARENV%$/bin$/build.pl %PROFULLSWITCH% - *build_client %PERL% %SOLARENV%$/bin$/build_client.pl - *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - *deliver %PERL% %SOLARENV%$/bin$/deliver.pl - *dmake *dmake %PROFULLSWITCH% - *mkout %PERL% %SOLARENV%$/bin$/mkout.pl - *o cd %SOLARENV%$/.. - *r cd %SOLARROOT% - *s cd %SOLARVERSION% - *zipdep %PERL% %SOLARENV%$/bin$/zipdep.pl - BIG_SVX - COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - DELIVER %PERL% %SOLARENV%$/bin$/deliver.pl - DMAKEROOT %SOLARENV%$/inc$/startup - ILIB .$:%UPDMINOREXT%$:%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%$:%PSDK%$/lib$:%FSDK%$/lib$:%COMPATH%$/lib$: - JDK13PATH %SOLAR_JDK13PATH% - JDK14PATH %SOLAR_JDK14PATH% - JDK15PATH %SOLAR_JDK15PATH% - LIB .$:%UPDMINOREXT%$:%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%$:%PSDK%$/lib$:%PSDK%$/lib$/x86$:%FSDK%$/lib$:%COMPATH%$/lib$:%SOLAR_STLLIBPATH% - MKOUT %PERL% %SOLARENV%$/bin$/mkout.pl - PATH %PATH%$:%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%$:%SHARED_COM_SDK_PATH%$:%PSDK%$/bin$:%FSDK%$/bin - PSDKINC -I%PSDK%$/include - SOLAREXTRAINC -I%COMPATH%$/lib$/gcc-lib$/mingw32$/3.2$/include -I%DSDK%$/include - SOLAR_JAVA TRUE - XCLASSPATH . - ZIPDEP %PERL% %SOLARENV%$/bin$/zipdep.pl - GNUMAKE make - SYSTEM_LIBRSVG YES - SYSTEM_LIBCROCO YES - SYSTEM_GDKPIXBUF YES - SYSTEM_GLIB YES - SYSTEM_GETTEXT YES - SYSTEM_PANGO YES - SYSTEM_LIBPNG YES - SYSTEM_LIBJPEG YES - SYSTEM_LIBGSF YES - } - common0 - { - SOLAR_ENV_ROOT r: - SOLAR_SOURCE_ROOT o: - } - common1 - { - COMPATH %SOLAR_ENV_ROOT%$/MinGW - # FSDK %SOLAR_ENV_ROOT%$/msvc7net$/FrameworkSDK - DEVROOT %SOLAR_ENV_ROOT% - NSIS_PATH %SOLAR_ENV_ROOT%$/NSIS_242_unicode - PERL %SOLAR_ENV_ROOT%$/btw$/perl$/bin$/perl - PKGFORMAT some_dummy - PSDK %SOLAR_ENV_ROOT%$/MinGW$/w32api - SHARED_COM_SDK_PATH %SOLAR_ENV_ROOT%$/msvc7net$/Common7$/ide - SHARED_SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% - SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOLAR_ENV_ROOT% - SOLARVER %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% - SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% - SO_PACK %SOLAR_ENV_ROOT%$/pack$/%WORK_STAMP% - SRC_ROOT %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT% - } - common2 - { - ENABLE_GRAPHITE TRUE - BUILD_TOOLS %SOLARROOT%$/btw$/%WORK_STAMP% - CALL_CDECL TRUE - CDPATHx %CDPATH%$:..$:..$/..$:..$/..$/..$:..$/source$:..$/..$/source$:o:$/%WORK_STAMP%$/ooo%UPDMINOREXT% - COM GCC - COMMON_BUILD_TOOLS %SOLARROOT%$/btools - COMMON_ENV_TOOLS %SOLARROOT%$/etools - COMP_ENV wntgcci1 - CPU I - CPUNAME INTEL - CVER M1300 - DYNAMIC_CRT TRUE - ENV_TOOLS %SOLARROOT%$/etw$/%WORK_STAMP% - GUI WNT - GUIBASE WIN - GVER NT351 - INPATH wntgcci1%PROEXT% - OS WNT - OUTPATH wntgcci1 - SET_EXEPTIONS TRUE - SOLAR_JDK13PATH %SOLARROOT%$/jdk1.3 - SOLAR_JDK14PATH %SOLARROOT%$/j2sdk1.4.2_11 - SOLAR_JDK15PATH %SOLARROOT%$/jdk1.5.0.06 - SOLAR_STLPATH %SOLARVERSION%$/wntgcci1%PROEXT%$/inc%UPDMINOREXT%$/stl - SORT sort -T %TMP% - use_shl_versions TRUE - } - compath - { - COMPATH %STAR_COMPATH% - } - distroot:0 if X%DIST_ROOT%X != XX - { - SHARED_SOLARVERSION %DIST_ROOT%$/%WORK_STAMP% - SOLARVER %DIST_ROOT%$/%WORK_STAMP% - SOLARVERSION %DIST_ROOT%$/%WORK_STAMP% - } - envroot:0 IF X%ENV_ROOT%X != XX - { - SOLAR_ENV_ROOT %ENV_ROOT% - } - jdk14 - { - HOMEDRIVE %DEVROOT% - HOMEPATH $/jdk141 - JAVAHOME %JDK14PATH% - JAVA_HOME %JDK14PATH% - JDKINC %JDK14PATH%$/include$/win32$:%JDK14PATH%$/include - JDKINCS -I%JDK14PATH%$/include -I%JDK14PATH%$/include$/win32 - JDKLIB -L%JDK14PATH%$/lib - JDKLIBS -L%JDK14PATH%$/lib - JDKPATH %JDK14PATH%$/bin - JDK_VERSION 142 - JREPATH %JDK14PATH%$/jre$/bin$/client - XCLASSPATH .$:%JDK14PATH%$/jre$/lib$/rt.jar - } - jdk14path:0 if X%JDK_PATH%X != XX - { - SOLAR_JDK14PATH %JDK_PATH% - } - jdk15 - { - HOMEDRIVE %DEVROOT% - HOMEPATH $/jdk151 - JAVAHOME %JDK15PATH% - JAVA_HOME %JDK15PATH% - JDKINC %JDK15PATH%$/include$/win32$:%JDK15PATH%$/include - JDKINCS -I%JDK15PATH%$/include -I%JDK15PATH%$/include$/win32 - JDKLIB -L%JDK15PATH%$/lib - JDKLIBS -L%JDK15PATH%$/lib - JDKPATH %JDK15PATH%$/bin - JDK_VERSION 150 - JREPATH %JDK15PATH%$/jre$/bin$/client - XCLASSPATH .$:%JDK15PATH%$/jre$/lib$/rt.jar - } - jdk15path:0 if X%JDK_PATH%X != XX - { - SOLAR_JDK15PATH %JDK_PATH% - } - psdk - { - PSDK %STAR_PSDK% - } - sourceroot:0 if X%SOURCE_ROOT%X != XX - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT% - SOURCE_ROOT_USED TRUE - } - } - extern - { - COMSPEC - DIST_ROOT - ENV_ROOT - JDK_PATH - LOCALINI - SOL_TMP - SOURCE_ROOT - } - order common0 bs_sourceroot envroot:0 sourceroot:0 common1 distroot:0 cap cax psdk compath common2 jdk14path:0 jdk15path:0 common jdk14 jdk15 - reset - { - COPYALL - NSIS_PATH - SOLAR_ENV_ROOT - WST - } - script - { - csh - { - 150: setenv MYENV_PATH $PATH - 160: setenv PATH $SSX_PATH - 200: if ( ${?COPYALL} ) $SOLAR_ENV_ROOT/btw/perl/bin/perl $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 260: setenv PATH $MYENV_PATH - 270: unsetenv MYENV_PATH - 850: if ( "$?SO_GEN_ERROR" == 0 ) setenv SO_GEN_ERROR - 851: if ( "$?SO_GEN_ERROR2" == 0 ) setenv SO_GEN_ERROR2 - 900: if ( "$?SO_GEN_ERROR" == 1 ) echo $SO_GEN_ERROR - 901: if ( "$?SO_GEN_ERROR2" == 1 ) echo $SO_GEN_ERROR2 - } - sh - { - 150: export MYENV_PATH=$PATH - 160: export PATH=$SSX_PATH - 260: export PATH=$MYENV_PATH - 270: unset MYENV_PATH - 400: if [ $COPYALL ]; then - 410: $SOLAR_ENV_ROOT/btw/perl/bin/perl $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 415: fi - 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then - 851: export SO_GEN_ERROR - 852: fi - 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then - 861: export SO_GEN_ERROR - 862: fi - 870: if [ "0$SO_GEN_ERROR" -eq 0 ]; then - 871: echo $SO_GEN_ERROR - 872: fi - 880: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then - 881: echo $SO_GEN_ERROR - 882: fi - } - } - switches - { - bs_sourceroot SOURCE_ROOT_TMP - bsclient - cap - cax - compath STAR_COMPATH - distroot - envroot - jdk14 - jdk14path - jdk15 - jdk15path - l10n L10N_framework - pro - psdk STAR_PSDK - sourceroot - } -} -wntmsci11 -{ - environment - { - bs_sourceroot - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT %SOURCE_ROOT_TMP% - SOURCE_ROOT_USED TRUE - } - cap - { - COMPATH %SOL_TMP%$/r$/msvc8p - COMPROOT %SOL_TMP%$/r$/msvc8p - COPYALL TRUE - COPY_PACKED TRUE - DEVROOT %SOL_TMP%$/r - DSDK %SOL_TMP%$/r$/msvc8p$/DirectXSDK - FSDK %SOL_TMP%$/r$/msvc8p$/Sdk$/v2.0 - PCLEAN_PATH %SOLARROOT%$/etw - PERL %SOL_TMP%$/r$/btw$/perl$/bin$/perl - PSDK %SOL_TMP%$/r$/msvc8p$/PlatformSDK - SHARED_COM_SDK_PATH %SOL_TMP%$/r$/msvc8p$/Common7$/ide - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - cax - { - COMPATH %SOL_TMP%$/r$/msvc8p - COMPROOT %SOL_TMP%$/r$/msvc8p - COPYALL FALSE - DSDK %COMPATH%$/DirectXSDK - FSDK %COMPATH%$/Sdk$/v2.0 - PCLEAN_PATH %SOL_TMP%$/r$/etw - PERL %SOL_TMP%$/r$/btw$/perl$/bin$/perl - PSDK %COMPATH%$/PlatformSDK - SHARED_COM_SDK_PATH %COMPATH%$/Common7$/ide - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% - } - common - { - *build %PERL% %SOLARENV%$/bin$/build.pl %PROFULLSWITCH% - *build_client %PERL% %SOLARENV%$/bin$/build_client.pl - *copyprj %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - *deliver %PERL% %SOLARENV%$/bin$/deliver.pl - *mkout %PERL% %SOLARENV%$/bin$/mkout.pl - *mwscommit %PERL% %COMMON_ENV_TOOLS%/mwscommit.pl - *o cdd %SOLARENV%$/.. - *r cdd %SOLARROOT% - *s cdd %SOLARVERSION% - *zipdep %PERL% %SOLARENV%$/bin$/zipdep.pl - BIG_SVX - COPYPRJ %PERL% %COMMON_ENV_TOOLS%/copyprj.pl - DELIVER %PERL% %SOLARENV%$/bin$/deliver.pl - DMAKEROOT %SOLARENV%$/inc$/startup - ILIB .$:%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%$:%PSDK%$/vc$/lib$:%PSDK%$/lib$:%FSDK%$/lib$:%DSDK%$/lib$/x86 - JDK13PATH %SOLAR_JDK13PATH% - JDK14PATH %SOLAR_JDK14PATH% - JDK15PATH %SOLAR_JDK15PATH% - LIB .$:%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%$:%PSDK%$/vc$/lib$:%PSDK%$/lib$:%FSDK%$/lib$:%DSDK%$/lib$/x86$:%SOLAR_STLLIBPATH% - MKOUT %PERL% %SOLARENV%$/bin$/mkout.pl - MWSCOMMIT %PERL% %COMMON_ENV_TOOLS%/mwscommit.pl - PATH %PATH%$:%SHARED_COM_SDK_PATH%$:%PSDK%$/vc$/bin$:%PSDK%$/bin$:%FSDK%$/bin$:%DSDK%$/bin$/Utilities$/bin$/x86$:%PACKMS% - PROF_EDITION TRUE - PSDKINC -I%PSDK%$/vc$/include -I%PSDK%$/include -I%COMPATH%$/PlatformSDK_VC8$/include - SOLAREXTRAINC -I%DSDK%$/include - SOLAR_JAVA TRUE - TRUSTED_MANIFEST_LOCATION %SOLARENV%$/inc - VISTA_MANIFEST TRUE - WINDOWS_VISTA_PSDK TRUE - XCLASSPATH . - ZIPDEP %PERL% %SOLARENV%$/bin$/zipdep.pl - SYSTEM_LIBRSVG YES - SYSTEM_LIBCROCO YES - SYSTEM_GDKPIXBUF YES - SYSTEM_GLIB YES - SYSTEM_GETTEXT YES - SYSTEM_PANGO YES - SYSTEM_LIBPNG YES - SYSTEM_LIBJPEG YES - SYSTEM_LIBGSF YES - } - common0 - { - BS_ROOT n: - SOLAR_ENV_ROOT r: - SOLAR_SOURCE_ROOT o: - } - common1 - { - COMPATH %SOLAR_ENV_ROOT%$/msvc8p - COMPROOT %SOLAR_ENV_ROOT%$/msvc8p - DEVROOT %SOLAR_ENV_ROOT% - DSDK %SOLAR_ENV_ROOT%$/msvc8p$/DirectXSDK - FSDK %SOLAR_ENV_ROOT%$/msvc8p$/Sdk$/v2.0 - PERL %SOLAR_ENV_ROOT%$/btw$/perl$/bin$/perl - PKGFORMAT msi - PSDK %SOLAR_ENV_ROOT%$/msvc8p$/PlatformSDK - SHARED_COM_SDK_PATH %SOLAR_ENV_ROOT%$/msvc8p$/Common7$/ide - SHARED_SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% - SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOLAR_ENV_ROOT% - SOLARVER %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% - SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% - SO_PACK %SOLAR_ENV_ROOT%$/pack$/%WORK_STAMP% - SRC_ROOT %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT% - } - common2 - { - ENABLE_GRAPHITE TRUE - BUILD_TOOLS %SOLARROOT%$/btw$/%WORK_STAMP% - CALL_CDECL TRUE - CDPATHx %CDPATH%$:..$:..$/..$:..$/..$/..$:..$/source$:..$/..$/source$:o:$/%WORK_STAMP%$/ooo%UPDMINOREXT% - COM MSC - COMEX 11 - COMMON_BUILD_TOOLS %SOLARROOT%$/btools - COMMON_ENV_TOOLS %SOLARROOT%$/etools - COMP_ENV wntmsci11 - CPU I - CPUNAME INTEL - CVER M1400 - DYNAMIC_CRT TRUE - ENV_TOOLS %SOLARROOT%$/etw$/%WORK_STAMP% - GUI WNT - GUIBASE WIN - GVER NT351 - INPATH wntmsci11%PROEXT% - OS WNT - OUTPATH wntmsci11 - PACKMS %SO_PACK%$/wntmsci11$/MS - SET_EXEPTIONS TRUE - SHIPDRIVE %BS_ROOT%$/ship$/install - SOLAR_JDK13PATH %SOLARROOT%$/jdk1.3 - SOLAR_JDK14PATH %SOLARROOT%$/j2sdk1.4.2_11 - SOLAR_JDK15PATH %SOLARROOT%$/jdk1.5.0.06 - SOLAR_STLPATH %SOLARVERSION%$/wntmsci11%PROEXT%$/inc%UPDMINOREXT%$/stl - SORT sort -T %TMP% - use_shl_versions TRUE - } - compath - { - COMPATH %STAR_COMPATH% - } - distroot:0 if X%DIST_ROOT%X != XX - { - SHARED_SOLARVERSION %DIST_ROOT%$/%WORK_STAMP% - SOLARVER %DIST_ROOT%$/%WORK_STAMP% - SOLARVERSION %DIST_ROOT%$/%WORK_STAMP% - } - envroot:0 IF X%ENV_ROOT%X != XX - { - SOLAR_ENV_ROOT %ENV_ROOT% - } - jdk14 - { - HOMEDRIVE %DEVROOT% - HOMEPATH $/jdk141 - JAVAHOME %JDK14PATH% - JAVA_HOME %JDK14PATH% - JDKINC %JDK14PATH%$/include$/win32$:%JDK14PATH%$/include - JDKINCS -I%JDK14PATH%$/include -I%JDK14PATH%$/include$/win32 - JDKLIB %JDK14PATH%$/lib - JDKLIBS %JDK14PATH%$/lib - JDKPATH %JDK14PATH%$/bin - JDK_VERSION 142 - JREPATH %JDK14PATH%$/jre$/bin$/client - XCLASSPATH .$:%JDK14PATH%$/jre$/lib$/rt.jar - } - jdk14path:0 if X%JDK_PATH%X != XX - { - SOLAR_JDK14PATH %JDK_PATH% - } - jdk15 - { - HOMEDRIVE %DEVROOT% - HOMEPATH $/jdk151 - JAVAHOME %JDK15PATH% - JAVA_HOME %JDK15PATH% - JDKINC %JDK15PATH%$/include$/win32$:%JDK15PATH%$/include - JDKINCS -I%JDK15PATH%$/include -I%JDK15PATH%$/include$/win32 - JDKLIB %JDK15PATH%$/lib - JDKLIBS %JDK15PATH%$/lib - JDKPATH %JDK15PATH%$/bin - JDK_VERSION 150 - JREPATH %JDK15PATH%$/jre$/bin$/client - XCLASSPATH .$:%JDK15PATH%$/jre$/lib$/rt.jar - } - jdk15path:0 if X%JDK_PATH%X != XX - { - SOLAR_JDK15PATH %JDK_PATH% - } - psdk - { - PSDK %STAR_PSDK% - } - sourceroot:0 if X%SOURCE_ROOT%X != XX - { - SOLAR_SOURCE_ROOT %SOURCE_ROOT% - SOURCE_ROOT_USED TRUE - } - } - extern - { - COMSPEC - DIST_ROOT - ENV_ROOT - JDK_PATH - LOCALINI - SOL_TMP - SOURCE_ROOT - } - order common0 bs_sourceroot envroot:0 sourceroot:0 common1 distroot:0 cap cax psdk compath common2 jdk14path:0 jdk15path:0 common jdk14 jdk15 - reset - { - COPYALL - SOLAR_ENV_ROOT - WST - } - script - { - post - { - 150: set MYENV_PATH=%PATH - 160: set PATH=%SSX_PATH - 200: if "%COPYALL%"=="TRUE" %SOLAR_ENV_ROOT%\btw\perl\bin\perl %SOLAR_ENV_ROOT%\etools\lucopy.pl -all %BTARGET% $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 260: set PATH=%MYENV_PATH - 270: unset MYENV_PATH - 400: if "%SO_GEN_ERROR%" NE "" @echo %SO_GEN_ERROR% - 401: if "%SO_GEN_ERROR2%" NE "" echo %SO_GEN_ERROR2% - } - } - switches - { - bs_sourceroot SOURCE_ROOT_TMP - bsclient - cap - cax - compath STAR_COMPATH - distroot - envroot - jdk14 - jdk14path - jdk15 - jdk15path - l10n L10N_framework - pro - psdk STAR_PSDK - sourceroot - } -} -wntmsci12 -{ - environment - { - bs_sourceroot - { - SOLAR_SOURCE_ROOT $dp(%SOURCE_ROOT_TMP%) - SOURCE_ROOT $dp(%SOURCE_ROOT_TMP%) - SOURCE_ROOT_USED TRUE - } - cap - { - BUILD_TOOLS %SOL_TMP%$/btw$/%BTOOLDIR% - COMPATH %SOL_TMP%$/r$/msvc9p - COMPROOT %SOL_TMP%$/r$/msvc9p - COPYALL TRUE - COPY_PACKED TRUE - DEVROOT %SOL_TMP%$/r - DSDK %SOL_TMP%$/r$/msvc9p$/DirectXSDK - ENV_TOOLS %SOL_TMP%$/r$/etw$/%WORK_STAMP% - FSDK %SOL_TMP%$/r$/msvc9p$/Sdk$/v3.5 - F20SDK %SOL_TMP%$/r$/msvc9p$/Sdk$/v2.0 - NSIS_PATH %SOL_TMP%$/r$/NSIS_242_unicode - PCLEAN_PATH %SOLARROOT%$/etw - PERL %SOL_TMP%$/r$/%PERLDIR% - PSDK %SOL_TMP%$/r$/msvc9p$/PlatformSDK$/v6.1 - SHARED_COM_SDK_PATH %SOL_TMP%$/r$/msvc9p$/Common7$/IDE - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% -# TOUCH %SOL_TMP%$/r$/btw$/%BTOOLDIR%$/touch.exe - - } - cax - { - BUILD_TOOLS %SOL_TMP%$/r$/btw$/%BTOOLDIR% - COMPATH %SOL_TMP%$/r$/msvc9p - COMPROOT %SOL_TMP%$/r$/msvc9p - COPYALL FALSE - DSDK %COMPATH%$/DirectXSDK - ENV_TOOLS %SOL_TMP%$/r$/etw$/%WORK_STAMP% - FSDK %COMPATH%$/Sdk$/v3.5 - F20SDK %SOL_TMP%$/r$/msvc9p$/Sdk$/v2.0 - NSIS_PATH %SOL_TMP%$/r$/NSIS_242_unicode - PCLEAN_PATH %SOL_TMP%$/r$/etw - PERL %SOL_TMP%$/r$/%PERLDIR% - PSDK %COMPATH%$/PlatformSDK$/v6.1 - SHARED_COM_SDK_PATH %COMPATH%$/Common7$/IDE - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% -# TOUCH %SOL_TMP%$/r$/btw$/%BTOOLDIR%$/touch.exe - } - common - { - *build %PERL% %SOLARENV%$/bin$/build.pl %PROFULLSWITCH% - *build_client %PERL% %SOLARENV%$/bin$/build_client.pl - *copyprj %PERL% %COMMON_ENV_TOOLS%$/copyprj.pl - *deliver %PERL% %SOLARENV%$/bin$/deliver.pl - *mkout %PERL% %SOLARENV%$/bin$/mkout.pl - *mwscommit %PERL% %COMMON_ENV_TOOLS%$/mwscommit.pl - *o cd %SOLARENV%$/.. - *r cd %SOLARROOT% - *s cd %SOLARVERSION% - *zipdep %PERL% %SOLARENV%$/bin$/zipdep.pl - *z_ooo %PERL% %SOLARENV%$/bin$/z_ooo.pl - BIG_SVX - COPYPRJ %PERL% %COMMON_ENV_TOOLS%$/copyprj.pl - CXX_X64_BINARY %COMPROOT%$/bin$/x86_amd64$/cl.exe - DELIVER %PERL% %SOLARENV%$/bin$/deliver.pl - DMAKEROOT %SOLARENV%$/inc$/startup - ENABLE_PCH TRUE - ILIB .;%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%;%COMPATH%$/lib;%PSDK%$/lib;%DSDK%$/lib$/x86 - JDK13PATH %SOLAR_JDK13PATH% - JDK14PATH %SOLAR_JDK14PATH% - JDK15PATH %SOLAR_JDK15PATH% - LIB .;%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%;%COMPATH%$/lib;%PSDK%$/lib;%DSDK%$/lib$/x86;%SOLAR_STLLIBPATH% - LIBMGR_X64_BINARY %COMPROOT%$/bin$/x86_amd64$/lib.exe - LINK_X64_BINARY %COMPROOT%$/bin$/x86_amd64$/link.exe - MKOUT %PERL% %SOLARENV%$/bin$/mkout.pl - MWSCOMMIT %PERL% %COMMON_ENV_TOOLS%$/mwscommit.pl - OJDK16PATH %SOLAR_OJDK16PATH% - PATH $cp(%PSDK%$/Bin)$:%PATH%$:$cp(%SHARED_COM_SDK_PATH%)$:$cp(%COMPATH%$/bin)$:$cp(%FSDK%)$:$cp(%F20SDK%)$/bin$:$cp(%DSDK%$/Utilities$/bin$/x86)$:$cp(%PACKMS%) - PROF_EDITION TRUE - PSDKINC -I%PSDK%$/include - SOLAREXTRAINC -I%DSDK%$/include - SOLAR_JAVA TRUE - TRUSTED_MANIFEST_LOCATION %SOLARENV%$/inc - USE_DIRECTX5 TRUE - WINDOWS_VISTA_PSDK TRUE - SYSBASE TRUE - WITH_VC_REDIST TRUE - XCLASSPATH . - ZIPDEP %PERL% %SOLARENV%$/bin$/zipdep.pl - BUILD_X64 TRUE - CHECK_LUCENCE_INDEXER_OUTPUT TRUE - GNUCOPY cp - GNUMAKE make - SYSTEM_LIBRSVG NO - SYSTEM_LIBCROCO NO - SYSTEM_GDKPIXBUF NO - SYSTEM_GLIB NO - SYSTEM_GETTEXT NO - SYSTEM_PANGO NO - SYSTEM_LIBPNG NO - SYSTEM_LIBJPEG NO - SYSTEM_LIBGSF NO - } - common0 - { - BS_ROOT n: - SOLAR_ENV_ROOT r: - SOLAR_SOURCE_ROOT o: - BTOOLDIR %WORK_STAMP%$/cygtools - PERLDIR btw$/%WORK_STAMP%$/cygtools$/perl - } - common02 - { - PERL perl - } - common1 - { - COMPATH %SOLAR_ENV_ROOT%$/msvc9p - COMPROOT %SOLAR_ENV_ROOT%$/msvc9p - DEVROOT %SOLAR_ENV_ROOT% - DSDK %SOLAR_ENV_ROOT%$/msvc9p$/DirectXSDK - FSDK %SOLAR_ENV_ROOT%$/msvc9p$/Sdk$/v3.5 - F20SDK %SOLAR_ENV_ROOT%$/msvc9p$/Sdk$/v2.0 - NSIS_PATH %SOLAR_ENV_ROOT%$/NSIS_242_unicode - PERL %SOLAR_ENV_ROOT%$/%PERLDIR% - PKGFORMAT msi - PSDK %SOLAR_ENV_ROOT%$/msvc9p$/PlatformSDK$/v6.1 - SHARED_COM_SDK_PATH %SOLAR_ENV_ROOT%$/msvc9p$/Common7$/ide - SHARED_SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% - SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOLAR_ENV_ROOT% - SOLARVER %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% - SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% - SO_PACK %SOLAR_ENV_ROOT%$/pack$/%WORK_STAMP% - SRC_ROOT %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT% -# TEMP $dp(%TEMP%) -# TMP $dp(%TMP%) - } - common2 - { - ENABLE_GRAPHITE TRUE - BUILD_PIXMAN TRUE - BUILD_TOOLS %SOLARROOT%$/btw$/%BTOOLDIR% - CALL_CDECL TRUE - CDPATHx %CDPATH%$:..$:..$/..$:..$/..$/..$:..$/source$:..$/..$/source$:$cp(%SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%) - COM MSC - COMEX 12 - COMMON_BUILD_TOOLS $cp(%SOLARROOT%$/btools) - COMMON_ENV_TOOLS %SOLARROOT%$/etools - COMP_ENV wntmsci12 - CPU I - CPUNAME INTEL - CVER M1500 - DYNAMIC_CRT TRUE - ENABLE_CAIRO TRUE - ENV_TOOLS %SOLARROOT%$/etw$/%WORK_STAMP% - GUI WNT - GUIBASE WIN - GVER NT351 - INPATH wntmsci12%PROEXT% - LIBMYSQL_PATH %SOLARROOT%$/mysql-connector-c-6.0.2$/wntmsci12 - MOZILLABUILD %SOLARROOT%/mozilla-build-1.3 - OS WNT - OUTPATH wntmsci12 - PACKMS %SO_PACK%$/wntmsci12$/MS - SET_EXEPTIONS TRUE - SHIPDRIVE %SOLAR_ENV_ROOT%$/ship$/install - SOLAR_JDK13PATH %SOLARROOT%$/jdk1.3 - SOLAR_JDK14PATH %SOLARROOT%$/j2sdk1.4.2_11 - SOLAR_JDK15PATH %SOLARROOT%$/jdk1.5.0.06 - SOLAR_OJDK16PATH %SOLARROOT%$/openjdk-6-b08-windows-i586 - SOLAR_STLPATH %SOLARVERSION%$/wntmsci12%PROEXT%$/inc%UPDMINOREXT%$/stl - SORT sort -T %TMP% -# TOUCH %SOLARROOT%$/btw$/%BTOOLDIR%$/touch.exe - use_shl_versions TRUE - } - common:3 IF %UPDATER% == YES - { - SHIPDRIVE %BS_ROOT%$/ship$/install - } - compath - { - COMPATH $dp(%STAR_COMPATH%) - } - distroot:0 if X%DIST_ROOT%X != XX - { - SHARED_SOLARVERSION $dp(%DIST_ROOT%$/%WORK_STAMP%) - SOLARVER $dp(%DIST_ROOT%$/%WORK_STAMP%) - SOLARVERSION $dp(%DIST_ROOT%$/%WORK_STAMP%) - } - envroot:0 IF X%ENV_ROOT%X != XX - { - SOLAR_ENV_ROOT $dp(%ENV_ROOT%) - } - jdk14 - { -# HOMEDRIVE %DEVROOT% -# HOMEPATH $/jdk141 - JAVAHOME %JDK14PATH% - JAVA_HOME %JDK14PATH% - JDKINC %JDK14PATH%$/include$/win32;%JDK14PATH%$/include - JDKINCS -I%JDK14PATH%$/include -I%JDK14PATH%$/include$/win32 - JDKLIB %JDK14PATH%$/lib - JDKLIBS %JDK14PATH%$/lib - JDKPATH %JDK14PATH%$/bin - JDK_VERSION 142 - JREPATH %JDK14PATH%$/jre$/bin$/client - XCLASSPATH .;%JDK14PATH%$/jre$/lib$/rt.jar - } - jdk14path:0 if X%JDK_PATH%X != XX - { - SOLAR_JDK14PATH $dp(%JDK_PATH%) - } - jdk15 - { -# HOMEDRIVE %DEVROOT% -# HOMEPATH $/jdk151 - JAVAHOME %JDK15PATH% - JAVA_HOME %JDK15PATH% - JDKINC %JDK15PATH%$/include$/win32;%JDK15PATH%$/include - JDKINCS -I%JDK15PATH%$/include -I%JDK15PATH%$/include$/win32 - JDKLIB %JDK15PATH%$/lib - JDKLIBS %JDK15PATH%$/lib - JDKPATH %JDK15PATH%$/bin - JDK_VERSION 150 - JREPATH %JDK15PATH%$/jre$/bin$/client - XCLASSPATH .;%JDK15PATH%$/jre$/lib$/rt.jar - } - jdk15path:0 if X%JDK_PATH%X != XX - { - SOLAR_JDK15PATH $dp(%JDK_PATH%) - } - ojdk16 - { -# HOMEDRIVE %DEVROOT% -# HOMEPATH $/openjdk-6-b08-windows-i586 - JAVA_HOME %OJDK16PATH% - JDKINC %OJDK16PATH%$/include$/win32;%OJDK16PATH%$/include - JDKINCS -I%OJDK16PATH%$/include -I%OJDK16PATH%$/include$/win32 - JDKLIB %OJDK16PATH%$/lib - JDKLIBS %OJDK16PATH%$/lib - JDKPATH %OJDK16PATH%$/bin - JDK_VERSION 160 - JREPATH %OJDK16PATH%$/jre$/bin$/client - XCLASSPATH .;%OJDK16PATH%$/jre$/lib$/rt.jar - } - ojdk16path:0 if X%JDK_PATH%X != XX - { - SOLAR_OJDK16PATH $dp(%JDK_PATH%) - } - pro - { - RES_ENUS TRUE - } - psdk - { - PSDK $dp(%STAR_PSDK%) - } - sourceroot:0 if X%SOURCE_ROOT%X != XX - { - SOLAR_SOURCE_ROOT $dp(%SOURCE_ROOT%) - SOURCE_ROOT_USED TRUE - } - tmp - { - SOL_TMP $dp(%SOL_TMP_DIR%) - } - } - extern - { - COMSPEC - DIST_ROOT - ENV_ROOT - JDK_PATH - LOCALINI - OSTYPE - $dp(SOL_TMP) - $dp(SOURCE_ROOT) - $dp(TMP) - $dp(TEMP) - } - order common0 bs_sourceroot tmp envroot:0 sourceroot:0 pro common1 distroot:0 cap cax common02 psdk compath common2 common:3 jdk14path:0 jdk15path:0 ojdk16path:0 common jdk14 jdk15 ojdk16 - reset - { - COPYALL - CXX_X64_BINARY - DB2IMP - GCRINC - GCRLIB - GCRPATH - LIBMGR_X64_BINARY - LINK_X64_BINARY - NSIS_PATH - OLD_CHAOS - PERLDIR - SOLAR_ENV_ROOT - TFDEF - TFDIR - WST - } - script - { - sh - { - 400: if [ $COPYALL ]; then - 410: perl $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 415: fi - 600: umask 002 - 800: hash -r - 820: wrapfetch.sh - 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then - 851: export SO_GEN_ERROR - 852: fi - 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then - 861: export SO_GEN_ERROR2 - 862: fi - 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then - 871: echo $SO_GEN_ERROR - 872: fi - 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then - 881: echo $SO_GEN_ERROR2 - 882: fi - } - } - switches - { - bs_sourceroot SOURCE_ROOT_TMP - bsclient - cap - cax - compath STAR_COMPATH - distroot - envroot - jdk14 - jdk14path - jdk15 - jdk15path - l10n L10N_framework - ojdk16 - ojdk16path - pro - psdk STAR_PSDK - sourceroot - tmp SOL_TMP_DIR - } -} -wntmsci13 -{ - environment - { - bs_sourceroot - { - SOLAR_SOURCE_ROOT $dp(%SOURCE_ROOT_TMP%) - SOURCE_ROOT $dp(%SOURCE_ROOT_TMP%) - SOURCE_ROOT_USED TRUE - } - cap - { - BUILD_TOOLS %SOL_TMP%$/r$/btw$/%BTOOLDIR% - COMPATH %SOL_TMP%$/r$/msvc9p - COMPROOT %SOL_TMP%$/r$/msvc9p - COPYALL TRUE - COPY_PACKED TRUE - DEVROOT %SOL_TMP%$/r - DSDK %SOL_TMP%$/r$/msvc9p$/DirectXSDK - ENV_TOOLS %SOL_TMP%$/r$/etw$/%WORK_STAMP% - FSDK %SOL_TMP%$/r$/msvc9p$/Sdk$/v3.5 - F20SDK %SOL_TMP%$/r$/msvc9p$/Sdk$/v2.0 - NSIS_PATH %SOL_TMP%$/r$/NSIS_242_unicode - PCLEAN_PATH %SOLARROOT%$/etw - PERL %SOL_TMP%$/r$/%PERLDIR% - PSDK %SOL_TMP%$/r$/msvc9p$/PlatformSDK$/v6.1 - SHARED_COM_SDK_PATH %SOL_TMP%$/r$/msvc9p$/Common7$/IDE - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% -# TOUCH %SOL_TMP%$/r$/btw$/%BTOOLDIR%$/touch.exe - - } - cax - { - BUILD_TOOLS %SOL_TMP%$/r$/btw$/%BTOOLDIR% - COMPATH %SOL_TMP%$/r$/msvc9p - COMPROOT %SOL_TMP%$/r$/msvc9p - COPYALL FALSE - DSDK %COMPATH%$/DirectXSDK - ENV_TOOLS %SOL_TMP%$/r$/etw$/%WORK_STAMP% - FSDK %COMPATH%$/Sdk$/v3.5 - F20SDK %SOL_TMP%$/r$/msvc9p$/Sdk$/v2.0 - NSIS_PATH %SOL_TMP%$/r$/NSIS_242_unicode - PCLEAN_PATH %SOL_TMP%$/r$/etw - PERL %SOL_TMP%$/r$/%PERLDIR% - PSDK %COMPATH%$/PlatformSDK$/v6.1 - SHARED_COM_SDK_PATH %COMPATH%$/Common7$/IDE - SOLARENV %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOL_TMP%$/r - SOLARVER %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SOLARVERSION %SOL_TMP%$/o%CWS_WORK_STAMP_EXT%$/%WORK_STAMP% - SO_PACK %SOL_TMP%$/r$/pack$/%WORK_STAMP% -# TOUCH %SOL_TMP%$/r$/btw$/%BTOOLDIR%$/touch.exe - } - common - { - *build %PERL% %SOLARENV%$/bin$/build.pl %PROFULLSWITCH% - *build_client %PERL% %SOLARENV%$/bin$/build_client.pl - *copyprj %PERL% %COMMON_ENV_TOOLS%$/copyprj.pl - *deliver %PERL% %SOLARENV%$/bin$/deliver.pl - *mkout %PERL% %SOLARENV%$/bin$/mkout.pl - *mwscommit %PERL% %COMMON_ENV_TOOLS%$/mwscommit.pl - *o cd %SOLARENV%$/.. - *r cd %SOLARROOT% - *s cd %SOLARVERSION% - *zipdep %PERL% %SOLARENV%$/bin$/zipdep.pl - *z_ooo %PERL% %SOLARENV%$/bin$/z_ooo.pl - BIG_SVX - COPYPRJ %PERL% %COMMON_ENV_TOOLS%$/copyprj.pl - CXX_X64_BINARY %COMPROOT%$/bin$/x86_amd64$/cl.exe - DELIVER %PERL% %SOLARENV%$/bin$/deliver.pl - DMAKEROOT %SOLARENV%$/inc$/startup - ENABLE_PCH TRUE - ILIB .;%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%;%COMPATH%$/lib;%PSDK%$/lib;%DSDK%$/lib$/x86 - JDK13PATH %SOLAR_JDK13PATH% - JDK14PATH %SOLAR_JDK14PATH% - JDK15PATH %SOLAR_JDK15PATH% - LIB .;%SOLARVERSION%$/%INPATH%$/lib%UPDMINOREXT%;%COMPATH%$/lib;%PSDK%$/lib;%DSDK%$/lib$/x86;%SOLAR_STLLIBPATH% - LIBMGR_X64_BINARY %COMPROOT%$/bin$/x86_amd64$/lib.exe - LINK_X64_BINARY %COMPROOT%$/bin$/x86_amd64$/link.exe - MKOUT %PERL% %SOLARENV%$/bin$/mkout.pl - MWSCOMMIT %PERL% %COMMON_ENV_TOOLS%$/mwscommit.pl - OJDK16PATH %SOLAR_OJDK16PATH% - PATH $cp(%PSDK%$/Bin)$:%PATH%$:$cp(%SHARED_COM_SDK_PATH%)$:$cp(%COMPATH%$/bin)$:$cp(%FSDK%)$:$cp(%F20SDK%)$/bin$:$cp(%DSDK%$/Utilities$/bin$/x86)$:$cp(%PACKMS%) - PROF_EDITION TRUE - PSDKINC -I%PSDK%$/include - SOLAREXTRAINC -I%DSDK%$/include - SOLAR_JAVA TRUE - TRUSTED_MANIFEST_LOCATION %SOLARENV%$/inc - USE_DIRECTX5 TRUE - WINDOWS_VISTA_PSDK TRUE - SYSBASE TRUE - WITH_VC_REDIST TRUE - XCLASSPATH . - ZIPDEP %PERL% %SOLARENV%$/bin$/zipdep.pl - BUILD_X64 TRUE - GNUCOPY cp - GNUMAKE make - SYSTEM_LIBRSVG NO - SYSTEM_LIBCROCO NO - SYSTEM_GDKPIXBUF NO - SYSTEM_GLIB NO - SYSTEM_GETTEXT NO - SYSTEM_PANGO NO - SYSTEM_LIBPNG NO - SYSTEM_LIBJPEG NO - SYSTEM_LIBGSF NO - } - common0 - { - BS_ROOT n: - SOLAR_ENV_ROOT r: - SOLAR_SOURCE_ROOT o: - BTOOLDIR %WORK_STAMP%$/cygtools - PERLDIR btw$/%WORK_STAMP%$/cygtools$/perl - } - common02 - { - PERL perl - } - common1 - { - COMPATH %SOLAR_ENV_ROOT%$/msvc9p - COMPROOT %SOLAR_ENV_ROOT%$/msvc9p - DEVROOT %SOLAR_ENV_ROOT% - DSDK %SOLAR_ENV_ROOT%$/msvc9p$/DirectXSDK - FSDK %SOLAR_ENV_ROOT%$/msvc9p$/Sdk$/v3.5 - F20SDK %SOLAR_ENV_ROOT%$/msvc9p$/Sdk$/v2.0 - NSIS_PATH %SOLAR_ENV_ROOT%$/NSIS_242_unicode - PERL %SOLAR_ENV_ROOT%$/%PERLDIR% - PKGFORMAT msi - PSDK %SOLAR_ENV_ROOT%$/msvc9p$/PlatformSDK$/v6.1 - SHARED_COM_SDK_PATH %SOLAR_ENV_ROOT%$/msvc9p$/Common7$/ide - SHARED_SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SHARED_SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% - SOLARENV %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%$/solenv - SOLARROOT %SOLAR_ENV_ROOT% - SOLARVER %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% - SOLARVERSION %SOLAR_SOURCE_ROOT%$/%WORK_STAMP% - SO_PACK %SOLAR_ENV_ROOT%$/pack$/%WORK_STAMP% - SRC_ROOT %SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT% -# TEMP $dp(%TEMP%) -# TMP $dp(%TMP%) - } - common2 - { - ENABLE_GRAPHITE TRUE - BUILD_TOOLS %SOLARROOT%$/btw$/%BTOOLDIR% - CALL_CDECL TRUE - CDPATHx %CDPATH%$:..$:..$/..$:..$/..$/..$:..$/source$:..$/..$/source$:$cp(%SOLAR_SOURCE_ROOT%$/%WORK_STAMP%$/ooo%UPDMINOREXT%) - COM MSC - COMEX 12 - COMMON_BUILD_TOOLS $cp(%SOLARROOT%$/btools) - COMMON_ENV_TOOLS %SOLARROOT%$/etools - COMP_ENV wntmsci13 - CPU I - CPUNAME INTEL - CVER M1500 - DYNAMIC_CRT TRUE - ENV_TOOLS %SOLARROOT%$/etw$/%WORK_STAMP% - GUI WNT - GUIBASE WIN - GVER NT351 - INPATH wntmsci13%PROEXT% - MOZILLABUILD %SOLARROOT%/mozilla-build-1.3 - OS WNT - OUTPATH wntmsci13 - PACKMS %SO_PACK%$/wntmsci13$/MS - SET_EXEPTIONS TRUE - SHIPDRIVE %SOLAR_ENV_ROOT%$/ship$/install - SOLAR_JDK13PATH %SOLARROOT%$/jdk1.3 - SOLAR_JDK14PATH %SOLARROOT%$/j2sdk1.4.2_11 - SOLAR_JDK15PATH %SOLARROOT%$/jdk1.5.0.06 - SOLAR_OJDK16PATH %SOLARROOT%$/openjdk-6-b08-windows-i586 - SOLAR_STLPATH %SOLARVERSION%$/wntmsci13%PROEXT%$/inc%UPDMINOREXT%$/stl - SORT sort -T %TMP% -# TOUCH %SOLARROOT%$/btw$/%BTOOLDIR%$/touch.exe - use_shl_versions TRUE - } - common:3 IF %UPDATER% == YES - { - SHIPDRIVE %BS_ROOT%$/ship$/install - } - compath - { - COMPATH $dp(%STAR_COMPATH%) - } - distroot:0 if X%DIST_ROOT%X != XX - { - SHARED_SOLARVERSION $dp(%DIST_ROOT%$/%WORK_STAMP%) - SOLARVER $dp(%DIST_ROOT%$/%WORK_STAMP%) - SOLARVERSION $dp(%DIST_ROOT%$/%WORK_STAMP%) - } - envroot:0 IF X%ENV_ROOT%X != XX - { - SOLAR_ENV_ROOT $dp(%ENV_ROOT%) - } - jdk14 - { -# HOMEDRIVE %DEVROOT% -# HOMEPATH $/jdk141 - JAVAHOME %JDK14PATH% - JAVA_HOME %JDK14PATH% - JDKINC %JDK14PATH%$/include$/win32;%JDK14PATH%$/include - JDKINCS -I%JDK14PATH%$/include -I%JDK14PATH%$/include$/win32 - JDKLIB %JDK14PATH%$/lib - JDKLIBS %JDK14PATH%$/lib - JDKPATH %JDK14PATH%$/bin - JDK_VERSION 142 - JREPATH %JDK14PATH%$/jre$/bin$/client - XCLASSPATH .;%JDK14PATH%$/jre$/lib$/rt.jar - } - jdk14path:0 if X%JDK_PATH%X != XX - { - SOLAR_JDK14PATH $dp(%JDK_PATH%) - } - jdk15 - { -# HOMEDRIVE %DEVROOT% -# HOMEPATH $/jdk151 - JAVAHOME %JDK15PATH% - JAVA_HOME %JDK15PATH% - JDKINC %JDK15PATH%$/include$/win32;%JDK15PATH%$/include - JDKINCS -I%JDK15PATH%$/include -I%JDK15PATH%$/include$/win32 - JDKLIB %JDK15PATH%$/lib - JDKLIBS %JDK15PATH%$/lib - JDKPATH %JDK15PATH%$/bin - JDK_VERSION 150 - JREPATH %JDK15PATH%$/jre$/bin$/client - XCLASSPATH .;%JDK15PATH%$/jre$/lib$/rt.jar - } - jdk15path:0 if X%JDK_PATH%X != XX - { - SOLAR_JDK15PATH $dp(%JDK_PATH%) - } - ojdk16 - { -# HOMEDRIVE %DEVROOT% -# HOMEPATH $/openjdk-6-b08-windows-i586 - JAVA_HOME %OJDK16PATH% - JDKINC %OJDK16PATH%$/include$/win32;%OJDK16PATH%$/include - JDKINCS -I%OJDK16PATH%$/include -I%OJDK16PATH%$/include$/win32 - JDKLIB %OJDK16PATH%$/lib - JDKLIBS %OJDK16PATH%$/lib - JDKPATH %OJDK16PATH%$/bin - JDK_VERSION 160 - JREPATH %OJDK16PATH%$/jre$/bin$/client - XCLASSPATH .;%OJDK16PATH%$/jre$/lib$/rt.jar - } - ojdk16path:0 if X%JDK_PATH%X != XX - { - SOLAR_OJDK16PATH $dp(%JDK_PATH%) - } - pro - { - RES_ENUS TRUE - } - psdk - { - PSDK $dp(%STAR_PSDK%) - } - sourceroot:0 if X%SOURCE_ROOT%X != XX - { - SOLAR_SOURCE_ROOT $dp(%SOURCE_ROOT%) - SOURCE_ROOT_USED TRUE - } - tmp - { - SOL_TMP $dp(%SOL_TMP_DIR%) - } - } - extern - { - COMSPEC - DIST_ROOT - ENV_ROOT - JDK_PATH - LOCALINI - OSTYPE - $dp(SOL_TMP) - $dp(SOURCE_ROOT) - $dp(TMP) - $dp(TEMP) - } - order common0 bs_sourceroot tmp envroot:0 sourceroot:0 pro common1 distroot:0 cap cax common02 psdk compath common2 common:3 jdk14path:0 jdk15path:0 ojdk16path:0 common jdk14 jdk15 ojdk16 - reset - { - COPYALL - CXX_X64_BINARY - DB2IMP - GCRINC - GCRLIB - GCRPATH - LIBMGR_X64_BINARY - LINK_X64_BINARY - NSIS_PATH - OLD_CHAOS - PERLDIR - SOLAR_ENV_ROOT - TFDEF - TFDIR - WST - } - script - { - sh - { - 400: if [ $COPYALL ]; then - 410: perl $SOLAR_ENV_ROOT/etools/lucopy.pl all $MAXPROC $LU_HGFLAG $LU_RFLAG $LU_NOSOURCE - 415: fi - 600: umask 002 - 800: hash -r - 820: wrapfetch.sh - 850: if [ "0$SO_GEN_ERROR" -eq 0 ]; then - 851: export SO_GEN_ERROR - 852: fi - 860: if [ "0$SO_GEN_ERROR2" -eq 0 ]; then - 861: export SO_GEN_ERROR2 - 862: fi - 870: if [ "0$SO_GEN_ERROR" -ne 0 ]; then - 871: echo $SO_GEN_ERROR - 872: fi - 880: if [ "0$SO_GEN_ERROR2" -ne 0 ]; then - 881: echo $SO_GEN_ERROR2 - 882: fi - } - } - switches - { - bs_sourceroot SOURCE_ROOT_TMP - bsclient - cap - cax - compath STAR_COMPATH - distroot - envroot - jdk14 - jdk14path - jdk15 - jdk15path - l10n L10N_framework - ojdk16 - ojdk16path - pro - psdk STAR_PSDK - sourceroot - tmp SOL_TMP_DIR - } -} - diff --git a/solenv/config/ssolar.cmn b/solenv/config/ssolar.cmn deleted file mode 100644 index 3694c225973c..000000000000 --- a/solenv/config/ssolar.cmn +++ /dev/null @@ -1,336 +0,0 @@ -common -{ - switches - { - pro - bsclient - } - extern - { - PATH - TMP - VCSID - } - reset - { - *o: - *r: - *s: - *mkout - *deliver - *dmake - *copyprj - __mgrdir - gb_LOCALBUILDDIR - product - rsc_once - wrapper_override_cc_wrapper - *zipdep - ALT_L10N_MODULE - AWK - BIG_SVX - BIG_TOOLS - BISON_HAIRY - BISON_PKGDATADIR - BISON_SIMPLE - BMP_WRITES_FLAG - bndchk - BSCLIENT - BTARGET - BUILD_OS_APPLEOSX - BUILD_OS_MINOR - BUILD_OS_REV - BUILD_OS_MAJOR - BUILD_PIXMAN - BUILD_TOOLS - BUILD_TYPE - BUILD_SPECIAL - BUILD_STAX - BUILD_X64 - CLASSPATH - CALL_CDECL - CHECK_LUCENCE_INDEXER_OUTPUT - COMEX - common_build - COMMON_OUTDIR - COPYALL - COPY_PACKED - CVS_HEAD - CVSROOT - CWS_WORK_STAMP - CWS_WORK_STAMP_EXT - DB2IMP - DB2INC - DB2LIB - DB2PATH - DEFAULT_TO_ENGLISH_FOR_PACKING - DIRECTX_SUPPORT - DISABLE_ADO - DISABLE_ATL - DISABLE_ENHANCED_COMID - DISABLE_JAVA - DISABLE_SAL_DBGBOX - DELIVER - DIC_ALL - DPKG - DYLD_LIBRARY_PATH - LD_LIBRARY_PATH - DMAKE_INC - DMAKE - DRIVE_O - DRIVE_S - DYNAMIC_CRT - ENABLE_AGG - ENABLE_CRASHDUMP - ENABLE_CUPS - ENABLE_DIRECTX - ENABLE_EVOAB2 - ENABLE_FONTCONFIG - ENABLE_GTK - ENABLE_GCONF - ENABLE_GNOMEVFS - ENABLE_KDE - ENABLE_MEDIAWIKI - ENABLE_MINIMIZER - ENABLE_NSS_MODULE - ENABLE_PASF - ENABLE_RANDR - ENABLE_REPORTBUILDER - ENABLE_REPORTDESIGN - ENABLE_SVCTAGS - FORCE2ARCHIVE - PA_VER - ENABLE_NAS - ENABLE_PCH - SYSTEM_CURL - SYSTEM_CPPUNIT - SYSTEM_FREETYPE - FREETYPE_CFLAGS - FREETYPE_LIBS - SYSTEM_LIBXML - LIBXML_CFLAGS - LIBXML_LIBS - SYSTEM_LIBXSLT - LIBXSLT_CFLAGS - LIBXSLT_LIBS - SYSTEM_ZLIB - SYSTEM_PYTHON - SYSTEM_PORTAUDIO - SYSTEM_SNDFILE - ENABLEUNICODE - ENVCDEFS - HAVE_GCC_VISIBILITY_FEATURE - GCRINC - GCRLIB - GCRPATH - GLIBC - GNUCOPY - GXX_INCLUDE_PATH - HBTOOLKIT - HOMEDRIVE - HOMEPATH - IENV - INCLUDE - JAVA_HOME - JAVAHOME - JDK_VERSION - JDKINC - JDKINCS - JDKLIB - JDKLIBS - JDKPATH - JDK_PATH - L10N-framework - L10N_framework - LFS_CFLAGS - LOCALINI - MACOSX_DEPLOYMENT_TARGET - MK_UNROLL - MKDIR - MKOUT - MKSPATH - MULTITHREAD_OBJ - MWS_BUILD - NEW_JAR_PACK - NO_BSYMBOLIC - NO_HIDS - NO_DEFAULT_STL - NO_REC_RES - no_transex - NOSOLAR_JAVA - NSIS_PATH - ODBCINC - ODBCLIB - ODBCPATH - ODBCVER - OLD_CHAOS - OOO_JUNIT_JAR - OOO_SHELL - OOO_SYSBASE_SYS_RELEASE - PACKMS - PCLEAN_PATH - PKGCONFIG_ROOT - PKG_CONFIG_PATH - PKGFORMAT - PRE - PREBUILD_MOZAB - PRODUCTENVCACHE - PRODUCTNAME - PROEXT - PROF_EDITION - PROFILE - profile - PROSWITCH - PTHREAD_CFLAGS - REMOTE_BUILD_FLAG - RES_ARAB - RES_CHINSIM - RES_CHINTRAD - RES_DAN - RES_DTCH - RES_ENUS - RES_FREN - RES_GER - RES_GREEK - RES_ITAL - RES_JAPN - RES_KOREAN - RES_POL - RES_PORT - RES_RUSS - RES_SPAN - RES_SWED - RES_THAI - RES_TURK - RES_HINDI - RES_PORTBR - RES_HEBREW - RES_HUNG - RPM - WITH_LANG - WITH_MOZILLA - ROOTDIR - RSCRES - SCPLINKVERSION - SET_EXCEPTIONS - SHARED_SOLARVERSION - SO_PACK - SOLAR_JAVA - SOLAR_PLUGIN - SOLARINC - SOLARLIB - SOLARUPD - SOLARVERSION - SOURCE_ROOT_USED - SOURCE_ROOT_DIR - STAR_REGISTRY - STAR_RESOURCEPATH - STLPORT4 - STLPORT_VER - SYSPATH - TARFILE_LOCATION - TF_CAPELLA - TF_CFG - TF_CFGDATA - TF_CNTEX - TF_FILTER - TF_FILEURL - TF_NEWEX - TF_SDBAPI - TF_UCB - TF_SVDATA - TFDEF - TFDIR - TIMELOG - truetime - TRUSTED_MANIFEST_LOCATION - UDKSTAMP - URD_ONLY - USE_DIRECTX5 - USE_MAPFILES - USE_NEW_SDK - USE_PCH - USE_SYSTEM_STL - use_cygcp - use_shl_versions - VCL - VERBOSE - VISTA_MANIFEST - XAU_LIBS - WINDOWS_VISTA_PSDK - WITH_LDAP - WITH_VC_REDIST - WST - XCLASSPATH - XSLTPROC - ZIPDEP - ZIPSOURCE - AGG_VERSION - ANT_HOME - ANT_LIB - ANT - AWTLIB - CC - CXX - EXCEPTIONS - GXX_INCLUDE_PATH - EXTERNAL_WARNINGS_NOT_ERRORS - GNUMAKE - HAVE_LD_HASH_STYLE - JAVACOMPILER - JAVADOC - JAVAIFLAGS - JDK - NO_HIDS - PAM_LINK - PAM - PSPRINT - PYTHONHOME - PYTHONPATH - SOLAR_PLUGIN - URE_BOOTSTRAP - USE_FT_EMBOLDEN - USE_XINERAMA - XINERAMA_LINK - } - restore - { - PATH - } - order pro common bsclient - environment - { - pro - { - PROEXT .pro - } - common - { - SO_GEN_ERROR - SO_GEN_ERROR2 - CVS_HEAD DEV300 - } - bsclient - { - BSCLIENT TRUE - DISABLE_SAL_DBGBOX TRUE - } - } -} - -unxsogs -{ -} - -unxfbsdi -{ -} - -unxsols4 -{ -} - -unxmacxp -{ -} - diff --git a/solenv/doc/gbuild/solenv/gbuild/gbuild.mk b/solenv/doc/gbuild/solenv/gbuild/gbuild.mk index 97ca9b252789..2b65f3fce66e 100644 --- a/solenv/doc/gbuild/solenv/gbuild/gbuild.mk +++ b/solenv/doc/gbuild/solenv/gbuild/gbuild.mk @@ -20,7 +20,6 @@ static const Path GBUILDDIR; static const Path INPATH; static const Path JAVA_HOME; static const Path UPD; -static const String CVER; static const String LIBXML_CFLAGS; static const String OS; static const String STLPORT_VER; diff --git a/solenv/gbuild/AllLangResTarget.mk b/solenv/gbuild/AllLangResTarget.mk index ccd574ba7c93..fe4f30649da2 100644 --- a/solenv/gbuild/AllLangResTarget.mk +++ b/solenv/gbuild/AllLangResTarget.mk @@ -25,31 +25,50 @@ # #************************************************************************* + +# Overview of dependencies and tasks of SrsTarget +# +# target task depends on +# SrsTarget joining the parts SrsPartTarget +# SrsTemplateTarget +# SrsPartTarget preprocessing SrsPartMergeTarget (with l10n) +# source file (without l10n) +# SrsTemplateTarget handling templates SrsTemplatePartTarget +# SrsTemplatePartTarget handling template SrsPartMergeTarget +# SrsPartMergeTarget merging/transex source file (only needed with l10n) + +# Overview of dependencies and tasks of AllLangResTarget +# +# target task depends on +# AllLangResTarget nothing ResTarget for all active langs +# ResTarget running rsc SrsTarget, resources + + # SrsPartMergeTarget class gb_SrsPartMergeTarget_TRANSEXTARGET := $(call gb_Executable_get_target,transex3) # gb_SrsPartMergeTarget_TRANSEXPRECOMMAND is set by the platforms gb_SrsPartMergeTarget_TRANSEXCOMMAND := $(gb_SrsPartMergeTarget_TRANSEXPRECOMMAND) $(gb_SrsPartMergeTarget_TRANSEXTARGET) -gb_SrsPartMergeTarget_SDFLOCATION := $(LOCDIR)/l10n/$(INPATH)/misc/sdf/ +gb_SrsPartMergeTarget_SDFLOCATION := $(SRCDIR)/translations/$(INPATH)/misc/sdf/ gb_SrsPartMergeTarget_REPOS := $(gb_REPOS) define gb_SrsPartMergeTarget__command $(call gb_Output_announce,$(3),$(true),srs,1) $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) && \ - $(gb_SrsPartMergeTarget_TRANSEXCOMMAND) \ - -p $(firstword $(subst /, ,$(2))) \ - -i $(3) \ - -o $(1) \ - -m $(SDF) \ - -l all) + mkdir -p $(dir $(1)) && \ + $(gb_SrsPartMergeTarget_TRANSEXCOMMAND) \ + -p $(firstword $(subst /, ,$(2))) \ + -i $(realpath $(3)) \ + -o $(1) \ + -m $(SDF) \ + -l all) endef define gb_SrsPartMergeTarget__rules $$(call gb_SrsPartMergeTarget_get_target,%) : $(1)/% $$(gb_Helper_MISCDUMMY) | $$(gb_SrsPartMergeTarget_TRANSEXTARGET) - $$(if $$(SDF),$$(call gb_SrsPartMergeTarget__command,$$@,$$*,$$<),mkdir -p $$(dir $$@) && cp $$< $$@) + $$(if $$(SDF),$$(call gb_SrsPartMergeTarget__command,$$@,$$*,$$<),mkdir -p $$(dir $$@) && cp $$< $$@) endef @@ -65,29 +84,29 @@ gb_SrsPartTarget_REPOS := $(gb_REPOS) define gb_SrsPartTarget__command $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) && \ - RESPONSEFILE=`$(gb_MKTEMP)` && \ - echo "-s \ - $(INCLUDE) \ - -I$(dir $(3)) \ - $(DEFS) \ - -fp=$(1) \ - $(if $(MERGEDFILE),$(MERGEDFILE),$<)" > $${RESPONSEFILE} && \ - $(gb_SrsPartTarget_RSCCOMMAND) -presponse @$${RESPONSEFILE} && \ - rm -rf $${RESPONSEFILE}) + mkdir -p $(dir $(1)) && \ + RESPONSEFILE=`$(gb_MKTEMP)` && \ + echo "-s \ + $(INCLUDE) \ + -I$(realpath $(dir $(3))) \ + $(DEFS) \ + -fp=$(1) \ + $(realpath $(if $(MERGEDFILE),$(MERGEDFILE),$<))" > $${RESPONSEFILE} && \ + $(gb_SrsPartTarget_RSCCOMMAND) -presponse @$${RESPONSEFILE} && \ + rm -rf $${RESPONSEFILE}) endef define gb_SrsPartTarget__rules $$(call gb_SrsPartTarget_get_target,%) : $(1)/% $$(gb_Helper_MISCDUMMY) | $$(gb_SrsPartTarget_RSCTARGET) - $$(call gb_SrsPartTarget__command_dep,$$*,$$<) - $$(call gb_SrsPartTarget__command,$$@,$$*,$$<) + $$(call gb_SrsPartTarget__command_dep,$$*,$$<) + $$(call gb_SrsPartTarget__command,$$@,$$*,$$<) ifeq ($(gb_FULLDEPS),$(true)) $$(call gb_SrsPartTarget_get_dep_target,%) : $(1)/% $$(gb_Helper_MISCDUMMY) - $$(call gb_Helper_abbreviate_dirs,\ - mkdir -p $$(dir $$@) && \ - echo '$$(call gb_SrsPartTarget_get_target,$$*) : $$(gb_Helper_PHONY)' > $$@) + $$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $$(dir $$@) && \ + echo '$$(call gb_SrsPartTarget_get_target,$$*) : $$(gb_Helper_PHONY)' > $$@) endif endef @@ -96,7 +115,7 @@ $(foreach repo,$(gb_SrsPartTarget_REPOS),$(eval $(call gb_SrsPartTarget__rules,$ ifeq ($(gb_FULLDEPS),$(true)) $(call gb_SrsPartTarget_get_dep_target,%) : - $(eval $(call gb_Output_error,Unable to find resource definition file $* in repositories: $(gb_SrsPartTarget_REPOS))) + $(eval $(call gb_Output_error,Unable to find resource definition file $* in repositories: $(gb_SrsPartTarget_REPOS))) endif @@ -111,6 +130,72 @@ endif endef +# SrsTemplatePartTarget class + +define gb_SrsTemplatePartTarget_SrsTemplatePartTarget +$(call gb_SrsTemplatePartTarget_get_target,$(1)) : $(call gb_SrsPartMergeTarget_get_target,$(1)) + $$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $$(dir $$@) && \ + cp $$< $$@) +ifneq ($(strip $(WITH_LANG)),) +$(call gb_SrsPartMergeTarget_get_target,$(1)) : SDF := $(realpath $(gb_SrsPartMergeTarget_SDFLOCATION)$(dir $(1))localize.sdf) +$(call gb_SrsPartMergeTarget_get_target,$(1)) : $$(SDF) +endif +endef + +# SrsTemplateTarget class + +define gb_SrsTemplateTarget__command + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + touch $(1)) +endef + +gb_SrsTemplateTarget__get_merged_target = $(call gb_SrsTemplateTarget_get_target,$(1))_merged_last +gb_SrsTemplateTarget__get_unmerged_target = $(call gb_SrsTemplateTarget_get_target,$(1))_unmerged_last + +ifeq ($(strip $(WITH_LANG)),) +gb_SrsTemplateTarget__get_target = $(call gb_SrsTemplateTarget__get_unmerged_target,$(1)) +gb_SrsTemplateTarget__get_update_target = $(call gb_SrsTemplateTarget__get_merged_target,$(1)) +else +gb_SrsTemplateTarget__get_target = $(call gb_SrsTemplateTarget__get_merged_target,$(1)) +gb_SrsTemplateTarget__get_update_target = $(call gb_SrsTemplateTarget__get_unmerged_target,$(1)) +endif + +define gb_SrsTemplateTarget_SrsTemplateTarget +$(call gb_SrsTemplateTarget_get_target,$(1)) : PARTS := +$(call gb_SrsTemplateTarget_get_clean_target,$(1)) : PARTS := +$(call gb_SrsTemplateTarget_get_target,$(1)) : $(call gb_SrsTemplateTarget__get_target,$(1)) +$(call gb_SrsTemplateTarget__get_target,$(1)) : $(call gb_SrsTemplateTarget__get_update_target,$(1)) +endef + +.PHONY : $(call gb_SrsTemplateTarget_get_target,%_last) +$(call gb_SrsTemplateTarget_get_target,%_last) : + $(call gb_SrsTemplateTarget__command,$@) + +.PHONY : $(call gb_SrsTemplateTarget_get_target,%) +$(call gb_SrsTemplateTarget_get_target,%) : + $(if $(strip $(PARTS)),$(call gb_Output_announce,$*,$(true),SRT,4)) + $(call gb_SrsTemplateTarget__command,$@) + +.PHONY : $(call gb_SrsTemplateTarget_get_clean_target,%) +$(call gb_SrsTemplateTarget_get_clean_target,%) : + $(if $(strip $(PARTS)),$(call gb_Output_announce,$*,$(false),SRT,4)) + -$(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_SrsTemplateTarget_get_target,$*) \ + $(call gb_SrsTemplateTarget__get_merged_target,$*) \ + $(call gb_SrsTemplateTarget__get_unmerged_target,$*) \ + $(foreach part,$(PARTS),$(call gb_SrsTemplatePartTarget_get_target,$(part))) \ + $(foreach part,$(PARTS),$(call gb_SrsPartMergeTarget_get_target,$(part)))) + +define gb_SrsTemplateTarget_add_file +$(call gb_SrsTemplatePartTarget_SrsTemplatePartTarget,$(2)) +$(call gb_SrsTemplateTarget_get_target,$(1)) : PARTS += $(2) +$(call gb_SrsTemplateTarget_get_clean_target,$(1)) : PARTS += $(2) +$(call gb_SrsTemplateTarget__get_target,$(1)) : $(call gb_SrsTemplatePartTarget_get_target,$(2)) +$(call gb_SrsTemplatePartTarget_get_target,$(2)) : $(call gb_SrsTemplateTarget__get_update_target,$(1)) +$(call gb_SrsPartMergeTarget_get_target,$(2)) : $(call gb_SrsTemplateTarget__get_update_target,$(1)) +endef # SrsTarget class @@ -118,40 +203,43 @@ gb_SrsTarget_DEFAULTDEFS := $(gb_GLOBALDEFS) .PHONY : $(call gb_SrsTarget_get_clean_target,%) $(call gb_SrsTarget_get_clean_target,%) : - $(call gb_Output_announce,$*,$(false),SRS,1) - -$(call gb_Helper_abbreviate_dirs,\ - rm -f $(call gb_SrsTarget_get_target,$*) \ - $(call gb_SrsTarget_get_dep_target,$*) \ - $(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_target,$(part))) \ - $(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_dep_target,$(part))) \ - $(foreach part,$(PARTS),$(call gb_SrsPartMergeTarget_get_target,$(part)))) + $(call gb_Output_announce,$*,$(false),SRS,1) + -$(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_SrsTarget_get_target,$*) \ + $(call gb_SrsTarget_get_dep_target,$*) \ + $(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_target,$(part))) \ + $(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_dep_target,$(part))) \ + $(foreach part,$(PARTS),$(call gb_SrsPartMergeTarget_get_target,$(part)))) ifeq ($(gb_FULLDEPS),$(true)) define gb_SrsTarget__command_dep $(call gb_Output_announce,SRS:$(2),$(true),DEP,1) $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $(1)) && \ - cat $(3) > $(1)) + mkdir -p $(dir $(1)) && \ + cat $(3) > $(1)) endef endif $(call gb_SrsTarget_get_target,%) : - $(call gb_SrsTarget__command_dep,$(call gb_SrsTarget_get_dep_target,$*),$*,$(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_dep_target,$(part)))) - $(call gb_Output_announce,$*,$(true),SRS,1) - $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $@) && \ - cat $^ > $@) + $(call gb_SrsTarget__command_dep,$(call gb_SrsTarget_get_dep_target,$*),$*,$(foreach part,$(PARTS),$(call gb_SrsPartTarget_get_dep_target,$(part)))) + $(call gb_Output_announce,$*,$(true),SRS,1) + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && \ + cat $^ > $@) ifeq ($(gb_FULLDEPS),$(true)) $(call gb_SrsTarget_get_dep_target,%) : - $(call gb_SrsTarget__command_dep,$@,$*,$^) + $(call gb_SrsTarget__command_dep,$@,$*,$^) endif define gb_SrsTarget_SrsTarget +$(call gb_SrsTemplateTarget_SrsTemplateTarget,$(1)) $(call gb_SrsTarget_get_target,$(1)) : DEFS := $(gb_SrsTarget_DEFAULTDEFS) $(call gb_SrsTarget_get_target,$(1)) : INCLUDE := $(SOLARINC) $(call gb_SrsTarget_get_clean_target,$(1)) : PARTS := $(call gb_SrsTarget_get_target,$(1)) : PARTS := +$(call gb_SrsTarget_get_target,$(1)) : $(call gb_SrsTemplateTarget_get_target,$(1)) +$(call gb_SrsTarget_get_clean_target,$(1)) : $(call gb_SrsTemplateTarget_get_clean_target,$(1)) ifeq ($(gb_FULLDEPS),$(true)) ifneq ($(wildcard $(call gb_SrsTarget_get_dep_target,$(1))),) include $(call gb_SrsTarget_get_dep_target,$(1)) @@ -184,6 +272,7 @@ $(call gb_SrsTarget_get_dep_target,$(1)) : $(call gb_SrsPartTarget_get_dep_targe endif $(call gb_SrsPartTarget_SrsPartTarget,$(2)) $(call gb_SrsTarget_get_target,$(1)) : $(call gb_SrsPartTarget_get_target,$(2)) +$(call gb_SrsPartTarget_get_target,$(2)) :| $(call gb_SrsTemplateTarget_get_target,$(1)) $(call gb_SrsTarget_get_clean_target,$(1)) : PARTS += $(2) $(call gb_SrsTarget_get_target,$(1)) : PARTS += $(2) @@ -194,46 +283,55 @@ $(foreach file,$(2),$(call gb_SrsTarget_add_file,$(1),$(file))) endef +define gb_SrsTarget_add_template +$(call gb_SrsTemplateTarget_add_file,$(1),$(2)) +endef + +define gb_SrsTarget_add_templates +$(foreach template,$(2),$(eval $(call gb_SrsTarget_add_template,$(1),$(template)))) +endef + # ResTarget gb_ResTarget_RSCTARGET := $(gb_SrsPartTarget_RSCTARGET) gb_ResTarget_RSCCOMMAND := $(gb_SrsPartTarget_RSCCOMMAND) -gb_ResTarget_DEFIMAGESLOCATION := $(SRCDIR)/default_images/ +gb_ResTarget_DEFIMAGESLOCATION := $(realpath $(SRCDIR)/default_images)/ $(call gb_ResTarget_get_clean_target,%) : - $(call gb_Output_announce,$*,$(false),RES,2) - $(call gb_Helper_abbreviate_dirs,\ - rm -f $(call gb_ResTarget_get_target,$*) $(call gb_ResTarget_get_imagelist_target,$*) $(call gb_ResTarget_get_outdir_target,$*) $(call gb_ResTarget_get_outdir_imagelist_target,$*)) + $(call gb_Output_announce,$*,$(false),RES,2) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_ResTarget_get_target,$*) $(call gb_ResTarget_get_imagelist_target,$*) $(call gb_ResTarget_get_outdir_target,$*) $(call gb_ResTarget_get_outdir_imagelist_target,$*)) $(call gb_ResTarget_get_target,%) : $(gb_Helper_MISCDUMMY) | $(gb_ResTarget_RSCTARGET) - $(call gb_Output_announce,$*,$(true),RES,2) - $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $@) $(OUTDIR)/bin \ - $(dir $(call gb_ResTarget_get_imagelist_target,$*)) && \ - RESPONSEFILE=`$(gb_MKTEMP)` && \ - echo "-r -p \ - -lg$(LANGUAGE) \ - -fs=$@ \ - -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/$(LIBRARY)) \ - -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/imglst/$(LANGUAGE)) \ - -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/imglst) \ - -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res/$(LANGUAGE)) \ - -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res) \ - -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)) \ - -lip=$(gb_ResTarget_DEFIMAGESLOCATION)res/$(LANGUAGE) \ - -lip=$(gb_ResTarget_DEFIMAGESLOCATION)res \ - -subMODULE=$(dir $(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION))) \ - -subGLOBALRES=$(gb_ResTarget_DEFIMAGESLOCATION)res \ - -oil=$(dir $(call gb_ResTarget_get_imagelist_target,$*)) \ - $(filter-out $(gb_Helper_MISCDUMMY),$^)" > $${RESPONSEFILE} && \ - $(gb_ResTarget_RSCCOMMAND) @$${RESPONSEFILE} && \ - rm -f $${RESPONSEFILE}) + $(call gb_Output_announce,$*,$(true),RES,2) + $(call gb_Helper_abbreviate_dirs_native,\ + mkdir -p $(dir $@) $(OUTDIR)/bin \ + $(dir $(call gb_ResTarget_get_imagelist_target,$*)) && \ + RESPONSEFILE=`$(gb_MKTEMP)` && \ + echo "-r -p \ + -lg$(LANGUAGE) \ + -fs=$@ \ + -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/$(LIBRARY)) \ + -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/imglst/$(LANGUAGE)) \ + -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/imglst) \ + -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res/$(LANGUAGE)) \ + -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res/imagelst) \ + -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)/res) \ + -lip=$(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION)) \ + -lip=$(gb_ResTarget_DEFIMAGESLOCATION)res/$(LANGUAGE) \ + -lip=$(gb_ResTarget_DEFIMAGESLOCATION)res \ + -subMODULE=$(dir $(realpath $(gb_ResTarget_DEFIMAGESLOCATION)$(RESLOCATION))) \ + -subGLOBALRES=$(gb_ResTarget_DEFIMAGESLOCATION)res \ + -oil=$(dir $(call gb_ResTarget_get_imagelist_target,$*)) \ + $(filter-out $(gb_Helper_MISCDUMMY),$^)" > $${RESPONSEFILE} && \ + $(gb_ResTarget_RSCCOMMAND) @$${RESPONSEFILE} && \ + rm -f $${RESPONSEFILE}) $(call gb_ResTarget_get_outdir_target,%) : - $(call gb_Helper_abbreviate_dirs,\ - $(call gb_Deliver_deliver,$<,$@) && \ - $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(ILSTTARGET)),$(ILSTTARGET))) + $(call gb_Helper_abbreviate_dirs,\ + $(call gb_Deliver_deliver,$<,$@) && \ + $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(ILSTTARGET)),$(ILSTTARGET))) define gb_ResTarget_ResTarget $(call gb_ResTarget_get_target,$(1)) : LIBRARY = $(2) @@ -263,13 +361,13 @@ endef define gb_ResTarget_add_files $(foreach file,$(2),\ - $(call gb_ResTarget_add_file,$(1),$(file))) + $(call gb_ResTarget_add_file,$(1),$(file))) endef define gb_ResTarget_add_srs $(foreach srs,$(2),\ - $(call gb_ResTarget_add_one_srs,$(1),$(srs))) + $(call gb_ResTarget_add_one_srs,$(1),$(srs))) endef @@ -288,36 +386,36 @@ gb_AllLangResTarget_LANGS := $(1) endef $(call gb_AllLangResTarget_get_clean_target,%) : - $(call gb_Helper_abbreviate_dirs,\ - rm -f $(call gb_AllLangResTarget_get_target,$*)) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_AllLangResTarget_get_target,$*)) $(call gb_AllLangResTarget_get_target,%) : - $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $@) && touch $@) + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && touch $@) define gb_AllLangResTarget_AllLangResTarget $(foreach lang,$(gb_AllLangResTarget_LANGS),\ - $(call gb_ResTarget_ResTarget,$(1)$(lang),$(1),$(lang))) + $(call gb_ResTarget_ResTarget,$(1)$(lang),$(1),$(lang))) $$(eval $$(call gb_Module_register_target,$(call gb_AllLangResTarget_get_target,$(1)),$(call gb_AllLangResTarget_get_clean_target,$(1)))) endef define gb_AllLangResTarget_add_one_srs $(foreach lang,$(gb_AllLangResTarget_LANGS),\ - $(call gb_ResTarget_add_one_srs,$(1)$(lang),$(2))) + $(call gb_ResTarget_add_one_srs,$(1)$(lang),$(2))) endef define gb_AllLangResTarget_add_srs $(foreach srs,$(2),\ - $(call gb_AllLangResTarget_add_one_srs,$(1),$(srs))) + $(call gb_AllLangResTarget_add_one_srs,$(1),$(srs))) endef define gb_AllLangResTarget_set_reslocation $(foreach lang,$(gb_AllLangResTarget_LANGS),\ - $(call gb_ResTarget_set_reslocation,$(1)$(lang),$(2))) + $(call gb_ResTarget_set_reslocation,$(1)$(lang),$(2))) endef -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/BuildDirs.mk b/solenv/gbuild/BuildDirs.mk index e31712016f7f..daa40c1d304e 100644 --- a/solenv/gbuild/BuildDirs.mk +++ b/solenv/gbuild/BuildDirs.mk @@ -29,6 +29,7 @@ SOLARINC += $(JDKINCS) OUTDIR := $(SOLARVERSION)/$(INPATH) +OUTDIR_FOR_BUILD := $(SOLARVERSION)/$(INPATH_FOR_BUILD) WORKDIR := $(SOLARVERSION)/$(INPATH)/workdir # Override for SetupLocal @@ -42,9 +43,10 @@ endif # HACK # unixify windoze paths -ifeq ($(OS),WNT) +ifeq ($(OS_FOR_BUILD),WNT) override WORKDIR := $(shell cygpath -u $(WORKDIR)) override OUTDIR := $(shell cygpath -u $(OUTDIR)) +override OUTDIR_FOR_BUILD := $(shell cygpath -u $(OUTDIR_FOR_BUILD)) override gb_REPOS := $(shell cygpath -u $(gb_REPOS)) endif @@ -56,4 +58,4 @@ $(eval $(call gb_Output_error,The initial makefile $(realpath $(firstword $(MAKE endif endif -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/ComponentTarget.mk b/solenv/gbuild/ComponentTarget.mk index b0f50718364e..ef24e18201b6 100644 --- a/solenv/gbuild/ComponentTarget.mk +++ b/solenv/gbuild/ComponentTarget.mk @@ -33,10 +33,10 @@ gb_ComponentTarget_get_source = $(1)/$(2).component define gb_ComponentTarget__command $(call gb_Output_announce,$(3),$(true),CMP,1) $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) && \ - $(gb_XSLTPROC) --nonet --stringparam uri \ - '$(subst \d,$$,$(COMPONENTPREFIX))$(LIBFILENAME)' -o $(1) \ - $(gb_ComponentTarget_XSLTCOMMANDFILE) $(2)) + mkdir -p $(dir $(1)) && \ + $(gb_XSLTPROC) --nonet --stringparam uri \ + '$(subst \d,$$,$(COMPONENTPREFIX))$(LIBFILENAME)' -o $(1) \ + $(gb_ComponentTarget_XSLTCOMMANDFILE) $(realpath $(2))) endef # creates 2 componentfiles: the first is for the installation set, @@ -61,22 +61,20 @@ $(call gb_ComponentTarget_get_clean_target,%) : $(foreach repo,$(gb_ComponentTarget_REPOS),$(eval $(call gb_ComponentTarget__rules,$(repo)))) $(call gb_ComponentTarget_get_target,%) : - $(eval $(call gb_Outpt_error,Unable to find component file $(call gb_ComponentTarget_get_source,,$*) in the repositories: $(gb_ComponentTarget_REPOS) or xlstproc is missing.)) + $(eval $(call gb_Outpt_error,Unable to find component file $(call gb_ComponentTarget_get_source,,$*) in the repositories: $(gb_ComponentTarget_REPOS) or xsltproc is missing.)) $(call gb_ComponentTarget_get_external_target,%) : - $(call gb_Deliver_deliver,$<,$@) + $(call gb_Deliver_deliver,$<,$@) define gb_ComponentTarget_ComponentTarget -$(call gb_ComponentTarget_get_target,$(1)) : LIBFILENAME := $(3) +$(call gb_ComponentTarget_get_target,$(4)) : LIBFILENAME := $(3) $(call gb_ComponentTarget_get_inbuild_target,$(1)) : LIBFILENAME := $(3) -$(call gb_ComponentTarget_get_target,$(1)) : COMPONENTPREFIX := $(2) +$(call gb_ComponentTarget_get_outdir_target,$(1)) : $(call gb_ComponentTarget_get_target,$(4)) $(call gb_ComponentTarget_get_inbuild_target,$(1)) : \ COMPONENTPREFIX := $(call gb_Library__get_layer_componentprefix,NONE) -$(call gb_ComponentTarget_get_outdir_target,$(1)) : $(call gb_ComponentTarget_get_target,$(1)) $(call gb_ComponentTarget_get_outdir_inbuild_target,$(1)) : $(call gb_ComponentTarget_get_inbuild_target,$(1)) -$(call gb_Deliver_add_deliverable,$(call gb_ComponentTarget_get_outdir_target,$(1)),$(call gb_ComponentTarget_get_target,$(1))) $(call gb_Deliver_add_deliverable,$(call gb_ComponentTarget_get_outdir_inbuild_target,$(1)),$(call gb_ComponentTarget_get_inbuild_target,$(1))) endef -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/CppunitTest.mk b/solenv/gbuild/CppunitTest.mk index abe4ceb3167f..f9dea5440c6d 100644 --- a/solenv/gbuild/CppunitTest.mk +++ b/solenv/gbuild/CppunitTest.mk @@ -32,24 +32,58 @@ DBGSV_ERROR_OUT := shell export DBGSV_ERROR_OUT +ifeq ($(strip $(DEBUGCPPUNIT)),TRUE) +gb_CppunitTest_GDBTRACE := gdb -nx --command=$(SOLARENV)/bin/gdbtrycatchtrace-stdout -return-child-result --args +else ifneq ($(strip $(GDBCPPUNITTRACE)),) +gb_CppunitTest_GDBTRACE := $(GDBCPPUNITTRACE) +gb_CppunitTest__interactive := $(true) +endif + +ifneq ($(strip $(VALGRIND)),) +gb_CppunitTest_VALGRINDTOOL := valgrind --tool=$(VALGRIND) --num-callers=50 +ifeq ($(strip $(VALGRIND)),memcheck) +gb_CppunitTest_VALGRINDTOOL += --leak-check=yes +G_SLICE := always-malloc +export G_SLICE +endif +endif + # defined by platform # gb_CppunitTest_TARGETTYPE # gb_CppunitTest_get_filename -gb_CppunitTest_CPPTESTTARGET := $(call gb_Executable_get_target,cppunittester) -gb_CppunitTest_CPPTESTCOMMAND := $(gb_CppunitTest_CPPTESTPRECOMMAND) $(gb_CppunitTest_CPPTESTTARGET) +gb_CppunitTest_CPPTESTTARGET := $(call gb_Executable_get_target,cppunit/cppunittester) +gb_CppunitTest_CPPTESTCOMMAND := $(gb_CppunitTest_CPPTESTPRECOMMAND) STAR_RESOURCEPATH=$(dir $(call gb_ResTarget_get_outdir_target,example)) $(gb_CppunitTest_GDBTRACE) $(gb_CppunitTest_VALGRINDTOOL) $(gb_CppunitTest_CPPTESTTARGET) gb_CppunitTest__get_linktargetname = CppunitTest/$(call gb_CppunitTest_get_filename,$(1)) +# TODO: move this to platform under suitable name +gb_CppunitTarget__make_url = file://$(if $(filter WNT,$(OS)),/)$(1) + +gb_CppunitTest__get_uno_type_target = $(OUTDIR)/bin/$(1).rdb +define gb_CppunitTest__make_args +$(ARGS) \ +$(if $(strip $(UNO_TYPES)),\ + "-env:UNO_TYPES=$(foreach rdb,udkapi $(UNO_TYPES),\ + $(call gb_CppunitTarget__make_url,$(call gb_CppunitTest__get_uno_type_target,$(rdb))))") \ +$(if $(strip $(UNO_SERVICES)),\ + "-env:UNO_SERVICES=$(call gb_CppunitTarget__make_url,$(OUTDIR)/xml/ure/services.rdb) \ + $(foreach rdb,$(UNO_SERVICES),\ + $(call gb_CppunitTarget__make_url,$(call gb_RdbTarget_get_target,$(rdb))))") \ +$(if $(URE),\ + $(foreach dir,URE_INTERNAL_LIB_DIR OOO_BASE_DIR BRAND_BASE_DIR,\ + -env:$(dir)=file://$(if $(filter WNT,$(OS)),/$(OUTDIR)/bin,$(OUTDIR)/lib))) +endef + .PHONY : $(call gb_CppunitTest_get_clean_target,%) $(call gb_CppunitTest_get_clean_target,%) : - $(call gb_Helper_abbreviate_dirs,\ - rm -f $(call gb_CppunitTest_get_target,$*) $(call gb_CppunitTest_get_target,$*).log) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_CppunitTest_get_target,$*) $(call gb_CppunitTest_get_target,$*).log) .PHONY : $(call gb_CppunitTest_get_target,%) -$(call gb_CppunitTest_get_target,%) : $(gb_CppunitTest_CPPTESTTARGET) - $(call gb_Output_announce,$*,$(true),CUT,2) - $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $@) && \ - $(gb_CppunitTest_CPPTESTCOMMAND) $(call gb_LinkTarget_get_target,CppunitTest/$(call gb_CppunitTest_get_libfilename,$*)) > $@.log 2>&1 || (cat $@.log && false)) +$(call gb_CppunitTest_get_target,%) :| $(gb_CppunitTest_CPPTESTTARGET) + $(call gb_Output_announce,$*,$(true),CUT,2) + $(call gb_Helper_abbreviate_dirs_native,\ + mkdir -p $(dir $@) && \ + $(gb_CppunitTest_CPPTESTCOMMAND) $(call gb_LinkTarget_get_target,CppunitTest/$(call gb_CppunitTest_get_libfilename,$*)) $(call gb_CppunitTest__make_args,$(ARGS),$(UNO_SERVICES),$(UNO_TYPES)) $(if $(gb_CppunitTest__interactive),,> $@.log 2>&1 || (cat $@.log && false))) define gb_CppunitTest_CppunitTest $(call gb_CppunitTest__CppunitTest_impl,$(1),$(call gb_CppunitTest__get_linktargetname,$(1))) @@ -63,49 +97,95 @@ $(call gb_LinkTarget_add_defs,$(2),\ $(gb_CppunitTest_DEFS) \ ) $(call gb_LinkTarget_add_linked_libs,$(2),cppunit) +$(call gb_LinkTarget_add_includes,$(2),$(filter -I%,$(CPPUNIT_CFLAGS))) +$(call gb_LinkTarget_set_defs,$(2), \ + $$(DEFS) \ + $(filter-out -I%,$(CPPUNIT_CFLAGS)) \ +) $(call gb_CppunitTest_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2)) $(call gb_CppunitTest_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2)) $(call gb_CppunitTest_CppunitTest_platform,$(1),$(2),$(gb_CppunitTest_DLLDIR)/$(call gb_CppunitTest_get_libfilename,$(1))) +$(call gb_CppunitTest_get_target,$(1)) : ARGS := +$(call gb_CppunitTest_get_target,$(1)) : URE := $(false) +$(call gb_CppunitTest_get_target,$(1)) : UNO_SERVICES := +$(call gb_CppunitTest_get_target,$(1)) : UNO_TYPES := $$(eval $$(call gb_Module_register_target,$(call gb_CppunitTest_get_target,$(1)),$(call gb_CppunitTest_get_clean_target,$(1)))) endef +define gb_CppunitTest_set_args +$(call gb_CppunitTest_get_target,$(1)) : ARGS := $(2) + +endef + +# TODO: Once we build the services.rdb with gbuild we should use its *_get_target method +define gb_CppunitTest_uses_ure +$(call gb_CppunitTest_get_target,$(1)) : $(call gb_CppunitTest__get_uno_type_target,udkapi) +$(call gb_CppunitTest_get_target,$(1)) : $(OUTDIR)/xml/ure/services.rdb +$(call gb_CppunitTest_get_target,$(1)) : URE := $(true) + +endef + +define gb_CppunitTest_add_type_rdb +$(call gb_CppunitTest_get_target,$(1)) : $(call gb_CppunitTest__get_uno_type_target,$(2)) +$(call gb_CppunitTest_get_target,$(1)) : UNO_TYPES += $(2) +endef + +define gb_CppunitTest_add_type_rdbs +$(foreach rdb,$(2),$(eval $(call gb_CppunitTest_add_type_rdb,$(1),$(rdb)))) +endef + +define gb_CppunitTest_add_service_rdb +$(call gb_CppunitTest_get_target,$(1)) : $(call gb_RdbTarget_get_target,$(2)) +$(call gb_CppunitTest_get_clean_target,$(1)) : $(call gb_RdbTarget_get_clean_target,$(2)) +$(call gb_CppunitTest_get_target,$(1)) : UNO_SERVICES += $(2) +endef + +define gb_CppunitTest_add_service_rdbs +$(foreach rdb,$(2),$(eval $(call gb_CppunitTest_add_service_rdb,$(1),$(rdb)))) +endef + define gb_CppunitTest__forward_to_Linktarget gb_CppunitTest_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_CppunitTest__get_linktargetname,$$(1)),$$(2),$$(3)) endef $(eval $(foreach method,\ - add_cobject \ - add_cobjects \ - add_cxxobject \ - add_cxxobjects \ - add_objcxxobject \ - add_objcxxobjects \ - add_exception_objects \ - add_noexception_objects \ + add_cobject \ + add_cobjects \ + add_cxxobject \ + add_cxxobjects \ + add_exception_objects \ + add_executable_objects \ + add_library_objects \ + add_linked_libs \ + add_linked_static_libs \ + add_noexception_objects \ + add_objcobject \ + add_objcobjects \ + add_objcxxobject \ + add_objcxxobjects \ + add_package_headers \ + add_precompiled_header \ + add_sdi_headers \ add_cflags \ - set_cflags \ + set_cflags \ add_cxxflags \ set_yaccflags \ add_objcxxflags \ - set_objcxxflags \ add_defs \ - set_defs \ - set_include \ + set_defs \ + set_include \ add_ldflags \ - set_ldflags \ + set_ldflags \ add_libs \ - set_library_path_flags \ - add_linked_libs \ - add_linked_static_libs \ + set_library_path_flags \ + set_objcflags \ + set_objcxxflags \ use_external \ use_externals \ - add_package_headers \ - add_sdi_headers \ - add_precompiled_header \ ,\ - $(call gb_CppunitTest__forward_to_Linktarget,$(method))\ + $(call gb_CppunitTest__forward_to_Linktarget,$(method))\ )) -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/CustomTarget.mk b/solenv/gbuild/CustomTarget.mk index 6f65308f7dc9..0cb6b971a710 100644 --- a/solenv/gbuild/CustomTarget.mk +++ b/solenv/gbuild/CustomTarget.mk @@ -30,9 +30,9 @@ gb_CustomTarget_REPOSITORYNAMES := $(gb_Helper_REPOSITORYNAMES) # N.B.: putting the "+" there at the start activates the GNU make job server define gb_CustomTarget__command +$(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(call gb_CustomTarget_get_workdir,$(2)) && \ - $(MAKE) -C $(call gb_CustomTarget_get_workdir,$(2)) -f $< && \ - touch $(1)) + mkdir -p $(call gb_CustomTarget_get_workdir,$(2)) && \ + $(MAKE) -C $(call gb_CustomTarget_get_workdir,$(2)) -f $< && \ + touch $(1)) endef @@ -42,9 +42,9 @@ $(call gb_CustomTarget_get_target,%) : .PHONY: $(call gb_CustomTarget_get_clean_target,%) $(call gb_CustomTarget_get_clean_target,%) : - $(call gb_Output_announce,$*,$(false),MAK,3) - $(call gb_Helper_abbreviate_dirs,\ - rm -rf $(call gb_CustomTarget_get_workdir,$*) && \ + $(call gb_Output_announce,$*,$(false),MAK,3) + $(call gb_Helper_abbreviate_dirs,\ + rm -rf $(call gb_CustomTarget_get_workdir,$*) && \ rm -f $(call gb_CustomTarget_get_target,$*)) define gb_CustomTarget__get_makefile @@ -81,4 +81,4 @@ $(foreach dependency,$(2),$(call gb_CustomTarget_add_outdir_dependency,$(1),$(de endef -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/Deliver.mk b/solenv/gbuild/Deliver.mk index 2af490e3a517..42707c0f8484 100644 --- a/solenv/gbuild/Deliver.mk +++ b/solenv/gbuild/Deliver.mk @@ -39,17 +39,17 @@ endef define gb_Deliver_add_deliverable gb_Deliver_DELIVERABLES += $$(patsubst $(REPODIR)/%,%,$(2)):$$(patsubst $(REPODIR)/%,%,$(1)) -$(if $(gb_HIRESTIME),,.LOW_RESOLUTION_TIME : $(1)) +$(if $(gb_LOWRESTIME),.LOW_RESOLUTION_TIME : $(1),) endef ifeq ($(strip $(gb_Deliver_GNUCOPY)),) define gb_Deliver__deliver -mkdir -p $(dir $(2)) && $(if $(gb_Deliver_CLEARONDELIVER),rm -f $(2) &&) cp -f $(1) $(2) && touch -r $(1) $(2) +mkdir -p $(dir $(2)) && $(if $(gb_Deliver_CLEARONDELIVER),rm -f $(2) &&) $(if $(gb_Deliver_HARDLINK),ln,cp -f) $(1) $(2) && touch -r $(1) $(2) endef else define gb_Deliver__deliver -mkdir -p $(dir $(2)) && $(gb_Deliver_GNUCOPY) $(if $(gb_Deliver_CLEARONDELIVER),--remove-destination) --force --preserve=timestamps $(1) $(2) +mkdir -p $(dir $(2)) && $(gb_Deliver_GNUCOPY) $(if $(gb_Deliver_CLEARONDELIVER),--remove-destination) $(if $(gb_Deliver_HARDLINK),--link) --force --preserve=timestamps $(1) $(2) endef endif @@ -72,7 +72,7 @@ deliverlog : COMMAND := \ mkdir -p $$(OUTDIR)/inc/$$(strip $$(gb_Module_ALLMODULES)) \ && RESPONSEFILE=$$(call var2file,$(shell $(gb_MKTEMP)),100,$$(sort $$(gb_Deliver_DELIVERABLES))) \ && $(gb_AWK) -f $$(GBUILDDIR)/processdelivered.awk < $$$${RESPONSEFILE} \ - > $$(OUTDIR)/inc/$$(strip $(gb_Module_ALLMODULES))/gb_deliver.log \ + > $$(OUTDIR)/inc/$$(strip $(gb_Module_ALLMODULES))/gb_deliver.log \ && rm -f $$$${RESPONSEFILE} else $$(eval $$(call gb_Output_announce,more than one module - creating no deliver.log,$$(true),LOG,1)) @@ -84,8 +84,8 @@ endef # deliver.log format is broken in that case anyway .PHONY : deliverlog showdeliverables deliverlog: - $(eval $(call gb_Deliver_setdeliverlogcommand)) - $(call gb_Helper_abbreviate_dirs, $(COMMAND)) + $(eval $(call gb_Deliver_setdeliverlogcommand)) + $(call gb_Helper_abbreviate_dirs, $(COMMAND)) # all : deliverlog @@ -94,8 +94,8 @@ $(info $(1) $(patsubst $(OUTDIR)/%,%,$(2))) endef showdeliverables : - $(eval MAKEFLAGS := s) - $(foreach deliverable,$(sort $(gb_Deliver_DELIVERABLES)),\ - $(call gb_Deliver_print_deliverable,$(REPODIR)/$(firstword $(subst :, ,$(deliverable))),$(REPODIR)/$(lastword $(subst :, ,$(deliverable))))) - true -# vim: set noet sw=4 ts=4: + $(eval MAKEFLAGS := s) + $(foreach deliverable,$(sort $(gb_Deliver_DELIVERABLES)),\ + $(call gb_Deliver_print_deliverable,$(REPODIR)/$(firstword $(subst :, ,$(deliverable))),$(REPODIR)/$(lastword $(subst :, ,$(deliverable))))) + true +# vim: set noet sw=4: diff --git a/solenv/gbuild/Executable.mk b/solenv/gbuild/Executable.mk index 511fdf659945..283d39d5499c 100644 --- a/solenv/gbuild/Executable.mk +++ b/solenv/gbuild/Executable.mk @@ -32,14 +32,14 @@ .PHONY : $(call gb_Executable_get_clean_target,%) $(call gb_Executable_get_clean_target,%) : - $(call gb_Helper_abbreviate_dirs,\ - rm -f $(call gb_Executable_get_target,$*) \ - $(AUXTARGETS)) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_Executable_get_target,$*) \ + $(AUXTARGETS)) $(call gb_Executable_get_target,%) : - $(call gb_Helper_abbreviate_dirs,\ - $(call gb_Deliver_deliver,$<,$@) \ - $(foreach target,$(AUXTARGETS), && $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(target)),$(target)))) + $(call gb_Helper_abbreviate_dirs,\ + $(call gb_Deliver_deliver,$<,$@) \ + $(foreach target,$(AUXTARGETS), && $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(target)),$(target)))) define gb_Executable_Executable $(call gb_Executable__Executable_impl,$(1),Executable/$(1)$(gb_Executable_EXT)) @@ -64,42 +64,46 @@ endef define gb_Executable_forward_to_Linktarget -gb_Executable_$(1) = $$(call gb_LinkTarget_$(1),Executable/$$(1)$$(gb_Executable_EXT),$$(2),$$(3)) +gb_Executable_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_Executable_get_linktargetname,$$(1)),$$(2),$$(3)) endef $(eval $(foreach method,\ - add_cobject \ - add_cobjects \ - add_cxxobject \ - add_cxxobjects \ - add_objcxxobject \ - add_objcxxobjects \ - add_exception_objects \ - add_noexception_objects \ - add_generated_exception_objects \ + add_cobject \ + add_cobjects \ + add_cxxobject \ + add_cxxobjects \ + add_objcobject \ + add_objcobjects \ + add_objcxxobject \ + add_objcxxobjects \ + add_exception_objects \ + add_noexception_objects \ + add_generated_cxxobjects \ + add_generated_exception_objects \ add_cflags \ - set_cflags \ + set_cflags \ add_cxxflags \ - set_cxxflags \ + set_cxxflags \ add_objcxxflags \ - set_objcxxflags \ + set_objcflags \ + set_objcxxflags \ add_defs \ - set_defs \ - set_include \ + set_defs \ + set_include \ add_ldflags \ - set_ldflags \ + set_ldflags \ add_libs \ - set_library_path_flags \ - add_linked_libs \ - add_linked_static_libs \ + set_library_path_flags \ + add_linked_libs \ + add_linked_static_libs \ use_external \ use_externals \ - add_package_headers \ - add_sdi_headers \ - add_precompiled_header \ + add_package_headers \ + add_sdi_headers \ + add_precompiled_header \ ,\ - $(call gb_Executable_forward_to_Linktarget,$(method))\ + $(call gb_Executable_forward_to_Linktarget,$(method))\ )) -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/Helper.mk b/solenv/gbuild/Helper.mk index e8b6226f54ce..990eb37243ff 100644 --- a/solenv/gbuild/Helper.mk +++ b/solenv/gbuild/Helper.mk @@ -1,3 +1,4 @@ +# -*- Mode: GNUmakefile; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ #************************************************************************* # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -29,14 +30,6 @@ gb_Helper_NULLFILE := /dev/null gb_Helper_MISC := $(WORKDIR)/Misc -ifeq ($(JAVACOMPILER),) -JAVACOMPILER := javac -endif - -ifeq ($(JAVAINTERPRETER),) -JAVAINTERPRETER := java -endif - # general propose phony target gb_Helper_PHONY := $(gb_Helper_MISC)/PHONY @@ -47,7 +40,7 @@ gb_Helper_REPOSITORYNAMES := .PHONY : $(WORKDIR)/Misc/PHONY $(gb_Helper_MISCDUMMY) : - @mkdir -p $(dir $@) && touch $@ + @mkdir -p $(dir $@) && touch $@ define gb_Helper_abbreviate_dirs R=$(REPODIR) && \ @@ -73,19 +66,19 @@ endef define gb_Helper_make_clean_targets $(foreach targettype,$(1),\ - $(call gb_Helper_make_clean_target,$(targettype))) + $(call gb_Helper_make_clean_target,$(targettype))) endef define gb_Helper_make_outdir_clean_targets $(foreach targettype,$(1),\ - $(call gb_Helper_make_outdir_clean_target,$(targettype))) + $(call gb_Helper_make_outdir_clean_target,$(targettype))) endef define gb_Helper_make_dep_targets $(foreach targettype,$(1),\ - $(call gb_Helper_make_dep_target,$(targettype))) + $(call gb_Helper_make_dep_target,$(targettype))) endef @@ -118,7 +111,7 @@ endef define gb_Helper_init_registries gb_Executable_VALIDGROUPS := UREBIN SDK OOO BRAND NONE -gb_Library_VALIDGROUPS := OOOLIBS PLAINLIBS_NONE PLAINLIBS_URE PLAINLIBS_OOO RTLIBS RTVERLIBS STLLIBS UNOLIBS_URE UNOLIBS_OOO UNOVERLIBS +gb_Library_VALIDGROUPS := OOOLIBS PLAINLIBS_NONE PLAINLIBS_URE PLAINLIBS_OOO RTLIBS RTVERLIBS UNOLIBS_URE UNOLIBS_OOO UNOVERLIBS gb_StaticLibrary_VALIDGROUPS := PLAINLIBS $$(foreach group,$$(gb_Executable_VALIDGROUPS),$$(eval gb_Executable_$$(group) :=)) @@ -184,4 +177,11 @@ gb_StaticLibrary_$(1) += $(2) endef +define gb_Helper_execute +$(call gb_Helper_set_ld_path) $(OUTDIR_FOR_BUILD)/bin/$(1) +endef + +export gb_Helper_set_ld_path +export gb_Helper_execute + # vim: set noet sw=4 ts=4: diff --git a/solenv/gbuild/JavaClassSet.mk b/solenv/gbuild/JavaClassSet.mk index ba9e445026fb..00aefb4ee9c6 100644 --- a/solenv/gbuild/JavaClassSet.mk +++ b/solenv/gbuild/JavaClassSet.mk @@ -30,11 +30,11 @@ gb_JavaClassSet_JAVACCOMMAND := $(JAVACOMPILER) define gb_JavaClassSet__command $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) && \ - $(gb_JavaClassSet_JAVACCOMMAND) -cp "$(CLASSPATH)" -d $(call gb_JavaClassSet_get_classdir,$(2)) $(if $(filter-out $(JARDEPS),$(3)),\ + mkdir -p $(dir $(1)) && \ + $(if $(3),$(gb_JavaClassSet_JAVACCOMMAND) -cp "$(CLASSPATH)" -d $(call gb_JavaClassSet_get_classdir,$(2)) $(if $(filter-out $(JARDEPS),$(3)),\ $(filter-out $(JARDEPS),$(3)),\ - $(filter-out $(JARDEPS),$(4))) &&\ - touch $(1)) + $(filter-out $(JARDEPS),$(4))) &&) \ + touch $(1)) endef @@ -44,8 +44,8 @@ $(call gb_JavaClassSet_get_clean_target,%) : $(call gb_JavaClassSet_get_clean_target,%) : $(call gb_Output_announce,$*,$(false),JCS,3) - $(call gb_Helper_abbreviate_dirs,\ - rm -rf $(dir $(call gb_JavaClassSet_get_target,$*))) + $(call gb_Helper_abbreviate_dirs,\ + rm -rf $(dir $(call gb_JavaClassSet_get_target,$*))) # no initialization of scoped variable CLASSPATH as it is "inherited" from controlling instance (e.g. JUnitTest, Jar) # UGLY: cannot use target local variable for REPO because it's needed in prereq @@ -110,4 +110,4 @@ define gb_JavaClassSet_use_externals $(foreach external,$(2),$(call gb_JavaClassSet_use_external,$(1),$(external))) endef -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/JunitTest.mk b/solenv/gbuild/JunitTest.mk index 5c84726958f2..eb6124be3d14 100644 --- a/solenv/gbuild/JunitTest.mk +++ b/solenv/gbuild/JunitTest.mk @@ -29,6 +29,7 @@ # JunitTest class gb_JunitTest_JAVACOMMAND := $(JAVAINTERPRETER) $(JAVAIFLAGS) +gb_JunitTest_HEADLESS := $(true) # in non-product builds, ensure that tools-based assertions do not pop up as message box, but are routed to the shell DBGSV_ERROR_OUT := shell @@ -36,18 +37,26 @@ export DBGSV_ERROR_OUT .PHONY : $(call gb_JunitTest_get_clean_target,%) $(call gb_JunitTest_get_clean_target,%) : $(call gb_JavaClassSet_get_clean_target,$(call gb_JunitTest_get_classsetname,%)) - $(call gb_Helper_abbreviate_dirs,\ - rm -f $@ $@.log) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $@ $@.log) -.PHONY : $(call gb_JunitTest_get_target,$(1)) +ifneq (,$(strip $(OOO_JUNIT_JAR))) + +.PHONY : $(call gb_JunitTest_get_target,%) $(call gb_JunitTest_get_target,%) : - $(call gb_Output_announce,$*,$(true),JUT,2) - $(call gb_Helper_abbreviate_dirs_native,\ - rm -rf $(call gb_JunitTest_get_userdir,$*) && \ - mkdir -p $(call gb_JunitTest_get_userdir,$*) && \ - $(gb_JunitTest_JAVACOMMAND) -cp "$(CLASSPATH)" $(DEFS) org.junit.runner.JUnitCore $(CLASSES) 2>&1 > $@.log || (cat $@.log && false) && \ - rm -rf $(call gb_JunitTest_get_userdir,$*)) - $(CLEAN_CMD) + $(call gb_Output_announce,$*,$(true),JUT,2) + $(call gb_Helper_abbreviate_dirs_native,\ + mkdir -p $(call gb_JunitTest_get_userdir,$*) && \ + $(gb_JunitTest_JAVACOMMAND) \ + -cp "$(CLASSPATH)" \ + $(if $(strip $(gb_JunitTest_HEADLESS)),\ + -Dorg.openoffice.test.arg.headless=$(gb_JunitTest_HEADLESS)) \ + $(if $(strip $(gb_JunitTest_DEBUGCOMMAND)),\ + '-Dorg.openoffice.test.arg.debugcommand=$(gb_JunitTest_DEBUGCOMMAND)') \ + $(DEFS) \ + org.junit.runner.JUnitCore \ + $(CLASSES) 2>&1 > $@.log || (cat $@.log && false)) + $(CLEAN_CMD) define gb_JunitTest_JunitTest $(call gb_JunitTest_get_target,$(1)) : CLASSPATH := $(value XCLASSPATH)$(gb_CLASSPATHSEP)$(call gb_JavaClassSet_get_classdir,$(call gb_JunitTest_get_classsetname,$(1)))$(gb_CLASSPATHSEP)$(OOO_JUNIT_JAR)$(gb_CLASSPATHSEP)$(OUTDIR)/lib @@ -100,4 +109,26 @@ define gb_JunitTest_add_jars $(foreach jar,$(2),$(call gb_JunitTest_add_jar,$(1),$(jar))) endef -# vim: set noet sw=4 ts=4: + +else # OOO_JUNIT_JAR + +.PHONY : $(call gb_JunitTest_get_target,$(1)) +$(call gb_JunitTest_get_target,%) : + $(call gb_Output_announce,$* (skipped - no Junit),$(true),JUT,2) + @true + +define gb_JunitTest_JunitTest +$(eval $(call gb_Module_register_target,$(call gb_JunitTest_get_target,$(1)),$(call gb_JunitTest_get_clean_target,$(1)))) +endef + +gb_JunitTest_set_defs := +gb_JunitTest_add_classes := +gb_JunitTest_add_class := +gb_JunitTest_add_sourcefile := +gb_JunitTest_add_sourcefiles := +gb_JunitTest_set_classpath := +gb_JunitTest_add_jar := +gb_JunitTest_add_jars := + +endif # OOO_JUNIT_JAR +# vim: set noet sw=4: diff --git a/solenv/gbuild/Library.mk b/solenv/gbuild/Library.mk index a5e5eb08fa90..9e6d54352fab 100644 --- a/solenv/gbuild/Library.mk +++ b/solenv/gbuild/Library.mk @@ -39,20 +39,19 @@ # gb_Library_Library_platform # gb_Library_TARGETS -gb_Library__get_linktargetname = Library/$(call gb_Library_get_filename,$(1)) # EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows .PHONY : $(WORKDIR)/Clean/OutDir/lib/%$(gb_Library_PLAINEXT) $(WORKDIR)/Clean/OutDir/lib/%$(gb_Library_PLAINEXT) : - $(call gb_Helper_abbreviate_dirs,\ - rm -f $(OUTDIR)/lib/$*$(gb_Library_PLAINEXT) \ - $(AUXTARGETS)) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(OUTDIR)/lib/$*$(gb_Library_PLAINEXT) \ + $(AUXTARGETS)) # EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows $(gb_Library_OUTDIRLOCATION)/%$(gb_Library_PLAINEXT) : - $(call gb_Helper_abbreviate_dirs,\ - $(call gb_Deliver_deliver,$<,$@) \ - $(foreach target,$(AUXTARGETS), && $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(target)),$(target)))) + $(call gb_Helper_abbreviate_dirs,\ + $(call gb_Deliver_deliver,$<,$@) \ + $(foreach target,$(AUXTARGETS), && $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(target)),$(target)))) define gb_Library_Library ifeq (,$$(findstring $(1),$$(gb_Library_KNOWNLIBS))) @@ -60,7 +59,7 @@ $$(eval $$(call gb_Output_info,Currently known libraries are: $(sort $(gb_Librar $$(eval $$(call gb_Output_error,Library $(1) must be registered in Repository.mk)) endif $(call gb_Library_get_target,$(1)) : AUXTARGETS := -$(call gb_Library__Library_impl,$(1),$(call gb_Library__get_linktargetname,$(1))) +$(call gb_Library__Library_impl,$(1),$(call gb_Library_get_linktargetname,$(1))) $(call gb_Library_add_default_nativeres,$(1),default) endef @@ -69,7 +68,7 @@ define gb_Library__Library_impl $(call gb_LinkTarget_LinkTarget,$(2)) $(call gb_LinkTarget_set_targettype,$(2),Library) $(call gb_LinkTarget_add_defs,$(2),\ - $(gb_Library_DEFS) \ + $(gb_Library_DEFS) \ ) $(call gb_Library_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2)) $(call gb_Library_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2)) @@ -80,24 +79,24 @@ $(call gb_Deliver_add_deliverable,$(call gb_Library_get_target,$(1)),$(call gb_L endef define gb_Library_set_componentfile -$(call gb_ComponentTarget_ComponentTarget,$(2),$(call gb_Library__get_componentprefix,$(1)),$(call gb_Library_get_runtime_filename,$(1))) +$(call gb_ComponentTarget_ComponentTarget,$(or $(strip $(3)),$(strip $(2))),$(call gb_Library__get_componentprefix,$(1)),$(call gb_Library_get_runtime_filename,$(1)),$(2)) $(call gb_Library_get_target,$(1)) : $(call gb_ComponentTarget_get_outdir_target,$(2)) $(call gb_ComponentTarget_get_outdir_inbuild_target,$(2)) -$(call gb_Library_get_clean_target,$(1)) : $(call gb_ComponentTarget_get_clean_target,$(2)) +$(call gb_Library_get_clean_target,$(1)) : $(call gb_ComponentTarget_get_clean_target,$(or $(strip $(3)),$(strip $(2)))) endef gb_Library__get_componentprefix = \ - $(call gb_Library__get_layer_componentprefix,$(call \ - gb_Library_get_layer,$(1))) + $(call gb_Library__get_layer_componentprefix,$(call \ + gb_Library_get_layer,$(1))) gb_Library__get_layer_componentprefix = \ - $(patsubst $(1):%,%,$(or \ - $(filter $(1):%,$(gb_Library_COMPONENTPREFIXES)), \ - $(call gb_Output_error,no ComponentTarget native prefix for layer '$(1)'))) + $(patsubst $(1):%,%,$(or \ + $(filter $(1):%,$(gb_Library_COMPONENTPREFIXES)), \ + $(call gb_Output_error,no ComponentTarget native prefix for layer '$(1)'))) define gb_Library__forward_to_Linktarget -gb_Library_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_Library__get_linktargetname,$$(1)),$$(2),$$(3)) +gb_Library_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_Library_get_linktargetname,$$(1)),$$(2),$$(3)) endef @@ -105,37 +104,42 @@ gb_Library_get_runtime_filename = \ $(or $(call gb_Library_get_dllname,$(1)),$(call gb_Library_get_filename,$(1))) $(eval $(foreach method,\ - add_cobject \ - add_cobjects \ - add_cxxobject \ - add_cxxobjects \ - add_objcxxobject \ - add_objcxxobjects \ - add_exception_objects \ - add_noexception_objects \ - add_generated_exception_objects \ + add_cobject \ + add_cobjects \ + add_cxxobject \ + add_cxxobjects \ + add_objcobject \ + add_objcobjects \ + add_objcxxobject \ + add_objcxxobjects \ + add_exception_objects \ + add_noexception_objects \ + add_generated_cxxobjects \ + add_generated_exception_objects \ add_cflags \ - set_cflags \ + set_cflags \ add_cxxflags \ - set_cxxflags \ + set_cxxflags \ add_objcxxflags \ - set_objcxxflags \ + set_objcflags \ + set_objcxxflags \ add_defs \ - set_defs \ - set_include \ + set_defs \ + set_include \ add_ldflags \ - set_ldflags \ + set_ldflags \ add_libs \ - set_library_path_flags \ - add_linked_libs \ - add_linked_static_libs \ + set_library_path_flags \ + add_linked_libs \ + add_linked_static_libs \ use_external \ use_externals \ - add_package_headers \ - add_sdi_headers \ - add_precompiled_header \ + add_package_headers \ + add_sdi_headers \ + add_precompiled_header \ + export_objects_list \ ,\ - $(call gb_Library__forward_to_Linktarget,$(method))\ + $(call gb_Library__forward_to_Linktarget,$(method))\ )) -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk index 7af90355e656..20f99db06752 100644 --- a/solenv/gbuild/LinkTarget.mk +++ b/solenv/gbuild/LinkTarget.mk @@ -43,6 +43,35 @@ CXXFLAGS ?= $(gb_COMPILEROPTFLAGS) OBJCXXFLAGS ?= $(gb_COMPILEROPTFLAGS) endif +# Overview of dependencies and tasks of LinkTarget +# +# target task depends on +# LinkTarget linking CObject CxxObject GenCxxObject ObjCObject ObjCxxObject +# LinkTarget/headers +# LinkTarget/dep joined dep file CObject/dep CxxObject/dep GenCxxObject/dep ObjCObject/dep ObjCxxObject/dep +# | LinkTarget/headers +# LinkTarget/headers all headers available LinkTarget/external_headers PCH +# including own generated own generated headers +# PCH precompiled headers (win) LinkTarget/external_headers +# LinkTarget/external_headers all external headers avail. header files of linked libs +# +# CObject plain c compile | LinkTarget/headers +# CxxObject c++ compile | LinkTarget/headers +# GenCxxObject C++ compile from | LinkTarget/headers +# generated source +# ObjCObject objective c compile | LinkTarget/headers +# ObjCxxObject objective c++ compile | LinkTarget/headers +# +# CObject/dep dependencies these targets generate empty dep files +# CxxObject/dep dependencies that are populated upon compile +# GenCxxObject/dep dependencies +# ObjCObject/dep dependencies +# ObjCxxObject/dep dependencies + +# LinkTarget/headers means gb_LinkTarget_get_headers_target etc. +# dependencies prefixed with | are build-order only dependencies + + # For every object there is a dep file (if gb_FULLDEPS is active). # The dep file depends on the object: the Object__command also updates the @@ -86,7 +115,7 @@ endef $(foreach repo,$(gb_CObject_REPOS),$(eval $(call gb_CObject__rules,$(repo)))) $(call gb_CObject_get_dep_target,%) : - $(eval $(call gb_Output_error,Unable to find plain C file $(call gb_CObject_get_source,,$*) in the repositories: $(gb_CObject_REPOS))) + $(eval $(call gb_Output_error,Unable to find plain C file $(call gb_CObject_get_source,,$*) in the repositories: $(gb_CObject_REPOS))) gb_CObject_CObject = @@ -129,7 +158,7 @@ endef define gb_CxxObject__rules $$(call gb_CxxObject_get_target,%) : $$(call gb_CxxObject_get_source,$(1),%) - $$(eval $$(gb_CxxObject__set_pchflags)) + $$(eval $$(gb_CxxObject__set_pchflags)) $$(call gb_CxxObject__command,$$@,$$*,$$<,$$(call gb_CxxObject_get_dep_target,$$*)) ifeq ($(gb_FULLDEPS),$(true)) @@ -145,7 +174,7 @@ $(foreach repo,$(gb_CxxObject_REPOS),$(eval $(call gb_CxxObject__rules,$(repo))) ifeq ($(gb_FULLDEPS),$(true)) $(call gb_CxxObject_get_dep_target,%) : - $(eval $(call gb_Output_error,Unable to find C++ file $(call gb_CxxObject_get_source,,$*) in repositories: $(gb_CxxObject_REPOS))) + $(eval $(call gb_Output_error,Unable to find C++ file $(call gb_CxxObject_get_source,,$*) in repositories: $(gb_CxxObject_REPOS))) endif @@ -194,16 +223,59 @@ $(foreach repo,$(gb_ObjCxxObject_REPOS),$(eval $(call gb_ObjCxxObject__rules,$(r ifeq ($(gb_FULLDEPS),$(true)) $(call gb_ObjCxxObject_get_dep_target,%) : - $(eval $(call gb_Output_error,Unable to find Objective C++ file $(call gb_ObjCxxObject_get_source,,$*) in repositories: $(gb_ObjCxxObject_REPOS))) + $(eval $(call gb_Output_error,Unable to find Objective C++ file $(call gb_ObjCxxObject_get_source,,$*) in repositories: $(gb_ObjCxxObject_REPOS))) endif gb_ObjCxxObject_ObjCxxObject = +# ObjCObject class +# +gb_ObjCObject_REPOS := $(gb_REPOS) + +gb_ObjCObject_get_source = $(1)/$(2).m +# defined by platform +# gb_ObjCObject__command + +# this rule generates an "always rebuild" dep file, to have something to include. +# the dep file will be overridden on the fly, when the object is compiled +ifeq ($(gb_FULLDEPS),$(true)) +define gb_ObjCObject__command_dep +mkdir -p $(dir $(1)) && \ + echo '$(call gb_ObjCObject_get_target,$(2)) : $$(gb_Helper_PHONY)' > $(1) + +endef +else +gb_ObjCObject__command_dep = +endif + +define gb_ObjCObject__rules +$$(call gb_ObjCObject_get_target,%) : $$(call gb_ObjCObject_get_source,$(1),%) + $$(call gb_ObjCObject__command,$$@,$$*,$$<,$$(DEFS),$$(OBJCFLAGS),$$(INCLUDE_STL) $$(INCLUDE)) + +ifeq ($(gb_FULLDEPS),$(true)) +$$(call gb_ObjCObject_get_dep_target,%) : $$(call gb_ObjCObject_get_source,$(1),%) + $$(call gb_ObjCObject__command_dep,$$@,$$*,$$<,$$(DEFS),$$(OBJCFLAGS),$$(INCLUDE_STL) $$(INCLUDE)) +endif + +endef + +$(foreach repo,$(gb_ObjCObject_REPOS),$(eval $(call gb_ObjCObject__rules,$(repo)))) + +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_ObjCObject_get_dep_target,%) : + $(eval $(call gb_Output_error,Unable to find Objective C++ file $(call gb_ObjCObject_get_source,,$*) in repositories: $(gb_ObjCObject_REPOS))) +endif + +gb_ObjCObject_ObjCObject = + # LinkTarget class gb_LinkTarget_DEFAULTDEFS := $(gb_GLOBALDEFS) +gb_LinkTarget_OBJECTOWNER := +gb_LinkTarget_OBJECTS := + # defined by platform # gb_LinkTarget_CXXFLAGS # gb_LinkTarget_LDFLAGS @@ -212,49 +284,66 @@ gb_LinkTarget_DEFAULTDEFS := $(gb_GLOBALDEFS) .PHONY : $(call gb_LinkTarget_get_clean_target,%) $(call gb_LinkTarget_get_clean_target,%) : - $(call gb_Output_announce,$*,$(false),LNK,4) - RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),200,\ - $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ - $(foreach object,$(COBJECTS),$(call gb_CObject_get_dep_target,$(object))) \ - $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ - $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_dep_target,$(object))) \ - $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \ - $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_dep_target,$(object))) \ - $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ - $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_dep_target,$(object))) \ - $(call gb_LinkTarget_get_target,$*) \ - $(call gb_LinkTarget_get_dep_target,$*) \ - $(call gb_LinkTarget_get_headers_target,$*) \ - $(call gb_LinkTarget_get_external_headers_target,$*) \ - $(DLLTARGET) \ - $(AUXTARGETS)) && \ - cat $${RESPONSEFILE} /dev/null | xargs -n 200 rm -f && \ - rm -f $${RESPONSEFILE} + $(call gb_Output_announce,$*,$(false),LNK,4) + RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),200,\ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_dep_target,$(object))) \ + $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_dep_target,$(object))) \ + $(foreach object,$(OBJCOBJECTS),$(call gb_ObjCObject_get_target,$(object))) \ + $(foreach object,$(OBJCOBJECTS),$(call gb_ObjCObject_get_dep_target,$(object))) \ + $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \ + $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_dep_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_dep_target,$(object))) \ + $(call gb_LinkTarget_get_target,$*) \ + $(call gb_LinkTarget_get_dep_target,$*) \ + $(call gb_LinkTarget_get_headers_target,$*) \ + $(call gb_LinkTarget_get_external_headers_target,$*) \ + $(call gb_LinkTarget_get_objects_list,$*) \ + $(DLLTARGET) \ + $(AUXTARGETS)) && \ + cat $${RESPONSEFILE} /dev/null | xargs -n 200 rm -f && \ + rm -f $${RESPONSEFILE} # cat the deps of all objects in one file, then we need only open that one file define gb_LinkTarget__command_dep $(call gb_Output_announce,LNK:$(2),$(true),DEP,1) $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $(1)) && \ - RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),200,\ - $(foreach object,$(3),$(call gb_CObject_get_dep_target,$(object))) \ - $(foreach object,$(4),$(call gb_CxxObject_get_dep_target,$(object))) \ - $(foreach object,$(5),$(call gb_ObjCxxObject_get_dep_target,$(object)))\ - $(foreach object,$(6),$(call gb_GenCxxObject_get_dep_target,$(object)))\ - ) && \ - cat $${RESPONSEFILE} /dev/null | xargs -n 200 cat > $(1)) && \ - rm -f $${RESPONSEFILE} + mkdir -p $(dir $(1)) && \ + RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),200,\ + $(foreach object,$(3),$(call gb_CObject_get_dep_target,$(object))) \ + $(foreach object,$(4),$(call gb_CxxObject_get_dep_target,$(object))) \ + $(foreach object,$(5),$(call gb_ObjCObject_get_dep_target,$(object)))\ + $(foreach object,$(6),$(call gb_ObjCxxObject_get_dep_target,$(object)))\ + $(foreach object,$(7),$(call gb_GenCxxObject_get_dep_target,$(object)))\ + ) && \ + cat $${RESPONSEFILE} /dev/null | xargs -n 200 cat > $(1)) && \ + rm -f $${RESPONSEFILE} + +endef + +define gb_LinkTarget__command_objectlist +TEMPFILE=$(call var2file,$(shell $(gb_MKTEMP)),200,\ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ + $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(OBJCOBJECTS),$(call gb_ObjCObject_get_target,$(object))) \ + $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object)))) && \ +$(if $(EXTRAOBJECTLISTS),cat $(EXTRAOBJECTLISTS) >> $${TEMPFILE} && ) \ +mv $${TEMPFILE} $(call gb_LinkTarget_get_objects_list,$(2)) endef $(call gb_LinkTarget_get_target,%) : $(call gb_LinkTarget_get_headers_target,%) $(gb_Helper_MISCDUMMY) - $(call gb_LinkTarget__command,$@,$*) + $(call gb_LinkTarget__command,$@,$*) + $(call gb_LinkTarget__command_objectlist,$@,$*) ifeq ($(gb_FULLDEPS),$(true)) $(call gb_LinkTarget_get_target,%) : $(call gb_LinkTarget_get_dep_target,%) $(call gb_LinkTarget_get_dep_target,%) : | $(call gb_LinkTarget_get_headers_target,%) - $(call gb_LinkTarget__command_dep,$@,$*,$(COBJECTS),$(CXXOBJECTS),$(OBJCXXOBJECTS),$(GENCXXOBJECTS)) + $(call gb_LinkTarget__command_dep,$@,$*,$(COBJECTS),$(CXXOBJECTS),$(OBJCOBJECTS),$(OBJCXXOBJECTS),$(GENCXXOBJECTS)) endif # Ok, this is some dark voodoo: When declaring a linktarget with @@ -276,12 +365,12 @@ $$@ : COMMAND := $$(call gb_Helper_abbreviate_dirs, mkdir -p $$(dir $$@) && touc endef $(call gb_LinkTarget_get_external_headers_target,%) : - $(eval $(gb_LinkTarget__get_external_headers_check)) - $(COMMAND) + $(eval $(gb_LinkTarget__get_external_headers_check)) + $(COMMAND) $(call gb_LinkTarget_get_headers_target,%) : $(call gb_LinkTarget_get_external_headers_target,%) - $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $@) && touch $@) + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && touch $@) # Explanation of some of the targets: # - gb_LinkTarget_get_external_headers_target is the targets that guarantees all @@ -328,6 +417,8 @@ $(call gb_LinkTarget_get_target,$(1)) : COBJECTS := $(call gb_LinkTarget_get_clean_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : CXXOBJECTS := $(call gb_LinkTarget_get_clean_target,$(1)) \ +$(call gb_LinkTarget_get_target,$(1)) : OBJCOBJECTS := +$(call gb_LinkTarget_get_clean_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : OBJCXXOBJECTS := $(call gb_LinkTarget_get_clean_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : GENCXXOBJECTS := @@ -356,12 +447,14 @@ $(call gb_LinkTarget_get_target,$(1)) : PCH_NAME := $(call gb_LinkTarget_get_target,$(1)) : PCHOBJS := $(call gb_LinkTarget_get_headers_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : PDBFILE := +$(call gb_LinkTarget_get_target,$(1)) : EXTRAOBJECTLISTS := $(call gb_LinkTarget_get_target,$(1)) : NATIVERES := ifeq ($(gb_FULLDEPS),$(true)) -include $(call gb_LinkTarget_get_dep_target,$(1)) $(call gb_LinkTarget_get_dep_target,$(1)) : COBJECTS := $(call gb_LinkTarget_get_dep_target,$(1)) : CXXOBJECTS := +$(call gb_LinkTarget_get_dep_target,$(1)) : OBJCOBJECTS := $(call gb_LinkTarget_get_dep_target,$(1)) : OBJCXXOBJECTS := $(call gb_LinkTarget_get_dep_target,$(1)) : GENCXXOBJECTS := $(call gb_LinkTarget_get_dep_target,$(1)) : T_CFLAGS := $$(gb_LinkTarget_CFLAGS) $(CFLAGS) @@ -374,6 +467,7 @@ $(call gb_LinkTarget_get_dep_target,$(1)) : INCLUDE := $$(gb_LinkTarget_INCLUDE) $(call gb_LinkTarget_get_dep_target,$(1)) : INCLUDE_STL := $$(gb_LinkTarget_INCLUDE_STL) $(call gb_LinkTarget_get_dep_target,$(1)) : TARGETTYPE := $(call gb_LinkTarget_get_dep_target,$(1)) : PCH_NAME := +$(call gb_LinkTarget_get_dep_target,$(1)) : EXTRAOBJECTLISTS := endif endef @@ -476,6 +570,14 @@ endif endef +define gb_LinkTarget_set_objcflags +$(call gb_LinkTarget_get_target,$(1)) : OBJCFLAGS := $(2) +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_LinkTarget_get_dep_target,$(1)) : OBJCFLAGS := $(2) +endif + +endef + define gb_LinkTarget_set_include $(call gb_LinkTarget_get_headers_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : INCLUDE := $(2) @@ -548,6 +650,11 @@ $(call gb_LinkTarget_get_dep_target,$(1)) : COBJECTS += $(2) $(call gb_LinkTarget_get_dep_target,$(1)) : $(call gb_CObject_get_dep_target,$(2)) endif +ifeq ($(gb_CHECKOBJECTOWNER),$(true)) +gb_LinkTarget_OBJECTOWNER += $(call gb_CObject_get_target,$(2)):$(1) +gb_LinkTarget_OBJECTS += $(call gb_CObject_get_target,$(2)) +endif + endef define gb_LinkTarget_add_cxxobject @@ -563,6 +670,31 @@ $(call gb_LinkTarget_get_dep_target,$(1)) : CXXOBJECTS += $(2) $(call gb_LinkTarget_get_dep_target,$(1)) : $(call gb_CxxObject_get_dep_target,$(2)) endif +ifeq ($(gb_CHECKOBJECTOWNER),$(true)) +gb_LinkTarget_OBJECTOWNER += $(call gb_CxxObject_get_target,$(2)):$(1) +gb_LinkTarget_OBJECTS += $(call gb_CxxObject_get_target,$(2)) +endif + +endef + +define gb_LinkTarget_add_objcobject +$(call gb_LinkTarget_get_target,$(1)) : OBJCOBJECTS += $(2) +$(call gb_LinkTarget_get_clean_target,$(1)) : OBJCOBJECTS += $(2) + +$(call gb_LinkTarget_get_target,$(1)) : $(call gb_ObjCObject_get_target,$(2)) +$(call gb_ObjCObject_get_target,$(2)) : | $(call gb_LinkTarget_get_headers_target,$(1)) +$(call gb_ObjCObject_get_target,$(2)) : OBJCFLAGS += $(3) + +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_LinkTarget_get_dep_target,$(1)) : OBJCOBJECTS += $(2) +$(call gb_LinkTarget_get_dep_target,$(1)) : $(call gb_ObjCObject_get_dep_target,$(2)) +endif + +ifeq ($(gb_CHECKOBJECTOWNER),$(true)) +gb_LinkTarget_OBJECTOWNER += $(call gb_ObjCObject_get_target,$(2)):$(1) +gb_LinkTarget_OBJECTS += $(call gb_ObjCObject_get_target,$(2)) +endif + endef define gb_LinkTarget_add_objcxxobject @@ -578,6 +710,11 @@ $(call gb_LinkTarget_get_dep_target,$(1)) : OBJCXXOBJECTS += $(2) $(call gb_LinkTarget_get_dep_target,$(1)) : $(call gb_ObjCxxObject_get_dep_target,$(2)) endif +ifeq ($(gb_CHECKOBJECTOWNER),$(true)) +gb_LinkTarget_OBJECTOWNER += $(call gb_ObjCxxObject_get_target,$(2)):$(1) +gb_LinkTarget_OBJECTS += $(call gb_ObjCxxObject_get_target,$(2)) +endif + endef define gb_LinkTarget_add_generated_cxx_object @@ -593,6 +730,11 @@ $(call gb_LinkTarget_get_dep_target,$(1)) : GENCXXOBJECTS += $(2) $(call gb_LinkTarget_get_dep_target,$(1)) : $(call gb_GenCxxObject_get_dep_target,$(2)) endif +ifeq ($(gb_CHECKOBJECTOWNER),$(true)) +gb_LinkTarget_OBJECTOWNER += $(call gb_GenCxxObject_get_target,$(2)):$(1) +gb_LinkTarget_OBJECTS += $(call gb_GenCxxObject_get_target,$(2)) +endif + endef define gb_LinkTarget_add_noexception_object @@ -607,10 +749,36 @@ define gb_LinkTarget_add_cobjects $(foreach obj,$(2),$(call gb_LinkTarget_add_cobject,$(1),$(obj),$(3))) endef +define gb_LinkTarget_add_linktarget_objects +$(call gb_LinkTarget_get_target,$(1)) : $(foreach linktarget,$(2),$(call gb_LinkTarget_get_target,$(linktarget))) +$(info gb_LinkTarget_add_linktarget_objects,$(1),$(2)) +$(call gb_LinkTarget_get_target,$(1)) : EXTRAOBJECTLISTS += $(foreach linktarget,$(2),$(call gb_LinkTarget_get_objects_list,$(linktarget))) + +endef + +define gb_LinkTarget_add_library_objects +ifneq (,$$(filter-out $(gb_Library_KNOWNLIBS),$(2))) +$$(eval $$(call gb_Output_info,currently known libraries are: $(sort $(gb_Library_KNOWNLIBS)),ALL)) +$$(eval $$(call gb_Output_error,Cannot import objects library/libraries $$(filter-out $(gb_Library_KNOWNLIBS),$(2)). Libraries must be registered in Repository.mk)) +endif +$(info gb_LinkTarget_add_library_objects,$(1),$(2)) +$(call gb_LinkTarget_add_linktarget_objects,$(1),$(foreach lib,$(2),$(call gb_Library_get_linktargetname,$(lib)))) + +endef + +define gb_LinkTarget_add_executable_objects +$(call gb_LinkTarget_add_linktarget_objects,$(1),$(foreach exe,$(2),$(call gb_Executable_get_linktargetname,$(lib)))) + +endef + define gb_LinkTarget_add_cxxobjects $(foreach obj,$(2),$(call gb_LinkTarget_add_cxxobject,$(1),$(obj),$(3))) endef +define gb_LinkTarget_add_objcobjects +$(foreach obj,$(2),$(call gb_LinkTarget_add_objcobject,$(1),$(obj),$(3))) +endef + define gb_LinkTarget_add_objcxxobjects $(foreach obj,$(2),$(call gb_LinkTarget_add_objcxxobject,$(1),$(obj),$(3))) endef @@ -623,8 +791,12 @@ define gb_LinkTarget_add_exception_objects $(foreach obj,$(2),$(call gb_LinkTarget_add_exception_object,$(1),$(obj))) endef +define gb_LinkTarget_add_generated_cxxobjects +$(foreach obj,$(2),$(call gb_LinkTarget_add_generated_cxx_object,$(1),$(obj),$(3))) +endef + define gb_LinkTarget_add_generated_exception_object -$(call gb_LinkTarget_add_generated_cxx_object,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS)) +$(call gb_LinkTarget_add_generated_cxx_object,$(1),$(2),$(gb_LinkTarget_EXCEPTIONFLAGS) $(gb_COMPILEROPTFLAGS)) endef define gb_LinkTarget_add_generated_exception_objects @@ -680,8 +852,8 @@ $(call gb_LinkTarget_get_headers_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : PCH_DEFS = $$(DEFS) ifeq ($(gb_FULLDEPS),$(true)) -include \ - $(call gb_PrecompiledHeader_get_dep_target,$(3)) \ - $(call gb_NoexPrecompiledHeader_get_dep_target,$(3)) + $(call gb_PrecompiledHeader_get_dep_target,$(3)) \ + $(call gb_NoexPrecompiledHeader_get_dep_target,$(3)) $(call gb_LinkTarget_get_dep_target,$(1)) : DEFS := $$(DEFS) -DPRECOMPILED_HEADERS $(call gb_LinkTarget_get_dep_target,$(1)) : PCH_DEFS = $$(DEFS) endif @@ -708,4 +880,4 @@ gb_LinkTarget_use_externals = \ $(foreach external,$(2),$(call gb_LinkTarget_use_external,$(1),$(external))) -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/Module.mk b/solenv/gbuild/Module.mk index b909b46e27a0..10bf35be3733 100644 --- a/solenv/gbuild/Module.mk +++ b/solenv/gbuild/Module.mk @@ -26,6 +26,21 @@ #************************************************************************* +# Overview of dependencies and tasks of Module +# +# target task depends on +# Module build the product all product targets +# excluding tests recursive Modules +# Module/check run unit tests all unit tests +# recursive Module/checks +# Module/subsequentcheck run system tests all system tests +# recursive Module/subsequentchecks +# all (global) build the product top-level Module +# check (global) run unit tests top-level Module/check +# subsequentcheck (global) run system tests top-level Module/subsequentcheck +# allandcheck (global) default goal all check + + # Module class gb_Module_ALLMODULES := @@ -37,31 +52,31 @@ gb_Module_CLEANTARGETSTACK := .PHONY : $(call gb_Module_get_clean_target,%) $(call gb_Module_get_clean_target,%) : - $(call gb_Output_announce,$*,$(false),MOD,5) - $(call gb_Output_announce_title,module $* cleared.) - -$(call gb_Helper_abbreviate_dirs,\ - rm -f $(call gb_Module_get_target,$*) $(call gb_Module_get_check_target,$*) $(call gb_Module_get_subsequentcheck_target,$*)) + $(call gb_Output_announce,$*,$(false),MOD,5) + $(call gb_Output_announce_title,module $* cleared.) + -$(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_Module_get_target,$*) $(call gb_Module_get_check_target,$*) $(call gb_Module_get_subsequentcheck_target,$*)) $(call gb_Module_get_check_target,%) : - $(call gb_Output_announce,$*,$(true),CHK,5) - $(call gb_Output_announce_title,module $* checks done.) - -$(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $@) && \ - touch $@) + $(call gb_Output_announce,$*,$(true),CHK,5) + $(call gb_Output_announce_title,module $* checks done.) + -$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && \ + touch $@) $(call gb_Module_get_subsequentcheck_target,%) : - $(call gb_Output_announce,$*,$(true),SCK,5) - $(call gb_Output_announce_title,module $* subsequentchecks done.) - -$(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $@) && \ - touch $@) + $(call gb_Output_announce,$*,$(true),SCK,5) + $(call gb_Output_announce_title,module $* subsequentchecks done.) + -$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && \ + touch $@) $(call gb_Module_get_target,%) : - $(call gb_Output_announce,$*,$(true),MOD,5) - $(call gb_Output_announce_title,module $* done.) - -$(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $@) && \ - touch $@) + $(call gb_Output_announce,$*,$(true),MOD,5) + $(call gb_Output_announce_title,module $* done.) + -$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && \ + touch $@) .PHONY : all allandcheck clean check subsequentcheck .DEFAULT_GOAL := allandcheck @@ -74,26 +89,28 @@ ifneq ($(strip $(OOO_SUBSEQUENT_TESTS)),) endif all : - $(call gb_Output_announce,top level modules: $(foreach module,$(filter-out deliverlog,$^),$(notdir $(module))),$(true),ALL,6) - $(call gb_Output_announce,loaded modules: $(sort $(gb_Module_ALLMODULES)),$(true),ALL,6) - $(call gb_Output_announce_title,all done.) - $(call gb_Output_announce_bell) + $(call gb_Output_announce,top level modules: $(foreach module,$(filter-out deliverlog,$^),$(notdir $(module))),$(true),ALL,6) + $(call gb_Output_announce,loaded modules: $(sort $(gb_Module_ALLMODULES)),$(true),ALL,6) + $(call gb_Output_announce_title,all done.) + $(call gb_Output_announce_bell) check : - $(call gb_Output_announce,loaded modules: $(sort $(gb_Module_ALLMODULES)),$(true),CHK,6) - $(call gb_Output_announce_title,all tests checked.) - $(call gb_Output_announce_bell) + $(call gb_Output_announce,loaded modules: $(sort $(gb_Module_ALLMODULES)),$(true),CHK,6) + $(call gb_Output_announce_title,all tests checked.) + $(call gb_Output_announce_bell) -subsequentcheck : all - $(call gb_Output_announce,loaded modules: $(sort $(gb_Module_ALLMODULES)),$(true),SCK,6) - $(call gb_Output_announce_title,all subsequent tests checked.) - $(call gb_Output_announce_bell) +# removing the dependency on all for now until we can make a full build with gbuild +#subsequentcheck : all +subsequentcheck : + $(call gb_Output_announce,loaded modules: $(sort $(gb_Module_ALLMODULES)),$(true),SCK,6) + $(call gb_Output_announce_title,all subsequent tests checked.) + $(call gb_Output_announce_bell) clean : - $(call gb_Output_announce,top level modules: $(foreach module,$^,$(notdir $(module))),$(false),ALL,6) - $(call gb_Output_announce,loaded modules: $(sort $(gb_Module_ALLMODULES)),$(false),ALL,6) - $(call gb_Output_announce_title,all cleared.) - $(call gb_Output_announce_bell) + $(call gb_Output_announce,top level modules: $(foreach module,$^,$(notdir $(module))),$(false),ALL,6) + $(call gb_Output_announce,loaded modules: $(sort $(gb_Module_ALLMODULES)),$(false),ALL,6) + $(call gb_Output_announce_title,all cleared.) + $(call gb_Output_announce_bell) define gb_Module_Module gb_Module_ALLMODULES += $(1) @@ -207,6 +224,7 @@ ifneq ($$(and $$(gb_Module_TARGETSTACK),$$(gb_Module_CHECKTARGETSTACK),$$(gb_Mod $$(eval $$(call gb_Output_error,Corrupted module target stack!3)) endif +$$(eval $$(gb_Extensions_final_hook)) endef -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/Output.mk b/solenv/gbuild/Output.mk index 9246fd540b82..bc4ec38123df 100644 --- a/solenv/gbuild/Output.mk +++ b/solenv/gbuild/Output.mk @@ -97,8 +97,8 @@ gb_Output_COLOR_ERROR := $(gb_Output_COLOR_RESETANDESCAPE)[37;1;41m define gb_Output__format_type $(subst :, ,$(word 2,$(1) \ - $(gb_Output_COLOR_OUTBUILD_LEVEL$(3))[:$(gb_Output_COLOR_INBUILD_LEVEL$(3))build:$(subst $(WHITESPACE),:,$(2))$(gb_Output_COLOR_OUTBUILD_LEVEL$(3)):] \ - $(gb_Output_COLOR_OUTCLEAN_LEVEL$(3))[:$(gb_Output_COLOR_INCLEAN_LEVEL$(3))clean:$(subst $(WHITESPACE),:,$(2))$(gb_Output_COLOR_OUTCLEAN_LEVEL$(3)):]))$(gb_Output_COLOR_RESET) + $(gb_Output_COLOR_OUTBUILD_LEVEL$(3))[:$(gb_Output_COLOR_INBUILD_LEVEL$(3))__.oO:$(subst $(WHITESPACE),:,$(2))$(gb_Output_COLOR_OUTBUILD_LEVEL$(3)):] \ + $(gb_Output_COLOR_OUTCLEAN_LEVEL$(3))[:$(gb_Output_COLOR_INCLEAN_LEVEL$(3))Xx.__:$(subst $(WHITESPACE),:,$(2))$(gb_Output_COLOR_OUTCLEAN_LEVEL$(3)):]))$(gb_Output_COLOR_RESET) endef define gb_Output_info @@ -144,4 +144,4 @@ $(info $(call gb_Output__format_type,$(2),$(3),$(4)) $(call gb_Output__format_ta endef -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/Package.mk b/solenv/gbuild/Package.mk index 4b525705bc5c..db02b8083c15 100644 --- a/solenv/gbuild/Package.mk +++ b/solenv/gbuild/Package.mk @@ -29,7 +29,7 @@ # PackagePart class $(foreach destination,$(call gb_PackagePart_get_destinations), $(destination)/%) : - $(call gb_Deliver_deliver,$<,$@) + $(call gb_Deliver_deliver,$<,$@) define gb_PackagePart_PackagePart $(OUTDIR)/$(1) : $(2) @@ -43,16 +43,16 @@ endef .PHONY : $(call gb_Package_get_clean_target,%) $(call gb_Package_get_clean_target,%) : - $(call gb_Output_announce,$*,$(false),PKG,2) - -$(call gb_Helper_abbreviate_dirs,\ - rm -f $(FILES)) + $(call gb_Output_announce,$*,$(false),PKG,2) + -$(call gb_Helper_abbreviate_dirs,\ + rm -f $(FILES)) $(call gb_Package_get_preparation_target,%) : - mkdir -p $(dir $@) && touch $@ + mkdir -p $(dir $@) && touch $@ $(call gb_Package_get_target,%) : - $(call gb_Output_announce,$*,$(true),PKG,2) - mkdir -p $(dir $@) && touch $@ + $(call gb_Output_announce,$*,$(true),PKG,2) + mkdir -p $(dir $@) && touch $@ define gb_Package_Package @@ -77,4 +77,4 @@ $(eval $(call gb_CustomTarget_CustomTarget,$(2),$(3))) endef -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/PrecompiledHeaders.mk b/solenv/gbuild/PrecompiledHeaders.mk index 2c7ececf4a0a..0db75718c07c 100644 --- a/solenv/gbuild/PrecompiledHeaders.mk +++ b/solenv/gbuild/PrecompiledHeaders.mk @@ -40,38 +40,38 @@ gb_NoexPrecompiledHeader_DEBUGDIR := nodebug endif $(call gb_PrecompiledHeader_get_dep_target,%) : - $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $@) && \ - echo '$(call gb_PrecompiledHeader_get_target,$*) : $$(gb_Helper_PHONY)' > $@) + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && \ + echo '$(call gb_PrecompiledHeader_get_target,$*) : $$(gb_Helper_PHONY)' > $@) $(call gb_NoexPrecompiledHeader_get_dep_target,%) : - $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $@) && \ - echo '$(call gb_NoexPrecompiledHeader_get_target,$*) : $$(gb_Helper_PHONY)' > $@) + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && \ + echo '$(call gb_NoexPrecompiledHeader_get_target,$*) : $$(gb_Helper_PHONY)' > $@) $(call gb_PrecompiledHeader_get_target,%) : - $(call gb_PrecompiledHeader__command,$@,$*,$<,$(PCH_DEFS),$(PCH_CXXFLAGS) $(gb_PrecompiledHeader_EXCEPTIONFLAGS),$(INCLUDE_STL) $(INCLUDE)) + $(call gb_PrecompiledHeader__command,$@,$*,$<,$(PCH_DEFS),$(PCH_CXXFLAGS) $(gb_PrecompiledHeader_EXCEPTIONFLAGS),$(INCLUDE_STL) $(INCLUDE)) $(call gb_NoexPrecompiledHeader_get_target,%) : - $(call gb_NoexPrecompiledHeader__command,$@,$*,$<,$(PCH_DEFS),$(PCH_CXXFLAGS) $(gb_NoexPrecompiledHeader_NOEXCEPTIONFLAGS),$(INCLUDE_STL) $(INCLUDE)) + $(call gb_NoexPrecompiledHeader__command,$@,$*,$<,$(PCH_DEFS),$(PCH_CXXFLAGS) $(gb_NoexPrecompiledHeader_NOEXCEPTIONFLAGS),$(INCLUDE_STL) $(INCLUDE)) .PHONY : $(call gb_PrecompiledHeader_get_clean_target,%) $(call gb_NoExPrecompiledHeader_get_clean_target,%) $(call gb_PrecompiledHeader_get_clean_target,%) : - $(call gb_Output_announce,$*,$(false),PCH,1) - -$(call gb_Helper_abbreviate_dirs,\ - rm -f $(call gb_PrecompiledHeader_get_target,$*) \ - $(call gb_PrecompiledHeader_get_target,$*).obj \ - $(call gb_PrecompiledHeader_get_target,$*).pdb \ - $(call gb_PrecompiledHeader_get_dep_target,$*)) + $(call gb_Output_announce,$*,$(false),PCH,1) + -$(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_PrecompiledHeader_get_target,$*) \ + $(call gb_PrecompiledHeader_get_target,$*).obj \ + $(call gb_PrecompiledHeader_get_target,$*).pdb \ + $(call gb_PrecompiledHeader_get_dep_target,$*)) $(call gb_NoexPrecompiledHeader_get_clean_target,%) : - $(call gb_Output_announce,$*,$(false),PCH,1) - -$(call gb_Helper_abbreviate_dirs,\ - rm -f $(call gb_NoexPrecompiledHeader_get_target,$*) \ - $(call gb_NoexPrecompiledHeader_get_target,$*).obj \ - $(call gb_NoexPrecompiledHeader_get_target,$*).pdb \ - $(call gb_NoexPrecompiledHeader_get_dep_target,$*)) + $(call gb_Output_announce,$*,$(false),PCH,1) + -$(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_NoexPrecompiledHeader_get_target,$*) \ + $(call gb_NoexPrecompiledHeader_get_target,$*).obj \ + $(call gb_NoexPrecompiledHeader_get_target,$*).pdb \ + $(call gb_NoexPrecompiledHeader_get_dep_target,$*)) endif -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/RdbTarget.mk b/solenv/gbuild/RdbTarget.mk new file mode 100644 index 000000000000..e8436ebc99d7 --- /dev/null +++ b/solenv/gbuild/RdbTarget.mk @@ -0,0 +1,83 @@ +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License or as specified alternatively below. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# David Tardon, Red Hat Inc. <dtardon@redhat.com> +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Major Contributor(s): +# +# For minor contributions see the git repository. +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. + +gb_RdbTarget__get_old_component_target = $(OUTDIR)/xml/$(1).component + +$(call gb_RdbTarget_get_target,%) : + $(call gb_Output_announce,$*,$(true),RDB,1) + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@) && \ + echo '<?xml version="1.0"?><components xmlns="http://openoffice.org/2010/uno-components">' > $@ && \ + $(gb_AWK) -- \ + '/^<\?xml version.*/ { next; } \ + { gsub(/vnd.sun.star.expand:\$$OOO_BASE_DIR\/program/, "vnd.sun.star.expand:$$OOO_BASE_DIR",$$0); gsub(/vnd.sun.star.expand:\$$BRAND_BASE_DIR\/program/, "vnd.sun.star.expand:$$BRAND_BASE_DIR",$$0); print; }' \ + $(foreach component,$(COMPONENTS),$(call gb_ComponentTarget_get_target,$(component))) \ + $(foreach component,$(OLD_COMPONENTS),$(call gb_RdbTarget__get_old_component_target,$(component))) \ + >> $@ && \ + echo '</components>' >> $@) + +.PHONY : $(call gb_RdbTarget_get_clean_target,%) +$(call gb_RdbTarget_get_clean_target,%) : + $(call gb_Output_announce,$*,$(false),RDB,1) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_RdbTarget_get_outdir_target,$*) $(call gb_RdbTarget_get_target,$*)) + +$(call gb_RdbTarget_get_external_target,%) : + $(call gb_Deliver_deliver,$<,$@) + +define gb_RdbTarget_RdbTarget +$(call gb_RdbTarget_get_target,$(1)) : COMPONENTS := +$(call gb_RdbTarget_get_target,$(1)) : OLD_COMPONENTS := +$(call gb_RdbTarget_get_clean_target,$(1)) : COMPONENTS := +$(call gb_RdbTarget_get_clean_target,$(1)) : OLD_COMPONENTS := +ifeq ($(2),$(true)) +$(call gb_RdbTarget_get_outdir_target,$(1)) : $(call gb_RdbTarget_get_target,$(1)) +$(call gb_Deliver_add_deliverable,$(call gb_ResTarget_get_outdir_target,$(1)),$(call gb_RdbTarget_get_target,$(1))) +endif +endef + +define gb_RdbTarget_add_component +$(call gb_RdbTarget_get_target,$(1)) : $(call gb_ComponentTarget_get_target,$(2)) +$(call gb_RdbTarget_get_target,$(1)) : COMPONENTS += $(2) +$(call gb_RdbTarget_get_clean_target,$(1)) : COMPONENTS += $(2) +endef + +define gb_RdbTarget_add_components +$(foreach component,$(2),$(eval $(call gb_RdbTarget_add_component,$(1),$(component)))) +endef + +define gb_RdbTarget_add_old_component +$(call gb_RdbTarget_get_target,$(1)) : $(call gb_RdbTarget__get_old_component_target,$(2)) +$(call gb_RdbTarget_get_target,$(1)) : OLD_COMPONENTS += $(2) +$(call gb_RdbTarget_get_clean_target,$(1)) : OLD_COMPONENTS += $(2) +endef + +define gb_RdbTarget_add_old_components +$(foreach component,$(2),$(eval $(call gb_RdbTarget_add_old_component,$(1),$(component)))) +endef + +# vim: set noet sw=4: diff --git a/solenv/gbuild/SdiTarget.mk b/solenv/gbuild/SdiTarget.mk index 8f8670c6950d..81f007272498 100644 --- a/solenv/gbuild/SdiTarget.mk +++ b/solenv/gbuild/SdiTarget.mk @@ -35,28 +35,28 @@ gb_SdiTarget_SVIDLTARGET := $(call gb_Executable_get_target,svidl) gb_SdiTarget_SVIDLCOMMAND := $(gb_SdiTarget_SVIDLPRECOMMAND) $(gb_SdiTarget_SVIDLTARGET) $(call gb_SdiTarget_get_target,%) : $(SRCDIR)/%.sdi | $(gb_SdiTarget_SVIDLTARGET) - $(call gb_Output_announce,$*,$(true),SDI,1) - $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $@)) - $(call gb_Helper_abbreviate_dirs_native,\ - cd $(dir $<) && \ - $(gb_SdiTarget_SVIDLCOMMAND) -quiet \ - $(INCLUDE) \ - -fs$@.hxx \ - -fd$@.ilb \ - -fl$@.lst \ - -fz$@.sid \ - -fx$(EXPORTS) \ - -fm$@ \ - $<) + $(call gb_Output_announce,$*,$(true),SDI,1) + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@)) + $(call gb_Helper_abbreviate_dirs_native,\ + cd $(dir $<) && \ + $(gb_SdiTarget_SVIDLCOMMAND) -quiet \ + $(INCLUDE) \ + -fs$@.hxx \ + -fd$@.ilb \ + -fl$@.lst \ + -fz$@.sid \ + -fx$(EXPORTS) \ + -fm$@ \ + $(realpath $<)) .PHONY : $(call gb_SdiTarget_get_clean_target,%) $(call gb_SdiTarget_get_clean_target,%) : - $(call gb_Output_announce,$*,$(false),SDI,1) - -$(call gb_Helper_abbreviate_dirs,\ - rm -f $(foreach ext,.hxx .ilb .lst .sid,\ - $(call gb_SdiTarget_get_target,$*)$(ext)) \ - $(call gb_SdiTarget_get_target,$*)) + $(call gb_Output_announce,$*,$(false),SDI,1) + -$(call gb_Helper_abbreviate_dirs,\ + rm -f $(foreach ext,.hxx .ilb .lst .sid,\ + $(call gb_SdiTarget_get_target,$*)$(ext)) \ + $(call gb_SdiTarget_get_target,$*)) define gb_SdiTarget_SdiTarget $(call gb_SdiTarget_get_target,$(1)) : INCLUDE := $$(subst -I. ,-I$$(dir $(SRCDIR)/$(1)) ,$$(SOLARINC)) @@ -68,4 +68,4 @@ $(call gb_SdiTarget_get_target,$(1)) : INCLUDE := $(2) endef -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/StaticLibrary.mk b/solenv/gbuild/StaticLibrary.mk index 4d3c22b4e871..33fe714d7256 100644 --- a/solenv/gbuild/StaticLibrary.mk +++ b/solenv/gbuild/StaticLibrary.mk @@ -35,20 +35,19 @@ # gb_StaticLibrary_FILENAMES # gb_StaticLibrary_TARGETS -gb_StaticLibrary__get_linktargetname = StaticLibrary/$(call gb_StaticLibrary_get_filename,$(1)) # EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows .PHONY : $(WORKDIR)/Clean/OutDir/lib/%$(gb_StaticLibrary_PLAINEXT) $(WORKDIR)/Clean/OutDir/lib/%$(gb_StaticLibrary_PLAINEXT) : - $(call gb_Helper_abbreviate_dirs,\ - rm -f $(OUTDIR)/lib/$*$(gb_StaticLibrary_PLAINEXT) \ - $(AUXTARGETS)) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(OUTDIR)/lib/$*$(gb_StaticLibrary_PLAINEXT) \ + $(AUXTARGETS)) # EVIL: gb_StaticLibrary and gb_Library need the same deliver rule because they are indistinguishable on windows $(gb_StaticLibrary_OUTDIRLOCATION)/%$(gb_StaticLibrary_PLAINEXT) : - $(call gb_Helper_abbreviate_dirs,\ - $(call gb_Deliver_deliver,$<,$@) \ - $(foreach target,$(AUXTARGETS), && $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(target)),$(target)))) + $(call gb_Helper_abbreviate_dirs,\ + $(call gb_Deliver_deliver,$<,$@) \ + $(foreach target,$(AUXTARGETS), && $(call gb_Deliver_deliver,$(dir $<)/$(notdir $(target)),$(target)))) define gb_StaticLibrary_StaticLibrary ifeq (,$$(findstring $(1),$$(gb_StaticLibrary_KNOWNLIBS))) @@ -56,7 +55,7 @@ $$(eval $$(call gb_Output_info,Currently known static libraries are: $(sort $(gb $$(eval $$(call gb_Output_error,Static library $(1) must be registered in Repository.mk)) endif $(call gb_StaticLibrary_get_target,$(1)) : AUXTARGETS := -$(call gb_StaticLibrary__StaticLibrary_impl,$(1),$(call gb_StaticLibrary__get_linktargetname,$(1))) +$(call gb_StaticLibrary__StaticLibrary_impl,$(1),$(call gb_StaticLibrary_get_linktargetname,$(1))) endef @@ -64,7 +63,7 @@ define gb_StaticLibrary__StaticLibrary_impl $(call gb_LinkTarget_LinkTarget,$(2)) $(call gb_LinkTarget_set_targettype,$(2),StaticLibrary) $(call gb_LinkTarget_add_defs,$(2),\ - $(gb_StaticLibrary_DEFS) \ + $(gb_StaticLibrary_DEFS) \ ) $(call gb_StaticLibrary_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2)) $(call gb_StaticLibrary_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2)) @@ -75,40 +74,41 @@ $(call gb_Deliver_add_deliverable,$(call gb_StaticLibrary_get_target,$(1)),$(cal endef define gb_StaticLibrary_forward_to_Linktarget -gb_StaticLibrary_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_StaticLibrary__get_linktargetname,$$(1)),$$(2),$$(3)) +gb_StaticLibrary_$(1) = $$(call gb_LinkTarget_$(1),$$(call gb_StaticLibrary_get_linktargetname,$$(1)),$$(2),$$(3)) endef $(eval $(foreach method,\ - add_cobject \ - add_cobjects \ - add_cxxobject \ - add_cxxobjects \ - add_objcxxobject \ - add_objcxxobjects \ - add_exception_objects \ - add_noexception_objects \ - add_generated_exception_objects \ + add_cobject \ + add_cobjects \ + add_cxxobject \ + add_cxxobjects \ + add_objcxxobject \ + add_objcxxobjects \ + add_exception_objects \ + add_noexception_objects \ + add_generated_cxxobjects \ + add_generated_exception_objects \ add_cflags \ - set_cflags \ + set_cflags \ add_cxxflags \ - set_cxxflags \ + set_cxxflags \ add_objcxxflags \ - set_objcxxflags \ + set_objcxxflags \ add_defs \ - set_defs \ - set_include \ + set_defs \ + set_include \ add_ldflags \ - set_ldflags \ + set_ldflags \ add_libs \ - set_library_path_flags \ - add_linked_libs \ - add_linked_static_libs \ - add_package_headers \ - add_sdi_headers \ - add_precompiled_header \ + set_library_path_flags \ + add_linked_libs \ + add_linked_static_libs \ + add_package_headers \ + add_sdi_headers \ + add_precompiled_header \ ,\ - $(call gb_StaticLibrary_forward_to_Linktarget,$(method))\ + $(call gb_StaticLibrary_forward_to_Linktarget,$(method))\ )) -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/TargetLocations.mk b/solenv/gbuild/TargetLocations.mk index 5ee2e5791663..bcca63f49c5c 100755 --- a/solenv/gbuild/TargetLocations.mk +++ b/solenv/gbuild/TargetLocations.mk @@ -30,8 +30,15 @@ gb_ComponentTarget_get_outdir_target = $(OUTDIR)/xml/component/$(1).component gb_ComponentTarget_get_outdir_inbuild_target = $(OUTDIR)/xml/component/$(1).inbuild.component gb_Executable_get_target = $(OUTDIR)/bin/$(1)$(gb_Executable_EXT) -gb_PackagePart_get_destinations = $(OUTDIR)/xml $(OUTDIR)/inc $(OUTDIR)/bin $(OUTDIR)/pck +gb_Executable_get_target_for_build = $(OUTDIR_FOR_BUILD)/bin/$(1)$(gb_Executable_EXT) +gb_PackagePart_get_destinations = \ + $(OUTDIR)/xml \ + $(OUTDIR)/pck \ + $(OUTDIR)/inc \ + $(OUTDIR)/bin \ + gb_PackagePart_get_target = $(OUTDIR)/$(1) +gb_RdbTarget_get_outdir_target = $(OUTDIR)/xml/$(1).rdb gb_ResTarget_get_outdir_imagelist_target = $(OUTDIR)/res/img/$(1).ilst gb_ResTarget_get_outdir_target = $(OUTDIR)/bin/$(1).res gb_Jar_get_outdir_target = $(OUTDIR)/bin/$(1).jar @@ -71,22 +78,27 @@ gb_JunitTest_get_userdir = $(WORKDIR)/JunitTest/$(1)/user gb_LinkTarget_get_external_headers_target = $(WORKDIR)/ExternalHeaders/$(1) gb_LinkTarget_get_headers_target = $(WORKDIR)/Headers/$(1) gb_LinkTarget_get_target = $(WORKDIR)/LinkTarget/$(1) +gb_LinkTarget_get_objects_list = $(WORKDIR)/LinkTarget/$(1).objectlist gb_Module_get_check_target = $(WORKDIR)/Module/check/$(1) gb_Module_get_subsequentcheck_target = $(WORKDIR)/Module/subsequentcheck/$(1) gb_Module_get_target = $(WORKDIR)/Module/$(1) gb_NoexPrecompiledHeader_get_dep_target = $(WORKDIR)/Dep/NoexPrecompiledHeader/$(gb_NoexPrecompiledHeader_DEBUGDIR)/$(1).hxx.pch.d gb_NoexPrecompiledHeader_get_target = $(WORKDIR)/NoexPrecompiledHeader/$(gb_NoexPrecompiledHeader_DEBUGDIR)/$(1).hxx.pch gb_ObjCxxObject_get_target = $(WORKDIR)/ObjCxxObject/$(1).o +gb_ObjCObject_get_target = $(WORKDIR)/ObjCObject/$(1).o gb_Package_get_preparation_target = $(WORKDIR)/Package/prepared/$(1) gb_Package_get_target = $(WORKDIR)/Package/$(1) gb_PrecompiledHeader_get_dep_target = $(WORKDIR)/Dep/PrecompiledHeader/$(gb_PrecompiledHeader_DEBUGDIR)/$(1).hxx.pch.d gb_PrecompiledHeader_get_target = $(WORKDIR)/PrecompiledHeader/$(gb_PrecompiledHeader_DEBUGDIR)/$(1).hxx.pch +gb_RdbTarget_get_target = $(WORKDIR)/RdbTarget/$(1).rdb gb_ResTarget_get_imagelist_target = $(WORKDIR)/ResTarget/$(1).ilst gb_ResTarget_get_target = $(WORKDIR)/ResTarget/$(1).res gb_SdiTarget_get_target = $(WORKDIR)/SdiTarget/$(1) gb_SrsPartMergeTarget_get_target = $(WORKDIR)/SrsPartMergeTarget/$(1) gb_SrsPartTarget_get_target = $(WORKDIR)/SrsPartTarget/$(1) gb_SrsTarget_get_target = $(WORKDIR)/SrsTarget/$(1).srs +gb_SrsTemplatePartTarget_get_target = $(WORKDIR)/inc/$(firstword $(subst /, ,$(1)))/$(subst _tmpl,,$(notdir $(1))) +gb_SrsTemplateTarget_get_target = $(WORKDIR)/SrsTemplateTarget/$(1) gb_WinResTarget_get_target = $(WORKDIR)/WinResTarget/$(1)$(gb_WinResTarget_POSTFIX) gb_Zip_get_target = $(WORKDIR)/Zip/$(1).zip gb_Zip_get_final_target = $(WORKDIR)/Zip/$(1).done @@ -108,40 +120,43 @@ $(patsubst $(1):%,$(WORKDIR)/Headers/StaticLibrary/%,$(filter $(1):%,$(gb_Static endef $(eval $(call gb_Helper_make_clean_targets,\ - AllLangResTarget \ - ComponentTarget \ - JavaClassSet \ + AllLangResTarget \ + ComponentTarget \ + JavaClassSet \ Jar \ - JunitTest \ - LinkTarget \ - Module \ - NoexPrecompiledHeader \ - PackagePart \ - PrecompiledHeader \ - ResTarget \ - SdiTarget \ - SrsTarget \ - CppunitTest \ - CustomTarget \ + JunitTest \ + LinkTarget \ + Module \ + NoexPrecompiledHeader \ + PackagePart \ + PrecompiledHeader \ + RdbTarget \ + ResTarget \ + SdiTarget \ + SrsTarget \ + SrsTemplateTarget \ + CppunitTest \ + CustomTarget \ WinResTarget \ Zip \ )) $(eval $(call gb_Helper_make_outdir_clean_targets,\ - Executable \ - Library \ - Package \ - StaticLibrary \ + Executable \ + Library \ + Package \ + StaticLibrary \ )) $(eval $(call gb_Helper_make_dep_targets,\ - CObject \ - CxxObject \ - ObjCxxObject \ + CObject \ + CxxObject \ + ObjCObject \ + ObjCxxObject \ GenCxxObject \ - LinkTarget \ - SrsPartTarget \ - SrsTarget \ + LinkTarget \ + SrsPartTarget \ + SrsTarget \ )) # other getters @@ -162,6 +177,9 @@ define gb_StaticLibrary_get_filename $(patsubst $(1):%,%,$(filter $(1):%,$(gb_StaticLibrary_FILENAMES))) endef +gb_Executable_get_linktargetname = Executable/$(1)$(gb_Executable_EXT) +gb_Library_get_linktargetname = Library/$(call gb_Library_get_filename,$(1)) +gb_StaticLibrary_get_linktargetname = StaticLibrary/$(call gb_StaticLibrary_get_filename,$(1)) # static members declared here because they are used globally @@ -170,4 +188,4 @@ gb_Library_DLLDIR = $(WORKDIR)/LinkTarget/Library gb_CppunitTest_DLLDIR = $(WORKDIR)/LinkTarget/CppunitTest gb_StaticLibrary_OUTDIRLOCATION = $(OUTDIR)/lib -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/Tempfile.mk b/solenv/gbuild/Tempfile.mk index 5b80452056e0..d87fc373fc9b 100644 --- a/solenv/gbuild/Tempfile.mk +++ b/solenv/gbuild/Tempfile.mk @@ -6,13 +6,13 @@ define var2file $(strip $(1) $(eval gb_var2file_helpervar := $$(shell printf "%s" "" > $(1) ))\ $(foreach item,$(3),$(eval gb_var2file_curblock += $(item) - ifeq ($$(words $$(gb_var2file_curblock)),$(2)) - gb_var2file_helpervar := $$(shell printf "%s" "$$(gb_var2file_curblock)" >> $(1) ) - gb_var2file_curblock := - endif - ))\ - $(eval gb_var2file_helpervar := $(shell echo " "$(gb_var2file_curblock) >> $(1) ) - gb_var2file_curblock := - )) + ifeq ($$(words $$(gb_var2file_curblock)),$(2)) + gb_var2file_helpervar := $$(shell printf "%s" "$$(gb_var2file_curblock)" >> $(1) ) + gb_var2file_curblock := + endif + ))\ + $(eval gb_var2file_helpervar := $(shell echo " "$(gb_var2file_curblock) >> $(1) ) + gb_var2file_curblock := + )) endef diff --git a/solenv/gbuild/WinResTarget.mk b/solenv/gbuild/WinResTarget.mk index 17c7500769f9..af768ff2c596 100644 --- a/solenv/gbuild/WinResTarget.mk +++ b/solenv/gbuild/WinResTarget.mk @@ -30,21 +30,21 @@ endef ifeq ($(gb_FULLDEPS),$(true)) $(call gb_WinResTarget_get_dep_target,%) : $(gb_Helper_MISCDUMMY) - mkdir -p $(dir $@) && \ - echo '$(call gb_WinResTarget_get_target,$*) : $$(gb_Helper_PHONY)' > $@ + mkdir -p $(dir $@) && \ + echo '$(call gb_WinResTarget_get_target,$*) : $$(gb_Helper_PHONY)' > $@ endif $(call gb_WinResTarget_get_target,%) : - $(call gb_Output_announce,$*,$(true),RES,1) - $(call gb_WinResTarget__command_dep,$*,$<) - $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $@)) - $(call gb_WinResTarget__command,$@) + $(call gb_Output_announce,$*,$(true),RES,1) + $(call gb_WinResTarget__command_dep,$*,$<) + $(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $@)) + $(call gb_WinResTarget__command,$@) $(call gb_WinResTarget_get_clean_target,%) : - $(call gb_Helper_abbreviate_dirs,\ - rm -f $(call gb_WinResTarget_get_target,$*)) + $(call gb_Helper_abbreviate_dirs,\ + rm -f $(call gb_WinResTarget_get_target,$*)) define gb_WinResTarget_set_defs $(call gb_WinResTarget_get_target,$(1)) : DEFS := $(2) diff --git a/solenv/gbuild/extensions/final_ObjectOwner.mk b/solenv/gbuild/extensions/final_ObjectOwner.mk new file mode 100644 index 000000000000..f66a7a2e89ee --- /dev/null +++ b/solenv/gbuild/extensions/final_ObjectOwner.mk @@ -0,0 +1,47 @@ +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License or as specified alternatively below. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Bjoern Michaelsen, Canonical Ltd. <bjoern.michaelsen@canonical.com> +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Major Contributor(s): +# +# For minor contributions see the git repository. +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. + +ifeq ($(gb_CHECKOBJECTOWNER),$(true)) + +define gb_LinkTarget_check_object_owner +ifneq (1,$$(words $$(filter $(1):%,$$(gb_LinkTarget_OBJECTOWNER)))) +$$(info \ + $(patsubst $(WORKDIR)/%,%,$(1))\ + is linked in by\ + $$(patsubst $(1):%,%,$$(filter $(1):%,$$(gb_LinkTarget_OBJECTOWNER)))) +gb_CHECKOBJECTOWNER_VALID := $(false) +endif +endef + +gb_CHECKOBJECTOWNER_VALID := $(true) +$(foreach object,$(sort $(gb_LinkTarget_OBJECTS)),$(eval $(call gb_LinkTarget_check_object_owner,$(object)))) +ifneq ($(gb_CHECKOBJECTOWNER_VALID),$(true)) +$(eval $(call gb_Output_warn,duplicate linked objects)) +endif + +endif +# vim: set noet ts=4 sw=4: diff --git a/solenv/gbuild/extensions/post_PackModule.mk b/solenv/gbuild/extensions/post_PackModule.mk index f39268a9eea7..566c46d2e76f 100644 --- a/solenv/gbuild/extensions/post_PackModule.mk +++ b/solenv/gbuild/extensions/post_PackModule.mk @@ -42,8 +42,8 @@ endif endef packmodule : allandcheck deliverlog - $(eval $(call gb_PackModule_setpackmodulecommand)) - $(COMMAND) + $(eval $(call gb_PackModule_setpackmodulecommand)) + $(COMMAND) define gb_PackModule_setcleanpackmodulecommand ifeq ($$(words $(gb_Module_ALLMODULES)),1) @@ -56,7 +56,7 @@ endif endef cleanpackmodule : clean - $(eval $(call gb_PackModule_setcleanpackmodulecommand)) - $(COMMAND) - + $(eval $(call gb_PackModule_setcleanpackmodulecommand)) + $(COMMAND) + # vim: set noet ts=4 sw=4: diff --git a/solenv/gbuild/extensions/post_SetupLocal.mk b/solenv/gbuild/extensions/post_SetupLocal.mk index 483b8a163056..175903c3a2b9 100644 --- a/solenv/gbuild/extensions/post_SetupLocal.mk +++ b/solenv/gbuild/extensions/post_SetupLocal.mk @@ -29,40 +29,40 @@ ifneq ($(gb_LOCALBUILDDIR),) ifneq ($(wildcard $(gb_LOCALBUILDDIR)/SetupLocal.mk),) setuplocal : - $(eval $(call gb_Output_error,$(gb_LOCALBUILDDIR) exists already.)) + $(eval $(call gb_Output_error,$(gb_LOCALBUILDDIR) exists already.)) else setuplocal : - $(eval MODULE := $(firstword $(MODULE) $(lastword $(subst /, ,$(dir $(realpath $(firstword $(MAKEFILE_LIST)))))))) - $(eval modulerepo := $(patsubst %/$(MODULE),%,$(foreach repo,$(gb_REPOS),$(wildcard $(repo)/$(MODULE))))) - $(eval $(call gb_Output_announce,setting up local build directory (module: $(MODULE)).,$(true),SYC,5)) - mkdir -p $(gb_LOCALBUILDDIR)/srcdir $(gb_LOCALBUILDDIR)/workdir $(gb_LOCALBUILDDIR)/outdir - rsync --archive --exclude 'workdir/**' $(SOLARVERSION)/$(INPATH)/ $(gb_LOCALBUILDDIR)/outdir - cp $(modulerepo)/Repository.mk $(gb_LOCALBUILDDIR)/srcdir/Repository.mk - cp $(modulerepo)/RepositoryFixes.mk $(gb_LOCALBUILDDIR)/srcdir/RepositoryFixes.mk - rsync --archive $(modulerepo)/$(MODULE)/ $(gb_LOCALBUILDDIR)/srcdir/$(MODULE) - echo "gb_REPOS := $(gb_LOCALBUILDDIR)/srcdir $(filter-out $(patsubst %/$(MODULE),%,$(foreach repo,$(gb_REPOS),$(wildcard $(repo)/$(MODULE)))),$(gb_REPOS))" > $(gb_LOCALBUILDDIR)/SetupLocal.mk - echo "#original gb_REPOS was $(gb_REPOS)" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk - echo "OUTDIR := $(gb_LOCALBUILDDIR)/outdir" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk - echo "#original OUTDIR was $(OUTDIR)" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk - echo "WORKDIR := $(gb_LOCALBUILDDIR)/workdir" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk - echo "#original WORKDIR was $(WORKDIR)" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk + $(eval MODULE := $(firstword $(MODULE) $(lastword $(subst /, ,$(dir $(realpath $(firstword $(MAKEFILE_LIST)))))))) + $(eval modulerepo := $(patsubst %/$(MODULE),%,$(foreach repo,$(gb_REPOS),$(wildcard $(repo)/$(MODULE))))) + $(eval $(call gb_Output_announce,setting up local build directory (module: $(MODULE)).,$(true),SYC,5)) + mkdir -p $(gb_LOCALBUILDDIR)/srcdir $(gb_LOCALBUILDDIR)/workdir $(gb_LOCALBUILDDIR)/outdir + rsync --archive --exclude 'workdir/**' $(SOLARVERSION)/$(INPATH)/ $(gb_LOCALBUILDDIR)/outdir + cp $(modulerepo)/Repository.mk $(gb_LOCALBUILDDIR)/srcdir/Repository.mk + cp $(modulerepo)/RepositoryFixes.mk $(gb_LOCALBUILDDIR)/srcdir/RepositoryFixes.mk + rsync --archive $(modulerepo)/$(MODULE)/ $(gb_LOCALBUILDDIR)/srcdir/$(MODULE) + echo "gb_REPOS := $(gb_LOCALBUILDDIR)/srcdir $(filter-out $(patsubst %/$(MODULE),%,$(foreach repo,$(gb_REPOS),$(wildcard $(repo)/$(MODULE)))),$(gb_REPOS))" > $(gb_LOCALBUILDDIR)/SetupLocal.mk + echo "#original gb_REPOS was $(gb_REPOS)" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk + echo "OUTDIR := $(gb_LOCALBUILDDIR)/outdir" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk + echo "#original OUTDIR was $(OUTDIR)" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk + echo "WORKDIR := $(gb_LOCALBUILDDIR)/workdir" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk + echo "#original WORKDIR was $(WORKDIR)" >> $(gb_LOCALBUILDDIR)/SetupLocal.mk endif removelocal : - $(eval $(call gb_Output_warn,removing directory $(gb_LOCALBUILDDIR).,SYC)) - sleep 10 - rm -rf $(gb_LOCALBUILDDIR) + $(eval $(call gb_Output_warn,removing directory $(gb_LOCALBUILDDIR).,SYC)) + sleep 10 + rm -rf $(gb_LOCALBUILDDIR) else setuplocal: - $(eval $(call gb_Output_error,setuplocal: gb_LOCALBUILDDIR is not set.)) + $(eval $(call gb_Output_error,setuplocal: gb_LOCALBUILDDIR is not set.)) removelocal: - $(eval $(call gb_Output_error,setuplocal: gb_LOCALBUILDDIR is not set.)) + $(eval $(call gb_Output_error,setuplocal: gb_LOCALBUILDDIR is not set.)) endif -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/filter-showIncludes.pl b/solenv/gbuild/filter-showIncludes.pl new file mode 100755 index 000000000000..f72a9eb07fd8 --- /dev/null +++ b/solenv/gbuild/filter-showIncludes.pl @@ -0,0 +1,62 @@ +#!/usr/bin/env perl +# +# filter-showIncludes.pl depfile.d objfile.o orginal.cxx +# +# Create dependency information from the output of cl.exe's showInclude. It +# needs additional information - the output name to which to write, objfile +# that depends on the includes, and the original file name. +# +# It also consolidates the file names to a canonical form, and filters out +# duplicates. +# +# LGPL v3 / GPL v3 / MPL 1.1 +# +# Original author: Jan Holesovsky <kendy@suse.cz> + +my $outfile = $ARGV[0]; +my $objfile = $ARGV[1]; +my $srcfile = $ARGV[2]; +if ( !defined $outfile || !defined $objfile || !defined $srcfile ) { + die "Not enough parameters to create dependencies."; +} + +my $showincludes_prefix = $ENV{'SHOWINCLUDES_PREFIX'}; +if ( !defined( $showincludes_prefix ) || $showincludes_prefix eq "" ) { + $showincludes_prefix = 'Note: including file:'; +} + +open( OUT, "> $outfile" ) or die "Cannot open $outfile for writing."; +print OUT "$objfile: \\\n $srcfile"; + +my %seen; +my $first_line = 1; +while ( <STDIN> ) { + if ( /^$showincludes_prefix/ ) { + s/^$showincludes_prefix\s*//; + s/\r$//; + + chomp; + s/\\/\//g; + + # X: -> /cygdrive/x/ + s/^(.):/\/cygdrive\/\l\1/; + + s/ /\\ /g; + + if ( !defined $seen{$_} ) { + $seen{$_} = 1; + print OUT " \\\n $_"; + } + } + else { + # skip the first line, it always just duplicates what is being + # compiled + print unless ( $first_line ); + } + $first_line = 0; +} + +print OUT "\n"; +close( OUT ) or die "Cannot close $outfile."; + +# vim: shiftwidth=4 softtabstop=4 expandtab: diff --git a/solenv/gbuild/gbuild.mk b/solenv/gbuild/gbuild.mk index 61a281fc59e9..0214f14c2f88 100644 --- a/solenv/gbuild/gbuild.mk +++ b/solenv/gbuild/gbuild.mk @@ -27,7 +27,6 @@ # vars needed from the env/calling makefile -# CVER # DEBUG # GBUILDDIR # INPATH @@ -38,7 +37,6 @@ # PRODUCT # SOLARINC # SOLARLIB -# STLPORT_VER # UPD # GXX_INCLUDE_PATH (Linux) @@ -46,7 +44,6 @@ # SYSTEM_ICU (Linux) # SYSTEM_JPEG (Linux) # SYSTEM_LIBXML (Linux) -# USE_SYSTEM_STL (Linux) SHELL := /bin/sh true := T @@ -83,14 +80,27 @@ gb_PRODUCT := $(false) endif endif -ifneq ($(strip $(DEBUG)$(debug)),) -gb_DEBUGLEVEL := 2 +ifneq ($(strip $(ENABLE_SYMBOLS)$(enable_symbols)),) +gb_SYMBOL := $(true) else -ifeq ($(gb_PRODUCT),$(true)) +gb_SYMBOL := $(false) +endif + gb_DEBUGLEVEL := 0 -else +ifneq ($(strip $(DEBUG)$(debug)),) gb_DEBUGLEVEL := 1 endif + +ifneq ($(strip $(DBGLEVEL)$(dbglevel)),) +ifneq ($(strip $(dbglevel)),) +gb_DEBUGLEVEL := $(strip $(dbglevel)) +else +gb_DEBUGLEVEL := $(strip $(DBGLEVEL)) +endif +endif + +ifneq ($(gb_DEBUGLEVEL),0) +gb_SYMBOL := $(true) endif ifneq ($(strip $(ENABLE_PCH)),) @@ -100,12 +110,32 @@ gb_ENABLE_PCH := $(false) endif # for clean, setuplocal and removelocal goals we switch off dependencies -ifneq ($(filter cleanpackmodule clean setuplocal removelocal showdeliverables,$(MAKECMDGOALS)),) +ifneq ($(filter cleanpackmodule clean setuplocal removelocal showdeliverables help,$(MAKECMDGOALS)),) gb_FULLDEPS := $(false) else gb_FULLDEPS := $(true) endif +gb_CHECKOBJECTOWNER := $(true) + +# save user-supplied flags for latter use +ifneq ($(strip $(CFLAGS)),) +gb__ENV_CFLAGS := $(CFLAGS) +else +# TODO remove after the old build system is abolished +ifneq ($(strip $(ENVCFLAGS)),) +gb__ENV_CFLAGS := $(ENVCFLAGS) +endif +endif +ifneq ($(strip $(CXXFLAGS)),) +gb__ENV_CXXFLAGS := $(CXXFLAGS) +else +# TODO remove after the old build system is abolished +ifneq ($(strip $(ENVCFLAGSCXX)),) +gb__ENV_CXXFLAGS := $(ENVCFLAGSCXX) +endif +endif + include $(GBUILDDIR)/Helper.mk include $(GBUILDDIR)/TargetLocations.mk @@ -113,27 +143,35 @@ $(eval $(call gb_Helper_init_registries)) $(eval $(call gb_Helper_add_repositories,$(gb_REPOS))) $(eval $(call gb_Helper_collect_libtargets)) +gb_Library_DLLPOSTFIX := lo + ifeq ($(OS),LINUX) -include $(GBUILDDIR)/platform/linux.mk -else -ifeq ($(OS),WNT) -ifneq ($(USE_MINGW),) +include $(GBUILDDIR)/platform/linux-$(CPUNAME).mk +else ifeq ($(OS),MACOSX) +include $(GBUILDDIR)/platform/macosx.mk +else ifeq ($(OS),WNT) +ifeq ($(COM),GCC) include $(GBUILDDIR)/platform/winmingw.mk else include $(GBUILDDIR)/platform/windows.mk endif -else -ifeq ($(OS),SOLARIS) +else ifeq ($(OS),OPENBSD) +include $(GBUILDDIR)/platform/openbsd.mk +else ifeq ($(OS),FREEBSD) +include $(GBUILDDIR)/platform/freebsd.mk +else ifeq ($(OS),NETBSD) +include $(GBUILDDIR)/platform/netbsd.mk +else ifeq ($(OS),DRAGONFLY) +include $(GBUILDDIR)/platform/dragonfly.mk +else ifeq ($(OS),SOLARIS) include $(GBUILDDIR)/platform/solaris.mk -else -ifeq ($(OS),MACOSX) -include $(GBUILDDIR)/platform/macosx.mk +else ifeq ($(OS),IOS) +include $(GBUILDDIR)/platform/ios.mk +else ifeq ($(OS),ANDROID) +include $(GBUILDDIR)/platform/android.mk else $(eval $(call gb_Output_error,Unsupported OS: $(OS))) endif -endif -endif -endif include $(GBUILDDIR)/Tempfile.mk @@ -141,41 +179,50 @@ include $(foreach repo,$(gb_REPOS),$(repo)/RepositoryFixes.mk) $(eval $(call gb_Helper_collect_knownlibs)) +# add user-supplied flags +ifneq ($(strip gb__ENV_CFLAGS),) +gb_LinkTarget_CFLAGS += $(gb__ENV_CFLAGS) +endif +ifneq ($(strip gb__ENV_CXXFLAGS),) +gb_LinkTarget_CXXFLAGS += $(gb__ENV_CXXFLAGS) +endif + gb_GLOBALDEFS := \ - -D_REENTRANT \ - -DCUI \ - -DENABLE_LAYOUT_EXPERIMENTAL=0 \ - -DENABLE_LAYOUT=0 \ - -DOSL_DEBUG_LEVEL=$(gb_DEBUGLEVEL) \ - -DSOLAR_JAVA \ - -DSTLPORT_VERSION=$(STLPORT_VER) \ - -DSUPD=$(UPD) \ - -DVCL \ - $(gb_OSDEFS) \ - $(gb_COMPILERDEFS) \ - $(gb_CPUDEFS) \ + -D_REENTRANT \ + -DCUI \ + -DENABLE_LAYOUT_EXPERIMENTAL=0 \ + -DENABLE_LAYOUT=0 \ + -DOSL_DEBUG_LEVEL=$(gb_DEBUGLEVEL) \ + -DSUPD=$(UPD) \ + -DVCL \ + $(gb_OSDEFS) \ + $(gb_COMPILERDEFS) \ + $(gb_CPUDEFS) \ ifeq ($(gb_PRODUCT),$(true)) gb_GLOBALDEFS += \ - -DPRODUCT \ - -DPRODUCT_FULL \ + -DPRODUCT \ + -DPRODUCT_FULL \ else gb_GLOBALDEFS += \ - -DDBG_UTIL \ - -D_STLP_DEBUG \ - -D_DEBUG \ + -DDBG_UTIL \ + -D_DEBUG \ + +endif +ifneq ($(strip $(SOLAR_JAVA)),) +gb_GLOBALDEFS += -DSOLAR_JAVA endif -ifeq ($(gb_DEBUGLEVEL),2) +ifeq ($(gb_DEBUGLEVEL),0) gb_GLOBALDEFS += \ - -DDEBUG \ + -DOPTIMIZE \ + -DNDEBUG \ -else +else ifneq ($(gb_DEBUGLEVEL),1) # 2 or more gb_GLOBALDEFS += \ - -DOPTIMIZE \ - -DNDEBUG \ + -DDEBUG \ endif @@ -221,22 +268,23 @@ include $(SOLARENV)/inc/minor.mk # is not available everywhere by default. include $(foreach class, \ - ComponentTarget \ - AllLangResTarget \ - WinResTarget \ - LinkTarget \ - Library \ - StaticLibrary \ - Executable \ - SdiTarget \ - Package \ - CustomTarget \ - PrecompiledHeaders \ - CppunitTest \ + ComponentTarget \ + AllLangResTarget \ + WinResTarget \ + LinkTarget \ + Library \ + StaticLibrary \ + Executable \ + SdiTarget \ + Package \ + CustomTarget \ + PrecompiledHeaders \ + RdbTarget \ + CppunitTest \ Jar \ - JavaClassSet \ - JunitTest \ - Module \ + JavaClassSet \ + JunitTest \ + Module \ Zip \ ,$(GBUILDDIR)/$(class).mk) @@ -245,11 +293,19 @@ ifneq ($(wildcard $(GBUILDDIR)/extensions/post_*.mk),) include $(wildcard $(GBUILDDIR)/extensions/post_*.mk) endif -ifeq ($(SYSTEM_LIBXSLT),YES) +define gb_Extensions_final_hook +ifneq ($(wildcard $(GBUILDDIR)/extensions/final_*.mk),) +include $(wildcard $(GBUILDDIR)/extensions/final_*.mk) +endif + +endef + + +ifeq ($(SYSTEM_LIBXSLT_FOR_BUILD),YES) gb_XSLTPROCTARGET := gb_XSLTPROC := xsltproc else -gb_XSLTPROCTARGET := $(call gb_Executable_get_target,xsltproc) +gb_XSLTPROCTARGET := $(call gb_Executable_get_target_for_build,xsltproc) gb_XSLTPROC := $(gb_XSLTPROCPRECOMMAND) $(gb_XSLTPROCTARGET) endif @@ -259,4 +315,72 @@ export GBUILDDIR # FIXME exporting SRCDIR seems kind of a hack export SRCDIR -# vim: set noet sw=4 ts=4: +define gb_HelpMessage +NAME + gbuild - GNU make based build system for LibreOffice + +SYNOPSIS + make [ -f makefile ] [ options ] [ variable=value ... ] [ targets ] ... + +IMPORTANT OPTIONS + -r Eliminate use of the built-in implicit rules. Improves performance, + please use always. + -s Silent operation; do not print the commands as they are executed. + + -n Print the commands that would be executed, but do not execute them. + -k Continue as much as possible after an error. + + -j Specifies the number of jobs (commands) to run simultaneously. + -l Specifies that no new jobs (commands) should be started if there are + others jobs running and the load average is at least load. + + -t Touch files (mark them up to date without really changing them) + instead of running their commands. + -W Pretend that the target file has just been modified. + -o Do not remake the file file even if it is older than its + dependencies, and do not remake anything on account of changes in file. + + -p Print the data base (rules and variable values) that results from + reading the makefiles. + --debug=b debug make run, see GNU make man page for details + + (descriptions from GNU make man page) + +AVAILABLE TARGETS + allandcheck build product and run unit tests (default goal) + all build product + check run unit tests + subsequentcheck run system tests (requires full installation) + clean remove all generated files + +INTERACTIVE VARIABLES: + DEBUG / debug If not empty, build with DBGLEVEL=1 (see below). + ENABLE_SYMBOLS / enable_symbols + If not empty, build with debug symbols. Automatically + enabled by DEBUG/debug. + DBGLEVEL / dbglevel + If not empty, force the debug level to the specified value. The + debug level is passed to the source code through OSL_DEBUG_LEVEL + macro. + 0 = no debug + 1 = symbols + no optimizations + 2 = symbols + no optimizations + extra debug output. OSL_TRACE + starts being active on this level. + 3... = symbols + no optimizations + extra debug output (usually + extremely verbose). Levels > 2 are not used very much. + + ENABLE_PCH If not empty, use precompiled headers (Windows only). + CFLAGS Add as compiler flags for plain c compilation. + CXXFLAGS Add as compiler flags for c++ compilation. + gb_FULLDEPS Generate and use dependencies (on by default, handle with care). + gb_COLOR Use ASCII color output. + gb_TITLES Show progress in terminal title. + +endef + +.PHONY: help +help : + $(info $(gb_HelpMessage)) + @true + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/android.mk b/solenv/gbuild/platform/android.mk new file mode 100644 index 000000000000..df39d54a3ddb --- /dev/null +++ b/solenv/gbuild/platform/android.mk @@ -0,0 +1,38 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS += -DARM32 +gb_COMPILERDEFAULTOPTFLAGS := -Os +gb_CXXFLAGS += -fno-omit-frame-pointer +gb_CFLAGS += -fno-omit-frame-pointer + +include $(GBUILDDIR)/platform/unxgcc.mk + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/dragonfly.mk b/solenv/gbuild/platform/dragonfly.mk new file mode 100644 index 000000000000..591b47bb6d37 --- /dev/null +++ b/solenv/gbuild/platform/dragonfly.mk @@ -0,0 +1,44 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk + +ifeq ($(CPUNAME),INTEL) +gb_CPUDEFS := -DX86 +else +gb_CPUDEFS := -D$(CPUNAME) +endif + +gb_COMPILERDEFAULTOPTFLAGS := -O -g + +include $(GBUILDDIR)/platform/unxgcc.mk + +gb_CppunitTest_CPPTESTPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib:/usr/pkg/lib + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/freebsd.mk b/solenv/gbuild/platform/freebsd.mk new file mode 100644 index 000000000000..39cce14c660d --- /dev/null +++ b/solenv/gbuild/platform/freebsd.mk @@ -0,0 +1,42 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk + +ifeq ($(CPUNAME),INTEL) +gb_CPUDEFS := -DX86 +else +gb_CPUDEFS := -D$(CPUNAME) +endif + +gb_COMPILERDEFAULTOPTFLAGS := -O2 + +include $(GBUILDDIR)/platform/unxgcc.mk + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/ios.mk b/solenv/gbuild/platform/ios.mk new file mode 100644 index 000000000000..c2215e2db109 --- /dev/null +++ b/solenv/gbuild/platform/ios.mk @@ -0,0 +1,411 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2011 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +GUI := UNX +COM := GCC + +# Darwin mktemp -t expects a prefix, not a pattern +gb_MKTEMP := /usr/bin/mktemp -t gbuild. + +gb_CC := "gcc-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk" +gb_CXX := "g++-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk" +gb_GCCP := "gcc-4.2 -arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk" +gb_AR := ar +gb_AWK := awk +gb_CLASSPATHSEP := : + +# use CC/CXX if they are nondefaults +ifneq ($(origin CC),default) +gb_CC := $(CC) +gb_GCCP := $(CC) +endif +ifneq ($(origin CXX),default) +gb_CXX := $(CXX) +endif + +gb_OSDEFS := \ + -D$(OS) \ + -D_PTHREADS \ + -DUNIX \ + -DUNX \ + -D_REENTRANT \ + -DNO_PTHREAD_PRIORITY \ + $(EXTRA_CDEFS) \ + +gb_COMPILERDEFS := \ + -D$(COM) \ + -DCPPU_ENV=gcc3 \ + -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \ + +gb_CPUDEFS := -DARM32 + +gb_SDKDIR := /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk + + +gb_CFLAGS := \ + -isysroot $(gb_SDKDIR) \ + -Wall \ + -Wendif-labels \ + -Wextra \ + -Wshadow \ + -fmessage-length=0 \ + -fno-common \ + -fno-strict-aliasing \ + -pipe \ + +gb_CXXFLAGS := \ + -isysroot $(gb_SDKDIR) \ + -Wall \ + -Wendif-labels \ + -Wextra \ + -Wno-ctor-dtor-privacy \ + -Wno-non-virtual-dtor \ + -fmessage-length=0 \ + -fno-common \ + -fno-strict-aliasing \ + -fsigned-char \ + -malign-natural \ + -pipe \ + #-Wshadow \ break in compiler headers already + #-fsigned-char \ might be removed? + #-malign-natural \ might be removed? + +# these are to get g++ to switch to Objective-C++ mode +# (see toolkit module for a case where it is necessary to do it this way) +gb_OBJCXXFLAGS := -x objective-c++ -fobjc-exceptions + +gb_OBJCFLAGS := -x objective-c + +ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE) +gb_CFLAGS_WERROR := -Werror +gb_CXXFLAGS_WERROR := -Werror +endif + +gb_LinkTarget_EXCEPTIONFLAGS := \ + -DEXCEPTIONS_ON \ + -fexceptions \ + -fno-enforce-eh-specs \ + +gb_LinkTarget_NOEXCEPTIONFLAGS := \ + -DEXCEPTIONS_OFF \ + -fno-exceptions \ + +gb_LinkTarget_LDFLAGS := \ + -Wl,-syslibroot,$(gb_SDKDIR) \ + $(subst -L../lib , ,$(SOLARLIB)) \ +#man ld says: obsolete -Wl,-multiply_defined,suppress \ + +ifneq ($(gb_DEBUGLEVEL),0) +gb_COMPILEROPTFLAGS := -O0 +else +gb_COMPILEROPTFLAGS := -O2 +endif + +gb_COMPILERNOOPTFLAGS := -O0 + +# Helper class + +gb_Helper_abbreviate_dirs_native = $(gb_Helper_abbreviate_dirs) + +gb_Helper_set_ld_path := DYLD_LIBRARY_PATH=$(OUTDIR_FOR_BUILD)/lib + +# convert parametters filesystem root to native notation +# does some real work only on windows, make sure not to +# break the dummy implementations on unx* +define gb_Helper_convert_native +$(1) +endef + + +# CObject class + +define gb_CObject__command +$(call gb_Output_announce,$(2),$(true),C ,3) +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + mkdir -p $(dir $(call gb_CObject_get_dep_target,$(2))) && \ + $(gb_CC) \ + $(DEFS) $(CFLAGS) \ + -c $(3) \ + -o $(1) \ + -MMD -MT $(call gb_CObject_get_target,$(2)) \ + -MF $(call gb_CObject_get_dep_target,$(2)) \ + -I$(dir $(3)) \ + $(INCLUDE)) +endef + + +# CxxObject class + +# N.B: $(CXXFLAGS) may contain -x objective-c++, which must come before -c +define gb_CxxObject__command +$(call gb_Output_announce,$(2),$(true),CXX,3) +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + mkdir -p $(dir $(call gb_CxxObject_get_dep_target,$(2))) && \ + $(gb_CXX) \ + $(DEFS) $(CXXFLAGS) \ + -c $(3) \ + -o $(1) \ + -MMD -MT $(call gb_CxxObject_get_target,$(2)) \ + -MF $(call gb_CxxObject_get_dep_target,$(2)) \ + -I$(dir $(3)) \ + $(INCLUDE_STL) $(INCLUDE)) +endef + + +# ObjCxxObject class + +define gb_ObjCxxObject__command +$(call gb_Output_announce,$(2),$(true),OCX,3) +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + mkdir -p $(dir $(call gb_ObjCxxObject_get_dep_target,$(2))) && \ + $(gb_CXX) \ + $(DEFS) $(OBJCXXFLAGS) \ + -c $(3) \ + -o $(1) \ + -MMD -MT $(call gb_ObjCxxObject_get_target,$(2)) \ + -MF $(call gb_ObjCxxObject_get_dep_target,$(2)) \ + -I$(dir $(3)) \ + $(INCLUDE_STL) $(INCLUDE)) +endef + +# ObjCObject class + +define gb_ObjCObject__command +$(call gb_Output_announce,$(2),$(true),OCC,3) +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + mkdir -p $(dir $(call gb_ObjCObject_get_dep_target,$(2))) && \ + $(gb_CC) \ + $(DEFS) $(OBJCFLAGS) \ + -c $(3) \ + -o $(1) \ + -MMD -MT $(call gb_ObjCObject_get_target,$(2)) \ + -MF $(call gb_ObjCObject_get_dep_target,$(2)) \ + -I$(dir $(3)) \ + $(INCLUDE_STL) $(INCLUDE)) +endef + + +# LinkTarget class + +gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_COMPILEROPTFLAGS) +gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) +gb_LinkTarget_OBJCXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) $(gb_OBJCXXFLAGS) $(gb_COMPILEROPTFLAGS) +gb_LinkTarget_OBJCFLAGS := $(gb_CFLAGS) $(gb_OBJCFLAGS) $(gb_COMPILEROPTFLAGS) + +ifeq ($(gb_SYMBOL),$(true)) +gb_LinkTarget_CFLAGS += -g +gb_LinkTarget_CXXFLAGS += -g +gb_LinkTarget_OBJCXXFLAGS += -g +gb_LinkTarget_OBJCFLAGS += -g +endif + +gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) +gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) + +# FIXME framework handling very hackish +define gb_LinkTarget__get_liblinkflags +$(patsubst lib%.dylib,-l%,$(foreach lib,$(filter-out $(gb_Library__FRAMEWORKS),$(1)),$(call gb_Library_get_filename,$(lib)))) \ +$(addprefix -framework ,$(filter $(gb_Library__FRAMEWORKS),$(1))) +endef + +define gb_LinkTarget__get_layer +$(if $(filter Executable,$(1)),\ + $$(call gb_Executable_get_layer,$(2)),\ + $$(call gb_Library_get_layer,$(2))) +endef + +# Just create a dummy executable +# It is pointless to build actual iOS executables here anyway. +# Hmm, except for the simulator? Nah, use Xcode for that, too. +define gb_LinkTarget__command_dynamiclink +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + ((echo '#!/bin/sh' && echo 'echo Nope.') >$(1))) +endef + +# parameters: 1-linktarget 2-cobjects 3-cxxobjects +define gb_LinkTarget__command_staticlink +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + $(gb_AR) -rsu $(1) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ + $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(OBJCOBJECTS),$(call gb_ObjCObject_get_target,$(object))) \ + $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ + $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \ + 2> /dev/null) +endef + +define gb_LinkTarget__command +$(call gb_Output_announce,$(2),$(true),LNK,4) +$(if $(filter CppunitTest Executable,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclink,$(1),$(2))) +$(if $(filter Library StaticLibrary,$(TARGETTYPE)),$(call gb_LinkTarget__command_staticlink,$(1))) +endef + + +# Library class + +gb_Library_DEFS := +gb_Library_SYSPRE := lib +gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_ +gb_Library_PLAINEXT := .a +gb_Library_RTEXT := gcc3$(gb_Library_PLAINEXT) + +gb_Library_OOOEXT := $(gb_Library_DLLPOSTFIX)$(gb_Library_PLAINEXT) +gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) + +gb_Library__FRAMEWORKS := \ + +gb_Library_PLAINLIBS_NONE += \ + jpeg \ + m \ + pthread \ + z \ + +gb_Library_FILENAMES := \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \ + + +gb_Library_LAYER := \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):OOO) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):OOO) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):OOO) \ + +define gb_Library_Library_platform +$(call gb_LinkTarget_get_target,$(2)) : LAYER := $(call gb_Library_get_layer,$(1)) + +endef + + +# StaticLibrary class + +gb_StaticLibrary_DEFS := +gb_StaticLibrary_SYSPRE := lib +gb_StaticLibrary_PLAINEXT := .a +gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT) + +gb_StaticLibrary_FILENAMES := \ + $(foreach lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT)) \ + $(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \ + +gb_StaticLibrary_StaticLibrary_platform = + + +# Executable class + +gb_Executable_EXT := +gb_Executable_TARGETTYPEFLAGS := -bind_at_load + +gb_Executable_LAYER := \ + $(foreach exe,$(gb_Executable_UREBIN),$(exe):OOO) \ + $(foreach exe,$(gb_Executable_SDK),$(exe):OOO) \ + $(foreach exe,$(gb_Executable_OOO),$(exe):OOO) \ + $(foreach exe,$(gb_Executable_BRAND),$(exe):OOO) \ + $(foreach exe,$(gb_Executable_NONE),$(exe):OOO) \ + + +define gb_Executable_Executable_platform +$(call gb_LinkTarget_get_target,$(2)) : LAYER := $(call gb_Executable_get_layer,$(1)) + +endef + + +# CppunitTest class + +gb_CppunitTest_CPPTESTPRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib +gb_CppunitTest_SYSPRE := libtest_ +gb_CppunitTest_EXT := .dylib +gb_CppunitTest_get_filename = $(gb_CppunitTest_SYSPRE)$(1)$(gb_CppunitTest_EXT) +gb_CppunitTest_get_libfilename = $(gb_CppunitTest_get_filename) + +define gb_CppunitTest_CppunitTest_platform +$(call gb_LinkTarget_get_target,$(2)) : +$(call gb_LinkTarget_get_target,$(2)) : LAYER := NONE + +endef + +# JunitTest class + +define gb_JunitTest_JunitTest_platform +$(call gb_JunitTest_get_target,$(1)) : DEFS := \ + -Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:$(OUTDIR)/installation/opt/LibreOffice.app/Contents/MacOS/soffice}" \ + -Dorg.openoffice.test.arg.env=DYLD_LIBRARY_PATH \ + -Dorg.openoffice.test.arg.user=file://$(call gb_JunitTest_get_userdir,$(1)) \ + +endef + +# SdiTarget class + +gb_SdiTarget_SVIDLPRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib + +# SrsPartMergeTarget + +gb_SrsPartMergeTarget_TRANSEXPRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib + +# SrsPartTarget class + +gb_SrsPartTarget_RSCTARGET := $(OUTDIR)/bin/rsc +gb_SrsPartTarget_RSCCOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib SOLARBINDIR=$(OUTDIR)/bin $(gb_SrsPartTarget_RSCTARGET) + +define gb_SrsPartTarget__command_dep +$(call gb_Helper_abbreviate_dirs,\ + $(gb_GCCP) \ + -MM -MT $(call gb_SrsPartTarget_get_target,$(1)) \ + $(INCLUDE) \ + $(DEFS) \ + -c -x c++-header $(2) \ + -o $(call gb_SrsPartTarget_get_dep_target,$(1))) +endef + + +# ComponentTarget + +gb_XSLTPROCPRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib +gb_Library_COMPONENTPREFIXES := \ + OOO:vnd.sun.star.expand:\dOOO_BASE_DIR/program/ \ + URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \ + + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/linux-ARM.mk b/solenv/gbuild/platform/linux-ARM.mk new file mode 100644 index 000000000000..df39d54a3ddb --- /dev/null +++ b/solenv/gbuild/platform/linux-ARM.mk @@ -0,0 +1,38 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS += -DARM32 +gb_COMPILERDEFAULTOPTFLAGS := -Os +gb_CXXFLAGS += -fno-omit-frame-pointer +gb_CFLAGS += -fno-omit-frame-pointer + +include $(GBUILDDIR)/platform/unxgcc.mk + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/linux-AXP.mk b/solenv/gbuild/platform/linux-AXP.mk new file mode 100644 index 000000000000..ebf88fb7f71c --- /dev/null +++ b/solenv/gbuild/platform/linux-AXP.mk @@ -0,0 +1,39 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS += -D$(CPUNAME) +gb_COMPILERDEFAULTOPTFLAGS := -Os +gb_CXXFLAGS += -fsigned-char -fno-omit-frame-pointer +gb_CFLAGS += -fsigned-char -fno-omit-frame-pointer +gb_LinkTarget_LDFLAGS += -Wl,--no-relax + +include $(GBUILDDIR)/platform/unxgcc.mk + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/linux-GODSON.mk b/solenv/gbuild/platform/linux-GODSON.mk new file mode 100644 index 000000000000..0f17660b2122 --- /dev/null +++ b/solenv/gbuild/platform/linux-GODSON.mk @@ -0,0 +1,36 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS += -DMIPS +gb_COMPILERDEFAULTOPTFLAGS := -Os + +include $(GBUILDDIR)/platform/unxgcc.mk + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/linux-HPPA.mk b/solenv/gbuild/platform/linux-HPPA.mk new file mode 100644 index 000000000000..ad5fba8ca592 --- /dev/null +++ b/solenv/gbuild/platform/linux-HPPA.mk @@ -0,0 +1,36 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS += -D$(CPUNAME) +gb_COMPILERDEFAULTOPTFLAGS := -O2 + +include $(GBUILDDIR)/platform/unxgcc.mk + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/linux-IA64.mk b/solenv/gbuild/platform/linux-IA64.mk new file mode 100644 index 000000000000..9eba1ffcf516 --- /dev/null +++ b/solenv/gbuild/platform/linux-IA64.mk @@ -0,0 +1,36 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS := -D$(CPUNAME) +gb_COMPILERDEFAULTOPTFLAGS := -O2 + +include $(GBUILDDIR)/platform/linux.mk + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/linux-INTEL.mk b/solenv/gbuild/platform/linux-INTEL.mk new file mode 100644 index 000000000000..0bf0267f084d --- /dev/null +++ b/solenv/gbuild/platform/linux-INTEL.mk @@ -0,0 +1,36 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS := -DX86 +gb_COMPILERDEFAULTOPTFLAGS := -Os + +include $(GBUILDDIR)/platform/linux.mk + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/linux-M68K.mk b/solenv/gbuild/platform/linux-M68K.mk new file mode 100644 index 000000000000..670a33183ea9 --- /dev/null +++ b/solenv/gbuild/platform/linux-M68K.mk @@ -0,0 +1,38 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS += -D$(CPUNAME) +gb_COMPILERDEFAULTOPTFLAGS := -Os +gb_CXXFLAGS += -fsigned-char -fno-omit-frame-pointer +gb_CFLAGS += -fsigned-char -fno-omit-frame-pointer + +include $(GBUILDDIR)/platform/unxgcc.mk + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/linux-POWERPC.mk b/solenv/gbuild/platform/linux-POWERPC.mk new file mode 100644 index 000000000000..ba730c9b265b --- /dev/null +++ b/solenv/gbuild/platform/linux-POWERPC.mk @@ -0,0 +1,38 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS += -DPOWERPC -DPPC +gb_COMPILERDEFAULTOPTFLAGS := -O2 +gb_CXXFLAGS += -fsigned-char +gb_CFLAGS += -fsigned-char + +include $(GBUILDDIR)/platform/unxgcc.mk + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/linux-POWERPC64.mk b/solenv/gbuild/platform/linux-POWERPC64.mk new file mode 100644 index 000000000000..b58010f66404 --- /dev/null +++ b/solenv/gbuild/platform/linux-POWERPC64.mk @@ -0,0 +1,37 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS := -D$(CPUNAME) +gb_CXXFLAGS += -mminimal-toc +gb_CFLAGS += -fsigned-char + +include $(GBUILDDIR)/platform/linux-POWERPC.mk + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/linux-S390.mk b/solenv/gbuild/platform/linux-S390.mk new file mode 100644 index 000000000000..983c94a9de69 --- /dev/null +++ b/solenv/gbuild/platform/linux-S390.mk @@ -0,0 +1,38 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS += -D$(CPUNAME) +gb_COMPILERDEFAULTOPTFLAGS := -O2 +gb_CXXFLAGS += -fsigned-char -fno-omit-frame-pointer +gb_CFLAGS += -fsigned-char -fno-omit-frame-pointer + +include $(GBUILDDIR)/platform/linux.mk + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/linux-S390X.mk b/solenv/gbuild/platform/linux-S390X.mk new file mode 100644 index 000000000000..a27c2acf016d --- /dev/null +++ b/solenv/gbuild/platform/linux-S390X.mk @@ -0,0 +1,35 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS := -D$(CPUNAME) + +include $(GBUILDDIR)/platform/linux-S390.mk + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/linux-SPARC.mk b/solenv/gbuild/platform/linux-SPARC.mk new file mode 100644 index 000000000000..2472d5e84bf8 --- /dev/null +++ b/solenv/gbuild/platform/linux-SPARC.mk @@ -0,0 +1,36 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS := -D$(CPUNAME) +gb_COMPILERDEFAULTOPTFLAGS := -Os + +include $(GBUILDDIR)/platform/linux.mk + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/linux-X86_64.mk b/solenv/gbuild/platform/linux-X86_64.mk new file mode 100644 index 000000000000..9eba1ffcf516 --- /dev/null +++ b/solenv/gbuild/platform/linux-X86_64.mk @@ -0,0 +1,36 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk or linux.mk +gb_CPUDEFS := -D$(CPUNAME) +gb_COMPILERDEFAULTOPTFLAGS := -O2 + +include $(GBUILDDIR)/platform/linux.mk + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/linux.mk b/solenv/gbuild/platform/linux.mk index 47d173054328..4ef02d54b2f7 100644 --- a/solenv/gbuild/platform/linux.mk +++ b/solenv/gbuild/platform/linux.mk @@ -25,398 +25,9 @@ # #************************************************************************* -GUI := UNX -COM := GCC - -gb_MKTEMP := mktemp -t gbuild.XXXXXX - -gb_CC := gcc -gb_CXX := g++ -gb_GCCP := gcc -gb_AR := ar -gb_AWK := awk -gb_CLASSPATHSEP := : - -# normalize setsolar and configure env. -ifeq ($(CPU),X) -CPUNAME := X86_64 -endif - -# use CC/CXX if they are nondefaults -ifneq ($(origin CC),default) -gb_CC := $(CC) -gb_GCCP := $(CC) -endif -ifneq ($(origin CXX),default) -gb_CXX := $(CXX) -endif - -gb_OSDEFS := \ - -D$(OS) \ - -D_PTHREADS \ - -DUNIX \ - -DUNX \ - $(PTHREAD_CFLAGS) \ - -ifeq ($(GXX_INCLUDE_PATH),) -GXX_INCLUDE_PATH=$(COMPATH)/include/c++/$(shell gcc -dumpversion) -endif - -gb_COMPILERDEFS := \ - -D$(COM) \ - -DHAVE_GCC_VISIBILITY_FEATURE \ - -DCPPU_ENV=gcc3 \ - -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \ - -ifeq ($(CPUNAME),X86_64) -gb_CPUDEFS := -D$(CPUNAME) -else -gb_CPUDEFS := -DX86 -endif - -gb_CFLAGS := \ - -Wall \ - -Wendif-labels \ - -Wextra \ - -Wshadow \ - -fPIC \ - -fmessage-length=0 \ - -fno-common \ - -fno-strict-aliasing \ - -fvisibility=hidden \ - -pipe \ - -gb_CXXFLAGS := \ - -Wall \ - -Wendif-labels \ - -Wextra \ - -Wno-ctor-dtor-privacy \ - -Wno-non-virtual-dtor \ - -Wshadow \ - -fPIC \ - -fmessage-length=0 \ - -fno-common \ - -fno-strict-aliasing \ - -fno-use-cxa-atexit \ - -fvisibility-inlines-hidden \ - -fvisibility=hidden \ - -pipe \ - -ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE) -gb_CFLAGS_WERROR := -Werror -gb_CXXFLAGS_WERROR := -Werror -endif - -ifneq ($(strip $(SYSBASE)),) -gb_CXXFLAGS += --sysroot=$(SYSBASE) -gb_CFLAGS += --sysroot=$(SYSBASE) -endif -gb_LinkTarget_EXCEPTIONFLAGS := \ - -DEXCEPTIONS_ON \ - -fexceptions \ - -fno-enforce-eh-specs \ - -gb_LinkTarget_NOEXCEPTIONFLAGS := \ - -DEXCEPTIONS_OFF \ - -fno-exceptions \ - -gb_LinkTarget_LDFLAGS := \ - -Wl,--sysroot=$(SYSBASE) \ - -Wl,-rpath-link,$(SYSBASE)/lib:$(SYSBASE)/usr/lib \ - -Wl,-z,combreloc \ - -Wl,-z,defs \ - $(subst -L../lib , ,$(SOLARLIB)) \ - -ifeq ($(HAVE_LD_HASH_STYLE),TRUE) -gb_LinkTarget_LDFLAGS += \ - -Wl,--hash-style=both \ - -endif - -ifneq ($(HAVE_LD_BSYMBOLIC_FUNCTIONS),) gb_LinkTarget_LDFLAGS += \ - -Wl,--dynamic-list-cpp-new \ - -Wl,--dynamic-list-cpp-typeinfo \ - -Wl,-Bsymbolic-functions \ - -endif - -ifeq ($(gb_DEBUGLEVEL),0) -gb_LinkTarget_LDFLAGS += -Wl,-O1 -endif - -gb_DEBUG_CFLAGS := -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline - -ifeq ($(gb_DEBUGLEVEL),2) -gb_COMPILEROPTFLAGS := -O0 -else -gb_COMPILEROPTFLAGS := -Os -endif - -gb_COMPILERNOOPTFLAGS := -O0 - -# Helper class - -gb_Helper_abbreviate_dirs_native = $(gb_Helper_abbreviate_dirs) - -# convert parametters filesystem root to native notation -# does some real work only on windows, make sure not to -# break the dummy implementations on unx* -define gb_Helper_convert_native -$(1) -endef - -# CObject class - -# $(call gb_CObject__command,object,relative-source,source,dep-file) -define gb_CObject__command -$(call gb_Output_announce,$(2),$(true),C ,3) -$(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $(1)) $(dir $(4)) && \ - $(gb_CC) \ - $(DEFS) \ - $(T_CFLAGS) \ - -c $(3) \ - -o $(1) \ - -MMD -MT $(1) \ - -MF $(4) \ - -I$(dir $(3)) \ - $(INCLUDE)) -endef - - -# CxxObject class - -# $(call gb_CxxObject__command,object,relative-source,source,dep-file) -define gb_CxxObject__command -$(call gb_Output_announce,$(2),$(true),CXX,3) -$(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $(1)) $(dir $(4)) && \ - $(gb_CXX) \ - $(DEFS) \ - $(T_CXXFLAGS) \ - -c $(3) \ - -o $(1) \ - -MMD -MT $(1) \ - -MF $(4) \ - -I$(dir $(3)) \ - $(INCLUDE_STL) $(INCLUDE)) -endef - - -# LinkTarget class - -define gb_LinkTarget__get_rpath_for_layer -$(patsubst $(1):%,%,$(filter $(1):%,$(gb_LinkTarget__RPATHS))) -endef - -gb_LinkTarget__RPATHS := \ - URELIB:\dORIGIN \ - UREBIN:\dORIGIN/../lib:\dORIGIN \ - OOO:\dORIGIN:\dORIGIN/../ure-link/lib \ - BRAND:\dORIGIN:\dORIGIN/../basis-link/program:\dORIGIN/../basis-link/ure-link/lib \ - SDKBIN:\dORIGIN/../../ure-link/lib \ - NONEBIN:\dORIGIN/../lib:\dORIGIN \ - -gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) -gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) - - -gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) -gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) - -define gb_LinkTarget__command_dynamiclink -$(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $(1)) && \ - $(gb_CXX) \ - $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ - $(subst \d,$$,$(RPATH)) \ - $(T_LDFLAGS) \ - $(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) \ - $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ - $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ - $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ - -Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \ - $(LIBS) \ - -o $(1)) -endef - -define gb_LinkTarget__command_staticlink -$(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $(1)) && \ - $(gb_AR) -rsu $(1) \ - $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ - $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ - $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ - 2> /dev/null) -endef - -define gb_LinkTarget__command -$(call gb_Output_announce,$(2),$(true),LNK,4) -$(if $(filter Library CppunitTest Executable,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclink,$(1))) -$(if $(filter StaticLibrary,$(TARGETTYPE)),$(call gb_LinkTarget__command_staticlink,$(1))) -endef - - -# Library class - -gb_Library_DEFS := -gb_Library_TARGETTYPEFLAGS := -shared -Wl,-z,noexecstack -gb_Library_SYSPRE := lib -gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_ -gb_Library_PLAINEXT := .so -gb_Library_RTEXT := gcc3$(gb_Library_PLAINEXT) -ifeq ($(gb_PRODUCT),$(true)) -gb_Library_STLEXT := port_gcc$(gb_Library_PLAINEXT) -else -gb_Library_STLEXT := port_gcc_stldebug$(gb_Library_PLAINEXT) -endif - -ifeq ($(CPUNAME),X86_64) -gb_Library_OOOEXT := lx$(gb_Library_PLAINEXT) -gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) -else -gb_Library_OOOEXT := li$(gb_Library_PLAINEXT) -gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) -endif - -gb_Library_PLAINLIBS_NONE += \ - dl \ - fontconfig \ - freetype \ - m \ - pthread \ - ICE \ - SM \ - X11 \ - Xext \ - Xrender \ - -gb_Library_FILENAMES := \ - $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ - $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ - $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ - $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ - $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ - $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ - $(foreach lib,$(gb_Library_STLLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_STLEXT)) \ - $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ - $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ - $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \ - - -gb_Library_LAYER := \ - $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ - $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \ - $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \ - $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \ - $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):URELIB) \ - $(foreach lib,$(gb_Library_STLLIBS),$(lib):URELIB) \ - $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):URELIB) \ - $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \ - $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):URELIB) \ - -define gb_Library_get_rpath -'-Wl,-rpath,$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Library_get_layer,$(1)))' \ -'-Wl,-rpath-link,$(gb_Library_OUTDIRLOCATION)' -endef - -define gb_Library_Library_platform -$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Library_get_rpath,$(1)) - -endef - - -# StaticLibrary class - -gb_StaticLibrary_DEFS := -gb_StaticLibrary_SYSPRE := lib -gb_StaticLibrary_PLAINEXT := .a -gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT) - -gb_StaticLibrary_FILENAMES := \ - $(foreach lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT)) \ - $(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \ - -gb_StaticLibrary_StaticLibrary_platform = - - -# Executable class - -gb_Executable_EXT := - -gb_Executable_LAYER := \ - $(foreach exe,$(gb_Executable_UREBIN),$(exe):UREBIN) \ - $(foreach exe,$(gb_Executable_SDK),$(exe):SDKBIN) \ - $(foreach exe,$(gb_Executable_OOO),$(exe):OOO) \ - $(foreach exe,$(gb_Executable_BRAND),$(exe):BRAND) \ - $(foreach exe,$(gb_Executable_NONE),$(exe):NONEBIN) \ - - -define gb_Executable_get_rpath -'-Wl,-rpath,$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Executable_get_layer,$(1)))' \ --Wl,-rpath-link,$(gb_Library_OUTDIRLOCATION) -endef - -define gb_Executable_Executable_platform -$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Executable_get_rpath,$(1)) - -endef - - -# CppunitTest class - -gb_CppunitTest_CPPTESTPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib -gb_CppunitTest_SYSPRE := libtest_ -gb_CppunitTest_EXT := .so -gb_CppunitTest_get_filename = $(gb_CppunitTest_SYSPRE)$(1)$(gb_CppunitTest_EXT) -gb_CppunitTest_get_libfilename = $(gb_CppunitTest_get_filename) - -define gb_CppunitTest_CppunitTest_platform -$(call gb_LinkTarget_get_target,$(2)) : RPATH := - -endef - -# JunitTest class - -define gb_JunitTest_JunitTest_platform -$(call gb_JunitTest_get_target,$(1)) : DEFS := \ - -Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:$(OUTDIR)/installation/opt/openoffice.org3/program/soffice}" \ - -Dorg.openoffice.test.arg.env=LD_LIBRARY_PATH \ - -Dorg.openoffice.test.arg.user=file://$(call gb_JunitTest_get_userdir,$(1)) \ - -endef - -# SdiTarget class - -gb_SdiTarget_SVIDLPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib - -# SrsPartMergeTarget - -gb_SrsPartMergeTarget_TRANSEXPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib - -# SrsPartTarget class - -gb_SrsPartTarget_RSCTARGET := $(OUTDIR)/bin/rsc -gb_SrsPartTarget_RSCCOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib SOLARBINDIR=$(OUTDIR)/bin $(gb_SrsPartTarget_RSCTARGET) - -define gb_SrsPartTarget__command_dep -$(call gb_Helper_abbreviate_dirs,\ - $(gb_GCCP) \ - -MM -MT $(call gb_SrsPartTarget_get_target,$(1)) \ - $(INCLUDE) \ - $(DEFS) \ - -c -x c++-header $(2) \ - -o $(call gb_SrsPartTarget_get_dep_target,$(1))) -endef - - -# ComponentTarget + -Wl,-z,defs \ -gb_XSLTPROCPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib -gb_Library_COMPONENTPREFIXES := \ - OOO:vnd.sun.star.expand:\dOOO_BASE_DIR/program/ \ - URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \ - NONE:vnd.sun.star.expand:\dOOO_INBUILD_SHAREDLIB_DIR/ \ +include $(GBUILDDIR)/platform/unxgcc.mk -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/macosx.mk b/solenv/gbuild/platform/macosx.mk index 6d9f38061e31..5f11ede7136c 100644 --- a/solenv/gbuild/platform/macosx.mk +++ b/solenv/gbuild/platform/macosx.mk @@ -1,7 +1,7 @@ #************************************************************************* # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# +# # Copyright 2000, 2011 Oracle and/or its affiliates. # # OpenOffice.org - a multi-platform office productivity suite @@ -48,20 +48,20 @@ gb_CXX := $(CXX) endif gb_OSDEFS := \ - -D$(OS) \ - -D_PTHREADS \ - -DUNIX \ - -DUNX \ - -D_REENTRANT \ - -DNO_PTHREAD_PRIORITY \ - -DQUARTZ \ - $(EXTRA_CDEFS) \ + -D$(OS) \ + -D_PTHREADS \ + -DUNIX \ + -DUNX \ + -D_REENTRANT \ + -DNO_PTHREAD_PRIORITY \ + -DQUARTZ \ + $(EXTRA_CDEFS) \ gb_COMPILERDEFS := \ - -D$(COM) \ - -DHAVE_GCC_VISIBILITY_FEATURE \ - -DCPPU_ENV=gcc3 \ - -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \ + -D$(COM) \ + -DHAVE_GCC_VISIBILITY_FEATURE \ + -DCPPU_ENV=gcc3 \ + -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \ ifeq ($(CPUNAME),POWERPC) gb_CPUDEFS := -DPOWERPC -DPPC @@ -77,62 +77,64 @@ endif gb_CFLAGS := \ - -isysroot $(gb_SDKDIR) \ - -Wall \ - -Wendif-labels \ - -Wextra \ - -Wshadow \ - -fPIC \ - -fmessage-length=0 \ - -fno-common \ - -fno-strict-aliasing \ - -pipe \ + -isysroot $(gb_SDKDIR) \ + -Wall \ + -Wendif-labels \ + -Wextra \ + -Wshadow \ + -fPIC \ + -fmessage-length=0 \ + -fno-common \ + -fno-strict-aliasing \ + -pipe \ gb_CXXFLAGS := \ - -isysroot $(gb_SDKDIR) \ - -Wall \ - -Wendif-labels \ - -Wextra \ - -Wno-ctor-dtor-privacy \ - -Wno-long-double \ - -Wno-non-virtual-dtor \ - -fPIC \ - -fmessage-length=0 \ - -fno-common \ - -fno-strict-aliasing \ - -fsigned-char \ - -malign-natural \ - -pipe \ - #-Wshadow \ break in compiler headers already - #-fsigned-char \ might be removed? - #-malign-natural \ might be removed? + -isysroot $(gb_SDKDIR) \ + -Wall \ + -Wendif-labels \ + -Wextra \ + -Wno-ctor-dtor-privacy \ + -Wno-long-double \ + -Wno-non-virtual-dtor \ + -fPIC \ + -fmessage-length=0 \ + -fno-common \ + -fno-strict-aliasing \ + -fsigned-char \ + -malign-natural \ + -pipe \ + #-Wshadow \ break in compiler headers already + #-fsigned-char \ might be removed? + #-malign-natural \ might be removed? # these are to get g++ to switch to Objective-C++ mode # (see toolkit module for a case where it is necessary to do it this way) gb_OBJCXXFLAGS := -x objective-c++ -fobjc-exceptions +gb_OBJCFLAGS := -x objective-c + ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE) gb_CFLAGS_WERROR := -Werror gb_CXXFLAGS_WERROR := -Werror endif gb_LinkTarget_EXCEPTIONFLAGS := \ - -DEXCEPTIONS_ON \ - -fexceptions \ - -fno-enforce-eh-specs \ + -DEXCEPTIONS_ON \ + -fexceptions \ + -fno-enforce-eh-specs \ gb_LinkTarget_NOEXCEPTIONFLAGS := \ - -DEXCEPTIONS_OFF \ - -fno-exceptions \ + -DEXCEPTIONS_OFF \ + -fno-exceptions \ gb_LinkTarget_LDFLAGS := \ - -Wl,-syslibroot,$(gb_SDKDIR) \ - $(subst -L../lib , ,$(SOLARLIB)) \ + -Wl,-syslibroot,$(gb_SDKDIR) \ + $(subst -L../lib , ,$(SOLARLIB)) \ #man ld says: obsolete -Wl,-multiply_defined,suppress \ gb_DEBUG_CFLAGS := -g +ifneq ($(gb_DEBUGLEVEL),0) -ifeq ($(gb_DEBUGLEVEL),2) gb_COMPILEROPTFLAGS := -O0 else gb_COMPILEROPTFLAGS := -O2 @@ -144,6 +146,8 @@ gb_COMPILERNOOPTFLAGS := -O0 gb_Helper_abbreviate_dirs_native = $(gb_Helper_abbreviate_dirs) +gb_Helper_set_ld_path := DYLD_LIBRARY_PATH=$(OUTDIR)/lib + # convert parametters filesystem root to native notation # does some real work only on windows, make sure not to # break the dummy implementations on unx* @@ -158,15 +162,15 @@ define gb_CObject__command $(call gb_Output_announce,$(2),$(true),C ,3) $(call gb_Helper_abbreviate_dirs,\ mkdir -p $(dir $(1)) $(dir $(4)) && \ - $(gb_CC) \ + $(gb_CC) \ $(DEFS) \ $(T_CFLAGS) \ - -c $(3) \ - -o $(1) \ + -c $(3) \ + -o $(1) \ -MMD -MT $(1) \ -MF $(4) \ - -I$(dir $(3)) \ - $(INCLUDE)) + -I$(dir $(3)) \ + $(INCLUDE)) endef @@ -177,15 +181,15 @@ define gb_CxxObject__command $(call gb_Output_announce,$(2),$(true),CXX,3) $(call gb_Helper_abbreviate_dirs,\ mkdir -p $(dir $(1)) $(dir $(4)) && \ - $(gb_CXX) \ + $(gb_CXX) \ $(DEFS) \ $(T_CXXFLAGS) \ - -c $(3) \ - -o $(1) \ + -c $(3) \ + -o $(1) \ -MMD -MT $(1) \ -MF $(4) \ - -I$(dir $(3)) \ - $(INCLUDE_STL) $(INCLUDE)) + -I$(dir $(3)) \ + $(INCLUDE_STL) $(INCLUDE)) endef @@ -195,15 +199,32 @@ define gb_ObjCxxObject__command $(call gb_Output_announce,$(2),$(true),OCX,3) $(call gb_Helper_abbreviate_dirs,\ mkdir -p $(dir $(1)) $(dir $(4)) && \ - $(gb_CXX) \ + $(gb_CXX) \ $(DEFS) \ $(T_OBJCXXFLAGS) \ - -c $(3) \ - -o $(1) \ + -c $(3) \ + -o $(1) \ -MMD -MT $(1) \ -MF $(4) \ - -I$(dir $(3)) \ - $(INCLUDE_STL) $(INCLUDE)) + -I$(dir $(3)) \ + $(INCLUDE_STL) $(INCLUDE)) +endef + +# ObjCObject class + +define gb_ObjCObject__command +$(call gb_Output_announce,$(2),$(true),OCC,3) +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + mkdir -p $(dir $(call gb_ObjCObject_get_dep_target,$(2))) && \ + $(gb_CC) \ + $(DEFS) $(OBJCFLAGS) \ + -c $(3) \ + -o $(1) \ + -MMD -MT $(call gb_ObjCObject_get_target,$(2)) \ + -MF $(call gb_ObjCObject_get_dep_target,$(2)) \ + -I$(dir $(3)) \ + $(INCLUDE_STL) $(INCLUDE)) endef @@ -214,12 +235,12 @@ $(patsubst $(1):%,%,$(filter $(1):%,$(gb_LinkTarget__RPATHS))) endef gb_LinkTarget__RPATHS := \ - URELIB:@__________________________________________________URELIB/ \ - UREBIN: \ - OOO:@__________________________________________________OOO/ \ - BRAND: \ - SDKBIN: \ - NONEBIN: \ + URELIB:@__________________________________________________URELIB/ \ + UREBIN: \ + OOO:@__________________________________________________OOO/ \ + BRAND: \ + SDKBIN: \ + NONEBIN: \ define gb_LinkTarget__get_installname $(if $(2),-install_name '$(2)$(1)',) @@ -228,6 +249,8 @@ endef gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) gb_LinkTarget_OBJCXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) $(gb_OBJCXXFLAGS) +gb_LinkTarget_OBJCFLAGS := $(gb_CFLAGS) $(gb_OBJCFLAGS) $(gb_COMPILEROPTFLAGS) +gb_LinkTarget_OBJCFLAGS += -g gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) @@ -240,52 +263,56 @@ endef define gb_LinkTarget__get_layer $(if $(filter Executable,$(1)),\ - $$(call gb_Executable_get_layer,$(2)),\ - $$(call gb_Library_get_layer,$(2))) + $$(call gb_Executable_get_layer,$(2)),\ + $$(call gb_Library_get_layer,$(2))) endef # FIXME the DYLIB_FILE mess is only necessary because # solver layout is different from installation layout define gb_LinkTarget__command_dynamiclink $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $(1)) && \ - DYLIB_FILE=`$(gb_MKTEMP)` && \ - $(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ - $(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \ - $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ + mkdir -p $(dir $(1)) && \ + DYLIB_FILE=`$(gb_MKTEMP)` && \ + $(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ + $(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \ + $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ $(subst \d,$$,$(RPATH)) \ $(T_LDFLAGS) \ - $(patsubst lib%.dylib,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) > $${DYLIB_FILE} && \ - $(gb_CXX) \ - $(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \ - $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ + $(patsubst lib%.dylib,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) > $${DYLIB_FILE} && \ + $(gb_CXX) \ + $(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \ + $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ $(subst \d,$$,$(RPATH)) \ $(T_LDFLAGS) \ - $(call gb_LinkTarget__get_liblinkflags,$(LINKED_LIBS)) \ - $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ - $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ - $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \ - $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ - $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \ + $(call gb_LinkTarget__get_liblinkflags,$(LINKED_LIBS)) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ + $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(OBJCOBJECTS),$(call gb_ObjCObject_get_target,$(object))) \ + $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ + $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \ + $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \ $(LIBS) \ - -o $(1) \ - `cat $${DYLIB_FILE}` && \ - $(if $(filter Library CppunitTest,$(TARGETTYPE)),\ - $(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl Library $(LAYER) $(1) && \ - ln -sf $(1) $(patsubst %.dylib,%.jnilib,$(1)) &&) \ - rm -f $${DYLIB_FILE}) + -o $(1) \ + `cat $${DYLIB_FILE}` && \ + $(if $(filter Library CppunitTest,$(TARGETTYPE)),\ + $(PERL) $(SOLARENV)/bin/macosx-change-install-names.pl Library $(LAYER) $(1) && \ + ln -sf $(1) $(patsubst %.dylib,%.jnilib,$(1)) &&) \ + rm -f $${DYLIB_FILE}) endef # parameters: 1-linktarget 2-cobjects 3-cxxobjects define gb_LinkTarget__command_staticlink $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $(1)) && \ - $(gb_AR) -rsu $(1) \ - $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ - $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ - $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \ - $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ - 2> /dev/null) + mkdir -p $(dir $(1)) && \ + $(gb_AR) -rsu $(1) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ + $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(OBJCOBJECTS),$(call gb_ObjCObject_get_target,$(object))) \ + $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ + $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \ + 2> /dev/null) endef define gb_LinkTarget__command @@ -303,52 +330,44 @@ gb_Library_SYSPRE := lib gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_ gb_Library_PLAINEXT := .dylib gb_Library_RTEXT := gcc3$(gb_Library_PLAINEXT) -ifeq ($(gb_PRODUCT),$(true)) -gb_Library_STLEXT := port_gcc$(gb_Library_PLAINEXT) -else -gb_Library_STLEXT := port_gcc_stldebug$(gb_Library_PLAINEXT) -endif -ifeq ($(CPUNAME),INTEL) -gb_Library_OOOEXT := mxi$(gb_Library_PLAINEXT) +gb_Library_OOOEXT := $(gb_Library_DLLPOSTFIX)$(gb_Library_PLAINEXT) gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) -else # ifeq ($(CPUNAME),POWERPC) -gb_Library_OOOEXT := mxp$(gb_Library_PLAINEXT) -gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) -endif gb_Library__FRAMEWORKS := \ - Cocoa \ + Cocoa \ + GLUT \ + OpenGL \ gb_Library_PLAINLIBS_NONE += \ - Cocoa \ - objc \ - m \ - pthread \ + GLUT \ + Cocoa \ + objc \ + OpenGL \ + m \ + pthread \ gb_Library_FILENAMES := \ - $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ - $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ - $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ - $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ - $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ - $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ - $(foreach lib,$(gb_Library_STLLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_STLEXT)) \ - $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ - $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ - $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \ gb_Library_LAYER := \ - $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ - $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \ - $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \ - $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \ - $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):URELIB) \ - $(foreach lib,$(gb_Library_STLLIBS),$(lib):URELIB) \ - $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):URELIB) \ - $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \ - $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):URELIB) \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):URELIB) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):URELIB) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):URELIB) \ define gb_Library_get_rpath $(call gb_LinkTarget__get_installname,$(call gb_Library_get_filename,$(1)),$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Library_get_layer,$(1)))) @@ -369,8 +388,8 @@ gb_StaticLibrary_PLAINEXT := .a gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT) gb_StaticLibrary_FILENAMES := \ - $(foreach lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT)) \ - $(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \ + $(foreach lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT)) \ + $(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \ gb_StaticLibrary_StaticLibrary_platform = @@ -381,11 +400,11 @@ gb_Executable_EXT := gb_Executable_TARGETTYPEFLAGS := -bind_at_load gb_Executable_LAYER := \ - $(foreach exe,$(gb_Executable_UREBIN),$(exe):UREBIN) \ - $(foreach exe,$(gb_Executable_SDK),$(exe):SDKBIN) \ - $(foreach exe,$(gb_Executable_OOO),$(exe):OOO) \ - $(foreach exe,$(gb_Executable_BRAND),$(exe):BRAND) \ - $(foreach exe,$(gb_Executable_NONE),$(exe):NONEBIN) \ + $(foreach exe,$(gb_Executable_UREBIN),$(exe):UREBIN) \ + $(foreach exe,$(gb_Executable_SDK),$(exe):SDKBIN) \ + $(foreach exe,$(gb_Executable_OOO),$(exe):OOO) \ + $(foreach exe,$(gb_Executable_BRAND),$(exe):BRAND) \ + $(foreach exe,$(gb_Executable_NONE),$(exe):NONEBIN) \ define gb_Executable_get_rpath @@ -417,9 +436,9 @@ endef define gb_JunitTest_JunitTest_platform $(call gb_JunitTest_get_target,$(1)) : DEFS := \ - -Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:$(OUTDIR)/installation/opt/OpenOffice.org.app/Contents/MacOS/soffice}" \ - -Dorg.openoffice.test.arg.env=DYLD_LIBRARY_PATH \ - -Dorg.openoffice.test.arg.user=file://$(call gb_JunitTest_get_userdir,$(1)) \ + -Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:$(OUTDIR)/installation/opt/LibreOffice.app/Contents/MacOS/soffice}" \ + -Dorg.openoffice.test.arg.env=DYLD_LIBRARY_PATH \ + -Dorg.openoffice.test.arg.user=file://$(call gb_JunitTest_get_userdir,$(1)) \ endef @@ -438,12 +457,12 @@ gb_SrsPartTarget_RSCCOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib SOLARBINDIR=$(OUT define gb_SrsPartTarget__command_dep $(call gb_Helper_abbreviate_dirs,\ - $(gb_GCCP) \ - -MM -MT $(call gb_SrsPartTarget_get_target,$(1)) \ - $(INCLUDE) \ - $(DEFS) \ - -c -x c++-header $(2) \ - -o $(call gb_SrsPartTarget_get_dep_target,$(1))) + $(gb_GCCP) \ + -MM -MT $(call gb_SrsPartTarget_get_target,$(1)) \ + $(INCLUDE) \ + $(DEFS) \ + -c -x c++-header $(2) \ + -o $(call gb_SrsPartTarget_get_dep_target,$(1))) endef @@ -451,8 +470,8 @@ endef gb_XSLTPROCPRECOMMAND := DYLD_LIBRARY_PATH=$(OUTDIR)/lib gb_Library_COMPONENTPREFIXES := \ - OOO:vnd.sun.star.expand:\dOOO_BASE_DIR/program/ \ - URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \ + OOO:vnd.sun.star.expand:\dOOO_BASE_DIR/program/ \ + URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \ NONE:vnd.sun.star.expand:\dOOO_INBUILD_SHAREDLIB_DIR/ \ -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/netbsd.mk b/solenv/gbuild/platform/netbsd.mk new file mode 100644 index 000000000000..5644f0cf7941 --- /dev/null +++ b/solenv/gbuild/platform/netbsd.mk @@ -0,0 +1,44 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk + +ifeq ($(CPUNAME),INTEL) +gb_CPUDEFS := -DX86 +else +gb_CPUDEFS := -D$(CPUNAME) +endif + +gb_COMPILERDEFAULTOPTFLAGS := -O2 + +include $(GBUILDDIR)/platform/unxgcc.mk + +gb_CppunitTest_CPPTESTPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib:/usr/pkg/lib:/usr/X11R7/lib + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/openbsd.mk b/solenv/gbuild/platform/openbsd.mk new file mode 100644 index 000000000000..187c207ac962 --- /dev/null +++ b/solenv/gbuild/platform/openbsd.mk @@ -0,0 +1,60 @@ +#************************************************************************* +# +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# Caolán McNamara <caolanm@redhat.com> (Red Hat, Inc.) +# Portions created by the Initial Developer are Copyright (C) 2010 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): Caolán McNamara <caolanm@redhat.com> +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. +# +#************************************************************************* + +#please make generic modifications to unxgcc.mk + +ifeq ($(CPUNAME),INTEL) +gb_CPUDEFS := -DX86 +else +gb_CPUDEFS := -D$(CPUNAME) +endif + +gb_COMPILERDEFAULTOPTFLAGS := -O2 +gb_STDLIBS := pthread + +include $(GBUILDDIR)/platform/unxgcc.mk + +gb_LinkTarget_NOEXCEPTIONFLAGS += -DBOOST_NO_EXCEPTIONS + +define gb_LinkTarget__command_dynamiclink +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + $(gb_CXX) \ + $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ + $(subst \d,$$,$(RPATH)) $(LDFLAGS) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ + $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ + $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \ + -Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \ + $(subst -lpthread,$(PTHREAD_LIBS),$(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib))))) \ + -o $(1)) +endef + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/solaris.mk b/solenv/gbuild/platform/solaris.mk index 32ee2328ac91..e0547b8de4ec 100644 --- a/solenv/gbuild/platform/solaris.mk +++ b/solenv/gbuild/platform/solaris.mk @@ -47,19 +47,19 @@ gb_CXX := $(CXX) endif gb_OSDEFS := \ - -D$(OS) \ - -D$(GUI) \ - -DSYSV \ - -DSUN \ - -DSUN4 \ - -D_REENTRANT \ - -D_POSIX_PTHREAD_SEMANTICS \ - -D_PTHREADS \ - -DUNIX \ + -D$(OS) \ + -D$(GUI) \ + -DSYSV \ + -DSUN \ + -DSUN4 \ + -D_REENTRANT \ + -D_POSIX_PTHREAD_SEMANTICS \ + -D_PTHREADS \ + -DUNIX \ gb_COMPILERDEFS := \ - -D$(COM) \ - -DCPPU_ENV=sunpro5 \ + -D$(COM) \ + -DCPPU_ENV=sunpro5 \ gb_CPUDEFS := -D$(CPUNAME) ifeq ($(CPUNAME),SPARC) @@ -67,22 +67,22 @@ gb_CPUDEFS += -D__sparcv8plus endif gb_CFLAGS := \ - -temp=/tmp \ - -KPIC \ - -mt \ - -xldscope=hidden \ - -xCC \ - -xc99=none \ + -temp=/tmp \ + -KPIC \ + -mt \ + -xldscope=hidden \ + -xCC \ + -xc99=none \ gb_CXXFLAGS := \ - -temp=/tmp \ - -KPIC \ - -mt \ - -xldscope=hidden \ - -features=no%altspell \ - -library=no%Cstd \ - +w2 \ - -erroff=doubunder,identexpected,inllargeuse,inllargeint,notemsource,reftotemp,truncwarn,wnoretvalue,anonnotype \ + -temp=/tmp \ + -KPIC \ + -mt \ + -xldscope=hidden \ + -features=no%altspell \ + -library=no%Cstd \ + +w2 \ + -erroff=doubunder,identexpected,inllargeuse,inllargeint,notemsource,reftotemp,truncwarn,wnoretvalue,anonnotype \ ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE) gb_CFLAGS_WERROR := -errwarn=%all @@ -90,37 +90,36 @@ gb_CXXFLAGS_WERROR := -xwe endif gb_LinkTarget_EXCEPTIONFLAGS := \ - -DEXCEPTIONS_ON \ + -DEXCEPTIONS_ON \ gb_LinkTarget_NOEXCEPTIONFLAGS := \ - -DEXCEPTIONS_OFF \ - -noex \ + -DEXCEPTIONS_OFF \ + -noex \ gb_LinkTarget_LDFLAGS := \ - $(subst -L../lib , ,$(SOLARLIB)) \ - -temp=/tmp \ - -w \ - -mt \ - -Bdirect \ - -z defs \ - -z combreloc \ - -norunpath \ - -PIC \ - -library=no%Cstd \ + $(subst -L../lib , ,$(SOLARLIB)) \ + -temp=/tmp \ + -w \ + -mt \ + -Bdirect \ + -z defs \ + -z combreloc \ + -norunpath \ + -PIC \ + -library=no%Cstd \ gb_DEBUG_CFLAGS := -g - -ifeq ($(gb_DEBUGLEVEL),2) +ifneq ($(gb_DEBUGLEVEL),0) gb_COMPILEROPTFLAGS := else ifeq ($(CPUNAME),INTEL) gb_COMPILEROPTFLAGS := -xarch=generic -xO3 else # ifeq ($(CPUNAME),SPARC) -# -m32 -xarch=sparc restrict target to 32 bit sparc -# -xO3 optimization level 3 -# -xspace don't do optimizations which do increase binary size -# -xprefetch=yes do prefetching (helps on UltraSparc III) +# -m32 -xarch=sparc restrict target to 32 bit sparc +# -xO3 optimization level 3 +# -xspace don't do optimizations which do increase binary size +# -xprefetch=yes do prefetching (helps on UltraSparc III) gb_COMPILEROPTFLAGS := -m32 -xarch=sparc -xO3 -xspace -xprefetch=yes endif endif @@ -146,15 +145,15 @@ $(call gb_Output_announce,$(2),$(true),C ,3) $(call gb_Helper_abbreviate_dirs,\ rm -f $(4) && \ mkdir -p $(dir $(1)) $(dir $(4)) && \ - $(gb_CC) \ - -c $(3) \ - -o $(1) \ - -xMMD \ + $(gb_CC) \ + -c $(3) \ + -o $(1) \ + -xMMD \ -xMF $(4) \ $(DEFS) \ $(T_CFLAGS) \ - -I$(dir $(3)) \ - $(INCLUDE)) + -I$(dir $(3)) \ + $(INCLUDE)) endef @@ -164,15 +163,15 @@ define gb_CxxObject__command $(call gb_Output_announce,$(2),$(true),CXX,3) $(call gb_Helper_abbreviate_dirs,\ mkdir -p $(dir $(1)) $(dir $(4)) && \ - $(gb_CXX) \ + $(gb_CXX) \ $(DEFS) \ $(T_CXXFLAGS) \ - -c $(3) \ - -o $(1) \ - -xMMD \ + -c $(3) \ + -o $(1) \ + -xMMD \ -xMF $(4) \ - -I$(dir $(3)) \ - $(INCLUDE_STL) $(INCLUDE)) + -I$(dir $(3)) \ + $(INCLUDE_STL) $(INCLUDE)) endef @@ -183,12 +182,12 @@ $(patsubst $(1):%,%,$(filter $(1):%,$(gb_LinkTarget__RPATHS))) endef gb_LinkTarget__RPATHS := \ - URELIB:\dORIGIN \ - UREBIN:\dORIGIN/../lib:\dORIGIN \ - OOO:\dORIGIN:\dORIGIN/../ure-link/lib \ - BRAND:\dORIGIN:\dORIGIN/../basis-link/program:\dORIGIN/../basis-link/ure-link/lib \ - SDKBIN:\dORIGIN/../../ure-link/lib \ - NONEBIN:\dORIGIN/../lib:\dORIGIN \ + URELIB:\dORIGIN \ + UREBIN:\dORIGIN/../lib:\dORIGIN \ + OOO:\dORIGIN:\dORIGIN/../ure-link/lib \ + BRAND:\dORIGIN:\dORIGIN/../basis-link/program:\dORIGIN/../basis-link/ure-link/lib \ + SDKBIN:\dORIGIN/../../ure-link/lib \ + NONEBIN:\dORIGIN/../lib:\dORIGIN \ gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) @@ -199,28 +198,29 @@ gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) define gb_LinkTarget__command_dynamiclink $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $(1)) && \ - $(gb_CXX) \ - $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ + mkdir -p $(dir $(1)) && \ + $(gb_CXX) \ + $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ $(subst \d,$$,$(RPATH)) \ $(T_LDFLAGS) \ - $(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) \ - $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ - $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ - $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ - $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \ + $(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ + $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ + $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \ + $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) \ $(LIBS) \ - -o $(1)) + -o $(1)) endef define gb_LinkTarget__command_staticlink $(call gb_Helper_abbreviate_dirs,\ - mkdir -p $(dir $(1)) && \ - $(gb_AR) -rsu $(1) \ - $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ - $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ - $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ - 2> /dev/null) + mkdir -p $(dir $(1)) && \ + $(gb_AR) -rsu $(1) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ + $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ + 2> /dev/null) endef define gb_LinkTarget__command @@ -237,62 +237,52 @@ gb_Library_SYSPRE := lib gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_ gb_Library_PLAINEXT := .so gb_Library_RTEXT := C52$(gb_Library_PLAINEXT) -ifeq ($(gb_PRODUCT),$(true)) -gb_Library_STLEXT := port_sunpro$(gb_Library_PLAINEXT) -else -gb_Library_STLEXT := port_sunpro_debug$(gb_Library_PLAINEXT) -endif -ifeq ($(CPUNAME),INTEL) -gb_Library_OOOEXT := si$(gb_Library_PLAINEXT) +gb_Library_OOOEXT := $(gb_Library_DLLPOSTFIX)$(gb_Library_PLAINEXT) gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) -else # ifeq ($(CPUNAME),SPARC) -gb_Library_OOOEXT := ss$(gb_Library_PLAINEXT) -gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) -endif gb_STDLIBS := \ - Crun \ - m \ - c \ + Crun \ + m \ + c \ gb_Library_PLAINLIBS_NONE += \ - $(gb_STDLIBS) \ - dl \ - freetype \ + $(gb_STDLIBS) \ + dl \ + freetype \ + GL \ + GLU \ jpeg \ m \ nsl \ - pthread \ + pthread \ socket \ - X11 \ - Xext \ - SM \ - ICE \ + X11 \ + Xext \ + SM \ + ICE \ gb_Library_FILENAMES := \ - $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ - $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ - $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ - $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ - $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ - $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ - $(foreach lib,$(gb_Library_STLLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_STLEXT)) \ - $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ - $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ - $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \ gb_Library_LAYER := \ - $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ - $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \ - $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \ - $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \ - $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):URELIB) \ - $(foreach lib,$(gb_Library_STLLIBS),$(lib):URELIB) \ - $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):URELIB) \ - $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \ - $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):URELIB) \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):URELIB) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):URELIB) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):URELIB) \ define gb_Library_get_rpath '-R$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Library_get_layer,$(1)))' @@ -312,8 +302,8 @@ gb_StaticLibrary_PLAINEXT := .a gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT) gb_StaticLibrary_FILENAMES := \ - $(foreach lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT)) \ - $(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \ + $(foreach lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT)) \ + $(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \ gb_StaticLibrary_StaticLibrary_platform = @@ -323,11 +313,11 @@ gb_StaticLibrary_StaticLibrary_platform = gb_Executable_EXT := gb_Executable_LAYER := \ - $(foreach exe,$(gb_Executable_UREBIN),$(exe):UREBIN) \ - $(foreach exe,$(gb_Executable_SDK),$(exe):SDKBIN) \ - $(foreach exe,$(gb_Executable_OOO),$(exe):OOO) \ - $(foreach exe,$(gb_Executable_BRAND),$(exe):BRAND) \ - $(foreach exe,$(gb_Executable_NONE),$(exe):NONEBIN) \ + $(foreach exe,$(gb_Executable_UREBIN),$(exe):UREBIN) \ + $(foreach exe,$(gb_Executable_SDK),$(exe):SDKBIN) \ + $(foreach exe,$(gb_Executable_OOO),$(exe):OOO) \ + $(foreach exe,$(gb_Executable_BRAND),$(exe):BRAND) \ + $(foreach exe,$(gb_Executable_NONE),$(exe):NONEBIN) \ define gb_Executable_get_rpath @@ -357,9 +347,9 @@ endef define gb_JunitTest_JunitTest_platform $(call gb_JunitTest_get_target,$(1)) : DEFS := \ - -Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:$(OUTDIR)/installation/opt/openoffice.org3/program/soffice}" \ - -Dorg.openoffice.test.arg.env=LD_LIBRARY_PATH \ - -Dorg.openoffice.test.arg.user=file://$(call gb_JunitTest_get_userdir,$(1)) \ + -Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:$(OUTDIR)/installation/opt/program/soffice}" \ + -Dorg.openoffice.test.arg.env=LD_LIBRARY_PATH \ + -Dorg.openoffice.test.arg.user=file://$(call gb_JunitTest_get_userdir,$(1)) \ endef @@ -380,18 +370,18 @@ gb_SrsPartTarget_RSCCOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib SOLARBINDIR=$(OUTDI # do not have the right suffix, so use makedepend here... define gb_SrsPartTarget__command_dep $(call gb_Helper_abbreviate_dirs_native,\ - $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ - $(INCLUDE) \ - $(DEFS) \ - $(2) \ - -f - \ - | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ - -v OBJECTFILE=$(call gb_SrsPartTarget_get_target,$(1)) \ - -v OUTDIR=$(OUTDIR)/ \ - -v WORKDIR=$(WORKDIR)/ \ - -v SRCDIR=$(SRCDIR)/ \ - -v REPODIR=$(REPODIR)/ \ - > $(call gb_SrsPartTarget_get_dep_target,$(1))) + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(INCLUDE) \ + $(DEFS) \ + $(2) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(call gb_SrsPartTarget_get_target,$(1)) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_SrsPartTarget_get_dep_target,$(1))) endef @@ -399,8 +389,8 @@ endef gb_XSLTPROCPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR)/lib gb_Library_COMPONENTPREFIXES := \ - OOO:vnd.sun.star.expand:\dOOO_BASE_DIR/program/ \ - URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \ + OOO:vnd.sun.star.expand:\dOOO_BASE_DIR/program/ \ + URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \ NONE:vnd.sun.star.expand:\dOOO_INBUILD_SHAREDLIB_DIR/ \ -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/unxgcc.mk b/solenv/gbuild/platform/unxgcc.mk new file mode 100644 index 000000000000..59c3a4eb091d --- /dev/null +++ b/solenv/gbuild/platform/unxgcc.mk @@ -0,0 +1,441 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2011 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +GUI := UNX +COM := GCC + +gb_MKTEMP := mktemp -t gbuild.XXXXXX + +gb_CC := gcc +gb_CXX := g++ +gb_GCCP := gcc +gb_AR := ar +gb_AWK := awk +gb_CLASSPATHSEP := : + +# use CC/CXX if they are nondefaults +ifneq ($(origin CC),default) +gb_CC := $(CC) +gb_GCCP := $(CC) +endif +ifneq ($(origin CXX),default) +gb_CXX := $(CXX) +endif + +gb_OSDEFS := \ + -D$(OS) \ + -D_PTHREADS \ + -DUNIX \ + -DUNX \ + $(PTHREAD_CFLAGS) \ + +ifeq ($(GXX_INCLUDE_PATH),) +GXX_INCLUDE_PATH=$(COMPATH)/include/c++/$(shell gcc -dumpversion) +endif + +gb_COMPILERDEFS := \ + -D$(COM) \ + -DCPPU_ENV=gcc3 \ + -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \ + +gb_CFLAGS := \ + -Wall \ + -Wendif-labels \ + -Wextra \ + -Wshadow \ + -fPIC \ + -fmessage-length=0 \ + -fno-common \ + -pipe \ + +gb_CXXFLAGS := \ + -Wall \ + -Wendif-labels \ + -Wextra \ + -Wno-ctor-dtor-privacy \ + -Wno-non-virtual-dtor \ + -Woverloaded-virtual \ + -Wshadow \ + -fPIC \ + -fmessage-length=0 \ + -fno-common \ + -pipe \ + +ifeq ($(HAVE_GCC_VISIBILITY_FEATURE),TRUE) +gb_COMPILERDEFS += \ + -DHAVE_GCC_VISIBILITY_FEATURE \ + +gb_CFLAGS += \ + -fvisibility=hidden + +gb_CXXFLAGS += \ + -fvisibility=hidden \ + +ifneq ($(HAVE_GCC_VISIBILITY_BROKEN),TRUE) +gb_CXXFLAGS += \ + -fvisibility-inlines-hidden \ + +endif + +endif + +gb_CCVER := $(shell $(gb_CC) -dumpversion | $(gb_AWK) -F. -- '{ print $$1*10000+$$2*100+$$3 }') +gb_StrictAliasingUnsafe := $(shell expr $(gb_CCVER) \< 40600) + +ifeq ($(gb_StrictAliasingUnsafe),1) +gb_CFLAGS += -fno-strict-aliasing +gb_CXXFLAGS += -fno-strict-aliasing +endif + +ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE) +gb_CFLAGS_WERROR := -Werror +gb_CXXFLAGS_WERROR := -Werror +endif + +ifeq ($(HAVE_CXX0X),TRUE) +gb_CXXFLAGS += -std=c++0x -Wno-deprecated-declarations +endif + +ifneq ($(strip $(SYSBASE)),) +gb_CXXFLAGS += --sysroot=$(SYSBASE) +gb_CFLAGS += --sysroot=$(SYSBASE) +gb_LinkTarget_LDFLAGS += \ + -Wl,--sysroot=$(SYSBASE) +endif +gb_LinkTarget_EXCEPTIONFLAGS := \ + -DEXCEPTIONS_ON \ + -fexceptions \ + -fno-enforce-eh-specs \ + +gb_LinkTarget_NOEXCEPTIONFLAGS := \ + -DEXCEPTIONS_OFF \ + -fno-exceptions \ + +gb_LinkTarget_LDFLAGS += \ + -Wl,-rpath-link,$(SYSBASE)/lib:$(SYSBASE)/usr/lib \ + -Wl,-z,combreloc \ + $(subst -L../lib , ,$(SOLARLIB)) \ + +ifeq ($(HAVE_LD_HASH_STYLE),TRUE) +gb_LinkTarget_LDFLAGS += \ + -Wl,--hash-style=$(WITH_LINKER_HASH_STYLE) \ + +endif + +ifneq ($(HAVE_LD_BSYMBOLIC_FUNCTIONS),) +gb_LinkTarget_LDFLAGS += \ + -Wl,--dynamic-list-cpp-new \ + -Wl,--dynamic-list-cpp-typeinfo \ + -Wl,-Bsymbolic-functions \ + +endif + +ifneq ($(gb_SYMBOL),$(true)) +gb_LinkTarget_LDFLAGS += \ + -Wl,--strip-all \ + +endif + +ifneq ($(gb_DEBUGLEVEL),0) +gb_COMPILEROPTFLAGS := -O0 +gb_LINKEROPTFLAGS := +else +gb_COMPILEROPTFLAGS := $(gb_COMPILERDEFAULTOPTFLAGS) +gb_LINKEROPTFLAGS := -Wl,-O1 +endif + +gb_DEBUG_CFLAGS := -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline + +gb_COMPILERNOOPTFLAGS := -O0 + +# Helper class + +gb_Helper_abbreviate_dirs_native = $(gb_Helper_abbreviate_dirs) + +gb_Helper_set_ld_path := LD_LIBRARY_PATH=$(OUTDIR_FOR_BUILD)/lib + +# convert parametters filesystem root to native notation +# does some real work only on windows, make sure not to +# break the dummy implementations on unx* +define gb_Helper_convert_native +$(1) +endef + +# CObject class + +# $(call gb_CObject__command,object,relative-source,source,dep-file) +define gb_CObject__command +$(call gb_Output_announce,$(2),$(true),C ,3) +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) $(dir $(4)) && \ + $(gb_CC) \ + $(DEFS) \ + $(T_CFLAGS) \ + -c $(3) \ + -o $(1) \ + -MMD -MT $(1) \ + -MF $(4) \ + -I$(dir $(3)) \ + $(INCLUDE)) +endef + + +# CxxObject class + +# $(call gb_CxxObject__command,object,relative-source,source,dep-file) +define gb_CxxObject__command +$(call gb_Output_announce,$(2),$(true),CXX,3) +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) $(dir $(4)) && \ + $(gb_CXX) \ + $(DEFS) \ + $(T_CXXFLAGS) \ + -c $(3) \ + -o $(1) \ + -MMD -MT $(1) \ + -MF $(4) \ + -I$(dir $(3)) \ + $(INCLUDE_STL) $(INCLUDE)) +endef + + +# LinkTarget class + +define gb_LinkTarget__get_rpath_for_layer +$(patsubst $(1):%,%,$(filter $(1):%,$(gb_LinkTarget__RPATHS))) +endef + +gb_LinkTarget__RPATHS := \ + URELIB:\dORIGIN \ + UREBIN:\dORIGIN/../lib:\dORIGIN \ + OOO:\dORIGIN:\dORIGIN/../ure-link/lib \ + BRAND:\dORIGIN:\dORIGIN/../basis-link/program:\dORIGIN/../basis-link/ure-link/lib \ + SDKBIN:\dORIGIN/../../ure-link/lib \ + NONEBIN:\dORIGIN/../lib:\dORIGIN \ + +gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) +gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) + +ifeq ($(gb_SYMBOL),$(true)) +gb_LinkTarget_CXXFLAGS += -ggdb2 +gb_LinkTarget_CFLAGS += -ggdb2 +endif + +gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) +gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) + +# note that `cat $(extraobjectlist)` is needed to build with older gcc versions, e.g. 4.1.2 on SLED10 +# we want to use @$(extraobjectlist) in the long run +define gb_LinkTarget__command_dynamiclink +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + $(gb_CXX) \ + $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ + $(subst \d,$$,$(RPATH)) \ + $(T_LDFLAGS) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ + $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ + $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),`cat $(extraobjectlist)`) \ + -Wl$(COMMA)--start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) -Wl$(COMMA)--end-group \ + $(LIBS) \ + $(patsubst lib%.so,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib)))) \ + -o $(1)) +endef + +define gb_LinkTarget__command_staticlink +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) && \ + $(gb_AR) -rsu $(1) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ + $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ + $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \ + 2> /dev/null) +endef + +define gb_LinkTarget__command +$(call gb_Output_announce,$(2),$(true),LNK,4) +$(if $(filter Library CppunitTest Executable,$(TARGETTYPE)),$(call gb_LinkTarget__command_dynamiclink,$(1))) +$(if $(filter StaticLibrary,$(TARGETTYPE)),$(call gb_LinkTarget__command_staticlink,$(1))) +endef + + +# Library class + +gb_Library_DEFS := +gb_Library_TARGETTYPEFLAGS := -shared -Wl,-z,noexecstack +gb_Library_SYSPRE := lib +gb_Library_UNOVERPRE := $(gb_Library_SYSPRE)uno_ +gb_Library_PLAINEXT := .so +gb_Library_RTEXT := gcc3$(gb_Library_PLAINEXT) + +gb_Library_OOOEXT := $(gb_Library_DLLPOSTFIX)$(gb_Library_PLAINEXT) +gb_Library_UNOEXT := .uno$(gb_Library_PLAINEXT) + +gb_Library_PLAINLIBS_NONE += \ + dl \ + fontconfig \ + freetype \ + GL \ + GLU \ + ICE \ + m \ + pthread \ + SM \ + ICE \ + X11 \ + Xext \ + Xrender \ + +gb_Library_FILENAMES := \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_OOOEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(gb_Library_UNOVERPRE)$(lib)$(gb_Library_PLAINEXT)) \ + + +gb_Library_LAYER := \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):URELIB) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):URELIB) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):URELIB) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):URELIB) \ + +define gb_Library_get_rpath +'-Wl,-rpath,$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Library_get_layer,$(1)))' \ +'-Wl,-rpath-link,$(gb_Library_OUTDIRLOCATION)' +endef + +define gb_Library_Library_platform +$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Library_get_rpath,$(1)) + +endef + + +# StaticLibrary class + +gb_StaticLibrary_DEFS := +gb_StaticLibrary_SYSPRE := lib +gb_StaticLibrary_PLAINEXT := .a +gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT) + +gb_StaticLibrary_FILENAMES := \ + $(foreach lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT)) \ + $(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \ + +gb_StaticLibrary_StaticLibrary_platform = + + +# Executable class + +gb_Executable_EXT := + +gb_Executable_LAYER := \ + $(foreach exe,$(gb_Executable_UREBIN),$(exe):UREBIN) \ + $(foreach exe,$(gb_Executable_SDK),$(exe):SDKBIN) \ + $(foreach exe,$(gb_Executable_OOO),$(exe):OOO) \ + $(foreach exe,$(gb_Executable_BRAND),$(exe):BRAND) \ + $(foreach exe,$(gb_Executable_NONE),$(exe):NONEBIN) \ + + +define gb_Executable_get_rpath +'-Wl,-rpath,$(call gb_LinkTarget__get_rpath_for_layer,$(call gb_Executable_get_layer,$(1)))' \ +-Wl,-rpath-link,$(gb_Library_OUTDIRLOCATION) +endef + +define gb_Executable_Executable_platform +$(call gb_LinkTarget_get_target,$(2)) : RPATH := $(call gb_Executable_get_rpath,$(1)) + +endef + + +# CppunitTest class + +gb_CppunitTest_CPPTESTPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR_FOR_BUILD)/lib +gb_CppunitTest_SYSPRE := libtest_ +gb_CppunitTest_EXT := .so +gb_CppunitTest_get_filename = $(gb_CppunitTest_SYSPRE)$(1)$(gb_CppunitTest_EXT) +gb_CppunitTest_get_libfilename = $(gb_CppunitTest_get_filename) + +define gb_CppunitTest_CppunitTest_platform +$(call gb_LinkTarget_get_target,$(2)) : RPATH := + +endef + +# JunitTest class + +define gb_JunitTest_JunitTest_platform +$(call gb_JunitTest_get_target,$(1)) : DEFS := \ + -Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:$(OUTDIR)/installation/opt/program/soffice}" \ + -Dorg.openoffice.test.arg.env=LD_LIBRARY_PATH \ + -Dorg.openoffice.test.arg.user=file://$(call gb_JunitTest_get_userdir,$(1)) \ + +endef + +# SdiTarget class + +gb_SdiTarget_SVIDLPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR_FOR_BUILD)/lib + +# SrsPartMergeTarget + +gb_SrsPartMergeTarget_TRANSEXPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR_FOR_BUILD)/lib + +# SrsPartTarget class + +gb_SrsPartTarget_RSCTARGET := $(OUTDIR)/bin/rsc +gb_SrsPartTarget_RSCCOMMAND := LD_LIBRARY_PATH=$(OUTDIR_FOR_BUILD)/lib SOLARBINDIR=$(OUTDIR_FOR_BUILD)/bin $(OUTDIR_FOR_BUILD)/bin/rsc + +define gb_SrsPartTarget__command_dep +$(call gb_Helper_abbreviate_dirs,\ + $(gb_GCCP) \ + -MM -MT $(call gb_SrsPartTarget_get_target,$(1)) \ + $(INCLUDE) \ + $(DEFS) \ + -c -x c++-header $(2) \ + -o $(call gb_SrsPartTarget_get_dep_target,$(1))) +endef + + +# ComponentTarget + +gb_XSLTPROCPRECOMMAND := LD_LIBRARY_PATH=$(OUTDIR_FOR_BUILD)/lib +gb_Library_COMPONENTPREFIXES := \ + OOO:vnd.sun.star.expand:\dOOO_BASE_DIR/program/ \ + URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \ + NONE:vnd.sun.star.expand:\dOOO_INBUILD_SHAREDLIB_DIR/ \ + + +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/windows.mk b/solenv/gbuild/platform/windows.mk index 3f655675a393..5e322b158043 100644 --- a/solenv/gbuild/platform/windows.mk +++ b/solenv/gbuild/platform/windows.mk @@ -49,129 +49,129 @@ gb_CXX := $(CXX) endif gb_OSDEFS := \ - -DWINVER=0x0500 \ - -D_WIN32_IE=0x0500 \ - -DNT351 \ - -DWIN32 \ - -DWNT \ + -DWINVER=0x0500 \ + -D_WIN32_IE=0x0500 \ + -DNT351 \ + -DWIN32 \ + -DWNT \ gb_COMPILERDEFS := \ - -DMSC \ - -D_CRT_NON_CONFORMING_SWPRINTFS \ - -D_CRT_NONSTDC_NO_DEPRECATE \ - -D_CRT_SECURE_NO_DEPRECATE \ - -D_MT \ - -DBOOST_MEM_FN_ENABLE_CDECL \ - -DCPPU_ENV=msci \ - -DFULL_DESK \ - -DM1500 \ + -DMSC \ + -D_CRT_NON_CONFORMING_SWPRINTFS \ + -D_CRT_NONSTDC_NO_DEPRECATE \ + -D_CRT_SECURE_NO_DEPRECATE \ + -D_MT \ + -D_DLL \ + -DBOOST_MEM_FN_ENABLE_CDECL \ + -DCPPU_ENV=msci \ + -DM1500 \ gb_CPUDEFS := -DINTEL -D_X86_=1 gb_RCDEFS := \ - -DWINVER=0x0400 \ - -DWIN32 \ + -DWINVER=0x0400 \ + -DWIN32 \ gb_RCFLAGS := \ - -V + -V gb_CFLAGS := \ - -Gd \ - -GR \ - -Gs \ - -GS \ - -nologo \ - -Wall \ - -wd4005 \ - -wd4061 \ - -wd4127 \ - -wd4180 \ - -wd4189 \ - -wd4191 \ - -wd4217 \ - -wd4250 \ - -wd4251 \ - -wd4255 \ - -wd4275 \ - -wd4290 \ - -wd4294 \ - -wd4350 \ - -wd4355 \ - -wd4365 \ - -wd4503 \ - -wd4505 \ - -wd4511 \ - -wd4512 \ - -wd4514 \ - -wd4611 \ - -wd4619 \ - -wd4625 \ - -wd4626 \ - -wd4640 \ - -wd4668 \ - -wd4675 \ - -wd4692 \ - -wd4710 \ - -wd4711 \ - -wd4738 \ - -wd4786 \ - -wd4800 \ - -wd4820 \ - -wd4826 \ - -Zc:forScope,wchar_t- \ - -Zm500 \ + -Gd \ + -GR \ + -Gs \ + -GS \ + -MD \ + -nologo \ + -Wall \ + -wd4005 \ + -wd4061 \ + -wd4127 \ + -wd4180 \ + -wd4189 \ + -wd4191 \ + -wd4217 \ + -wd4250 \ + -wd4251 \ + -wd4255 \ + -wd4275 \ + -wd4290 \ + -wd4294 \ + -wd4350 \ + -wd4355 \ + -wd4365 \ + -wd4503 \ + -wd4505 \ + -wd4511 \ + -wd4512 \ + -wd4514 \ + -wd4611 \ + -wd4619 \ + -wd4625 \ + -wd4626 \ + -wd4640 \ + -wd4668 \ + -wd4675 \ + -wd4692 \ + -wd4710 \ + -wd4711 \ + -wd4738 \ + -wd4786 \ + -wd4800 \ + -wd4820 \ + -wd4826 \ + -Zc:forScope,wchar_t- \ + -Zm500 \ gb_CXXFLAGS := \ - -Gd \ - -GR \ - -Gs \ - -GS \ - -Gy \ - -nologo \ - -Wall \ - -wd4005 \ - -wd4061 \ - -wd4127 \ - -wd4180 \ - -wd4189 \ - -wd4191 \ - -wd4217 \ - -wd4250 \ - -wd4251 \ - -wd4275 \ - -wd4290 \ - -wd4294 \ - -wd4350 \ - -wd4355 \ - -wd4365 \ - -wd4503 \ - -wd4505 \ - -wd4511 \ - -wd4512 \ - -wd4514 \ - -wd4611 \ - -wd4619 \ - -wd4625 \ - -wd4626 \ - -wd4640 \ - -wd4668 \ - -wd4675 \ - -wd4692 \ - -wd4710 \ - -wd4711 \ - -wd4738 \ - -wd4786 \ - -wd4800 \ - -wd4820 \ - -wd4826 \ - -Zc:forScope,wchar_t- \ - -Zm500 \ + -Gd \ + -GR \ + -Gs \ + -GS \ + -Gy \ + -MD \ + -nologo \ + -Wall \ + -wd4005 \ + -wd4061 \ + -wd4127 \ + -wd4180 \ + -wd4189 \ + -wd4191 \ + -wd4217 \ + -wd4250 \ + -wd4251 \ + -wd4275 \ + -wd4290 \ + -wd4294 \ + -wd4350 \ + -wd4355 \ + -wd4365 \ + -wd4503 \ + -wd4505 \ + -wd4511 \ + -wd4512 \ + -wd4514 \ + -wd4611 \ + -wd4619 \ + -wd4625 \ + -wd4626 \ + -wd4640 \ + -wd4668 \ + -wd4675 \ + -wd4692 \ + -wd4710 \ + -wd4711 \ + -wd4738 \ + -wd4786 \ + -wd4800 \ + -wd4820 \ + -wd4826 \ + -Zc:forScope,wchar_t- \ + -Zm500 \ gb_STDLIBS := \ - uwinapi \ - kernel32 \ - msvcrt \ - oldnames \ + uwinapi \ + advapi32 \ ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE) gb_CFLAGS_WERROR := -WX @@ -179,25 +179,24 @@ gb_CXXFLAGS_WERROR := -WX endif gb_LinkTarget_EXCEPTIONFLAGS := \ - -DEXCEPTIONS_ON \ - -EHa \ + -DEXCEPTIONS_ON \ + -EHa \ gb_PrecompiledHeader_EXCEPTIONFLAGS := $(gb_LinkTarget_EXCEPTIONFLAGS) gb_LinkTarget_NOEXCEPTIONFLAGS := \ - -DEXCEPTIONS_OFF \ + -DEXCEPTIONS_OFF \ gb_NoexPrecompiledHeader_NOEXCEPTIONFLAGS := $(gb_LinkTarget_NOEXCEPTIONFLAGS) gb_LinkTarget_LDFLAGS := \ - -MACHINE:IX86 \ - -NODEFAULTLIB \ - -OPT:NOREF \ - -safeseh \ - -nxcompat \ - -dynamicbase \ - $(patsubst %,-LIBPATH:%,$(filter-out .,$(subst ;, ,$(subst \,/,$(ILIB))))) \ + -MACHINE:IX86 \ + -OPT:NOREF \ + -safeseh \ + -nxcompat \ + -dynamicbase \ + $(patsubst %,-LIBPATH:%,$(filter-out .,$(subst ;, ,$(subst \,/,$(ILIB))))) \ gb_DEBUG_CFLAGS := -Zi @@ -208,7 +207,10 @@ gb_CFLAGS+=-Zi gb_CXXFLAGS+=-Zi endif -ifeq ($(gb_DEBUGLEVEL),2) +ifeq ($(gb_SYMBOL),$(true)) +endif + +ifneq ($(gb_DEBUGLEVEL),0) gb_LinkTarget_LDFLAGS += -DEBUG gb_COMPILEROPTFLAGS := else @@ -217,6 +219,16 @@ endif gb_COMPILERNOOPTFLAGS := -Od +ifeq ($(gb_FULLDEPS),$(true)) +gb_COMPILERDEPFLAGS := -showIncludes +define gb_create_deps +| $(GBUILDDIR)/filter-showIncludes.pl $(2) $(1) $(3); exit $${PIPESTATUS[0]} +endef +else +gb_COMPILERDEPFLAGS := +define gb_create_deps +endef +endif # Helper class gb_Helper_SRCDIR_NATIVE := $(shell cygpath -m $(SRCDIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }') @@ -229,6 +241,8 @@ R=$(gb_Helper_REPODIR_NATIVE) && $(subst $(REPODIR)/,$$R/,$(subst $(gb_Helper_RE $(subst $(REPODIR)/,$$R/,$(subst $(SRCDIR)/,$$S/,$(subst $(OUTDIR)/,$$O/,$(subst $(WORKDIR)/,$$W/,$(subst $(gb_Helper_REPODIR_NATIVE)/,$$R/,$(subst $(gb_Helper_SRCDIR_NATIVE)/,$$S/,$(subst $(gb_Helper_OUTDIR_NATIVE)/,$$O/,$(subst $(gb_Helper_WORKDIR_NATIVE)/,$$W/,$(1))))))))) endef +gb_Helper_set_ld_path := PATH="$${PATH}:$(OUTDIR)/bin" + # convert parametters filesystem root to native notation # does some real work only on windows, make sure not to # break the dummy implementations on unx* @@ -243,41 +257,21 @@ endef # CObject class -ifeq ($(gb_FULLDEPS),$(true)) -define gb_Object__command_deponcompile -$(call gb_Helper_abbreviate_dirs_native,\ - $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ - $(filter-out -DPRECOMPILED_HEADERS,$(4)) $(5) \ - -I$(dir $(3)) \ - $(filter-out -I$(COMPATH)% %/pch -I$(JAVA_HOME)%,$(6)) \ - $(3) \ - -f - \ - | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ - -v OBJECTFILE=$(1) \ - -v OUTDIR=$(OUTDIR)/ \ - -v WORKDIR=$(WORKDIR)/ \ - -v SRCDIR=$(SRCDIR)/ \ - -v REPODIR=$(REPODIR)/ \ - > $((2)) -endef -else -gb_Object__command_deponcompile = -endif - define gb_CObject__command $(call gb_Output_announce,$(2),$(true),C ,3) $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) && \ - unset INCLUDE && \ - $(gb_CC) \ + mkdir -p $(dir $(1)) && \ + unset INCLUDE && \ + $(gb_CC) \ $(DEFS) \ $(T_CFLAGS) \ -Fd$(PDBFILE) \ - $(PCHFLAGS) \ - -I$(dir $(3)) \ - $(INCLUDE) \ - -c $(3) \ - -Fo$(1)) + $(PCHFLAGS) \ + $(gb_COMPILERDEPFLAGS) \ + -I$(realpath $(dir $(3))) \ + $(INCLUDE) \ + -c $(realpath $(3)) \ + -Fo$(1)) $(call gb_create_deps,$(1),$(call gb_CObject_get_dep_target,$(2)),$(realpath $(3))) $(call gb_Object__command_deponcompile,$(1),$(4),$(3),$(DEFS),$(T_CFLAGS),$(INCLUDE)) endef @@ -287,17 +281,18 @@ endef define gb_CxxObject__command $(call gb_Output_announce,$(2),$(true),CXX,3) $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) && \ - unset INCLUDE && \ - $(gb_CXX) \ + mkdir -p $(dir $(1)) && \ + unset INCLUDE && \ + $(gb_CXX) \ $(DEFS) \ $(T_CXXFLAGS) \ -Fd$(PDBFILE) \ - $(PCHFLAGS) \ - -I$(dir $(3)) \ - $(INCLUDE_STL) $(INCLUDE) \ - -c $(3) \ - -Fo$(1)) + $(PCHFLAGS) \ + $(gb_COMPILERDEPFLAGS) \ + -I$(realpath $(dir $(3))) \ + $(INCLUDE_STL) $(INCLUDE) \ + -c $(realpath $(3)) \ + -Fo$(1)) $(call gb_create_deps,$(1),$(call gb_CxxObject_get_dep_target,$(2)),$(realpath $(3))) $(call gb_Object__command_deponcompile,$(1),$(4),$(3),$(DEFS),$(T_CXXFLAGS),$(INCLUDE)) endef @@ -305,83 +300,39 @@ endef # PrecompiledHeader class gb_PrecompiledHeader_get_enableflags = -Yu$(1).hxx \ - -Fp$(call gb_PrecompiledHeader_get_target,$(1)) - -ifeq ($(gb_FULLDEPS),$(true)) -define gb_PrecompiledHeader__command_deponcompile -$(call gb_Helper_abbreviate_dirs_native,\ - $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ - $(4) $(5) \ - -I$(dir $(3)) \ - $(filter-out -I$(COMPATH)% -I$(JAVA_HOME)%,$(6)) \ - $(3) \ - -f - \ - | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ - -v OBJECTFILE=$(1) \ - -v OUTDIR=$(OUTDIR)/ \ - -v WORKDIR=$(WORKDIR)/ \ - -v SRCDIR=$(SRCDIR)/ \ - -v REPODIR=$(REPODIR)/ \ - > $(call gb_PrecompiledHeader_get_dep_target,$(2))) -endef -else -gb_PrecompiledHeader__command_deponcompile = -endif - + -Fp$(call gb_PrecompiledHeader_get_target,$(1)) define gb_PrecompiledHeader__command $(call gb_Output_announce,$(2),$(true),PCH,1) $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) $(dir $(call gb_PrecompiledHeader_get_dep_target,$(2))) && \ - unset INCLUDE && \ - $(gb_CXX) \ - $(4) $(5) -Fd$(PDBFILE) \ - -I$(dir $(3)) \ - $(6) \ - -c $(3) \ - -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj) -$(call gb_PrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6)) + mkdir -p $(dir $(1)) $(dir $(call gb_PrecompiledHeader_get_dep_target,$(2))) && \ + unset INCLUDE && \ + $(gb_CXX) \ + $(4) $(5) -Fd$(PDBFILE) \ + $(gb_COMPILERDEPFLAGS) \ + -I$(realpath $(dir $(3))) \ + $(6) \ + -c $(realpath $(3)) \ + -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj) $(call gb_create_deps,$(1),$(call gb_PrecompiledHeader_get_dep_target,$(2)),$(realpath $(3))) endef # NoexPrecompiledHeader class gb_NoexPrecompiledHeader_get_enableflags = -Yu$(1).hxx \ - -Fp$(call gb_NoexPrecompiledHeader_get_target,$(1)) - -ifeq ($(gb_FULLDEPS),$(true)) -define gb_NoexPrecompiledHeader__command_deponcompile -$(call gb_Helper_abbreviate_dirs_native,\ - $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ - $(4) $(5) \ - -I$(dir $(3)) \ - $(filter-out -I$(COMPATH)% -I$(JAVA_HOME)%,$(6)) \ - $(3) \ - -f - \ - | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ - -v OBJECTFILE=$(1) \ - -v OUTDIR=$(OUTDIR)/ \ - -v WORKDIR=$(WORKDIR)/ \ - -v SRCDIR=$(SRCDIR)/ \ - -v REPODIR=$(REPODIR)/ \ - > $(call gb_NoexPrecompiledHeader_get_dep_target,$(2))) -endef -else -gb_NoexPrecompiledHeader__command_deponcompile = -endif - + -Fp$(call gb_NoexPrecompiledHeader_get_target,$(1)) define gb_NoexPrecompiledHeader__command $(call gb_Output_announce,$(2),$(true),PCH,1) $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) $(dir $(call gb_NoexPrecompiledHeader_get_dep_target,$(2))) && \ - unset INCLUDE && \ - $(gb_CXX) \ - $(4) $(5) -Fd$(PDBFILE) \ - -I$(dir $(3)) \ - $(6) \ - -c $(3) \ - -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj) -$(call gb_NoexPrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6)) + mkdir -p $(dir $(1)) $(dir $(call gb_NoexPrecompiledHeader_get_dep_target,$(2))) && \ + unset INCLUDE && \ + $(gb_CXX) \ + $(4) $(5) -Fd$(PDBFILE) \ + $(gb_COMPILERDEPFLAGS) \ + -I$(realpath $(dir $(3))) \ + $(6) \ + -c $(realpath $(3)) \ + -Yc$(notdir $(patsubst %.cxx,%.hxx,$(3))) -Fp$(1) -Fo$(1).obj) $(call gb_create_deps,$(1),$(call gb_NoexPrecompiledHeader,$(2)),$(realpath $(3))) endef # LinkTarget class @@ -390,8 +341,8 @@ gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) gb_LinkTarget_INCLUDE :=\ - $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) \ - $(foreach inc,$(subst ;, ,$(JDKINC)),-I$(inc)) \ + $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) \ + $(foreach inc,$(subst ;, ,$(JDKINC)),-I$(inc)) \ gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) @@ -400,25 +351,26 @@ gb_LinkTarget_get_pdbfile = $(call gb_LinkTarget_get_target,)pdb/$(1).pdb define gb_LinkTarget__command $(call gb_Output_announce,$(2),$(true),LNK,4) $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) && \ - rm -f $(1) && \ - RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),100, \ - $(call gb_Helper_convert_native,$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ - $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ - $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ - $(PCHOBJS) $(NATIVERES))) && \ - $(gb_LINK) \ - $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ - $(if $(filter StaticLibrary,$(TARGETTYPE)),$(gb_StaticLibrary_TARGETTYPEFLAGS)) \ - $(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \ + mkdir -p $(dir $(1)) && \ + rm -f $(1) && \ + RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),100, \ + $(call gb_Helper_convert_native,$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ + $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),$(shell cat $(extraobjectlist))) \ + $(PCHOBJS) $(NATIVERES))) && \ + $(gb_LINK) \ + $(if $(filter Library CppunitTest,$(TARGETTYPE)),$(gb_Library_TARGETTYPEFLAGS)) \ + $(if $(filter StaticLibrary,$(TARGETTYPE)),$(gb_StaticLibrary_TARGETTYPEFLAGS)) \ + $(if $(filter Executable,$(TARGETTYPE)),$(gb_Executable_TARGETTYPEFLAGS)) \ $(if $(filter YES,$(gb_Executable_TARGETGUI)), -SUBSYSTEM:WINDOWS, -SUBSYSTEM:CONSOLE) \ $(T_LDFLAGS) \ - @$${RESPONSEFILE} \ - $(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib))) \ - $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_filename,$(lib))) \ + @$${RESPONSEFILE} \ + $(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_filename,$(lib))) \ + $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_filename,$(lib))) \ $(LIBS) \ - $(if $(DLLTARGET),-out:$(DLLTARGET) -implib:$(1),-out:$(1)); RC=$$?; rm $${RESPONSEFILE} \ - $(if $(DLLTARGET),; if [ ! -f $(DLLTARGET) ]; then rm -f $(1) && false; fi) ; exit $$RC) + $(if $(DLLTARGET),-out:$(DLLTARGET) -implib:$(1),-out:$(1)); RC=$$?; rm $${RESPONSEFILE} \ + $(if $(DLLTARGET),; if [ ! -f $(DLLTARGET) ]; then rm -f $(1) && false; fi) ; exit $$RC) endef @@ -432,78 +384,74 @@ gb_Library_SYSPRE := i gb_Library_PLAINEXT := .lib gb_Library_PLAINLIBS_NONE += \ - advapi32 \ + advapi32 \ d3d9 \ d3dx \ ddraw \ - gdi32 \ - gdiplus \ - gnu_getopt \ - imm32\ - kernel32 \ - msimg32 \ - msvcrt \ - mpr \ - oldnames \ - ole32 \ - oleaut32 \ - shell32 \ - unicows \ - user32 \ - uuid \ - uwinapi \ + gdi32 \ + gdiplus \ + gnu_getopt \ + imm32\ + kernel32 \ + msimg32 \ + msvcrt \ + msvcprt \ + mpr \ + oldnames \ + ole32 \ + oleaut32 \ + shell32 \ + shlwapi \ + unicows \ + user32 \ + uuid \ + uwinapi \ + version \ winmm \ - winspool \ + winspool \ gb_Library_LAYER := \ - $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ - $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):OOO) \ - $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):OOO) \ - $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \ - $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \ - $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):OOO) \ - $(foreach lib,$(gb_Library_STLLIBS),$(lib):OOO) \ - $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):OOO) \ - $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \ - $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):OOO) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):OOO) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):OOO) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):OOO) \ gb_Library_FILENAMES :=\ - $(foreach lib,$(gb_Library_TARGETS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_TARGETS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ gb_Library_DLLEXT := .dll gb_Library_MAJORVER := 3 gb_Library_RTEXT := MSC$(gb_Library_DLLEXT) -ifeq ($(gb_PRODUCT),$(true)) -gb_Library_STLEXT := port_vc7145$(gb_Library_DLLEXT) -else -gb_Library_STLEXT := port_vc7145_stldebug$(gb_Library_DLLEXT) -endif -gb_Library_OOOEXT := mi$(gb_Library_DLLEXT) +gb_Library_OOOEXT := $(gb_Library_DLLPOSTFIX)$(gb_Library_DLLEXT) gb_Library_UNOEXT := .uno$(gb_Library_DLLEXT) gb_Library_UNOVEREXT := $(gb_Library_MAJORVER)$(gb_Library_DLLEXT) gb_Library_RTVEREXT := $(gb_Library_MAJORVER)$(gb_Library_RTEXT) gb_Library_DLLFILENAMES :=\ - $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(lib)$(gb_Library_OOOEXT)) \ - $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(lib)$(gb_Library_DLLEXT)) \ - $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(lib)$(gb_Library_DLLEXT)) \ - $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(lib)$(gb_Library_DLLEXT)) \ - $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(lib)$(gb_Library_RTEXT)) \ - $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(lib)$(gb_Library_RTVEREXT)) \ - $(foreach lib,$(gb_Library_STLLIBS),$(lib):$(lib)$(gb_Library_STLEXT)) \ - $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ - $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ - $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(lib)$(gb_Library_UNOVEREXT)) \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(lib)$(gb_Library_OOOEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(lib)$(gb_Library_DLLEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(lib)$(gb_Library_DLLEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(lib)$(gb_Library_DLLEXT)) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(lib)$(gb_Library_RTVEREXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(lib)$(gb_Library_UNOVEREXT)) \ define gb_Library_Library_platform $(call gb_LinkTarget_set_dlltarget,$(2),$(3)) $(call gb_LinkTarget_set_auxtargets,$(2),\ - $(patsubst %.lib,%.exp,$(call gb_LinkTarget_get_target,$(2))) \ - $(3).manifest \ - $(call gb_LinkTarget_get_pdbfile,$(2)) \ - $(patsubst %.dll,%.pdb,$(3)) \ - $(patsubst %.dll,%.ilk,$(3)) \ + $(patsubst %.lib,%.exp,$(call gb_LinkTarget_get_target,$(2))) \ + $(3).manifest \ + $(call gb_LinkTarget_get_pdbfile,$(2)) \ + $(patsubst %.dll,%.pdb,$(3)) \ + $(patsubst %.dll,%.ilk,$(3)) \ ) $(call gb_Library_get_target,$(1)) \ @@ -512,8 +460,8 @@ $(call gb_Library_get_clean_target,$(1)) : AUXTARGETS := $(OUTDIR)/bin/$(notdir ifneq ($(ENABLE_CRASHDUMP),) $(call gb_Library_get_target,$(1)) \ $(call gb_Library_get_clean_target,$(1)) : AUXTARGETS += \ - $(OUTDIR)/bin/$(notdir $(patsubst %.dll,%.pdb,$(3))) \ - $(OUTDIR)/bin/$(notdir $(patsubst %.dll,%.ilk,$(3))) \ + $(OUTDIR)/bin/$(notdir $(patsubst %.dll,%.pdb,$(3))) \ + $(OUTDIR)/bin/$(notdir $(patsubst %.dll,%.ilk,$(3))) \ endif @@ -528,10 +476,10 @@ define gb_Library_add_default_nativeres $(call gb_WinResTarget_WinResTarget_init,$(1)/$(2)) $(call gb_WinResTarget_add_file,$(1)/$(2),solenv/inc/shlinfo) $(call gb_WinResTarget_set_defs,$(1)/$(2),\ - $$(DEFS) \ - -DADDITIONAL_VERINFO1 \ - -DADDITIONAL_VERINFO2 \ - -DADDITIONAL_VERINFO3 \ + $$(DEFS) \ + -DADDITIONAL_VERINFO1 \ + -DADDITIONAL_VERINFO2 \ + -DADDITIONAL_VERINFO3 \ ) $(call gb_Library_add_nativeres,$(1),$(2)) $(call gb_Library_get_clean_target,$(1)) : $(call gb_WinResTarget_get_clean_target,$(1)/$(2)) @@ -558,8 +506,8 @@ gb_StaticLibrary_PLAINEXT := .lib gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT) gb_StaticLibrary_FILENAMES := \ - $(foreach lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT)) \ - $(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \ + $(foreach lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT)) \ + $(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \ gb_StaticLibrary_FILENAMES := $(patsubst salcpprt:salcpprt%,salcpprt:cpprtl%,$(gb_StaticLibrary_FILENAMES)) @@ -568,7 +516,7 @@ $(call gb_LinkTarget_get_target,$(2)) \ $(call gb_LinkTarget_get_headers_target,$(2)) : PDBFILE = $(call gb_LinkTarget_get_pdbfile,$(2)) $(call gb_LinkTarget_set_auxtargets,$(2),\ - $(call gb_LinkTarget_get_pdbfile,$(2)) \ + $(call gb_LinkTarget_get_pdbfile,$(2)) \ ) endef @@ -576,15 +524,15 @@ endef # Executable class gb_Executable_EXT := .exe -gb_Executable_TARGETTYPEFLAGS := -RELEASE -BASE:0x1b000000 -OPT:NOREF -INCREMENTAL:NO -DEBUG +gb_Executable_TARGETTYPEFLAGS := -RELEASE -OPT:NOREF -INCREMENTAL:NO -DEBUG gb_Executable_get_rpath := gb_Executable_TARGETGUI := define gb_Executable_Executable_platform $(call gb_LinkTarget_set_auxtargets,$(2),\ - $(patsubst %.exe,%.pdb,$(call gb_LinkTarget_get_target,$(2))) \ - $(call gb_LinkTarget_get_pdbfile,$(2)) \ - $(call gb_LinkTarget_get_target,$(2)).manifest \ + $(patsubst %.exe,%.pdb,$(call gb_LinkTarget_get_target,$(2))) \ + $(call gb_LinkTarget_get_pdbfile,$(2)) \ + $(call gb_LinkTarget_get_target,$(2)).manifest \ ) $(call gb_Executable_get_target,$(1)) \ @@ -599,7 +547,12 @@ endef # CppunitTest class gb_CppunitTest_DEFS := -D_DLL -gb_CppunitTest_CPPTESTPRECOMMAND := +# cppunittester.exe is in the cppunit subdirectory of ${OUTDIR}/bin, +# thus it won't find its DLLs unless ${OUTDIR}/bin is added to PATH. +# PATH is the Cygwin one while ${OUTDIR} is a Win32 pathname, thus +# cygpath -u. +gb_CppunitTest_CPPTESTPRECOMMAND := PATH="`cygpath -u $(OUTDIR)`/bin:$${PATH}" + gb_CppunitTest_SYSPRE := itest_ gb_CppunitTest_EXT := .lib gb_CppunitTest_get_filename = $(gb_CppunitTest_SYSPRE)$(1)$(gb_CppunitTest_EXT) @@ -609,11 +562,11 @@ define gb_CppunitTest_CppunitTest_platform $(call gb_LinkTarget_set_dlltarget,$(2),$(3)) $(call gb_LinkTarget_set_auxtargets,$(2),\ - $(patsubst %.lib,%.exp,$(call gb_LinkTarget_get_target,$(2))) \ - $(3).manifest \ - $(patsubst %.dll,%.pdb,$(3)) \ - $(call gb_LinkTarget_get_pdbfile,$(2)) \ - $(patsubst %.dll,%.ilk,$(3)) \ + $(patsubst %.lib,%.exp,$(call gb_LinkTarget_get_target,$(2))) \ + $(3).manifest \ + $(patsubst %.dll,%.pdb,$(3)) \ + $(call gb_LinkTarget_get_pdbfile,$(2)) \ + $(patsubst %.dll,%.ilk,$(3)) \ ) $(call gb_LinkTarget_get_target,$(2)) \ @@ -644,11 +597,11 @@ $(call gb_JunitTest_get_target,$(1)) : $(call gb_JunitTest_get_target,$(1)).inst $(call gb_JunitTest_get_target,$(1)) : CLEAN_CMD = $(call gb_Helper_abbreviate_dirs,rm -rf `cat $$@.instpath` $$@.instpath) $(call gb_JunitTest_get_target,$(1)).instpath : - INST_DIR=$$$$(cygpath -m `mktemp -d -t testinst.XXXXXX`) \ - && unzip -d "$$$${INST_DIR}" $$(gb_smoketest_instset) \ - && mv "$$$${INST_DIR}"/OOo_*_install-arc_$$(gb_defaultlangiso) "$$$${INST_DIR}"/opt\ - && mkdir -p $$(dir $$@) \ - && echo "$$$${INST_DIR}" > $$@ + INST_DIR=$$$$(cygpath -m `mktemp -d -t testinst.XXXXXX`) \ + && unzip -d "$$$${INST_DIR}" $$(gb_smoketest_instset) \ + && mv "$$$${INST_DIR}"/OOo_*_install-arc_$$(gb_defaultlangiso) "$$$${INST_DIR}"/opt\ + && mkdir -p $$(dir $$@) \ + && echo "$$$${INST_DIR}" > $$@ endef else # OOO_TEST_SOFFICE @@ -659,20 +612,22 @@ define gb_JunitTest_JunitTest_platform $(call gb_JunitTest_JunitTest_platform_longpathname_hack,$(1)) $(call gb_JunitTest_get_target,$(1)) : DEFS := \ - -Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:`cat $(call gb_JunitTest_get_target,$(1)).instpath`/opt/OpenOffice.org 3/program/soffice.exe}" \ - -Dorg.openoffice.test.arg.env=PATH \ - -Dorg.openoffice.test.arg.user=file:///$(call gb_JunitTest_get_userdir,$(1)) \ + -Dorg.openoffice.test.arg.soffice="$$$${OOO_TEST_SOFFICE:-path:`cat $(call gb_JunitTest_get_target,$(1)).instpath`/opt/OpenOffice.org 3/program/soffice.exe}" \ + -Dorg.openoffice.test.arg.env=PATH \ + -Dorg.openoffice.test.arg.user=file:///$(call gb_JunitTest_get_userdir,$(1)) \ endef # SdiTarget class -gb_SdiTarget_SVIDLPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin" +# svidl.exe is in ${OUTDIR}/bin itself, so nothing special needed to have it find +# DLLs in the same directory +gb_SdiTarget_SVIDLPRECOMMAND := # SrsPartMergeTarget - -gb_SrsPartMergeTarget_TRANSEXPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin" +# Ditto for transex3 +gb_SrsPartMergeTarget_TRANSEXPRECOMMAND := # SrsPartTarget class @@ -682,18 +637,18 @@ gb_SrsPartTarget_RSCCOMMAND := SOLARBINDIR=$(OUTDIR)/bin $(gb_SrsPartTarget_RSCT ifeq ($(gb_FULLDEPS),$(true)) define gb_SrsPartTarget__command_dep $(call gb_Helper_abbreviate_dirs_native,\ - $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ - $(INCLUDE) \ - $(DEFS) \ - $(2) \ - -f - \ - | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ - -v OBJECTFILE=$(call gb_SrsPartTarget_get_target,$(1)) \ - -v OUTDIR=$(OUTDIR)/ \ - -v WORKDIR=$(WORKDIR)/ \ - -v SRCDIR=$(SRCDIR)/ \ - -v REPODIR=$(REPODIR)/ \ - > $(call gb_SrsPartTarget_get_dep_target,$(1))) + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(INCLUDE) \ + $(DEFS) \ + $(2) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(call gb_SrsPartTarget_get_target,$(1)) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_SrsPartTarget_get_dep_target,$(1))) endef else gb_SrsPartTarget__command_dep = @@ -706,34 +661,34 @@ gb_WinResTarget_POSTFIX :=.res define gb_WinResTarget__command $(call gb_Output_announce,$(2),$(true),RES,3) $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) && \ - $(gb_RC) \ - $(DEFS) $(FLAGS) \ - -I$(dir $(3)) \ - $(INCLUDE) \ - -Fo$(1) \ - $(RCFILE) ) + mkdir -p $(dir $(1)) && \ + $(gb_RC) \ + $(DEFS) $(FLAGS) \ + -I$(dir $(3)) \ + $(INCLUDE) \ + -Fo$(1) \ + $(RCFILE) ) endef $(eval $(call gb_Helper_make_dep_targets,\ - WinResTarget \ + WinResTarget \ )) ifeq ($(gb_FULLDEPS),$(true)) define gb_WinResTarget__command_dep $(call gb_Helper_abbreviate_dirs_native,\ - $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ - $(INCLUDE) \ - $(DEFS) \ - $(2) \ - -f - \ - | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ - -v OBJECTFILE=$(call gb_WinResTarget_get_target,$(1)) \ - -v OUTDIR=$(OUTDIR)/ \ - -v WORKDIR=$(WORKDIR)/ \ - -v SRCDIR=$(SRCDIR)/ \ - -v REPODIR=$(REPODIR)/ \ - > $(call gb_WinResTarget_get_dep_target,$(1))) + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(INCLUDE) \ + $(DEFS) \ + $(2) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(call gb_WinResTarget_get_target,$(1)) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_WinResTarget_get_dep_target,$(1))) endef else gb_WinResTarget__command_dep = @@ -741,10 +696,12 @@ endif # ComponentTarget -gb_XSLTPROCPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin" +# See comment for svidl.exe +gb_XSLTPROCPRECOMMAND := + gb_Library_COMPONENTPREFIXES := \ - OOO:vnd.sun.star.expand:\dBRAND_BASE_DIR/program/ \ - URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \ + OOO:vnd.sun.star.expand:\dBRAND_BASE_DIR/program/ \ + URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \ NONE:vnd.sun.star.expand:\dOOO_INBUILD_SHAREDLIB_DIR/ \ -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/platform/winmingw.mk b/solenv/gbuild/platform/winmingw.mk index babeb36917fd..a8e981461144 100644 --- a/solenv/gbuild/platform/winmingw.mk +++ b/solenv/gbuild/platform/winmingw.mk @@ -29,7 +29,11 @@ GUI := WNT COM := GCC # set tmpdir to some mixed case path, suitable for native tools +ifeq ($(OS_FOR_BUILD),WNT) gb_TMPDIR:=$(if $(TMPDIR),$(shell cygpath -m $(TMPDIR)),$(shell cygpath -m /tmp)) +else +gb_TMPDIR:=/tmp +endif gb_MKTEMP := mktemp --tmpdir=$(gb_TMPDIR) gbuild.XXXXXX gb_CC := $(CC) @@ -50,84 +54,81 @@ ifeq ($(MINGW_SHARED_GXXLIB),YES) gb_MINGW_LIBSTDCPP := $(subst -l,,$(MINGW_SHARED_LIBSTDCPP)) else gb_MINGW_LIBSTDCPP := \ - stdc++ \ - moldname + stdc++ \ + moldname endif ifeq ($(MINGW_SHARED_GCCLIB),YES) gb_MINGW_LIBGCC := \ - gcc_s \ - gcc + gcc_s \ + gcc else ifeq ($(MINGW_GCCLIB_EH),YES) gb_MINGW_LIBGCC := \ - gcc \ - gcc_eh + gcc \ + gcc_eh else gb_MINGW_LIBGCC := gcc endif endif gb_OSDEFS := \ - -DWINVER=0x0500 \ - -D_WIN32_IE=0x0500 \ - -DNT351 \ - -DWIN32 \ - -DWNT \ + -DWINVER=0x0500 \ + -D_WIN32_IE=0x0500 \ + -DNT351 \ + -DWIN32 \ + -DWNT \ ifeq ($(GXX_INCLUDE_PATH),) GXX_INCLUDE_PATH=$(COMPATH)/include/c++/$(shell gcc -dumpversion) endif gb_COMPILERDEFS := \ - -DGCC \ - -D$(CVER) \ - -DCVER=$(CVER) \ - -DGLIBC=2 \ - -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \ - -DCPPU_ENV=gcc3 \ - -D_MT \ - -D_NATIVE_WCHAR_T_DEFINED \ - -D_MSC_EXTENSIONS \ - -D_FORCENAMELESSUNION \ + -DGCC \ + -DGLIBC=2 \ + -DGXX_INCLUDE_PATH=$(GXX_INCLUDE_PATH) \ + -DCPPU_ENV=gcc3 \ + -D_MT \ + -D_NATIVE_WCHAR_T_DEFINED \ + -D_MSC_EXTENSIONS \ + -D_FORCENAMELESSUNION \ ifeq ($(USE_MINGW),cygwin-w64-mingw32) gb_COMPILERDEFS +=-D_declspec=__declspec endif gb_CPUDEFS := \ - -DINTEL \ - -D_M_IX86 \ + -DINTEL \ + -D_M_IX86 \ gb_RCDEFS := \ - -DWINVER=0x0400 \ - -DWIN32 \ + -DWINVER=0x0400 \ + -DWIN32 \ gb_RCFLAGS := \ - -V + -V gb_CFLAGS := \ - -Wall \ - -Wendif-labels \ - -Wextra \ - -fmessage-length=0 \ - -fno-strict-aliasing \ - -pipe \ - -nostdinc \ + -Wall \ + -Wendif-labels \ + -Wextra \ + -fmessage-length=0 \ + -fno-strict-aliasing \ + -pipe \ + -nostdinc \ gb_CXXFLAGS := \ - -Wall \ - -Wendif-labels \ - -Wextra \ - -Wno-ctor-dtor-privacy \ - -Wno-non-virtual-dtor \ - -Wreturn-type \ - -Wshadow \ - -Wuninitialized \ - -fmessage-length=0 \ - -fno-strict-aliasing \ - -fno-use-cxa-atexit \ - -pipe \ - -nostdinc \ + -Wall \ + -Wendif-labels \ + -Wextra \ + -Wno-ctor-dtor-privacy \ + -Wno-non-virtual-dtor \ + -Wreturn-type \ + -Wshadow \ + -Wuninitialized \ + -fmessage-length=0 \ + -fno-strict-aliasing \ + -pipe \ + -nostdinc \ ifneq ($(EXTERNAL_WARNINGS_NOT_ERRORS),TRUE) gb_CFLAGS_WERROR := -Werror @@ -139,35 +140,35 @@ gb_CXXFLAGS += --sysroot=$(SYSBASE) gb_CFLAGS += --sysroot=$(SYSBASE) endif gb_LinkTarget_EXCEPTIONFLAGS := \ - -DEXCEPTIONS_ON \ - -fexceptions \ - -fno-enforce-eh-specs \ + -DEXCEPTIONS_ON \ + -fexceptions \ + -fno-enforce-eh-specs \ gb_PrecompiledHeader_EXCEPTIONFLAGS := $(gb_LinkTarget_EXCEPTIONFLAGS) gb_LinkTarget_NOEXCEPTIONFLAGS := \ - -DEXCEPTIONS_OFF \ - -fno-exceptions \ - + -DEXCEPTIONS_OFF \ + -fno-exceptions \ + gb_NoexPrecompiledHeader_NOEXCEPTIONFLAGS := $(gb_LinkTarget_NOEXCEPTIONFLAGS) gb_LinkTarget_LDFLAGS := \ - --export-all-symbols \ - --kill-at \ - --exclude-libs ALL \ - --enable-stdcall-fixup \ - --enable-runtime-pseudo-reloc-v2 \ - -L$(gb_Library_DLLDIR) \ - $(patsubst %,-L%,$(filter-out .,$(subst ;, ,$(subst \,/,$(ILIB))))) \ + --export-all-symbols \ + --kill-at \ + --exclude-libs ALL \ + --enable-stdcall-fixup \ + --enable-runtime-pseudo-reloc-v2 \ + -L$(gb_Library_DLLDIR) \ + $(patsubst %,-L%,$(filter-out .,$(subst ;, ,$(subst \,/,$(ILIB))))) \ ifeq ($(MINGW_GCCLIB_EH),YES) gb_LinkTarget_LDFLAGS += -shared-libgcc endif gb_DEBUG_CFLAGS := -ggdb3 -finline-limit=0 -fno-inline -fno-default-inline +ifneq ($(gb_DEBUGLEVEL),0) -ifeq ($(gb_DEBUGLEVEL),2) gb_COMPILEROPTFLAGS := -O0 else gb_COMPILEROPTFLAGS := -Os @@ -176,23 +177,31 @@ endif gb_COMPILERNOOPTFLAGS := -O0 gb_STDLIBS := \ - mingwthrd \ - $(gb_MINGW_LIBSTDCPP) \ - mingw32 \ - $(gb_MINGW_LIBGCC) \ - uwinapi \ - moldname \ - mingwex \ - kernel32 \ - msvcrt \ + mingwthrd \ + $(gb_MINGW_LIBSTDCPP) \ + mingw32 \ + $(gb_MINGW_LIBGCC) \ + uwinapi \ + moldname \ + mingwex \ + kernel32 \ + msvcrt \ + msvcprt \ # Helper class +ifeq ($(OS_FOR_BUILD),WNT) gb_Helper_SRCDIR_NATIVE := $(shell cygpath -m $(SRCDIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }') gb_Helper_WORKDIR_NATIVE := $(shell cygpath -m $(WORKDIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }') gb_Helper_OUTDIR_NATIVE := $(shell cygpath -m $(OUTDIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }') gb_Helper_REPODIR_NATIVE := $(shell cygpath -m $(REPODIR) | $(gb_AWK) -- '{ print tolower(substr($$0,1,1)) substr($$0,2) }') +else +gb_Helper_SRCDIR_NATIVE := $(SRCDIR) +gb_Helper_WORKDIR_NATIVE := $(WORKDIR) +gb_Helper_OUTDIR_NATIVE := $(OUTDIR) +gb_Helper_REPODIR_NATIVE := $(REPODIR) +endif define gb_Helper_abbreviate_dirs_native R=$(gb_Helper_REPODIR_NATIVE) && $(subst $(REPODIR)/,$$R/,$(subst $(gb_Helper_REPODIR_NATIVE)/,$$R/,O=$(gb_Helper_OUTDIR_NATIVE) && W=$(gb_Helper_WORKDIR_NATIVE) && S=$(gb_Helper_SRCDIR_NATIVE))) && \ @@ -215,18 +224,18 @@ endef ifeq ($(gb_FULLDEPS),$(true)) define gb_Object__command_deponcompile $(call gb_Helper_abbreviate_dirs_native,\ - $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ - $(filter-out -DPRECOMPILED_HEADERS,$(4)) $(5) \ - -I$(dir $(3)) \ - $(filter-out -I$(COMPATH)% %/pch -I$(JAVA_HOME),$(6)) \ - $(3) \ - -f - \ - | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ - -v OBJECTFILE=$(1) \ - -v OUTDIR=$(OUTDIR)/ \ - -v WORKDIR=$(WORKDIR)/ \ - -v SRCDIR=$(SRCDIR)/ \ - -v REPODIR=$(REPODIR)/ \ + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(filter-out -DPRECOMPILED_HEADERS,$(4)) $(5) \ + -I$(dir $(3)) \ + $(filter-out -I$(COMPATH)% %/pch -I$(JAVA_HOME),$(6)) \ + $(3) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(1) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ > $(2)) endef else @@ -236,14 +245,14 @@ endif define gb_CObject__command $(call gb_Output_announce,$(2),$(true),C ,3) $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) && \ - $(gb_CC) \ + mkdir -p $(dir $(1)) && \ + $(gb_CC) \ $(DEFS) \ $(T_CFLAGS) \ - -c $(3) \ - -o $(1) \ - -I$(dir $(3)) \ - $(INCLUDE)) + -c $(3) \ + -o $(1) \ + -I$(dir $(3)) \ + $(INCLUDE)) $(call gb_Object__command_deponcompile,$(1),$(4),$(3),$(DEFS),$(T_CFLAGS),$(INCLUDE)) endef @@ -254,14 +263,14 @@ endef define gb_CxxObject__command $(call gb_Output_announce,$(2),$(true),CXX,3) $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) && \ - $(gb_CXX) \ + mkdir -p $(dir $(1)) && \ + $(gb_CXX) \ $(DEFS) \ $(T_CXXFLAGS) \ - -c $(3) \ - -o $(1) \ - -I$(dir $(3)) \ - $(INCLUDE_STL) $(INCLUDE)) + -c $(3) \ + -o $(1) \ + -I$(dir $(3)) \ + $(INCLUDE_STL) $(INCLUDE)) $(call gb_Object__command_deponcompile,$(1),$(4),$(3),$(DEFS),$(T_CXXFLAGS),$(INCLUDE_STL) $(INCLUDE)) endef @@ -271,25 +280,25 @@ endef gb_PrecompiledHeader_EXT := .gch gb_PrecompiledHeader_get_enableflags = -I$(WORKDIR)/PrecompiledHeader/$(gb_PrecompiledHeader_DEBUGDIR) \ - -DPRECOMPILED_HEADERS \ - -Winvalid-pch \ + -DPRECOMPILED_HEADERS \ + -Winvalid-pch \ ifeq ($(gb_FULLDEPS),$(true)) define gb_PrecompiledHeader__command_deponcompile $(call gb_Helper_abbreviate_dirs_native,\ - $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ - $(4) $(5) \ - -I$(dir $(3)) \ - $(filter-out -I$(COMPATH)% -I$(JAVA_HOME),$(6)) \ - $(3) \ - -f - \ - | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ - -v OBJECTFILE=$(1) \ - -v OUTDIR=$(OUTDIR)/ \ - -v WORKDIR=$(WORKDIR)/ \ - -v SRCDIR=$(SRCDIR)/ \ - -v REPODIR=$(REPODIR)/ \ - > $(call gb_PrecompiledHeader_get_dep_target,$(2))) + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(4) $(5) \ + -I$(dir $(3)) \ + $(filter-out -I$(COMPATH)% -I$(JAVA_HOME),$(6)) \ + $(3) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(1) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_PrecompiledHeader_get_dep_target,$(2))) endef else gb_PrecompiledHeader__command_deponcompile = @@ -298,14 +307,14 @@ endif define gb_PrecompiledHeader__command $(call gb_Output_announce,$(2),$(true),PCH,1) $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) $(dir $(call gb_PrecompiledHeader_get_dep_target,$(2))) && \ - $(gb_CXX) \ - -x c++-header \ - $(4) $(5) \ - -I$(dir $(3)) \ - $(6) \ - -c $(3) \ - -o$(1)) + mkdir -p $(dir $(1)) $(dir $(call gb_PrecompiledHeader_get_dep_target,$(2))) && \ + $(gb_CXX) \ + -x c++-header \ + $(4) $(5) \ + -I$(dir $(3)) \ + $(6) \ + -c $(3) \ + -o$(1)) $(call gb_PrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6)) endef @@ -315,24 +324,24 @@ endef gb_NoexPrecompiledHeader_EXT := .gch gb_NoexPrecompiledHeader_get_enableflags = -I$(WORKDIR)/NoexPrecompiledHeader/$(gb_NoexPrecompiledHeader_DEBUGDIR) \ - -Winvalid-pch \ + -Winvalid-pch \ ifeq ($(gb_FULLDEPS),$(true)) define gb_NoexPrecompiledHeader__command_deponcompile $(call gb_Helper_abbreviate_dirs_native,\ - $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ - $(4) $(5) \ - -I$(dir $(3)) \ - $(filter-out -I$(COMPATH)% -I$(JAVA_HOME),$(6)) \ - $(3) \ - -f - \ - | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ - -v OBJECTFILE=$(1) \ - -v OUTDIR=$(OUTDIR)/ \ - -v WORKDIR=$(WORKDIR)/ \ - -v SRCDIR=$(SRCDIR)/ \ - -v REPODIR=$(REPODIR)/ \ - > $(call gb_NoexPrecompiledHeader_get_dep_target,$(2))) + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(4) $(5) \ + -I$(dir $(3)) \ + $(filter-out -I$(COMPATH)% -I$(JAVA_HOME),$(6)) \ + $(3) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(1) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_NoexPrecompiledHeader_get_dep_target,$(2))) endef else gb_NoexPrecompiledHeader__command_deponcompile = @@ -341,14 +350,14 @@ endif define gb_NoexPrecompiledHeader__command $(call gb_Output_announce,$(2),$(true),PCH,1) $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) $(dir $(call gb_NoexPrecompiledHeader_get_dep_target,$(2))) && \ - $(gb_CXX) \ - -x c++-header \ - $(4) $(5) \ - -I$(dir $(3)) \ - $(6) \ - -c $(3) \ - -o$(1)) + mkdir -p $(dir $(1)) $(dir $(call gb_NoexPrecompiledHeader_get_dep_target,$(2))) && \ + $(gb_CXX) \ + -x c++-header \ + $(4) $(5) \ + -I$(dir $(3)) \ + $(6) \ + -c $(3) \ + -o$(1)) $(call gb_NoexPrecompiledHeader__command_deponcompile,$(1),$(2),$(3),$(4),$(5),$(6)) endef @@ -359,69 +368,75 @@ endef gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) +endif +ifeq ($(gb_SYMBOL),$(true)) +gb_LinkTarget_CXXFLAGS += -ggdb2 +gb_LinkTarget_CFLAGS += -ggdb2 gb_LinkTarget_INCLUDE :=\ - $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) \ - $(foreach inc,$(subst ;, ,$(JDKINC)),-I$(inc)) \ + $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) \ + $(foreach inc,$(subst ;, ,$(JDKINC)),-I$(inc)) \ gb_LinkTarget_INCLUDE_STL := $(filter %/stl, $(subst -I. , ,$(SOLARINC))) define gb_LinkTarget__command_dynamiclinkexecutable $(call gb_Output_announce,$(2),$(true),LNK,4) $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) && \ - RESPONSEFILE=`$(gb_MKTEMP)` && \ - echo "$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ - $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ - $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) " > $${RESPONSEFILE} && \ - $(gb_LINK) \ - $(gb_Executable_TARGETTYPEFLAGS) \ + mkdir -p $(dir $(1)) && \ + RESPONSEFILE=`$(gb_MKTEMP)` && \ + echo "$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) " > $${RESPONSEFILE} && \ + $(gb_LINK) \ + $(gb_Executable_TARGETTYPEFLAGS) \ $(if $(filter YES,$(gb_Executable_TARGETGUI)), --subsystem windows, --subsystem console) \ $(T_LDFLAGS) \ - $(gb_MINGWLIBDIR)/crt2.o \ - $(MINGW_CLIB_DIR)/crtbegin.o \ - @$${RESPONSEFILE} \ - --start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) --end-group \ - --start-group $(patsubst %.dll,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_dllname,$(lib)))) --end-group \ + $(gb_MINGWLIBDIR)/crt2.o \ + $(MINGW_CLIB_DIR)/crtbegin.o \ + @$${RESPONSEFILE} \ + $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \ + --start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) --end-group \ + --start-group $(patsubst %.dll,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_dllname,$(lib)))) --end-group \ $(LIBS) \ - $(MINGW_CLIB_DIR)/crtend.o \ - -Map $(basename $(1)).map \ - -o $(1)) + $(MINGW_CLIB_DIR)/crtend.o \ + -Map $(basename $(1)).map \ + -o $(1)) endef define gb_LinkTarget__command_dynamiclinklibrary $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) && \ - rm -f $(1) && \ - RESPONSEFILE=`$(gb_MKTEMP)` && \ - echo "$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ - $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ - $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) " > $${RESPONSEFILE} && \ - $(gb_LINK) \ - $(gb_Library_TARGETTYPEFLAGS) \ + mkdir -p $(dir $(1)) && \ + rm -f $(1) && \ + RESPONSEFILE=`$(gb_MKTEMP)` && \ + echo "$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) " > $${RESPONSEFILE} && \ + $(gb_LINK) \ + $(gb_Library_TARGETTYPEFLAGS) \ $(T_LDFLAGS) \ - --enable-auto-image-base \ - -e _DllMainCRTStartup@12 \ - $(gb_MINGWLIBDIR)/dllcrt2.o \ - $(MINGW_CLIB_DIR)/crtbegin.o \ - @$${RESPONSEFILE} \ - --start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) --end-group \ - --start-group $(patsubst %.dll,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_dllname,$(lib)))) --end-group \ + --enable-auto-image-base \ + -e _DllMainCRTStartup@12 \ + $(gb_MINGWLIBDIR)/dllcrt2.o \ + $(MINGW_CLIB_DIR)/crtbegin.o \ + @$${RESPONSEFILE} \ + $(foreach extraobjectlist,$(EXTRAOBJECTLISTS),@$(extraobjectlist)) \ + --start-group $(foreach lib,$(LINKED_STATIC_LIBS),$(call gb_StaticLibrary_get_target,$(lib))) --end-group \ + --start-group $(patsubst %.dll,-l%,$(foreach lib,$(LINKED_LIBS),$(call gb_Library_get_dllname,$(lib)))) --end-group \ $(LIBS) \ - $(MINGW_CLIB_DIR)/crtend.o \ - -Map $(basename $(DLLTARGET)).map \ - -o $(DLLTARGET) && touch $(1)) + $(MINGW_CLIB_DIR)/crtend.o \ + -Map $(basename $(DLLTARGET)).map \ + -o $(DLLTARGET) && touch $(1)) endef define gb_LinkTarget__command_staticlinklibrary $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) && \ - RESPONSEFILE=`$(gb_MKTEMP)` && \ - echo "$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ - $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ - $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) " > $${RESPONSEFILE} && \ - $(gb_AR) -rsu\ - $(1) \ - @$${RESPONSEFILE}) + mkdir -p $(dir $(1)) && \ + RESPONSEFILE=`$(gb_MKTEMP)` && \ + echo "$(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ + $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) " > $${RESPONSEFILE} && \ + $(gb_AR) -rsu\ + $(1) \ + @$${RESPONSEFILE}) endef define gb_LinkTarget__command @@ -442,68 +457,65 @@ gb_Library_SYSPRE := i gb_Library_PLAINEXT := .lib gb_Library_PLAINLIBS_NONE += \ - mingwthrd \ - mingw32 \ - mingwex \ - $(gb_MINGW_LIBSTDCPP) \ - $(gb_MINGW_LIBGCC) \ - advapi32 \ + mingwthrd \ + mingw32 \ + mingwex \ + $(gb_MINGW_LIBSTDCPP) \ + $(gb_MINGW_LIBGCC) \ + advapi32 \ d3d9 \ d3dx \ ddraw \ - gdi32 \ + gdi32 \ gdiplus \ - kernel32 \ - msvcrt \ - mpr \ - moldname \ - ole32 \ - oleaut32 \ - shell32 \ - unicows \ - user32 \ - uuid \ - uwinapi \ + gnu_getopt \ + kernel32 \ + msvcrt \ + msvcprt \ + mpr \ + moldname \ + ole32 \ + oleaut32 \ + shell32 \ + shlwapi \ + unicows \ + user32 \ + uuid \ + uwinapi \ winmm \ gb_Library_LAYER := \ - $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ - $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):OOO) \ - $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):OOO) \ - $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \ - $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \ - $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):OOO) \ - $(foreach lib,$(gb_Library_STLLIBS),$(lib):OOO) \ - $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):OOO) \ - $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \ - $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):OOO) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):OOO) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):OOO) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):OOO) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):OOO) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):OOO) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):OOO) \ gb_Library_FILENAMES :=\ - $(foreach lib,$(gb_Library_TARGETS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ + $(foreach lib,$(gb_Library_TARGETS),$(lib):$(gb_Library_SYSPRE)$(lib)$(gb_Library_PLAINEXT)) \ gb_Library_DLLEXT := .dll gb_Library_MAJORVER := 3 gb_Library_RTEXT := gcc3$(gb_Library_DLLEXT) -ifeq ($(gb_PRODUCT),$(true)) -gb_Library_STLEXT := port_gcc$(gb_Library_DLLEXT) -else -gb_Library_STLEXT := port_gcc_stldebug$(gb_Library_DLLEXT) -endif -gb_Library_OOOEXT := gi$(gb_Library_DLLEXT) +gb_Library_OOOEXT := $(gb_Library_DLLPOSTFIX)$(gb_Library_DLLEXT) gb_Library_UNOEXT := .uno$(gb_Library_DLLEXT) gb_Library_UNOVEREXT := $(gb_Library_MAJORVER)$(gb_Library_DLLEXT) gb_Library_RTVEREXT := $(gb_Library_MAJORVER)$(gb_Library_RTEXT) gb_Library_DLLFILENAMES := \ - $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(lib)$(gb_Library_OOOEXT)) \ - $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(lib)$(gb_Library_DLLEXT)) \ - $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(lib)$(gb_Library_DLLEXT)) \ - $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(lib)$(gb_Library_DLLEXT)) \ - $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(lib)$(gb_Library_RTEXT)) \ - $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(lib)$(gb_Library_RTVEREXT)) \ - $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ - $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ - $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(lib)$(gb_Library_UNOVEREXT)) \ + $(foreach lib,$(gb_Library_OOOLIBS),$(lib):$(lib)$(gb_Library_OOOEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_NONE),$(lib):$(lib)$(gb_Library_DLLEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_URE),$(lib):$(lib)$(gb_Library_DLLEXT)) \ + $(foreach lib,$(gb_Library_PLAINLIBS_OOO),$(lib):$(lib)$(gb_Library_DLLEXT)) \ + $(foreach lib,$(gb_Library_RTLIBS),$(lib):$(lib)$(gb_Library_RTEXT)) \ + $(foreach lib,$(gb_Library_RTVERLIBS),$(lib):$(lib)$(gb_Library_RTVEREXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_URE),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOLIBS_OOO),$(lib):$(lib)$(gb_Library_UNOEXT)) \ + $(foreach lib,$(gb_Library_UNOVERLIBS),$(lib):$(lib)$(gb_Library_UNOVEREXT)) \ gb_Library_IARCSYSPRE := lib gb_Library_IARCEXT := .a @@ -514,7 +526,7 @@ define gb_Library_Library_platform $(call gb_LinkTarget_set_dlltarget,$(2),$(3)) $(call gb_LinkTarget_set_auxtargets,$(2),\ - $(patsubst %.dll,%.map,$(3)) \ + $(patsubst %.dll,%.map,$(3)) \ ) $(call gb_Library_get_target,$(1)) \ @@ -528,10 +540,10 @@ define gb_Library_add_default_nativeres $(call gb_WinResTarget_WinResTarget_init,$(1)/$(2)) $(call gb_WinResTarget_add_file,$(1)/$(2),solenv/inc/shlinfo) $(call gb_WinResTarget_set_defs,$(1)/$(2),\ - $$(DEFS) \ - -DADDITIONAL_VERINFO1 \ - -DADDITIONAL_VERINFO2 \ - -DADDITIONAL_VERINFO3 \ + $$(DEFS) \ + -DADDITIONAL_VERINFO1 \ + -DADDITIONAL_VERINFO2 \ + -DADDITIONAL_VERINFO3 \ ) $(call gb_Library_add_nativeres,$(1),$(2)) $(call gb_Library_get_clean_target,$(1)) : $(call gb_WinResTarget_get_clean_target,$(1)/$(2)) @@ -557,8 +569,8 @@ gb_StaticLibrary_PLAINEXT := .a gb_StaticLibrary_JPEGEXT := lib$(gb_StaticLibrary_PLAINEXT) gb_StaticLibrary_FILENAMES := \ - $(foreach lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT)) \ - $(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \ + $(foreach lib,$(gb_StaticLibrary_JPEGLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_JPEGEXT)) \ + $(foreach lib,$(gb_StaticLibrary_PLAINLIBS),$(lib):$(gb_StaticLibrary_SYSPRE)$(lib)$(gb_StaticLibrary_PLAINEXT)) \ gb_StaticLibrary_FILENAMES := $(patsubst salcpprt:salcpprt%,salcpprt:cpprtl%,$(gb_StaticLibrary_FILENAMES)) @@ -584,7 +596,7 @@ define gb_CppunitTest_CppunitTest_platform $(call gb_LinkTarget_set_dlltarget,$(2),$(3)) $(call gb_LinkTarget_set_auxtargets,$(2),\ - $(patsubst %.dll,%.map,$(3)) \ + $(patsubst %.dll,%.map,$(3)) \ ) endef @@ -605,18 +617,18 @@ gb_SrsPartTarget_RSCCOMMAND := SOLARBINDIR=$(OUTDIR)/bin $(gb_SrsPartTarget_RSCT ifeq ($(gb_FULLDEPS),$(true)) define gb_SrsPartTarget__command_dep $(call gb_Helper_abbreviate_dirs_native,\ - $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ - $(INCLUDE) \ - $(DEFS) \ - $(2) \ - -f - \ - | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ - -v OBJECTFILE=$(call gb_SrsPartTarget_get_target,$(1)) \ - -v OUTDIR=$(OUTDIR)/ \ - -v WORKDIR=$(WORKDIR)/ \ - -v SRCDIR=$(SRCDIR)/ \ - -v REPODIR=$(REPODIR)/ \ - > $(call gb_SrsPartTarget_get_dep_target,$(1))) + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(INCLUDE) \ + $(DEFS) \ + $(2) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(call gb_SrsPartTarget_get_target,$(1)) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_SrsPartTarget_get_dep_target,$(1))) endef else gb_SrsPartTarget__command_dep = @@ -629,36 +641,36 @@ gb_WinResTarget_POSTFIX :=_res.o define gb_WinResTarget__command $(call gb_Output_announce,$(2),$(true),RES,3) $(call gb_Helper_abbreviate_dirs_native,\ - mkdir -p $(dir $(1)) && \ - $(gb_RC) \ - $(DEFS) $(FLAGS) \ - -I$(dir $(3)) \ - $(INCLUDE) \ - -Fo$(patsubst %_res.o,%.res,$(1)) \ - $(RCFILE) ) - windres $(patsubst %_res.o,%.res,$(1)) $(1) - rm $(patsubst %_res.o,%.res,$(1)) + mkdir -p $(dir $(1)) && \ + $(gb_RC) \ + $(DEFS) $(FLAGS) \ + -I$(dir $(3)) \ + $(INCLUDE) \ + -Fo$(patsubst %_res.o,%.res,$(1)) \ + $(RCFILE) ) + windres $(patsubst %_res.o,%.res,$(1)) $(1) + rm $(patsubst %_res.o,%.res,$(1)) endef $(eval $(call gb_Helper_make_dep_targets,\ - WinResTarget \ + WinResTarget \ )) ifeq ($(gb_FULLDEPS),$(true)) define gb_WinResTarget__command_dep $(call gb_Helper_abbreviate_dirs_native,\ - $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ - $(INCLUDE) \ - $(DEFS) \ - $(2) \ - -f - \ - | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ - -v OBJECTFILE=$(call gb_WinResTarget_get_target,$(1)) \ - -v OUTDIR=$(OUTDIR)/ \ - -v WORKDIR=$(WORKDIR)/ \ - -v SRCDIR=$(SRCDIR)/ \ - -v REPODIR=$(REPODIR)/ \ - > $(call gb_WinResTarget_get_dep_target,$(1))) + $(OUTDIR)/bin/makedepend$(gb_Executable_EXT) \ + $(INCLUDE) \ + $(DEFS) \ + $(2) \ + -f - \ + | $(gb_AWK) -f $(GBUILDDIR)/processdeps.awk \ + -v OBJECTFILE=$(call gb_WinResTarget_get_target,$(1)) \ + -v OUTDIR=$(OUTDIR)/ \ + -v WORKDIR=$(WORKDIR)/ \ + -v SRCDIR=$(SRCDIR)/ \ + -v REPODIR=$(REPODIR)/ \ + > $(call gb_WinResTarget_get_dep_target,$(1))) endef else gb_WinResTarget__command_dep = @@ -668,8 +680,8 @@ endif gb_XSLTPROCPRECOMMAND := PATH="$${PATH}:$(OUTDIR)/bin" gb_Library_COMPONENTPREFIXES := \ - OOO:vnd.sun.star.expand:\dBRAND_BASE_DIR/program/ \ - URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \ + OOO:vnd.sun.star.expand:\dBRAND_BASE_DIR/program/ \ + URELIB:vnd.sun.star.expand:\dURE_INTERNAL_LIB_DIR/ \ NONE:vnd.sun.star.expand:\dOOO_INBUILD_SHAREDLIB_DIR/ \ -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/templates/AllLangResTarget.mk b/solenv/gbuild/templates/AllLangResTarget.mk index c38b8ea42fc2..3f8d1237938d 100644 --- a/solenv/gbuild/templates/AllLangResTarget.mk +++ b/solenv/gbuild/templates/AllLangResTarget.mk @@ -39,11 +39,11 @@ $(eval $(call gb_SrsTarget_SrsTarget,RES/res)) # add any additional include paths here $(eval $(call gb_SrsTarget_set_include,RES/res,\ - $$(INCLUDE) \ + $$(INCLUDE) \ )) # add src files here (complete path relative to repository root) $(eval $(call gb_SrsTarget_add_files,RES/res,\ )) -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/templates/CppunitTest.mk b/solenv/gbuild/templates/CppunitTest.mk index 56f3452ede14..28e940688019 100644 --- a/solenv/gbuild/templates/CppunitTest.mk +++ b/solenv/gbuild/templates/CppunitTest.mk @@ -31,11 +31,11 @@ $(eval $(call gb_CppunitTest_add_exception_objects,MODULE_NAME, \ )) $(eval $(call gb_CppunitTest_add_linked_libs,MODULE_NAME, \ - $(gb_STDLIBS) \ + $(gb_STDLIBS) \ )) $(eval $(call gb_CppunitTest_set_include,MODULE_NAME,\ - $$(INCLUDE) \ + $$(INCLUDE) \ )) -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/templates/Executable.mk b/solenv/gbuild/templates/Executable.mk index 84248be3a150..5a11ca65a055 100644 --- a/solenv/gbuild/templates/Executable.mk +++ b/solenv/gbuild/templates/Executable.mk @@ -28,7 +28,7 @@ $(eval $(call gb_Executable_Executable,EXEC)) $(eval $(call gb_Executable_set_include,EXEC,\ - $$(INCLUDE) \ + $$(INCLUDE) \ )) #$(eval $(call gb_Executable_add_defs,EXEC,\ @@ -36,7 +36,7 @@ $(eval $(call gb_Executable_set_include,EXEC,\ #)) $(eval $(call gb_Executable_add_linked_libs,EXEC,\ - $(gb_STDLIBS) \ + $(gb_STDLIBS) \ )) $(eval $(call gb_Executable_add_exception_objects,EXEC,\ @@ -45,4 +45,4 @@ $(eval $(call gb_Executable_add_exception_objects,EXEC,\ $(eval $(call gb_Executable_set_targettype_gui,EXEC,\ )) -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/templates/JunitTest.mk b/solenv/gbuild/templates/JunitTest.mk index 4492d9ef45f3..d4e515fa2d8e 100644 --- a/solenv/gbuild/templates/JunitTest.mk +++ b/solenv/gbuild/templates/JunitTest.mk @@ -28,16 +28,16 @@ $(eval $(call gb_JunitTest_JunitTest,MODULE_TYPE)) $(eval $(call gb_JunitTest_set_defs,MODULE_TYPE,\ - $$(DEFS) \ - -Dorg.openoffice.test.arg.tdoc=$(SRCDIR)/MODULE/DOCUMENTPATH \ + $$(DEFS) \ + -Dorg.openoffice.test.arg.tdoc=$(SRCDIR)/MODULE/DOCUMENTPATH \ )) $(eval $(call gb_JunitTest_add_jars,MODULE_TYPE,\ - $(OUTDIR)/bin/OOoRunner.jar \ - $(OUTDIR)/bin/ridl.jar \ - $(OUTDIR)/bin/test.jar \ - $(OUTDIR)/bin/unoil.jar \ - $(OUTDIR)/bin/jurt.jar \ + $(OUTDIR)/bin/OOoRunner.jar \ + $(OUTDIR)/bin/ridl.jar \ + $(OUTDIR)/bin/test.jar \ + $(OUTDIR)/bin/unoil.jar \ + $(OUTDIR)/bin/jurt.jar \ )) $(eval $(call gb_JunitTest_add_sourcefiles,MODULE_TYPE,\ @@ -46,4 +46,4 @@ $(eval $(call gb_JunitTest_add_sourcefiles,MODULE_TYPE,\ $(eval $(call gb_JunitTest_add_classes,MODULE_COMPLEX,\ )) -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/templates/Library.mk b/solenv/gbuild/templates/Library.mk index 4b6603a05eee..249bbdfced2c 100644 --- a/solenv/gbuild/templates/Library.mk +++ b/solenv/gbuild/templates/Library.mk @@ -44,7 +44,7 @@ $(eval $(call gb_Library_set_componentfile,LIB,MODULE/COMPONENT_FILE)) # add any additional include paths for this library here $(eval $(call gb_Library_set_include,LIB,\ - $$(INCLUDE) \ + $$(INCLUDE) \ )) # add any additional definitions to be set for compilation here @@ -55,7 +55,7 @@ $(eval $(call gb_Library_set_include,LIB,\ # add libraries to be linked to LIB; again these names need to be given as # specified in Repository.mk $(eval $(call gb_Library_add_linked_libs,LIB,\ - $(gb_STDLIBS) \ + $(gb_STDLIBS) \ )) # add all source files that shall be compiled with exceptions enabled @@ -70,16 +70,16 @@ $(eval $(call gb_SdiTarget_SdiTarget,MODULE/sdi/ROOT_SDI_FILE,MODULE/sdi/LIB)) # add any additional include paths for sdi processing here $(eval $(call gb_SdiTarget_set_include,MODULE/sdi/ROOT_SDI_FILE,\ - $$(INCLUDE) \ + $$(INCLUDE) \ )) # this is an example how files can be added that require special compiler settings, e.g. building without optimizing ifeq ($(OS),WNT) $(eval $(call gb_Library_add_cxxobjects,LIB,\ - MODULE/source/foo/bar \ - , $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \ + MODULE/source/foo/bar \ + , $(gb_COMPILERNOOPTFLAGS) $(gb_LinkTarget_EXCEPTIONFLAGS) \ )) endif -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/templates/Module.mk b/solenv/gbuild/templates/Module.mk index 6adb9bfab4a2..3b2f7fa04d98 100644 --- a/solenv/gbuild/templates/Module.mk +++ b/solenv/gbuild/templates/Module.mk @@ -42,4 +42,4 @@ $(eval $(call gb_Module_add_check_targets,MODULE,\ $(eval $(call gb_Module_add_subsequentcheck_targets,MODULE,\ )) -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/templates/Package.mk b/solenv/gbuild/templates/Package.mk index 1b9ae0315990..c71ca5f4f3ae 100644 --- a/solenv/gbuild/templates/Package.mk +++ b/solenv/gbuild/templates/Package.mk @@ -39,4 +39,4 @@ $(eval $(call gb_Package_Package,MODULE_TYPE,$(SRCDIR)/MODULE/SOURCE)) # DESTINATION_RELPATH/file.ext is the destination file (relative to $(OUTDIR)) $(eval $(call gb_Package_add_file,MODULE_TYPE,DESTINATION_RELPATH/file.ext,SOURCE_RELPATH/file.ext)) -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/templates/StaticLibrary.mk b/solenv/gbuild/templates/StaticLibrary.mk index 5b0176b8b41c..0bee7b930ab8 100644 --- a/solenv/gbuild/templates/StaticLibrary.mk +++ b/solenv/gbuild/templates/StaticLibrary.mk @@ -32,4 +32,4 @@ $(eval $(call gb_StaticLibrary_add_package_headers,LIB,MODULE_inc)) $(eval $(call gb_StaticLibrary_add_exception_objects,LIB,\ )) -# vim: set noet sw=4 ts=4: +# vim: set noet sw=4: diff --git a/solenv/gbuild/templates/makefile.mk b/solenv/gbuild/templates/makefile.mk index e312a7ccab65..88cd9dfe08b8 100644 --- a/solenv/gbuild/templates/makefile.mk +++ b/solenv/gbuild/templates/makefile.mk @@ -37,4 +37,4 @@ VERBOSEFLAG := -s .ENDIF all: - cd $(PRJ) && $(GNUMAKE) $(VERBOSEFLAG) -r -j$(MAXPROCESS) $(gb_MAKETARGET) && $(GNUMAKE) $(VERBOSEFLAG) -r deliverlog + cd $(PRJ) && $(GNUMAKE) $(VERBOSEFLAG) -r -j$(MAXPROCESS) $(gb_MAKETARGET) && $(GNUMAKE) $(VERBOSEFLAG) -r deliverlog diff --git a/solenv/inc/_tg_app.mk b/solenv/inc/_tg_app.mk index 960c8d229b76..cf56b9c31f9c 100644 --- a/solenv/inc/_tg_app.mk +++ b/solenv/inc/_tg_app.mk @@ -1,9 +1,5 @@ # unroll begin -.IF "$(GUI)" == "OS2" && "$(TARGETTYPE)" == "GUI" -APP1DEF = $(MISC)/$(APP1TARGET).def -.ENDIF - .IF "$(APP1LINKTYPE)" != "" #must be either STATIC or SHARED APP1LINKTYPEFLAG=$(APPLINK$(APP1LINKTYPE)) @@ -59,7 +55,7 @@ APP1PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP1PRODUCTNAME)\" .ENDIF # "$(APP1PRODUCTNAME)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(APP1LIBS)"!="" $(MISC)/$(APP1TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -74,16 +70,8 @@ $(APP1TARGETN) : $(LINKINCTARGETS) # Allow for target specific LIBSALCPPRT override APP1LIBSALCPPRT*=$(LIBSALCPPRT) -.IF "$(GUI)" == "OS2" -_APP1IMP_ORD = $(APP1STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(APP1STDLIBS:^"$(LB)/") -APP1IMP_ORD = $(foreach,i,$(_APP1IMP_ORD) $(shell @-ls $i)) -.ELSE -APP1IMP_ORD = -.ENDIF - $(APP1TARGETN): $(APP1OBJS) $(APP1LIBS) \ $(APP1RES) \ - $(APP1IMP_ORD) \ $(APP1ICON) $(APP1DEPN) $(USE_APP1DEF) @echo "Making: " $(@:f) .IF "$(GUI)"=="UNX" @@ -94,7 +82,7 @@ $(APP1TARGETN): $(APP1OBJS) $(APP1LIBS) \ @-$(RM) $(MISC)/$(@:b).strip @echo $(STDSLO) $(APP1OBJS:s/.obj/.o/) \ `cat /dev/null $(APP1LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(APP1LINKER) $(APP1LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(APP1LINKER) $(APP1LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ $(APP1LINKTYPEFLAG) $(APP1STDLIBS) $(APP1STDLIB) $(STDLIB1) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_1.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_1.cmd` \ @@ -147,7 +135,7 @@ $(APP1TARGETN): $(APP1OBJS) $(APP1LIBS) \ @echo mingw .IF "$(APP1LINKRES)" != "" || "$(APP1RES)" != "" @cat $(APP1LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP1RES)) > $(MISC)/$(@:b)_all.res - windres $(MISC)/$(@:b)_all.res $(APP1RESO) + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP1RESO) .ENDIF @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ $(APP1BASEX) $(APP1STACKN) -o $@ $(APP1OBJS) \ @@ -218,76 +206,12 @@ $(APP1TARGETN): $(APP1OBJS) $(APP1LIBS) \ .ENDIF # "$(GUI)" == "WNT" -.IF "$(GUI)" == "OS2" - @+-$(MKDIR) $(@:d:d) >& $(NULLDEV) -.IF "$(APP1LINKRES)" != "" - @+-$(RM) $(MISC)/$(APP1LINKRES:b).rc >& $(NULLDEV) -.IF "$(APP1ICON)" != "" - @-+$(WRAPCMD) echo 1 ICON $(EMQ)"$(APP1ICON)$(EMQ)" | $(SED) 'sX\\X\\\\Xg' >> $(MISC)/$(APP1LINKRES:b).rc -.ENDIF # "$(APP1ICON)" != "" -.IF "$(APP1VERINFO)" != "" - @-+echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP1LINKRES:b).rc - @-+echo $(EMQ)#include $(EMQ)"$(APP1VERINFO)$(EMQ)" >> $(MISC)/$(APP1LINKRES:b).rc -.ENDIF # "$(APP1VERINFO)" != "" - $(COMMAND_ECHO)$(RC) -r -DOS2 $(APP1PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP1LINKRES:b).rc -.ENDIF # "$(APP1LINKRES)" != "" - -.IF "$(TARGETTYPE)" == "GUI" - @echo NAME $(APP1TARGET) WINDOWAPI > $(MISC)/$(APP1TARGET).def -.ENDIF - - .IF "$(VERBOSE)" == "TRUE" - @+echo $(APP1LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP1BASEX) \ - $(APP1STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP1LINKRES) \ - $(APP1RES) \ - $(APP1DEF) \ - $(APP1OBJS) \ - $(APP1LIBS) \ - $(APP1STDLIBS:^"-l") \ - $(APP1STDLIB:^"-l") $(STDLIB1:^"-l") - .ENDIF - $(COMMAND_ECHO)$(APP1LINKER) -v \ - $(APP1LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP1BASEX) \ - $(APP1STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP1LINKRES) \ - $(APP1RES) \ - $(APP1DEF) \ - $(APP1OBJS) \ - $(APP1LIBS) \ - $(APP1STDLIBS:^"-l") \ - $(APP1STDLIB:^"-l") $(STDLIB1:^"-l") - - -.IF "$(APP1TARGET)" == "loader" - $(COMMAND_ECHO)+$(PERL) loader.pl $@ - $(COMMAND_ECHO)+$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe - $(COMMAND_ECHO)+$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $(@:d)_new.exe $(@:d)loader.exe -.ENDIF # "$(TARGET)" == "setup" - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(APP1TARGETN)"!="" # Instruction for linking # unroll begin -.IF "$(GUI)" == "OS2" && "$(TARGETTYPE)" == "GUI" -APP2DEF = $(MISC)/$(APP2TARGET).def -.ENDIF - .IF "$(APP2LINKTYPE)" != "" #must be either STATIC or SHARED APP2LINKTYPEFLAG=$(APPLINK$(APP2LINKTYPE)) @@ -343,7 +267,7 @@ APP2PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP2PRODUCTNAME)\" .ENDIF # "$(APP2PRODUCTNAME)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(APP2LIBS)"!="" $(MISC)/$(APP2TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -358,16 +282,8 @@ $(APP2TARGETN) : $(LINKINCTARGETS) # Allow for target specific LIBSALCPPRT override APP2LIBSALCPPRT*=$(LIBSALCPPRT) -.IF "$(GUI)" == "OS2" -_APP2IMP_ORD = $(APP2STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(APP2STDLIBS:^"$(LB)/") -APP2IMP_ORD = $(foreach,i,$(_APP2IMP_ORD) $(shell @-ls $i)) -.ELSE -APP2IMP_ORD = -.ENDIF - $(APP2TARGETN): $(APP2OBJS) $(APP2LIBS) \ $(APP2RES) \ - $(APP2IMP_ORD) \ $(APP2ICON) $(APP2DEPN) $(USE_APP2DEF) @echo "Making: " $(@:f) .IF "$(GUI)"=="UNX" @@ -378,7 +294,7 @@ $(APP2TARGETN): $(APP2OBJS) $(APP2LIBS) \ @-$(RM) $(MISC)/$(@:b).strip @echo $(STDSLO) $(APP2OBJS:s/.obj/.o/) \ `cat /dev/null $(APP2LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(APP2LINKER) $(APP2LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(APP2LINKER) $(APP2LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ $(APP2LINKTYPEFLAG) $(APP2STDLIBS) $(APP2STDLIB) $(STDLIB2) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_2.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_2.cmd` \ @@ -431,7 +347,7 @@ $(APP2TARGETN): $(APP2OBJS) $(APP2LIBS) \ @echo mingw .IF "$(APP2LINKRES)" != "" || "$(APP2RES)" != "" @cat $(APP2LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP2RES)) > $(MISC)/$(@:b)_all.res - windres $(MISC)/$(@:b)_all.res $(APP2RESO) + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP2RESO) .ENDIF @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ $(APP2BASEX) $(APP2STACKN) -o $@ $(APP2OBJS) \ @@ -502,76 +418,12 @@ $(APP2TARGETN): $(APP2OBJS) $(APP2LIBS) \ .ENDIF # "$(GUI)" == "WNT" -.IF "$(GUI)" == "OS2" - @+-$(MKDIR) $(@:d:d) >& $(NULLDEV) -.IF "$(APP2LINKRES)" != "" - @+-$(RM) $(MISC)/$(APP2LINKRES:b).rc >& $(NULLDEV) -.IF "$(APP2ICON)" != "" - @-+$(WRAPCMD) echo 1 ICON $(EMQ)"$(APP2ICON)$(EMQ)" | $(SED) 'sX\\X\\\\Xg' >> $(MISC)/$(APP2LINKRES:b).rc -.ENDIF # "$(APP2ICON)" != "" -.IF "$(APP2VERINFO)" != "" - @-+echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP2LINKRES:b).rc - @-+echo $(EMQ)#include $(EMQ)"$(APP2VERINFO)$(EMQ)" >> $(MISC)/$(APP2LINKRES:b).rc -.ENDIF # "$(APP2VERINFO)" != "" - $(COMMAND_ECHO)$(RC) -r -DOS2 $(APP2PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP2LINKRES:b).rc -.ENDIF # "$(APP2LINKRES)" != "" - -.IF "$(TARGETTYPE)" == "GUI" - @echo NAME $(APP2TARGET) WINDOWAPI > $(MISC)/$(APP2TARGET).def -.ENDIF - - .IF "$(VERBOSE)" == "TRUE" - @+echo $(APP2LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP2BASEX) \ - $(APP2STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP2LINKRES) \ - $(APP2RES) \ - $(APP2DEF) \ - $(APP2OBJS) \ - $(APP2LIBS) \ - $(APP2STDLIBS:^"-l") \ - $(APP2STDLIB:^"-l") $(STDLIB2:^"-l") - .ENDIF - $(COMMAND_ECHO)$(APP2LINKER) -v \ - $(APP2LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP2BASEX) \ - $(APP2STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP2LINKRES) \ - $(APP2RES) \ - $(APP2DEF) \ - $(APP2OBJS) \ - $(APP2LIBS) \ - $(APP2STDLIBS:^"-l") \ - $(APP2STDLIB:^"-l") $(STDLIB2:^"-l") - - -.IF "$(APP2TARGET)" == "loader" - $(COMMAND_ECHO)+$(PERL) loader.pl $@ - $(COMMAND_ECHO)+$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe - $(COMMAND_ECHO)+$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $(@:d)_new.exe $(@:d)loader.exe -.ENDIF # "$(TARGET)" == "setup" - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(APP2TARGETN)"!="" # Instruction for linking # unroll begin -.IF "$(GUI)" == "OS2" && "$(TARGETTYPE)" == "GUI" -APP3DEF = $(MISC)/$(APP3TARGET).def -.ENDIF - .IF "$(APP3LINKTYPE)" != "" #must be either STATIC or SHARED APP3LINKTYPEFLAG=$(APPLINK$(APP3LINKTYPE)) @@ -627,7 +479,7 @@ APP3PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP3PRODUCTNAME)\" .ENDIF # "$(APP3PRODUCTNAME)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(APP3LIBS)"!="" $(MISC)/$(APP3TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -642,16 +494,8 @@ $(APP3TARGETN) : $(LINKINCTARGETS) # Allow for target specific LIBSALCPPRT override APP3LIBSALCPPRT*=$(LIBSALCPPRT) -.IF "$(GUI)" == "OS2" -_APP3IMP_ORD = $(APP3STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(APP3STDLIBS:^"$(LB)/") -APP3IMP_ORD = $(foreach,i,$(_APP3IMP_ORD) $(shell @-ls $i)) -.ELSE -APP3IMP_ORD = -.ENDIF - $(APP3TARGETN): $(APP3OBJS) $(APP3LIBS) \ $(APP3RES) \ - $(APP3IMP_ORD) \ $(APP3ICON) $(APP3DEPN) $(USE_APP3DEF) @echo "Making: " $(@:f) .IF "$(GUI)"=="UNX" @@ -662,7 +506,7 @@ $(APP3TARGETN): $(APP3OBJS) $(APP3LIBS) \ @-$(RM) $(MISC)/$(@:b).strip @echo $(STDSLO) $(APP3OBJS:s/.obj/.o/) \ `cat /dev/null $(APP3LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(APP3LINKER) $(APP3LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(APP3LINKER) $(APP3LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ $(APP3LINKTYPEFLAG) $(APP3STDLIBS) $(APP3STDLIB) $(STDLIB3) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_3.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_3.cmd` \ @@ -715,7 +559,7 @@ $(APP3TARGETN): $(APP3OBJS) $(APP3LIBS) \ @echo mingw .IF "$(APP3LINKRES)" != "" || "$(APP3RES)" != "" @cat $(APP3LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP3RES)) > $(MISC)/$(@:b)_all.res - windres $(MISC)/$(@:b)_all.res $(APP3RESO) + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP3RESO) .ENDIF @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ $(APP3BASEX) $(APP3STACKN) -o $@ $(APP3OBJS) \ @@ -786,76 +630,12 @@ $(APP3TARGETN): $(APP3OBJS) $(APP3LIBS) \ .ENDIF # "$(GUI)" == "WNT" -.IF "$(GUI)" == "OS2" - @+-$(MKDIR) $(@:d:d) >& $(NULLDEV) -.IF "$(APP3LINKRES)" != "" - @+-$(RM) $(MISC)/$(APP3LINKRES:b).rc >& $(NULLDEV) -.IF "$(APP3ICON)" != "" - @-+$(WRAPCMD) echo 1 ICON $(EMQ)"$(APP3ICON)$(EMQ)" | $(SED) 'sX\\X\\\\Xg' >> $(MISC)/$(APP3LINKRES:b).rc -.ENDIF # "$(APP3ICON)" != "" -.IF "$(APP3VERINFO)" != "" - @-+echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP3LINKRES:b).rc - @-+echo $(EMQ)#include $(EMQ)"$(APP3VERINFO)$(EMQ)" >> $(MISC)/$(APP3LINKRES:b).rc -.ENDIF # "$(APP3VERINFO)" != "" - $(COMMAND_ECHO)$(RC) -r -DOS2 $(APP3PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP3LINKRES:b).rc -.ENDIF # "$(APP3LINKRES)" != "" - -.IF "$(TARGETTYPE)" == "GUI" - @echo NAME $(APP3TARGET) WINDOWAPI > $(MISC)/$(APP3TARGET).def -.ENDIF - - .IF "$(VERBOSE)" == "TRUE" - @+echo $(APP3LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP3BASEX) \ - $(APP3STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP3LINKRES) \ - $(APP3RES) \ - $(APP3DEF) \ - $(APP3OBJS) \ - $(APP3LIBS) \ - $(APP3STDLIBS:^"-l") \ - $(APP3STDLIB:^"-l") $(STDLIB3:^"-l") - .ENDIF - $(COMMAND_ECHO)$(APP3LINKER) -v \ - $(APP3LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP3BASEX) \ - $(APP3STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP3LINKRES) \ - $(APP3RES) \ - $(APP3DEF) \ - $(APP3OBJS) \ - $(APP3LIBS) \ - $(APP3STDLIBS:^"-l") \ - $(APP3STDLIB:^"-l") $(STDLIB3:^"-l") - - -.IF "$(APP3TARGET)" == "loader" - $(COMMAND_ECHO)+$(PERL) loader.pl $@ - $(COMMAND_ECHO)+$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe - $(COMMAND_ECHO)+$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $(@:d)_new.exe $(@:d)loader.exe -.ENDIF # "$(TARGET)" == "setup" - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(APP3TARGETN)"!="" # Instruction for linking # unroll begin -.IF "$(GUI)" == "OS2" && "$(TARGETTYPE)" == "GUI" -APP4DEF = $(MISC)/$(APP4TARGET).def -.ENDIF - .IF "$(APP4LINKTYPE)" != "" #must be either STATIC or SHARED APP4LINKTYPEFLAG=$(APPLINK$(APP4LINKTYPE)) @@ -911,7 +691,7 @@ APP4PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP4PRODUCTNAME)\" .ENDIF # "$(APP4PRODUCTNAME)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(APP4LIBS)"!="" $(MISC)/$(APP4TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -926,16 +706,8 @@ $(APP4TARGETN) : $(LINKINCTARGETS) # Allow for target specific LIBSALCPPRT override APP4LIBSALCPPRT*=$(LIBSALCPPRT) -.IF "$(GUI)" == "OS2" -_APP4IMP_ORD = $(APP4STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(APP4STDLIBS:^"$(LB)/") -APP4IMP_ORD = $(foreach,i,$(_APP4IMP_ORD) $(shell @-ls $i)) -.ELSE -APP4IMP_ORD = -.ENDIF - $(APP4TARGETN): $(APP4OBJS) $(APP4LIBS) \ $(APP4RES) \ - $(APP4IMP_ORD) \ $(APP4ICON) $(APP4DEPN) $(USE_APP4DEF) @echo "Making: " $(@:f) .IF "$(GUI)"=="UNX" @@ -946,7 +718,7 @@ $(APP4TARGETN): $(APP4OBJS) $(APP4LIBS) \ @-$(RM) $(MISC)/$(@:b).strip @echo $(STDSLO) $(APP4OBJS:s/.obj/.o/) \ `cat /dev/null $(APP4LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(APP4LINKER) $(APP4LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(APP4LINKER) $(APP4LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ $(APP4LINKTYPEFLAG) $(APP4STDLIBS) $(APP4STDLIB) $(STDLIB4) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_4.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_4.cmd` \ @@ -999,7 +771,7 @@ $(APP4TARGETN): $(APP4OBJS) $(APP4LIBS) \ @echo mingw .IF "$(APP4LINKRES)" != "" || "$(APP4RES)" != "" @cat $(APP4LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP4RES)) > $(MISC)/$(@:b)_all.res - windres $(MISC)/$(@:b)_all.res $(APP4RESO) + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP4RESO) .ENDIF @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ $(APP4BASEX) $(APP4STACKN) -o $@ $(APP4OBJS) \ @@ -1070,76 +842,12 @@ $(APP4TARGETN): $(APP4OBJS) $(APP4LIBS) \ .ENDIF # "$(GUI)" == "WNT" -.IF "$(GUI)" == "OS2" - @+-$(MKDIR) $(@:d:d) >& $(NULLDEV) -.IF "$(APP4LINKRES)" != "" - @+-$(RM) $(MISC)/$(APP4LINKRES:b).rc >& $(NULLDEV) -.IF "$(APP4ICON)" != "" - @-+$(WRAPCMD) echo 1 ICON $(EMQ)"$(APP4ICON)$(EMQ)" | $(SED) 'sX\\X\\\\Xg' >> $(MISC)/$(APP4LINKRES:b).rc -.ENDIF # "$(APP4ICON)" != "" -.IF "$(APP4VERINFO)" != "" - @-+echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP4LINKRES:b).rc - @-+echo $(EMQ)#include $(EMQ)"$(APP4VERINFO)$(EMQ)" >> $(MISC)/$(APP4LINKRES:b).rc -.ENDIF # "$(APP4VERINFO)" != "" - $(COMMAND_ECHO)$(RC) -r -DOS2 $(APP4PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP4LINKRES:b).rc -.ENDIF # "$(APP4LINKRES)" != "" - -.IF "$(TARGETTYPE)" == "GUI" - @echo NAME $(APP4TARGET) WINDOWAPI > $(MISC)/$(APP4TARGET).def -.ENDIF - - .IF "$(VERBOSE)" == "TRUE" - @+echo $(APP4LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP4BASEX) \ - $(APP4STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP4LINKRES) \ - $(APP4RES) \ - $(APP4DEF) \ - $(APP4OBJS) \ - $(APP4LIBS) \ - $(APP4STDLIBS:^"-l") \ - $(APP4STDLIB:^"-l") $(STDLIB4:^"-l") - .ENDIF - $(COMMAND_ECHO)$(APP4LINKER) -v \ - $(APP4LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP4BASEX) \ - $(APP4STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP4LINKRES) \ - $(APP4RES) \ - $(APP4DEF) \ - $(APP4OBJS) \ - $(APP4LIBS) \ - $(APP4STDLIBS:^"-l") \ - $(APP4STDLIB:^"-l") $(STDLIB4:^"-l") - - -.IF "$(APP4TARGET)" == "loader" - $(COMMAND_ECHO)+$(PERL) loader.pl $@ - $(COMMAND_ECHO)+$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe - $(COMMAND_ECHO)+$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $(@:d)_new.exe $(@:d)loader.exe -.ENDIF # "$(TARGET)" == "setup" - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(APP4TARGETN)"!="" # Instruction for linking # unroll begin -.IF "$(GUI)" == "OS2" && "$(TARGETTYPE)" == "GUI" -APP5DEF = $(MISC)/$(APP5TARGET).def -.ENDIF - .IF "$(APP5LINKTYPE)" != "" #must be either STATIC or SHARED APP5LINKTYPEFLAG=$(APPLINK$(APP5LINKTYPE)) @@ -1195,7 +903,7 @@ APP5PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP5PRODUCTNAME)\" .ENDIF # "$(APP5PRODUCTNAME)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(APP5LIBS)"!="" $(MISC)/$(APP5TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -1210,16 +918,8 @@ $(APP5TARGETN) : $(LINKINCTARGETS) # Allow for target specific LIBSALCPPRT override APP5LIBSALCPPRT*=$(LIBSALCPPRT) -.IF "$(GUI)" == "OS2" -_APP5IMP_ORD = $(APP5STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(APP5STDLIBS:^"$(LB)/") -APP5IMP_ORD = $(foreach,i,$(_APP5IMP_ORD) $(shell @-ls $i)) -.ELSE -APP5IMP_ORD = -.ENDIF - $(APP5TARGETN): $(APP5OBJS) $(APP5LIBS) \ $(APP5RES) \ - $(APP5IMP_ORD) \ $(APP5ICON) $(APP5DEPN) $(USE_APP5DEF) @echo "Making: " $(@:f) .IF "$(GUI)"=="UNX" @@ -1230,7 +930,7 @@ $(APP5TARGETN): $(APP5OBJS) $(APP5LIBS) \ @-$(RM) $(MISC)/$(@:b).strip @echo $(STDSLO) $(APP5OBJS:s/.obj/.o/) \ `cat /dev/null $(APP5LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(APP5LINKER) $(APP5LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(APP5LINKER) $(APP5LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ $(APP5LINKTYPEFLAG) $(APP5STDLIBS) $(APP5STDLIB) $(STDLIB5) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_5.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_5.cmd` \ @@ -1283,7 +983,7 @@ $(APP5TARGETN): $(APP5OBJS) $(APP5LIBS) \ @echo mingw .IF "$(APP5LINKRES)" != "" || "$(APP5RES)" != "" @cat $(APP5LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP5RES)) > $(MISC)/$(@:b)_all.res - windres $(MISC)/$(@:b)_all.res $(APP5RESO) + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP5RESO) .ENDIF @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ $(APP5BASEX) $(APP5STACKN) -o $@ $(APP5OBJS) \ @@ -1354,76 +1054,12 @@ $(APP5TARGETN): $(APP5OBJS) $(APP5LIBS) \ .ENDIF # "$(GUI)" == "WNT" -.IF "$(GUI)" == "OS2" - @+-$(MKDIR) $(@:d:d) >& $(NULLDEV) -.IF "$(APP5LINKRES)" != "" - @+-$(RM) $(MISC)/$(APP5LINKRES:b).rc >& $(NULLDEV) -.IF "$(APP5ICON)" != "" - @-+$(WRAPCMD) echo 1 ICON $(EMQ)"$(APP5ICON)$(EMQ)" | $(SED) 'sX\\X\\\\Xg' >> $(MISC)/$(APP5LINKRES:b).rc -.ENDIF # "$(APP5ICON)" != "" -.IF "$(APP5VERINFO)" != "" - @-+echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP5LINKRES:b).rc - @-+echo $(EMQ)#include $(EMQ)"$(APP5VERINFO)$(EMQ)" >> $(MISC)/$(APP5LINKRES:b).rc -.ENDIF # "$(APP5VERINFO)" != "" - $(COMMAND_ECHO)$(RC) -r -DOS2 $(APP5PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP5LINKRES:b).rc -.ENDIF # "$(APP5LINKRES)" != "" - -.IF "$(TARGETTYPE)" == "GUI" - @echo NAME $(APP5TARGET) WINDOWAPI > $(MISC)/$(APP5TARGET).def -.ENDIF - - .IF "$(VERBOSE)" == "TRUE" - @+echo $(APP5LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP5BASEX) \ - $(APP5STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP5LINKRES) \ - $(APP5RES) \ - $(APP5DEF) \ - $(APP5OBJS) \ - $(APP5LIBS) \ - $(APP5STDLIBS:^"-l") \ - $(APP5STDLIB:^"-l") $(STDLIB5:^"-l") - .ENDIF - $(COMMAND_ECHO)$(APP5LINKER) -v \ - $(APP5LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP5BASEX) \ - $(APP5STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP5LINKRES) \ - $(APP5RES) \ - $(APP5DEF) \ - $(APP5OBJS) \ - $(APP5LIBS) \ - $(APP5STDLIBS:^"-l") \ - $(APP5STDLIB:^"-l") $(STDLIB5:^"-l") - - -.IF "$(APP5TARGET)" == "loader" - $(COMMAND_ECHO)+$(PERL) loader.pl $@ - $(COMMAND_ECHO)+$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe - $(COMMAND_ECHO)+$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $(@:d)_new.exe $(@:d)loader.exe -.ENDIF # "$(TARGET)" == "setup" - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(APP5TARGETN)"!="" # Instruction for linking # unroll begin -.IF "$(GUI)" == "OS2" && "$(TARGETTYPE)" == "GUI" -APP6DEF = $(MISC)/$(APP6TARGET).def -.ENDIF - .IF "$(APP6LINKTYPE)" != "" #must be either STATIC or SHARED APP6LINKTYPEFLAG=$(APPLINK$(APP6LINKTYPE)) @@ -1479,7 +1115,7 @@ APP6PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP6PRODUCTNAME)\" .ENDIF # "$(APP6PRODUCTNAME)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(APP6LIBS)"!="" $(MISC)/$(APP6TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -1494,16 +1130,8 @@ $(APP6TARGETN) : $(LINKINCTARGETS) # Allow for target specific LIBSALCPPRT override APP6LIBSALCPPRT*=$(LIBSALCPPRT) -.IF "$(GUI)" == "OS2" -_APP6IMP_ORD = $(APP6STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(APP6STDLIBS:^"$(LB)/") -APP6IMP_ORD = $(foreach,i,$(_APP6IMP_ORD) $(shell @-ls $i)) -.ELSE -APP6IMP_ORD = -.ENDIF - $(APP6TARGETN): $(APP6OBJS) $(APP6LIBS) \ $(APP6RES) \ - $(APP6IMP_ORD) \ $(APP6ICON) $(APP6DEPN) $(USE_APP6DEF) @echo "Making: " $(@:f) .IF "$(GUI)"=="UNX" @@ -1514,7 +1142,7 @@ $(APP6TARGETN): $(APP6OBJS) $(APP6LIBS) \ @-$(RM) $(MISC)/$(@:b).strip @echo $(STDSLO) $(APP6OBJS:s/.obj/.o/) \ `cat /dev/null $(APP6LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(APP6LINKER) $(APP6LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(APP6LINKER) $(APP6LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ $(APP6LINKTYPEFLAG) $(APP6STDLIBS) $(APP6STDLIB) $(STDLIB6) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_6.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_6.cmd` \ @@ -1567,7 +1195,7 @@ $(APP6TARGETN): $(APP6OBJS) $(APP6LIBS) \ @echo mingw .IF "$(APP6LINKRES)" != "" || "$(APP6RES)" != "" @cat $(APP6LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP6RES)) > $(MISC)/$(@:b)_all.res - windres $(MISC)/$(@:b)_all.res $(APP6RESO) + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP6RESO) .ENDIF @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ $(APP6BASEX) $(APP6STACKN) -o $@ $(APP6OBJS) \ @@ -1638,76 +1266,12 @@ $(APP6TARGETN): $(APP6OBJS) $(APP6LIBS) \ .ENDIF # "$(GUI)" == "WNT" -.IF "$(GUI)" == "OS2" - @+-$(MKDIR) $(@:d:d) >& $(NULLDEV) -.IF "$(APP6LINKRES)" != "" - @+-$(RM) $(MISC)/$(APP6LINKRES:b).rc >& $(NULLDEV) -.IF "$(APP6ICON)" != "" - @-+$(WRAPCMD) echo 1 ICON $(EMQ)"$(APP6ICON)$(EMQ)" | $(SED) 'sX\\X\\\\Xg' >> $(MISC)/$(APP6LINKRES:b).rc -.ENDIF # "$(APP6ICON)" != "" -.IF "$(APP6VERINFO)" != "" - @-+echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP6LINKRES:b).rc - @-+echo $(EMQ)#include $(EMQ)"$(APP6VERINFO)$(EMQ)" >> $(MISC)/$(APP6LINKRES:b).rc -.ENDIF # "$(APP6VERINFO)" != "" - $(COMMAND_ECHO)$(RC) -r -DOS2 $(APP6PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP6LINKRES:b).rc -.ENDIF # "$(APP6LINKRES)" != "" - -.IF "$(TARGETTYPE)" == "GUI" - @echo NAME $(APP6TARGET) WINDOWAPI > $(MISC)/$(APP6TARGET).def -.ENDIF - - .IF "$(VERBOSE)" == "TRUE" - @+echo $(APP6LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP6BASEX) \ - $(APP6STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP6LINKRES) \ - $(APP6RES) \ - $(APP6DEF) \ - $(APP6OBJS) \ - $(APP6LIBS) \ - $(APP6STDLIBS:^"-l") \ - $(APP6STDLIB:^"-l") $(STDLIB6:^"-l") - .ENDIF - $(COMMAND_ECHO)$(APP6LINKER) -v \ - $(APP6LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP6BASEX) \ - $(APP6STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP6LINKRES) \ - $(APP6RES) \ - $(APP6DEF) \ - $(APP6OBJS) \ - $(APP6LIBS) \ - $(APP6STDLIBS:^"-l") \ - $(APP6STDLIB:^"-l") $(STDLIB6:^"-l") - - -.IF "$(APP6TARGET)" == "loader" - $(COMMAND_ECHO)+$(PERL) loader.pl $@ - $(COMMAND_ECHO)+$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe - $(COMMAND_ECHO)+$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $(@:d)_new.exe $(@:d)loader.exe -.ENDIF # "$(TARGET)" == "setup" - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(APP6TARGETN)"!="" # Instruction for linking # unroll begin -.IF "$(GUI)" == "OS2" && "$(TARGETTYPE)" == "GUI" -APP7DEF = $(MISC)/$(APP7TARGET).def -.ENDIF - .IF "$(APP7LINKTYPE)" != "" #must be either STATIC or SHARED APP7LINKTYPEFLAG=$(APPLINK$(APP7LINKTYPE)) @@ -1763,7 +1327,7 @@ APP7PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP7PRODUCTNAME)\" .ENDIF # "$(APP7PRODUCTNAME)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(APP7LIBS)"!="" $(MISC)/$(APP7TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -1778,16 +1342,8 @@ $(APP7TARGETN) : $(LINKINCTARGETS) # Allow for target specific LIBSALCPPRT override APP7LIBSALCPPRT*=$(LIBSALCPPRT) -.IF "$(GUI)" == "OS2" -_APP7IMP_ORD = $(APP7STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(APP7STDLIBS:^"$(LB)/") -APP7IMP_ORD = $(foreach,i,$(_APP7IMP_ORD) $(shell @-ls $i)) -.ELSE -APP7IMP_ORD = -.ENDIF - $(APP7TARGETN): $(APP7OBJS) $(APP7LIBS) \ $(APP7RES) \ - $(APP7IMP_ORD) \ $(APP7ICON) $(APP7DEPN) $(USE_APP7DEF) @echo "Making: " $(@:f) .IF "$(GUI)"=="UNX" @@ -1798,7 +1354,7 @@ $(APP7TARGETN): $(APP7OBJS) $(APP7LIBS) \ @-$(RM) $(MISC)/$(@:b).strip @echo $(STDSLO) $(APP7OBJS:s/.obj/.o/) \ `cat /dev/null $(APP7LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(APP7LINKER) $(APP7LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(APP7LINKER) $(APP7LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ $(APP7LINKTYPEFLAG) $(APP7STDLIBS) $(APP7STDLIB) $(STDLIB7) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_7.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_7.cmd` \ @@ -1851,7 +1407,7 @@ $(APP7TARGETN): $(APP7OBJS) $(APP7LIBS) \ @echo mingw .IF "$(APP7LINKRES)" != "" || "$(APP7RES)" != "" @cat $(APP7LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP7RES)) > $(MISC)/$(@:b)_all.res - windres $(MISC)/$(@:b)_all.res $(APP7RESO) + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP7RESO) .ENDIF @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ $(APP7BASEX) $(APP7STACKN) -o $@ $(APP7OBJS) \ @@ -1922,76 +1478,12 @@ $(APP7TARGETN): $(APP7OBJS) $(APP7LIBS) \ .ENDIF # "$(GUI)" == "WNT" -.IF "$(GUI)" == "OS2" - @+-$(MKDIR) $(@:d:d) >& $(NULLDEV) -.IF "$(APP7LINKRES)" != "" - @+-$(RM) $(MISC)/$(APP7LINKRES:b).rc >& $(NULLDEV) -.IF "$(APP7ICON)" != "" - @-+$(WRAPCMD) echo 1 ICON $(EMQ)"$(APP7ICON)$(EMQ)" | $(SED) 'sX\\X\\\\Xg' >> $(MISC)/$(APP7LINKRES:b).rc -.ENDIF # "$(APP7ICON)" != "" -.IF "$(APP7VERINFO)" != "" - @-+echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP7LINKRES:b).rc - @-+echo $(EMQ)#include $(EMQ)"$(APP7VERINFO)$(EMQ)" >> $(MISC)/$(APP7LINKRES:b).rc -.ENDIF # "$(APP7VERINFO)" != "" - $(COMMAND_ECHO)$(RC) -r -DOS2 $(APP7PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP7LINKRES:b).rc -.ENDIF # "$(APP7LINKRES)" != "" - -.IF "$(TARGETTYPE)" == "GUI" - @echo NAME $(APP7TARGET) WINDOWAPI > $(MISC)/$(APP7TARGET).def -.ENDIF - - .IF "$(VERBOSE)" == "TRUE" - @+echo $(APP7LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP7BASEX) \ - $(APP7STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP7LINKRES) \ - $(APP7RES) \ - $(APP7DEF) \ - $(APP7OBJS) \ - $(APP7LIBS) \ - $(APP7STDLIBS:^"-l") \ - $(APP7STDLIB:^"-l") $(STDLIB7:^"-l") - .ENDIF - $(COMMAND_ECHO)$(APP7LINKER) -v \ - $(APP7LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP7BASEX) \ - $(APP7STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP7LINKRES) \ - $(APP7RES) \ - $(APP7DEF) \ - $(APP7OBJS) \ - $(APP7LIBS) \ - $(APP7STDLIBS:^"-l") \ - $(APP7STDLIB:^"-l") $(STDLIB7:^"-l") - - -.IF "$(APP7TARGET)" == "loader" - $(COMMAND_ECHO)+$(PERL) loader.pl $@ - $(COMMAND_ECHO)+$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe - $(COMMAND_ECHO)+$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $(@:d)_new.exe $(@:d)loader.exe -.ENDIF # "$(TARGET)" == "setup" - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(APP7TARGETN)"!="" # Instruction for linking # unroll begin -.IF "$(GUI)" == "OS2" && "$(TARGETTYPE)" == "GUI" -APP8DEF = $(MISC)/$(APP8TARGET).def -.ENDIF - .IF "$(APP8LINKTYPE)" != "" #must be either STATIC or SHARED APP8LINKTYPEFLAG=$(APPLINK$(APP8LINKTYPE)) @@ -2047,7 +1539,7 @@ APP8PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP8PRODUCTNAME)\" .ENDIF # "$(APP8PRODUCTNAME)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(APP8LIBS)"!="" $(MISC)/$(APP8TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -2062,16 +1554,8 @@ $(APP8TARGETN) : $(LINKINCTARGETS) # Allow for target specific LIBSALCPPRT override APP8LIBSALCPPRT*=$(LIBSALCPPRT) -.IF "$(GUI)" == "OS2" -_APP8IMP_ORD = $(APP8STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(APP8STDLIBS:^"$(LB)/") -APP8IMP_ORD = $(foreach,i,$(_APP8IMP_ORD) $(shell @-ls $i)) -.ELSE -APP8IMP_ORD = -.ENDIF - $(APP8TARGETN): $(APP8OBJS) $(APP8LIBS) \ $(APP8RES) \ - $(APP8IMP_ORD) \ $(APP8ICON) $(APP8DEPN) $(USE_APP8DEF) @echo "Making: " $(@:f) .IF "$(GUI)"=="UNX" @@ -2082,7 +1566,7 @@ $(APP8TARGETN): $(APP8OBJS) $(APP8LIBS) \ @-$(RM) $(MISC)/$(@:b).strip @echo $(STDSLO) $(APP8OBJS:s/.obj/.o/) \ `cat /dev/null $(APP8LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(APP8LINKER) $(APP8LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(APP8LINKER) $(APP8LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ $(APP8LINKTYPEFLAG) $(APP8STDLIBS) $(APP8STDLIB) $(STDLIB8) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_8.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_8.cmd` \ @@ -2135,7 +1619,7 @@ $(APP8TARGETN): $(APP8OBJS) $(APP8LIBS) \ @echo mingw .IF "$(APP8LINKRES)" != "" || "$(APP8RES)" != "" @cat $(APP8LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP8RES)) > $(MISC)/$(@:b)_all.res - windres $(MISC)/$(@:b)_all.res $(APP8RESO) + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP8RESO) .ENDIF @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ $(APP8BASEX) $(APP8STACKN) -o $@ $(APP8OBJS) \ @@ -2206,76 +1690,12 @@ $(APP8TARGETN): $(APP8OBJS) $(APP8LIBS) \ .ENDIF # "$(GUI)" == "WNT" -.IF "$(GUI)" == "OS2" - @+-$(MKDIR) $(@:d:d) >& $(NULLDEV) -.IF "$(APP8LINKRES)" != "" - @+-$(RM) $(MISC)/$(APP8LINKRES:b).rc >& $(NULLDEV) -.IF "$(APP8ICON)" != "" - @-+$(WRAPCMD) echo 1 ICON $(EMQ)"$(APP8ICON)$(EMQ)" | $(SED) 'sX\\X\\\\Xg' >> $(MISC)/$(APP8LINKRES:b).rc -.ENDIF # "$(APP8ICON)" != "" -.IF "$(APP8VERINFO)" != "" - @-+echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP8LINKRES:b).rc - @-+echo $(EMQ)#include $(EMQ)"$(APP8VERINFO)$(EMQ)" >> $(MISC)/$(APP8LINKRES:b).rc -.ENDIF # "$(APP8VERINFO)" != "" - $(COMMAND_ECHO)$(RC) -r -DOS2 $(APP8PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP8LINKRES:b).rc -.ENDIF # "$(APP8LINKRES)" != "" - -.IF "$(TARGETTYPE)" == "GUI" - @echo NAME $(APP8TARGET) WINDOWAPI > $(MISC)/$(APP8TARGET).def -.ENDIF - - .IF "$(VERBOSE)" == "TRUE" - @+echo $(APP8LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP8BASEX) \ - $(APP8STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP8LINKRES) \ - $(APP8RES) \ - $(APP8DEF) \ - $(APP8OBJS) \ - $(APP8LIBS) \ - $(APP8STDLIBS:^"-l") \ - $(APP8STDLIB:^"-l") $(STDLIB8:^"-l") - .ENDIF - $(COMMAND_ECHO)$(APP8LINKER) -v \ - $(APP8LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP8BASEX) \ - $(APP8STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP8LINKRES) \ - $(APP8RES) \ - $(APP8DEF) \ - $(APP8OBJS) \ - $(APP8LIBS) \ - $(APP8STDLIBS:^"-l") \ - $(APP8STDLIB:^"-l") $(STDLIB8:^"-l") - - -.IF "$(APP8TARGET)" == "loader" - $(COMMAND_ECHO)+$(PERL) loader.pl $@ - $(COMMAND_ECHO)+$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe - $(COMMAND_ECHO)+$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $(@:d)_new.exe $(@:d)loader.exe -.ENDIF # "$(TARGET)" == "setup" - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(APP8TARGETN)"!="" # Instruction for linking # unroll begin -.IF "$(GUI)" == "OS2" && "$(TARGETTYPE)" == "GUI" -APP9DEF = $(MISC)/$(APP9TARGET).def -.ENDIF - .IF "$(APP9LINKTYPE)" != "" #must be either STATIC or SHARED APP9LINKTYPEFLAG=$(APPLINK$(APP9LINKTYPE)) @@ -2331,7 +1751,7 @@ APP9PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP9PRODUCTNAME)\" .ENDIF # "$(APP9PRODUCTNAME)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(APP9LIBS)"!="" $(MISC)/$(APP9TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -2346,16 +1766,8 @@ $(APP9TARGETN) : $(LINKINCTARGETS) # Allow for target specific LIBSALCPPRT override APP9LIBSALCPPRT*=$(LIBSALCPPRT) -.IF "$(GUI)" == "OS2" -_APP9IMP_ORD = $(APP9STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(APP9STDLIBS:^"$(LB)/") -APP9IMP_ORD = $(foreach,i,$(_APP9IMP_ORD) $(shell @-ls $i)) -.ELSE -APP9IMP_ORD = -.ENDIF - $(APP9TARGETN): $(APP9OBJS) $(APP9LIBS) \ $(APP9RES) \ - $(APP9IMP_ORD) \ $(APP9ICON) $(APP9DEPN) $(USE_APP9DEF) @echo "Making: " $(@:f) .IF "$(GUI)"=="UNX" @@ -2366,7 +1778,7 @@ $(APP9TARGETN): $(APP9OBJS) $(APP9LIBS) \ @-$(RM) $(MISC)/$(@:b).strip @echo $(STDSLO) $(APP9OBJS:s/.obj/.o/) \ `cat /dev/null $(APP9LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(APP9LINKER) $(APP9LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(APP9LINKER) $(APP9LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ $(APP9LINKTYPEFLAG) $(APP9STDLIBS) $(APP9STDLIB) $(STDLIB9) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_9.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_9.cmd` \ @@ -2419,7 +1831,7 @@ $(APP9TARGETN): $(APP9OBJS) $(APP9LIBS) \ @echo mingw .IF "$(APP9LINKRES)" != "" || "$(APP9RES)" != "" @cat $(APP9LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP9RES)) > $(MISC)/$(@:b)_all.res - windres $(MISC)/$(@:b)_all.res $(APP9RESO) + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP9RESO) .ENDIF @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ $(APP9BASEX) $(APP9STACKN) -o $@ $(APP9OBJS) \ @@ -2490,76 +1902,12 @@ $(APP9TARGETN): $(APP9OBJS) $(APP9LIBS) \ .ENDIF # "$(GUI)" == "WNT" -.IF "$(GUI)" == "OS2" - @+-$(MKDIR) $(@:d:d) >& $(NULLDEV) -.IF "$(APP9LINKRES)" != "" - @+-$(RM) $(MISC)/$(APP9LINKRES:b).rc >& $(NULLDEV) -.IF "$(APP9ICON)" != "" - @-+$(WRAPCMD) echo 1 ICON $(EMQ)"$(APP9ICON)$(EMQ)" | $(SED) 'sX\\X\\\\Xg' >> $(MISC)/$(APP9LINKRES:b).rc -.ENDIF # "$(APP9ICON)" != "" -.IF "$(APP9VERINFO)" != "" - @-+echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP9LINKRES:b).rc - @-+echo $(EMQ)#include $(EMQ)"$(APP9VERINFO)$(EMQ)" >> $(MISC)/$(APP9LINKRES:b).rc -.ENDIF # "$(APP9VERINFO)" != "" - $(COMMAND_ECHO)$(RC) -r -DOS2 $(APP9PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP9LINKRES:b).rc -.ENDIF # "$(APP9LINKRES)" != "" - -.IF "$(TARGETTYPE)" == "GUI" - @echo NAME $(APP9TARGET) WINDOWAPI > $(MISC)/$(APP9TARGET).def -.ENDIF - - .IF "$(VERBOSE)" == "TRUE" - @+echo $(APP9LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP9BASEX) \ - $(APP9STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP9LINKRES) \ - $(APP9RES) \ - $(APP9DEF) \ - $(APP9OBJS) \ - $(APP9LIBS) \ - $(APP9STDLIBS:^"-l") \ - $(APP9STDLIB:^"-l") $(STDLIB9:^"-l") - .ENDIF - $(COMMAND_ECHO)$(APP9LINKER) -v \ - $(APP9LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP9BASEX) \ - $(APP9STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP9LINKRES) \ - $(APP9RES) \ - $(APP9DEF) \ - $(APP9OBJS) \ - $(APP9LIBS) \ - $(APP9STDLIBS:^"-l") \ - $(APP9STDLIB:^"-l") $(STDLIB9:^"-l") - - -.IF "$(APP9TARGET)" == "loader" - $(COMMAND_ECHO)+$(PERL) loader.pl $@ - $(COMMAND_ECHO)+$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe - $(COMMAND_ECHO)+$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $(@:d)_new.exe $(@:d)loader.exe -.ENDIF # "$(TARGET)" == "setup" - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(APP9TARGETN)"!="" # Instruction for linking # unroll begin -.IF "$(GUI)" == "OS2" && "$(TARGETTYPE)" == "GUI" -APP10DEF = $(MISC)/$(APP10TARGET).def -.ENDIF - .IF "$(APP10LINKTYPE)" != "" #must be either STATIC or SHARED APP10LINKTYPEFLAG=$(APPLINK$(APP10LINKTYPE)) @@ -2615,7 +1963,7 @@ APP10PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP10PRODUCTNAME)\" .ENDIF # "$(APP10PRODUCTNAME)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(APP10LIBS)"!="" $(MISC)/$(APP10TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -2630,16 +1978,8 @@ $(APP10TARGETN) : $(LINKINCTARGETS) # Allow for target specific LIBSALCPPRT override APP10LIBSALCPPRT*=$(LIBSALCPPRT) -.IF "$(GUI)" == "OS2" -_APP10IMP_ORD = $(APP10STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(APP10STDLIBS:^"$(LB)/") -APP10IMP_ORD = $(foreach,i,$(_APP10IMP_ORD) $(shell @-ls $i)) -.ELSE -APP10IMP_ORD = -.ENDIF - $(APP10TARGETN): $(APP10OBJS) $(APP10LIBS) \ $(APP10RES) \ - $(APP10IMP_ORD) \ $(APP10ICON) $(APP10DEPN) $(USE_APP10DEF) @echo "Making: " $(@:f) .IF "$(GUI)"=="UNX" @@ -2650,7 +1990,7 @@ $(APP10TARGETN): $(APP10OBJS) $(APP10LIBS) \ @-$(RM) $(MISC)/$(@:b).strip @echo $(STDSLO) $(APP10OBJS:s/.obj/.o/) \ `cat /dev/null $(APP10LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(APP10LINKER) $(APP10LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(APP10LINKER) $(APP10LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ $(APP10LINKTYPEFLAG) $(APP10STDLIBS) $(APP10STDLIB) $(STDLIB10) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_10.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_10.cmd` \ @@ -2703,7 +2043,7 @@ $(APP10TARGETN): $(APP10OBJS) $(APP10LIBS) \ @echo mingw .IF "$(APP10LINKRES)" != "" || "$(APP10RES)" != "" @cat $(APP10LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP10RES)) > $(MISC)/$(@:b)_all.res - windres $(MISC)/$(@:b)_all.res $(APP10RESO) + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP10RESO) .ENDIF @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ $(APP10BASEX) $(APP10STACKN) -o $@ $(APP10OBJS) \ @@ -2774,66 +2114,6 @@ $(APP10TARGETN): $(APP10OBJS) $(APP10LIBS) \ .ENDIF # "$(GUI)" == "WNT" -.IF "$(GUI)" == "OS2" - @+-$(MKDIR) $(@:d:d) >& $(NULLDEV) -.IF "$(APP10LINKRES)" != "" - @+-$(RM) $(MISC)/$(APP10LINKRES:b).rc >& $(NULLDEV) -.IF "$(APP10ICON)" != "" - @-+$(WRAPCMD) echo 1 ICON $(EMQ)"$(APP10ICON)$(EMQ)" | $(SED) 'sX\\X\\\\Xg' >> $(MISC)/$(APP10LINKRES:b).rc -.ENDIF # "$(APP10ICON)" != "" -.IF "$(APP10VERINFO)" != "" - @-+echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP10LINKRES:b).rc - @-+echo $(EMQ)#include $(EMQ)"$(APP10VERINFO)$(EMQ)" >> $(MISC)/$(APP10LINKRES:b).rc -.ENDIF # "$(APP10VERINFO)" != "" - $(COMMAND_ECHO)$(RC) -r -DOS2 $(APP10PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP10LINKRES:b).rc -.ENDIF # "$(APP10LINKRES)" != "" - -.IF "$(TARGETTYPE)" == "GUI" - @echo NAME $(APP10TARGET) WINDOWAPI > $(MISC)/$(APP10TARGET).def -.ENDIF - - .IF "$(VERBOSE)" == "TRUE" - @+echo $(APP10LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP10BASEX) \ - $(APP10STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP10LINKRES) \ - $(APP10RES) \ - $(APP10DEF) \ - $(APP10OBJS) \ - $(APP10LIBS) \ - $(APP10STDLIBS:^"-l") \ - $(APP10STDLIB:^"-l") $(STDLIB10:^"-l") - .ENDIF - $(COMMAND_ECHO)$(APP10LINKER) -v \ - $(APP10LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP10BASEX) \ - $(APP10STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP10LINKRES) \ - $(APP10RES) \ - $(APP10DEF) \ - $(APP10OBJS) \ - $(APP10LIBS) \ - $(APP10STDLIBS:^"-l") \ - $(APP10STDLIB:^"-l") $(STDLIB10:^"-l") - - -.IF "$(APP10TARGET)" == "loader" - $(COMMAND_ECHO)+$(PERL) loader.pl $@ - $(COMMAND_ECHO)+$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe - $(COMMAND_ECHO)+$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $(@:d)_new.exe $(@:d)loader.exe -.ENDIF # "$(TARGET)" == "setup" - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(APP10TARGETN)"!="" diff --git a/solenv/inc/_tg_def.mk b/solenv/inc/_tg_def.mk index cf4414ae4e1f..ea9d53ed5ea2 100644 --- a/solenv/inc/_tg_def.mk +++ b/solenv/inc/_tg_def.mk @@ -26,7 +26,7 @@ $(DEF1EXPORTFILE) : $(SHL1VERSIONMAP) $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS # Extract RTTI symbols from all the objects that will be used to build a shared library - $(COMMAND_ECHO)nm -gP $(SHL1OBJS) \ + $(COMMAND_ECHO)$(NM) -gP $(SHL1OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL1LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated @@ -36,12 +36,6 @@ $(DEF1EXPORTFILE) : $(SHL1VERSIONMAP) .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" -DEF1EXPORTFILE=$(MISC)/$(SHL1VERSIONMAP:b)_$(SHL1TARGET).dxp -$(DEF1EXPORTFILE) : $(SHL1VERSIONMAP) - $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ -.ENDIF # "$(GUI)"=="OS2" - .ENDIF # "$(DEF1EXPORTFILE)"=="" .ENDIF # "$(SHL1VERSIONMAP)"!="" @@ -163,112 +157,6 @@ $(DEF1TARGETN) .PHONY : @$(RENAME) $@.tmpfile $@ .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" - -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL1TARGET8=$(shell @fix_shl $(SHL1TARGETN:f)) - -DEF1FILTER=$(SOLARENV)/inc/dummy.flt -DEF1NAMELIST=$(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib) - -.IF "$(link_always)"=="" -$(DEF1TARGETN) : \ - $(DEF1DEPN) \ - $(DEF1EXPORTFILE) -.ELSE # "$(link_always)"=="" -$(DEF1TARGETN) .PHONY : -.ENDIF # "$(link_always)"=="" - @+-$(RM) $@.tmpfile - @echo "Making: module definition file" $(@:f) - @echo LIBRARY $(SHL1TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile - @echo DATA MULTIPLE >>$@.tmpfile - @echo DESCRIPTION 'StarView 3.00 $(DEF1DES) $(UPD) $(UPDMINOR)' >>$@.tmpfile - @echo EXPORTS >>$@.tmpfile -.IF "$(VERSIONOBJ)"!="" -# getversioninfo fuer alle!! - @echo _GetVersionInfo >$@.tmp_ord -.ENDIF - -.IF "$(DEFLIB1NAME)"!="" - @+echo $(SLB)/$(DEFLIB1NAME).lib - @+emxexpr $(DEF1NAMELIST) | fix_exp_file >> $@.tmp_ord -.ENDIF # "$(DEFLIB1NAME)"!="" - -.IF "$(DEF1EXPORT1)"!="" - @echo $(DEF1EXPORT1) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT2)"!="" - @echo $(DEF1EXPORT2) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT3)"!="" - @echo $(DEF1EXPORT3) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT4)"!="" - @echo $(DEF1EXPORT4) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT5)"!="" - @echo $(DEF1EXPORT5) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT6)"!="" - @echo $(DEF1EXPORT6) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT7)"!="" - @echo $(DEF1EXPORT7) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT8)"!="" - @echo $(DEF1EXPORT8) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT9)"!="" - @echo $(DEF1EXPORT9) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT10)"!="" - @echo $(DEF1EXPORT10) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT11)"!="" - @echo $(DEF1EXPORT11) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT12)"!="" - @echo $(DEF1EXPORT12) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT13)"!="" - @echo $(DEF1EXPORT13) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT14)"!="" - @echo $(DEF1EXPORT14) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT15)"!="" - @echo $(DEF1EXPORT15) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT16)"!="" - @echo $(DEF1EXPORT16) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT17)"!="" - @echo $(DEF1EXPORT17) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT18)"!="" - @echo $(DEF1EXPORT18) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT19)"!="" - @echo $(DEF1EXPORT19) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORT20)"!="" - @echo $(DEF1EXPORT20) >>$@.tmpfile -.ENDIF -.IF "$(DEF1EXPORTFILE)"!="" - @fix_def_file < $(DEF1EXPORTFILE) >> $@.tmp_ord -.ENDIF - @sort < $@.tmp_ord | uniq > $@.exptmpfile - @fix_def_ord < $@.exptmpfile >> $@.tmpfile - @+-$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ - @+-$(RM) $@.tmp_ord - @+-$(RM) $@.exptmpfile - $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL1IMPLIBN:s/.lib/.a/) $@ - $(COMMAND_ECHO)+emxomf -o $(SHL1IMPLIBN) $(SHL1IMPLIBN:s/.lib/.a/) - -.ENDIF # "$(GUI)"=="OS2" - .IF "$(GUI)"=="UNX" $(DEF1TARGETN): \ $(DEF1DEPN) \ @@ -307,7 +195,7 @@ $(DEF2EXPORTFILE) : $(SHL2VERSIONMAP) $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS # Extract RTTI symbols from all the objects that will be used to build a shared library - $(COMMAND_ECHO)nm -gP $(SHL2OBJS) \ + $(COMMAND_ECHO)$(NM) -gP $(SHL2OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL2LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated @@ -317,12 +205,6 @@ $(DEF2EXPORTFILE) : $(SHL2VERSIONMAP) .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" -DEF2EXPORTFILE=$(MISC)/$(SHL2VERSIONMAP:b)_$(SHL2TARGET).dxp -$(DEF2EXPORTFILE) : $(SHL2VERSIONMAP) - $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ -.ENDIF # "$(GUI)"=="OS2" - .ENDIF # "$(DEF2EXPORTFILE)"=="" .ENDIF # "$(SHL2VERSIONMAP)"!="" @@ -444,112 +326,6 @@ $(DEF2TARGETN) .PHONY : @$(RENAME) $@.tmpfile $@ .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" - -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL2TARGET8=$(shell @fix_shl $(SHL2TARGETN:f)) - -DEF2FILTER=$(SOLARENV)/inc/dummy.flt -DEF2NAMELIST=$(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib) - -.IF "$(link_always)"=="" -$(DEF2TARGETN) : \ - $(DEF2DEPN) \ - $(DEF2EXPORTFILE) -.ELSE # "$(link_always)"=="" -$(DEF2TARGETN) .PHONY : -.ENDIF # "$(link_always)"=="" - @+-$(RM) $@.tmpfile - @echo "Making: module definition file" $(@:f) - @echo LIBRARY $(SHL2TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile - @echo DATA MULTIPLE >>$@.tmpfile - @echo DESCRIPTION 'StarView 3.00 $(DEF2DES) $(UPD) $(UPDMINOR)' >>$@.tmpfile - @echo EXPORTS >>$@.tmpfile -.IF "$(VERSIONOBJ)"!="" -# getversioninfo fuer alle!! - @echo _GetVersionInfo >$@.tmp_ord -.ENDIF - -.IF "$(DEFLIB2NAME)"!="" - @+echo $(SLB)/$(DEFLIB2NAME).lib - @+emxexpr $(DEF2NAMELIST) | fix_exp_file >> $@.tmp_ord -.ENDIF # "$(DEFLIB2NAME)"!="" - -.IF "$(DEF2EXPORT1)"!="" - @echo $(DEF2EXPORT1) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT2)"!="" - @echo $(DEF2EXPORT2) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT3)"!="" - @echo $(DEF2EXPORT3) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT4)"!="" - @echo $(DEF2EXPORT4) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT5)"!="" - @echo $(DEF2EXPORT5) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT6)"!="" - @echo $(DEF2EXPORT6) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT7)"!="" - @echo $(DEF2EXPORT7) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT8)"!="" - @echo $(DEF2EXPORT8) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT9)"!="" - @echo $(DEF2EXPORT9) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT10)"!="" - @echo $(DEF2EXPORT10) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT11)"!="" - @echo $(DEF2EXPORT11) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT12)"!="" - @echo $(DEF2EXPORT12) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT13)"!="" - @echo $(DEF2EXPORT13) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT14)"!="" - @echo $(DEF2EXPORT14) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT15)"!="" - @echo $(DEF2EXPORT15) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT16)"!="" - @echo $(DEF2EXPORT16) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT17)"!="" - @echo $(DEF2EXPORT17) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT18)"!="" - @echo $(DEF2EXPORT18) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT19)"!="" - @echo $(DEF2EXPORT19) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORT20)"!="" - @echo $(DEF2EXPORT20) >>$@.tmpfile -.ENDIF -.IF "$(DEF2EXPORTFILE)"!="" - @fix_def_file < $(DEF2EXPORTFILE) >> $@.tmp_ord -.ENDIF - @sort < $@.tmp_ord | uniq > $@.exptmpfile - @fix_def_ord < $@.exptmpfile >> $@.tmpfile - @+-$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ - @+-$(RM) $@.tmp_ord - @+-$(RM) $@.exptmpfile - $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL2IMPLIBN:s/.lib/.a/) $@ - $(COMMAND_ECHO)+emxomf -o $(SHL2IMPLIBN) $(SHL2IMPLIBN:s/.lib/.a/) - -.ENDIF # "$(GUI)"=="OS2" - .IF "$(GUI)"=="UNX" $(DEF2TARGETN): \ $(DEF2DEPN) \ @@ -588,7 +364,7 @@ $(DEF3EXPORTFILE) : $(SHL3VERSIONMAP) $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS # Extract RTTI symbols from all the objects that will be used to build a shared library - $(COMMAND_ECHO)nm -gP $(SHL3OBJS) \ + $(COMMAND_ECHO)$(NM) -gP $(SHL3OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL3LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated @@ -598,12 +374,6 @@ $(DEF3EXPORTFILE) : $(SHL3VERSIONMAP) .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" -DEF3EXPORTFILE=$(MISC)/$(SHL3VERSIONMAP:b)_$(SHL3TARGET).dxp -$(DEF3EXPORTFILE) : $(SHL3VERSIONMAP) - $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ -.ENDIF # "$(GUI)"=="OS2" - .ENDIF # "$(DEF3EXPORTFILE)"=="" .ENDIF # "$(SHL3VERSIONMAP)"!="" @@ -725,112 +495,6 @@ $(DEF3TARGETN) .PHONY : @$(RENAME) $@.tmpfile $@ .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" - -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL3TARGET8=$(shell @fix_shl $(SHL3TARGETN:f)) - -DEF3FILTER=$(SOLARENV)/inc/dummy.flt -DEF3NAMELIST=$(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib) - -.IF "$(link_always)"=="" -$(DEF3TARGETN) : \ - $(DEF3DEPN) \ - $(DEF3EXPORTFILE) -.ELSE # "$(link_always)"=="" -$(DEF3TARGETN) .PHONY : -.ENDIF # "$(link_always)"=="" - @+-$(RM) $@.tmpfile - @echo "Making: module definition file" $(@:f) - @echo LIBRARY $(SHL3TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile - @echo DATA MULTIPLE >>$@.tmpfile - @echo DESCRIPTION 'StarView 3.00 $(DEF3DES) $(UPD) $(UPDMINOR)' >>$@.tmpfile - @echo EXPORTS >>$@.tmpfile -.IF "$(VERSIONOBJ)"!="" -# getversioninfo fuer alle!! - @echo _GetVersionInfo >$@.tmp_ord -.ENDIF - -.IF "$(DEFLIB3NAME)"!="" - @+echo $(SLB)/$(DEFLIB3NAME).lib - @+emxexpr $(DEF3NAMELIST) | fix_exp_file >> $@.tmp_ord -.ENDIF # "$(DEFLIB3NAME)"!="" - -.IF "$(DEF3EXPORT1)"!="" - @echo $(DEF3EXPORT1) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT2)"!="" - @echo $(DEF3EXPORT2) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT3)"!="" - @echo $(DEF3EXPORT3) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT4)"!="" - @echo $(DEF3EXPORT4) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT5)"!="" - @echo $(DEF3EXPORT5) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT6)"!="" - @echo $(DEF3EXPORT6) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT7)"!="" - @echo $(DEF3EXPORT7) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT8)"!="" - @echo $(DEF3EXPORT8) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT9)"!="" - @echo $(DEF3EXPORT9) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT10)"!="" - @echo $(DEF3EXPORT10) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT11)"!="" - @echo $(DEF3EXPORT11) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT12)"!="" - @echo $(DEF3EXPORT12) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT13)"!="" - @echo $(DEF3EXPORT13) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT14)"!="" - @echo $(DEF3EXPORT14) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT15)"!="" - @echo $(DEF3EXPORT15) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT16)"!="" - @echo $(DEF3EXPORT16) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT17)"!="" - @echo $(DEF3EXPORT17) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT18)"!="" - @echo $(DEF3EXPORT18) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT19)"!="" - @echo $(DEF3EXPORT19) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORT20)"!="" - @echo $(DEF3EXPORT20) >>$@.tmpfile -.ENDIF -.IF "$(DEF3EXPORTFILE)"!="" - @fix_def_file < $(DEF3EXPORTFILE) >> $@.tmp_ord -.ENDIF - @sort < $@.tmp_ord | uniq > $@.exptmpfile - @fix_def_ord < $@.exptmpfile >> $@.tmpfile - @+-$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ - @+-$(RM) $@.tmp_ord - @+-$(RM) $@.exptmpfile - $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL3IMPLIBN:s/.lib/.a/) $@ - $(COMMAND_ECHO)+emxomf -o $(SHL3IMPLIBN) $(SHL3IMPLIBN:s/.lib/.a/) - -.ENDIF # "$(GUI)"=="OS2" - .IF "$(GUI)"=="UNX" $(DEF3TARGETN): \ $(DEF3DEPN) \ @@ -869,7 +533,7 @@ $(DEF4EXPORTFILE) : $(SHL4VERSIONMAP) $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS # Extract RTTI symbols from all the objects that will be used to build a shared library - $(COMMAND_ECHO)nm -gP $(SHL4OBJS) \ + $(COMMAND_ECHO)$(NM) -gP $(SHL4OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL4LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated @@ -879,12 +543,6 @@ $(DEF4EXPORTFILE) : $(SHL4VERSIONMAP) .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" -DEF4EXPORTFILE=$(MISC)/$(SHL4VERSIONMAP:b)_$(SHL4TARGET).dxp -$(DEF4EXPORTFILE) : $(SHL4VERSIONMAP) - $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ -.ENDIF # "$(GUI)"=="OS2" - .ENDIF # "$(DEF4EXPORTFILE)"=="" .ENDIF # "$(SHL4VERSIONMAP)"!="" @@ -1006,112 +664,6 @@ $(DEF4TARGETN) .PHONY : @$(RENAME) $@.tmpfile $@ .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" - -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL4TARGET8=$(shell @fix_shl $(SHL4TARGETN:f)) - -DEF4FILTER=$(SOLARENV)/inc/dummy.flt -DEF4NAMELIST=$(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib) - -.IF "$(link_always)"=="" -$(DEF4TARGETN) : \ - $(DEF4DEPN) \ - $(DEF4EXPORTFILE) -.ELSE # "$(link_always)"=="" -$(DEF4TARGETN) .PHONY : -.ENDIF # "$(link_always)"=="" - @+-$(RM) $@.tmpfile - @echo "Making: module definition file" $(@:f) - @echo LIBRARY $(SHL4TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile - @echo DATA MULTIPLE >>$@.tmpfile - @echo DESCRIPTION 'StarView 3.00 $(DEF4DES) $(UPD) $(UPDMINOR)' >>$@.tmpfile - @echo EXPORTS >>$@.tmpfile -.IF "$(VERSIONOBJ)"!="" -# getversioninfo fuer alle!! - @echo _GetVersionInfo >$@.tmp_ord -.ENDIF - -.IF "$(DEFLIB4NAME)"!="" - @+echo $(SLB)/$(DEFLIB4NAME).lib - @+emxexpr $(DEF4NAMELIST) | fix_exp_file >> $@.tmp_ord -.ENDIF # "$(DEFLIB4NAME)"!="" - -.IF "$(DEF4EXPORT1)"!="" - @echo $(DEF4EXPORT1) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT2)"!="" - @echo $(DEF4EXPORT2) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT3)"!="" - @echo $(DEF4EXPORT3) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT4)"!="" - @echo $(DEF4EXPORT4) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT5)"!="" - @echo $(DEF4EXPORT5) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT6)"!="" - @echo $(DEF4EXPORT6) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT7)"!="" - @echo $(DEF4EXPORT7) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT8)"!="" - @echo $(DEF4EXPORT8) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT9)"!="" - @echo $(DEF4EXPORT9) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT10)"!="" - @echo $(DEF4EXPORT10) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT11)"!="" - @echo $(DEF4EXPORT11) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT12)"!="" - @echo $(DEF4EXPORT12) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT13)"!="" - @echo $(DEF4EXPORT13) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT14)"!="" - @echo $(DEF4EXPORT14) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT15)"!="" - @echo $(DEF4EXPORT15) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT16)"!="" - @echo $(DEF4EXPORT16) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT17)"!="" - @echo $(DEF4EXPORT17) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT18)"!="" - @echo $(DEF4EXPORT18) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT19)"!="" - @echo $(DEF4EXPORT19) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORT20)"!="" - @echo $(DEF4EXPORT20) >>$@.tmpfile -.ENDIF -.IF "$(DEF4EXPORTFILE)"!="" - @fix_def_file < $(DEF4EXPORTFILE) >> $@.tmp_ord -.ENDIF - @sort < $@.tmp_ord | uniq > $@.exptmpfile - @fix_def_ord < $@.exptmpfile >> $@.tmpfile - @+-$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ - @+-$(RM) $@.tmp_ord - @+-$(RM) $@.exptmpfile - $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL4IMPLIBN:s/.lib/.a/) $@ - $(COMMAND_ECHO)+emxomf -o $(SHL4IMPLIBN) $(SHL4IMPLIBN:s/.lib/.a/) - -.ENDIF # "$(GUI)"=="OS2" - .IF "$(GUI)"=="UNX" $(DEF4TARGETN): \ $(DEF4DEPN) \ @@ -1150,7 +702,7 @@ $(DEF5EXPORTFILE) : $(SHL5VERSIONMAP) $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS # Extract RTTI symbols from all the objects that will be used to build a shared library - $(COMMAND_ECHO)nm -gP $(SHL5OBJS) \ + $(COMMAND_ECHO)$(NM) -gP $(SHL5OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL5LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated @@ -1160,12 +712,6 @@ $(DEF5EXPORTFILE) : $(SHL5VERSIONMAP) .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" -DEF5EXPORTFILE=$(MISC)/$(SHL5VERSIONMAP:b)_$(SHL5TARGET).dxp -$(DEF5EXPORTFILE) : $(SHL5VERSIONMAP) - $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ -.ENDIF # "$(GUI)"=="OS2" - .ENDIF # "$(DEF5EXPORTFILE)"=="" .ENDIF # "$(SHL5VERSIONMAP)"!="" @@ -1287,112 +833,6 @@ $(DEF5TARGETN) .PHONY : @$(RENAME) $@.tmpfile $@ .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" - -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL5TARGET8=$(shell @fix_shl $(SHL5TARGETN:f)) - -DEF5FILTER=$(SOLARENV)/inc/dummy.flt -DEF5NAMELIST=$(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib) - -.IF "$(link_always)"=="" -$(DEF5TARGETN) : \ - $(DEF5DEPN) \ - $(DEF5EXPORTFILE) -.ELSE # "$(link_always)"=="" -$(DEF5TARGETN) .PHONY : -.ENDIF # "$(link_always)"=="" - @+-$(RM) $@.tmpfile - @echo "Making: module definition file" $(@:f) - @echo LIBRARY $(SHL5TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile - @echo DATA MULTIPLE >>$@.tmpfile - @echo DESCRIPTION 'StarView 3.00 $(DEF5DES) $(UPD) $(UPDMINOR)' >>$@.tmpfile - @echo EXPORTS >>$@.tmpfile -.IF "$(VERSIONOBJ)"!="" -# getversioninfo fuer alle!! - @echo _GetVersionInfo >$@.tmp_ord -.ENDIF - -.IF "$(DEFLIB5NAME)"!="" - @+echo $(SLB)/$(DEFLIB5NAME).lib - @+emxexpr $(DEF5NAMELIST) | fix_exp_file >> $@.tmp_ord -.ENDIF # "$(DEFLIB5NAME)"!="" - -.IF "$(DEF5EXPORT1)"!="" - @echo $(DEF5EXPORT1) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT2)"!="" - @echo $(DEF5EXPORT2) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT3)"!="" - @echo $(DEF5EXPORT3) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT4)"!="" - @echo $(DEF5EXPORT4) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT5)"!="" - @echo $(DEF5EXPORT5) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT6)"!="" - @echo $(DEF5EXPORT6) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT7)"!="" - @echo $(DEF5EXPORT7) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT8)"!="" - @echo $(DEF5EXPORT8) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT9)"!="" - @echo $(DEF5EXPORT9) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT10)"!="" - @echo $(DEF5EXPORT10) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT11)"!="" - @echo $(DEF5EXPORT11) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT12)"!="" - @echo $(DEF5EXPORT12) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT13)"!="" - @echo $(DEF5EXPORT13) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT14)"!="" - @echo $(DEF5EXPORT14) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT15)"!="" - @echo $(DEF5EXPORT15) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT16)"!="" - @echo $(DEF5EXPORT16) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT17)"!="" - @echo $(DEF5EXPORT17) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT18)"!="" - @echo $(DEF5EXPORT18) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT19)"!="" - @echo $(DEF5EXPORT19) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORT20)"!="" - @echo $(DEF5EXPORT20) >>$@.tmpfile -.ENDIF -.IF "$(DEF5EXPORTFILE)"!="" - @fix_def_file < $(DEF5EXPORTFILE) >> $@.tmp_ord -.ENDIF - @sort < $@.tmp_ord | uniq > $@.exptmpfile - @fix_def_ord < $@.exptmpfile >> $@.tmpfile - @+-$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ - @+-$(RM) $@.tmp_ord - @+-$(RM) $@.exptmpfile - $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL5IMPLIBN:s/.lib/.a/) $@ - $(COMMAND_ECHO)+emxomf -o $(SHL5IMPLIBN) $(SHL5IMPLIBN:s/.lib/.a/) - -.ENDIF # "$(GUI)"=="OS2" - .IF "$(GUI)"=="UNX" $(DEF5TARGETN): \ $(DEF5DEPN) \ @@ -1431,7 +871,7 @@ $(DEF6EXPORTFILE) : $(SHL6VERSIONMAP) $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS # Extract RTTI symbols from all the objects that will be used to build a shared library - $(COMMAND_ECHO)nm -gP $(SHL6OBJS) \ + $(COMMAND_ECHO)$(NM) -gP $(SHL6OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL6LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated @@ -1441,12 +881,6 @@ $(DEF6EXPORTFILE) : $(SHL6VERSIONMAP) .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" -DEF6EXPORTFILE=$(MISC)/$(SHL6VERSIONMAP:b)_$(SHL6TARGET).dxp -$(DEF6EXPORTFILE) : $(SHL6VERSIONMAP) - $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ -.ENDIF # "$(GUI)"=="OS2" - .ENDIF # "$(DEF6EXPORTFILE)"=="" .ENDIF # "$(SHL6VERSIONMAP)"!="" @@ -1568,112 +1002,6 @@ $(DEF6TARGETN) .PHONY : @$(RENAME) $@.tmpfile $@ .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" - -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL6TARGET8=$(shell @fix_shl $(SHL6TARGETN:f)) - -DEF6FILTER=$(SOLARENV)/inc/dummy.flt -DEF6NAMELIST=$(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib) - -.IF "$(link_always)"=="" -$(DEF6TARGETN) : \ - $(DEF6DEPN) \ - $(DEF6EXPORTFILE) -.ELSE # "$(link_always)"=="" -$(DEF6TARGETN) .PHONY : -.ENDIF # "$(link_always)"=="" - @+-$(RM) $@.tmpfile - @echo "Making: module definition file" $(@:f) - @echo LIBRARY $(SHL6TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile - @echo DATA MULTIPLE >>$@.tmpfile - @echo DESCRIPTION 'StarView 3.00 $(DEF6DES) $(UPD) $(UPDMINOR)' >>$@.tmpfile - @echo EXPORTS >>$@.tmpfile -.IF "$(VERSIONOBJ)"!="" -# getversioninfo fuer alle!! - @echo _GetVersionInfo >$@.tmp_ord -.ENDIF - -.IF "$(DEFLIB6NAME)"!="" - @+echo $(SLB)/$(DEFLIB6NAME).lib - @+emxexpr $(DEF6NAMELIST) | fix_exp_file >> $@.tmp_ord -.ENDIF # "$(DEFLIB6NAME)"!="" - -.IF "$(DEF6EXPORT1)"!="" - @echo $(DEF6EXPORT1) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT2)"!="" - @echo $(DEF6EXPORT2) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT3)"!="" - @echo $(DEF6EXPORT3) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT4)"!="" - @echo $(DEF6EXPORT4) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT5)"!="" - @echo $(DEF6EXPORT5) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT6)"!="" - @echo $(DEF6EXPORT6) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT7)"!="" - @echo $(DEF6EXPORT7) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT8)"!="" - @echo $(DEF6EXPORT8) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT9)"!="" - @echo $(DEF6EXPORT9) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT10)"!="" - @echo $(DEF6EXPORT10) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT11)"!="" - @echo $(DEF6EXPORT11) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT12)"!="" - @echo $(DEF6EXPORT12) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT13)"!="" - @echo $(DEF6EXPORT13) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT14)"!="" - @echo $(DEF6EXPORT14) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT15)"!="" - @echo $(DEF6EXPORT15) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT16)"!="" - @echo $(DEF6EXPORT16) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT17)"!="" - @echo $(DEF6EXPORT17) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT18)"!="" - @echo $(DEF6EXPORT18) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT19)"!="" - @echo $(DEF6EXPORT19) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORT20)"!="" - @echo $(DEF6EXPORT20) >>$@.tmpfile -.ENDIF -.IF "$(DEF6EXPORTFILE)"!="" - @fix_def_file < $(DEF6EXPORTFILE) >> $@.tmp_ord -.ENDIF - @sort < $@.tmp_ord | uniq > $@.exptmpfile - @fix_def_ord < $@.exptmpfile >> $@.tmpfile - @+-$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ - @+-$(RM) $@.tmp_ord - @+-$(RM) $@.exptmpfile - $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL6IMPLIBN:s/.lib/.a/) $@ - $(COMMAND_ECHO)+emxomf -o $(SHL6IMPLIBN) $(SHL6IMPLIBN:s/.lib/.a/) - -.ENDIF # "$(GUI)"=="OS2" - .IF "$(GUI)"=="UNX" $(DEF6TARGETN): \ $(DEF6DEPN) \ @@ -1712,7 +1040,7 @@ $(DEF7EXPORTFILE) : $(SHL7VERSIONMAP) $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS # Extract RTTI symbols from all the objects that will be used to build a shared library - $(COMMAND_ECHO)nm -gP $(SHL7OBJS) \ + $(COMMAND_ECHO)$(NM) -gP $(SHL7OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL7LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated @@ -1722,12 +1050,6 @@ $(DEF7EXPORTFILE) : $(SHL7VERSIONMAP) .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" -DEF7EXPORTFILE=$(MISC)/$(SHL7VERSIONMAP:b)_$(SHL7TARGET).dxp -$(DEF7EXPORTFILE) : $(SHL7VERSIONMAP) - $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ -.ENDIF # "$(GUI)"=="OS2" - .ENDIF # "$(DEF7EXPORTFILE)"=="" .ENDIF # "$(SHL7VERSIONMAP)"!="" @@ -1849,112 +1171,6 @@ $(DEF7TARGETN) .PHONY : @$(RENAME) $@.tmpfile $@ .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" - -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL7TARGET8=$(shell @fix_shl $(SHL7TARGETN:f)) - -DEF7FILTER=$(SOLARENV)/inc/dummy.flt -DEF7NAMELIST=$(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib) - -.IF "$(link_always)"=="" -$(DEF7TARGETN) : \ - $(DEF7DEPN) \ - $(DEF7EXPORTFILE) -.ELSE # "$(link_always)"=="" -$(DEF7TARGETN) .PHONY : -.ENDIF # "$(link_always)"=="" - @+-$(RM) $@.tmpfile - @echo "Making: module definition file" $(@:f) - @echo LIBRARY $(SHL7TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile - @echo DATA MULTIPLE >>$@.tmpfile - @echo DESCRIPTION 'StarView 3.00 $(DEF7DES) $(UPD) $(UPDMINOR)' >>$@.tmpfile - @echo EXPORTS >>$@.tmpfile -.IF "$(VERSIONOBJ)"!="" -# getversioninfo fuer alle!! - @echo _GetVersionInfo >$@.tmp_ord -.ENDIF - -.IF "$(DEFLIB7NAME)"!="" - @+echo $(SLB)/$(DEFLIB7NAME).lib - @+emxexpr $(DEF7NAMELIST) | fix_exp_file >> $@.tmp_ord -.ENDIF # "$(DEFLIB7NAME)"!="" - -.IF "$(DEF7EXPORT1)"!="" - @echo $(DEF7EXPORT1) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT2)"!="" - @echo $(DEF7EXPORT2) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT3)"!="" - @echo $(DEF7EXPORT3) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT4)"!="" - @echo $(DEF7EXPORT4) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT5)"!="" - @echo $(DEF7EXPORT5) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT6)"!="" - @echo $(DEF7EXPORT6) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT7)"!="" - @echo $(DEF7EXPORT7) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT8)"!="" - @echo $(DEF7EXPORT8) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT9)"!="" - @echo $(DEF7EXPORT9) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT10)"!="" - @echo $(DEF7EXPORT10) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT11)"!="" - @echo $(DEF7EXPORT11) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT12)"!="" - @echo $(DEF7EXPORT12) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT13)"!="" - @echo $(DEF7EXPORT13) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT14)"!="" - @echo $(DEF7EXPORT14) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT15)"!="" - @echo $(DEF7EXPORT15) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT16)"!="" - @echo $(DEF7EXPORT16) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT17)"!="" - @echo $(DEF7EXPORT17) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT18)"!="" - @echo $(DEF7EXPORT18) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT19)"!="" - @echo $(DEF7EXPORT19) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORT20)"!="" - @echo $(DEF7EXPORT20) >>$@.tmpfile -.ENDIF -.IF "$(DEF7EXPORTFILE)"!="" - @fix_def_file < $(DEF7EXPORTFILE) >> $@.tmp_ord -.ENDIF - @sort < $@.tmp_ord | uniq > $@.exptmpfile - @fix_def_ord < $@.exptmpfile >> $@.tmpfile - @+-$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ - @+-$(RM) $@.tmp_ord - @+-$(RM) $@.exptmpfile - $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL7IMPLIBN:s/.lib/.a/) $@ - $(COMMAND_ECHO)+emxomf -o $(SHL7IMPLIBN) $(SHL7IMPLIBN:s/.lib/.a/) - -.ENDIF # "$(GUI)"=="OS2" - .IF "$(GUI)"=="UNX" $(DEF7TARGETN): \ $(DEF7DEPN) \ @@ -1993,7 +1209,7 @@ $(DEF8EXPORTFILE) : $(SHL8VERSIONMAP) $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS # Extract RTTI symbols from all the objects that will be used to build a shared library - $(COMMAND_ECHO)nm -gP $(SHL8OBJS) \ + $(COMMAND_ECHO)$(NM) -gP $(SHL8OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL8LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated @@ -2003,12 +1219,6 @@ $(DEF8EXPORTFILE) : $(SHL8VERSIONMAP) .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" -DEF8EXPORTFILE=$(MISC)/$(SHL8VERSIONMAP:b)_$(SHL8TARGET).dxp -$(DEF8EXPORTFILE) : $(SHL8VERSIONMAP) - $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ -.ENDIF # "$(GUI)"=="OS2" - .ENDIF # "$(DEF8EXPORTFILE)"=="" .ENDIF # "$(SHL8VERSIONMAP)"!="" @@ -2130,112 +1340,6 @@ $(DEF8TARGETN) .PHONY : @$(RENAME) $@.tmpfile $@ .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" - -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL8TARGET8=$(shell @fix_shl $(SHL8TARGETN:f)) - -DEF8FILTER=$(SOLARENV)/inc/dummy.flt -DEF8NAMELIST=$(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib) - -.IF "$(link_always)"=="" -$(DEF8TARGETN) : \ - $(DEF8DEPN) \ - $(DEF8EXPORTFILE) -.ELSE # "$(link_always)"=="" -$(DEF8TARGETN) .PHONY : -.ENDIF # "$(link_always)"=="" - @+-$(RM) $@.tmpfile - @echo "Making: module definition file" $(@:f) - @echo LIBRARY $(SHL8TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile - @echo DATA MULTIPLE >>$@.tmpfile - @echo DESCRIPTION 'StarView 3.00 $(DEF8DES) $(UPD) $(UPDMINOR)' >>$@.tmpfile - @echo EXPORTS >>$@.tmpfile -.IF "$(VERSIONOBJ)"!="" -# getversioninfo fuer alle!! - @echo _GetVersionInfo >$@.tmp_ord -.ENDIF - -.IF "$(DEFLIB8NAME)"!="" - @+echo $(SLB)/$(DEFLIB8NAME).lib - @+emxexpr $(DEF8NAMELIST) | fix_exp_file >> $@.tmp_ord -.ENDIF # "$(DEFLIB8NAME)"!="" - -.IF "$(DEF8EXPORT1)"!="" - @echo $(DEF8EXPORT1) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT2)"!="" - @echo $(DEF8EXPORT2) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT3)"!="" - @echo $(DEF8EXPORT3) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT4)"!="" - @echo $(DEF8EXPORT4) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT5)"!="" - @echo $(DEF8EXPORT5) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT6)"!="" - @echo $(DEF8EXPORT6) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT7)"!="" - @echo $(DEF8EXPORT7) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT8)"!="" - @echo $(DEF8EXPORT8) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT9)"!="" - @echo $(DEF8EXPORT9) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT10)"!="" - @echo $(DEF8EXPORT10) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT11)"!="" - @echo $(DEF8EXPORT11) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT12)"!="" - @echo $(DEF8EXPORT12) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT13)"!="" - @echo $(DEF8EXPORT13) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT14)"!="" - @echo $(DEF8EXPORT14) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT15)"!="" - @echo $(DEF8EXPORT15) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT16)"!="" - @echo $(DEF8EXPORT16) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT17)"!="" - @echo $(DEF8EXPORT17) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT18)"!="" - @echo $(DEF8EXPORT18) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT19)"!="" - @echo $(DEF8EXPORT19) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORT20)"!="" - @echo $(DEF8EXPORT20) >>$@.tmpfile -.ENDIF -.IF "$(DEF8EXPORTFILE)"!="" - @fix_def_file < $(DEF8EXPORTFILE) >> $@.tmp_ord -.ENDIF - @sort < $@.tmp_ord | uniq > $@.exptmpfile - @fix_def_ord < $@.exptmpfile >> $@.tmpfile - @+-$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ - @+-$(RM) $@.tmp_ord - @+-$(RM) $@.exptmpfile - $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL8IMPLIBN:s/.lib/.a/) $@ - $(COMMAND_ECHO)+emxomf -o $(SHL8IMPLIBN) $(SHL8IMPLIBN:s/.lib/.a/) - -.ENDIF # "$(GUI)"=="OS2" - .IF "$(GUI)"=="UNX" $(DEF8TARGETN): \ $(DEF8DEPN) \ @@ -2274,7 +1378,7 @@ $(DEF9EXPORTFILE) : $(SHL9VERSIONMAP) $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS # Extract RTTI symbols from all the objects that will be used to build a shared library - $(COMMAND_ECHO)nm -gP $(SHL9OBJS) \ + $(COMMAND_ECHO)$(NM) -gP $(SHL9OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL9LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated @@ -2284,12 +1388,6 @@ $(DEF9EXPORTFILE) : $(SHL9VERSIONMAP) .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" -DEF9EXPORTFILE=$(MISC)/$(SHL9VERSIONMAP:b)_$(SHL9TARGET).dxp -$(DEF9EXPORTFILE) : $(SHL9VERSIONMAP) - $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ -.ENDIF # "$(GUI)"=="OS2" - .ENDIF # "$(DEF9EXPORTFILE)"=="" .ENDIF # "$(SHL9VERSIONMAP)"!="" @@ -2411,112 +1509,6 @@ $(DEF9TARGETN) .PHONY : @$(RENAME) $@.tmpfile $@ .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" - -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL9TARGET8=$(shell @fix_shl $(SHL9TARGETN:f)) - -DEF9FILTER=$(SOLARENV)/inc/dummy.flt -DEF9NAMELIST=$(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib) - -.IF "$(link_always)"=="" -$(DEF9TARGETN) : \ - $(DEF9DEPN) \ - $(DEF9EXPORTFILE) -.ELSE # "$(link_always)"=="" -$(DEF9TARGETN) .PHONY : -.ENDIF # "$(link_always)"=="" - @+-$(RM) $@.tmpfile - @echo "Making: module definition file" $(@:f) - @echo LIBRARY $(SHL9TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile - @echo DATA MULTIPLE >>$@.tmpfile - @echo DESCRIPTION 'StarView 3.00 $(DEF9DES) $(UPD) $(UPDMINOR)' >>$@.tmpfile - @echo EXPORTS >>$@.tmpfile -.IF "$(VERSIONOBJ)"!="" -# getversioninfo fuer alle!! - @echo _GetVersionInfo >$@.tmp_ord -.ENDIF - -.IF "$(DEFLIB9NAME)"!="" - @+echo $(SLB)/$(DEFLIB9NAME).lib - @+emxexpr $(DEF9NAMELIST) | fix_exp_file >> $@.tmp_ord -.ENDIF # "$(DEFLIB9NAME)"!="" - -.IF "$(DEF9EXPORT1)"!="" - @echo $(DEF9EXPORT1) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT2)"!="" - @echo $(DEF9EXPORT2) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT3)"!="" - @echo $(DEF9EXPORT3) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT4)"!="" - @echo $(DEF9EXPORT4) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT5)"!="" - @echo $(DEF9EXPORT5) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT6)"!="" - @echo $(DEF9EXPORT6) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT7)"!="" - @echo $(DEF9EXPORT7) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT8)"!="" - @echo $(DEF9EXPORT8) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT9)"!="" - @echo $(DEF9EXPORT9) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT10)"!="" - @echo $(DEF9EXPORT10) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT11)"!="" - @echo $(DEF9EXPORT11) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT12)"!="" - @echo $(DEF9EXPORT12) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT13)"!="" - @echo $(DEF9EXPORT13) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT14)"!="" - @echo $(DEF9EXPORT14) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT15)"!="" - @echo $(DEF9EXPORT15) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT16)"!="" - @echo $(DEF9EXPORT16) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT17)"!="" - @echo $(DEF9EXPORT17) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT18)"!="" - @echo $(DEF9EXPORT18) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT19)"!="" - @echo $(DEF9EXPORT19) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORT20)"!="" - @echo $(DEF9EXPORT20) >>$@.tmpfile -.ENDIF -.IF "$(DEF9EXPORTFILE)"!="" - @fix_def_file < $(DEF9EXPORTFILE) >> $@.tmp_ord -.ENDIF - @sort < $@.tmp_ord | uniq > $@.exptmpfile - @fix_def_ord < $@.exptmpfile >> $@.tmpfile - @+-$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ - @+-$(RM) $@.tmp_ord - @+-$(RM) $@.exptmpfile - $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL9IMPLIBN:s/.lib/.a/) $@ - $(COMMAND_ECHO)+emxomf -o $(SHL9IMPLIBN) $(SHL9IMPLIBN:s/.lib/.a/) - -.ENDIF # "$(GUI)"=="OS2" - .IF "$(GUI)"=="UNX" $(DEF9TARGETN): \ $(DEF9DEPN) \ @@ -2555,7 +1547,7 @@ $(DEF10EXPORTFILE) : $(SHL10VERSIONMAP) $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS # Extract RTTI symbols from all the objects that will be used to build a shared library - $(COMMAND_ECHO)nm -gP $(SHL10OBJS) \ + $(COMMAND_ECHO)$(NM) -gP $(SHL10OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL10LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated @@ -2565,12 +1557,6 @@ $(DEF10EXPORTFILE) : $(SHL10VERSIONMAP) .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" -DEF10EXPORTFILE=$(MISC)/$(SHL10VERSIONMAP:b)_$(SHL10TARGET).dxp -$(DEF10EXPORTFILE) : $(SHL10VERSIONMAP) - $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ -.ENDIF # "$(GUI)"=="OS2" - .ENDIF # "$(DEF10EXPORTFILE)"=="" .ENDIF # "$(SHL10VERSIONMAP)"!="" @@ -2692,112 +1678,6 @@ $(DEF10TARGETN) .PHONY : @$(RENAME) $@.tmpfile $@ .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" - -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL10TARGET8=$(shell @fix_shl $(SHL10TARGETN:f)) - -DEF10FILTER=$(SOLARENV)/inc/dummy.flt -DEF10NAMELIST=$(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib) - -.IF "$(link_always)"=="" -$(DEF10TARGETN) : \ - $(DEF10DEPN) \ - $(DEF10EXPORTFILE) -.ELSE # "$(link_always)"=="" -$(DEF10TARGETN) .PHONY : -.ENDIF # "$(link_always)"=="" - @+-$(RM) $@.tmpfile - @echo "Making: module definition file" $(@:f) - @echo LIBRARY $(SHL10TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile - @echo DATA MULTIPLE >>$@.tmpfile - @echo DESCRIPTION 'StarView 3.00 $(DEF10DES) $(UPD) $(UPDMINOR)' >>$@.tmpfile - @echo EXPORTS >>$@.tmpfile -.IF "$(VERSIONOBJ)"!="" -# getversioninfo fuer alle!! - @echo _GetVersionInfo >$@.tmp_ord -.ENDIF - -.IF "$(DEFLIB10NAME)"!="" - @+echo $(SLB)/$(DEFLIB10NAME).lib - @+emxexpr $(DEF10NAMELIST) | fix_exp_file >> $@.tmp_ord -.ENDIF # "$(DEFLIB10NAME)"!="" - -.IF "$(DEF10EXPORT1)"!="" - @echo $(DEF10EXPORT1) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT2)"!="" - @echo $(DEF10EXPORT2) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT3)"!="" - @echo $(DEF10EXPORT3) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT4)"!="" - @echo $(DEF10EXPORT4) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT5)"!="" - @echo $(DEF10EXPORT5) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT6)"!="" - @echo $(DEF10EXPORT6) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT7)"!="" - @echo $(DEF10EXPORT7) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT8)"!="" - @echo $(DEF10EXPORT8) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT9)"!="" - @echo $(DEF10EXPORT9) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT10)"!="" - @echo $(DEF10EXPORT10) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT11)"!="" - @echo $(DEF10EXPORT11) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT12)"!="" - @echo $(DEF10EXPORT12) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT13)"!="" - @echo $(DEF10EXPORT13) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT14)"!="" - @echo $(DEF10EXPORT14) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT15)"!="" - @echo $(DEF10EXPORT15) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT16)"!="" - @echo $(DEF10EXPORT16) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT17)"!="" - @echo $(DEF10EXPORT17) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT18)"!="" - @echo $(DEF10EXPORT18) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT19)"!="" - @echo $(DEF10EXPORT19) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORT20)"!="" - @echo $(DEF10EXPORT20) >>$@.tmpfile -.ENDIF -.IF "$(DEF10EXPORTFILE)"!="" - @fix_def_file < $(DEF10EXPORTFILE) >> $@.tmp_ord -.ENDIF - @sort < $@.tmp_ord | uniq > $@.exptmpfile - @fix_def_ord < $@.exptmpfile >> $@.tmpfile - @+-$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ - @+-$(RM) $@.tmp_ord - @+-$(RM) $@.exptmpfile - $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL10IMPLIBN:s/.lib/.a/) $@ - $(COMMAND_ECHO)+emxomf -o $(SHL10IMPLIBN) $(SHL10IMPLIBN:s/.lib/.a/) - -.ENDIF # "$(GUI)"=="OS2" - .IF "$(GUI)"=="UNX" $(DEF10TARGETN): \ $(DEF10DEPN) \ diff --git a/solenv/inc/_tg_lib.mk b/solenv/inc/_tg_lib.mk index 378c3230420b..5b6c463559f4 100644 --- a/solenv/inc/_tg_lib.mk +++ b/solenv/inc/_tg_lib.mk @@ -8,12 +8,6 @@ $(LIB1ARCHIV) : $(LIB1TARGET) @@-$(RM) $@ .IF "$(GUI)"=="UNX" @-$(RM) $(MISC)/$(LIB1ARCHIV:b).cmd -.IF "$(OS)" =="HPUX_FRAG_HR" - @-$(RM) $(MISC)/$(LIB1ARCHIV:b)_closetempl.cmd - @echo $(LINK) +inst_close -c `cat $(LIB1TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB1ARCHIV:b)_closetempl.cmd - @cat $(MISC)/$(LIB1ARCHIV:b)_closetempl.cmd - @+source $(MISC)/$(LIB1ARCHIV:b)_closetempl.cmd -.ENDIF @echo $(LIBMGR) $(LIB1FLAGS) $(LIBFLAGS) $(LIB1ARCHIV) `cat $(LIB1TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB1ARCHIV:b).cmd .IF "$(OS)$(COM)"=="NETBSDGCC" @echo ranlib $(LIB1ARCHIV) >> $(MISC)/$(LIB1ARCHIV:b).cmd @@ -29,7 +23,7 @@ $(LIB1ARCHIV) : $(LIB1TARGET) .IF "$(GUI)$(COM)"=="WNTGCC" @+-$(RM) $(MISC)/$(LIB1ARCHIV:b).cmd @+echo $(LIBMGR) $(LIB1FLAGS) $(LIBFLAGS) $(LIB1ARCHIV) `cat $(LIB1TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB1ARCHIV:b).cmd - @+echo ranlib $(LIB1ARCHIV) >> $(MISC)/$(LIB1ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB1ARCHIV) >> $(MISC)/$(LIB1ARCHIV:b).cmd .IF "$(VERBOSE)" == "TRUE" @cat $(MISC)/$(LIB1ARCHIV:b).cmd .ENDIF @@ -62,17 +56,6 @@ $(LIB1TARGET) : $(LIB1FILES) \ @nm `cat $(LIB1TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump .ENDIF -.ELIF "$(GUI)"=="OS2" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(LIB1FILES) $(LIB1OBJFILES) - @+-$(RM) $(@:s/.lib/.lin/) -.IF "$(LIB1OBJFILES)"!="" - @+$(TYPE) $(mktmp $(LIB1OBJFILES)) > $(null,$(LIB1OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) -.ENDIF # "$(LIB1OBJFILES)"!="" -.IF "$(LIB1FILES)"!="" - @-$(TYPE) $(foreach,i,$(LIB1FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) -.ENDIF # "$(LIB1FILES)"!="" - @+$(ECHONL) - .ELSE # "$(GUI)"=="UNX" .IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" @@ -110,12 +93,6 @@ $(LIB2ARCHIV) : $(LIB2TARGET) @@-$(RM) $@ .IF "$(GUI)"=="UNX" @-$(RM) $(MISC)/$(LIB2ARCHIV:b).cmd -.IF "$(OS)" =="HPUX_FRAG_HR" - @-$(RM) $(MISC)/$(LIB2ARCHIV:b)_closetempl.cmd - @echo $(LINK) +inst_close -c `cat $(LIB2TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB2ARCHIV:b)_closetempl.cmd - @cat $(MISC)/$(LIB2ARCHIV:b)_closetempl.cmd - @+source $(MISC)/$(LIB2ARCHIV:b)_closetempl.cmd -.ENDIF @echo $(LIBMGR) $(LIB2FLAGS) $(LIBFLAGS) $(LIB2ARCHIV) `cat $(LIB2TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB2ARCHIV:b).cmd .IF "$(OS)$(COM)"=="NETBSDGCC" @echo ranlib $(LIB2ARCHIV) >> $(MISC)/$(LIB2ARCHIV:b).cmd @@ -131,7 +108,7 @@ $(LIB2ARCHIV) : $(LIB2TARGET) .IF "$(GUI)$(COM)"=="WNTGCC" @+-$(RM) $(MISC)/$(LIB2ARCHIV:b).cmd @+echo $(LIBMGR) $(LIB2FLAGS) $(LIBFLAGS) $(LIB2ARCHIV) `cat $(LIB2TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB2ARCHIV:b).cmd - @+echo ranlib $(LIB2ARCHIV) >> $(MISC)/$(LIB2ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB2ARCHIV) >> $(MISC)/$(LIB2ARCHIV:b).cmd .IF "$(VERBOSE)" == "TRUE" @cat $(MISC)/$(LIB2ARCHIV:b).cmd .ENDIF @@ -164,17 +141,6 @@ $(LIB2TARGET) : $(LIB2FILES) \ @nm `cat $(LIB2TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump .ENDIF -.ELIF "$(GUI)"=="OS2" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(LIB2FILES) $(LIB2OBJFILES) - @+-$(RM) $(@:s/.lib/.lin/) -.IF "$(LIB2OBJFILES)"!="" - @+$(TYPE) $(mktmp $(LIB2OBJFILES)) > $(null,$(LIB2OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) -.ENDIF # "$(LIB2OBJFILES)"!="" -.IF "$(LIB2FILES)"!="" - @-$(TYPE) $(foreach,i,$(LIB2FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) -.ENDIF # "$(LIB2FILES)"!="" - @+$(ECHONL) - .ELSE # "$(GUI)"=="UNX" .IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" @@ -212,12 +178,6 @@ $(LIB3ARCHIV) : $(LIB3TARGET) @@-$(RM) $@ .IF "$(GUI)"=="UNX" @-$(RM) $(MISC)/$(LIB3ARCHIV:b).cmd -.IF "$(OS)" =="HPUX_FRAG_HR" - @-$(RM) $(MISC)/$(LIB3ARCHIV:b)_closetempl.cmd - @echo $(LINK) +inst_close -c `cat $(LIB3TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB3ARCHIV:b)_closetempl.cmd - @cat $(MISC)/$(LIB3ARCHIV:b)_closetempl.cmd - @+source $(MISC)/$(LIB3ARCHIV:b)_closetempl.cmd -.ENDIF @echo $(LIBMGR) $(LIB3FLAGS) $(LIBFLAGS) $(LIB3ARCHIV) `cat $(LIB3TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB3ARCHIV:b).cmd .IF "$(OS)$(COM)"=="NETBSDGCC" @echo ranlib $(LIB3ARCHIV) >> $(MISC)/$(LIB3ARCHIV:b).cmd @@ -233,7 +193,7 @@ $(LIB3ARCHIV) : $(LIB3TARGET) .IF "$(GUI)$(COM)"=="WNTGCC" @+-$(RM) $(MISC)/$(LIB3ARCHIV:b).cmd @+echo $(LIBMGR) $(LIB3FLAGS) $(LIBFLAGS) $(LIB3ARCHIV) `cat $(LIB3TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB3ARCHIV:b).cmd - @+echo ranlib $(LIB3ARCHIV) >> $(MISC)/$(LIB3ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB3ARCHIV) >> $(MISC)/$(LIB3ARCHIV:b).cmd .IF "$(VERBOSE)" == "TRUE" @cat $(MISC)/$(LIB3ARCHIV:b).cmd .ENDIF @@ -266,17 +226,6 @@ $(LIB3TARGET) : $(LIB3FILES) \ @nm `cat $(LIB3TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump .ENDIF -.ELIF "$(GUI)"=="OS2" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(LIB3FILES) $(LIB3OBJFILES) - @+-$(RM) $(@:s/.lib/.lin/) -.IF "$(LIB3OBJFILES)"!="" - @+$(TYPE) $(mktmp $(LIB3OBJFILES)) > $(null,$(LIB3OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) -.ENDIF # "$(LIB3OBJFILES)"!="" -.IF "$(LIB3FILES)"!="" - @-$(TYPE) $(foreach,i,$(LIB3FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) -.ENDIF # "$(LIB3FILES)"!="" - @+$(ECHONL) - .ELSE # "$(GUI)"=="UNX" .IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" @@ -314,12 +263,6 @@ $(LIB4ARCHIV) : $(LIB4TARGET) @@-$(RM) $@ .IF "$(GUI)"=="UNX" @-$(RM) $(MISC)/$(LIB4ARCHIV:b).cmd -.IF "$(OS)" =="HPUX_FRAG_HR" - @-$(RM) $(MISC)/$(LIB4ARCHIV:b)_closetempl.cmd - @echo $(LINK) +inst_close -c `cat $(LIB4TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB4ARCHIV:b)_closetempl.cmd - @cat $(MISC)/$(LIB4ARCHIV:b)_closetempl.cmd - @+source $(MISC)/$(LIB4ARCHIV:b)_closetempl.cmd -.ENDIF @echo $(LIBMGR) $(LIB4FLAGS) $(LIBFLAGS) $(LIB4ARCHIV) `cat $(LIB4TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB4ARCHIV:b).cmd .IF "$(OS)$(COM)"=="NETBSDGCC" @echo ranlib $(LIB4ARCHIV) >> $(MISC)/$(LIB4ARCHIV:b).cmd @@ -335,7 +278,7 @@ $(LIB4ARCHIV) : $(LIB4TARGET) .IF "$(GUI)$(COM)"=="WNTGCC" @+-$(RM) $(MISC)/$(LIB4ARCHIV:b).cmd @+echo $(LIBMGR) $(LIB4FLAGS) $(LIBFLAGS) $(LIB4ARCHIV) `cat $(LIB4TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB4ARCHIV:b).cmd - @+echo ranlib $(LIB4ARCHIV) >> $(MISC)/$(LIB4ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB4ARCHIV) >> $(MISC)/$(LIB4ARCHIV:b).cmd .IF "$(VERBOSE)" == "TRUE" @cat $(MISC)/$(LIB4ARCHIV:b).cmd .ENDIF @@ -368,17 +311,6 @@ $(LIB4TARGET) : $(LIB4FILES) \ @nm `cat $(LIB4TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump .ENDIF -.ELIF "$(GUI)"=="OS2" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(LIB4FILES) $(LIB4OBJFILES) - @+-$(RM) $(@:s/.lib/.lin/) -.IF "$(LIB4OBJFILES)"!="" - @+$(TYPE) $(mktmp $(LIB4OBJFILES)) > $(null,$(LIB4OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) -.ENDIF # "$(LIB4OBJFILES)"!="" -.IF "$(LIB4FILES)"!="" - @-$(TYPE) $(foreach,i,$(LIB4FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) -.ENDIF # "$(LIB4FILES)"!="" - @+$(ECHONL) - .ELSE # "$(GUI)"=="UNX" .IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" @@ -416,12 +348,6 @@ $(LIB5ARCHIV) : $(LIB5TARGET) @@-$(RM) $@ .IF "$(GUI)"=="UNX" @-$(RM) $(MISC)/$(LIB5ARCHIV:b).cmd -.IF "$(OS)" =="HPUX_FRAG_HR" - @-$(RM) $(MISC)/$(LIB5ARCHIV:b)_closetempl.cmd - @echo $(LINK) +inst_close -c `cat $(LIB5TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB5ARCHIV:b)_closetempl.cmd - @cat $(MISC)/$(LIB5ARCHIV:b)_closetempl.cmd - @+source $(MISC)/$(LIB5ARCHIV:b)_closetempl.cmd -.ENDIF @echo $(LIBMGR) $(LIB5FLAGS) $(LIBFLAGS) $(LIB5ARCHIV) `cat $(LIB5TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB5ARCHIV:b).cmd .IF "$(OS)$(COM)"=="NETBSDGCC" @echo ranlib $(LIB5ARCHIV) >> $(MISC)/$(LIB5ARCHIV:b).cmd @@ -437,7 +363,7 @@ $(LIB5ARCHIV) : $(LIB5TARGET) .IF "$(GUI)$(COM)"=="WNTGCC" @+-$(RM) $(MISC)/$(LIB5ARCHIV:b).cmd @+echo $(LIBMGR) $(LIB5FLAGS) $(LIBFLAGS) $(LIB5ARCHIV) `cat $(LIB5TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB5ARCHIV:b).cmd - @+echo ranlib $(LIB5ARCHIV) >> $(MISC)/$(LIB5ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB5ARCHIV) >> $(MISC)/$(LIB5ARCHIV:b).cmd .IF "$(VERBOSE)" == "TRUE" @cat $(MISC)/$(LIB5ARCHIV:b).cmd .ENDIF @@ -470,17 +396,6 @@ $(LIB5TARGET) : $(LIB5FILES) \ @nm `cat $(LIB5TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump .ENDIF -.ELIF "$(GUI)"=="OS2" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(LIB5FILES) $(LIB5OBJFILES) - @+-$(RM) $(@:s/.lib/.lin/) -.IF "$(LIB5OBJFILES)"!="" - @+$(TYPE) $(mktmp $(LIB5OBJFILES)) > $(null,$(LIB5OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) -.ENDIF # "$(LIB5OBJFILES)"!="" -.IF "$(LIB5FILES)"!="" - @-$(TYPE) $(foreach,i,$(LIB5FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) -.ENDIF # "$(LIB5FILES)"!="" - @+$(ECHONL) - .ELSE # "$(GUI)"=="UNX" .IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" @@ -518,12 +433,6 @@ $(LIB6ARCHIV) : $(LIB6TARGET) @@-$(RM) $@ .IF "$(GUI)"=="UNX" @-$(RM) $(MISC)/$(LIB6ARCHIV:b).cmd -.IF "$(OS)" =="HPUX_FRAG_HR" - @-$(RM) $(MISC)/$(LIB6ARCHIV:b)_closetempl.cmd - @echo $(LINK) +inst_close -c `cat $(LIB6TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB6ARCHIV:b)_closetempl.cmd - @cat $(MISC)/$(LIB6ARCHIV:b)_closetempl.cmd - @+source $(MISC)/$(LIB6ARCHIV:b)_closetempl.cmd -.ENDIF @echo $(LIBMGR) $(LIB6FLAGS) $(LIBFLAGS) $(LIB6ARCHIV) `cat $(LIB6TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB6ARCHIV:b).cmd .IF "$(OS)$(COM)"=="NETBSDGCC" @echo ranlib $(LIB6ARCHIV) >> $(MISC)/$(LIB6ARCHIV:b).cmd @@ -539,7 +448,7 @@ $(LIB6ARCHIV) : $(LIB6TARGET) .IF "$(GUI)$(COM)"=="WNTGCC" @+-$(RM) $(MISC)/$(LIB6ARCHIV:b).cmd @+echo $(LIBMGR) $(LIB6FLAGS) $(LIBFLAGS) $(LIB6ARCHIV) `cat $(LIB6TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB6ARCHIV:b).cmd - @+echo ranlib $(LIB6ARCHIV) >> $(MISC)/$(LIB6ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB6ARCHIV) >> $(MISC)/$(LIB6ARCHIV:b).cmd .IF "$(VERBOSE)" == "TRUE" @cat $(MISC)/$(LIB6ARCHIV:b).cmd .ENDIF @@ -572,17 +481,6 @@ $(LIB6TARGET) : $(LIB6FILES) \ @nm `cat $(LIB6TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump .ENDIF -.ELIF "$(GUI)"=="OS2" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(LIB6FILES) $(LIB6OBJFILES) - @+-$(RM) $(@:s/.lib/.lin/) -.IF "$(LIB6OBJFILES)"!="" - @+$(TYPE) $(mktmp $(LIB6OBJFILES)) > $(null,$(LIB6OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) -.ENDIF # "$(LIB6OBJFILES)"!="" -.IF "$(LIB6FILES)"!="" - @-$(TYPE) $(foreach,i,$(LIB6FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) -.ENDIF # "$(LIB6FILES)"!="" - @+$(ECHONL) - .ELSE # "$(GUI)"=="UNX" .IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" @@ -620,12 +518,6 @@ $(LIB7ARCHIV) : $(LIB7TARGET) @@-$(RM) $@ .IF "$(GUI)"=="UNX" @-$(RM) $(MISC)/$(LIB7ARCHIV:b).cmd -.IF "$(OS)" =="HPUX_FRAG_HR" - @-$(RM) $(MISC)/$(LIB7ARCHIV:b)_closetempl.cmd - @echo $(LINK) +inst_close -c `cat $(LIB7TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB7ARCHIV:b)_closetempl.cmd - @cat $(MISC)/$(LIB7ARCHIV:b)_closetempl.cmd - @+source $(MISC)/$(LIB7ARCHIV:b)_closetempl.cmd -.ENDIF @echo $(LIBMGR) $(LIB7FLAGS) $(LIBFLAGS) $(LIB7ARCHIV) `cat $(LIB7TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB7ARCHIV:b).cmd .IF "$(OS)$(COM)"=="NETBSDGCC" @echo ranlib $(LIB7ARCHIV) >> $(MISC)/$(LIB7ARCHIV:b).cmd @@ -641,7 +533,7 @@ $(LIB7ARCHIV) : $(LIB7TARGET) .IF "$(GUI)$(COM)"=="WNTGCC" @+-$(RM) $(MISC)/$(LIB7ARCHIV:b).cmd @+echo $(LIBMGR) $(LIB7FLAGS) $(LIBFLAGS) $(LIB7ARCHIV) `cat $(LIB7TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB7ARCHIV:b).cmd - @+echo ranlib $(LIB7ARCHIV) >> $(MISC)/$(LIB7ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB7ARCHIV) >> $(MISC)/$(LIB7ARCHIV:b).cmd .IF "$(VERBOSE)" == "TRUE" @cat $(MISC)/$(LIB7ARCHIV:b).cmd .ENDIF @@ -674,17 +566,6 @@ $(LIB7TARGET) : $(LIB7FILES) \ @nm `cat $(LIB7TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump .ENDIF -.ELIF "$(GUI)"=="OS2" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(LIB7FILES) $(LIB7OBJFILES) - @+-$(RM) $(@:s/.lib/.lin/) -.IF "$(LIB7OBJFILES)"!="" - @+$(TYPE) $(mktmp $(LIB7OBJFILES)) > $(null,$(LIB7OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) -.ENDIF # "$(LIB7OBJFILES)"!="" -.IF "$(LIB7FILES)"!="" - @-$(TYPE) $(foreach,i,$(LIB7FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) -.ENDIF # "$(LIB7FILES)"!="" - @+$(ECHONL) - .ELSE # "$(GUI)"=="UNX" .IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" @@ -722,12 +603,6 @@ $(LIB8ARCHIV) : $(LIB8TARGET) @@-$(RM) $@ .IF "$(GUI)"=="UNX" @-$(RM) $(MISC)/$(LIB8ARCHIV:b).cmd -.IF "$(OS)" =="HPUX_FRAG_HR" - @-$(RM) $(MISC)/$(LIB8ARCHIV:b)_closetempl.cmd - @echo $(LINK) +inst_close -c `cat $(LIB8TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB8ARCHIV:b)_closetempl.cmd - @cat $(MISC)/$(LIB8ARCHIV:b)_closetempl.cmd - @+source $(MISC)/$(LIB8ARCHIV:b)_closetempl.cmd -.ENDIF @echo $(LIBMGR) $(LIB8FLAGS) $(LIBFLAGS) $(LIB8ARCHIV) `cat $(LIB8TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB8ARCHIV:b).cmd .IF "$(OS)$(COM)"=="NETBSDGCC" @echo ranlib $(LIB8ARCHIV) >> $(MISC)/$(LIB8ARCHIV:b).cmd @@ -743,7 +618,7 @@ $(LIB8ARCHIV) : $(LIB8TARGET) .IF "$(GUI)$(COM)"=="WNTGCC" @+-$(RM) $(MISC)/$(LIB8ARCHIV:b).cmd @+echo $(LIBMGR) $(LIB8FLAGS) $(LIBFLAGS) $(LIB8ARCHIV) `cat $(LIB8TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB8ARCHIV:b).cmd - @+echo ranlib $(LIB8ARCHIV) >> $(MISC)/$(LIB8ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB8ARCHIV) >> $(MISC)/$(LIB8ARCHIV:b).cmd .IF "$(VERBOSE)" == "TRUE" @cat $(MISC)/$(LIB8ARCHIV:b).cmd .ENDIF @@ -776,17 +651,6 @@ $(LIB8TARGET) : $(LIB8FILES) \ @nm `cat $(LIB8TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump .ENDIF -.ELIF "$(GUI)"=="OS2" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(LIB8FILES) $(LIB8OBJFILES) - @+-$(RM) $(@:s/.lib/.lin/) -.IF "$(LIB8OBJFILES)"!="" - @+$(TYPE) $(mktmp $(LIB8OBJFILES)) > $(null,$(LIB8OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) -.ENDIF # "$(LIB8OBJFILES)"!="" -.IF "$(LIB8FILES)"!="" - @-$(TYPE) $(foreach,i,$(LIB8FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) -.ENDIF # "$(LIB8FILES)"!="" - @+$(ECHONL) - .ELSE # "$(GUI)"=="UNX" .IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" @@ -824,12 +688,6 @@ $(LIB9ARCHIV) : $(LIB9TARGET) @@-$(RM) $@ .IF "$(GUI)"=="UNX" @-$(RM) $(MISC)/$(LIB9ARCHIV:b).cmd -.IF "$(OS)" =="HPUX_FRAG_HR" - @-$(RM) $(MISC)/$(LIB9ARCHIV:b)_closetempl.cmd - @echo $(LINK) +inst_close -c `cat $(LIB9TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB9ARCHIV:b)_closetempl.cmd - @cat $(MISC)/$(LIB9ARCHIV:b)_closetempl.cmd - @+source $(MISC)/$(LIB9ARCHIV:b)_closetempl.cmd -.ENDIF @echo $(LIBMGR) $(LIB9FLAGS) $(LIBFLAGS) $(LIB9ARCHIV) `cat $(LIB9TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB9ARCHIV:b).cmd .IF "$(OS)$(COM)"=="NETBSDGCC" @echo ranlib $(LIB9ARCHIV) >> $(MISC)/$(LIB9ARCHIV:b).cmd @@ -845,7 +703,7 @@ $(LIB9ARCHIV) : $(LIB9TARGET) .IF "$(GUI)$(COM)"=="WNTGCC" @+-$(RM) $(MISC)/$(LIB9ARCHIV:b).cmd @+echo $(LIBMGR) $(LIB9FLAGS) $(LIBFLAGS) $(LIB9ARCHIV) `cat $(LIB9TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB9ARCHIV:b).cmd - @+echo ranlib $(LIB9ARCHIV) >> $(MISC)/$(LIB9ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB9ARCHIV) >> $(MISC)/$(LIB9ARCHIV:b).cmd .IF "$(VERBOSE)" == "TRUE" @cat $(MISC)/$(LIB9ARCHIV:b).cmd .ENDIF @@ -878,17 +736,6 @@ $(LIB9TARGET) : $(LIB9FILES) \ @nm `cat $(LIB9TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump .ENDIF -.ELIF "$(GUI)"=="OS2" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(LIB9FILES) $(LIB9OBJFILES) - @+-$(RM) $(@:s/.lib/.lin/) -.IF "$(LIB9OBJFILES)"!="" - @+$(TYPE) $(mktmp $(LIB9OBJFILES)) > $(null,$(LIB9OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) -.ENDIF # "$(LIB9OBJFILES)"!="" -.IF "$(LIB9FILES)"!="" - @-$(TYPE) $(foreach,i,$(LIB9FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) -.ENDIF # "$(LIB9FILES)"!="" - @+$(ECHONL) - .ELSE # "$(GUI)"=="UNX" .IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" @@ -926,12 +773,6 @@ $(LIB10ARCHIV) : $(LIB10TARGET) @@-$(RM) $@ .IF "$(GUI)"=="UNX" @-$(RM) $(MISC)/$(LIB10ARCHIV:b).cmd -.IF "$(OS)" =="HPUX_FRAG_HR" - @-$(RM) $(MISC)/$(LIB10ARCHIV:b)_closetempl.cmd - @echo $(LINK) +inst_close -c `cat $(LIB10TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB10ARCHIV:b)_closetempl.cmd - @cat $(MISC)/$(LIB10ARCHIV:b)_closetempl.cmd - @+source $(MISC)/$(LIB10ARCHIV:b)_closetempl.cmd -.ENDIF @echo $(LIBMGR) $(LIB10FLAGS) $(LIBFLAGS) $(LIB10ARCHIV) `cat $(LIB10TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB10ARCHIV:b).cmd .IF "$(OS)$(COM)"=="NETBSDGCC" @echo ranlib $(LIB10ARCHIV) >> $(MISC)/$(LIB10ARCHIV:b).cmd @@ -980,17 +821,6 @@ $(LIB10TARGET) : $(LIB10FILES) \ @nm `cat $(LIB10TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump .ENDIF -.ELIF "$(GUI)"=="OS2" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(LIB10FILES) $(LIB10OBJFILES) - @+-$(RM) $(@:s/.lib/.lin/) -.IF "$(LIB10OBJFILES)"!="" - @+$(TYPE) $(mktmp $(LIB10OBJFILES)) > $(null,$(LIB10OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) -.ENDIF # "$(LIB10OBJFILES)"!="" -.IF "$(LIB10FILES)"!="" - @-$(TYPE) $(foreach,i,$(LIB10FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) -.ENDIF # "$(LIB10FILES)"!="" - @+$(ECHONL) - .ELSE # "$(GUI)"=="UNX" .IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" diff --git a/solenv/inc/_tg_rslb.mk b/solenv/inc/_tg_rslb.mk index 561b4224e649..1edebb8a04df 100755 --- a/solenv/inc/_tg_rslb.mk +++ b/solenv/inc/_tg_rslb.mk @@ -13,12 +13,11 @@ $(RSC_MULTI1) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB1NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB1IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB1IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ -ft=$@ \ $(RSC1HEADER) $(RESLIB1SRSFILES) \ @@ -29,12 +28,11 @@ $(RSC_MULTI1) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(BIN)/$(RESLIB1NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB1IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB1IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil=$(BIN) \ -ft=$@ \ $(RSC1HEADER) $(RESLIB1SRSFILES) \ @@ -76,12 +74,11 @@ $(RSC_MULTI2) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB2NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB2IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB2IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ -ft=$@ \ $(RSC2HEADER) $(RESLIB2SRSFILES) \ @@ -92,12 +89,11 @@ $(RSC_MULTI2) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(BIN)/$(RESLIB2NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB2IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB2IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil=$(BIN) \ -ft=$@ \ $(RSC2HEADER) $(RESLIB2SRSFILES) \ @@ -139,12 +135,11 @@ $(RSC_MULTI3) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB3NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB3IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB3IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ -ft=$@ \ $(RSC3HEADER) $(RESLIB3SRSFILES) \ @@ -155,12 +150,11 @@ $(RSC_MULTI3) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(BIN)/$(RESLIB3NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB3IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB3IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil=$(BIN) \ -ft=$@ \ $(RSC3HEADER) $(RESLIB3SRSFILES) \ @@ -202,12 +196,11 @@ $(RSC_MULTI4) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB4NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB4IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB4IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ -ft=$@ \ $(RSC4HEADER) $(RESLIB4SRSFILES) \ @@ -218,12 +211,11 @@ $(RSC_MULTI4) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(BIN)/$(RESLIB4NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB4IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB4IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil=$(BIN) \ -ft=$@ \ $(RSC4HEADER) $(RESLIB4SRSFILES) \ @@ -265,12 +257,11 @@ $(RSC_MULTI5) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB5NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB5IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB5IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ -ft=$@ \ $(RSC5HEADER) $(RESLIB5SRSFILES) \ @@ -281,12 +272,11 @@ $(RSC_MULTI5) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(BIN)/$(RESLIB5NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB5IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB5IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil=$(BIN) \ -ft=$@ \ $(RSC5HEADER) $(RESLIB5SRSFILES) \ @@ -328,12 +318,11 @@ $(RSC_MULTI6) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB6NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB6IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB6IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ -ft=$@ \ $(RSC6HEADER) $(RESLIB6SRSFILES) \ @@ -344,12 +333,11 @@ $(RSC_MULTI6) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(BIN)/$(RESLIB6NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB6IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB6IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil=$(BIN) \ -ft=$@ \ $(RSC6HEADER) $(RESLIB6SRSFILES) \ @@ -391,12 +379,11 @@ $(RSC_MULTI7) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB7NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB7IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB7IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ -ft=$@ \ $(RSC7HEADER) $(RESLIB7SRSFILES) \ @@ -407,12 +394,11 @@ $(RSC_MULTI7) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(BIN)/$(RESLIB7NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB7IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB7IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil=$(BIN) \ -ft=$@ \ $(RSC7HEADER) $(RESLIB7SRSFILES) \ @@ -454,12 +440,11 @@ $(RSC_MULTI8) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB8NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB8IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB8IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ -ft=$@ \ $(RSC8HEADER) $(RESLIB8SRSFILES) \ @@ -470,12 +455,11 @@ $(RSC_MULTI8) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(BIN)/$(RESLIB8NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB8IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB8IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil=$(BIN) \ -ft=$@ \ $(RSC8HEADER) $(RESLIB8SRSFILES) \ @@ -517,12 +501,11 @@ $(RSC_MULTI9) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB9NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB9IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB9IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ -ft=$@ \ $(RSC9HEADER) $(RESLIB9SRSFILES) \ @@ -533,12 +516,11 @@ $(RSC_MULTI9) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(BIN)/$(RESLIB9NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB9IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB9IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil=$(BIN) \ -ft=$@ \ $(RSC9HEADER) $(RESLIB9SRSFILES) \ @@ -580,12 +562,11 @@ $(RSC_MULTI10) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB10NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB10IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB10IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ -ft=$@ \ $(RSC10HEADER) $(RESLIB10SRSFILES) \ @@ -596,12 +577,11 @@ $(RSC_MULTI10) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(BIN)/$(RESLIB10NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB10IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB10IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil=$(BIN) \ -ft=$@ \ $(RSC10HEADER) $(RESLIB10SRSFILES) \ diff --git a/solenv/inc/_tg_shl.mk b/solenv/inc/_tg_shl.mk index ac930bdd8a08..4f1d099dbdf8 100644 --- a/solenv/inc/_tg_shl.mk +++ b/solenv/inc/_tg_shl.mk @@ -2,10 +2,6 @@ .IF "$(SHL1TARGETN)"!="" -.IF "$(OS)"=="AIX" -SHL1STDLIBS= -.ENDIF - .IF "$(SHLLINKARCONLY)" != "" SHL1STDLIBS= STDSHL= @@ -62,20 +58,23 @@ $(MISC)/$(SHL1VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL1VERSIO .ENDIF .IF "$(GUI)" != "UNX" -.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)" == "WNT" .IF "$(SHL1IMPLIB)" == "" SHL1IMPLIB=i$(TARGET)_t1 .ENDIF # "$(SHL1IMPLIB)" == "" .IF "$(COM)" != "GCC" USE_1IMPLIB=-implib:$(LB)/$(SHL1IMPLIB).lib -.ENDIF # "$(COM)" != "GCC" SHL1IMPLIBN=$(LB)/$(SHL1IMPLIB).lib +.ELSE +SHL1IMPLIBN=$(LB)/lib$(SHL1IMPLIB).dll.a +USE_1IMPLIB=-Wl,--out-implib=$(SHL1IMPLIBN) +.ENDIF # "$(COM)" != "GCC" ALLTAR : $(SHL1IMPLIBN) .IF "$(USE_DEFFILE)"=="" USE_1IMPLIB_DEPS=$(LB)/$(SHL1IMPLIB).lib .ENDIF # "$(USE_DEFFILE)"=="" -.ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.ENDIF # "$(GUI)" == "WNT" USE_SHL1DEF=$(SHL1DEF) .ELSE # "$(GUI)" != "UNX" USE_SHL1DEF= @@ -100,7 +99,9 @@ $(USE_SHL1VERSIONMAP) .PHONY: .ENDIF # "$(SHL1VERSIONMAP)"!="" +.IF "$(OS)" != "AIX" SHL1VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL1VERSIONMAP) +.ENDIF $(USE_SHL1VERSIONMAP): \ $(SHL1OBJS)\ @@ -137,7 +138,9 @@ $(USE_SHL1VERSIONMAP) : #and now for the plain non-generic way... .IF "$(SHL1VERSIONMAP)"!="" USE_SHL1VERSIONMAP=$(MISC)/$(SHL1VERSIONMAP:b)_$(SHL1TARGET)$(SHL1VERSIONMAP:e) +.IF "$(OS)" != "AIX" SHL1VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL1VERSIONMAP) +.ENDIF .IF "$(OS)"=="MACOSX" $(USE_SHL1VERSIONMAP): $(SHL1OBJS) $(SHL1LIBS) @@ -185,7 +188,7 @@ $(USE_SHL1VERSIONMAP) .ERRREMOVE: $(SHL1VERSIONMAP) .ENDIF # "$(GUI)" != "UNX" .IF "$(UNIXVERSIONNAMES)"!="" -.IF "$(OS)"!="MACOSX" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" .IF "$(GUI)"=="UNX" SHL1SONAME=\"$(SONAME_SWITCH)$(SHL1TARGETN:f)\" .ENDIF # "$(GUI)"!="UNX" @@ -208,7 +211,7 @@ SHL1LINKRESO*=$(MISC)/$(SHL1TARGET)_res.o #.IF "$(SHL1TARGETN)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL1LIBS)"!="" $(MISC)/$(SHL1TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -221,7 +224,7 @@ $(SHL1TARGETN) : $(LINKINCTARGETS) .ELSE .IF "$(SHL1USE_EXPORTS)"=="name" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(COM)"!="GCC" .IF "$(SHL1LIBS)"!="" SHL1LINKLIST=$(MISC)/$(SHL1TARGET)_link.lst @@ -238,20 +241,6 @@ $(MISC)/%linkinc.ls: @echo . > $@ .ENDIF # "$(linkinc)"!="" -.IF "$(GUI)" == "OS2" -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL1TARGET8=$(shell @fix_shl $(SHL1TARGET)) -.ENDIF - -.IF "$(GUI)" == "OS2" -_SHL1IMP_ORD = $(SHL1STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL1STDLIBS:^"$(LB)/") -SHL1IMP_ORD = $(foreach,i,$(_SHL1IMP_ORD) $(shell @-ls $i)) -.ELSE -SHL1IMP_ORD = -.ENDIF - - $(SHL1TARGETN) : \ $(SHL1OBJS)\ $(SHL1LIBS)\ @@ -260,7 +249,6 @@ $(SHL1TARGETN) : \ $(USE_SHL1VERSIONMAP)\ $(SHL1RES)\ $(SHL1DEPN) \ - $(SHL1IMP_ORD) \ $(SHL1LINKLIST) @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" @@ -282,39 +270,69 @@ $(SHL1TARGETN) : \ @echo $(EMQ)#define INTERNAL_NAME $(SHL1TARGET:b) >> $(MISC)/$(SHL1DEFAULTRES:b).rc @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL1DEFAULTRES:b).rc .ENDIF # "$(use_shl_versions)" != "" - $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL1DEFAULTRES:b).rc +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL1DEFAULTRES) $(MISC)/$(SHL1DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL1DEFAULTRES:b).rc $(SHL1DEFAULTRES) +.ENDIF .ENDIF # "$(SHL1DEFAULTRES)"!="" .IF "$(SHL1ALLRES)"!="" $(COMMAND_ECHO)$(TYPE) $(SHL1ALLRES) > $(SHL1LINKRES) .IF "$(COM)"=="GCC" - windres $(SHL1LINKRES) $(SHL1LINKRESO) + $(WINDRES) $(SHL1LINKRES) $(SHL1LINKRESO) .ENDIF # "$(COM)"=="GCC" .ENDIF # "$(SHL1ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def - @echo dlltool --dllname $(SHL1TARGET)$(DLLPOST) \ - --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_1.cmd +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + @$(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL1LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL1DEF) \ + $(USE_1IMPLIB) \ + $(STDOBJ) \ + $(SHL1VERSIONOBJ) $(SHL1OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL1LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL1STDLIBS) -Wl,--end-group \ + $(SHL1STDSHL) $(STDSHL1) \ + $(SHL1LINKRESO) \ + )) +.ELSE @noop $(assign ALL1OBJLIST:=$(STDOBJ) $(SHL1OBJS) $(SHL1LINKRESO) $(shell $(TYPE) /dev/null $(SHL1LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) .IF "$(DEFLIB1NAME)"!="" # do not have to include objs @noop $(assign DEF1OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB1NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) @noop $(foreach,i,$(DEF1OBJLIST) $(assign ALL1OBJLIST:=$(ALL1OBJLIST:s?$i??))) .ENDIF # "$(DEFLIB1NAME)"!="" - @echo --output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_1.cmd -.IF "$(SHL1DEF)"!="" - @echo --input-def $(SHL1DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_1.cmd -.ELSE - @echo $(SHL1VERSIONOBJ) $(SHL1DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_1.cmd -.ENDIF - @echo $(ALL1OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_1.cmd - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ - $(STDOBJ) $(SHL1VERSIONOBJ) $(SHL1DESCRIPTIONOBJ) $(SHL1OBJS) $(SHL1LINKRESO) \ - `$(TYPE) /dev/null $(SHL1LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(COMMAND_ECHO)$(DLLTOOL) @@(mktmp \ + --dllname $(SHL1TARGET)$(DLLPOST) \ + --kill-at \ + --output-exp $(MISC)/$(@:b)_exp.o \ + $(SHL1VERSIONOBJ) \ + @(ALL1OBJLIST) + ) + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL1LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(MISC)/$(@:b)_exp.o \ + $(USE_1IMPLIB) \ + $(STDOBJ) \ + $(SHL1VERSIONOBJ) $(SHL1OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL1LIBS))) \ -Wl,--exclude-libs,ALL,--start-group $(SHL1STDLIBS) -Wl,--end-group \ - $(SHL1STDSHL) $(STDSHL1) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ - -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_1.cmd - .IF "$(VERBOSE)" == "TRUE" - @$(TYPE) $(MISC)/$(TARGET).$(@:b)_1.cmd - .ENDIF - @+source $(MISC)/$(TARGET).$(@:b)_1.cmd + $(SHL1STDSHL) $(STDSHL1) \ + $(SHL1LINKRESO) \ + )) +.ENDIF .ELSE .IF "$(linkinc)"=="" .IF "$(SHL1USE_EXPORTS)"!="name" @@ -429,7 +447,7 @@ $(SHL1TARGETN) : \ @echo $(STDSLO) $(SHL1OBJS:s/.obj/.o/) \ $(SHL1VERSIONOBJ) \ `cat /dev/null $(SHL1LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(SHL1LINKER) $(SHL1LINKFLAGS) $(SHL1VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(SHL1LINKER) $(SHL1LINKFLAGS) $(SHL1VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ $(SHL1STDLIBS) $(SHL1ARCHIVES) $(SHL1STDSHL) $(STDSHL1) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_1.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_1.cmd` \ @@ -449,6 +467,9 @@ $(SHL1TARGETN) : \ $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS1) $(SHL1TARGETN) .ENDIF # "$(SHL1NOCHECK)"!="" .ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB1FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL1OBJS)) $(shell cat /dev/null $(LIB1TARGET) $(SHL1LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ .ELSE # "$(OS)"=="MACOSX" @-$(RM) $(MISC)/$(TARGET).$(@:b)_1.cmd @echo $(SHL1LINKER) $(SHL1LINKFLAGS) $(SHL1SONAME) $(LINKFLAGSSHL) $(SHL1VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL1OBJS:s/.obj/.o/) \ @@ -471,7 +492,7 @@ $(SHL1TARGETN) : \ .ENDIF # "$(SHL1NOCHECK)"!="" .ENDIF # "$(UPDATER)"=="YES" .ENDIF # "$(OS)"=="MACOSX" -.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" $(COMMAND_ECHO)$(RM) $(LB)/$(SHL1TARGETN:b) $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL1TARGETN:f) $(SHL1TARGETN:b) .ENDIF # "$(UNIXVERSIONNAMES)"!="" @@ -480,75 +501,12 @@ $(SHL1TARGETN) : \ .ENDIF .ENDIF # "$(GUI)" == "UNX" -.IF "$(GUI)" == "OS2" - -.IF "$(SHL1DEFAULTRES)"!="" - @+-$(RM) $(MISC)/$(SHL1DEFAULTRES:b).rc >& $(NULLDEV) -.IF "$(SHL1ICON)" != "" - @-+echo 1 ICON $(SHL1ICON) >> $(MISC)/$(SHL1DEFAULTRES:b).rc -.ENDIF -.IF "$(use_shl_versions)" != "" -.IF "$(SHL1ADD_VERINFO)"!="" - @-+echo $(EMQ)#include $(EMQ)"$(SHL1ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL1DEFAULTRES:b).rc -.ENDIF # "$(SHL1ADD_VERINFO)"!="" - @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL1DEFAULTRES:b).rc -# @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL1DEFAULTRES:b).rc -.ENDIF # "$(use_shl_versions)" != "" -# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR) - $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL1DEFAULTRES:b).rc -.ENDIF # "$(SHL1DEFAULTRES)"!="" - -.IF "$(SHL1ALLRES)"!="" - $(COMMAND_ECHO)+$(TYPE) $(SHL1ALLRES) > $(SHL1LINKRES) -.ENDIF # "$(SHL1ALLRES)"!="" - -.IF "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL1LINKER) $(SHL1LINKFLAGS) $(LINKFLAGSSHL) -o $@ \ - $(SHL1DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL1OBJS) $(SHL1VERSIONOBJ) \ - $(SHL1LIBS) \ - $(SHL1STDLIBS:^"-l") \ - $(SHL1LINKRES) \ - $(SHL1STDSHL:^"-l") $(STDSHL1:^"-l") - -.ELSE # "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL1LINKER) -v $(SHL1LINKFLAGS) \ - $(LINKFLAGSSHL) $(SHL1BASEX) \ - $(SHL1STACK) -o $(SHL1TARGETN) \ - $(SHL1DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL1OBJS) $(SHL1VERSIONOBJ) \ - $(SHL1LIBS) \ - $(SHL1STDLIBS:^"-l") \ - $(SHL1LINKRES) \ - $(SHL1STDSHL:^"-l") $(STDSHL1:^"-l") \ - @$(LS) $@ >& $(NULLDEV) - -.ENDIF # "$(USE_DEFFILE)"!="" - -.IF "$(SHL1TARGET8)" != "$(SHL1TARGET)" - $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL1TARGET8).dll -.ENDIF - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(SHL1TARGETN)"!="" # unroll begin .IF "$(SHL2TARGETN)"!="" -.IF "$(OS)"=="AIX" -SHL2STDLIBS= -.ENDIF - .IF "$(SHLLINKARCONLY)" != "" SHL2STDLIBS= STDSHL= @@ -605,20 +563,23 @@ $(MISC)/$(SHL2VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL2VERSIO .ENDIF .IF "$(GUI)" != "UNX" -.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)" == "WNT" .IF "$(SHL2IMPLIB)" == "" SHL2IMPLIB=i$(TARGET)_t2 .ENDIF # "$(SHL2IMPLIB)" == "" .IF "$(COM)" != "GCC" USE_2IMPLIB=-implib:$(LB)/$(SHL2IMPLIB).lib -.ENDIF # "$(COM)" != "GCC" SHL2IMPLIBN=$(LB)/$(SHL2IMPLIB).lib +.ELSE +SHL2IMPLIBN=$(LB)/lib$(SHL2IMPLIB).dll.a +USE_2IMPLIB=-Wl,--out-implib=$(SHL2IMPLIBN) +.ENDIF # "$(COM)" != "GCC" ALLTAR : $(SHL2IMPLIBN) .IF "$(USE_DEFFILE)"=="" USE_2IMPLIB_DEPS=$(LB)/$(SHL2IMPLIB).lib .ENDIF # "$(USE_DEFFILE)"=="" -.ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.ENDIF # "$(GUI)" == "WNT" USE_SHL2DEF=$(SHL2DEF) .ELSE # "$(GUI)" != "UNX" USE_SHL2DEF= @@ -643,7 +604,9 @@ $(USE_SHL2VERSIONMAP) .PHONY: .ENDIF # "$(SHL2VERSIONMAP)"!="" +.IF "$(OS)" != "AIX" SHL2VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL2VERSIONMAP) +.ENDIF $(USE_SHL2VERSIONMAP): \ $(SHL2OBJS)\ @@ -680,7 +643,9 @@ $(USE_SHL2VERSIONMAP) : #and now for the plain non-generic way... .IF "$(SHL2VERSIONMAP)"!="" USE_SHL2VERSIONMAP=$(MISC)/$(SHL2VERSIONMAP:b)_$(SHL2TARGET)$(SHL2VERSIONMAP:e) +.IF "$(OS)" != "AIX" SHL2VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL2VERSIONMAP) +.ENDIF .IF "$(OS)"=="MACOSX" $(USE_SHL2VERSIONMAP): $(SHL2OBJS) $(SHL2LIBS) @@ -728,7 +693,7 @@ $(USE_SHL2VERSIONMAP) .ERRREMOVE: $(SHL2VERSIONMAP) .ENDIF # "$(GUI)" != "UNX" .IF "$(UNIXVERSIONNAMES)"!="" -.IF "$(OS)"!="MACOSX" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" .IF "$(GUI)"=="UNX" SHL2SONAME=\"$(SONAME_SWITCH)$(SHL2TARGETN:f)\" .ENDIF # "$(GUI)"!="UNX" @@ -751,7 +716,7 @@ SHL2LINKRESO*=$(MISC)/$(SHL2TARGET)_res.o #.IF "$(SHL2TARGETN)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL2LIBS)"!="" $(MISC)/$(SHL2TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -764,7 +729,7 @@ $(SHL2TARGETN) : $(LINKINCTARGETS) .ELSE .IF "$(SHL2USE_EXPORTS)"=="name" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(COM)"!="GCC" .IF "$(SHL2LIBS)"!="" SHL2LINKLIST=$(MISC)/$(SHL2TARGET)_link.lst @@ -781,20 +746,6 @@ $(MISC)/%linkinc.ls: @echo . > $@ .ENDIF # "$(linkinc)"!="" -.IF "$(GUI)" == "OS2" -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL2TARGET8=$(shell @fix_shl $(SHL2TARGET)) -.ENDIF - -.IF "$(GUI)" == "OS2" -_SHL2IMP_ORD = $(SHL2STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL2STDLIBS:^"$(LB)/") -SHL2IMP_ORD = $(foreach,i,$(_SHL2IMP_ORD) $(shell @-ls $i)) -.ELSE -SHL2IMP_ORD = -.ENDIF - - $(SHL2TARGETN) : \ $(SHL2OBJS)\ $(SHL2LIBS)\ @@ -803,7 +754,6 @@ $(SHL2TARGETN) : \ $(USE_SHL2VERSIONMAP)\ $(SHL2RES)\ $(SHL2DEPN) \ - $(SHL2IMP_ORD) \ $(SHL2LINKLIST) @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" @@ -825,39 +775,69 @@ $(SHL2TARGETN) : \ @echo $(EMQ)#define INTERNAL_NAME $(SHL2TARGET:b) >> $(MISC)/$(SHL2DEFAULTRES:b).rc @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL2DEFAULTRES:b).rc .ENDIF # "$(use_shl_versions)" != "" - $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL2DEFAULTRES:b).rc +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL2DEFAULTRES) $(MISC)/$(SHL2DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL2DEFAULTRES:b).rc $(SHL2DEFAULTRES) +.ENDIF .ENDIF # "$(SHL2DEFAULTRES)"!="" .IF "$(SHL2ALLRES)"!="" $(COMMAND_ECHO)$(TYPE) $(SHL2ALLRES) > $(SHL2LINKRES) .IF "$(COM)"=="GCC" - windres $(SHL2LINKRES) $(SHL2LINKRESO) + $(WINDRES) $(SHL2LINKRES) $(SHL2LINKRESO) .ENDIF # "$(COM)"=="GCC" .ENDIF # "$(SHL2ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def - @echo dlltool --dllname $(SHL2TARGET)$(DLLPOST) \ - --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_2.cmd +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + @$(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL2LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL2DEF) \ + $(USE_2IMPLIB) \ + $(STDOBJ) \ + $(SHL2VERSIONOBJ) $(SHL2OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL2LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL2STDLIBS) -Wl,--end-group \ + $(SHL2STDSHL) $(STDSHL2) \ + $(SHL2LINKRESO) \ + )) +.ELSE @noop $(assign ALL2OBJLIST:=$(STDOBJ) $(SHL2OBJS) $(SHL2LINKRESO) $(shell $(TYPE) /dev/null $(SHL2LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) .IF "$(DEFLIB2NAME)"!="" # do not have to include objs @noop $(assign DEF2OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB2NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) @noop $(foreach,i,$(DEF2OBJLIST) $(assign ALL2OBJLIST:=$(ALL2OBJLIST:s?$i??))) .ENDIF # "$(DEFLIB2NAME)"!="" - @echo --output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_2.cmd -.IF "$(SHL2DEF)"!="" - @echo --input-def $(SHL2DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_2.cmd -.ELSE - @echo $(SHL2VERSIONOBJ) $(SHL2DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_2.cmd -.ENDIF - @echo $(ALL2OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_2.cmd - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ - $(STDOBJ) $(SHL2VERSIONOBJ) $(SHL2DESCRIPTIONOBJ) $(SHL2OBJS) $(SHL2LINKRESO) \ - `$(TYPE) /dev/null $(SHL2LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(COMMAND_ECHO)$(DLLTOOL) @@(mktmp \ + --dllname $(SHL2TARGET)$(DLLPOST) \ + --kill-at \ + --output-exp $(MISC)/$(@:b)_exp.o \ + $(SHL2VERSIONOBJ) \ + @(ALL2OBJLIST) + ) + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL2LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(MISC)/$(@:b)_exp.o \ + $(USE_2IMPLIB) \ + $(STDOBJ) \ + $(SHL2VERSIONOBJ) $(SHL2OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL2LIBS))) \ -Wl,--exclude-libs,ALL,--start-group $(SHL2STDLIBS) -Wl,--end-group \ - $(SHL2STDSHL) $(STDSHL2) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ - -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_2.cmd - .IF "$(VERBOSE)" == "TRUE" - @$(TYPE) $(MISC)/$(TARGET).$(@:b)_2.cmd - .ENDIF - @+source $(MISC)/$(TARGET).$(@:b)_2.cmd + $(SHL2STDSHL) $(STDSHL2) \ + $(SHL2LINKRESO) \ + )) +.ENDIF .ELSE .IF "$(linkinc)"=="" .IF "$(SHL2USE_EXPORTS)"!="name" @@ -972,7 +952,7 @@ $(SHL2TARGETN) : \ @echo $(STDSLO) $(SHL2OBJS:s/.obj/.o/) \ $(SHL2VERSIONOBJ) \ `cat /dev/null $(SHL2LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(SHL2LINKER) $(SHL2LINKFLAGS) $(SHL2VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(SHL2LINKER) $(SHL2LINKFLAGS) $(SHL2VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ $(SHL2STDLIBS) $(SHL2ARCHIVES) $(SHL2STDSHL) $(STDSHL2) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_2.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_2.cmd` \ @@ -992,6 +972,9 @@ $(SHL2TARGETN) : \ $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS2) $(SHL2TARGETN) .ENDIF # "$(SHL2NOCHECK)"!="" .ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB2FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL2OBJS)) $(shell cat /dev/null $(LIB2TARGET) $(SHL2LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ .ELSE # "$(OS)"=="MACOSX" @-$(RM) $(MISC)/$(TARGET).$(@:b)_2.cmd @echo $(SHL2LINKER) $(SHL2LINKFLAGS) $(SHL2SONAME) $(LINKFLAGSSHL) $(SHL2VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL2OBJS:s/.obj/.o/) \ @@ -1014,7 +997,7 @@ $(SHL2TARGETN) : \ .ENDIF # "$(SHL2NOCHECK)"!="" .ENDIF # "$(UPDATER)"=="YES" .ENDIF # "$(OS)"=="MACOSX" -.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" $(COMMAND_ECHO)$(RM) $(LB)/$(SHL2TARGETN:b) $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL2TARGETN:f) $(SHL2TARGETN:b) .ENDIF # "$(UNIXVERSIONNAMES)"!="" @@ -1023,75 +1006,12 @@ $(SHL2TARGETN) : \ .ENDIF .ENDIF # "$(GUI)" == "UNX" -.IF "$(GUI)" == "OS2" - -.IF "$(SHL2DEFAULTRES)"!="" - @+-$(RM) $(MISC)/$(SHL2DEFAULTRES:b).rc >& $(NULLDEV) -.IF "$(SHL2ICON)" != "" - @-+echo 1 ICON $(SHL2ICON) >> $(MISC)/$(SHL2DEFAULTRES:b).rc -.ENDIF -.IF "$(use_shl_versions)" != "" -.IF "$(SHL2ADD_VERINFO)"!="" - @-+echo $(EMQ)#include $(EMQ)"$(SHL2ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL2DEFAULTRES:b).rc -.ENDIF # "$(SHL2ADD_VERINFO)"!="" - @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL2DEFAULTRES:b).rc -# @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL2DEFAULTRES:b).rc -.ENDIF # "$(use_shl_versions)" != "" -# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR) - $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL2DEFAULTRES:b).rc -.ENDIF # "$(SHL2DEFAULTRES)"!="" - -.IF "$(SHL2ALLRES)"!="" - $(COMMAND_ECHO)+$(TYPE) $(SHL2ALLRES) > $(SHL2LINKRES) -.ENDIF # "$(SHL2ALLRES)"!="" - -.IF "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL2LINKER) $(SHL2LINKFLAGS) $(LINKFLAGSSHL) -o $@ \ - $(SHL2DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL2OBJS) $(SHL2VERSIONOBJ) \ - $(SHL2LIBS) \ - $(SHL2STDLIBS:^"-l") \ - $(SHL2LINKRES) \ - $(SHL2STDSHL:^"-l") $(STDSHL2:^"-l") - -.ELSE # "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL2LINKER) -v $(SHL2LINKFLAGS) \ - $(LINKFLAGSSHL) $(SHL2BASEX) \ - $(SHL2STACK) -o $(SHL2TARGETN) \ - $(SHL2DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL2OBJS) $(SHL2VERSIONOBJ) \ - $(SHL2LIBS) \ - $(SHL2STDLIBS:^"-l") \ - $(SHL2LINKRES) \ - $(SHL2STDSHL:^"-l") $(STDSHL2:^"-l") \ - @$(LS) $@ >& $(NULLDEV) - -.ENDIF # "$(USE_DEFFILE)"!="" - -.IF "$(SHL2TARGET8)" != "$(SHL2TARGET)" - $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL2TARGET8).dll -.ENDIF - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(SHL2TARGETN)"!="" # unroll begin .IF "$(SHL3TARGETN)"!="" -.IF "$(OS)"=="AIX" -SHL3STDLIBS= -.ENDIF - .IF "$(SHLLINKARCONLY)" != "" SHL3STDLIBS= STDSHL= @@ -1148,20 +1068,23 @@ $(MISC)/$(SHL3VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL3VERSIO .ENDIF .IF "$(GUI)" != "UNX" -.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)" == "WNT" .IF "$(SHL3IMPLIB)" == "" SHL3IMPLIB=i$(TARGET)_t3 .ENDIF # "$(SHL3IMPLIB)" == "" .IF "$(COM)" != "GCC" USE_3IMPLIB=-implib:$(LB)/$(SHL3IMPLIB).lib -.ENDIF # "$(COM)" != "GCC" SHL3IMPLIBN=$(LB)/$(SHL3IMPLIB).lib +.ELSE +SHL3IMPLIBN=$(LB)/lib$(SHL3IMPLIB).dll.a +USE_3IMPLIB=-Wl,--out-implib=$(SHL3IMPLIBN) +.ENDIF # "$(COM)" != "GCC" ALLTAR : $(SHL3IMPLIBN) .IF "$(USE_DEFFILE)"=="" USE_3IMPLIB_DEPS=$(LB)/$(SHL3IMPLIB).lib .ENDIF # "$(USE_DEFFILE)"=="" -.ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.ENDIF # "$(GUI)" == "WNT" USE_SHL3DEF=$(SHL3DEF) .ELSE # "$(GUI)" != "UNX" USE_SHL3DEF= @@ -1186,7 +1109,9 @@ $(USE_SHL3VERSIONMAP) .PHONY: .ENDIF # "$(SHL3VERSIONMAP)"!="" +.IF "$(OS)" != "AIX" SHL3VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL3VERSIONMAP) +.ENDIF $(USE_SHL3VERSIONMAP): \ $(SHL3OBJS)\ @@ -1223,7 +1148,9 @@ $(USE_SHL3VERSIONMAP) : #and now for the plain non-generic way... .IF "$(SHL3VERSIONMAP)"!="" USE_SHL3VERSIONMAP=$(MISC)/$(SHL3VERSIONMAP:b)_$(SHL3TARGET)$(SHL3VERSIONMAP:e) +.IF "$(OS)" != "AIX" SHL3VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL3VERSIONMAP) +.ENDIF .IF "$(OS)"=="MACOSX" $(USE_SHL3VERSIONMAP): $(SHL3OBJS) $(SHL3LIBS) @@ -1271,7 +1198,7 @@ $(USE_SHL3VERSIONMAP) .ERRREMOVE: $(SHL3VERSIONMAP) .ENDIF # "$(GUI)" != "UNX" .IF "$(UNIXVERSIONNAMES)"!="" -.IF "$(OS)"!="MACOSX" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" .IF "$(GUI)"=="UNX" SHL3SONAME=\"$(SONAME_SWITCH)$(SHL3TARGETN:f)\" .ENDIF # "$(GUI)"!="UNX" @@ -1294,7 +1221,7 @@ SHL3LINKRESO*=$(MISC)/$(SHL3TARGET)_res.o #.IF "$(SHL3TARGETN)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL3LIBS)"!="" $(MISC)/$(SHL3TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -1307,7 +1234,7 @@ $(SHL3TARGETN) : $(LINKINCTARGETS) .ELSE .IF "$(SHL3USE_EXPORTS)"=="name" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(COM)"!="GCC" .IF "$(SHL3LIBS)"!="" SHL3LINKLIST=$(MISC)/$(SHL3TARGET)_link.lst @@ -1324,20 +1251,6 @@ $(MISC)/%linkinc.ls: @echo . > $@ .ENDIF # "$(linkinc)"!="" -.IF "$(GUI)" == "OS2" -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL3TARGET8=$(shell @fix_shl $(SHL3TARGET)) -.ENDIF - -.IF "$(GUI)" == "OS2" -_SHL3IMP_ORD = $(SHL3STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL3STDLIBS:^"$(LB)/") -SHL3IMP_ORD = $(foreach,i,$(_SHL3IMP_ORD) $(shell @-ls $i)) -.ELSE -SHL3IMP_ORD = -.ENDIF - - $(SHL3TARGETN) : \ $(SHL3OBJS)\ $(SHL3LIBS)\ @@ -1346,7 +1259,6 @@ $(SHL3TARGETN) : \ $(USE_SHL3VERSIONMAP)\ $(SHL3RES)\ $(SHL3DEPN) \ - $(SHL3IMP_ORD) \ $(SHL3LINKLIST) @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" @@ -1368,39 +1280,69 @@ $(SHL3TARGETN) : \ @echo $(EMQ)#define INTERNAL_NAME $(SHL3TARGET:b) >> $(MISC)/$(SHL3DEFAULTRES:b).rc @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL3DEFAULTRES:b).rc .ENDIF # "$(use_shl_versions)" != "" - $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL3DEFAULTRES:b).rc +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL3DEFAULTRES) $(MISC)/$(SHL3DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL3DEFAULTRES:b).rc $(SHL3DEFAULTRES) +.ENDIF .ENDIF # "$(SHL3DEFAULTRES)"!="" .IF "$(SHL3ALLRES)"!="" $(COMMAND_ECHO)$(TYPE) $(SHL3ALLRES) > $(SHL3LINKRES) .IF "$(COM)"=="GCC" - windres $(SHL3LINKRES) $(SHL3LINKRESO) + $(WINDRES) $(SHL3LINKRES) $(SHL3LINKRESO) .ENDIF # "$(COM)"=="GCC" .ENDIF # "$(SHL3ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def - @echo dlltool --dllname $(SHL3TARGET)$(DLLPOST) \ - --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_3.cmd +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + @$(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL3LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL3DEF) \ + $(USE_3IMPLIB) \ + $(STDOBJ) \ + $(SHL3VERSIONOBJ) $(SHL3OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL3LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL3STDLIBS) -Wl,--end-group \ + $(SHL3STDSHL) $(STDSHL3) \ + $(SHL3LINKRESO) \ + )) +.ELSE @noop $(assign ALL3OBJLIST:=$(STDOBJ) $(SHL3OBJS) $(SHL3LINKRESO) $(shell $(TYPE) /dev/null $(SHL3LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) .IF "$(DEFLIB3NAME)"!="" # do not have to include objs @noop $(assign DEF3OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB3NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) @noop $(foreach,i,$(DEF3OBJLIST) $(assign ALL3OBJLIST:=$(ALL3OBJLIST:s?$i??))) .ENDIF # "$(DEFLIB3NAME)"!="" - @echo --output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_3.cmd -.IF "$(SHL3DEF)"!="" - @echo --input-def $(SHL3DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_3.cmd -.ELSE - @echo $(SHL3VERSIONOBJ) $(SHL3DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_3.cmd -.ENDIF - @echo $(ALL3OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_3.cmd - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ - $(STDOBJ) $(SHL3VERSIONOBJ) $(SHL3DESCRIPTIONOBJ) $(SHL3OBJS) $(SHL3LINKRESO) \ - `$(TYPE) /dev/null $(SHL3LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(COMMAND_ECHO)$(DLLTOOL) @@(mktmp \ + --dllname $(SHL3TARGET)$(DLLPOST) \ + --kill-at \ + --output-exp $(MISC)/$(@:b)_exp.o \ + $(SHL3VERSIONOBJ) \ + @(ALL3OBJLIST) + ) + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL3LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(MISC)/$(@:b)_exp.o \ + $(USE_3IMPLIB) \ + $(STDOBJ) \ + $(SHL3VERSIONOBJ) $(SHL3OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL3LIBS))) \ -Wl,--exclude-libs,ALL,--start-group $(SHL3STDLIBS) -Wl,--end-group \ - $(SHL3STDSHL) $(STDSHL3) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ - -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_3.cmd - .IF "$(VERBOSE)" == "TRUE" - @$(TYPE) $(MISC)/$(TARGET).$(@:b)_3.cmd - .ENDIF - @+source $(MISC)/$(TARGET).$(@:b)_3.cmd + $(SHL3STDSHL) $(STDSHL3) \ + $(SHL3LINKRESO) \ + )) +.ENDIF .ELSE .IF "$(linkinc)"=="" .IF "$(SHL3USE_EXPORTS)"!="name" @@ -1515,7 +1457,7 @@ $(SHL3TARGETN) : \ @echo $(STDSLO) $(SHL3OBJS:s/.obj/.o/) \ $(SHL3VERSIONOBJ) \ `cat /dev/null $(SHL3LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(SHL3LINKER) $(SHL3LINKFLAGS) $(SHL3VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(SHL3LINKER) $(SHL3LINKFLAGS) $(SHL3VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ $(SHL3STDLIBS) $(SHL3ARCHIVES) $(SHL3STDSHL) $(STDSHL3) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_3.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_3.cmd` \ @@ -1535,6 +1477,9 @@ $(SHL3TARGETN) : \ $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS3) $(SHL3TARGETN) .ENDIF # "$(SHL3NOCHECK)"!="" .ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB3FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL3OBJS)) $(shell cat /dev/null $(LIB3TARGET) $(SHL3LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ .ELSE # "$(OS)"=="MACOSX" @-$(RM) $(MISC)/$(TARGET).$(@:b)_3.cmd @echo $(SHL3LINKER) $(SHL3LINKFLAGS) $(SHL3SONAME) $(LINKFLAGSSHL) $(SHL3VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL3OBJS:s/.obj/.o/) \ @@ -1557,7 +1502,7 @@ $(SHL3TARGETN) : \ .ENDIF # "$(SHL3NOCHECK)"!="" .ENDIF # "$(UPDATER)"=="YES" .ENDIF # "$(OS)"=="MACOSX" -.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" $(COMMAND_ECHO)$(RM) $(LB)/$(SHL3TARGETN:b) $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL3TARGETN:f) $(SHL3TARGETN:b) .ENDIF # "$(UNIXVERSIONNAMES)"!="" @@ -1566,75 +1511,12 @@ $(SHL3TARGETN) : \ .ENDIF .ENDIF # "$(GUI)" == "UNX" -.IF "$(GUI)" == "OS2" - -.IF "$(SHL3DEFAULTRES)"!="" - @+-$(RM) $(MISC)/$(SHL3DEFAULTRES:b).rc >& $(NULLDEV) -.IF "$(SHL3ICON)" != "" - @-+echo 1 ICON $(SHL3ICON) >> $(MISC)/$(SHL3DEFAULTRES:b).rc -.ENDIF -.IF "$(use_shl_versions)" != "" -.IF "$(SHL3ADD_VERINFO)"!="" - @-+echo $(EMQ)#include $(EMQ)"$(SHL3ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL3DEFAULTRES:b).rc -.ENDIF # "$(SHL3ADD_VERINFO)"!="" - @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL3DEFAULTRES:b).rc -# @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL3DEFAULTRES:b).rc -.ENDIF # "$(use_shl_versions)" != "" -# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR) - $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL3DEFAULTRES:b).rc -.ENDIF # "$(SHL3DEFAULTRES)"!="" - -.IF "$(SHL3ALLRES)"!="" - $(COMMAND_ECHO)+$(TYPE) $(SHL3ALLRES) > $(SHL3LINKRES) -.ENDIF # "$(SHL3ALLRES)"!="" - -.IF "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL3LINKER) $(SHL3LINKFLAGS) $(LINKFLAGSSHL) -o $@ \ - $(SHL3DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL3OBJS) $(SHL3VERSIONOBJ) \ - $(SHL3LIBS) \ - $(SHL3STDLIBS:^"-l") \ - $(SHL3LINKRES) \ - $(SHL3STDSHL:^"-l") $(STDSHL3:^"-l") - -.ELSE # "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL3LINKER) -v $(SHL3LINKFLAGS) \ - $(LINKFLAGSSHL) $(SHL3BASEX) \ - $(SHL3STACK) -o $(SHL3TARGETN) \ - $(SHL3DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL3OBJS) $(SHL3VERSIONOBJ) \ - $(SHL3LIBS) \ - $(SHL3STDLIBS:^"-l") \ - $(SHL3LINKRES) \ - $(SHL3STDSHL:^"-l") $(STDSHL3:^"-l") \ - @$(LS) $@ >& $(NULLDEV) - -.ENDIF # "$(USE_DEFFILE)"!="" - -.IF "$(SHL3TARGET8)" != "$(SHL3TARGET)" - $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL3TARGET8).dll -.ENDIF - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(SHL3TARGETN)"!="" # unroll begin .IF "$(SHL4TARGETN)"!="" -.IF "$(OS)"=="AIX" -SHL4STDLIBS= -.ENDIF - .IF "$(SHLLINKARCONLY)" != "" SHL4STDLIBS= STDSHL= @@ -1691,20 +1573,23 @@ $(MISC)/$(SHL4VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL4VERSIO .ENDIF .IF "$(GUI)" != "UNX" -.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)" == "WNT" .IF "$(SHL4IMPLIB)" == "" SHL4IMPLIB=i$(TARGET)_t4 .ENDIF # "$(SHL4IMPLIB)" == "" .IF "$(COM)" != "GCC" USE_4IMPLIB=-implib:$(LB)/$(SHL4IMPLIB).lib -.ENDIF # "$(COM)" != "GCC" SHL4IMPLIBN=$(LB)/$(SHL4IMPLIB).lib +.ELSE +SHL4IMPLIBN=$(LB)/lib$(SHL4IMPLIB).dll.a +USE_4IMPLIB=-Wl,--out-implib=$(SHL4IMPLIBN) +.ENDIF # "$(COM)" != "GCC" ALLTAR : $(SHL4IMPLIBN) .IF "$(USE_DEFFILE)"=="" USE_4IMPLIB_DEPS=$(LB)/$(SHL4IMPLIB).lib .ENDIF # "$(USE_DEFFILE)"=="" -.ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.ENDIF # "$(GUI)" == "WNT" USE_SHL4DEF=$(SHL4DEF) .ELSE # "$(GUI)" != "UNX" USE_SHL4DEF= @@ -1729,7 +1614,9 @@ $(USE_SHL4VERSIONMAP) .PHONY: .ENDIF # "$(SHL4VERSIONMAP)"!="" +.IF "$(OS)" != "AIX" SHL4VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL4VERSIONMAP) +.ENDIF $(USE_SHL4VERSIONMAP): \ $(SHL4OBJS)\ @@ -1766,7 +1653,9 @@ $(USE_SHL4VERSIONMAP) : #and now for the plain non-generic way... .IF "$(SHL4VERSIONMAP)"!="" USE_SHL4VERSIONMAP=$(MISC)/$(SHL4VERSIONMAP:b)_$(SHL4TARGET)$(SHL4VERSIONMAP:e) +.IF "$(OS)" != "AIX" SHL4VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL4VERSIONMAP) +.ENDIF .IF "$(OS)"=="MACOSX" $(USE_SHL4VERSIONMAP): $(SHL4OBJS) $(SHL4LIBS) @@ -1814,7 +1703,7 @@ $(USE_SHL4VERSIONMAP) .ERRREMOVE: $(SHL4VERSIONMAP) .ENDIF # "$(GUI)" != "UNX" .IF "$(UNIXVERSIONNAMES)"!="" -.IF "$(OS)"!="MACOSX" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" .IF "$(GUI)"=="UNX" SHL4SONAME=\"$(SONAME_SWITCH)$(SHL4TARGETN:f)\" .ENDIF # "$(GUI)"!="UNX" @@ -1837,7 +1726,7 @@ SHL4LINKRESO*=$(MISC)/$(SHL4TARGET)_res.o #.IF "$(SHL4TARGETN)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL4LIBS)"!="" $(MISC)/$(SHL4TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -1850,7 +1739,7 @@ $(SHL4TARGETN) : $(LINKINCTARGETS) .ELSE .IF "$(SHL4USE_EXPORTS)"=="name" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(COM)"!="GCC" .IF "$(SHL4LIBS)"!="" SHL4LINKLIST=$(MISC)/$(SHL4TARGET)_link.lst @@ -1867,20 +1756,6 @@ $(MISC)/%linkinc.ls: @echo . > $@ .ENDIF # "$(linkinc)"!="" -.IF "$(GUI)" == "OS2" -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL4TARGET8=$(shell @fix_shl $(SHL4TARGET)) -.ENDIF - -.IF "$(GUI)" == "OS2" -_SHL4IMP_ORD = $(SHL4STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL4STDLIBS:^"$(LB)/") -SHL4IMP_ORD = $(foreach,i,$(_SHL4IMP_ORD) $(shell @-ls $i)) -.ELSE -SHL4IMP_ORD = -.ENDIF - - $(SHL4TARGETN) : \ $(SHL4OBJS)\ $(SHL4LIBS)\ @@ -1889,7 +1764,6 @@ $(SHL4TARGETN) : \ $(USE_SHL4VERSIONMAP)\ $(SHL4RES)\ $(SHL4DEPN) \ - $(SHL4IMP_ORD) \ $(SHL4LINKLIST) @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" @@ -1911,39 +1785,69 @@ $(SHL4TARGETN) : \ @echo $(EMQ)#define INTERNAL_NAME $(SHL4TARGET:b) >> $(MISC)/$(SHL4DEFAULTRES:b).rc @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL4DEFAULTRES:b).rc .ENDIF # "$(use_shl_versions)" != "" - $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL4DEFAULTRES:b).rc +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL4DEFAULTRES) $(MISC)/$(SHL4DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL4DEFAULTRES:b).rc $(SHL4DEFAULTRES) +.ENDIF .ENDIF # "$(SHL4DEFAULTRES)"!="" .IF "$(SHL4ALLRES)"!="" $(COMMAND_ECHO)$(TYPE) $(SHL4ALLRES) > $(SHL4LINKRES) .IF "$(COM)"=="GCC" - windres $(SHL4LINKRES) $(SHL4LINKRESO) + $(WINDRES) $(SHL4LINKRES) $(SHL4LINKRESO) .ENDIF # "$(COM)"=="GCC" .ENDIF # "$(SHL4ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def - @echo dlltool --dllname $(SHL4TARGET)$(DLLPOST) \ - --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_4.cmd +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + @$(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL4LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL4DEF) \ + $(USE_4IMPLIB) \ + $(STDOBJ) \ + $(SHL4VERSIONOBJ) $(SHL4OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL4LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL4STDLIBS) -Wl,--end-group \ + $(SHL4STDSHL) $(STDSHL4) \ + $(SHL4LINKRESO) \ + )) +.ELSE @noop $(assign ALL4OBJLIST:=$(STDOBJ) $(SHL4OBJS) $(SHL4LINKRESO) $(shell $(TYPE) /dev/null $(SHL4LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) .IF "$(DEFLIB4NAME)"!="" # do not have to include objs @noop $(assign DEF4OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB4NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) @noop $(foreach,i,$(DEF4OBJLIST) $(assign ALL4OBJLIST:=$(ALL4OBJLIST:s?$i??))) .ENDIF # "$(DEFLIB4NAME)"!="" - @echo --output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_4.cmd -.IF "$(SHL4DEF)"!="" - @echo --input-def $(SHL4DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_4.cmd -.ELSE - @echo $(SHL4VERSIONOBJ) $(SHL4DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_4.cmd -.ENDIF - @echo $(ALL4OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_4.cmd - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ - $(STDOBJ) $(SHL4VERSIONOBJ) $(SHL4DESCRIPTIONOBJ) $(SHL4OBJS) $(SHL4LINKRESO) \ - `$(TYPE) /dev/null $(SHL4LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(COMMAND_ECHO)$(DLLTOOL) @@(mktmp \ + --dllname $(SHL4TARGET)$(DLLPOST) \ + --kill-at \ + --output-exp $(MISC)/$(@:b)_exp.o \ + $(SHL4VERSIONOBJ) \ + @(ALL4OBJLIST) + ) + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL4LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(MISC)/$(@:b)_exp.o \ + $(USE_4IMPLIB) \ + $(STDOBJ) \ + $(SHL4VERSIONOBJ) $(SHL4OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL4LIBS))) \ -Wl,--exclude-libs,ALL,--start-group $(SHL4STDLIBS) -Wl,--end-group \ - $(SHL4STDSHL) $(STDSHL4) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ - -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_4.cmd - .IF "$(VERBOSE)" == "TRUE" - @$(TYPE) $(MISC)/$(TARGET).$(@:b)_4.cmd - .ENDIF - @+source $(MISC)/$(TARGET).$(@:b)_4.cmd + $(SHL4STDSHL) $(STDSHL4) \ + $(SHL4LINKRESO) \ + )) +.ENDIF .ELSE .IF "$(linkinc)"=="" .IF "$(SHL4USE_EXPORTS)"!="name" @@ -2058,7 +1962,7 @@ $(SHL4TARGETN) : \ @echo $(STDSLO) $(SHL4OBJS:s/.obj/.o/) \ $(SHL4VERSIONOBJ) \ `cat /dev/null $(SHL4LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(SHL4LINKER) $(SHL4LINKFLAGS) $(SHL4VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(SHL4LINKER) $(SHL4LINKFLAGS) $(SHL4VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ $(SHL4STDLIBS) $(SHL4ARCHIVES) $(SHL4STDSHL) $(STDSHL4) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_4.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_4.cmd` \ @@ -2078,6 +1982,9 @@ $(SHL4TARGETN) : \ $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS4) $(SHL4TARGETN) .ENDIF # "$(SHL4NOCHECK)"!="" .ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB4FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL4OBJS)) $(shell cat /dev/null $(LIB4TARGET) $(SHL4LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ .ELSE # "$(OS)"=="MACOSX" @-$(RM) $(MISC)/$(TARGET).$(@:b)_4.cmd @echo $(SHL4LINKER) $(SHL4LINKFLAGS) $(SHL4SONAME) $(LINKFLAGSSHL) $(SHL4VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL4OBJS:s/.obj/.o/) \ @@ -2100,7 +2007,7 @@ $(SHL4TARGETN) : \ .ENDIF # "$(SHL4NOCHECK)"!="" .ENDIF # "$(UPDATER)"=="YES" .ENDIF # "$(OS)"=="MACOSX" -.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" $(COMMAND_ECHO)$(RM) $(LB)/$(SHL4TARGETN:b) $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL4TARGETN:f) $(SHL4TARGETN:b) .ENDIF # "$(UNIXVERSIONNAMES)"!="" @@ -2109,75 +2016,12 @@ $(SHL4TARGETN) : \ .ENDIF .ENDIF # "$(GUI)" == "UNX" -.IF "$(GUI)" == "OS2" - -.IF "$(SHL4DEFAULTRES)"!="" - @+-$(RM) $(MISC)/$(SHL4DEFAULTRES:b).rc >& $(NULLDEV) -.IF "$(SHL4ICON)" != "" - @-+echo 1 ICON $(SHL4ICON) >> $(MISC)/$(SHL4DEFAULTRES:b).rc -.ENDIF -.IF "$(use_shl_versions)" != "" -.IF "$(SHL4ADD_VERINFO)"!="" - @-+echo $(EMQ)#include $(EMQ)"$(SHL4ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL4DEFAULTRES:b).rc -.ENDIF # "$(SHL4ADD_VERINFO)"!="" - @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL4DEFAULTRES:b).rc -# @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL4DEFAULTRES:b).rc -.ENDIF # "$(use_shl_versions)" != "" -# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR) - $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL4DEFAULTRES:b).rc -.ENDIF # "$(SHL4DEFAULTRES)"!="" - -.IF "$(SHL4ALLRES)"!="" - $(COMMAND_ECHO)+$(TYPE) $(SHL4ALLRES) > $(SHL4LINKRES) -.ENDIF # "$(SHL4ALLRES)"!="" - -.IF "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL4LINKER) $(SHL4LINKFLAGS) $(LINKFLAGSSHL) -o $@ \ - $(SHL4DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL4OBJS) $(SHL4VERSIONOBJ) \ - $(SHL4LIBS) \ - $(SHL4STDLIBS:^"-l") \ - $(SHL4LINKRES) \ - $(SHL4STDSHL:^"-l") $(STDSHL4:^"-l") - -.ELSE # "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL4LINKER) -v $(SHL4LINKFLAGS) \ - $(LINKFLAGSSHL) $(SHL4BASEX) \ - $(SHL4STACK) -o $(SHL4TARGETN) \ - $(SHL4DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL4OBJS) $(SHL4VERSIONOBJ) \ - $(SHL4LIBS) \ - $(SHL4STDLIBS:^"-l") \ - $(SHL4LINKRES) \ - $(SHL4STDSHL:^"-l") $(STDSHL4:^"-l") \ - @$(LS) $@ >& $(NULLDEV) - -.ENDIF # "$(USE_DEFFILE)"!="" - -.IF "$(SHL4TARGET8)" != "$(SHL4TARGET)" - $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL4TARGET8).dll -.ENDIF - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(SHL4TARGETN)"!="" # unroll begin .IF "$(SHL5TARGETN)"!="" -.IF "$(OS)"=="AIX" -SHL5STDLIBS= -.ENDIF - .IF "$(SHLLINKARCONLY)" != "" SHL5STDLIBS= STDSHL= @@ -2234,20 +2078,23 @@ $(MISC)/$(SHL5VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL5VERSIO .ENDIF .IF "$(GUI)" != "UNX" -.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)" == "WNT" .IF "$(SHL5IMPLIB)" == "" SHL5IMPLIB=i$(TARGET)_t5 .ENDIF # "$(SHL5IMPLIB)" == "" .IF "$(COM)" != "GCC" USE_5IMPLIB=-implib:$(LB)/$(SHL5IMPLIB).lib -.ENDIF # "$(COM)" != "GCC" SHL5IMPLIBN=$(LB)/$(SHL5IMPLIB).lib +.ELSE +SHL5IMPLIBN=$(LB)/lib$(SHL5IMPLIB).dll.a +USE_5IMPLIB=-Wl,--out-implib=$(SHL5IMPLIBN) +.ENDIF # "$(COM)" != "GCC" ALLTAR : $(SHL5IMPLIBN) .IF "$(USE_DEFFILE)"=="" USE_5IMPLIB_DEPS=$(LB)/$(SHL5IMPLIB).lib .ENDIF # "$(USE_DEFFILE)"=="" -.ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.ENDIF # "$(GUI)" == "WNT" USE_SHL5DEF=$(SHL5DEF) .ELSE # "$(GUI)" != "UNX" USE_SHL5DEF= @@ -2272,7 +2119,9 @@ $(USE_SHL5VERSIONMAP) .PHONY: .ENDIF # "$(SHL5VERSIONMAP)"!="" +.IF "$(OS)" != "AIX" SHL5VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL5VERSIONMAP) +.ENDIF $(USE_SHL5VERSIONMAP): \ $(SHL5OBJS)\ @@ -2309,7 +2158,9 @@ $(USE_SHL5VERSIONMAP) : #and now for the plain non-generic way... .IF "$(SHL5VERSIONMAP)"!="" USE_SHL5VERSIONMAP=$(MISC)/$(SHL5VERSIONMAP:b)_$(SHL5TARGET)$(SHL5VERSIONMAP:e) +.IF "$(OS)" != "AIX" SHL5VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL5VERSIONMAP) +.ENDIF .IF "$(OS)"=="MACOSX" $(USE_SHL5VERSIONMAP): $(SHL5OBJS) $(SHL5LIBS) @@ -2357,7 +2208,7 @@ $(USE_SHL5VERSIONMAP) .ERRREMOVE: $(SHL5VERSIONMAP) .ENDIF # "$(GUI)" != "UNX" .IF "$(UNIXVERSIONNAMES)"!="" -.IF "$(OS)"!="MACOSX" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" .IF "$(GUI)"=="UNX" SHL5SONAME=\"$(SONAME_SWITCH)$(SHL5TARGETN:f)\" .ENDIF # "$(GUI)"!="UNX" @@ -2380,7 +2231,7 @@ SHL5LINKRESO*=$(MISC)/$(SHL5TARGET)_res.o #.IF "$(SHL5TARGETN)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL5LIBS)"!="" $(MISC)/$(SHL5TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -2393,7 +2244,7 @@ $(SHL5TARGETN) : $(LINKINCTARGETS) .ELSE .IF "$(SHL5USE_EXPORTS)"=="name" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(COM)"!="GCC" .IF "$(SHL5LIBS)"!="" SHL5LINKLIST=$(MISC)/$(SHL5TARGET)_link.lst @@ -2410,20 +2261,6 @@ $(MISC)/%linkinc.ls: @echo . > $@ .ENDIF # "$(linkinc)"!="" -.IF "$(GUI)" == "OS2" -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL5TARGET8=$(shell @fix_shl $(SHL5TARGET)) -.ENDIF - -.IF "$(GUI)" == "OS2" -_SHL5IMP_ORD = $(SHL5STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL5STDLIBS:^"$(LB)/") -SHL5IMP_ORD = $(foreach,i,$(_SHL5IMP_ORD) $(shell @-ls $i)) -.ELSE -SHL5IMP_ORD = -.ENDIF - - $(SHL5TARGETN) : \ $(SHL5OBJS)\ $(SHL5LIBS)\ @@ -2432,7 +2269,6 @@ $(SHL5TARGETN) : \ $(USE_SHL5VERSIONMAP)\ $(SHL5RES)\ $(SHL5DEPN) \ - $(SHL5IMP_ORD) \ $(SHL5LINKLIST) @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" @@ -2454,39 +2290,69 @@ $(SHL5TARGETN) : \ @echo $(EMQ)#define INTERNAL_NAME $(SHL5TARGET:b) >> $(MISC)/$(SHL5DEFAULTRES:b).rc @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL5DEFAULTRES:b).rc .ENDIF # "$(use_shl_versions)" != "" - $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL5DEFAULTRES:b).rc +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL5DEFAULTRES) $(MISC)/$(SHL5DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL5DEFAULTRES:b).rc $(SHL5DEFAULTRES) +.ENDIF .ENDIF # "$(SHL5DEFAULTRES)"!="" .IF "$(SHL5ALLRES)"!="" $(COMMAND_ECHO)$(TYPE) $(SHL5ALLRES) > $(SHL5LINKRES) .IF "$(COM)"=="GCC" - windres $(SHL5LINKRES) $(SHL5LINKRESO) + $(WINDRES) $(SHL5LINKRES) $(SHL5LINKRESO) .ENDIF # "$(COM)"=="GCC" .ENDIF # "$(SHL5ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def - @echo dlltool --dllname $(SHL5TARGET)$(DLLPOST) \ - --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_5.cmd +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + @$(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL5LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL5DEF) \ + $(USE_5IMPLIB) \ + $(STDOBJ) \ + $(SHL5VERSIONOBJ) $(SHL5OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL5LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL5STDLIBS) -Wl,--end-group \ + $(SHL5STDSHL) $(STDSHL5) \ + $(SHL5LINKRESO) \ + )) +.ELSE @noop $(assign ALL5OBJLIST:=$(STDOBJ) $(SHL5OBJS) $(SHL5LINKRESO) $(shell $(TYPE) /dev/null $(SHL5LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) .IF "$(DEFLIB5NAME)"!="" # do not have to include objs @noop $(assign DEF5OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB5NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) @noop $(foreach,i,$(DEF5OBJLIST) $(assign ALL5OBJLIST:=$(ALL5OBJLIST:s?$i??))) .ENDIF # "$(DEFLIB5NAME)"!="" - @echo --output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_5.cmd -.IF "$(SHL5DEF)"!="" - @echo --input-def $(SHL5DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_5.cmd -.ELSE - @echo $(SHL5VERSIONOBJ) $(SHL5DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_5.cmd -.ENDIF - @echo $(ALL5OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_5.cmd - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ - $(STDOBJ) $(SHL5VERSIONOBJ) $(SHL5DESCRIPTIONOBJ) $(SHL5OBJS) $(SHL5LINKRESO) \ - `$(TYPE) /dev/null $(SHL5LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(COMMAND_ECHO)$(DLLTOOL) @@(mktmp \ + --dllname $(SHL5TARGET)$(DLLPOST) \ + --kill-at \ + --output-exp $(MISC)/$(@:b)_exp.o \ + $(SHL5VERSIONOBJ) \ + @(ALL5OBJLIST) + ) + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL5LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(MISC)/$(@:b)_exp.o \ + $(USE_5IMPLIB) \ + $(STDOBJ) \ + $(SHL5VERSIONOBJ) $(SHL5OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL5LIBS))) \ -Wl,--exclude-libs,ALL,--start-group $(SHL5STDLIBS) -Wl,--end-group \ - $(SHL5STDSHL) $(STDSHL5) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ - -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_5.cmd - .IF "$(VERBOSE)" == "TRUE" - @$(TYPE) $(MISC)/$(TARGET).$(@:b)_5.cmd - .ENDIF - @+source $(MISC)/$(TARGET).$(@:b)_5.cmd + $(SHL5STDSHL) $(STDSHL5) \ + $(SHL5LINKRESO) \ + )) +.ENDIF .ELSE .IF "$(linkinc)"=="" .IF "$(SHL5USE_EXPORTS)"!="name" @@ -2601,7 +2467,7 @@ $(SHL5TARGETN) : \ @echo $(STDSLO) $(SHL5OBJS:s/.obj/.o/) \ $(SHL5VERSIONOBJ) \ `cat /dev/null $(SHL5LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(SHL5LINKER) $(SHL5LINKFLAGS) $(SHL5VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(SHL5LINKER) $(SHL5LINKFLAGS) $(SHL5VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ $(SHL5STDLIBS) $(SHL5ARCHIVES) $(SHL5STDSHL) $(STDSHL5) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_5.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_5.cmd` \ @@ -2621,6 +2487,9 @@ $(SHL5TARGETN) : \ $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS5) $(SHL5TARGETN) .ENDIF # "$(SHL5NOCHECK)"!="" .ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB5FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL5OBJS)) $(shell cat /dev/null $(LIB5TARGET) $(SHL5LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ .ELSE # "$(OS)"=="MACOSX" @-$(RM) $(MISC)/$(TARGET).$(@:b)_5.cmd @echo $(SHL5LINKER) $(SHL5LINKFLAGS) $(SHL5SONAME) $(LINKFLAGSSHL) $(SHL5VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL5OBJS:s/.obj/.o/) \ @@ -2643,7 +2512,7 @@ $(SHL5TARGETN) : \ .ENDIF # "$(SHL5NOCHECK)"!="" .ENDIF # "$(UPDATER)"=="YES" .ENDIF # "$(OS)"=="MACOSX" -.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" $(COMMAND_ECHO)$(RM) $(LB)/$(SHL5TARGETN:b) $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL5TARGETN:f) $(SHL5TARGETN:b) .ENDIF # "$(UNIXVERSIONNAMES)"!="" @@ -2652,75 +2521,12 @@ $(SHL5TARGETN) : \ .ENDIF .ENDIF # "$(GUI)" == "UNX" -.IF "$(GUI)" == "OS2" - -.IF "$(SHL5DEFAULTRES)"!="" - @+-$(RM) $(MISC)/$(SHL5DEFAULTRES:b).rc >& $(NULLDEV) -.IF "$(SHL5ICON)" != "" - @-+echo 1 ICON $(SHL5ICON) >> $(MISC)/$(SHL5DEFAULTRES:b).rc -.ENDIF -.IF "$(use_shl_versions)" != "" -.IF "$(SHL5ADD_VERINFO)"!="" - @-+echo $(EMQ)#include $(EMQ)"$(SHL5ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL5DEFAULTRES:b).rc -.ENDIF # "$(SHL5ADD_VERINFO)"!="" - @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL5DEFAULTRES:b).rc -# @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL5DEFAULTRES:b).rc -.ENDIF # "$(use_shl_versions)" != "" -# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR) - $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL5DEFAULTRES:b).rc -.ENDIF # "$(SHL5DEFAULTRES)"!="" - -.IF "$(SHL5ALLRES)"!="" - $(COMMAND_ECHO)+$(TYPE) $(SHL5ALLRES) > $(SHL5LINKRES) -.ENDIF # "$(SHL5ALLRES)"!="" - -.IF "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL5LINKER) $(SHL5LINKFLAGS) $(LINKFLAGSSHL) -o $@ \ - $(SHL5DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL5OBJS) $(SHL5VERSIONOBJ) \ - $(SHL5LIBS) \ - $(SHL5STDLIBS:^"-l") \ - $(SHL5LINKRES) \ - $(SHL5STDSHL:^"-l") $(STDSHL5:^"-l") - -.ELSE # "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL5LINKER) -v $(SHL5LINKFLAGS) \ - $(LINKFLAGSSHL) $(SHL5BASEX) \ - $(SHL5STACK) -o $(SHL5TARGETN) \ - $(SHL5DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL5OBJS) $(SHL5VERSIONOBJ) \ - $(SHL5LIBS) \ - $(SHL5STDLIBS:^"-l") \ - $(SHL5LINKRES) \ - $(SHL5STDSHL:^"-l") $(STDSHL5:^"-l") \ - @$(LS) $@ >& $(NULLDEV) - -.ENDIF # "$(USE_DEFFILE)"!="" - -.IF "$(SHL5TARGET8)" != "$(SHL5TARGET)" - $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL5TARGET8).dll -.ENDIF - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(SHL5TARGETN)"!="" # unroll begin .IF "$(SHL6TARGETN)"!="" -.IF "$(OS)"=="AIX" -SHL6STDLIBS= -.ENDIF - .IF "$(SHLLINKARCONLY)" != "" SHL6STDLIBS= STDSHL= @@ -2777,20 +2583,23 @@ $(MISC)/$(SHL6VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL6VERSIO .ENDIF .IF "$(GUI)" != "UNX" -.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)" == "WNT" .IF "$(SHL6IMPLIB)" == "" SHL6IMPLIB=i$(TARGET)_t6 .ENDIF # "$(SHL6IMPLIB)" == "" .IF "$(COM)" != "GCC" USE_6IMPLIB=-implib:$(LB)/$(SHL6IMPLIB).lib -.ENDIF # "$(COM)" != "GCC" SHL6IMPLIBN=$(LB)/$(SHL6IMPLIB).lib +.ELSE +SHL6IMPLIBN=$(LB)/lib$(SHL6IMPLIB).dll.a +USE_6IMPLIB=-Wl,--out-implib=$(SHL6IMPLIBN) +.ENDIF # "$(COM)" != "GCC" ALLTAR : $(SHL6IMPLIBN) .IF "$(USE_DEFFILE)"=="" USE_6IMPLIB_DEPS=$(LB)/$(SHL6IMPLIB).lib .ENDIF # "$(USE_DEFFILE)"=="" -.ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.ENDIF # "$(GUI)" == "WNT" USE_SHL6DEF=$(SHL6DEF) .ELSE # "$(GUI)" != "UNX" USE_SHL6DEF= @@ -2815,7 +2624,9 @@ $(USE_SHL6VERSIONMAP) .PHONY: .ENDIF # "$(SHL6VERSIONMAP)"!="" +.IF "$(OS)" != "AIX" SHL6VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL6VERSIONMAP) +.ENDIF $(USE_SHL6VERSIONMAP): \ $(SHL6OBJS)\ @@ -2852,7 +2663,9 @@ $(USE_SHL6VERSIONMAP) : #and now for the plain non-generic way... .IF "$(SHL6VERSIONMAP)"!="" USE_SHL6VERSIONMAP=$(MISC)/$(SHL6VERSIONMAP:b)_$(SHL6TARGET)$(SHL6VERSIONMAP:e) +.IF "$(OS)" != "AIX" SHL6VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL6VERSIONMAP) +.ENDIF .IF "$(OS)"=="MACOSX" $(USE_SHL6VERSIONMAP): $(SHL6OBJS) $(SHL6LIBS) @@ -2900,7 +2713,7 @@ $(USE_SHL6VERSIONMAP) .ERRREMOVE: $(SHL6VERSIONMAP) .ENDIF # "$(GUI)" != "UNX" .IF "$(UNIXVERSIONNAMES)"!="" -.IF "$(OS)"!="MACOSX" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" .IF "$(GUI)"=="UNX" SHL6SONAME=\"$(SONAME_SWITCH)$(SHL6TARGETN:f)\" .ENDIF # "$(GUI)"!="UNX" @@ -2923,7 +2736,7 @@ SHL6LINKRESO*=$(MISC)/$(SHL6TARGET)_res.o #.IF "$(SHL6TARGETN)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL6LIBS)"!="" $(MISC)/$(SHL6TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -2936,7 +2749,7 @@ $(SHL6TARGETN) : $(LINKINCTARGETS) .ELSE .IF "$(SHL6USE_EXPORTS)"=="name" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(COM)"!="GCC" .IF "$(SHL6LIBS)"!="" SHL6LINKLIST=$(MISC)/$(SHL6TARGET)_link.lst @@ -2953,20 +2766,6 @@ $(MISC)/%linkinc.ls: @echo . > $@ .ENDIF # "$(linkinc)"!="" -.IF "$(GUI)" == "OS2" -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL6TARGET8=$(shell @fix_shl $(SHL6TARGET)) -.ENDIF - -.IF "$(GUI)" == "OS2" -_SHL6IMP_ORD = $(SHL6STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL6STDLIBS:^"$(LB)/") -SHL6IMP_ORD = $(foreach,i,$(_SHL6IMP_ORD) $(shell @-ls $i)) -.ELSE -SHL6IMP_ORD = -.ENDIF - - $(SHL6TARGETN) : \ $(SHL6OBJS)\ $(SHL6LIBS)\ @@ -2975,7 +2774,6 @@ $(SHL6TARGETN) : \ $(USE_SHL6VERSIONMAP)\ $(SHL6RES)\ $(SHL6DEPN) \ - $(SHL6IMP_ORD) \ $(SHL6LINKLIST) @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" @@ -2997,39 +2795,69 @@ $(SHL6TARGETN) : \ @echo $(EMQ)#define INTERNAL_NAME $(SHL6TARGET:b) >> $(MISC)/$(SHL6DEFAULTRES:b).rc @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL6DEFAULTRES:b).rc .ENDIF # "$(use_shl_versions)" != "" - $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL6DEFAULTRES:b).rc +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL6DEFAULTRES) $(MISC)/$(SHL6DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL6DEFAULTRES:b).rc $(SHL6DEFAULTRES) +.ENDIF .ENDIF # "$(SHL6DEFAULTRES)"!="" .IF "$(SHL6ALLRES)"!="" $(COMMAND_ECHO)$(TYPE) $(SHL6ALLRES) > $(SHL6LINKRES) .IF "$(COM)"=="GCC" - windres $(SHL6LINKRES) $(SHL6LINKRESO) + $(WINDRES) $(SHL6LINKRES) $(SHL6LINKRESO) .ENDIF # "$(COM)"=="GCC" .ENDIF # "$(SHL6ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def - @echo dlltool --dllname $(SHL6TARGET)$(DLLPOST) \ - --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_6.cmd +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + @$(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL6LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL6DEF) \ + $(USE_6IMPLIB) \ + $(STDOBJ) \ + $(SHL6VERSIONOBJ) $(SHL6OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL6LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL6STDLIBS) -Wl,--end-group \ + $(SHL6STDSHL) $(STDSHL6) \ + $(SHL6LINKRESO) \ + )) +.ELSE @noop $(assign ALL6OBJLIST:=$(STDOBJ) $(SHL6OBJS) $(SHL6LINKRESO) $(shell $(TYPE) /dev/null $(SHL6LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) .IF "$(DEFLIB6NAME)"!="" # do not have to include objs @noop $(assign DEF6OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB6NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) @noop $(foreach,i,$(DEF6OBJLIST) $(assign ALL6OBJLIST:=$(ALL6OBJLIST:s?$i??))) .ENDIF # "$(DEFLIB6NAME)"!="" - @echo --output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_6.cmd -.IF "$(SHL6DEF)"!="" - @echo --input-def $(SHL6DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_6.cmd -.ELSE - @echo $(SHL6VERSIONOBJ) $(SHL6DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_6.cmd -.ENDIF - @echo $(ALL6OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_6.cmd - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ - $(STDOBJ) $(SHL6VERSIONOBJ) $(SHL6DESCRIPTIONOBJ) $(SHL6OBJS) $(SHL6LINKRESO) \ - `$(TYPE) /dev/null $(SHL6LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(COMMAND_ECHO)$(DLLTOOL) @@(mktmp \ + --dllname $(SHL6TARGET)$(DLLPOST) \ + --kill-at \ + --output-exp $(MISC)/$(@:b)_exp.o \ + $(SHL6VERSIONOBJ) \ + @(ALL6OBJLIST) + ) + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL6LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(MISC)/$(@:b)_exp.o \ + $(USE_6IMPLIB) \ + $(STDOBJ) \ + $(SHL6VERSIONOBJ) $(SHL6OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL6LIBS))) \ -Wl,--exclude-libs,ALL,--start-group $(SHL6STDLIBS) -Wl,--end-group \ - $(SHL6STDSHL) $(STDSHL6) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ - -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_6.cmd - .IF "$(VERBOSE)" == "TRUE" - @$(TYPE) $(MISC)/$(TARGET).$(@:b)_6.cmd - .ENDIF - @+source $(MISC)/$(TARGET).$(@:b)_6.cmd + $(SHL6STDSHL) $(STDSHL6) \ + $(SHL6LINKRESO) \ + )) +.ENDIF .ELSE .IF "$(linkinc)"=="" .IF "$(SHL6USE_EXPORTS)"!="name" @@ -3144,7 +2972,7 @@ $(SHL6TARGETN) : \ @echo $(STDSLO) $(SHL6OBJS:s/.obj/.o/) \ $(SHL6VERSIONOBJ) \ `cat /dev/null $(SHL6LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(SHL6LINKER) $(SHL6LINKFLAGS) $(SHL6VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(SHL6LINKER) $(SHL6LINKFLAGS) $(SHL6VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ $(SHL6STDLIBS) $(SHL6ARCHIVES) $(SHL6STDSHL) $(STDSHL6) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_6.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_6.cmd` \ @@ -3164,6 +2992,9 @@ $(SHL6TARGETN) : \ $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS6) $(SHL6TARGETN) .ENDIF # "$(SHL6NOCHECK)"!="" .ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB6FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL6OBJS)) $(shell cat /dev/null $(LIB6TARGET) $(SHL6LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ .ELSE # "$(OS)"=="MACOSX" @-$(RM) $(MISC)/$(TARGET).$(@:b)_6.cmd @echo $(SHL6LINKER) $(SHL6LINKFLAGS) $(SHL6SONAME) $(LINKFLAGSSHL) $(SHL6VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL6OBJS:s/.obj/.o/) \ @@ -3186,7 +3017,7 @@ $(SHL6TARGETN) : \ .ENDIF # "$(SHL6NOCHECK)"!="" .ENDIF # "$(UPDATER)"=="YES" .ENDIF # "$(OS)"=="MACOSX" -.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" $(COMMAND_ECHO)$(RM) $(LB)/$(SHL6TARGETN:b) $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL6TARGETN:f) $(SHL6TARGETN:b) .ENDIF # "$(UNIXVERSIONNAMES)"!="" @@ -3195,75 +3026,12 @@ $(SHL6TARGETN) : \ .ENDIF .ENDIF # "$(GUI)" == "UNX" -.IF "$(GUI)" == "OS2" - -.IF "$(SHL6DEFAULTRES)"!="" - @+-$(RM) $(MISC)/$(SHL6DEFAULTRES:b).rc >& $(NULLDEV) -.IF "$(SHL6ICON)" != "" - @-+echo 1 ICON $(SHL6ICON) >> $(MISC)/$(SHL6DEFAULTRES:b).rc -.ENDIF -.IF "$(use_shl_versions)" != "" -.IF "$(SHL6ADD_VERINFO)"!="" - @-+echo $(EMQ)#include $(EMQ)"$(SHL6ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL6DEFAULTRES:b).rc -.ENDIF # "$(SHL6ADD_VERINFO)"!="" - @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL6DEFAULTRES:b).rc -# @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL6DEFAULTRES:b).rc -.ENDIF # "$(use_shl_versions)" != "" -# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR) - $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL6DEFAULTRES:b).rc -.ENDIF # "$(SHL6DEFAULTRES)"!="" - -.IF "$(SHL6ALLRES)"!="" - $(COMMAND_ECHO)+$(TYPE) $(SHL6ALLRES) > $(SHL6LINKRES) -.ENDIF # "$(SHL6ALLRES)"!="" - -.IF "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL6LINKER) $(SHL6LINKFLAGS) $(LINKFLAGSSHL) -o $@ \ - $(SHL6DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL6OBJS) $(SHL6VERSIONOBJ) \ - $(SHL6LIBS) \ - $(SHL6STDLIBS:^"-l") \ - $(SHL6LINKRES) \ - $(SHL6STDSHL:^"-l") $(STDSHL6:^"-l") - -.ELSE # "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL6LINKER) -v $(SHL6LINKFLAGS) \ - $(LINKFLAGSSHL) $(SHL6BASEX) \ - $(SHL6STACK) -o $(SHL6TARGETN) \ - $(SHL6DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL6OBJS) $(SHL6VERSIONOBJ) \ - $(SHL6LIBS) \ - $(SHL6STDLIBS:^"-l") \ - $(SHL6LINKRES) \ - $(SHL6STDSHL:^"-l") $(STDSHL6:^"-l") \ - @$(LS) $@ >& $(NULLDEV) - -.ENDIF # "$(USE_DEFFILE)"!="" - -.IF "$(SHL6TARGET8)" != "$(SHL6TARGET)" - $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL6TARGET8).dll -.ENDIF - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(SHL6TARGETN)"!="" # unroll begin .IF "$(SHL7TARGETN)"!="" -.IF "$(OS)"=="AIX" -SHL7STDLIBS= -.ENDIF - .IF "$(SHLLINKARCONLY)" != "" SHL7STDLIBS= STDSHL= @@ -3320,20 +3088,23 @@ $(MISC)/$(SHL7VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL7VERSIO .ENDIF .IF "$(GUI)" != "UNX" -.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)" == "WNT" .IF "$(SHL7IMPLIB)" == "" SHL7IMPLIB=i$(TARGET)_t7 .ENDIF # "$(SHL7IMPLIB)" == "" .IF "$(COM)" != "GCC" USE_7IMPLIB=-implib:$(LB)/$(SHL7IMPLIB).lib -.ENDIF # "$(COM)" != "GCC" SHL7IMPLIBN=$(LB)/$(SHL7IMPLIB).lib +.ELSE +SHL7IMPLIBN=$(LB)/lib$(SHL7IMPLIB).dll.a +USE_7IMPLIB=-Wl,--out-implib=$(SHL7IMPLIBN) +.ENDIF # "$(COM)" != "GCC" ALLTAR : $(SHL7IMPLIBN) .IF "$(USE_DEFFILE)"=="" USE_7IMPLIB_DEPS=$(LB)/$(SHL7IMPLIB).lib .ENDIF # "$(USE_DEFFILE)"=="" -.ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.ENDIF # "$(GUI)" == "WNT" USE_SHL7DEF=$(SHL7DEF) .ELSE # "$(GUI)" != "UNX" USE_SHL7DEF= @@ -3358,7 +3129,9 @@ $(USE_SHL7VERSIONMAP) .PHONY: .ENDIF # "$(SHL7VERSIONMAP)"!="" +.IF "$(OS)" != "AIX" SHL7VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL7VERSIONMAP) +.ENDIF $(USE_SHL7VERSIONMAP): \ $(SHL7OBJS)\ @@ -3395,7 +3168,9 @@ $(USE_SHL7VERSIONMAP) : #and now for the plain non-generic way... .IF "$(SHL7VERSIONMAP)"!="" USE_SHL7VERSIONMAP=$(MISC)/$(SHL7VERSIONMAP:b)_$(SHL7TARGET)$(SHL7VERSIONMAP:e) +.IF "$(OS)" != "AIX" SHL7VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL7VERSIONMAP) +.ENDIF .IF "$(OS)"=="MACOSX" $(USE_SHL7VERSIONMAP): $(SHL7OBJS) $(SHL7LIBS) @@ -3443,7 +3218,7 @@ $(USE_SHL7VERSIONMAP) .ERRREMOVE: $(SHL7VERSIONMAP) .ENDIF # "$(GUI)" != "UNX" .IF "$(UNIXVERSIONNAMES)"!="" -.IF "$(OS)"!="MACOSX" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" .IF "$(GUI)"=="UNX" SHL7SONAME=\"$(SONAME_SWITCH)$(SHL7TARGETN:f)\" .ENDIF # "$(GUI)"!="UNX" @@ -3466,7 +3241,7 @@ SHL7LINKRESO*=$(MISC)/$(SHL7TARGET)_res.o #.IF "$(SHL7TARGETN)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL7LIBS)"!="" $(MISC)/$(SHL7TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -3479,7 +3254,7 @@ $(SHL7TARGETN) : $(LINKINCTARGETS) .ELSE .IF "$(SHL7USE_EXPORTS)"=="name" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(COM)"!="GCC" .IF "$(SHL7LIBS)"!="" SHL7LINKLIST=$(MISC)/$(SHL7TARGET)_link.lst @@ -3496,20 +3271,6 @@ $(MISC)/%linkinc.ls: @echo . > $@ .ENDIF # "$(linkinc)"!="" -.IF "$(GUI)" == "OS2" -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL7TARGET8=$(shell @fix_shl $(SHL7TARGET)) -.ENDIF - -.IF "$(GUI)" == "OS2" -_SHL7IMP_ORD = $(SHL7STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL7STDLIBS:^"$(LB)/") -SHL7IMP_ORD = $(foreach,i,$(_SHL7IMP_ORD) $(shell @-ls $i)) -.ELSE -SHL7IMP_ORD = -.ENDIF - - $(SHL7TARGETN) : \ $(SHL7OBJS)\ $(SHL7LIBS)\ @@ -3518,7 +3279,6 @@ $(SHL7TARGETN) : \ $(USE_SHL7VERSIONMAP)\ $(SHL7RES)\ $(SHL7DEPN) \ - $(SHL7IMP_ORD) \ $(SHL7LINKLIST) @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" @@ -3540,39 +3300,69 @@ $(SHL7TARGETN) : \ @echo $(EMQ)#define INTERNAL_NAME $(SHL7TARGET:b) >> $(MISC)/$(SHL7DEFAULTRES:b).rc @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL7DEFAULTRES:b).rc .ENDIF # "$(use_shl_versions)" != "" - $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL7DEFAULTRES:b).rc +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL7DEFAULTRES) $(MISC)/$(SHL7DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL7DEFAULTRES:b).rc $(SHL7DEFAULTRES) +.ENDIF .ENDIF # "$(SHL7DEFAULTRES)"!="" .IF "$(SHL7ALLRES)"!="" $(COMMAND_ECHO)$(TYPE) $(SHL7ALLRES) > $(SHL7LINKRES) .IF "$(COM)"=="GCC" - windres $(SHL7LINKRES) $(SHL7LINKRESO) + $(WINDRES) $(SHL7LINKRES) $(SHL7LINKRESO) .ENDIF # "$(COM)"=="GCC" .ENDIF # "$(SHL7ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def - @echo dlltool --dllname $(SHL7TARGET)$(DLLPOST) \ - --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_7.cmd +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + @$(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL7LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL7DEF) \ + $(USE_7IMPLIB) \ + $(STDOBJ) \ + $(SHL7VERSIONOBJ) $(SHL7OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL7LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL7STDLIBS) -Wl,--end-group \ + $(SHL7STDSHL) $(STDSHL7) \ + $(SHL7LINKRESO) \ + )) +.ELSE @noop $(assign ALL7OBJLIST:=$(STDOBJ) $(SHL7OBJS) $(SHL7LINKRESO) $(shell $(TYPE) /dev/null $(SHL7LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) .IF "$(DEFLIB7NAME)"!="" # do not have to include objs @noop $(assign DEF7OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB7NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) @noop $(foreach,i,$(DEF7OBJLIST) $(assign ALL7OBJLIST:=$(ALL7OBJLIST:s?$i??))) .ENDIF # "$(DEFLIB7NAME)"!="" - @echo --output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_7.cmd -.IF "$(SHL7DEF)"!="" - @echo --input-def $(SHL7DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_7.cmd -.ELSE - @echo $(SHL7VERSIONOBJ) $(SHL7DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_7.cmd -.ENDIF - @echo $(ALL7OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_7.cmd - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ - $(STDOBJ) $(SHL7VERSIONOBJ) $(SHL7DESCRIPTIONOBJ) $(SHL7OBJS) $(SHL7LINKRESO) \ - `$(TYPE) /dev/null $(SHL7LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(COMMAND_ECHO)$(DLLTOOL) @@(mktmp \ + --dllname $(SHL7TARGET)$(DLLPOST) \ + --kill-at \ + --output-exp $(MISC)/$(@:b)_exp.o \ + $(SHL7VERSIONOBJ) \ + @(ALL7OBJLIST) + ) + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL7LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(MISC)/$(@:b)_exp.o \ + $(USE_7IMPLIB) \ + $(STDOBJ) \ + $(SHL7VERSIONOBJ) $(SHL7OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL7LIBS))) \ -Wl,--exclude-libs,ALL,--start-group $(SHL7STDLIBS) -Wl,--end-group \ - $(SHL7STDSHL) $(STDSHL7) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ - -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_7.cmd - .IF "$(VERBOSE)" == "TRUE" - @$(TYPE) $(MISC)/$(TARGET).$(@:b)_7.cmd - .ENDIF - @+source $(MISC)/$(TARGET).$(@:b)_7.cmd + $(SHL7STDSHL) $(STDSHL7) \ + $(SHL7LINKRESO) \ + )) +.ENDIF .ELSE .IF "$(linkinc)"=="" .IF "$(SHL7USE_EXPORTS)"!="name" @@ -3687,7 +3477,7 @@ $(SHL7TARGETN) : \ @echo $(STDSLO) $(SHL7OBJS:s/.obj/.o/) \ $(SHL7VERSIONOBJ) \ `cat /dev/null $(SHL7LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(SHL7LINKER) $(SHL7LINKFLAGS) $(SHL7VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(SHL7LINKER) $(SHL7LINKFLAGS) $(SHL7VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ $(SHL7STDLIBS) $(SHL7ARCHIVES) $(SHL7STDSHL) $(STDSHL7) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_7.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_7.cmd` \ @@ -3707,6 +3497,9 @@ $(SHL7TARGETN) : \ $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS7) $(SHL7TARGETN) .ENDIF # "$(SHL7NOCHECK)"!="" .ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB7FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL7OBJS)) $(shell cat /dev/null $(LIB7TARGET) $(SHL7LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ .ELSE # "$(OS)"=="MACOSX" @-$(RM) $(MISC)/$(TARGET).$(@:b)_7.cmd @echo $(SHL7LINKER) $(SHL7LINKFLAGS) $(SHL7SONAME) $(LINKFLAGSSHL) $(SHL7VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL7OBJS:s/.obj/.o/) \ @@ -3729,7 +3522,7 @@ $(SHL7TARGETN) : \ .ENDIF # "$(SHL7NOCHECK)"!="" .ENDIF # "$(UPDATER)"=="YES" .ENDIF # "$(OS)"=="MACOSX" -.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" $(COMMAND_ECHO)$(RM) $(LB)/$(SHL7TARGETN:b) $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL7TARGETN:f) $(SHL7TARGETN:b) .ENDIF # "$(UNIXVERSIONNAMES)"!="" @@ -3738,75 +3531,12 @@ $(SHL7TARGETN) : \ .ENDIF .ENDIF # "$(GUI)" == "UNX" -.IF "$(GUI)" == "OS2" - -.IF "$(SHL7DEFAULTRES)"!="" - @+-$(RM) $(MISC)/$(SHL7DEFAULTRES:b).rc >& $(NULLDEV) -.IF "$(SHL7ICON)" != "" - @-+echo 1 ICON $(SHL7ICON) >> $(MISC)/$(SHL7DEFAULTRES:b).rc -.ENDIF -.IF "$(use_shl_versions)" != "" -.IF "$(SHL7ADD_VERINFO)"!="" - @-+echo $(EMQ)#include $(EMQ)"$(SHL7ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL7DEFAULTRES:b).rc -.ENDIF # "$(SHL7ADD_VERINFO)"!="" - @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL7DEFAULTRES:b).rc -# @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL7DEFAULTRES:b).rc -.ENDIF # "$(use_shl_versions)" != "" -# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR) - $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL7DEFAULTRES:b).rc -.ENDIF # "$(SHL7DEFAULTRES)"!="" - -.IF "$(SHL7ALLRES)"!="" - $(COMMAND_ECHO)+$(TYPE) $(SHL7ALLRES) > $(SHL7LINKRES) -.ENDIF # "$(SHL7ALLRES)"!="" - -.IF "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL7LINKER) $(SHL7LINKFLAGS) $(LINKFLAGSSHL) -o $@ \ - $(SHL7DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL7OBJS) $(SHL7VERSIONOBJ) \ - $(SHL7LIBS) \ - $(SHL7STDLIBS:^"-l") \ - $(SHL7LINKRES) \ - $(SHL7STDSHL:^"-l") $(STDSHL7:^"-l") - -.ELSE # "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL7LINKER) -v $(SHL7LINKFLAGS) \ - $(LINKFLAGSSHL) $(SHL7BASEX) \ - $(SHL7STACK) -o $(SHL7TARGETN) \ - $(SHL7DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL7OBJS) $(SHL7VERSIONOBJ) \ - $(SHL7LIBS) \ - $(SHL7STDLIBS:^"-l") \ - $(SHL7LINKRES) \ - $(SHL7STDSHL:^"-l") $(STDSHL7:^"-l") \ - @$(LS) $@ >& $(NULLDEV) - -.ENDIF # "$(USE_DEFFILE)"!="" - -.IF "$(SHL7TARGET8)" != "$(SHL7TARGET)" - $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL7TARGET8).dll -.ENDIF - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(SHL7TARGETN)"!="" # unroll begin .IF "$(SHL8TARGETN)"!="" -.IF "$(OS)"=="AIX" -SHL8STDLIBS= -.ENDIF - .IF "$(SHLLINKARCONLY)" != "" SHL8STDLIBS= STDSHL= @@ -3863,20 +3593,23 @@ $(MISC)/$(SHL8VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL8VERSIO .ENDIF .IF "$(GUI)" != "UNX" -.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)" == "WNT" .IF "$(SHL8IMPLIB)" == "" SHL8IMPLIB=i$(TARGET)_t8 .ENDIF # "$(SHL8IMPLIB)" == "" .IF "$(COM)" != "GCC" USE_8IMPLIB=-implib:$(LB)/$(SHL8IMPLIB).lib -.ENDIF # "$(COM)" != "GCC" SHL8IMPLIBN=$(LB)/$(SHL8IMPLIB).lib +.ELSE +SHL8IMPLIBN=$(LB)/lib$(SHL8IMPLIB).dll.a +USE_8IMPLIB=-Wl,--out-implib=$(SHL8IMPLIBN) +.ENDIF # "$(COM)" != "GCC" ALLTAR : $(SHL8IMPLIBN) .IF "$(USE_DEFFILE)"=="" USE_8IMPLIB_DEPS=$(LB)/$(SHL8IMPLIB).lib .ENDIF # "$(USE_DEFFILE)"=="" -.ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.ENDIF # "$(GUI)" == "WNT" USE_SHL8DEF=$(SHL8DEF) .ELSE # "$(GUI)" != "UNX" USE_SHL8DEF= @@ -3901,7 +3634,9 @@ $(USE_SHL8VERSIONMAP) .PHONY: .ENDIF # "$(SHL8VERSIONMAP)"!="" +.IF "$(OS)" != "AIX" SHL8VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL8VERSIONMAP) +.ENDIF $(USE_SHL8VERSIONMAP): \ $(SHL8OBJS)\ @@ -3938,7 +3673,9 @@ $(USE_SHL8VERSIONMAP) : #and now for the plain non-generic way... .IF "$(SHL8VERSIONMAP)"!="" USE_SHL8VERSIONMAP=$(MISC)/$(SHL8VERSIONMAP:b)_$(SHL8TARGET)$(SHL8VERSIONMAP:e) +.IF "$(OS)" != "AIX" SHL8VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL8VERSIONMAP) +.ENDIF .IF "$(OS)"=="MACOSX" $(USE_SHL8VERSIONMAP): $(SHL8OBJS) $(SHL8LIBS) @@ -3986,7 +3723,7 @@ $(USE_SHL8VERSIONMAP) .ERRREMOVE: $(SHL8VERSIONMAP) .ENDIF # "$(GUI)" != "UNX" .IF "$(UNIXVERSIONNAMES)"!="" -.IF "$(OS)"!="MACOSX" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" .IF "$(GUI)"=="UNX" SHL8SONAME=\"$(SONAME_SWITCH)$(SHL8TARGETN:f)\" .ENDIF # "$(GUI)"!="UNX" @@ -4009,7 +3746,7 @@ SHL8LINKRESO*=$(MISC)/$(SHL8TARGET)_res.o #.IF "$(SHL8TARGETN)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL8LIBS)"!="" $(MISC)/$(SHL8TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -4022,7 +3759,7 @@ $(SHL8TARGETN) : $(LINKINCTARGETS) .ELSE .IF "$(SHL8USE_EXPORTS)"=="name" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(COM)"!="GCC" .IF "$(SHL8LIBS)"!="" SHL8LINKLIST=$(MISC)/$(SHL8TARGET)_link.lst @@ -4039,20 +3776,6 @@ $(MISC)/%linkinc.ls: @echo . > $@ .ENDIF # "$(linkinc)"!="" -.IF "$(GUI)" == "OS2" -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL8TARGET8=$(shell @fix_shl $(SHL8TARGET)) -.ENDIF - -.IF "$(GUI)" == "OS2" -_SHL8IMP_ORD = $(SHL8STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL8STDLIBS:^"$(LB)/") -SHL8IMP_ORD = $(foreach,i,$(_SHL8IMP_ORD) $(shell @-ls $i)) -.ELSE -SHL8IMP_ORD = -.ENDIF - - $(SHL8TARGETN) : \ $(SHL8OBJS)\ $(SHL8LIBS)\ @@ -4061,7 +3784,6 @@ $(SHL8TARGETN) : \ $(USE_SHL8VERSIONMAP)\ $(SHL8RES)\ $(SHL8DEPN) \ - $(SHL8IMP_ORD) \ $(SHL8LINKLIST) @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" @@ -4083,39 +3805,69 @@ $(SHL8TARGETN) : \ @echo $(EMQ)#define INTERNAL_NAME $(SHL8TARGET:b) >> $(MISC)/$(SHL8DEFAULTRES:b).rc @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL8DEFAULTRES:b).rc .ENDIF # "$(use_shl_versions)" != "" - $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL8DEFAULTRES:b).rc +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL8DEFAULTRES) $(MISC)/$(SHL8DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL8DEFAULTRES:b).rc $(SHL8DEFAULTRES) +.ENDIF .ENDIF # "$(SHL8DEFAULTRES)"!="" .IF "$(SHL8ALLRES)"!="" $(COMMAND_ECHO)$(TYPE) $(SHL8ALLRES) > $(SHL8LINKRES) .IF "$(COM)"=="GCC" - windres $(SHL8LINKRES) $(SHL8LINKRESO) + $(WINDRES) $(SHL8LINKRES) $(SHL8LINKRESO) .ENDIF # "$(COM)"=="GCC" .ENDIF # "$(SHL8ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def - @echo dlltool --dllname $(SHL8TARGET)$(DLLPOST) \ - --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_8.cmd +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + @$(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL8LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL8DEF) \ + $(USE_8IMPLIB) \ + $(STDOBJ) \ + $(SHL8VERSIONOBJ) $(SHL8OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL8LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL8STDLIBS) -Wl,--end-group \ + $(SHL8STDSHL) $(STDSHL8) \ + $(SHL8LINKRESO) \ + )) +.ELSE @noop $(assign ALL8OBJLIST:=$(STDOBJ) $(SHL8OBJS) $(SHL8LINKRESO) $(shell $(TYPE) /dev/null $(SHL8LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) .IF "$(DEFLIB8NAME)"!="" # do not have to include objs @noop $(assign DEF8OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB8NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) @noop $(foreach,i,$(DEF8OBJLIST) $(assign ALL8OBJLIST:=$(ALL8OBJLIST:s?$i??))) .ENDIF # "$(DEFLIB8NAME)"!="" - @echo --output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_8.cmd -.IF "$(SHL8DEF)"!="" - @echo --input-def $(SHL8DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_8.cmd -.ELSE - @echo $(SHL8VERSIONOBJ) $(SHL8DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_8.cmd -.ENDIF - @echo $(ALL8OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_8.cmd - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ - $(STDOBJ) $(SHL8VERSIONOBJ) $(SHL8DESCRIPTIONOBJ) $(SHL8OBJS) $(SHL8LINKRESO) \ - `$(TYPE) /dev/null $(SHL8LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(COMMAND_ECHO)$(DLLTOOL) @@(mktmp \ + --dllname $(SHL8TARGET)$(DLLPOST) \ + --kill-at \ + --output-exp $(MISC)/$(@:b)_exp.o \ + $(SHL8VERSIONOBJ) \ + @(ALL8OBJLIST) + ) + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL8LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(MISC)/$(@:b)_exp.o \ + $(USE_8IMPLIB) \ + $(STDOBJ) \ + $(SHL8VERSIONOBJ) $(SHL8OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL8LIBS))) \ -Wl,--exclude-libs,ALL,--start-group $(SHL8STDLIBS) -Wl,--end-group \ - $(SHL8STDSHL) $(STDSHL8) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ - -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_8.cmd - .IF "$(VERBOSE)" == "TRUE" - @$(TYPE) $(MISC)/$(TARGET).$(@:b)_8.cmd - .ENDIF - @+source $(MISC)/$(TARGET).$(@:b)_8.cmd + $(SHL8STDSHL) $(STDSHL8) \ + $(SHL8LINKRESO) \ + )) +.ENDIF .ELSE .IF "$(linkinc)"=="" .IF "$(SHL8USE_EXPORTS)"!="name" @@ -4230,7 +3982,7 @@ $(SHL8TARGETN) : \ @echo $(STDSLO) $(SHL8OBJS:s/.obj/.o/) \ $(SHL8VERSIONOBJ) \ `cat /dev/null $(SHL8LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(SHL8LINKER) $(SHL8LINKFLAGS) $(SHL8VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(SHL8LINKER) $(SHL8LINKFLAGS) $(SHL8VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ $(SHL8STDLIBS) $(SHL8ARCHIVES) $(SHL8STDSHL) $(STDSHL8) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_8.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_8.cmd` \ @@ -4250,6 +4002,9 @@ $(SHL8TARGETN) : \ $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS8) $(SHL8TARGETN) .ENDIF # "$(SHL8NOCHECK)"!="" .ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB8FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL8OBJS)) $(shell cat /dev/null $(LIB8TARGET) $(SHL8LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ .ELSE # "$(OS)"=="MACOSX" @-$(RM) $(MISC)/$(TARGET).$(@:b)_8.cmd @echo $(SHL8LINKER) $(SHL8LINKFLAGS) $(SHL8SONAME) $(LINKFLAGSSHL) $(SHL8VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL8OBJS:s/.obj/.o/) \ @@ -4272,7 +4027,7 @@ $(SHL8TARGETN) : \ .ENDIF # "$(SHL8NOCHECK)"!="" .ENDIF # "$(UPDATER)"=="YES" .ENDIF # "$(OS)"=="MACOSX" -.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" $(COMMAND_ECHO)$(RM) $(LB)/$(SHL8TARGETN:b) $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL8TARGETN:f) $(SHL8TARGETN:b) .ENDIF # "$(UNIXVERSIONNAMES)"!="" @@ -4281,75 +4036,12 @@ $(SHL8TARGETN) : \ .ENDIF .ENDIF # "$(GUI)" == "UNX" -.IF "$(GUI)" == "OS2" - -.IF "$(SHL8DEFAULTRES)"!="" - @+-$(RM) $(MISC)/$(SHL8DEFAULTRES:b).rc >& $(NULLDEV) -.IF "$(SHL8ICON)" != "" - @-+echo 1 ICON $(SHL8ICON) >> $(MISC)/$(SHL8DEFAULTRES:b).rc -.ENDIF -.IF "$(use_shl_versions)" != "" -.IF "$(SHL8ADD_VERINFO)"!="" - @-+echo $(EMQ)#include $(EMQ)"$(SHL8ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL8DEFAULTRES:b).rc -.ENDIF # "$(SHL8ADD_VERINFO)"!="" - @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL8DEFAULTRES:b).rc -# @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL8DEFAULTRES:b).rc -.ENDIF # "$(use_shl_versions)" != "" -# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR) - $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL8DEFAULTRES:b).rc -.ENDIF # "$(SHL8DEFAULTRES)"!="" - -.IF "$(SHL8ALLRES)"!="" - $(COMMAND_ECHO)+$(TYPE) $(SHL8ALLRES) > $(SHL8LINKRES) -.ENDIF # "$(SHL8ALLRES)"!="" - -.IF "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL8LINKER) $(SHL8LINKFLAGS) $(LINKFLAGSSHL) -o $@ \ - $(SHL8DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL8OBJS) $(SHL8VERSIONOBJ) \ - $(SHL8LIBS) \ - $(SHL8STDLIBS:^"-l") \ - $(SHL8LINKRES) \ - $(SHL8STDSHL:^"-l") $(STDSHL8:^"-l") - -.ELSE # "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL8LINKER) -v $(SHL8LINKFLAGS) \ - $(LINKFLAGSSHL) $(SHL8BASEX) \ - $(SHL8STACK) -o $(SHL8TARGETN) \ - $(SHL8DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL8OBJS) $(SHL8VERSIONOBJ) \ - $(SHL8LIBS) \ - $(SHL8STDLIBS:^"-l") \ - $(SHL8LINKRES) \ - $(SHL8STDSHL:^"-l") $(STDSHL8:^"-l") \ - @$(LS) $@ >& $(NULLDEV) - -.ENDIF # "$(USE_DEFFILE)"!="" - -.IF "$(SHL8TARGET8)" != "$(SHL8TARGET)" - $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL8TARGET8).dll -.ENDIF - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(SHL8TARGETN)"!="" # unroll begin .IF "$(SHL9TARGETN)"!="" -.IF "$(OS)"=="AIX" -SHL9STDLIBS= -.ENDIF - .IF "$(SHLLINKARCONLY)" != "" SHL9STDLIBS= STDSHL= @@ -4406,20 +4098,23 @@ $(MISC)/$(SHL9VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL9VERSIO .ENDIF .IF "$(GUI)" != "UNX" -.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)" == "WNT" .IF "$(SHL9IMPLIB)" == "" SHL9IMPLIB=i$(TARGET)_t9 .ENDIF # "$(SHL9IMPLIB)" == "" .IF "$(COM)" != "GCC" USE_9IMPLIB=-implib:$(LB)/$(SHL9IMPLIB).lib -.ENDIF # "$(COM)" != "GCC" SHL9IMPLIBN=$(LB)/$(SHL9IMPLIB).lib +.ELSE +SHL9IMPLIBN=$(LB)/lib$(SHL9IMPLIB).dll.a +USE_9IMPLIB=-Wl,--out-implib=$(SHL9IMPLIBN) +.ENDIF # "$(COM)" != "GCC" ALLTAR : $(SHL9IMPLIBN) .IF "$(USE_DEFFILE)"=="" USE_9IMPLIB_DEPS=$(LB)/$(SHL9IMPLIB).lib .ENDIF # "$(USE_DEFFILE)"=="" -.ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.ENDIF # "$(GUI)" == "WNT" USE_SHL9DEF=$(SHL9DEF) .ELSE # "$(GUI)" != "UNX" USE_SHL9DEF= @@ -4444,7 +4139,9 @@ $(USE_SHL9VERSIONMAP) .PHONY: .ENDIF # "$(SHL9VERSIONMAP)"!="" +.IF "$(OS)" != "AIX" SHL9VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL9VERSIONMAP) +.ENDIF $(USE_SHL9VERSIONMAP): \ $(SHL9OBJS)\ @@ -4481,7 +4178,9 @@ $(USE_SHL9VERSIONMAP) : #and now for the plain non-generic way... .IF "$(SHL9VERSIONMAP)"!="" USE_SHL9VERSIONMAP=$(MISC)/$(SHL9VERSIONMAP:b)_$(SHL9TARGET)$(SHL9VERSIONMAP:e) +.IF "$(OS)" != "AIX" SHL9VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL9VERSIONMAP) +.ENDIF .IF "$(OS)"=="MACOSX" $(USE_SHL9VERSIONMAP): $(SHL9OBJS) $(SHL9LIBS) @@ -4529,7 +4228,7 @@ $(USE_SHL9VERSIONMAP) .ERRREMOVE: $(SHL9VERSIONMAP) .ENDIF # "$(GUI)" != "UNX" .IF "$(UNIXVERSIONNAMES)"!="" -.IF "$(OS)"!="MACOSX" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" .IF "$(GUI)"=="UNX" SHL9SONAME=\"$(SONAME_SWITCH)$(SHL9TARGETN:f)\" .ENDIF # "$(GUI)"!="UNX" @@ -4552,7 +4251,7 @@ SHL9LINKRESO*=$(MISC)/$(SHL9TARGET)_res.o #.IF "$(SHL9TARGETN)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL9LIBS)"!="" $(MISC)/$(SHL9TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -4565,7 +4264,7 @@ $(SHL9TARGETN) : $(LINKINCTARGETS) .ELSE .IF "$(SHL9USE_EXPORTS)"=="name" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(COM)"!="GCC" .IF "$(SHL9LIBS)"!="" SHL9LINKLIST=$(MISC)/$(SHL9TARGET)_link.lst @@ -4582,20 +4281,6 @@ $(MISC)/%linkinc.ls: @echo . > $@ .ENDIF # "$(linkinc)"!="" -.IF "$(GUI)" == "OS2" -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL9TARGET8=$(shell @fix_shl $(SHL9TARGET)) -.ENDIF - -.IF "$(GUI)" == "OS2" -_SHL9IMP_ORD = $(SHL9STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL9STDLIBS:^"$(LB)/") -SHL9IMP_ORD = $(foreach,i,$(_SHL9IMP_ORD) $(shell @-ls $i)) -.ELSE -SHL9IMP_ORD = -.ENDIF - - $(SHL9TARGETN) : \ $(SHL9OBJS)\ $(SHL9LIBS)\ @@ -4604,7 +4289,6 @@ $(SHL9TARGETN) : \ $(USE_SHL9VERSIONMAP)\ $(SHL9RES)\ $(SHL9DEPN) \ - $(SHL9IMP_ORD) \ $(SHL9LINKLIST) @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" @@ -4626,39 +4310,69 @@ $(SHL9TARGETN) : \ @echo $(EMQ)#define INTERNAL_NAME $(SHL9TARGET:b) >> $(MISC)/$(SHL9DEFAULTRES:b).rc @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL9DEFAULTRES:b).rc .ENDIF # "$(use_shl_versions)" != "" - $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL9DEFAULTRES:b).rc +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL9DEFAULTRES) $(MISC)/$(SHL9DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL9DEFAULTRES:b).rc $(SHL9DEFAULTRES) +.ENDIF .ENDIF # "$(SHL9DEFAULTRES)"!="" .IF "$(SHL9ALLRES)"!="" $(COMMAND_ECHO)$(TYPE) $(SHL9ALLRES) > $(SHL9LINKRES) .IF "$(COM)"=="GCC" - windres $(SHL9LINKRES) $(SHL9LINKRESO) + $(WINDRES) $(SHL9LINKRES) $(SHL9LINKRESO) .ENDIF # "$(COM)"=="GCC" .ENDIF # "$(SHL9ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def - @echo dlltool --dllname $(SHL9TARGET)$(DLLPOST) \ - --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_9.cmd +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + @$(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL9LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL9DEF) \ + $(USE_9IMPLIB) \ + $(STDOBJ) \ + $(SHL9VERSIONOBJ) $(SHL9OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL9LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL9STDLIBS) -Wl,--end-group \ + $(SHL9STDSHL) $(STDSHL9) \ + $(SHL9LINKRESO) \ + )) +.ELSE @noop $(assign ALL9OBJLIST:=$(STDOBJ) $(SHL9OBJS) $(SHL9LINKRESO) $(shell $(TYPE) /dev/null $(SHL9LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) .IF "$(DEFLIB9NAME)"!="" # do not have to include objs @noop $(assign DEF9OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB9NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) @noop $(foreach,i,$(DEF9OBJLIST) $(assign ALL9OBJLIST:=$(ALL9OBJLIST:s?$i??))) .ENDIF # "$(DEFLIB9NAME)"!="" - @echo --output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_9.cmd -.IF "$(SHL9DEF)"!="" - @echo --input-def $(SHL9DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_9.cmd -.ELSE - @echo $(SHL9VERSIONOBJ) $(SHL9DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_9.cmd -.ENDIF - @echo $(ALL9OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_9.cmd - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ - $(STDOBJ) $(SHL9VERSIONOBJ) $(SHL9DESCRIPTIONOBJ) $(SHL9OBJS) $(SHL9LINKRESO) \ - `$(TYPE) /dev/null $(SHL9LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(COMMAND_ECHO)$(DLLTOOL) @@(mktmp \ + --dllname $(SHL9TARGET)$(DLLPOST) \ + --kill-at \ + --output-exp $(MISC)/$(@:b)_exp.o \ + $(SHL9VERSIONOBJ) \ + @(ALL9OBJLIST) + ) + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL9LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(MISC)/$(@:b)_exp.o \ + $(USE_9IMPLIB) \ + $(STDOBJ) \ + $(SHL9VERSIONOBJ) $(SHL9OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL9LIBS))) \ -Wl,--exclude-libs,ALL,--start-group $(SHL9STDLIBS) -Wl,--end-group \ - $(SHL9STDSHL) $(STDSHL9) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ - -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_9.cmd - .IF "$(VERBOSE)" == "TRUE" - @$(TYPE) $(MISC)/$(TARGET).$(@:b)_9.cmd - .ENDIF - @+source $(MISC)/$(TARGET).$(@:b)_9.cmd + $(SHL9STDSHL) $(STDSHL9) \ + $(SHL9LINKRESO) \ + )) +.ENDIF .ELSE .IF "$(linkinc)"=="" .IF "$(SHL9USE_EXPORTS)"!="name" @@ -4773,7 +4487,7 @@ $(SHL9TARGETN) : \ @echo $(STDSLO) $(SHL9OBJS:s/.obj/.o/) \ $(SHL9VERSIONOBJ) \ `cat /dev/null $(SHL9LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(SHL9LINKER) $(SHL9LINKFLAGS) $(SHL9VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(SHL9LINKER) $(SHL9LINKFLAGS) $(SHL9VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ $(SHL9STDLIBS) $(SHL9ARCHIVES) $(SHL9STDSHL) $(STDSHL9) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_9.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_9.cmd` \ @@ -4793,6 +4507,9 @@ $(SHL9TARGETN) : \ $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS9) $(SHL9TARGETN) .ENDIF # "$(SHL9NOCHECK)"!="" .ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB9FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL9OBJS)) $(shell cat /dev/null $(LIB9TARGET) $(SHL9LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ .ELSE # "$(OS)"=="MACOSX" @-$(RM) $(MISC)/$(TARGET).$(@:b)_9.cmd @echo $(SHL9LINKER) $(SHL9LINKFLAGS) $(SHL9SONAME) $(LINKFLAGSSHL) $(SHL9VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL9OBJS:s/.obj/.o/) \ @@ -4815,7 +4532,7 @@ $(SHL9TARGETN) : \ .ENDIF # "$(SHL9NOCHECK)"!="" .ENDIF # "$(UPDATER)"=="YES" .ENDIF # "$(OS)"=="MACOSX" -.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" $(COMMAND_ECHO)$(RM) $(LB)/$(SHL9TARGETN:b) $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL9TARGETN:f) $(SHL9TARGETN:b) .ENDIF # "$(UNIXVERSIONNAMES)"!="" @@ -4824,75 +4541,12 @@ $(SHL9TARGETN) : \ .ENDIF .ENDIF # "$(GUI)" == "UNX" -.IF "$(GUI)" == "OS2" - -.IF "$(SHL9DEFAULTRES)"!="" - @+-$(RM) $(MISC)/$(SHL9DEFAULTRES:b).rc >& $(NULLDEV) -.IF "$(SHL9ICON)" != "" - @-+echo 1 ICON $(SHL9ICON) >> $(MISC)/$(SHL9DEFAULTRES:b).rc -.ENDIF -.IF "$(use_shl_versions)" != "" -.IF "$(SHL9ADD_VERINFO)"!="" - @-+echo $(EMQ)#include $(EMQ)"$(SHL9ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL9DEFAULTRES:b).rc -.ENDIF # "$(SHL9ADD_VERINFO)"!="" - @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL9DEFAULTRES:b).rc -# @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL9DEFAULTRES:b).rc -.ENDIF # "$(use_shl_versions)" != "" -# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR) - $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL9DEFAULTRES:b).rc -.ENDIF # "$(SHL9DEFAULTRES)"!="" - -.IF "$(SHL9ALLRES)"!="" - $(COMMAND_ECHO)+$(TYPE) $(SHL9ALLRES) > $(SHL9LINKRES) -.ENDIF # "$(SHL9ALLRES)"!="" - -.IF "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL9LINKER) $(SHL9LINKFLAGS) $(LINKFLAGSSHL) -o $@ \ - $(SHL9DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL9OBJS) $(SHL9VERSIONOBJ) \ - $(SHL9LIBS) \ - $(SHL9STDLIBS:^"-l") \ - $(SHL9LINKRES) \ - $(SHL9STDSHL:^"-l") $(STDSHL9:^"-l") - -.ELSE # "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL9LINKER) -v $(SHL9LINKFLAGS) \ - $(LINKFLAGSSHL) $(SHL9BASEX) \ - $(SHL9STACK) -o $(SHL9TARGETN) \ - $(SHL9DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL9OBJS) $(SHL9VERSIONOBJ) \ - $(SHL9LIBS) \ - $(SHL9STDLIBS:^"-l") \ - $(SHL9LINKRES) \ - $(SHL9STDSHL:^"-l") $(STDSHL9:^"-l") \ - @$(LS) $@ >& $(NULLDEV) - -.ENDIF # "$(USE_DEFFILE)"!="" - -.IF "$(SHL9TARGET8)" != "$(SHL9TARGET)" - $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL9TARGET8).dll -.ENDIF - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(SHL9TARGETN)"!="" # unroll begin .IF "$(SHL10TARGETN)"!="" -.IF "$(OS)"=="AIX" -SHL10STDLIBS= -.ENDIF - .IF "$(SHLLINKARCONLY)" != "" SHL10STDLIBS= STDSHL= @@ -4949,20 +4603,23 @@ $(MISC)/$(SHL10VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL10VERS .ENDIF .IF "$(GUI)" != "UNX" -.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)" == "WNT" .IF "$(SHL10IMPLIB)" == "" SHL10IMPLIB=i$(TARGET)_t10 .ENDIF # "$(SHL10IMPLIB)" == "" .IF "$(COM)" != "GCC" USE_10IMPLIB=-implib:$(LB)/$(SHL10IMPLIB).lib -.ENDIF # "$(COM)" != "GCC" SHL10IMPLIBN=$(LB)/$(SHL10IMPLIB).lib +.ELSE +SHL10IMPLIBN=$(LB)/lib$(SHL10IMPLIB).dll.a +USE_10IMPLIB=-Wl,--out-implib=$(SHL10IMPLIBN) +.ENDIF # "$(COM)" != "GCC" ALLTAR : $(SHL10IMPLIBN) .IF "$(USE_DEFFILE)"=="" USE_10IMPLIB_DEPS=$(LB)/$(SHL10IMPLIB).lib .ENDIF # "$(USE_DEFFILE)"=="" -.ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.ENDIF # "$(GUI)" == "WNT" USE_SHL10DEF=$(SHL10DEF) .ELSE # "$(GUI)" != "UNX" USE_SHL10DEF= @@ -4987,7 +4644,9 @@ $(USE_SHL10VERSIONMAP) .PHONY: .ENDIF # "$(SHL10VERSIONMAP)"!="" +.IF "$(OS)" != "AIX" SHL10VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL10VERSIONMAP) +.ENDIF $(USE_SHL10VERSIONMAP): \ $(SHL10OBJS)\ @@ -5024,7 +4683,9 @@ $(USE_SHL10VERSIONMAP) : #and now for the plain non-generic way... .IF "$(SHL10VERSIONMAP)"!="" USE_SHL10VERSIONMAP=$(MISC)/$(SHL10VERSIONMAP:b)_$(SHL10TARGET)$(SHL10VERSIONMAP:e) +.IF "$(OS)" != "AIX" SHL10VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL10VERSIONMAP) +.ENDIF .IF "$(OS)"=="MACOSX" $(USE_SHL10VERSIONMAP): $(SHL10OBJS) $(SHL10LIBS) @@ -5072,7 +4733,7 @@ $(USE_SHL10VERSIONMAP) .ERRREMOVE: $(SHL10VERSIONMAP) .ENDIF # "$(GUI)" != "UNX" .IF "$(UNIXVERSIONNAMES)"!="" -.IF "$(OS)"!="MACOSX" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" .IF "$(GUI)"=="UNX" SHL10SONAME=\"$(SONAME_SWITCH)$(SHL10TARGETN:f)\" .ENDIF # "$(GUI)"!="UNX" @@ -5095,7 +4756,7 @@ SHL10LINKRESO*=$(MISC)/$(SHL10TARGET)_res.o #.IF "$(SHL10TARGETN)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL10LIBS)"!="" $(MISC)/$(SHL10TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -5108,7 +4769,7 @@ $(SHL10TARGETN) : $(LINKINCTARGETS) .ELSE .IF "$(SHL10USE_EXPORTS)"=="name" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(COM)"!="GCC" .IF "$(SHL10LIBS)"!="" SHL10LINKLIST=$(MISC)/$(SHL10TARGET)_link.lst @@ -5125,20 +4786,6 @@ $(MISC)/%linkinc.ls: @echo . > $@ .ENDIF # "$(linkinc)"!="" -.IF "$(GUI)" == "OS2" -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL10TARGET8=$(shell @fix_shl $(SHL10TARGET)) -.ENDIF - -.IF "$(GUI)" == "OS2" -_SHL10IMP_ORD = $(SHL10STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL10STDLIBS:^"$(LB)/") -SHL10IMP_ORD = $(foreach,i,$(_SHL10IMP_ORD) $(shell @-ls $i)) -.ELSE -SHL10IMP_ORD = -.ENDIF - - $(SHL10TARGETN) : \ $(SHL10OBJS)\ $(SHL10LIBS)\ @@ -5147,7 +4794,6 @@ $(SHL10TARGETN) : \ $(USE_SHL10VERSIONMAP)\ $(SHL10RES)\ $(SHL10DEPN) \ - $(SHL10IMP_ORD) \ $(SHL10LINKLIST) @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" @@ -5169,39 +4815,69 @@ $(SHL10TARGETN) : \ @echo $(EMQ)#define INTERNAL_NAME $(SHL10TARGET:b) >> $(MISC)/$(SHL10DEFAULTRES:b).rc @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL10DEFAULTRES:b).rc .ENDIF # "$(use_shl_versions)" != "" - $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL10DEFAULTRES:b).rc +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL10DEFAULTRES) $(MISC)/$(SHL10DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL10DEFAULTRES:b).rc $(SHL10DEFAULTRES) +.ENDIF .ENDIF # "$(SHL10DEFAULTRES)"!="" .IF "$(SHL10ALLRES)"!="" $(COMMAND_ECHO)$(TYPE) $(SHL10ALLRES) > $(SHL10LINKRES) .IF "$(COM)"=="GCC" - windres $(SHL10LINKRES) $(SHL10LINKRESO) + $(WINDRES) $(SHL10LINKRES) $(SHL10LINKRESO) .ENDIF # "$(COM)"=="GCC" .ENDIF # "$(SHL10ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def - @echo dlltool --dllname $(SHL10TARGET)$(DLLPOST) \ - --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_10.cmd +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + @$(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL10LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL10DEF) \ + $(USE_10IMPLIB) \ + $(STDOBJ) \ + $(SHL10VERSIONOBJ) $(SHL10OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL10LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL10STDLIBS) -Wl,--end-group \ + $(SHL10STDSHL) $(STDSHL10) \ + $(SHL10LINKRESO) \ + )) +.ELSE @noop $(assign ALL10OBJLIST:=$(STDOBJ) $(SHL10OBJS) $(SHL10LINKRESO) $(shell $(TYPE) /dev/null $(SHL10LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) .IF "$(DEFLIB10NAME)"!="" # do not have to include objs @noop $(assign DEF10OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB10NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) @noop $(foreach,i,$(DEF10OBJLIST) $(assign ALL10OBJLIST:=$(ALL10OBJLIST:s?$i??))) .ENDIF # "$(DEFLIB10NAME)"!="" - @echo --output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_10.cmd -.IF "$(SHL10DEF)"!="" - @echo --input-def $(SHL10DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_10.cmd -.ELSE - @echo $(SHL10VERSIONOBJ) $(SHL10DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_10.cmd -.ENDIF - @echo $(ALL10OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_10.cmd - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ - $(STDOBJ) $(SHL10VERSIONOBJ) $(SHL10DESCRIPTIONOBJ) $(SHL10OBJS) $(SHL10LINKRESO) \ - `$(TYPE) /dev/null $(SHL10LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(COMMAND_ECHO)$(DLLTOOL) @@(mktmp \ + --dllname $(SHL10TARGET)$(DLLPOST) \ + --kill-at \ + --output-exp $(MISC)/$(@:b)_exp.o \ + $(SHL10VERSIONOBJ) \ + @(ALL10OBJLIST) + ) + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL10LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(MISC)/$(@:b)_exp.o \ + $(USE_10IMPLIB) \ + $(STDOBJ) \ + $(SHL10VERSIONOBJ) $(SHL10OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL10LIBS))) \ -Wl,--exclude-libs,ALL,--start-group $(SHL10STDLIBS) -Wl,--end-group \ - $(SHL10STDSHL) $(STDSHL10) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ - -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_10.cmd - .IF "$(VERBOSE)" == "TRUE" - @$(TYPE) $(MISC)/$(TARGET).$(@:b)_10.cmd - .ENDIF - @+source $(MISC)/$(TARGET).$(@:b)_10.cmd + $(SHL10STDSHL) $(STDSHL10) \ + $(SHL10LINKRESO) \ + )) +.ENDIF .ELSE .IF "$(linkinc)"=="" .IF "$(SHL10USE_EXPORTS)"!="name" @@ -5316,7 +4992,7 @@ $(SHL10TARGETN) : \ @echo $(STDSLO) $(SHL10OBJS:s/.obj/.o/) \ $(SHL10VERSIONOBJ) \ `cat /dev/null $(SHL10LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(SHL10LINKER) $(SHL10LINKFLAGS) $(SHL10VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(SHL10LINKER) $(SHL10LINKFLAGS) $(SHL10VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ $(SHL10STDLIBS) $(SHL10ARCHIVES) $(SHL10STDSHL) $(STDSHL10) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_10.cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_10.cmd` \ @@ -5336,6 +5012,9 @@ $(SHL10TARGETN) : \ $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS10) $(SHL10TARGETN) .ENDIF # "$(SHL10NOCHECK)"!="" .ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB10FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL10OBJS)) $(shell cat /dev/null $(LIB10TARGET) $(SHL10LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ .ELSE # "$(OS)"=="MACOSX" @-$(RM) $(MISC)/$(TARGET).$(@:b)_10.cmd @echo $(SHL10LINKER) $(SHL10LINKFLAGS) $(SHL10SONAME) $(LINKFLAGSSHL) $(SHL10VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL10OBJS:s/.obj/.o/) \ @@ -5358,7 +5037,7 @@ $(SHL10TARGETN) : \ .ENDIF # "$(SHL10NOCHECK)"!="" .ENDIF # "$(UPDATER)"=="YES" .ENDIF # "$(OS)"=="MACOSX" -.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" $(COMMAND_ECHO)$(RM) $(LB)/$(SHL10TARGETN:b) $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL10TARGETN:f) $(SHL10TARGETN:b) .ENDIF # "$(UNIXVERSIONNAMES)"!="" @@ -5367,65 +5046,6 @@ $(SHL10TARGETN) : \ .ENDIF .ENDIF # "$(GUI)" == "UNX" -.IF "$(GUI)" == "OS2" - -.IF "$(SHL10DEFAULTRES)"!="" - @+-$(RM) $(MISC)/$(SHL10DEFAULTRES:b).rc >& $(NULLDEV) -.IF "$(SHL10ICON)" != "" - @-+echo 1 ICON $(SHL10ICON) >> $(MISC)/$(SHL10DEFAULTRES:b).rc -.ENDIF -.IF "$(use_shl_versions)" != "" -.IF "$(SHL10ADD_VERINFO)"!="" - @-+echo $(EMQ)#include $(EMQ)"$(SHL10ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL10DEFAULTRES:b).rc -.ENDIF # "$(SHL10ADD_VERINFO)"!="" - @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL10DEFAULTRES:b).rc -# @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL10DEFAULTRES:b).rc -.ENDIF # "$(use_shl_versions)" != "" -# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR) - $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL10DEFAULTRES:b).rc -.ENDIF # "$(SHL10DEFAULTRES)"!="" - -.IF "$(SHL10ALLRES)"!="" - $(COMMAND_ECHO)+$(TYPE) $(SHL10ALLRES) > $(SHL10LINKRES) -.ENDIF # "$(SHL10ALLRES)"!="" - -.IF "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL10LINKER) $(SHL10LINKFLAGS) $(LINKFLAGSSHL) -o $@ \ - $(SHL10DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL10OBJS) $(SHL10VERSIONOBJ) \ - $(SHL10LIBS) \ - $(SHL10STDLIBS:^"-l") \ - $(SHL10LINKRES) \ - $(SHL10STDSHL:^"-l") $(STDSHL10:^"-l") - -.ELSE # "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL10LINKER) -v $(SHL10LINKFLAGS) \ - $(LINKFLAGSSHL) $(SHL10BASEX) \ - $(SHL10STACK) -o $(SHL10TARGETN) \ - $(SHL10DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL10OBJS) $(SHL10VERSIONOBJ) \ - $(SHL10LIBS) \ - $(SHL10STDLIBS:^"-l") \ - $(SHL10LINKRES) \ - $(SHL10STDSHL:^"-l") $(STDSHL10:^"-l") \ - @$(LS) $@ >& $(NULLDEV) - -.ENDIF # "$(USE_DEFFILE)"!="" - -.IF "$(SHL10TARGET8)" != "$(SHL10TARGET)" - $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL10TARGET8).dll -.ENDIF - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(SHL10TARGETN)"!="" # unroll begin @@ -5441,6 +5061,7 @@ USELIB1DEPN+=$(SHL1LIBS) USE_SHL1TARGET=$(SHL1TARGETN) .ENDIF +.IF "$(GUI)$(COM)" != "WNTGCC" .IF "$(GUI)" != "UNX" $(SHL1IMPLIBN): \ $(SHL1DEF) \ @@ -5453,11 +5074,6 @@ $(SHL1IMPLIBN): \ .ENDIF @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" -.IF "$(COM)"=="GCC" - @echo no ImportLibs on mingw - @-$(RM) $@ - @$(TOUCH) $@ -.ELSE # "$(COM)=="GCC" # bei use_deffile implib von linker erstellt .IF "$(USE_DEFFILE)"=="" $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL1IMPLIBN) \ @@ -5466,14 +5082,6 @@ $(SHL1IMPLIBN): \ @echo build of $(SHL1TARGETN) creates $@ @$(TOUCH) $@ .ENDIF # "$(USE_DEFFILE)=="" -.ENDIF # "$(COM)"=="GCC" - -.ELIF "$(GUI)" == "OS2" - -# touch creates an empty file, but this is not good for emxomfar, so -# create a dummy lib here - $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL1VERSIONOBJ) - +@echo build of $(SHL1TARGETN) creates $@ .ELSE @echo no ImportLibs on Mac and *ix @@ -5481,6 +5089,7 @@ $(SHL1IMPLIBN): \ @$(TOUCH) $@ .ENDIF .ENDIF +.ENDIF # unroll begin @@ -5495,6 +5104,7 @@ USELIB2DEPN+=$(SHL2LIBS) USE_SHL2TARGET=$(SHL2TARGETN) .ENDIF +.IF "$(GUI)$(COM)" != "WNTGCC" .IF "$(GUI)" != "UNX" $(SHL2IMPLIBN): \ $(SHL2DEF) \ @@ -5507,11 +5117,6 @@ $(SHL2IMPLIBN): \ .ENDIF @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" -.IF "$(COM)"=="GCC" - @echo no ImportLibs on mingw - @-$(RM) $@ - @$(TOUCH) $@ -.ELSE # "$(COM)=="GCC" # bei use_deffile implib von linker erstellt .IF "$(USE_DEFFILE)"=="" $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL2IMPLIBN) \ @@ -5520,14 +5125,6 @@ $(SHL2IMPLIBN): \ @echo build of $(SHL2TARGETN) creates $@ @$(TOUCH) $@ .ENDIF # "$(USE_DEFFILE)=="" -.ENDIF # "$(COM)"=="GCC" - -.ELIF "$(GUI)" == "OS2" - -# touch creates an empty file, but this is not good for emxomfar, so -# create a dummy lib here - $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL2VERSIONOBJ) - +@echo build of $(SHL2TARGETN) creates $@ .ELSE @echo no ImportLibs on Mac and *ix @@ -5535,6 +5132,7 @@ $(SHL2IMPLIBN): \ @$(TOUCH) $@ .ENDIF .ENDIF +.ENDIF # unroll begin @@ -5549,6 +5147,7 @@ USELIB3DEPN+=$(SHL3LIBS) USE_SHL3TARGET=$(SHL3TARGETN) .ENDIF +.IF "$(GUI)$(COM)" != "WNTGCC" .IF "$(GUI)" != "UNX" $(SHL3IMPLIBN): \ $(SHL3DEF) \ @@ -5561,11 +5160,6 @@ $(SHL3IMPLIBN): \ .ENDIF @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" -.IF "$(COM)"=="GCC" - @echo no ImportLibs on mingw - @-$(RM) $@ - @$(TOUCH) $@ -.ELSE # "$(COM)=="GCC" # bei use_deffile implib von linker erstellt .IF "$(USE_DEFFILE)"=="" $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL3IMPLIBN) \ @@ -5574,14 +5168,6 @@ $(SHL3IMPLIBN): \ @echo build of $(SHL3TARGETN) creates $@ @$(TOUCH) $@ .ENDIF # "$(USE_DEFFILE)=="" -.ENDIF # "$(COM)"=="GCC" - -.ELIF "$(GUI)" == "OS2" - -# touch creates an empty file, but this is not good for emxomfar, so -# create a dummy lib here - $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL3VERSIONOBJ) - +@echo build of $(SHL3TARGETN) creates $@ .ELSE @echo no ImportLibs on Mac and *ix @@ -5589,6 +5175,7 @@ $(SHL3IMPLIBN): \ @$(TOUCH) $@ .ENDIF .ENDIF +.ENDIF # unroll begin @@ -5603,6 +5190,7 @@ USELIB4DEPN+=$(SHL4LIBS) USE_SHL4TARGET=$(SHL4TARGETN) .ENDIF +.IF "$(GUI)$(COM)" != "WNTGCC" .IF "$(GUI)" != "UNX" $(SHL4IMPLIBN): \ $(SHL4DEF) \ @@ -5615,11 +5203,6 @@ $(SHL4IMPLIBN): \ .ENDIF @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" -.IF "$(COM)"=="GCC" - @echo no ImportLibs on mingw - @-$(RM) $@ - @$(TOUCH) $@ -.ELSE # "$(COM)=="GCC" # bei use_deffile implib von linker erstellt .IF "$(USE_DEFFILE)"=="" $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL4IMPLIBN) \ @@ -5628,14 +5211,6 @@ $(SHL4IMPLIBN): \ @echo build of $(SHL4TARGETN) creates $@ @$(TOUCH) $@ .ENDIF # "$(USE_DEFFILE)=="" -.ENDIF # "$(COM)"=="GCC" - -.ELIF "$(GUI)" == "OS2" - -# touch creates an empty file, but this is not good for emxomfar, so -# create a dummy lib here - $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL4VERSIONOBJ) - +@echo build of $(SHL4TARGETN) creates $@ .ELSE @echo no ImportLibs on Mac and *ix @@ -5643,6 +5218,7 @@ $(SHL4IMPLIBN): \ @$(TOUCH) $@ .ENDIF .ENDIF +.ENDIF # unroll begin @@ -5657,6 +5233,7 @@ USELIB5DEPN+=$(SHL5LIBS) USE_SHL5TARGET=$(SHL5TARGETN) .ENDIF +.IF "$(GUI)$(COM)" != "WNTGCC" .IF "$(GUI)" != "UNX" $(SHL5IMPLIBN): \ $(SHL5DEF) \ @@ -5669,11 +5246,6 @@ $(SHL5IMPLIBN): \ .ENDIF @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" -.IF "$(COM)"=="GCC" - @echo no ImportLibs on mingw - @-$(RM) $@ - @$(TOUCH) $@ -.ELSE # "$(COM)=="GCC" # bei use_deffile implib von linker erstellt .IF "$(USE_DEFFILE)"=="" $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL5IMPLIBN) \ @@ -5682,14 +5254,6 @@ $(SHL5IMPLIBN): \ @echo build of $(SHL5TARGETN) creates $@ @$(TOUCH) $@ .ENDIF # "$(USE_DEFFILE)=="" -.ENDIF # "$(COM)"=="GCC" - -.ELIF "$(GUI)" == "OS2" - -# touch creates an empty file, but this is not good for emxomfar, so -# create a dummy lib here - $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL5VERSIONOBJ) - +@echo build of $(SHL5TARGETN) creates $@ .ELSE @echo no ImportLibs on Mac and *ix @@ -5697,6 +5261,7 @@ $(SHL5IMPLIBN): \ @$(TOUCH) $@ .ENDIF .ENDIF +.ENDIF # unroll begin @@ -5711,6 +5276,7 @@ USELIB6DEPN+=$(SHL6LIBS) USE_SHL6TARGET=$(SHL6TARGETN) .ENDIF +.IF "$(GUI)$(COM)" != "WNTGCC" .IF "$(GUI)" != "UNX" $(SHL6IMPLIBN): \ $(SHL6DEF) \ @@ -5723,11 +5289,6 @@ $(SHL6IMPLIBN): \ .ENDIF @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" -.IF "$(COM)"=="GCC" - @echo no ImportLibs on mingw - @-$(RM) $@ - @$(TOUCH) $@ -.ELSE # "$(COM)=="GCC" # bei use_deffile implib von linker erstellt .IF "$(USE_DEFFILE)"=="" $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL6IMPLIBN) \ @@ -5736,14 +5297,6 @@ $(SHL6IMPLIBN): \ @echo build of $(SHL6TARGETN) creates $@ @$(TOUCH) $@ .ENDIF # "$(USE_DEFFILE)=="" -.ENDIF # "$(COM)"=="GCC" - -.ELIF "$(GUI)" == "OS2" - -# touch creates an empty file, but this is not good for emxomfar, so -# create a dummy lib here - $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL6VERSIONOBJ) - +@echo build of $(SHL6TARGETN) creates $@ .ELSE @echo no ImportLibs on Mac and *ix @@ -5751,6 +5304,7 @@ $(SHL6IMPLIBN): \ @$(TOUCH) $@ .ENDIF .ENDIF +.ENDIF # unroll begin @@ -5765,6 +5319,7 @@ USELIB7DEPN+=$(SHL7LIBS) USE_SHL7TARGET=$(SHL7TARGETN) .ENDIF +.IF "$(GUI)$(COM)" != "WNTGCC" .IF "$(GUI)" != "UNX" $(SHL7IMPLIBN): \ $(SHL7DEF) \ @@ -5777,11 +5332,6 @@ $(SHL7IMPLIBN): \ .ENDIF @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" -.IF "$(COM)"=="GCC" - @echo no ImportLibs on mingw - @-$(RM) $@ - @$(TOUCH) $@ -.ELSE # "$(COM)=="GCC" # bei use_deffile implib von linker erstellt .IF "$(USE_DEFFILE)"=="" $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL7IMPLIBN) \ @@ -5790,14 +5340,6 @@ $(SHL7IMPLIBN): \ @echo build of $(SHL7TARGETN) creates $@ @$(TOUCH) $@ .ENDIF # "$(USE_DEFFILE)=="" -.ENDIF # "$(COM)"=="GCC" - -.ELIF "$(GUI)" == "OS2" - -# touch creates an empty file, but this is not good for emxomfar, so -# create a dummy lib here - $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL7VERSIONOBJ) - +@echo build of $(SHL7TARGETN) creates $@ .ELSE @echo no ImportLibs on Mac and *ix @@ -5805,6 +5347,7 @@ $(SHL7IMPLIBN): \ @$(TOUCH) $@ .ENDIF .ENDIF +.ENDIF # unroll begin @@ -5819,6 +5362,7 @@ USELIB8DEPN+=$(SHL8LIBS) USE_SHL8TARGET=$(SHL8TARGETN) .ENDIF +.IF "$(GUI)$(COM)" != "WNTGCC" .IF "$(GUI)" != "UNX" $(SHL8IMPLIBN): \ $(SHL8DEF) \ @@ -5831,11 +5375,6 @@ $(SHL8IMPLIBN): \ .ENDIF @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" -.IF "$(COM)"=="GCC" - @echo no ImportLibs on mingw - @-$(RM) $@ - @$(TOUCH) $@ -.ELSE # "$(COM)=="GCC" # bei use_deffile implib von linker erstellt .IF "$(USE_DEFFILE)"=="" $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL8IMPLIBN) \ @@ -5844,14 +5383,6 @@ $(SHL8IMPLIBN): \ @echo build of $(SHL8TARGETN) creates $@ @$(TOUCH) $@ .ENDIF # "$(USE_DEFFILE)=="" -.ENDIF # "$(COM)"=="GCC" - -.ELIF "$(GUI)" == "OS2" - -# touch creates an empty file, but this is not good for emxomfar, so -# create a dummy lib here - $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL8VERSIONOBJ) - +@echo build of $(SHL8TARGETN) creates $@ .ELSE @echo no ImportLibs on Mac and *ix @@ -5859,6 +5390,7 @@ $(SHL8IMPLIBN): \ @$(TOUCH) $@ .ENDIF .ENDIF +.ENDIF # unroll begin @@ -5873,6 +5405,7 @@ USELIB9DEPN+=$(SHL9LIBS) USE_SHL9TARGET=$(SHL9TARGETN) .ENDIF +.IF "$(GUI)$(COM)" != "WNTGCC" .IF "$(GUI)" != "UNX" $(SHL9IMPLIBN): \ $(SHL9DEF) \ @@ -5885,11 +5418,6 @@ $(SHL9IMPLIBN): \ .ENDIF @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" -.IF "$(COM)"=="GCC" - @echo no ImportLibs on mingw - @-$(RM) $@ - @$(TOUCH) $@ -.ELSE # "$(COM)=="GCC" # bei use_deffile implib von linker erstellt .IF "$(USE_DEFFILE)"=="" $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL9IMPLIBN) \ @@ -5898,14 +5426,6 @@ $(SHL9IMPLIBN): \ @echo build of $(SHL9TARGETN) creates $@ @$(TOUCH) $@ .ENDIF # "$(USE_DEFFILE)=="" -.ENDIF # "$(COM)"=="GCC" - -.ELIF "$(GUI)" == "OS2" - -# touch creates an empty file, but this is not good for emxomfar, so -# create a dummy lib here - $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL9VERSIONOBJ) - +@echo build of $(SHL9TARGETN) creates $@ .ELSE @echo no ImportLibs on Mac and *ix @@ -5913,6 +5433,7 @@ $(SHL9IMPLIBN): \ @$(TOUCH) $@ .ENDIF .ENDIF +.ENDIF # unroll begin @@ -5927,6 +5448,7 @@ USELIB10DEPN+=$(SHL10LIBS) USE_SHL10TARGET=$(SHL10TARGETN) .ENDIF +.IF "$(GUI)$(COM)" != "WNTGCC" .IF "$(GUI)" != "UNX" $(SHL10IMPLIBN): \ $(SHL10DEF) \ @@ -5939,11 +5461,6 @@ $(SHL10IMPLIBN): \ .ENDIF @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" -.IF "$(COM)"=="GCC" - @echo no ImportLibs on mingw - @-$(RM) $@ - @$(TOUCH) $@ -.ELSE # "$(COM)=="GCC" # bei use_deffile implib von linker erstellt .IF "$(USE_DEFFILE)"=="" $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL10IMPLIBN) \ @@ -5952,14 +5469,6 @@ $(SHL10IMPLIBN): \ @echo build of $(SHL10TARGETN) creates $@ @$(TOUCH) $@ .ENDIF # "$(USE_DEFFILE)=="" -.ENDIF # "$(COM)"=="GCC" - -.ELIF "$(GUI)" == "OS2" - -# touch creates an empty file, but this is not good for emxomfar, so -# create a dummy lib here - $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL10VERSIONOBJ) - +@echo build of $(SHL10TARGETN) creates $@ .ELSE @echo no ImportLibs on Mac and *ix @@ -5967,4 +5476,5 @@ $(SHL10IMPLIBN): \ @$(TOUCH) $@ .ENDIF .ENDIF +.ENDIF diff --git a/solenv/inc/_tg_zip.mk b/solenv/inc/_tg_zip.mk index 608819da6596..c60480bc5288 100644 --- a/solenv/inc/_tg_zip.mk +++ b/solenv/inc/_tg_zip.mk @@ -4,8 +4,6 @@ command_seperator=&& #command_seperator=^ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" -.ELIF "$(GUI)"=="OS2" -command_seperator=&& .ELSE command_seperator=; avoid_cvs_dir=-x "*CVS*" -x "*.svn*" @@ -14,6 +12,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" .IF "$(ZIP1TARGET)"!="" +.IF "$(ZIP1STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + ZIP1EXT*=.zip .IF "$(common_build_zip)"!="" .IF "$(ZIP1LIST:s/LANGDIR//)" == "$(ZIP1LIST)" @@ -117,6 +120,11 @@ $(ZIP1TARGETN) : delzip $(ZIP1DEPS) $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ $(FI) +.IF "$(ZIP1STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF .ENDIF # "$(ZIP1DIR)" != "" .ENDIF # "$(common_build_zip)"!="" .ENDIF @@ -127,8 +135,6 @@ $(ZIP1TARGETN) : delzip $(ZIP1DEPS) command_seperator=&& #command_seperator=^ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" -.ELIF "$(GUI)"=="OS2" -command_seperator=&& .ELSE command_seperator=; avoid_cvs_dir=-x "*CVS*" -x "*.svn*" @@ -137,6 +143,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" .IF "$(ZIP2TARGET)"!="" +.IF "$(ZIP2STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + ZIP2EXT*=.zip .IF "$(common_build_zip)"!="" .IF "$(ZIP2LIST:s/LANGDIR//)" == "$(ZIP2LIST)" @@ -240,6 +251,11 @@ $(ZIP2TARGETN) : delzip $(ZIP2DEPS) $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ $(FI) +.IF "$(ZIP2STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF .ENDIF # "$(ZIP2DIR)" != "" .ENDIF # "$(common_build_zip)"!="" .ENDIF @@ -250,8 +266,6 @@ $(ZIP2TARGETN) : delzip $(ZIP2DEPS) command_seperator=&& #command_seperator=^ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" -.ELIF "$(GUI)"=="OS2" -command_seperator=&& .ELSE command_seperator=; avoid_cvs_dir=-x "*CVS*" -x "*.svn*" @@ -260,6 +274,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" .IF "$(ZIP3TARGET)"!="" +.IF "$(ZIP3STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + ZIP3EXT*=.zip .IF "$(common_build_zip)"!="" .IF "$(ZIP3LIST:s/LANGDIR//)" == "$(ZIP3LIST)" @@ -363,6 +382,11 @@ $(ZIP3TARGETN) : delzip $(ZIP3DEPS) $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ $(FI) +.IF "$(ZIP3STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF .ENDIF # "$(ZIP3DIR)" != "" .ENDIF # "$(common_build_zip)"!="" .ENDIF @@ -373,8 +397,6 @@ $(ZIP3TARGETN) : delzip $(ZIP3DEPS) command_seperator=&& #command_seperator=^ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" -.ELIF "$(GUI)"=="OS2" -command_seperator=&& .ELSE command_seperator=; avoid_cvs_dir=-x "*CVS*" -x "*.svn*" @@ -383,6 +405,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" .IF "$(ZIP4TARGET)"!="" +.IF "$(ZIP4STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + ZIP4EXT*=.zip .IF "$(common_build_zip)"!="" .IF "$(ZIP4LIST:s/LANGDIR//)" == "$(ZIP4LIST)" @@ -486,6 +513,11 @@ $(ZIP4TARGETN) : delzip $(ZIP4DEPS) $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ $(FI) +.IF "$(ZIP4STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF .ENDIF # "$(ZIP4DIR)" != "" .ENDIF # "$(common_build_zip)"!="" .ENDIF @@ -496,8 +528,6 @@ $(ZIP4TARGETN) : delzip $(ZIP4DEPS) command_seperator=&& #command_seperator=^ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" -.ELIF "$(GUI)"=="OS2" -command_seperator=&& .ELSE command_seperator=; avoid_cvs_dir=-x "*CVS*" -x "*.svn*" @@ -506,6 +536,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" .IF "$(ZIP5TARGET)"!="" +.IF "$(ZIP5STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + ZIP5EXT*=.zip .IF "$(common_build_zip)"!="" .IF "$(ZIP5LIST:s/LANGDIR//)" == "$(ZIP5LIST)" @@ -609,6 +644,11 @@ $(ZIP5TARGETN) : delzip $(ZIP5DEPS) $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ $(FI) +.IF "$(ZIP5STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF .ENDIF # "$(ZIP5DIR)" != "" .ENDIF # "$(common_build_zip)"!="" .ENDIF @@ -619,8 +659,6 @@ $(ZIP5TARGETN) : delzip $(ZIP5DEPS) command_seperator=&& #command_seperator=^ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" -.ELIF "$(GUI)"=="OS2" -command_seperator=&& .ELSE command_seperator=; avoid_cvs_dir=-x "*CVS*" -x "*.svn*" @@ -629,6 +667,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" .IF "$(ZIP6TARGET)"!="" +.IF "$(ZIP6STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + ZIP6EXT*=.zip .IF "$(common_build_zip)"!="" .IF "$(ZIP6LIST:s/LANGDIR//)" == "$(ZIP6LIST)" @@ -732,6 +775,11 @@ $(ZIP6TARGETN) : delzip $(ZIP6DEPS) $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ $(FI) +.IF "$(ZIP6STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF .ENDIF # "$(ZIP6DIR)" != "" .ENDIF # "$(common_build_zip)"!="" .ENDIF @@ -742,8 +790,6 @@ $(ZIP6TARGETN) : delzip $(ZIP6DEPS) command_seperator=&& #command_seperator=^ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" -.ELIF "$(GUI)"=="OS2" -command_seperator=&& .ELSE command_seperator=; avoid_cvs_dir=-x "*CVS*" -x "*.svn*" @@ -752,6 +798,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" .IF "$(ZIP7TARGET)"!="" +.IF "$(ZIP7STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + ZIP7EXT*=.zip .IF "$(common_build_zip)"!="" .IF "$(ZIP7LIST:s/LANGDIR//)" == "$(ZIP7LIST)" @@ -855,6 +906,11 @@ $(ZIP7TARGETN) : delzip $(ZIP7DEPS) $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ $(FI) +.IF "$(ZIP7STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF .ENDIF # "$(ZIP7DIR)" != "" .ENDIF # "$(common_build_zip)"!="" .ENDIF @@ -865,8 +921,6 @@ $(ZIP7TARGETN) : delzip $(ZIP7DEPS) command_seperator=&& #command_seperator=^ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" -.ELIF "$(GUI)"=="OS2" -command_seperator=&& .ELSE command_seperator=; avoid_cvs_dir=-x "*CVS*" -x "*.svn*" @@ -875,6 +929,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" .IF "$(ZIP8TARGET)"!="" +.IF "$(ZIP8STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + ZIP8EXT*=.zip .IF "$(common_build_zip)"!="" .IF "$(ZIP8LIST:s/LANGDIR//)" == "$(ZIP8LIST)" @@ -978,6 +1037,11 @@ $(ZIP8TARGETN) : delzip $(ZIP8DEPS) $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ $(FI) +.IF "$(ZIP8STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF .ENDIF # "$(ZIP8DIR)" != "" .ENDIF # "$(common_build_zip)"!="" .ENDIF @@ -988,8 +1052,6 @@ $(ZIP8TARGETN) : delzip $(ZIP8DEPS) command_seperator=&& #command_seperator=^ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" -.ELIF "$(GUI)"=="OS2" -command_seperator=&& .ELSE command_seperator=; avoid_cvs_dir=-x "*CVS*" -x "*.svn*" @@ -998,6 +1060,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" .IF "$(ZIP9TARGET)"!="" +.IF "$(ZIP9STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + ZIP9EXT*=.zip .IF "$(common_build_zip)"!="" .IF "$(ZIP9LIST:s/LANGDIR//)" == "$(ZIP9LIST)" @@ -1101,6 +1168,11 @@ $(ZIP9TARGETN) : delzip $(ZIP9DEPS) $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ $(FI) +.IF "$(ZIP9STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF .ENDIF # "$(ZIP9DIR)" != "" .ENDIF # "$(common_build_zip)"!="" .ENDIF @@ -1111,8 +1183,6 @@ $(ZIP9TARGETN) : delzip $(ZIP9DEPS) command_seperator=&& #command_seperator=^ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" -.ELIF "$(GUI)"=="OS2" -command_seperator=&& .ELSE command_seperator=; avoid_cvs_dir=-x "*CVS*" -x "*.svn*" @@ -1121,6 +1191,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" .IF "$(ZIP10TARGET)"!="" +.IF "$(ZIP10STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + ZIP10EXT*=.zip .IF "$(common_build_zip)"!="" .IF "$(ZIP10LIST:s/LANGDIR//)" == "$(ZIP10LIST)" @@ -1224,6 +1299,11 @@ $(ZIP10TARGETN) : delzip $(ZIP10DEPS) $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ $(FI) +.IF "$(ZIP10STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF .ENDIF # "$(ZIP10DIR)" != "" .ENDIF # "$(common_build_zip)"!="" .ENDIF diff --git a/solenv/inc/ant.mk b/solenv/inc/ant.mk index 2d182a66a437..dd86f7e4a825 100644 --- a/solenv/inc/ant.mk +++ b/solenv/inc/ant.mk @@ -53,7 +53,7 @@ CLASSPATH!:=$(CLASSPATH)$(PATH_SEPERATOR)$(ANT_CLASSPATH)$(PATH_SEPERATOR)$(JAVA # --- TARGETS ----------------------------------------------------- -$(CLASSDIR)/solar.properties : $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/minormkchanged.flg $(SOLARENV)/inc/ant.properties +$(CLASSDIR)/solar.properties : $(SOLARVERSION)/$(INPATH)/inc/minormkchanged.flg $(SOLARENV)/inc/ant.properties @echo "Making: " $@ @echo solar.build=$(BUILD) > $@ @echo solar.rscversion=$(USQ)$(RSCVERSION)$(USQ) >> $@ @@ -65,13 +65,13 @@ $(CLASSDIR)/solar.properties : $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/minor @cat $(DMAKEROOT)/../ant.properties >> $@ ANTBUILD .PHONY: - $(ANT) $(ANT_FLAGS) + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) clean .PHONY: - $(ANT) $(ANT_FLAGS) $@ + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ prepare .PHONY: - $(ANT) $(ANT_FLAGS) $@ + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ main: .PHONY: $(ANT) $(ANT_FLAGS) $@ @@ -80,21 +80,19 @@ info: .PHONY $(ANT) $(ANT_FLAGS) $@ jar .PHONY: - $(ANT) $(ANT_FLAGS) $@ + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ compile .PHONY: - $(ANT) $(ANT_FLAGS) $@ + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ depend .PHONY: - $(ANT) $(ANT_FLAGS) $@ + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ javadoc .PHONY: - $(ANT) $(ANT_FLAGS) $@ + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ config .PHONY: - $(ANT) $(ANT_FLAGS) $@ + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ test .PHONY: - $(ANT) $(ANT_FLAGS) $@ - - + $(COMMAND_ECHO)$(ANT) $(ANT_FLAGS) $@ diff --git a/solenv/inc/antsettings.mk b/solenv/inc/antsettings.mk index 5a28b242967d..fda4a82896ab 100644 --- a/solenv/inc/antsettings.mk +++ b/solenv/inc/antsettings.mk @@ -40,6 +40,18 @@ PATH!:=$(ANT_HOME)/bin:$(PATH) ANT*:=$(ANT_HOME)/bin/ant ANT_BUILDFILE*=build.xml +.IF "$(ANT_COMPILER_FLAGS)"=="" +.IF "$(JAVACISGCJ)" == "yes" +ANT_COMPILER_FLAGS=-Dbuild.compiler=gcj +.ENDIF +.ENDIF + +.IF "$(ANT_JAVA_VER_FLAGS)"=="" +.IF "$(JDK)" != "gcj" && $(JAVACISKAFFE) != "yes" +ANT_JAVA_VER_FLAGS=-Dant.build.javac.source=$(JAVA_SOURCE_VER) -Dant.build.javac.target=$(JAVA_TARGET_VER) +.ENDIF +.ENDIF + .IF "$(ANT_DEBUG)"=="" .IF "$(debug)"=="" ANT_DEBUG=off @@ -56,26 +68,24 @@ ANT_OPT=on .ENDIF .ENDIF +.IF "$(VERBOSE)" == "TRUE" + ANT_VERBOSE=-v +.ELSE + ANT_VERBOSE=-q +.ENDIF + .IF "$(JDK)"=="gcj" JAVA_HOME= .EXPORT : JAVA_HOME .ENDIF -.IF "$(JAVACISGCJ)" == "yes" -ANT_FLAGS!:=-Dbuild.compiler=gcj -Dprj=$(PRJ) -Dprjname=$(PRJNAME) -Ddebug=$(ANT_DEBUG) \ - -Doptimize=$(ANT_OPT) -Dtarget=$(TARGET) -Dsolar.update=on -Dout=$(OUT) -Dinpath=$(INPATH) \ - -Dproext="$(PROEXT)" -Dsolar.bin=$(SOLARBINDIR) -Dsolar.jar=$(SOLARBINDIR) \ - -Dsolar.doc=$(SOLARDOCDIR) -Dcommon.jar=$(SOLARCOMMONBINDIR) \ +ANT_FLAGS!:=$(ANT_COMPILER_FLAGS) -Dprj=$(PRJ) -Dprjname=$(PRJNAME) $(ANT_JAVA_VER_FLAGS) \ + -Ddebug=$(ANT_DEBUG) -Doptimize=$(ANT_OPT) -Dtarget=$(TARGET) -Dsolar.update=on \ + -Dout=$(OUT) -Dinpath=$(INPATH) -Dproext="$(PROEXT)" -Dsolar.bin=$(SOLARBINDIR) \ + -Dsolar.jar=$(SOLARBINDIR) -Dsolar.doc=$(SOLARDOCDIR) -Dcommon.jar=$(SOLARCOMMONBINDIR) \ -Dcommon.doc=$(SOLARCOMMONDOCDIR) -Dsolar.sourceversion=$(SOURCEVERSION) \ - -Dsolar.lastminor=$(LAST_MINOR) -Dsolar.build=$(BUILD) -f $(ANT_BUILDFILE) $(ANT_FLAGS) -emacs -.ELSE -ANT_FLAGS!:=-Dprj=$(PRJ) -Dprjname=$(PRJNAME) -Ddebug=$(ANT_DEBUG) -Doptimize=$(ANT_OPT) \ - -Dtarget=$(TARGET) -Dsolar.update=on -Dout=$(OUT) -Dinpath=$(INPATH) -Dproext="$(PROEXT)" \ - -Dsolar.bin=$(SOLARBINDIR) -Dsolar.jar=$(SOLARBINDIR) -Dsolar.doc=$(SOLARDOCDIR) \ - -Dcommon.jar=$(SOLARCOMMONBINDIR) -Dcommon.doc=$(SOLARCOMMONDOCDIR) \ - -Dsolar.sourceversion=$(SOURCEVERSION) -Dsolar.lastminor=$(LAST_MINOR) \ - -Dsolar.build=$(BUILD) -f $(ANT_BUILDFILE) $(ANT_FLAGS) -emacs -.ENDIF + -Dsolar.lastminor=$(LAST_MINOR) -Dsolar.build=$(BUILD) -f $(ANT_BUILDFILE) $(ANT_FLAGS) \ + -emacs $(ANT_VERBOSE) .ELSE # No java ANT= ANT_FLAGS= diff --git a/solenv/inc/doxygen.cfg b/solenv/inc/doxygen.cfg new file mode 100644 index 000000000000..7aa1548c0d22 --- /dev/null +++ b/solenv/inc/doxygen.cfg @@ -0,0 +1,1314 @@ +# Doxyfile 1.5.3 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project +# +# All text after a hash (#) is considered a comment and will be ignored +# The format is: +# TAG = value [value, ...] +# For lists items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (" ") + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the config file that +# follow. The default is UTF-8 which is also the encoding used for all text before +# the first occurrence of this tag. Doxygen uses libiconv (or the iconv built into +# libc) for the transcoding. See http://www.gnu.org/software/libiconv for the list of +# possible encodings. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded +# by quotes) that should identify the project. + +PROJECT_NAME = "$(DOXYGEN_PROJECTNAME) ($(DOXYGEN_VERSION)) " + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. +# This could be handy for archiving the generated documentation or +# if some version control system is used. + +PROJECT_NUMBER = 1 + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) +# base path where the generated documentation will be put. +# If a relative path is entered, it will be relative to the location +# where doxygen was started. If left blank the current directory will be used. + +OUTPUT_DIRECTORY = $(DOXYGEN_OUTPUT) + +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create +# 4096 sub-directories (in 2 levels) under the output directory of each output +# format and will distribute the generated files over these directories. +# Enabling this option can be useful when feeding doxygen a huge amount of +# source files, where putting all generated files in the same directory would +# otherwise cause performance problems for the file system. + +CREATE_SUBDIRS = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# The default language is English, other supported languages are: +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, +# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, +# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, +# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, +# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will +# include brief member descriptions after the members that are listed in +# the file and class documentation (similar to JavaDoc). +# Set to NO to disable this. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend +# the brief description of a member or function before the detailed description. +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator +# that is used to form the text in various listings. Each string +# in this list, if found as the leading text of the brief description, will be +# stripped from the text and the result after processing the whole list, is +# used as the annotated text. Otherwise, the brief description is used as-is. +# If left blank, the following values are used ("$name" is automatically +# replaced with the name of the entity): "The $name class" "The $name widget" +# "The $name file" "is" "provides" "specifies" "contains" +# "represents" "a" "an" "the" + +ABBREVIATE_BRIEF = + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# Doxygen will generate a detailed section even if there is only a brief +# description. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full +# path before files name in the file list and in the header files. If set +# to NO the shortest path that makes the file name unique will be used. + +FULL_PATH_NAMES = NO + +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag +# can be used to strip a user-defined part of the path. Stripping is +# only done if one of the specified strings matches the left-hand part of +# the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the +# path to strip. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of +# the path mentioned in the documentation of a class, which tells +# the reader which header file to include in order to use a class. +# If left blank only the name of the header file containing the class +# definition is used. Otherwise one should specify the include paths that +# are normally passed to the compiler using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter +# (but less readable) file names. This can be useful is your file systems +# doesn't support long names like on DOS, Mac, or CD-ROM. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen +# will interpret the first line (until the first dot) of a JavaDoc-style +# comment as the brief description. If set to NO, the JavaDoc +# comments will behave just like regular Qt-style comments +# (thus requiring an explicit @brief command for a brief description.) + +JAVADOC_AUTOBRIEF = YES + +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will +# interpret the first line (until the first dot) of a Qt-style +# comment as the brief description. If set to NO, the comments +# will behave just like regular Qt-style comments (thus requiring +# an explicit \brief command for a brief description.) + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen +# treat a multi-line C++ special comment block (i.e. a block of //! or /// +# comments) as a brief description. This used to be the default behaviour. +# The new default is to treat a multi-line C++ comment block as a detailed +# description. Set this tag to YES if you prefer the old behaviour instead. + +MULTILINE_CPP_IS_BRIEF = NO + +# If the DETAILS_AT_TOP tag is set to YES then Doxygen +# will output the detailed description near the top, like JavaDoc. +# If set to NO, the detailed description appears after the member +# documentation. + +DETAILS_AT_TOP = NO + +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented +# member inherits the documentation from any documented member that it +# re-implements. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce +# a new page for each member. If set to NO, the documentation of a member will +# be part of the file/class/namespace that contains it. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. +# Doxygen uses this value to replace tabs by spaces in code fragments. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that acts +# as commands in the documentation. An alias has the form "name=value". +# For example adding "sideeffect=\par Side Effects:\n" will allow you to +# put the command \sideeffect (or @sideeffect) in the documentation, which +# will result in a user-defined paragraph with heading "Side Effects:". +# You can put \n's in the value part of an alias to insert newlines. + +ALIASES = "tpl=\par Template parameter: \n" "since=\par Available since: \n" "derive=\par Derive: \n" "attention=\par Attention: \n" +# precond throws see path todo(own section, can enable!) + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C +# sources only. Doxygen will then generate output that is more tailored for C. +# For instance, some of the names that are used will be different. The list +# of all members will be omitted, etc. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java +# sources only. Doxygen will then generate output that is more tailored for Java. +# For instance, namespaces will be presented as packages, qualified scopes +# will look different, etc. + +OPTIMIZE_OUTPUT_JAVA = NO + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to +# include (a tag file for) the STL sources as input, then you should +# set this tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. +# func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. + +CPP_CLI_SUPPORT = NO + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES, then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. + +DISTRIBUTE_GROUP_DOC = NO + +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of +# the same type (for instance a group of public functions) to be put as a +# subgroup of that type (e.g. under the Public Functions section). Set it to +# NO to prevent subgrouping. Alternatively, this can be done per class using +# the \nosubgrouping command. + +SUBGROUPING = YES + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in +# documentation are documented, even if no documentation was available. +# Private class members and static file members will be hidden unless +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class +# will be included in the documentation. + +EXTRACT_PRIVATE = YES + +# If the EXTRACT_STATIC tag is set to YES all static members of a file +# will be included in the documentation. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) +# defined locally in source files will be included in the documentation. +# If set to NO only classes defined in header files are included. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. When set to YES local +# methods, which are defined in the implementation section but not in +# the interface are included in the documentation. +# If set to NO (the default) only methods in the interface are included. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be extracted +# and appear in the documentation as a namespace called 'anonymous_namespace{file}', +# where file will be replaced with the base name of the file that contains the anonymous +# namespace. By default anonymous namespace are hidden. + +EXTRACT_ANON_NSPACES = NO + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all +# undocumented members of documented classes, files or namespaces. +# If set to NO (the default) these members will be included in the +# various overviews, but no documentation section is generated. +# This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. +# If set to NO (the default) these classes will be included in the various +# overviews. This option has no effect if EXTRACT_ALL is enabled. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all +# friend (class|struct|union) declarations. +# If set to NO (the default) these declarations will be included in the +# documentation. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any +# documentation blocks found inside the body of a function. +# If set to NO (the default) these blocks will be appended to the +# function's detailed documentation block. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation +# that is typed after a \internal command is included. If the tag is set +# to NO (the default) then the documentation will be excluded. +# Set it to YES to include the internal documentation. + +INTERNAL_DOCS = NO + +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate +# file names in lower-case letters. If set to YES upper-case letters are also +# allowed. This is useful if you have classes or files whose names only differ +# in case and if your file system supports case sensitive file names. Windows +# and Mac users are advised to set this option to NO. + +CASE_SENSE_NAMES = YES + +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen +# will show members with their full class and namespace scopes in the +# documentation. If set to YES the scope will be hidden. + +HIDE_SCOPE_NAMES = NO + +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen +# will put a list of the files that are included by a file in the documentation +# of that file. + +SHOW_INCLUDE_FILES = YES + +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] +# is inserted in the documentation for inline members. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen +# will sort the (detailed) documentation of file and class members +# alphabetically by member name. If set to NO the members will appear in +# declaration order. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the +# brief documentation of file, namespace and class members alphabetically +# by member name. If set to NO (the default) the members will appear in +# declaration order. + +SORT_BRIEF_DOCS = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be +# sorted by fully-qualified names, including namespaces. If set to +# NO (the default), the class list will be sorted only by class name, +# not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the +# alphabetical list. + +SORT_BY_SCOPE_NAME = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or +# disable (NO) the todo list. This list is created by putting \todo +# commands in the documentation. + +GENERATE_TODOLIST = NO + +# The GENERATE_TESTLIST tag can be used to enable (YES) or +# disable (NO) the test list. This list is created by putting \test +# commands in the documentation. + +GENERATE_TESTLIST = NO + +# The GENERATE_BUGLIST tag can be used to enable (YES) or +# disable (NO) the bug list. This list is created by putting \bug +# commands in the documentation. + +GENERATE_BUGLIST = NO + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or +# disable (NO) the deprecated list. This list is created by putting +# \deprecated commands in the documentation. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional +# documentation sections, marked by \if sectionname ... \endif. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines +# the initial value of a variable or define consists of for it to appear in +# the documentation. If the initializer consists of more lines than specified +# here it will be hidden. Use a value of 0 to hide initializers completely. +# The appearance of the initializer of individual variables and defines in the +# documentation can be controlled using \showinitializer or \hideinitializer +# command in the documentation regardless of this setting. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated +# at the bottom of the documentation of classes and structs. If set to YES the +# list will mention the files that were used to generate the documentation. + +SHOW_USED_FILES = YES + +# If the sources in your project are distributed over multiple directories +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy +# in the documentation. The default is NO. + +SHOW_DIRECTORIES = NO + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from the +# version control system). Doxygen will invoke the program by executing (via +# popen()) the command <command> <input-file>, where <command> is the value of +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file +# provided by doxygen. Whatever the program writes to standard output +# is used as the file version. See the manual for examples. + +FILE_VERSION_FILTER = + +#--------------------------------------------------------------------------- +# configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated +# by doxygen. Possible values are YES and NO. If left blank NO is used. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated by doxygen. Possible values are YES and NO. If left blank +# NO is used. + +WARNINGS = YES + +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will +# automatically be disabled. + +WARN_IF_UNDOCUMENTED = NO + +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as not documenting some +# parameters in a documented function, or documenting parameters that +# don't exist or using markup commands wrongly. + +WARN_IF_DOC_ERROR = YES + +# This WARN_NO_PARAMDOC option can be abled to get warnings for +# functions that are documented, but have no documentation for their parameters +# or return value. If set to NO (the default) doxygen will only warn about +# wrong or incomplete parameter documentation, but not about the absence of +# documentation. + +WARN_NO_PARAMDOC = NO + +# The WARN_FORMAT tag determines the format of the warning messages that +# doxygen can produce. The string should contain the $file, $line, and $text +# tags, which will be replaced by the file and line number from which the +# warning originated and the warning text. Optionally the format may contain +# $version, which will be replaced by the version of the file (if it could +# be obtained via FILE_VERSION_FILTER) + +WARN_FORMAT = + +# The WARN_LOGFILE tag can be used to specify a file to which warning +# and error messages should be written. If left blank the output is written +# to stderr. + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag can be used to specify the files and/or directories that contain +# documented source files. You may enter file names like "myfile.cpp" or +# directories like "/usr/src/myproject". Separate the files or directories +# with spaces. + +INPUT = $(DOXYGEN_INPUT) + +# This tag can be used to specify the character encoding of the source files that +# doxygen parses. Internally doxygen uses the UTF-8 encoding, which is also the default +# input encoding. Doxygen uses libiconv (or the iconv built into libc) for the transcoding. +# See http://www.gnu.org/software/libiconv for the list of possible encodings. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank the following patterns are tested: +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py + +FILE_PATTERNS = + +# The RECURSIVE tag can be used to turn specify whether or not subdirectories +# should be searched for input files as well. Possible values are YES and NO. +# If left blank NO is used. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or +# directories that are symbolic links (a Unix filesystem feature) are excluded +# from the input. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. Note that the wildcards are matched +# against the file with absolute path, so to exclude all test directories +# for example use the pattern */test/* + +EXCLUDE_PATTERNS = + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the output. +# The symbol name can be a fully qualified name, a word, or if the wildcard * is used, +# a substring. Examples: ANamespace, AClass, AClass::ANamespace, ANamespace::*Test + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or +# directories that contain example code fragments that are included (see +# the \include command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp +# and *.h) to filter out the source-files in the directories. If left +# blank all files are included. + +EXAMPLE_PATTERNS = + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude +# commands irrespective of the value of the RECURSIVE tag. +# Possible values are YES and NO. If left blank NO is used. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or +# directories that contain image that are included in the documentation (see +# the \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command <filter> <input-file>, where <filter> +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an +# input file. Doxygen will then use the output that the filter program writes +# to standard output. If FILTER_PATTERNS is specified, this tag will be +# ignored. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER +# is applied to all files. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will be used to filter the input files when producing source +# files to browse (i.e. when SOURCE_BROWSER is set to YES). + +FILTER_SOURCE_FILES = NO + +#--------------------------------------------------------------------------- +# configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will +# be generated. Documented entities will be cross-referenced with these sources. +# Note: To get rid of all source code in the generated output, make sure also +# VERBATIM_HEADERS is set to NO. If you have enabled CALL_GRAPH or CALLER_GRAPH +# then you must also enable this option. If you don't then doxygen will produce +# a warning and turn it on anyway + +SOURCE_BROWSER = YES + +# Setting the INLINE_SOURCES tag to YES will include the body +# of functions and classes directly in the documentation. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct +# doxygen to hide any special comment blocks from generated source code +# fragments. Normal C and C++ comments will always remain visible. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES (the default) +# then for each documented function all documented +# functions referencing it will be listed. + +REFERENCED_BY_RELATION = YES + +# If the REFERENCES_RELATION tag is set to YES (the default) +# then for each documented function all documented entities +# called/used by that function will be listed. + +REFERENCES_RELATION = YES + +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will +# link to the source code. Otherwise they will link to the documentstion. + +REFERENCES_LINK_SOURCE = YES + +# If the USE_HTAGS tag is set to YES then the references to source code +# will point to the HTML generated by the htags(1) tool instead of doxygen +# built-in source browser. The htags tool is part of GNU's global source +# tagging system (see http://www.gnu.org/software/global/global.html). You +# will need version 4.8.6 or higher. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen +# will generate a verbatim copy of the header file for each class for +# which an include is specified. Set to NO to disable this. + +VERBATIM_HEADERS = YES + +#--------------------------------------------------------------------------- +# configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index +# of all compounds will be generated. Enable this if the project +# contains a lot of classes, structs, unions or interfaces. + +ALPHABETICAL_INDEX = YES + +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns +# in which this list will be split (can be a number in the range [1..20]) + +COLS_IN_ALPHA_INDEX = 5 + +# In case all classes in a project start with a common prefix, all +# classes will be put under the same header in the alphabetical index. +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that +# should be ignored while generating the index headers. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will +# generate HTML output. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `html' will be used as the default path. + +HTML_OUTPUT = + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank +# doxygen will generate files with .html extension. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a personal HTML header for +# each generated HTML page. If it is left blank doxygen will generate a +# standard header. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a personal HTML footer for +# each generated HTML page. If it is left blank doxygen will generate a +# standard footer. + +HTML_FOOTER = + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading +# style sheet that is used by each HTML page. It can be used to +# fine-tune the look of the HTML output. If the tag is left blank doxygen +# will generate a default style sheet. Note that doxygen will try to copy +# the style sheet file to the HTML output directory, so don't put your own +# stylesheet in the HTML output directory as well, or it will be erased! + +HTML_STYLESHEET = + +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, +# files or namespaces will be aligned in HTML using tables. If set to +# NO a bullet list will be used. + +HTML_ALIGN_MEMBERS = YES + +# If the GENERATE_HTMLHELP tag is set to YES, additional index files +# will be generated that can be used as input for tools like the +# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) +# of the generated HTML documentation. + +GENERATE_HTMLHELP = NO + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. For this to work a browser that supports +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). + +HTML_DYNAMIC_SECTIONS = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can +# be used to specify the file name of the resulting .chm file. You +# can add a path in front of the file if the result should not be +# written to the html output directory. + +CHM_FILE = + +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can +# be used to specify the location (absolute path including file name) of +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run +# the HTML help compiler on the generated index.hhp. + +HHC_LOCATION = + +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag +# controls if a separate .chi index file is generated (YES) or that +# it should be included in the master .chm file (NO). + +GENERATE_CHI = NO + +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag +# controls whether a binary table of contents is generated (YES) or a +# normal table of contents (NO) in the .chm file. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members +# to the contents of the HTML help documentation and to the tree view. + +TOC_EXPAND = NO + +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at +# top of each HTML page. The value NO (the default) enables the index and +# the value YES disables it. + +DISABLE_INDEX = NO + +# This tag can be used to set the number of enum values (range [1..20]) +# that doxygen will group on one line in the generated HTML documentation. + +ENUM_VALUES_PER_LINE = 1 + +# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be +# generated containing a tree-like index structure (just like the one that +# is generated for HTML Help). For this to work a browser that supports +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are +# probably better off using the HTML help feature. + +GENERATE_TREEVIEW = NO + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be +# used to set the initial width (in pixels) of the frame in which the tree +# is shown. + +TREEVIEW_WIDTH = 250 + +#--------------------------------------------------------------------------- +# configuration options related to the LaTeX output +#--------------------------------------------------------------------------- + +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will +# generate Latex output. + +GENERATE_LATEX = NO + +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `latex' will be used as the default path. + +LATEX_OUTPUT = + +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be +# invoked. If left blank `latex' will be used as the default command name. + +LATEX_CMD_NAME = latex + +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to +# generate index for LaTeX. If left blank `makeindex' will be used as the +# default command name. + +MAKEINDEX_CMD_NAME = makeindex + +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact +# LaTeX documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_LATEX = NO + +# The PAPER_TYPE tag can be used to set the paper type that is used +# by the printer. Possible values are: a4, a4wide, letter, legal and +# executive. If left blank a4wide will be used. + +PAPER_TYPE = a4wide + +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX +# packages that should be included in the LaTeX output. + +EXTRA_PACKAGES = + +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for +# the generated latex document. The header should contain everything until +# the first chapter. If it is left blank doxygen will generate a +# standard header. Notice: only use this tag if you know what you are doing! + +LATEX_HEADER = + +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated +# is prepared for conversion to pdf (using ps2pdf). The pdf file will +# contain links (just like the HTML output) instead of page references +# This makes the output suitable for online browsing using a pdf viewer. + +PDF_HYPERLINKS = NO + +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of +# plain latex in the generated Makefile. Set this option to YES to get a +# higher quality PDF documentation. + +USE_PDFLATEX = NO + +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. +# command to the generated LaTeX files. This will instruct LaTeX to keep +# running if errors occur, instead of asking the user for help. +# This option is also used when generating formulas in HTML. + +LATEX_BATCHMODE = NO + +# If LATEX_HIDE_INDICES is set to YES then doxygen will not +# include the index chapters (such as File Index, Compound Index, etc.) +# in the output. + +LATEX_HIDE_INDICES = NO + +#--------------------------------------------------------------------------- +# configuration options related to the RTF output +#--------------------------------------------------------------------------- + +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output +# The RTF output is optimized for Word 97 and may not look very pretty with +# other RTF readers or editors. + +GENERATE_RTF = NO + +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `rtf' will be used as the default path. + +RTF_OUTPUT = + +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact +# RTF documents. This may be useful for small projects and may help to +# save some trees in general. + +COMPACT_RTF = NO + +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated +# will contain hyperlink fields. The RTF file will +# contain links (just like the HTML output) instead of page references. +# This makes the output suitable for online browsing using WORD or other +# programs which support those fields. +# Note: wordpad (write) and others do not support links. + +RTF_HYPERLINKS = NO + +# Load stylesheet definitions from file. Syntax is similar to doxygen's +# config file, i.e. a series of assignments. You only have to provide +# replacements, missing definitions are set to their default value. + +RTF_STYLESHEET_FILE = + +# Set optional variables used in the generation of an rtf document. +# Syntax is similar to doxygen's config file. + +RTF_EXTENSIONS_FILE = + +#--------------------------------------------------------------------------- +# configuration options related to the man page output +#--------------------------------------------------------------------------- + +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will +# generate man pages + +GENERATE_MAN = NO + +# The MAN_OUTPUT tag is used to specify where the man pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `man' will be used as the default path. + +MAN_OUTPUT = + +# The MAN_EXTENSION tag determines the extension that is added to +# the generated man pages (default is the subroutine's section .3) + +MAN_EXTENSION = + +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, +# then it will generate one additional man file for each entity +# documented in the real man page(s). These additional files +# only source the real man page, but without them the man command +# would be unable to find the correct page. The default is NO. + +MAN_LINKS = NO + +#--------------------------------------------------------------------------- +# configuration options related to the XML output +#--------------------------------------------------------------------------- + +# If the GENERATE_XML tag is set to YES Doxygen will +# generate an XML file that captures the structure of +# the code including all documentation. + +GENERATE_XML = NO + +# The XML_OUTPUT tag is used to specify where the XML pages will be put. +# If a relative path is entered the value of OUTPUT_DIRECTORY will be +# put in front of it. If left blank `xml' will be used as the default path. + +XML_OUTPUT = xml + +# The XML_SCHEMA tag can be used to specify an XML schema, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_SCHEMA = + +# The XML_DTD tag can be used to specify an XML DTD, +# which can be used by a validating XML parser to check the +# syntax of the XML files. + +XML_DTD = + +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will +# dump the program listings (including syntax highlighting +# and cross-referencing information) to the XML output. Note that +# enabling this will significantly increase the size of the XML output. + +XML_PROGRAMLISTING = YES + +#--------------------------------------------------------------------------- +# configuration options for the AutoGen Definitions output +#--------------------------------------------------------------------------- + +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will +# generate an AutoGen Definitions (see autogen.sf.net) file +# that captures the structure of the code including all +# documentation. Note that this feature is still experimental +# and incomplete at the moment. + +GENERATE_AUTOGEN_DEF = NO + +#--------------------------------------------------------------------------- +# configuration options related to the Perl module output +#--------------------------------------------------------------------------- + +# If the GENERATE_PERLMOD tag is set to YES Doxygen will +# generate a Perl module file that captures the structure of +# the code including all documentation. Note that this +# feature is still experimental and incomplete at the +# moment. + +GENERATE_PERLMOD = NO + +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate +# the necessary Makefile rules, Perl scripts and LaTeX code to be able +# to generate PDF and DVI output from the Perl module output. + +PERLMOD_LATEX = NO + +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be +# nicely formatted so it can be parsed by a human reader. This is useful +# if you want to understand what is going on. On the other hand, if this +# tag is set to NO the size of the Perl module output will be much smaller +# and Perl will parse it just the same. + +PERLMOD_PRETTY = YES + +# The names of the make variables in the generated doxyrules.make file +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. +# This is useful so different doxyrules.make files included by the same +# Makefile don't overwrite each other's variables. + +PERLMOD_MAKEVAR_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the preprocessor +#--------------------------------------------------------------------------- + +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will +# evaluate all C-preprocessor directives found in the sources and include +# files. + +ENABLE_PREPROCESSING = YES + +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro +# names in the source code. If set to NO (the default) only conditional +# compilation will be performed. Macro expansion can be done in a controlled +# way by setting EXPAND_ONLY_PREDEF to YES. + +MACRO_EXPANSION = NO + +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES +# then the macro expansion is limited to the macros specified with the +# PREDEFINED and EXPAND_AS_DEFINED tags. + +EXPAND_ONLY_PREDEF = NO + +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files +# in the INCLUDE_PATH (see below) will be search if a #include is found. + +SEARCH_INCLUDES = YES + +# The INCLUDE_PATH tag can be used to specify one or more directories that +# contain include files that are not input files but should be processed by +# the preprocessor. + +INCLUDE_PATH = $(DOXYGEN_INCLUDE_PATH) + +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard +# patterns (like *.h and *.hpp) to filter out the header-files in the +# directories. If left blank, the patterns specified with FILE_PATTERNS will +# be used. + +INCLUDE_FILE_PATTERNS = + +# The PREDEFINED tag can be used to specify one or more macro names that +# are defined before the preprocessor is started (similar to the -D option of +# gcc). The argument of the tag is a list of macros of the form: name +# or name=definition (no spaces). If the definition and the = are +# omitted =1 is assumed. To prevent a macro definition from being +# undefined via #undef or recursively expanded use the := operator +# instead of the = operator. + +PREDEFINED = LINUX \ + UNX \ + VCL \ + GCC \ + C341 \ + X86_64 \ + _DEBUG_RUNTIME \ + VER=C341 \ + NPTL \ + GLIBC=2 \ + NEW_SOLAR \ + _USE_NAMESPACE=1 \ + UNIX \ + SUPD=300 \ + DEBUG \ + DBG_UTIL \ + OSL_DEBUG_LEVEL=2 \ + CUI \ + SOLAR_JAVA \ + EXCEPTIONS_ON + +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then +# this tag can be used to specify a list of macro names that should be expanded. +# The macro definition that is found in the sources will be used. +# Use the PREDEFINED tag if you want to use a different macro definition. + +EXPAND_AS_DEFINED = + +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then +# doxygen's preprocessor will remove all function-like macros that are alone +# on a line, have an all uppercase name, and do not end with a semicolon. Such +# function macros are typically used for boiler-plate code, and will confuse +# the parser if not removed. + +SKIP_FUNCTION_MACROS = YES + +#--------------------------------------------------------------------------- +# Configuration::additions related to external references +#--------------------------------------------------------------------------- + +# The TAGFILES option can be used to specify one or more tagfiles. +# Optionally an initial location of the external documentation +# can be added for each tagfile. The format of a tag file without +# this location is as follows: +# TAGFILES = file1 file2 ... +# Adding location for the tag files is done as follows: +# TAGFILES = file1=loc1 "file2 = loc2" ... +# where "loc1" and "loc2" can be relative or absolute paths or +# URLs. If a location is present for each tag, the installdox tool +# does not have to be run to correct the links. +# Note that each tag file must have a unique name +# (where the name does NOT include the path) +# If a tag file is not located in the directory in which doxygen +# is run, you must also specify the path to the tagfile here. + +TAGFILES = $(DOXYGEN_REF_TAGFILES) + +# When a file name is specified after GENERATE_TAGFILE, doxygen will create +# a tag file that is based on the input files it reads. + +GENERATE_TAGFILE = $(DOXYGEN_OUR_TAGFILE) + +# If the ALLEXTERNALS tag is set to YES all external classes will be listed +# in the class index. If set to NO only the inherited external classes +# will be listed. + +ALLEXTERNALS = NO + +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed +# in the modules index. If set to NO, only the current project's groups will +# be listed. + +EXTERNAL_GROUPS = YES + +# The PERL_PATH should be the absolute path and name of the perl script +# interpreter (i.e. the result of `which perl'). + +PERL_PATH = + +#--------------------------------------------------------------------------- +# Configuration options related to the dot tool +#--------------------------------------------------------------------------- + +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base +# or super classes. Setting the tag to NO turns the diagrams off. Note that +# this option is superseded by the HAVE_DOT option below. This is only a +# fallback. It is recommended to install and use dot, since it yields more +# powerful graphs. + +CLASS_DIAGRAMS = YES + +# You can define message sequence charts within doxygen comments using the \msc +# command. Doxygen will then run the mscgen tool (see http://www.mcternan.me.uk/mscgen/) to +# produce the chart and insert it in the documentation. The MSCGEN_PATH tag allows you to +# specify the directory where the mscgen tool resides. If left empty the tool is assumed to +# be found in the default search path. + +MSCGEN_PATH = + +# If set to YES, the inheritance and collaboration graphs will hide +# inheritance and usage relations if the target is undocumented +# or is not a class. + +HIDE_UNDOC_RELATIONS = YES + +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is +# available from the path. This tool is part of Graphviz, a graph visualization +# toolkit from AT&T and Lucent Bell Labs. The other options in this section +# have no effect if this option is set to NO (the default) + +HAVE_DOT = YES + +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect inheritance relations. Setting this tag to YES will force the +# the CLASS_DIAGRAMS tag to NO. + +CLASS_GRAPH = YES + +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for each documented class showing the direct and +# indirect implementation dependencies (inheritance, containment, and +# class references variables) of the class with other documented classes. + +COLLABORATION_GRAPH = YES + +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen +# will generate a graph for groups, showing the direct groups dependencies + +GROUP_GRAPHS = YES + +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and +# collaboration diagrams in a style similar to the OMG's Unified Modeling +# Language. + +UML_LOOK = NO + +# If set to YES, the inheritance and collaboration graphs will show the +# relations between templates and their instances. + +TEMPLATE_RELATIONS = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT +# tags are set to YES then doxygen will generate a graph for each documented +# file showing the direct and indirect include dependencies of the file with +# other documented files. + +INCLUDE_GRAPH = YES + +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each +# documented header file showing the documented files that directly or +# indirectly include this file. + +INCLUDED_BY_GRAPH = YES + +# If the CALL_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will +# generate a call dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable call graphs for selected +# functions only using the \callgraph command. + +CALL_GRAPH = NO + +# If the CALLER_GRAPH, SOURCE_BROWSER and HAVE_DOT tags are set to YES then doxygen will +# generate a caller dependency graph for every global function or class method. +# Note that enabling this option will significantly increase the time of a run. +# So in most cases it will be better to enable caller graphs for selected +# functions only using the \callergraph command. + +CALLER_GRAPH = NO + +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen +# will graphical hierarchy of all classes instead of a textual one. + +GRAPHICAL_HIERARCHY = YES + +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES +# then doxygen will show the dependencies a directory has on other directories +# in a graphical way. The dependency relations are determined by the #include +# relations between the files in the directories. + +DIRECTORY_GRAPH = YES + +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images +# generated by dot. Possible values are png, jpg, or gif +# If left blank png will be used. + +DOT_IMAGE_FORMAT = png + +# The tag DOT_PATH can be used to specify the path where the dot tool can be +# found. If left blank, it is assumed the dot tool can be found in the path. + +DOT_PATH = + +# The DOTFILE_DIRS tag can be used to specify one or more directories that +# contain dot files that are included in the documentation (see the +# \dotfile command). + +DOTFILE_DIRS = + +# The MAX_DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of +# nodes that will be shown in the graph. If the number of nodes in a graph +# becomes larger than this value, doxygen will truncate the graph, which is +# visualized by representing a node as a red box. Note that doxygen if the number +# of direct children of the root node in a graph is already larger than +# MAX_DOT_GRAPH_NOTES then the graph will not be shown at all. Also note +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. + +DOT_GRAPH_MAX_NODES = 50 + +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the +# graphs generated by dot. A depth value of 3 means that only nodes reachable +# from the root by following a path via at most 3 edges will be shown. Nodes +# that lay further from the root node will be omitted. Note that setting this +# option to 1 or 2 may greatly reduce the computation time needed for large +# code bases. Also note that the size of a graph can be further restricted by +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. + +MAX_DOT_GRAPH_DEPTH = 0 + +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent +# background. This is disabled by default, which results in a white background. +# Warning: Depending on the platform used, enabling this option may lead to +# badly anti-aliased labels on the edges of a graph (i.e. they become hard to +# read). + +DOT_TRANSPARENT = NO + +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output +# files in one run (i.e. multiple -o and -T options on the command line). This +# makes dot run faster, but since only newer versions of dot (>1.8.10) +# support this, this feature is disabled by default. + +DOT_MULTI_TARGETS = NO + +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will +# generate a legend page explaining the meaning of the various boxes and +# arrows in the dot generated graphs. + +GENERATE_LEGEND = YES + +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will +# remove the intermediate dot files that are used to generate +# the various graphs. + +DOT_CLEANUP = NO + +#--------------------------------------------------------------------------- +# Configuration::additions related to the search engine +#--------------------------------------------------------------------------- + +# The SEARCHENGINE tag specifies whether or not a search engine should be +# used. If set to NO the values of all tags below this one will be ignored. + +SEARCHENGINE = NO diff --git a/solenv/inc/extension_helplink.mk b/solenv/inc/extension_helplink.mk index e375696bda18..c9fa15e6770b 100644 --- a/solenv/inc/extension_helplink.mk +++ b/solenv/inc/extension_helplink.mk @@ -1,7 +1,7 @@ #************************************************************************* # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# +# # Copyright 2000, 2010 Oracle and/or its affiliates. # # OpenOffice.org - a multi-platform office productivity suite @@ -32,10 +32,10 @@ my_cp!:=$(my_cp)$(PATH_SEPERATOR)$(LUCENE_CORE_JAR)$(PATH_SEPERATOR)$(LUCENE_ANA .ELSE my_cp!:=$(my_cp)$(PATH_SEPERATOR)$(SOLARBINDIR)/lucene-core-2.3.jar$(PATH_SEPERATOR)$(SOLARBINDIR)/lucene-analyzers-2.3.jar .ENDIF - + .IF "$(SYSTEM_DB)" != "YES" JAVA_LIBRARY_PATH= -Djava.library.path=$(SOLARSHAREDBIN) -.ENDIF +.ENDIF #aux_alllangiso*:=$(foreach,i,$(alllangiso) $(foreach,j,$(aux_langdirs) $(eq,$i,$j $i $(NULL)))) aux_alllangiso*:=$(alllangiso) @@ -77,4 +77,3 @@ $(HELPLINKALLTARGETS) : $(foreach,i,$(LINKLINKFILES) $(XHPLINKSRC)/$$(@:b:s/_/./ -$(RM) $(XHPLINKSRC)/$(@:b)/content/*.* -$(RM) $(XHPLINKSRC)/$(@:b)/caption/*.* .ENDIF - diff --git a/solenv/inc/extension_post.mk b/solenv/inc/extension_post.mk index 7b8c99b37fe8..5204af7dd29a 100644 --- a/solenv/inc/extension_post.mk +++ b/solenv/inc/extension_post.mk @@ -85,7 +85,7 @@ $(EXTENSIONDIR) : $(PACK_RUNTIME_FLAG) : $(EXTENSIONDIR) @@-$(MKDIRHIER) $(@:d) -.IF "$(OS)$(CPU)"=="WNTI" +.IF "$(OS)$(CPU)"=="WNTI" && "$(WITH_EXTENSION_INTEGRATION)"!="YES" .IF "$(COM)"=="GCC" $(GNUCOPY) $(SOLARBINDIR)/mingwm10.dll $(EXTENSIONDIR) .IF "$(MINGW_GCCDLL)"!="" @@ -131,7 +131,7 @@ $(PACK_RUNTIME_FLAG) : $(EXTENSIONDIR) .ENDIF # "$(CCNUMVER)" <= "001399999999" .ENDIF # "$(PACKMS)"!="" .ENDIF #"$(COM)"=="GCC" -.ENDIF # "$(OS)$(CPU)"=="WNTI" +.ENDIF # "$(OS)$(CPU)"=="WNTI" && "$(WITH_EXTENSION_INTEGRATION)"!="YES" @$(TOUCH) $@ .ENDIF # "$(PACK_RUNTIME)"!="" @@ -146,25 +146,22 @@ $(DESCRIPTION) $(PHONYDESC) : $(DESCRIPTION_SRC) @@-$(MKDIRHIER) $(@:d) @echo LAST_WITH_LANG=$(WITH_LANG) > $(MISC)/$(TARGET)_lang_track.mk - $(COMMAND_ECHO)$(PERL) $(SOLARENV)/bin/licinserter.pl $(DESCRIPTION_SRC) $(COMPONENT_LIC_TEMPL) $@.1.$(EXTNAME) + $(COMMAND_ECHO)$(PERL) $(SOLARENV)/bin/transform_description.pl $(DESCRIPTION_SRC) $@.1.$(EXTNAME) - $(COMMAND_ECHO)$(PERL) $(SOLARENV)/bin/transform_description.pl $@.1.$(EXTNAME) $@.2.$(EXTNAME) + $(COMMAND_ECHO)$(TYPE) $@.1.$(EXTNAME) | sed s/UPDATED_IDENTIFIER/$(IMPLEMENTATION_IDENTIFIER)/ > $@.2.$(EXTNAME) @@-$(RM) $@.1.$(EXTNAME) - $(COMMAND_ECHO)$(TYPE) $@.2.$(EXTNAME) | sed s/UPDATED_IDENTIFIER/$(IMPLEMENTATION_IDENTIFIER)/ > $@.3.$(EXTNAME) + $(COMMAND_ECHO)$(TYPE) $@.2.$(EXTNAME) | sed s/UPDATED_SUPPORTED_PLATFORM/$(PLATFORMID)/ > $@ @@-$(RM) $@.2.$(EXTNAME) - $(COMMAND_ECHO)$(TYPE) $@.3.$(EXTNAME) | sed s/UPDATED_SUPPORTED_PLATFORM/$(PLATFORMID)/ > $@ - @@-$(RM) $@.3.$(EXTNAME) - .ENDIF # "$(DESCRIPTION)"!="" # default OOo license text!!! # may not fit... .IF "$(CUSTOM_LICENSE)"=="" .IF "$(GUI)" == "WNT" -PACKLICDEPS=$(SOLARBINDIR)/osl/license$$(@:b:s/_/./:e:s/./_/)$$(@:e) +PACKLICDEPS=$(SOLARBINDIR)/osl/license.txt .ELSE # "$(GUI)" == "WNT" -PACKLICDEPS=$(SOLARBINDIR)/osl/LICENSE$$(@:b:s/_/./:e:s/./_/)$$(@:e) +PACKLICDEPS=$(SOLARBINDIR)/osl/LICENSE .ENDIF # "$(GUI)" == "WNT" .ELSE # "$(CUSTOM_LICENSE)" == "" PACKLICDEPS=$(CUSTOM_LICENSE) diff --git a/solenv/inc/extension_pre.mk b/solenv/inc/extension_pre.mk index abef2e7f8b73..7fd8f5d86c85 100644 --- a/solenv/inc/extension_pre.mk +++ b/solenv/inc/extension_pre.mk @@ -39,11 +39,11 @@ COMPONENT_MANIFEST*:=$(EXTENSIONDIR)/META-INF/manifest.xml MANIFEST_SRC*:=manifest.xml .IF "$(GUI)" == "WIN" || "$(GUI)" == "WNT" -PACKLICS*:=$(foreach,i,$(alllangiso) $(EXTENSIONDIR)/registration/license_$i.txt) -COMPONENT_LIC_TEMPL*:=registration/license_xxx.txt +PACKLICS*:=$(EXTENSIONDIR)/registration/license.txt +COMPONENT_LIC_TEMPL*:=registration/license.txt .ELSE -PACKLICS*:=$(foreach,i,$(alllangiso) $(EXTENSIONDIR)/registration/LICENSE_$i) -COMPONENT_LIC_TEMPL*:=registration/LICENSE_xxx +PACKLICS*:=$(EXTENSIONDIR)/registration/LICENSE +COMPONENT_LIC_TEMPL*:=registration/LICENSE .ENDIF #TODO: check ZIP9TARGET for previous use! diff --git a/solenv/inc/installationtest.mk b/solenv/inc/installationtest.mk index 8553a739d5d1..bc4baa85bb12 100644 --- a/solenv/inc/installationtest.mk +++ b/solenv/inc/installationtest.mk @@ -51,28 +51,28 @@ my_file = file:// .IF "$(UPDATER)" == "YES" && "$(SHIPDRIVE)" != "" && \ "$(CWS_WORK_STAMP)" == "" && "$(SOLARENV:s/$(SOL_TMP)//" == "$(SOLARENV)" my_instsets = $(shell ls -dt \ - $(SHIPDRIVE)/$(INPATH)/OpenOffice/archive/$(WORK_STAMP)_$(LAST_MINOR)_native_packed-*_$(defaultlangiso).$(BUILD)) + $(SHIPDRIVE)/$(INPATH)/LibreOffice/archive/$(WORK_STAMP)_$(LAST_MINOR)_native_packed-*_$(defaultlangiso).$(BUILD)) installationtest_instset = $(my_instsets:1) .ELSE installationtest_instset = \ - $(SOLARSRC)/instsetoo_native/$(INPATH)/OpenOffice/archive/install/$(defaultlangiso) + $(SOLARSRC)/instsetoo_native/$(INPATH)/LibreOffice/archive/install/$(defaultlangiso) .END .IF "$(OS)" == "WNT" installationtest_instpath = `cat $(MISC)/$(TARGET)/installation.flag` .ELSE -installationtest_instpath = $(SOLARVERSION)/$(INPATH)/installation$(UPDMINOREXT) +installationtest_instpath = $(SOLARVERSION)/$(INPATH)/installation .END .IF "$(OS)" == "MACOSX" my_sofficepath = \ - $(installationtest_instpath)/opt/OpenOffice.org.app/Contents/MacOS/soffice + $(installationtest_instpath)/opt/LibreOffice.app/Contents/MacOS/soffice .ELIF "$(OS)" == "WNT" my_sofficepath = \ - $(installationtest_instpath)'/opt/OpenOffice.org 3/program/soffice.exe' + $(installationtest_instpath)'/opt/LibreOffice 3/program/soffice.exe' .ELSE my_sofficepath = \ - $(installationtest_instpath)/opt/openoffice.org3/program/soffice + $(installationtest_instpath)/opt/program/soffice .END .IF "$(OOO_TEST_SOFFICE)" == "" @@ -97,10 +97,10 @@ my_javaenv = \ .IF "$(OS)" == "WNT" && "$(OOO_TEST_SOFFICE)" == "" OOO_EXTRACT_TO:=$(shell cygpath -m `mktemp -dt ooosmoke.XXXXXX`) $(MISC)/$(TARGET)/installation.flag : $(shell \ - ls $(installationtest_instset)/OOo_*_install-arc_$(defaultlangiso).zip) + ls $(installationtest_instset)/LibO_*_install-arc_$(defaultlangiso).zip) $(COMMAND_ECHO)$(MKDIRHIER) $(@:d) - $(COMMAND_ECHO)unzip -q $(installationtest_instset)/OOo_*_install-arc_$(defaultlangiso).zip -d "$(OOO_EXTRACT_TO)" - $(COMMAND_ECHO)mv "$(OOO_EXTRACT_TO)"/OOo_*_install-arc_$(defaultlangiso) "$(OOO_EXTRACT_TO)"/opt + $(COMMAND_ECHO)unzip -q $(installationtest_instset)/LibO_*_install-arc_$(defaultlangiso).zip -d "$(OOO_EXTRACT_TO)" + $(COMMAND_ECHO)mv "$(OOO_EXTRACT_TO)"/LibO_*_install-arc_$(defaultlangiso) "$(OOO_EXTRACT_TO)"/opt $(COMMAND_ECHO)echo "$(OOO_EXTRACT_TO)" > $@ .END diff --git a/solenv/inc/langlist.mk b/solenv/inc/langlist.mk index bbf940e77406..0e58717c6a2e 100644 --- a/solenv/inc/langlist.mk +++ b/solenv/inc/langlist.mk @@ -25,21 +25,18 @@ # #************************************************************************* +# Complete list of all supported localizations (ISO codes) completelangiso=af \ ar \ as \ -as-IN \ ast \ -be-BY \ +be \ bo \ bg \ br \ brx \ bn \ -bn-BD \ -bn-IN \ bs \ -by \ ca \ ca-XV \ cs \ @@ -59,26 +56,18 @@ eu \ fa \ fi \ fr \ -fur \ ga \ -gd \ gl \ gu \ -gu-IN \ he \ hi \ -hi-IN \ hr \ -ht \ hu \ +id \ is \ it \ ja \ -jbo \ -kid \ -ky \ ka \ -kab \ kk \ km \ kn \ @@ -93,11 +82,8 @@ mai \ mk \ mn \ mni \ -ms \ ml \ -ml-IN \ mr \ -mr-IN \ my \ ne \ nb \ @@ -105,48 +91,31 @@ nl \ nn \ nr \ nso \ -ny \ 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 \ sd \ sq \ sk \ sl \ sh \ -so \ sr \ ss \ st \ sv \ -sw \ sw-TZ \ te \ -te-IN \ -ti \ -ti-ER \ ta \ -ta-IN \ -tlh \ th \ tn \ tr \ @@ -154,8 +123,6 @@ tk \ ts \ tg \ ug \ -ur \ -ur-IN \ uk \ uz \ ve \ diff --git a/solenv/inc/layout.mk b/solenv/inc/layout.mk index 0fb4c39454c9..7b808f0b35aa 100644 --- a/solenv/inc/layout.mk +++ b/solenv/inc/layout.mk @@ -1,4 +1,4 @@ -TRALAY=$(AUGMENT_LIBRARY_PATH) tralay +TRALAY=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/tralay XML_DEST=$(DLLDEST) XML_LANGS=$(alllangiso) diff --git a/solenv/inc/libs.mk b/solenv/inc/libs.mk index 6533a619591f..0d1a7b00e334 100644 --- a/solenv/inc/libs.mk +++ b/solenv/inc/libs.mk @@ -26,7 +26,16 @@ #************************************************************************* LIBSMKREV!:="$$Revision: 1.134.2.3 $$" -.IF ("$(GUI)"=="UNX" || "$(COM)"=="GCC") && "$(GUI)"!="OS2" +.INCLUDE .IGNORE : icuversion.mk +.INCLUDE .IGNORE : i18npool/version.mk +.INCLUDE .IGNORE : comphelper/version.mk +.INCLUDE .IGNORE : ucbhelper/version.mk +.INCLUDE .IGNORE : connectivity/version.mk + +.IF ("$(GUI)"=="UNX" || "$(COM)"=="GCC") + +# No ODMA on UNX +ODMA_LIB_LIB= # #externe libs in plattform.mk @@ -37,28 +46,22 @@ AWTLIB*=$(JAVA_HOME)/lib/jawt.lib AWTLIB*=-ljawt .ENDIF # "$(GUI)$(COM)"=="WNTGCC" AVMEDIALIB=-lavmedia$(DLLPOSTFIX) -.IF "$(GUI)$(COM)"=="WNTGCC" -.INCLUDE .IGNORE : icuversion.mk +.IF "$(GUI)$(COM)"=="WNTGCC" && "$(SYSTEM_ICU)"!="YES" ICUINLIB=-licuin$(ICU_MAJOR)$(ICU_MINOR) ICULELIB=-licule$(ICU_MAJOR)$(ICU_MINOR) ICUUCLIB=-licuuc$(ICU_MAJOR)$(ICU_MINOR) ICUDATALIB=-licudt$(ICU_MAJOR)$(ICU_MINOR) -.ELSE # "$(GUI)$(COM)"=="WNTGCC" +.ELSE # "$(GUI)$(COM)"=="WNTGCC" && "$(SYSTEM_ICU)"!="YES" ICUINLIB=-licui18n ICULELIB=-licule ICUUCLIB=-licuuc ICUDATALIB=-licudata -.ENDIF # "$(GUI)$(COM)"=="WNTGCC" +.ENDIF # "$(GUI)$(COM)"=="WNTGCC" && "$(SYSTEM_ICU)"!="YES" I18NUTILLIB=-li18nutil$(COMID) -.INCLUDE .IGNORE : i18npool/version.mk I18NISOLANGLIB=-li18nisolang$(ISOLANG_MAJOR)$(COMID) I18NPAPERLIB=-li18npaper$(DLLPOSTFIX) I18NREGEXPLIB=-li18nregexp$(DLLPOSTFIX) -.IF "$(GUI)$(COM)"=="WNTGCC" -SALHELPERLIB=-lsalhelper$(UDK_MAJOR)$(COMID) -.ELSE # "$(GUI)$(COM)"=="WNTGCC" SALHELPERLIB=-luno_salhelper$(COMID) -.ENDIF # "$(GUI)$(COM)"=="WNTGCC" XMLSCRIPTLIB =-lxcr$(DLLPOSTFIX) COMPHELPERLIB=-lcomphelp$(COMID) CONNECTIVITYLIB=-lconnectivity @@ -73,7 +76,6 @@ CPPUHELPERLIB=-lcppuhelper$(UDK_MAJOR)$(COMID) CPPULIB=-luno_cppu CPPUHELPERLIB=-luno_cppuhelper$(COMID) .ENDIF # "$(GUI)$(COM)"=="WNTGCC" -.INCLUDE .IGNORE : ucbhelper/version.mk UCBHELPERLIB=-lucbhelper4$(COMID) .IF "$(SYSTEM_OPENSSL)" == "YES" OPENSSLLIB=$(OPENSSL_LIBS) @@ -91,18 +93,15 @@ REGLIB=-lreg$(UDK_MAJOR) .ELSE # "$(GUI)$(COM)"=="WNTGCC" REGLIB=-lreg .ENDIF # "$(GUI)$(COM)"=="WNTGCC" -.INCLUDE .IGNORE : vos/version.mk -VOSLIB=-lvos$(VOS_MAJOR)$(COMID) XMLOFFLIB=-lxo$(DLLPOSTFIX) XMLOFFLLIB=-lxol .IF "$(GUI)$(COM)"=="WNTGCC" STORELIB=-lstore$(UDK_MAJOR) -SALLIB=-lsal$(UDK_MAJOR) +SALLIB=-luno_sal$(UDK_MAJOR) .ELSE # "$(GUI)$(COM)"=="WNTGCC" STORELIB=-lstore SALLIB=-luno_sal .ENDIF # "$(GUI)$(COM)"=="WNTGCC" -.INCLUDE .IGNORE : connectivity/version.mk ODBCLIB=-lodbc$(DLLPOSTFIX) ODBCBASELIB=-lodbcbase$(DLLPOSTFIX) DBFILELIB=-lfile$(DLLPOSTFIX) @@ -113,7 +112,6 @@ RMCXTLIB=-lrmcxt .ENDIF # "$(GUI)$(COM)"=="WNTGCC" BTSTRPLIB=-lbtstrp BTSTRPDTLIB=-lbootstrpdt$(DLLPOSTFIX) -SOLDEPLIB=-lsoldep$(DLLPOSTFIX) TRANSEXLIB=-ltransex OTXLIB=-lotx_ind OSXLIB=-losx @@ -201,18 +199,7 @@ ZLIB3RDLIB=-lz ZLIB3RDLIB=-lzlib .ENDIF .IF "$(SYSTEM_JPEG)"=="YES" -.IF "$(SOLAR_JAVA)" != "" && "$(JDK)" != "gcj" && "$(OS)" != "MACOSX" -#i34482# Blackdown/Sun jdk is in the libsearch patch and has a libjpeg :-( -.IF "$(OS)" == "FREEBSD" -JPEG3RDLIB=/usr/local/lib/libjpeg.so -.ELIF "$(CPUNAME)" == "X86_64" || "$(CPUNAME)" == "S390X" || "$(CPUNAME)" == "POWERPC64" -JPEG3RDLIB=/usr/lib64/libjpeg.so -.ELSE -JPEG3RDLIB=/usr/lib/libjpeg.so -.ENDIF -.ELSE JPEG3RDLIB=-ljpeg -.ENDIF .ELSE JPEG3RDLIB=-ljpeglib .ENDIF @@ -226,14 +213,13 @@ NEON3RDLIB=$(SOLARLIBDIR)/libneon.dylib NEON3RDLIB=-lneon .ENDIF .IF "$(SYSTEM_DB)" == "YES" -BERKELEYLIB=-ldb +BERKELEYLIB=-l$(DB_LIB) .ELSE BERKELEYLIB=-ldb-4.7 .ENDIF CURLLIB=-lcurl SFX2LIB=-lsfx$(DLLPOSTFIX) SFXLIB=-lsfx$(DLLPOSTFIX) -EGGTRAYLIB=-leggtray$(DLLPOSTFIX) SFXDEBUGLIB= FWELIB=-lfwe$(DLLPOSTFIX) FWILIB=-lfwi$(DLLPOSTFIX) @@ -251,6 +237,7 @@ SCHLIB=-lysch SMLIB=-lysm OFALIB=-lofa$(DLLPOSTFIX) PRXLIB=-llprx2$(DLLPOSTFIX) +PACKAGE2LIB=-lpackage2 PAPILIB=-lpap$(DLLPOSTFIX) SCLIB=-lsclib SDLIB=-lsdlib @@ -319,7 +306,7 @@ BFSVTOOLLIB=-lbf_svt$(DLLPOSTFIX) # Libraries USED_OSL_LIBS = USED_VOS_LIBS = $(OSLLIB) -USED_UNO_LIBS = $(VOSLIB) $(OSLLIB) +USED_UNO_LIBS = $(OSLLIB) USED_TOOLS_LIBS = USED_SOT_LIBS = $(TOOLSLIB) USED_VCL_LIBS = $(SOTLIB) $(TOOLSLIB) $(USED_UNO_LIBS) @@ -354,18 +341,15 @@ UNOPKGAPPLIB=-lunopkgapp TESTLIB=-ltest XMLREADERLIB=-lxmlreader -.ELSE # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") && "$(GUI)"!="OS2" +.ELSE # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") +ODMA_LIB_LIB=odma_lib.lib AWTLIB*=jawt.lib AVMEDIALIB=iavmedia.lib ICUINLIB=icuin.lib ICULELIB=icule.lib ICUUCLIB=icuuc.lib -.IF "$(GUI)"=="OS2" ICUDATALIB=icudt.lib -.ELSE -ICUDATALIB=icudata.lib -.ENDIF I18NUTILLIB=ii18nutil.lib I18NISOLANGLIB=ii18nisolang.lib I18NPAPERLIB=ii18npaper.lib @@ -378,11 +362,7 @@ LDAPBERLIB=ldapber.lib CPPULIB=icppu.lib CPPUHELPERLIB=icppuhelper.lib UCBHELPERLIB=iucbhelper.lib -.IF "$(GUI)"=="OS2" -OPENSSLLIB=ssl.lib crypto.lib -.ELSE OPENSSLLIB=ssleay32.lib libeay32.lib -.ENDIF ODBCLIB=iodbc.lib ODBCBASELIB=iodbcbase.lib DBFILELIB=ifile.lib @@ -390,7 +370,6 @@ TOOLSLIB=itools.lib TOOLSLIBST=atools.lib BPICONVLIB=bpiconv.lib SALLIB=isal.lib -VOSLIB=ivos.lib UNOTOOLSLIB=iutl.lib RMCXTLIB=irmcxt.lib XMLOFFLIB=ixo.lib @@ -411,7 +390,6 @@ FWELIB=ifwe.lib FWILIB=ifwi.lib BTSTRPLIB=btstrp.lib BTSTRPDTLIB=bootstrpdt.lib -SOLDEPLIB=soldep.lib TRANSEXLIB=transex.lib ICOLIB=icom.lib SVTOOLLIB=svtool.lib @@ -437,7 +415,6 @@ DOCMGRLIB=docmgr.lib BASICLIB=basic.lib VBAHELPERLIB=vbahelper.lib TKTLIB=tkt.lib -SJLIB=sj.lib SVXCORELIB=isvxcore.lib MSFILTERLIB=imsfilter.lib SVXLIB=isvx.lib @@ -468,6 +445,7 @@ SDLIB=sdlib.lib SDLLIB=sdl.lib SWLIB=swlib.lib PRXLIB=ilprx2.lib +PACKAGE2LIB=ipackage.lib ISWLIB=_sw.lib ISCLIB=sci.lib ISDLIB=sdi.lib @@ -490,11 +468,7 @@ HELPLINKERLIB=ihelplinker.lib JVMACCESSLIB = ijvmaccess.lib CPPUNITLIB = icppunit_dll.lib XSLTLIB = libxslt.lib $(LIBXML2LIB) -.IF "$(GUI)"=="OS2" -REDLANDLIB = raptor.a rasqal.a rdf.a $(LIBXML2LIB) $(OPENSSLLIB) pthread.lib -.ELSE REDLANDLIB = librdf.lib -.ENDIF JVMFWKLIB = ijvmfwk.lib @@ -535,6 +509,7 @@ LPSOLVELIB=lpsolve55.lib SOFFICELIB=isofficeapp.lib UNOPKGAPPLIB=iunopkgapp.lib TESTLIB=itest.lib +BOOSTTHREADLIB=boostthread.lib XMLREADERLIB=ixmlreader.lib -.ENDIF # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") && "$(GUI)"!="OS2" +.ENDIF # ("$(GUI)"=="UNX" || "$(COM)"=="GCC") diff --git a/solenv/inc/minor.mk b/solenv/inc/minor.mk index 4b42cd7b34c9..38646f16b5b3 100644 --- a/solenv/inc/minor.mk +++ b/solenv/inc/minor.mk @@ -1,5 +1,5 @@ -RSCVERSION=300 -RSCREVISION=300m106(Build:9582) -BUILD=9582 -LAST_MINOR=m106 -SOURCEVERSION=DEV300 +RSCVERSION=350 +RSCREVISION=350m1(Build:1) +BUILD=1 +LAST_MINOR=m1 +SOURCEVERSION=OOO350 diff --git a/solenv/inc/os2.mk b/solenv/inc/os2.mk deleted file mode 100644 index 981479f184c4..000000000000 --- a/solenv/inc/os2.mk +++ /dev/null @@ -1,333 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -# --- OS2-Environment ---------------------------------------------- - -.IF "$(GUI)" == "OS2" - -# YD defined in os2env.cmd -#.IF "$(NOSOLAR_JAVA)"=="" -#SOLAR_JAVA=TRUE -#.ENDIF - -.IF "$(SOLAR_JAVA)"!="" -JAVADEF=-DSOLAR_JAVA -.ENDIF -JAVAFLAGSDEBUG=-g - -# --- Borland --- -.IF "$(COM)" == "BLC" - -JAVADEF=-DSOLAR_JAVA - -ASM=tasm -AFLAGS= - -CXX=bcc -CC=bcc -CFLAGS=-c -3 -a1 -X -d -wbbf -weas -wucp -w-hid -w-par -I. $(MINUS_I)$(INCLUDE) -CFLAGSCXX=-Pcxx -RT- -x- -V -CFLAGSOBJGUIST= -CFLAGSOBJCUIST= -CFLAGSOBJGUIMT=-sm -CFLAGSOBJCUIMT=-sm -CFLAGSSLOGUIMT=-sm -sd -CFLAGSSLOCUIMT=-sm -sd -CFLAGSPROF= -CFLAGSDEBUG=-v -CFLAGSDBGUTIL= -CFLAGSOPT=-Os -Ob -k- -CFLAGSNOOPT=-Od -CFLAGSOUTOBJ=-o - -LINK=tlink -LINKFLAGS=/m /L$(LIB) -#LINKFLAGSAPPGUI=/Toe /B:0x10000 /aa -#Base wg. lxopt raus -LINKFLAGSAPPGUI=/Toe /aa -LINKFLAGSSHLGUI=/Tod -LINKFLAGSAPPCUI=/Toe /B:0x10000 /ap -LINKFLAGSSHLCUI=/Tod -LINKFLAGSTACK=/S: -LINKFLAGSPROF= -LINKFLAGSDEBUG=/v -.IF "$(SOLAR_JAVA)"=="" -LINKFLAGSOPT=/Oc -.ENDIF - -STDOBJVCL=$(L)/salmain.obj -STDOBJGUI=c02.obj -STDSLOGUI=c02d.obj -STDOBJCUI=c02.obj -STDSLOCUI=c02d.obj -STDLIBGUIST=c2.lib os2.lib -STDLIBCUIST=c2.lib os2.lib -STDLIBGUIMT=c2mt.lib os2.lib -STDLIBCUIMT=c2mt.lib os2.lib -STDSHLGUIMT=c2mt.lib os2.lib -STDSHLCUIMT=c2mt.lib os2.lib - -LIBMGR=tlib -LIBFLAGS=/C /P128 - -IMPLIB=implib -IMPLIBFLAGS=/c - -MAPSYM= -MAPSYMFLAGS= - -RC=rc -RCFLAGS=-r $(RCFILES) $@ -RCLINK=rc -RCLINKFLAGS= -RCSETVERSION= - -DLLPOSTFIX=bo - -.ENDIF - -# --- IBM --- -.IF "$(COM)" == "ICC" - -ASM=tasm -AFLAGS=/ml /oi - -CXX=icc -CC=icc -.IF "$(COMEX)"=="3" -CFLAGS=/C+ /Q+ /Gf+ /Sp1 /G4 /Se /Gs+ /Gt+ /Gd+ /J- /W2 /D__EXTENDED__ /Si+ /Xi+ $(MINUS_I)$(INCLUDE) /Wvft- -.ELSE -.IF "$(COMEX)"=="I" -CFLAGS=/C+ /Tl10 /Q+ /Gf+ /Sp4 /G4 /Sc /Gs- /D__EXTENDED__ /Si+ /Su4 -.ELSE -CFLAGS=/C+ /Tl10 /Q+ /Gf+ /Sp1 /G4 /Sc /Gs+ /D__EXTENDED__ /Si+ -.ENDIF -.ENDIF - -CFLAGSCXX=/Tdp - -CFLAGSEXCEPTIONS=-Gx- -CFLAGS_NO_EXCEPTIONS=-Gx+ - -CFLAGSOBJGUIST=/Ge+ -CFLAGSOBJCUIST=/Ge+ -.IF "$(COMEX)"=="I" -CFLAGSOBJGUIMT=/Ge+ /Gm+ -CFLAGSOBJCUIMT=/Ge+ /Gm+ -CFLAGSSLOGUIMT=/Ge- /Gm+ -CFLAGSSLOCUIMT=/Ge- /Gm+ -.ELSE -CFLAGSOBJGUIMT=/Ge+ /Gm+ -CFLAGSOBJCUIMT=/Ge+ /Gm+ -CFLAGSSLOGUIMT=/Ge- /Gm+ -CFLAGSSLOCUIMT=/Ge- /Gm+ -.ENDIF -CFLAGSPROF=/Gh+ -CFLAGSDEBUG=/Ti+ -CFLAGSDBGUTIL= -CFLAGSOPT=/O+ /Oi+ /Oc+ -CFLAGSNOOPT=/O- -CFLAGSOUTOBJ=/Fo - -CDEFS+=-D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE - -LINK=ilink -#LINKFLAGS=/PACKCODE:8192 /ALIGN:16 /NOD /NOE /NOI /MAP /NOFREE - -#bei too many segments ist /SEGMENTS:nnnn hilfreich. 3072 ist max! -.IF "$(CPPRTST)"!="" -LINKFLAGS=/NOFREE /NOD /NOE /NOI /MAP /OPTFUNC /PACKD:65536 /EXEPACK:2 -.ELSE -LINKFLAGS=/NOFREE /NOD /NOE /NOI /MAP /OPTFUNC /PACKD:65536 -.ENDIF -LINKFLAGSAPPGUI=/PM:PM /NOBASE -LINKFLAGSSHLGUI= -LINKFLAGSAPPCUI=/PM:VIO /NOBASE -LINKFLAGSSHLCUI= -LINKFLAGSTACK=/STACK: -LINKFLAGSPROF= -LINKFLAGSDEBUG=/COD -#LINKFLAGSOPT=/EXEPACK:2 /OPTFUNC -LINKFLAGSOPT= -#.IF "$(product)"!="full" && "$(product)"!="demo" && "$(product)"!="compact" -#LINKFLAGS=$(LINKFLAGS) /COD -#.ELSE -#LINKFLAGS=$(LINKFLAGS) -#.ENDIF - -.IF "$(product)"=="full" || "$(product)"=="demo" || "$(product)"=="compact" -# LINKFLAGS=$(LINKFLAGS) -.ELSE -LINKFLAGS+=/COD -.ENDIF - -STDOBJVCL=$(L)/salmain.obj -STDOBJGUI= -STDSLOGUI= -STDOBJCUI= -STDSLOCUI= -.IF "$(COMEX)"=="3" -.IF "$(CPPRTST)"!="" -STDLIBGUIST=cppom30o.lib cpprtst.lib os2386.lib -STDLIBCUIST=cppom30o.lib cpprtst.lib os2386.lib -STDLIBGUIMT=cppom30o.lib cpprtst.lib os2386.lib -STDLIBCUIMT=cppom30o.lib cpprtst.lib os2386.lib -STDSHLGUIMT=cppom30o.lib cpprtst.lib os2386.lib -STDSHLCUIMT=cppom30o.lib cpprtst.lib os2386.lib -.ELSE -STDLIBGUIST=cppom30o.lib cppom30i.lib os2386.lib -STDLIBCUIST=cppom30o.lib cppom30i.lib os2386.lib -STDLIBGUIMT=cppom30o.lib cppom30i.lib os2386.lib -STDLIBCUIMT=cppom30o.lib cppom30i.lib os2386.lib -STDSHLGUIMT=cppom30o.lib cppom30i.lib os2386.lib -STDSHLCUIMT=cppom30o.lib cppom30i.lib os2386.lib -.ENDIF -.ELSE -STDLIBGUIST=dde4sbs.lib os2386.lib -STDLIBCUIST=dde4sbs.lib os2386.lib -STDLIBGUIMT=dde4mbs.lib os2386.lib -STDLIBCUIMT=dde4mbs.lib os2386.lib -STDSHLGUIMT=dde4mbs.lib os2386.lib -STDSHLCUIMT=dde4mbs.lib os2386.lib -.ENDIF - -.IF "$(COMEX)"=="3" -LIBMGR=ilib -.ELSE -LIBMGR=lib -.ENDIF -LIBFLAGS=/NOI - -IMPLIB=implib -IMPLIBFLAGS=/noi - -MAPSYM= -MAPSYMFLAGS= - -RC=rc -RCFLAGS=-r $(RCFILES) $@ -RCLINK=rc -RCLINKFLAGS= -RCSETVERSION= - -DLLPOSTFIX=co - -.ENDIF - -# --- GNU --- -.IF "$(COM)" == "GCC" - -.INCLUDE : os2gcci.mk - -.ENDIF - -# --- Watcom --- -.IF "$(COM)" == "WTC" - -ASM=wasm -AFLAGS=/ml /4pr - -CC=wcl386 -CXX=wcl386 -.IF "$(e2p)" != "" -CFLAGS=-c -W3 -Zp4 -Zld $(MINUS_I)$(INCLUDE) -bt=os2 -zq -zm -ep -ee -.ELSE -CFLAGS=-c -Zp4 -W3 -Zl -Zld $(MINUS_I)$(INCLUDE) -bt=os2 -zq -s -.ENDIF -CFLAGSCXX=-cc++ -xst -CFLAGSOBJGUIST= #-Alfd -GA -GEfs -CFLAGSOBJCUIST= -CFLAGSOBJGUIMT=-bm #-Alfw -GA -GEd -CFLAGSOBJCUIMT=-bm -CFLAGSSLOGUIMT=-bm -bd #-Alfw -GD -GEfd -CFLAGSSLOCUIMT=-bm -bd -CFLAGSPROF= -CFLAGSDEBUG=/d2 -CFLAGSDBGUTIL= -.IF "$(e2p)" != "" -CFLAGSOPT=-otexan -3s -CFLAGSNOOPT=-od -3s -.ELSE -CFLAGSOPT=-otexan -4s -CFLAGSNOOPT=-od -4s -.ENDIF -CFLAGSOUTOBJ=-Fo - -LINK=wlink -LINKFLAGS=op symf op caseexact op statics op MANY -LINKFLAGSAPPGUI=sys os2v2 pm -LINKFLAGSSHLGUI=sys os2v2 dll INITINSTANCE TERMINSTANCE -LINKFLAGSAPPCUI=sys os2v2 -LINKFLAGSSHLCUI=sys os2v2 dll -LINKFLAGSTACK=op stack= -LINKFLAGSPROF= -LINKFLAGSDEBUG=debug all op undefsok -LINKFLAGSOPT= - -STDOBJVCL=$(L)/salmain.obj -STDOBJGUI=libr clib3s.lib libr plib3s.lib libr math387s.lib -STDSLOGUI=libr clib3s.lib libr os2386.lib libr plib3s.lib libr math387s.lib -STDOBJCUI=libr clib3s.lib libr plib3s.lib libr math387s.lib -STDSLOCUI=libr clib3s.lib libr plib3s.lib libr math387s.lib -STDLIBGUIST=libr os2386.lib libr clib3s.lib libr plib3s.lib -STDLIBCUIST=libr os2386.lib libr clib3s.lib libr plib3s.lib -STDLIBGUIMT=libr os2386.lib libr clib3s.lib libr plib3s.lib -STDLIBCUIMT=libr os2386.lib libr clib3s.lib libr plib3s.lib -STDSHLGUIMT=libr os2386.lib libr clib3s.lib libr plibmt3s.lib libr math387s.lib libr plib3s.lib libr noemu387.lib -STDSHLCUIMT=libr os2386.lib libr clib3s.lib libr plibmt3s.lib libr matg387s.lib libr plib3s.lib - -LIBMGR=wlib -LIBFLAGS=/p=128 /c /m - -IMPLIB=echo -IMPLIBFLAGS= - -MAPSYM=mapsym -MAPSYMFLAGS= - -RC=rc -RCFLAGS=-r $(RCFILES) $@ -RCLINK=rc -RCLINKFLAGS= -RCSETVERSION= - -DLLPOSTFIX=wo - -.ENDIF - -# --- OS2 Allgemein --- -HC=toipf -HCFLAGS= -PATH_SEPERATOR*=; -DLLPRE= -DLLPOST=.dll -EXECPOST=.exe -SCPPOST=.ins -DLLDEST=$(BIN) -SOLARSHAREDBIN=$(SOLARBINDIR) - -.ENDIF diff --git a/solenv/inc/os2gcci.mk b/solenv/inc/os2gcci.mk deleted file mode 100644 index 46dcba24aaa1..000000000000 --- a/solenv/inc/os2gcci.mk +++ /dev/null @@ -1,288 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -# --- OS2-Environment ---------------------------------------------- - -#change output dir name using the object binary format. -#.IF "$(aout)"=="" -#OUTFMT=omf -#.ELSE -#OUTFMT=aout -#.ENDIF -#OUTPATH+=OUTFMT -#INPATH+=OUTFMT -#GVERDIR+=OUTFMT - -# mk file for os2gcci -ASM=as -AFLAGS= - -#//YD SOLAR_JAVA=TRUE -JAVAFLAGSDEBUG=-g - -# filter for supressing verbose messages from linker -#not needed at the moment -#LINKOUTPUT_FILTER=" |& $(SOLARENV)/bin/msg_filter" - -.IF "$(ttt)"!="" -CDEFS+=-E -.ENDIF - -# _PTHREADS is needed for the stl -CDEFS+=-DX86 -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=400 - -# this is a platform with JAVA support -.IF "$(SOLAR_JAVA)"!="" -JAVADEF=-DSOLAR_JAVA -.IF "$(debug)"=="" -JAVA_RUNTIME=javai.lib -.ELSE -JAVA_RUNTIME=javai_g.lib -.ENDIF -.ENDIF - -# architecture dependent flags for the C and C++ compiler that can be changed by -# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build -ARCH_FLAGS*= - -# name of C++ Compiler -CXX*=g++ -# name of C Compiler -CC*=gcc -# flags for C and C++ Compiler -CFLAGS+=-c -# flags for the C++ Compiler -CFLAGSCC= $(ARCH_FLAGS) - -.IF "$(aout)"=="" -CFLAGS+=-Zomf -.ENDIF - -# Flags for enabling exception handling -CFLAGSEXCEPTIONS=-fexceptions -# Flags for disabling exception handling -CFLAGS_NO_EXCEPTIONS=-fno-exceptions - -CFLAGSCXX= -frtti $(ARCH_FLAGS) -CFLAGSCXX+= -Wno-ctor-dtor-privacy -fmessage-length=0 -PICSWITCH:= - -# Compiler flags for compiling static object in single threaded environment with graphical user interface -CFLAGSOBJGUIST=-Zcrtdll -# Compiler flags for compiling static object in single threaded environment with character user interface -CFLAGSOBJCUIST=-Zcrtdll -# Compiler flags for compiling static object in multi threaded environment with graphical user interface -CFLAGSOBJGUIMT=-Zcrtdll -# Compiler flags for compiling static object in multi threaded environment with character user interface -CFLAGSOBJCUIMT=-Zcrtdll -# Compiler flags for compiling shared object in multi threaded environment with graphical user interface -CFLAGSSLOGUIMT=$(PICSWITCH) -Zdll -Zcrtdll -# Compiler flags for compiling shared object in multi threaded environment with character user interface -CFLAGSSLOCUIMT=$(PICSWITCH) -Zdll -Zcrtdll -# Compiler flags for profiling -CFLAGSPROF= -# Compiler flags for debugging -CFLAGSDEBUG=-g -CFLAGSDBGUTIL= -# Compiler flags for enabling optimazations -CFLAGSOPT=-s -O1 -march=pentium -mtune=pentium4 -# Compiler flags for disabling optimazations -CFLAGSNOOPT=-O0 -# Compiler flags for discibing the output path -CFLAGSOUTOBJ=-o - -# Warnings switched off for CXX: -# - doubunder: we have many identifiers containing double underscores, some of -# them in the stable UDK API we cannot change -# - inllargeuse: "function is too large and will not be expanded inline" is -# merely a hint -# - inllargeint: "function is too large to generate inline, consider writing -# it yourself" is merely a hint -# - notemsource: "could not find source for function" appears to be spurious -# - reftotemp: warns about calling non-const functions on temporary objects, -# something legally done by boost::scoped_array<T>::reset, for example -# (this_type(p).swap(*this)) -# - truncwarn: "conversion of 64 bit type value to smaller type causes -# truncation" at least with CC 5.8 is reported only at the end of a -# compilation unit that uses std::hash_map<sal_Int64, sal_Int64> (see -# sfx2/source/toolbox/imgmgr.cxx:1.27) and thus unfortunately needs to be -# disabled globally -CFLAGSWARNCC= -CFLAGSWARNCXX=+w2 -erroff=doubunder,inllargeuse,inllargeint,notemsource,reftotemp,truncwarn -CFLAGSWARNCXX= -CFLAGSWALLCC=$(CFLAGSWARNCC) -CFLAGSWALLCXX=$(CFLAGSWARNCXX) -CFLAGSWERRCC=-errwarn=%all -CFLAGSWERRCXX=-xwe - -# Once all modules on this platform compile without warnings, set -# COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see -# settings.mk): -MODULES_WITH_WARNINGS := \ - b_server \ - basctl \ - basebmp \ - canvas \ - chart2 \ - cppcanvas \ - desktop \ - devtools \ - dxcanvas \ - extensions \ - filter \ - glcanvas \ - lingu \ - r_tools \ - sc \ - sd \ - slideshow \ - starmath \ - svx \ - sw \ - writerperfect \ - xmlsecurity - - -# switches for dynamic and static linking -STATIC = -DYNAMIC = - -# this is needed to allow stl headers to include os2.h instead of svpm.h -# in earlier stages of project build. Once svpm.h is in place, we can -# compile without this flag. -.IF "$(STL_OS2_BUILDING)" != "" -CFLAGS+=-DSTL_OS2_BUILDING -CFLAGSCXX+=-DSTL_OS2_BUILDING -.ENDIF - -# name of linker -LINK*=gcc -# default linker flags -LINKFLAGS= -Zbin-files -Zmap -#27/01/06 bin-files confuses transex/rsc work, removed. -LINKFLAGS= -Zno-fork -Zhigh-mem -Zmap -.IF "$(OS2_ARGS_WILD)" != "" -LINKFLAGS+=-Zargs-wild -Zargs-resp -.ENDIF - -.IF "$(aout)"=="" -#LINKFLAGS+= -Zlinker /NOI -Zlinker /PACKD:65536 -Zlinker /EXEPACK:2 -#LINKFLAGS+= -Zlinker /NOExtdictionary -LINKFLAGS+= -Zomf -#LINKFLAGS+= -Zlinker "DISABLE 1121" -.ENDIF - - -# linker flags for linking applications -.IF "$(aout)"=="" -#LINKFLAGSAPPGUI= -Zlinker /PM:PM -Zstack 0x2000 -#LINKFLAGSAPPCUI= -Zlinker /PM:VIO -.ELSE -LINKFLAGSAPPGUI= -LINKFLAGSAPPCUI= -.ENDIF - -# linker flags for linking shared libraries -LINKFLAGSSHLGUI= -Zdll #-Zsym -LINKFLAGSSHLCUI= -Zdll #-Zsym - -.IF "$(aout)"=="" -LINKFLAGSTACK=-Zlinker /STACK: -LINKFLAGSPROF= -#LINKFLAGSDEBUG=-Zlinker /DEBUG -LINKFLAGSDEBUG=-g -LINKFLAGSOPT=-g -.ELSE -LINKFLAGSTACK=-Zstack -LINKFLAGSPROF= -LINKFLAGSDEBUG=-g -LINKFLAGSOPT=-s -.ENDIF - -.IF "$(NO_BSYMBOLIC)"=="" -.IF "$(PRJNAME)" != "envtest" -LINKFLAGSSHLGUI+= -LINKFLAGSSHLCUI+= -.ENDIF -.ENDIF # "$(NO_BSYMBOLIC)"=="" - -LINKVERSIONMAPFLAG=-Wl,--version-script - -SONAME_SWITCH=-Wl,-h - -# Sequence of libs does matter ! - -#STDLIBCPP=stdc++ supc++ gcc_eh -#STDLIBCPP=stdc++ gcc432 -STDLIBCPP=stdc432 gcc432 - -# default objectfilenames to link -STDOBJVCL=$(L)/salmain.obj -STDOBJGUI= -STDSLOGUI= -STDOBJCUI= -STDSLOCUI= - -# libraries for linking applications -STDLIBCUIST=$(STDLIBCPP) -STDLIBGUIMT=$(STDLIBCPP) -STDLIBCUIMT=$(STDLIBCPP) -STDLIBGUIST=$(STDLIBCPP) -# libraries for linking shared libraries -STDSHLGUIMT=$(STDLIBCPP) -STDSHLCUIMT=$(STDLIBCPP) - -LIBSTLPORT=$(DYNAMIC) stlp45.lib -LIBSTLPORTST=$(STATIC) stlp45.lib $(DYNAMIC) - - -# name of library manager -LIBMGR=ar -LIBFLAGS=crv - -.IF "$(aout)"=="" -LIBMGR=emxomfar -p2048 -.ENDIF - -# tool for generating import libraries -IMPLIB=emximp -IMPLIBFLAGS=-o - -MAPSYM=mapsym -MAPSYMFLAGS= - -RC=wrc -bt=os2 -i$(PATH_EMXPGCC)\include -RCFLAGS=-r $(RCFILES) -fo=$@ -RCLINK=wrc -bt=os2 -RCLINKFLAGS= -RCSETVERSION= - -# platform specific identifier for shared libs -DLLPOSTFIX=go -DLLPRE=lib -DLLPOST=.dll - diff --git a/solenv/inc/postmac.h b/solenv/inc/postmac.h index 8a36af4c4389..f53ee6ae0e03 100644 --- a/solenv/inc/postmac.h +++ b/solenv/inc/postmac.h @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -43,10 +44,11 @@ #undef LSize #undef ModalDialog #undef SetCursor -//#undef ShowWindow #undef StringPtr #undef DirInfo //#undef ULONG #undef Line #undef TimeValue #undef Pattern + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/inc/postset.mk b/solenv/inc/postset.mk index 59d37a95405e..3d4f4158d08f 100644 --- a/solenv/inc/postset.mk +++ b/solenv/inc/postset.mk @@ -29,7 +29,7 @@ # This language will be always included! defaultlangiso=en-US -# Complete list of all supported ISO codes +# Complete list of all supported localizations (ISO codes) .INCLUDE : langlist.mk alllangiso=$(strip $(defaultlangiso) $(subst,$(defaultlangiso), $(uniq $(subst,ALL,$(completelangiso) $(WITH_LANG))))) diff --git a/solenv/inc/postwin.h b/solenv/inc/postwin.h new file mode 100644 index 000000000000..1ec09435b5cb --- /dev/null +++ b/solenv/inc/postwin.h @@ -0,0 +1,252 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +/* nicht geschuetz, muss als gegenstueck zu prewin.h includet werden */ + +#ifdef WNT +#ifdef __cplusplus +} +#endif +#endif + +#undef Region +#undef PolyPolygon +#undef Polygon +#undef Rectangle +#undef DELETE + +#undef Folder +#undef GradientStyle_RECT + +/* Hilfe-Ids umbenennen */ +#define WIN_HELP_INDEX 0x0003 +#define WIN_HELP_HELPONHELP 0x0004 +#undef HELP_INDEX +#undef HELP_HELPONHELP + +#define WIN_MOUSE_MOVED 0x0001 +#undef MOUSE_MOVED + +#define WIN_WB_LEFT 0 +#define WIN_WB_RIGHT 1 +#undef WB_LEFT +#undef WB_RIGHT + +#ifdef GetObject +#undef GetObject +#ifdef UNICODE +#define WIN_GetObject GetObjectW +#else +#define WIN_GetObject GetObjectA +#endif +#else +#define WIN_GetObject GetObject +#endif + +#ifdef SetPrinter +#undef SetPrinter +#ifdef UNICODE +#define WIN_SetPrinter SetPrinterW +#else +#define WIN_SetPrinter SetPrinterA +#endif +#else +#define WIN_SetPrinter SetPrinter +#endif + +#ifdef GetPrinter +#undef GetPrinter +#ifdef UNICODE +#define WIN_GetPrinter GetPrinterW +#else +#define WIN_GetPrinter GetPrinterA +#endif +#else +#define WIN_GetPrinter GetPrinter +#endif + +#ifdef DrawText +#undef DrawText +#ifdef UNICODE +#define WIN_DrawText DrawTextW +#else +#define WIN_DrawText DrawTextA +#endif +#else +#define WIN_DrawText DrawText +#endif + +#ifdef mciSetCommand +#undef mciSetCommand +#ifdef UNICODE +#define WIN_mciSetCommand mciSetCommandW +#else +#define WIN_mciSetCommand mciSetCommandA +#endif +#else +#define mciSetCommand mciSetCommand +#endif + +#ifdef SetPort +#undef SetPort +#ifdef UNICODE +#define WIN_SetPort SetPortW +#else +#define WIN_SetPort SetPortA +#endif +#else +#define WIN_SetPort SetPort +#endif + +#ifdef CopyFile +#undef CopyFile +#ifdef UNICODE +#define WIN_CopyFile CopyFileW +#else +#define WIN_CopyFile CopyFileA +#endif +#else +#define WIN_CopyFile CopyFile +#endif + + +#ifdef GetUserName +#undef GetUserName +#ifdef UNICODE +#define WIN_GetUserName GetUserNameW +#else +#define WIN_GetUserName GetUserNameA +#endif +#else +#define WIN_GetUserName GetUserName +#endif + +#ifdef GetClassName +#undef GetClassName +#ifdef UNICODE +#define WIN_GetClassName GetClassNameW +#else +#define WIN_GetClassName GetClassNameA +#endif +#else +#define WIN_GetClassName GetClassName +#endif + +#ifdef GetCharWidth +#undef GetCharWidth +#ifdef UNICODE +#define WIN_GetCharWidth GetCharWidthW +#else +#define WIN_GetCharWidth GetCharWidthA +#endif +#else +#define WIN_GetCharWidth GetCharWidth +#endif + +#ifdef GetMetaFile +#undef GetMetaFile +#ifdef UNICODE +#define WIN_GetMetaFile GetMetaFileW +#else +#define WIN_GetMetaFile GetMetaFileA +#endif +#else +#define WIN_GetMetaFile GetMetaFile +#endif + +#ifdef GetNumberFormat +#undef GetNumberFormat +#ifdef UNICODE +#define WIN_GetNumberFormat GetNumberFormatW +#else +#define WIN_GetNumberFormat GetNumberFormatA +#endif +#else +#define WIN_GetNumberFormat GetNumberFormat +#endif + +#ifdef GetGlyphOutline +#undef GetGlyphOutline +#ifdef UNICODE +#define WIN_GetGlyphOutline GetGlyphOutlineW +#else +#define WIN_GetGlyphOutline GetGlyphOutlineA +#endif +#else +#define WIN_GetGlyphOutline GetGlyphOutline +#endif + +#ifdef GetKerningPairs +#undef GetKerningPairs +#ifdef UNICODE +#define WIN_GetKerningPairs GetKerningPairsW +#else +#define WIN_GetKerningPairs GetKerningPairsA +#endif +#else +#define WIN_GetKerningPairs GetKerningPairs +#endif + +#ifdef FindWindow +#undef FindWindow +#ifdef UNICODE +#define WIN_FindWindow FindWindowW +#else +#define WIN_FindWindow FindWindowA +#endif +#else +#define WIN_FindWindow FindWindow +#endif + +// keine Yield-Definition +#undef Yield + +/* new StretchBlt() Modes (simpler names) */ +#ifndef STRETCH_ANDSCANS +#define STRETCH_ANDSCANS 1 +#endif +#ifndef STRETCH_ORSCANS +#define STRETCH_ORSCANS 2 +#endif +#ifndef STRETCH_DELETESCANS +#define STRETCH_DELETESCANS 3 +#endif + +#ifdef WNT +extern "C" +{ +BOOL WINAPI WIN_Rectangle( HDC hDC, int X1, int Y1, int X2, int Y2 ); +BOOL WINAPI WIN_Polygon( HDC hDC, CONST POINT * ppt, int ncnt ); +BOOL WINAPI WIN_PolyPolygon( HDC hDC, CONST POINT * ppt, LPINT npcnt, int ncnt ); +} +#endif + +// svwin.h nicht mehr includen +#define _SVWIN_H + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/inc/preinclude.h b/solenv/inc/preinclude.h index dee99bc6d3f4..f05dc8399138 100644 --- a/solenv/inc/preinclude.h +++ b/solenv/inc/preinclude.h @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -36,3 +37,5 @@ #include <wchar.h> #include <features.h> #include <assert.h> + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/inc/premac.h b/solenv/inc/premac.h index 1c453c8f51a7..abf0a7b6ca92 100644 --- a/solenv/inc/premac.h +++ b/solenv/inc/premac.h @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -43,10 +44,11 @@ #define LSize MacOSLSize #define ModalDialog MacOSModalDialog #define SetCursor MacOSSetCursor -//#define ShowWindow MacOSShowWindow #define StringPtr MacOSStringPtr #define DirInfo MacOSDirInfo //#define ULONG MacOSULONG #define Line MacOSLine #define TimeValue MacOSTimeValue #define Pattern MacOSPattern + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/inc/prewin.h b/solenv/inc/prewin.h new file mode 100644 index 000000000000..0eedfe122963 --- /dev/null +++ b/solenv/inc/prewin.h @@ -0,0 +1,74 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +/* nicht geschuetzt, darf nur einmal includet werden */ + +#if defined WNT + +#define Rectangle BLA_Rectangle +#define Polygon BLA_Polygon +#define PolyPolygon BLA_PolyPolygon +#define Region WIN_Region +#define Folder WIN_Folder +#define GradientStyle_RECT WIN_GradientStyle_RECT + +#ifdef __cplusplus +extern "C" { +#endif + +#define STRICT +#ifdef _MSC_VER +#pragma warning(push, 1) +#endif +#include <windows.h> +#ifdef _MSC_VER +#pragma warning(pop) +#endif +#include <shellapi.h> +#include <commdlg.h> +#include <dlgs.h> +#ifdef USE_TOOLHELP +#include <tlhelp32.h> +#endif +#ifdef USE_IMAGEHLP +#include <imagehlp.h> +#endif +#ifdef INCLUDE_MMSYSTEM +#include <mmsystem.h> +#endif +#ifdef _MSC_VER +#pragma warning(push, 1) +#endif +#include <commctrl.h> +#ifdef _MSC_VER +#pragma warning(pop) +#endif + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/inc/sc.mk b/solenv/inc/productversion.mk index ad2102a92b4f..15ea3085f0e7 100644 --- a/solenv/inc/sc.mk +++ b/solenv/inc/productversion.mk @@ -1,7 +1,7 @@ #************************************************************************* # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# +# # Copyright 2000, 2010 Oracle and/or its affiliates. # # OpenOffice.org - a multi-platform office productivity suite @@ -25,4 +25,8 @@ # #************************************************************************* -# TODO: remove usage and file... +PRODUCTLIST = libreoffice oxygenoffice + +# default values to minimize maintainance effort +PRODUCTVERSION = 3.4 +PRODUCTVERSIONSHORT = 3 diff --git a/solenv/inc/pstrules.mk b/solenv/inc/pstrules.mk index a845b9ae86fe..9dd6cc1963c4 100644 --- a/solenv/inc/pstrules.mk +++ b/solenv/inc/pstrules.mk @@ -138,9 +138,6 @@ $(PAR)/%.par : $(COMMAND_ECHO)$(CPPLCC) -+ -P $(INCLUDE) $(CDEFS) $(SCPDEFS) -DDLLPOSTFIX=$(DLLPOSTFIX) $(*:b).scp > $(MISC)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).pre .ENDIF # YD: INCLUDE macro too long, include only few items (scp2 compile) -.IF "$(GUI)"=="OS2" - $(CPPLCC) -+ -P -I..\..\inc -I..\..\os2gcci.pro\inc $(CDEFS) $(SCPDEFS) -DDLLPOSTFIX=$(DLLPOSTFIX) $(*:b).scp > $(MISC)$/{$(subst,$(@:d:d:d), $(@:d:d))}$/$(*:b).pre -.ENDIF .IF "$(GUI)"=="UNX" $(COMMAND_ECHO)$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cpp.lcc -+ -P $(CDEFS) $(SCPDEFS) -DDLLPOSTFIX=$(DLLPOSTFIX) -I. -I$(INC) -I$(INCLOCAL) -I$(INCGUI) -I$(INCCOM) $(SOLARINC) $(*:b).scp > $(MISC)/{$(subst,$(@:d:d:d), $(@:d:d))}/$(*:b).pre .ENDIF diff --git a/solenv/inc/rules.mk b/solenv/inc/rules.mk index 2155ab8842d5..0ff659c7ec1b 100644 --- a/solenv/inc/rules.mk +++ b/solenv/inc/rules.mk @@ -637,7 +637,7 @@ $(MISC)/%.dpj : $(SLO)/%.obj : %.asm @echo $(COMPILE_ECHO_SWITCH) Compiling: $(PRJNAME)/$(PATH_IN_MODULE)/$(COMPILE_ECHO_FILE) .IF "$(COM)"=="GCC" -.IF "$(ASM)"=="ml" +.IF "$(ASM)"=="ml" || "$(ASM)"=="ml64" $(COMMAND_ECHO)$(ASM) $(AFLAGS) -D$(COM) /Fo$(SLO)/$*.obj $*.asm @@-$(RM) $*.err .ELSE # "$(ASM)"=="ml" @@ -650,7 +650,7 @@ $(SLO)/%.obj : %.asm @-$(IFEXIST) $*.err $(THEN) $(RM:s/+//) $*.err $(FI) .ELSE .IF "$(COM)"=="MSC" -.IF "$(ASM)"=="ml" +.IF "$(ASM)"=="ml" || "$(ASM)"=="ml64" $(COMMAND_ECHO)$(ASM) $(AFLAGS) -D$(COM) /Fo$(SLO)/$*.obj $*.asm @-$(IFEXIST) $*.err $(THEN) $(RM:s/+//) $*.err $(FI) .ELSE # "$(ASM)"=="ml" @@ -715,14 +715,14 @@ $(MISC)/%.sh : %.sh .IF "$(WITH_LANG)"!="" $(COMMONMISC)/$(TARGET)/%.ulf : %.ulf @echo "Making: " $(@:f) - $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(MKDIRHIER) $(@:d) $(COMMAND_ECHO)-$(RM) $@ $(COMMAND_ECHO)$(ULFEX) -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ $(COMMAND_ECHO)-$(RM) $@.$(INPATH) $(COMMONMISC)/$(TARGET)/%.xrb : %.xrb - $(COMMAND_ECHO)-$(MKDIR) $(@:d) + $(COMMAND_ECHO)-$(MKDIRHIER) $(@:d) $(COMMAND_ECHO)-$(RM) $@ $(COMMAND_ECHO)$(XMLEX) -t xrb -p $(PRJNAME) -i $(@:f) -o $(@).$(INPATH) -m $(LOCALIZESDF) -l all $(COMMAND_ECHO)$(RENAME) $@.$(INPATH) $@ diff --git a/solenv/inc/set_wntx64.mk b/solenv/inc/set_wntx64.mk index 412fb3bd2821..bc8fb7445dfd 100755..100644 --- a/solenv/inc/set_wntx64.mk +++ b/solenv/inc/set_wntx64.mk @@ -35,18 +35,18 @@ .IF "$(BUILD_X64)"!="" # ----------------- settings for x64 -------------------- -CC_X64*:=$(WRAPCMD) $(CXX_X64_BINARY) -CXX_X64*:=$(WRAPCMD) $(CXX_X64_BINARY) -LINK_X64*:=$(WRAPCMD) $(LINK_X64_BINARY) $(NOLOGO) -MACHINE:X64 -LIBMGR_X64=$(WRAPCMD) $(LIBMGR_X64_BINARY) $(NOLOGO) -IMPLIB_X64=$(WRAPCMD) $(LIBMGR_X64_BINARY) +CC_X64*:="$(CXX_X64_BINARY)" +CXX_X64*:="$(CXX_X64_BINARY)" +LINK_X64*:="$(LINK_X64_BINARY)" $(NOLOGO) -MACHINE:X64 +LIBMGR_X64="$(LIBMGR_X64_BINARY)" $(NOLOGO) +IMPLIB_X64="$(LIBMGR_X64_BINARY)" USE_CFLAGS_X64=-c -nologo -Gs $(NOLOGO) -Zm500 -Zc:forScope,wchar_t- -GR # Stack buffer overrun detection. CFLAGS+=-GS -USE_CDEFS_X64+= -DWIN32 -D_AMD64_=1 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS +USE_CDEFS_X64+= -D$(OS) -D$(GUI) -D$(GVER) -D$(COM) -DX86_64 -DWIN32 -D_AMD64_=1 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS .IF "$(debug)"!="" USE_CFLAGS_X64+=-Zi -Fd$(MISC_X64)/$(@:b).pdb USE_CDEFS_X64+=-DDEBUG @@ -114,7 +114,7 @@ STDSLOCUI_X64= IMPLIBFLAGS_X64=-machine:X64 -LIBPATH_X64=$(PSDK)/lib/x64 +LIBPATH_X64=$(WINDOWS_SDK_HOME)/lib/x64 LIBPATH_VC_X64=$(COMPATH)/lib/amd64 ADVAPI32LIB_X64=$(LIBPATH_X64)/advapi32.lib @@ -127,7 +127,6 @@ WINSPOOLLIB_X64=$(LIBPATH_X64)/winspool.lib IMM32LIB_X64=$(LIBPATH_X64)/imm32.lib VERSIONLIB_X64=$(LIBPATH_X64)/version.lib WINMMLIB_X64=$(LIBPATH_X64)/winmm.lib -WSOCK32LIB_X64=$(LIBPATH_X64)/wsock32.lib MPRLIB_X64=$(LIBPATH_X64)/mpr.lib WS2_32LIB_X64=$(LIBPATH_X64)/ws2_32.lib KERNEL32LIB_X64=$(LIBPATH_X64)/kernel32.lib @@ -142,7 +141,6 @@ MSILIB_X64=$(LIBPATH_X64)/msi.lib DDRAWLIB_X64=$(LIBPATH_X64)/ddraw.lib SHLWAPILIB_X64=$(LIBPATH_X64)/shlwapi.lib URLMONLIB_X64=$(LIBPATH_X64)/urlmon.lib -UNICOWSLIB_X64=$(LIBPATH_X64)/unicows.lib WININETLIB_X64=$(LIBPATH_X64)/wininet.lib OLDNAMESLIB_X64=$(LIBPATH_VC_X64)/oldnames.lib MSIMG32LIB_X64=$(LIBPATH_X64)/msimg32.lib @@ -158,7 +156,7 @@ L_X64=$(SOLARLIBDIR_X64) VERSIONOBJ_X64=$(SLO_X64)/_version.obj BIN_X64=$(BIN)/x64 RES_X64=$(RES)/x64 -SOLARLIBDIR_X64=$(SOLARVERSION)/$(INPATH)/lib$(UPDMINOREXT)/x64 +SOLARLIBDIR_X64=$(SOLARVERSION)/$(INPATH)/lib/x64 LIB_X64:=$(LB_X64);$(SLB_X64);$(ILIB_X64) .IF "$(LIBTARGET)"=="" diff --git a/solenv/inc/settings.mk b/solenv/inc/settings.mk index b0872169bfc6..e44458fc99a7 100644 --- a/solenv/inc/settings.mk +++ b/solenv/inc/settings.mk @@ -64,16 +64,16 @@ EXTNAME*=$(EXTENSIONNAME)_in WRONG_SOURCEVERSION .ENDIF -# Create $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/$(UPD)minor.mk if needed +# Create $(SOLARVERSION)/$(INPATH)/inc/$(UPD)minor.mk if needed %minor.mk : $(SOLARENV)/inc/minor.mk - @@-$(MKDIRHIER) $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT) - @@$(COPY) $(SOLARENV)/inc/minor.mk $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/$(UPD)minor.mk - @@$(TOUCH) $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/minormkchanged.flg + @@-$(MKDIRHIER) $(SOLARVERSION)/$(INPATH)/inc + @@$(COPY) $(SOLARENV)/inc/minor.mk $(SOLARVERSION)/$(INPATH)/inc/$(UPD)minor.mk + @@$(TOUCH) $(SOLARVERSION)/$(INPATH)/inc/minormkchanged.flg .ENDIF # "$(UPDATER)"!="" || "$(CWS_WORK_STAMP)"!="" -# Force creation of $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/ +# Force creation of $(SOLARVERSION)/$(INPATH)/inc/ # $(UPD)minor.mk could be empty as it's contents were already included from minor.mk -.INCLUDE : $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/$(UPD)minor.mk +.INCLUDE : $(SOLARVERSION)/$(INPATH)/inc/$(UPD)minor.mk .IF "$(BSCLIENT)"=="TRUE" .IF "$(UPDATER)"!="YES" @@ -147,6 +147,9 @@ JAVAI:=$(JAVAINTERPRETER) .IF "$(JAVACISGCJ)" == "yes" JAVAC+=--encoding=UTF-8 -O2 -fno-assert -Wno-deprecated -C .ENDIF +.IF "$(JDK)" != "gcj" && $(JAVACISKAFFE) != "yes" +JAVAC+=-source $(JAVA_SOURCE_VER) -target $(JAVA_TARGET_VER) +.ENDIF #classpath and response .IF "$(JDK)" == "J++" @@ -299,11 +302,11 @@ dbgutil= # --------------------------------------------------------------------------- DMAKE_WORK_DIR*:=$(subst,/,/ $(PWD)) -.IF "$(GUI)"=="WNT" +.IF "$(GUI_FOR_BUILD)"=="WNT" posix_PWD:=/cygdrive/$(PWD:s/://) -.ELSE #GUI)"=="WNT" +.ELSE posix_PWD:=$(PWD) -.ENDIF #GUI)"=="WNT" +.ENDIF .IF "$(TMP)"!="" @@ -351,10 +354,6 @@ DBG_LEVEL=$(dbglevel) nodebug=$(NODEBUG) .ENDIF -.IF "$(hbtoolkit)"!="" -HBTOOLKIT=$(hbtoolkit) -.ENDIF - .IF "$(PRODUCT)"!="" product*=$(PRODUCT) .ENDIF @@ -389,10 +388,6 @@ COMPILER_WARN_ALL=TRUE COMPILER_WARN_ERRORS=TRUE .ENDIF -.IF "$(RSC_ONCE)"!="" -rsc_once*=$(RSC_ONCE) -.ENDIF - #.IF "$(COMMON_BUILD)"!="" #common_build*=$(COMMON_BUILD) #.ENDIF @@ -468,7 +463,7 @@ product=full .ENDIF .IF "$(debug)"!="" -DBG_LEVEL*=2 +DBG_LEVEL*=1 .ENDIF # Produkt auf einen Wert setzen (alles klein) @@ -488,7 +483,7 @@ DBG_LEVEL*=0 optimize!=true dbgutil!=true DBG_LEVEL*=1 -USE_STLP_DEBUG*=TRUE +USE_DEBUG_RUNTIME*=TRUE .ENDIF .IF "$(debug)"!="" @@ -534,25 +529,30 @@ TARGETTYPE=CUI # profile has to be first for not getting the .pro extension .IF "$(profile)"!="" OUT=$(PRJ)/$(OUTPATH).cap +OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).cap ROUT=$(OUTPATH).cap .ELSE .IF "$(product)"!="" OUT=$(PRJ)/$(OUTPATH).pro +OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).pro ROUT=$(OUTPATH).pro .ELSE .IF "$(profile)"!="" OUT=$(PRJ)/$(OUTPATH).cap +OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).cap ROUT=$(OUTPATH).cap .ENDIF .IF "$(dbcs)"!="" OUT=$(PRJ)/$(OUTPATH).w +OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).w ROUT=$(OUTPATH).w .ENDIF # could already be set by makefile.mk .IF "$(OUT)" == "" OUT*=$(PRJ)/$(OUTPATH) +OUT_FOR_BUILD*=$(PRJ)/$(OUTPATH_FOR_BUILD) ROUT*=$(OUTPATH) .ENDIF .ENDIF @@ -560,19 +560,17 @@ ROUT*=$(OUTPATH) .IF "$(bndchk)" != "" OUT:=$(PRJ)/$(OUTPATH).bnd +OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).bnd ROUT=$(OUTPATH).bnd .ENDIF .IF "$(truetime)" != "" OUT=$(PRJ)/$(OUTPATH).tt +OUT_FOR_BUILD=$(PRJ)/$(OUTPATH_FOR_BUILD).tt ROUT=$(OUTPATH).tt .ENDIF -.IF "$(hbtoolkit)"!="" -OUT=$(PRJ)/$(OUTPATH).tlk -ROUT=$(OUTPATH).tlk -.ENDIF .IF "$(PRJ)"!="." -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" PATH_IN_MODULE:=\ $(subst,$(normpath $(shell @+cd $(PRJ) && pwd $(PWDFLAGS)))/, $(PWD)) .ELSE # "$(GUI)"=="WNT" @@ -602,6 +600,7 @@ COMMON_OUTDIR:=$(OUTPATH) #.ENDIF # "$(common_build)"!="" LOCAL_OUT:=$(OUT) +LOCAL_OUT_FOR_BUILD:=$(OUT_FOR_BUILD) LOCAL_COMMON_OUT:=$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(OUT)) .EXPORT : LOCAL_OUT LOCAL_COMMON_OUT @@ -635,6 +634,7 @@ MISCX=$(OUT)/umisc MISC=$(OUT)/umisc .ELSE MISC=$(OUT)/misc +MISC_FOR_BUILD=$(OUT_FOR_BUILD)/misc # pointing to misc in common output tree if exists COMMONMISC={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(MISC))} .ENDIF @@ -699,7 +699,7 @@ PROCESSOUT*:=$(MISC) # Makros fuer die Librarynamen des Solar .INCLUDE : libs.mk -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" VERSIONOBJ=$(SLO)/_version.obj .ENDIF @@ -707,11 +707,11 @@ VERSIONOBJ=$(SLO)/_version.obj VERSIONOBJ=$(SLO)/_version.o .ENDIF -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" WINVERSIONNAMES=$(UNIXVERSIONNAMES) .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" SHELLLIB=-lgdi32 -lshell32 -ladvapi32 -lcomdlg32 .ELSE @@ -768,39 +768,35 @@ BIN=$(PRJ)/$(OUTPATH).xl/bin # damit gezielt Abhaengigkeiten auf s: angegeben werden koennen .IF "$(common_build)"!="" -SOLARIDLDIR=$(SOLARVERSION)/common$(PROEXT)/idl$(UPDMINOREXT) +SOLARIDLDIR=$(SOLARVERSION)/common$(PROEXT)/idl .ELSE -SOLARIDLDIR=$(SOLARVERSION)/$(INPATH)/idl$(UPDMINOREXT) +SOLARIDLDIR=$(SOLARVERSION)/$(INPATH)/idl .ENDIF -#.IF "$(UPDMINOR)" != "" -#UPDMINOREXT=.$(UPDMINOR) -#.ELSE -#UPDMINOREXT= -#.ENDIF -SOLARRESDIR=$(SOLARVERSION)/$(INPATH)/res$(UPDMINOREXT) -SOLARRESXDIR=$(SOLARVERSION)/$(INPATH)/res$(UPDMINOREXT) -SOLARLIBDIR=$(SOLARVERSION)/$(INPATH)/lib$(UPDMINOREXT) -SOLARJAVADIR=$(SOLARVERSION)/$(INPATH)/java$(UPDMINOREXT) -SOLARINCDIR=$(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT) -SOLARINCXDIR=$(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT) +SOLARRESDIR=$(SOLARVERSION)/$(INPATH)/res +SOLARRESXDIR=$(SOLARVERSION)/$(INPATH)/res +SOLARLIBDIR=$(SOLARVERSION)/$(INPATH)/lib +SOLARLIBDIR_FOR_BUILD=$(SOLARVERSION)/$(INPATH_FOR_BUILD)/lib +SOLARJAVADIR=$(SOLARVERSION)/$(INPATH)/java +SOLARINCDIR=$(SOLARVERSION)/$(INPATH)/inc +SOLARINCXDIR=$(SOLARVERSION)/$(INPATH)/inc .IF "$(SOLARLANG)"!="deut" .IF "$(SOLARLANG)" != "" -SOLARINCXDIR=$(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/$(SOLARLANG) -SOLARRESXDIR=$(SOLARVERSION)/$(INPATH)/res$(UPDMINOREXT)/$(SOLARLANG) -.ENDIF -.ENDIF -SOLARBINDIR:=$(SOLARVERSION)/$(INPATH)/bin$(UPDMINOREXT) -SOLARUCRDIR=$(SOLARVERSION)/$(INPATH)/ucr$(UPDMINOREXT) -SOLARPARDIR=$(SOLARVERSION)/$(INPATH)/par$(UPDMINOREXT) -SOLARXMLDIR=$(SOLARVERSION)/$(INPATH)/xml$(UPDMINOREXT) -SOLARDOCDIR=$(SOLARVERSION)/$(INPATH)/doc$(UPDMINOREXT) -SOLARPCKDIR=$(SOLARVERSION)/$(INPATH)/pck$(UPDMINOREXT) -SOLARSDFDIR=$(SOLARVERSION)/$(INPATH)/sdf$(UPDMINOREXT) -SOLARCOMMONBINDIR=$(SOLARVERSION)/common$(PROEXT)/bin$(UPDMINOREXT) -SOLARCOMMONRESDIR=$(SOLARVERSION)/common$(PROEXT)/res$(UPDMINOREXT) -SOLARCOMMONPCKDIR=$(SOLARVERSION)/common$(PROEXT)/pck$(UPDMINOREXT) -SOLARCOMMONSDFDIR=$(SOLARVERSION)/common$(PROEXT)/sdf$(UPDMINOREXT) +SOLARINCXDIR=$(SOLARVERSION)/$(INPATH)/inc/$(SOLARLANG) +SOLARRESXDIR=$(SOLARVERSION)/$(INPATH)/res/$(SOLARLANG) +.ENDIF +.ENDIF +SOLARBINDIR:=$(SOLARVERSION)/$(INPATH_FOR_BUILD)/bin +SOLARUCRDIR=$(SOLARVERSION)/$(INPATH)/ucr +SOLARPARDIR=$(SOLARVERSION)/$(INPATH)/par +SOLARXMLDIR=$(SOLARVERSION)/$(INPATH)/xml +SOLARDOCDIR=$(SOLARVERSION)/$(INPATH)/doc +SOLARPCKDIR=$(SOLARVERSION)/$(INPATH)/pck +SOLARSDFDIR=$(SOLARVERSION)/$(INPATH)/sdf +SOLARCOMMONBINDIR=$(SOLARVERSION)/common$(PROEXT)/bin +SOLARCOMMONRESDIR=$(SOLARVERSION)/common$(PROEXT)/res +SOLARCOMMONPCKDIR=$(SOLARVERSION)/common$(PROEXT)/pck +SOLARCOMMONSDFDIR=$(SOLARVERSION)/common$(PROEXT)/sdf .IF "$(common_build)"=="" SOLARCOMMONBINDIR=$(SOLARBINDIR) SOLARCOMMONRESDIR=$(SOLARRESDIR) @@ -810,19 +806,9 @@ SOLARCOMMONSDFDIR=$(SOLARSDFDIR) .EXPORT : SOLARBINDIR -L10N_MODULE*=$(SOURCE_ROOT_DIR)/l10n/l10n -ALT_L10N_MODULE*=$(SOLARSRC)$/l10n_so - .IF "$(WITH_LANG)"!="" .INCLUDE .IGNORE: $(L10N_MODULE)/$(COMMON_OUTDIR)$(PROEXT)/inc/localization_present.mk -.INCLUDE .IGNORE: $(ALT_L10N_MODULE)/$(COMMON_OUTDIR)$(PROEXT)/inc/localization_present.mk - -# check for localizations not hosted in l10n module. if a file exists there -# it won't in l10n -.IF "$(ALT_LOCALIZATION_FOUND)"!="" -TRYALTSDF:=$(ALT_L10N_MODULE)$/$(COMMON_OUTDIR)$(PROEXT)$/misc/sdf$/$(PRJNAME)$/$(PATH_IN_MODULE)$/localize.sdf -LOCALIZESDF:=$(strip $(shell @+$(IFEXIST) $(TRYALTSDF) $(THEN) echo $(TRYALTSDF) $(FI))) -.ENDIF # "$(ALT_LOCALIZATION_FOUND)"!="" + # if the l10n module exists, use split localize.sdf directly from there .IF "$(LOCALIZATION_FOUND)"!="" && "$(LOCALIZESDF)"=="" # still check for existence as there may be no localization yet @@ -863,8 +849,8 @@ LIB:=$(LB);$(BIN);$(ILIB) CPUNAME=CPUNAME_HAS_TO_BE_SET_IN_ENVIRONMENT .ENDIF -.IF "$(USE_STLP_DEBUG)" != "" -SCPCDEFS+=-D_STLP_DEBUG +.IF "$(USE_DEBUG_RUNTIME)" != "" +SCPCDEFS+=-D_DEBUG_RUNTIME .ENDIF .IF "$(UDK_MAJOR)"!="" @@ -876,10 +862,6 @@ SCPDEFS+=-DCCNUMVER=$(CCNUMVER) .IF "$(COM)"=="GCC" SCPDEFS+=-DSHORTSTDCPP3=$(SHORTSTDCPP3) -DSHORTSTDC3=$(SHORTSTDC3) .ENDIF # "$(SHORTSTDCPP3)"!="" -# extend library path for OS/2 gcc/wlink -.IF "$(GUI)"=="OS2" -LIB:=$(LB);$(SLB);$(ILIB) -.ENDIF UNOIDLDEFS+=-DSUPD=$(UPD) -DUPD=$(UPD) @@ -888,10 +870,10 @@ UNOIDLDEPFLAGS=-Mdepend=$(SOLARVER) UNOIDLINC+=-I. -I.. -I$(PRJ) -I$(PRJ)/inc -I$(PRJ)/$(INPATH)/idl -I$(OUT)/inc -I$(SOLARIDLDIR) -I$(SOLARINCDIR) -CDEFS= -D$(OS) -D$(GUI) -D$(GVER) -D$(COM) -D$(CVER) -D$(CPUNAME) +CDEFS= -D$(OS) -D$(GUI) -D$(GVER) -D$(COM) -D$(CPUNAME) -.IF "$(USE_STLP_DEBUG)" != "" && "$(GUI)"!="OS2" -CDEFS+=-D_STLP_DEBUG +.IF "$(USE_DEBUG_RUNTIME)" != "" +CDEFS+=-D_DEBUG_RUNTIME .ENDIF .IF "$(CDEFS_PRESET)" != "" @@ -904,7 +886,11 @@ CDEFS+=-DTIMELOG CDEFSCXX= CDEFSOBJ= +.IF "$(OS)"=="IOS" +CDEFSSLO= +.ELSE CDEFSSLO=-DSHAREDLIB -D_DLL_ +.ENDIF CDEFSGUI=-DGUI CDEFSCUI=-DCUI #CDEFSMT=-DMULTITHREAD @@ -917,9 +903,9 @@ CDEFSOPT=-DOPTIMIZE MKDEPFLAGS+=-I$(INCDEPN:s/ / -I/:s/-I-I/-I/) MKDEPALLINC=$(SOLARINC:s/-I/ -I/) -MKDEPPREINC=-I$(PREPATH)/$(INPATH)/inc$(UPDMINOREXT) -MKDEPSOLENV=-I$(SOLARENV)/inc -I$(SOLARENV)/$(GUI)$(CVER)$(COMEX)/inc -MKDEPSOLVER=-I$(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT) -I$(SOLARVERSION)/$(INPATH)/inc +MKDEPPREINC=-I$(PREPATH)/$(INPATH)/inc +MKDEPSOLENV=-I$(SOLARENV)/inc -I$(SOLARENV)/$(GUI)$(COMEX)/inc +MKDEPSOLVER=-I$(SOLARVERSION)/$(INPATH)/inc MKDEPLOCAL=-I$(INCCOM) .IF "$(MKDEPENDALL)"!="" @@ -970,10 +956,8 @@ RSC=$(AUGMENT_LIBRARY_PATH) $(FLIPCMD) $(SOLARBINDIR)/rsc VERBOSITY=-verbose .ELSE COMMAND_ECHO=@ - .IF "$(VERBOSE)" == "FALSE" - VERBOSITY=-quiet - ZIP_VERBOSITY=-q - .ENDIF + VERBOSITY=-quiet + ZIP_VERBOSITY=-q .ENDIF # "$(VERBOSE)" == "TRUE" COMPILE_ECHO_SWITCH= COMPILE_ECHO_FILE=$(<:f) @@ -983,7 +967,7 @@ RSCUPDVER=$(RSCREVISION) RSCUPDVERDEF=-DUPDVER="$(RSCUPDVER)" RSCFLAGS=-s -RSCDEFS=-D$(GUI) -D$(GVER) -D$(COM) -D$(CVER) $(JAVADEF) +RSCDEFS=-D$(GUI) -D$(GVER) -D$(COM) $(JAVADEF) .IF "$(BUILD_SPECIAL)"!="" RSCDEFS+=-DBUILD_SPECIAL=$(BUILD_SPECIAL) @@ -1019,9 +1003,7 @@ LNTFLAGSOUTOBJ=-os .INCLUDE : unx.mk .ENDIF -.IF "$(GUI)" == "OS2" -.INCLUDE : os2.mk -.ENDIF +DLLPOSTFIX=lo .IF "$(OOO_LIBRARY_PATH_VAR)" != "" # Add SOLARLIBDIR at the begin of a (potentially previously undefined) library @@ -1035,32 +1017,43 @@ AUGMENT_LIBRARY_PATH_LOCAL = : && \ $(OOO_LIBRARY_PATH_VAR)=$(normpath, $(PWD)/$(DLLDEST)):$(normpath, $(SOLARSHAREDBIN))$${{$(OOO_LIBRARY_PATH_VAR):+:$${{$(OOO_LIBRARY_PATH_VAR)}}}} .END -# remove if .Net 2003 support has expired -.IF "$(debug)"!="" -.IF "$(OS)$(COM)$(CPU)" == "WNTMSCI" -.IF "$(COMEX)" == "10" -.IF "$(SLOFILES)$(OBJFILES)$(DEPOBJFILES)"!="" -MAXPROCESS!:=1 -.EXPORT : MAXPROCESS -.ENDIF # "$(SLOFILES)$(OBJFILES)$(DEPOBJFILES)"!="" -.ENDIF # "$(COMEX)" == "10" -.ENDIF # "$(OS)$(COM)$(CPU)" == "WNTMSCI" -.ENDIF # "$(debug)"!="" - # for multiprocess building in external modules # allow seperate handling EXTMAXPROCESS*=$(MAXPROCESS) +GDBTRACE=gdb -nx --command=$(SOLARENV)/bin/gdbtrycatchtrace --args + +#use with export VALGRIND=memcheck, that method of invocation is used because +#hunspell will aslo run its own unit tests under valgrind when this variable is +#set. +.IF "$(VALGRIND)" != "" +VALGRINDTOOL=valgrind --tool=$(VALGRIND) --num-callers=50 +.IF "$(VALGRIND)" == "memcheck" +VALGRINDTOOL+=--leak-check=yes +G_SLICE*:=always-malloc +.EXPORT : G_SLICE +.ENDIF +.ENDIF + IDLC*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/idlc -REGMERGE*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/regmerge -REGCOMPARE*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/regcompare -REGCOMP*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/regcomp +REGMERGE*=$(AUGMENT_LIBRARY_PATH) $(VALGRINDTOOL) $(SOLARBINDIR)/regmerge +REGCOMPARE*=$(AUGMENT_LIBRARY_PATH) $(VALGRINDTOOL) $(SOLARBINDIR)/regcompare + +.IF "$(DEBUGREGCOMP)" != "" || "$(debugregcomp)" != "" +GDBREGCOMPTRACE=$(GDBTRACE) +.ENDIF + +REGCOMP*=$(AUGMENT_LIBRARY_PATH_LOCAL) $(GDBREGCOMPTRACE) $(SOLARBINDIR)/regcomp CPPUMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/cppumaker JAVAMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/javamaker RDBMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/rdbmaker CLIMAKER*=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/climaker -CPPUNITTESTER=$(AUGMENT_LIBRARY_PATH_LOCAL) $(SOLARBINDIR)/cppunittester +.IF "$(DEBUGCPPUNIT)" != "" || "$(debugcppunit)" != "" +GDBCPPUNITTRACE=$(GDBTRACE) +.ENDIF + +CPPUNITTESTER=$(AUGMENT_LIBRARY_PATH_LOCAL) $(GDBCPPUNITTRACE) $(VALGRINDTOOL) $(SOLARBINDIR)/cppunit/cppunittester HELPEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/helpex LNGCONVEX=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/lngconvex HELPLINKER=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/HelpLinker @@ -1101,9 +1094,12 @@ CDEFS+= -DSUPD=$(UPD) # flags to enable build with symbols; required for crashdump feature .IF ("$(ENABLE_CRASHDUMP)"!="" && "$(ENABLE_CRASHDUMP)"!="DUMMY") || "$(ENABLE_SYMBOLS)"!="" +# if debug is enabled, this may enable less debug info than debug, so rely just on debug +.IF "$(debug)" == "" CFLAGSENABLESYMBOLS_CC_ONLY*=$(CFLAGSENABLESYMBOLS) CFLAGSCXX+=$(CFLAGSENABLESYMBOLS) CFLAGSCC+=$(CFLAGSENABLESYMBOLS_CC_ONLY) +.ENDIF # "$(DEBUG)" == "" .ENDIF # ("$(ENABLE_CRASHDUMP)"!="" && "$(ENABLE_CRASHDUMP)"!="DUMMY") || "$(ENABLE_SYMBOLS)"!="" .IF "$(profile)"!="" @@ -1173,6 +1169,10 @@ CDEFS+=-DENABLE_LAYOUT_EXPERIMENTAL=1 CFLAGS+=-DENABLE_LAYOUT_EXPERIMENTAL=0 .ENDIF # ENABLE_LAYOUT_EXPERIMENTAL != TRUE +.IF "$(ENABLE_GSTREAMER)" == "TRUE" +CDEFS+=-DGSTREAMER +.ENDIF + # compose flags and defines for GUI .IF "$(TARGETTYPE)"=="GUI" CDEFS+= $(CDEFSGUI) @@ -1209,15 +1209,6 @@ STDSHL=$(STDSHLCUIMT) .EXPORT : PICSWITCH -.IF "$(USE_SYSTEM_STL)"=="YES" -LIBSTLPORT="" -.ENDIF - -.IF "$(NO_DEFAULT_STL)"=="" -STDLIB+=$(LIBSTLPORT) -STDSHL+=$(LIBSTLPORT) -.ENDIF # "$(NO_DEFAULT_STL)"=="" - # fill up unresolved symbols not found else where .IF "$(FILLUPARC)"!="" STDLIB+=$(FILLUPARC) @@ -1234,11 +1225,13 @@ CDEFS+=$(JAVADEF) # .mk file for that platform should set COMPILER_WARN_ERRORS=TRUE and no longer # set MODULES_WITH_WARNINGS, and once no platform sets MODULES_WITH_WARNINGS any # longer, this code can go away: -.IF "$(MODULES_WITH_WARNINGS)" != "" +.IF "$(MODULES_WITH_WARNINGS)" == "" +COMPILER_WARN_ERRORS=TRUE +.ELSE MODULES_WITH_WARNINGS_1 := $(foreach,i,$(MODULES_WITH_WARNINGS) .$(i).) MODULES_WITH_WARNINGS_2 := $(subst,.$(PRJNAME)., $(MODULES_WITH_WARNINGS_1)) .IF "$(MODULES_WITH_WARNINGS_1)" == "$(MODULES_WITH_WARNINGS_2)" -COMPILER_WARN_ERRORS = TRUE +COMPILER_WARN_ERRORS=TRUE .ENDIF .ENDIF diff --git a/solenv/inc/shlinfo.rc b/solenv/inc/shlinfo.rc index 3e090272408d..5896f2b55c12 100644 --- a/solenv/inc/shlinfo.rc +++ b/solenv/inc/shlinfo.rc @@ -25,19 +25,8 @@ * ************************************************************************/ -#if !defined(ENGLISH) -#define LG_D // generate always german version -#endif - #define VER_FIRSTYEAR 2010 - -#if defined(OS2) - -#define OS2_VERSION "hello world" - -#else - #include <windows.h> #include "version.hrc" @@ -45,16 +34,16 @@ // version information // ----------------------------------------------------------------------- -VS_VERSION_INFO versioninfo +VS_VERSION_INFO VERSIONINFO #ifndef SUBVERSION - fileversion VERSION, 0, VERVARIANT, VER_COUNT - productversion VERSION, 0, VERVARIANT, VER_COUNT + FILEVERSION VERSION, 0, VERVARIANT, VER_COUNT + PRODUCTVERSION VERSION, 0, VERVARIANT, VER_COUNT #else - fileversion VERSION, SUBVERSION, VERVARIANT, VER_COUNT - productversion VERSION, SUBVERSION, VERVARIANT, VER_COUNT + FILEVERSION VERSION, SUBVERSION, VERVARIANT, VER_COUNT + PRODUCTVERSION VERSION, SUBVERSION, VERVARIANT, VER_COUNT #endif - fileflagsmask 0x3F - fileflags + FILEFLAGSMASK 0x3F + FILEFLAGS #if defined(DEBUG) VS_FF_DEBUG | #endif @@ -62,52 +51,27 @@ VS_VERSION_INFO versioninfo VS_FF_PRERELEASE | #endif 0 -#ifndef WIN32 - fileos VOS_DOS_WINDOWS16 -#else - fileos VOS_NT_WINDOWS32 -#endif - filetype VFT_APP + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_APP { - block "StringFileInfo" + BLOCK "StringFileInfo" { -#ifdef LG_D - block "040704E4" - { - // German StringTable - value "CompanyName", "OpenOffice.org\0" - value "FileVersion", PPS(VER_LEVEL) "\0" - value "OriginalFilename", PPS(ORG_NAME) "\0" - value "InternalName", PPS(INTERNAL_NAME) "\0" - value "LegalCopyright", S_CRIGHT " Oracle, Inc.\0" - ADDITIONAL_VERINFO1 - ADDITIONAL_VERINFO2 - ADDITIONAL_VERINFO3 - } -#else - block "040904E4" + BLOCK "040904E4" { // International StringTable - value "CompanyName", "OpenOffice.org\0" - value "FileVersion", PPS(VER_LEVEL) "\0" - value "OriginalFilename", PPS(ORG_NAME) "\0" - value "InternalName", PPS(INTERNAL_NAME) "\0" - value "LegalCopyright", S_CRIGHT " Oracle, Inc.\0" + VALUE "CompanyName", "The Document Foundation\0" + VALUE "FileVersion", PPS(VER_LEVEL) "\0" + VALUE "OriginalFilename", PPS(ORG_NAME) "\0" + VALUE "InternalName", PPS(INTERNAL_NAME) "\0" + VALUE "LegalCopyright", S_CRIGHT " The Document Foundation\0" ADDITIONAL_VERINFO1 ADDITIONAL_VERINFO2 ADDITIONAL_VERINFO3 } -#endif } - block "VarFileInfo" + BLOCK "VarFileInfo" { -#ifdef LG_D - value "Translation", 0x0407, 1252 -#else - value "Translation", 0x0409, 1252 -#endif + VALUE "Translation", 0x0409, 1252 } } - -#endif // OS2 diff --git a/solenv/inc/startup/startup.mk b/solenv/inc/startup/startup.mk index b4aa9a74353a..da4f38e5e5ad 100644 --- a/solenv/inc/startup/startup.mk +++ b/solenv/inc/startup/startup.mk @@ -30,10 +30,10 @@ CALLMACROS:=$(MAKEMACROS) CALLTARGETS=$(MAKETARGETS) .ENDIF # "$(TNR)" == "" -.INCLUDEDIRS : $(DMAKE_INC) $(SOLARVERSION)$/$(INPATH)$/inc$(UPDMINOREXT) $(SOLARENV)$/inc +.INCLUDEDIRS : $(DMAKE_INC) $(SOLARVERSION)$/$(INPATH)$/inc $(SOLARENV)$/inc # Grab key definitions from the environment -# .IMPORT .IGNORE : OS TMPDIR UPD INPATH OUTPATH GUI COM EX CLASSPATH PRODUCT GUIBASE SOLARENV SOLARVER GUIENV CPU CPUNAME CVER GVER COMPATH LIB INCLUDE TR SORT UNIQ ROOTDIR SED AWK TOUCH IENV ILIB PRODUCT_ENV COMEX UPD BUILD DEVROOT VCL SO3 ENVCFLAGS +# .IMPORT .IGNORE : OS TMPDIR UPD INPATH OUTPATH GUI COM EX CLASSPATH PRODUCT GUIBASE SOLARENV SOLARVER GUIENV CPU CPUNAME GVER COMPATH LIB INCLUDE TR SORT UNIQ ROOTDIR SED AWK TOUCH IENV ILIB PRODUCT_ENV COMEX UPD BUILD DEVROOT VCL SO3 ENVCFLAGS .IF "$(OS)" == "" || "$(OS)" == "Windows_NT" .ERROR : ; @echo Forced error: Environment variable OS has to be set for OOo build! @@ -42,9 +42,7 @@ OS_variable_needed # Customize macro definitions based on seting of OS. # This must come before the default macro definitions which follow. -.IF "$(OS)" == "OS2" -.INCLUDE: $(INCFILENAME:d)OS2/macros.mk -.ELIF "$(OS)" == "WNT" +.IF "$(OS_FOR_BUILD)" == "WNT" .INCLUDE: $(INCFILENAME:d)wnt/macros.mk .END diff --git a/solenv/inc/startup/wnt/macros.mk b/solenv/inc/startup/wnt/macros.mk index 2d8181439e81..391c1a9145d4 100644 --- a/solenv/inc/startup/wnt/macros.mk +++ b/solenv/inc/startup/wnt/macros.mk @@ -1,12 +1,7 @@ -# Define additional MSDOS specific settings. +# Define additional Windows-specific settings. # -# --- Set Wrapper command --- -# Provide a macro that can be used to access the wrapper and to avoid -# hardcoding the program name everywhere -GUWCMD*=guw.exe - -# This is a no-op for native W32 dmake +# This is a no-op for native Windows dmake .WINPATH !:= yes # Directory cache configuration. @@ -24,9 +19,6 @@ E *:= .exe # Executables __.DIVSEP-sh-no *:= \\ DIRSEPSTR :=/ -.EXPORT : GUWCMD - # Does not respect case of filenames. .DIRCACHERESPCASE := no NAMEMAX = 256 - diff --git a/solenv/inc/target.mk b/solenv/inc/target.mk index 6e8007425454..ed4a7b9c7566 100644 --- a/solenv/inc/target.mk +++ b/solenv/inc/target.mk @@ -31,9 +31,6 @@ MKFILENAME:=TARGET.MK # INCLUDE-Path # ------------------------------------------------------------------ -.IF "$(STL_OS2_BUILDING)" != "" -CDEFS+=-DSTL_OS2_BUILDING -.ENDIF .IF "$(VISIBILITY_HIDDEN)" != "" .IF "$(COMNAME)" == "gcc3" && "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" CFLAGS += -fvisibility=hidden @@ -197,7 +194,7 @@ DEPIDLFILES:=$(foreach,i,$(IDLFILES) $(IDLDIRS)/$i) DEPIDLFILES:=$(IDLFILES) .ENDIF # "$(EXTERNIDLFILES)"!="" .ELSE # "$(LOCALIDLFILES)$(EXTERNIDLFILES)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" DEPIDLFILES:=$(foreach,i,$(IDLFILES) $(!null,$(shell @$(FIND) . -name $i) $i $(shell @($(FIND) $(IDLDIRS) -name $(i:f)) | $(SED) s/\//\\/g ))) .ELSE # "$(GUI)"=="WNT" DEPIDLFILES:=$(foreach,i,$(IDLFILES) $(!null,$(shell @$(FIND) . -name $i -print) $i $(shell @$(FIND) $(IDLDIRS) -name $(i:f) -print ) )) @@ -209,7 +206,7 @@ DEPIDLFILES:=$(foreach,i,$(IDLFILES) $(!null,$(shell @$(FIND) . -name $i -print) .IF "$(JARFILES)"!="" LOCALJARS:=$(foreach,i,$(shell @@-cd $(JARDIR) && ls -1 $(JARFILES) ) $(JARDIR)/$i) NEWCLASS:=$(LOCALJARS) -NEWCLASS+:=$(foreach,i,$(JARFILES) $(eq,$(LOCALJARS),$(subst,$i, $(LOCALJARS)) $(SOLARBINDIR)/$i $(NULL))) +NEWCLASS+:=$(foreach,i,$(JARFILES) $(eq,$(LOCALJARS),$(subst,$i, $(LOCALJARS)) $(SOLARVERSION)$/$(INPATH)$/bin$/$i $(NULL))) .ENDIF # "$(JARFILES)"!="" NEWCLASS+=$(EXTRAJARFILES) .IF "$(GENJAVACLASSFILES)"!="" @@ -344,14 +341,8 @@ JAVATARGET:=$(MISC)/$(TARGET)_dummy.java .IF "$(JARTARGET)"!="" JARCLASSDIRS*=. -.IF "$(NEW_JAR_PACK)"!="" JARMANIFEST*=$(CLASSDIR)/$(TARGET)/META-INF/MANIFEST.MF -.ENDIF # "$(NEW_JAR_PACK)"!="" JARTARGETN=$(CLASSDIR)/$(JARTARGET) -.IF "$(NOJARDEP)$(NEW_JAR_PACK)"=="" -JARTARGETDEP=$(JARTARGET).dep -JARTARGETDEPN=$(MISC)/$(JARTARGET).dep -.ENDIF # "$(NOJARDEP)$(NEW_JAR_PACK)"=="" .ENDIF # "$(JARTARGET)"!="" .ELSE # "$(SOLAR_JAVA)"!="" JAVACLASSFILES:= @@ -441,7 +432,7 @@ APP2BASEX=/BASE:$(APP2BASE) .IF "$(APP3TARGET)"!="" APP3TARGETN=$(BIN)/$(APP3TARGET)$(EXECPOST) .IF "$(BASE)" != "" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(APP3BASE)"=="" APP3BASE=$(BASE) .ENDIF @@ -501,7 +492,7 @@ APP7BASEX=/BASE:$(APP7BASE) .IF "$(APP8TARGET)"!="" APP8TARGETN=$(BIN)/$(APP8TARGET)$(EXECPOST) .IF "$(BASE)" != "" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(APP8BASE)"=="" APP8BASE=$(BASE) .ENDIF @@ -513,7 +504,7 @@ APP8BASEX=/BASE:$(APP8BASE) .IF "$(APP9TARGET)"!="" APP9TARGETN=$(BIN)/$(APP9TARGET)$(EXECPOST) .IF "$(BASE)" != "" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(APP9BASE)"=="" APP9BASE=$(BASE) .ENDIF @@ -529,7 +520,7 @@ SHL1TARGET!:=$(SHL1TARGET)$($(WINVERSIONNAMES)_MAJOR) SHL1DLLPRE*=$(DLLPRE) SHL1TARGETN=$(DLLDEST)/$(SHL1DLLPRE)$(SHL1TARGET)$(DLLPOST) .IF "$(BASE)" != "" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL1BASE)"=="" SHL1BASE=$(BASE) .ENDIF @@ -545,7 +536,7 @@ SHL2TARGET!:=$(SHL2TARGET)$($(WINVERSIONNAMES)_MAJOR) SHL2DLLPRE*=$(DLLPRE) SHL2TARGETN=$(DLLDEST)/$(SHL2DLLPRE)$(SHL2TARGET)$(DLLPOST) .IF "$(BASE)" != "" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL2BASE)"=="" SHL2BASE=$(BASE) .ENDIF @@ -561,7 +552,7 @@ SHL3TARGET!:=$(SHL3TARGET)$($(WINVERSIONNAMES)_MAJOR) SHL3DLLPRE*=$(DLLPRE) SHL3TARGETN=$(DLLDEST)/$(SHL3DLLPRE)$(SHL3TARGET)$(DLLPOST) .IF "$(BASE)" != "" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL3BASE)"=="" SHL3BASE=$(BASE) .ENDIF @@ -577,7 +568,7 @@ SHL4TARGET!:=$(SHL4TARGET)$($(WINVERSIONNAMES)_MAJOR) SHL4DLLPRE*=$(DLLPRE) SHL4TARGETN=$(DLLDEST)/$(SHL4DLLPRE)$(SHL4TARGET)$(DLLPOST) .IF "$(BASE)" != "" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL4BASE)"=="" SHL4BASE=$(BASE) .ENDIF @@ -593,7 +584,7 @@ SHL5TARGET!:=$(SHL5TARGET)$($(WINVERSIONNAMES)_MAJOR) SHL5DLLPRE*=$(DLLPRE) SHL5TARGETN=$(DLLDEST)/$(SHL5DLLPRE)$(SHL5TARGET)$(DLLPOST) .IF "$(BASE)" != "" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL5BASE)"=="" SHL5BASE=$(BASE) .ENDIF @@ -609,7 +600,7 @@ SHL6TARGET!:=$(SHL6TARGET)$($(WINVERSIONNAMES)_MAJOR) SHL6DLLPRE*=$(DLLPRE) SHL6TARGETN=$(DLLDEST)/$(SHL6DLLPRE)$(SHL6TARGET)$(DLLPOST) .IF "$(BASE)" != "" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL6BASE)"=="" SHL6BASE=$(BASE) .ENDIF @@ -625,7 +616,7 @@ SHL7TARGET!:=$(SHL7TARGET)$($(WINVERSIONNAMES)_MAJOR) SHL7DLLPRE*=$(DLLPRE) SHL7TARGETN=$(DLLDEST)/$(SHL7DLLPRE)$(SHL7TARGET)$(DLLPOST) .IF "$(BASE)" != "" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL7BASE)"=="" SHL7BASE=$(BASE) .ENDIF @@ -641,7 +632,7 @@ SHL8TARGET!:=$(SHL8TARGET)$($(WINVERSIONNAMES)_MAJOR) SHL8DLLPRE*=$(DLLPRE) SHL8TARGETN=$(DLLDEST)/$(SHL8DLLPRE)$(SHL8TARGET)$(DLLPOST) .IF "$(BASE)" != "" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL8BASE)"=="" SHL8BASE=$(BASE) .ENDIF @@ -657,7 +648,7 @@ SHL9TARGET!:=$(SHL9TARGET)$($(WINVERSIONNAMES)_MAJOR) SHL9DLLPRE*=$(DLLPRE) SHL9TARGETN=$(DLLDEST)/$(SHL9DLLPRE)$(SHL9TARGET)$(DLLPOST) .IF "$(BASE)" != "" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL9BASE)"=="" SHL9BASE=$(BASE) .ENDIF @@ -779,7 +770,7 @@ LIB8TARGETN=$(LIB8TARGET) LIB9TARGETN=$(LIB9TARGET) .ENDIF -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(COM)"!="GCC" LIB1ARCHIV= LIB2ARCHIV= @@ -1035,7 +1026,7 @@ ALL_JAVA_TARGETS= \ .IF "$(lintit)"=="" .IF "$(L10N_framework)"!="" ALLTAR: \ - "$(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/$(UPD)minor.mk" \ + "$(SOLARVERSION)/$(INPATH)/inc/$(UPD)minor.mk" \ $(SUBDIRS) \ $(DPRTARGET) \ $(DPZTARGET) \ @@ -1083,7 +1074,7 @@ ALLTAR: \ .ELSE # "$(L10N_framework)"!="" ALLTAR: \ - "$(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/$(UPD)minor.mk" \ + "$(SOLARVERSION)/$(INPATH)/inc/$(UPD)minor.mk" \ $(MAKEDEMODIR) $(MAKECOMPDIR) $(MAKEXLDIR) \ $(COMPVERMK) \ $(JAVAVERMK) \ @@ -1363,7 +1354,7 @@ $(UNIXTEXT) : $(UNIXTEXT:f) $(TOUCH) $@ .IF "$(LOCALIZATION_FOUND)"=="" -.IF "$(LOCALSDFFILE)"!="" +.IF "$(LOCALSDFFILE)"!="" && "$(LOCALSDFFILE)"=="$(LOCALIZESDF)" "$(LOCALIZESDF)" : $(SOLARCOMMONSDFDIR)/$(PRJNAME).zip @@-$(MKDIRHIER) $(@:d) @@-$(MKDIRHIER) $(COMMONMISC)/$(PRJNAME)_$(TARGET) @@ -1422,7 +1413,7 @@ $(SCP_PRODUCT_TYPE): .ENDIF # "$(PARFILES)"!="" -"$(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/minormkchanged.flg" : +"$(SOLARVERSION)/$(INPATH)/inc/minormkchanged.flg" : $(TOUCH) $@ .IF "$(COMPVERMK)"!="" @@ -1431,7 +1422,7 @@ $(SCP_PRODUCT_TYPE): COMPVERMK_PHONY:=.PHONY .ENDIF # "$(COMPATH:s!\!/!)"!="$(COMPATH_STORED)" COMPVTMP:=$(mktmp iii) -"$(COMPVERMK)" $(COMPVERMK_PHONY): $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/minormkchanged.flg +"$(COMPVERMK)" $(COMPVERMK_PHONY): $(SOLARVERSION)/$(INPATH)/inc/minormkchanged.flg .IF "$(CCNUMVER)"!="" @echo COMNAME:=$(COMNAME) > $(COMPVTMP) @echo COMID:=$(COMID) >> $(COMPVTMP) @@ -1459,7 +1450,7 @@ COMPVTMP:=$(mktmp iii) .IF "$(JAVALOCATION)"!="$(JAVA_HOME)" "$(JAVAVERMK)" .PHONY : .ELSE # "$(JAVALOCATION)"!="$(JAVA_HOME)" -"$(JAVAVERMK)" : $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/minormkchanged.flg +"$(JAVAVERMK)" : $(SOLARVERSION)/$(INPATH)/inc/minormkchanged.flg .ENDIF # "$(JAVALOCATION)"!="$(JAVA_HOME)" @-$(RM) $@ @echo JAVAVER:=$(JAVAVER) > $@ @@ -1756,7 +1747,7 @@ ALLTAR : forcedeps @$(TOUCH) $(TMP)/makedt.don killbin: -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" @$(IFEXIST) $(BIN)/$(SHL1TARGET).dll $(THEN) $(RM:s/+//) $(BIN)/$(SHL1TARGET).dll $(FI) @$(IFEXIST) $(BIN)/$(SHL2TARGET).dll $(THEN) $(RM:s/+//) $(BIN)/$(SHL2TARGET).dll $(FI) @$(IFEXIST) $(BIN)/$(SHL3TARGET).dll $(THEN) $(RM:s/+//) $(BIN)/$(SHL3TARGET).dll $(FI) @@ -1963,7 +1954,7 @@ $(MISC)/$(TARGET).dpz $(ZIPDEPPHONY) : $(ZIP1TARGETN) $(ZIP2TARGETN) $(ZIP3TARGE .ENDIF VERSIONTMP:=$(mktmp iii) -$(INCCOM)/%_version.h : $(SOLARVERSION)/$(INPATH)/inc$(UPDMINOREXT)/minormkchanged.flg +$(INCCOM)/%_version.h : $(SOLARVERSION)/$(INPATH)/inc/minormkchanged.flg @echo $(EMQ)#define _BUILD $(EMQ)"$(BUILD)$(EMQ)" > $(VERSIONTMP) @echo $(EMQ)#define _UPD $(EMQ)"$(UPD)$(EMQ)" >> $(VERSIONTMP) @echo $(EMQ)#define _LAST_MINOR $(EMQ)"$(LAST_MINOR)$(EMQ)" >> $(VERSIONTMP) diff --git a/solenv/inc/tg_app.mk b/solenv/inc/tg_app.mk index cefdf14db033..cd9d44424369 100644 --- a/solenv/inc/tg_app.mk +++ b/solenv/inc/tg_app.mk @@ -29,10 +29,6 @@ # instructions for linking # unroll begin -.IF "$(GUI)" == "OS2" && "$(TARGETTYPE)" == "GUI" -APP$(TNR)DEF = $(MISC)/$(APP$(TNR)TARGET).def -.ENDIF - .IF "$(APP$(TNR)LINKTYPE)" != "" #must be either STATIC or SHARED APP$(TNR)LINKTYPEFLAG=$(APPLINK$(APP$(TNR)LINKTYPE)) @@ -88,7 +84,7 @@ APP$(TNR)PRODUCTDEF+:=-DPRODUCT_NAME=\"$(APP$(TNR)PRODUCTNAME)\" .ENDIF # "$(APP$(TNR)PRODUCTNAME)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)"=="OS2" +.IF "$(GUI)"=="WNT" .IF "$(APP$(TNR)LIBS)"!="" $(MISC)/$(APP$(TNR)TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -103,16 +99,8 @@ $(APP$(TNR)TARGETN) : $(LINKINCTARGETS) # Allow for target specific LIBSALCPPRT override APP$(TNR)LIBSALCPPRT*=$(LIBSALCPPRT) -.IF "$(GUI)" == "OS2" -_APP$(TNR)IMP_ORD = $(APP$(TNR)STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(APP$(TNR)STDLIBS:^"$(LB)/") -APP$(TNR)IMP_ORD = $(foreach,i,$(_APP$(TNR)IMP_ORD) $(shell @-ls $i)) -.ELSE -APP$(TNR)IMP_ORD = -.ENDIF - $(APP$(TNR)TARGETN): $(APP$(TNR)OBJS) $(APP$(TNR)LIBS) \ $(APP$(TNR)RES) \ - $(APP$(TNR)IMP_ORD) \ $(APP$(TNR)ICON) $(APP$(TNR)DEPN) $(USE_APP$(TNR)DEF) @echo "Making: " $(@:f) .IF "$(GUI)"=="UNX" @@ -123,7 +111,7 @@ $(APP$(TNR)TARGETN): $(APP$(TNR)OBJS) $(APP$(TNR)LIBS) \ @-$(RM) $(MISC)/$(@:b).strip @echo $(STDSLO) $(APP$(TNR)OBJS:s/.obj/.o/) \ `cat /dev/null $(APP$(TNR)LIBS) | sed s\#$(ROUT)\#$(OUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(APP$(TNR)LINKER) $(APP$(TNR)LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(APP$(TNR)LINKER) $(APP$(TNR)LINKFLAGS) $(LINKFLAGSAPP) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) -o $@ \ $(APP$(TNR)LINKTYPEFLAG) $(APP$(TNR)STDLIBS) $(APP$(TNR)STDLIB) $(STDLIB$(TNR)) -filelist $(MISC)/$(@:b).list > $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd` \ @@ -176,7 +164,7 @@ $(APP$(TNR)TARGETN): $(APP$(TNR)OBJS) $(APP$(TNR)LIBS) \ @echo mingw .IF "$(APP$(TNR)LINKRES)" != "" || "$(APP$(TNR)RES)" != "" @cat $(APP$(TNR)LINKRES) $(subst,/res/,/res{$(subst,$(BIN), $(@:d))} $(APP$(TNR)RES)) > $(MISC)/$(@:b)_all.res - windres $(MISC)/$(@:b)_all.res $(APP$(TNR)RESO) + $(WINDRES) $(MISC)/$(@:b)_all.res $(APP$(TNR)RESO) .ENDIF @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSAPP) $(MINGWSSTDOBJ) -L$(PRJ)/$(INPATH)/lib $(SOLARLIB) $(STDSLO) \ $(APP$(TNR)BASEX) $(APP$(TNR)STACKN) -o $@ $(APP$(TNR)OBJS) \ @@ -247,66 +235,6 @@ $(APP$(TNR)TARGETN): $(APP$(TNR)OBJS) $(APP$(TNR)LIBS) \ .ENDIF # "$(GUI)" == "WNT" -.IF "$(GUI)" == "OS2" - @+-$(MKDIR) $(@:d:d) >& $(NULLDEV) -.IF "$(APP$(TNR)LINKRES)" != "" - @+-$(RM) $(MISC)/$(APP$(TNR)LINKRES:b).rc >& $(NULLDEV) -.IF "$(APP$(TNR)ICON)" != "" - @-+$(WRAPCMD) echo 1 ICON $(EMQ)"$(APP$(TNR)ICON)$(EMQ)" | $(SED) 'sX\\X\\\\Xg' >> $(MISC)/$(APP$(TNR)LINKRES:b).rc -.ENDIF # "$(APP$(TNR)ICON)" != "" -.IF "$(APP$(TNR)VERINFO)" != "" - @-+echo $(EMQ)#define VERVARIANT $(BUILD) >> $(MISC)/$(APP$(TNR)LINKRES:b).rc - @-+echo $(EMQ)#include $(EMQ)"$(APP$(TNR)VERINFO)$(EMQ)" >> $(MISC)/$(APP$(TNR)LINKRES:b).rc -.ENDIF # "$(APP$(TNR)VERINFO)" != "" - $(COMMAND_ECHO)$(RC) -r -DOS2 $(APP$(TNR)PRODUCTDEF) -I$(SOLARRESDIR) $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(APP$(TNR)LINKRES:b).rc -.ENDIF # "$(APP$(TNR)LINKRES)" != "" - -.IF "$(TARGETTYPE)" == "GUI" - @echo NAME $(APP$(TNR)TARGET) WINDOWAPI > $(MISC)/$(APP$(TNR)TARGET).def -.ENDIF - - .IF "$(VERBOSE)" == "TRUE" - @+echo $(APP$(TNR)LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP$(TNR)BASEX) \ - $(APP$(TNR)STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP$(TNR)LINKRES) \ - $(APP$(TNR)RES) \ - $(APP$(TNR)DEF) \ - $(APP$(TNR)OBJS) \ - $(APP$(TNR)LIBS) \ - $(APP$(TNR)STDLIBS:^"-l") \ - $(APP$(TNR)STDLIB:^"-l") $(STDLIB$(TNR):^"-l") - .ENDIF - $(COMMAND_ECHO)$(APP$(TNR)LINKER) -v \ - $(APP$(TNR)LINKFLAGS) \ - $(LINKFLAGSAPP) $(APP$(TNR)BASEX) \ - $(APP$(TNR)STACKN) \ - -o $@ \ - -Zmap -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(STDOBJ) \ - $(APP$(TNR)LINKRES) \ - $(APP$(TNR)RES) \ - $(APP$(TNR)DEF) \ - $(APP$(TNR)OBJS) \ - $(APP$(TNR)LIBS) \ - $(APP$(TNR)STDLIBS:^"-l") \ - $(APP$(TNR)STDLIB:^"-l") $(STDLIB$(TNR):^"-l") - - -.IF "$(APP$(TNR)TARGET)" == "loader" - $(COMMAND_ECHO)+$(PERL) loader.pl $@ - $(COMMAND_ECHO)+$(TYPE) $(@) $(@:d)unloader.exe > $(@:d)_new.exe - $(COMMAND_ECHO)+$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $(@:d)_new.exe $(@:d)loader.exe -.ENDIF # "$(TARGET)" == "setup" - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(APP$(TNR)TARGETN)"!="" diff --git a/solenv/inc/tg_compv.mk b/solenv/inc/tg_compv.mk index c68ae5af430e..a9fc9202ea2c 100644 --- a/solenv/inc/tg_compv.mk +++ b/solenv/inc/tg_compv.mk @@ -68,9 +68,11 @@ CCVER:=$(shell @-$(CXX) $(CFLAGSVERSION_CMD)) CCNUMVER:=$(shell @-$(CXX) $(CFLAGSNUMVERSION_CMD)) .IF "$(COM)"=="MSC" -.IF "$(CCNUMVER)">="001200000000" COMID=MSC +.IF "$(CPU)"=="I" COMNAME=msci +.ELSE +COMNAME=mscx .ENDIF .ENDIF diff --git a/solenv/inc/tg_config.mk b/solenv/inc/tg_config.mk index cfe2fe147ebe..bd3e7bbd9413 100644 --- a/solenv/inc/tg_config.mk +++ b/solenv/inc/tg_config.mk @@ -32,10 +32,6 @@ XCSROOTURL!:=$(ABSXCSROOT) XCSROOTURL!:=file:///$(subst,\,/ $(XCSROOTURL)) .ENDIF SYSXSLDIR*:=$(XSLDIR)/ -.IF $(GUI)==OS2 -XCSROOTURL!:=$(subst,\,/ $(XCSROOTURL)) -SYSXSLDIR!:=$(subst,\,/ $(SYSXSLDIR))/ -.ENDIF # # --- XCS --- diff --git a/solenv/inc/tg_def.mk b/solenv/inc/tg_def.mk index 0bbd1f6b1ab1..763ad26e5021 100644 --- a/solenv/inc/tg_def.mk +++ b/solenv/inc/tg_def.mk @@ -55,7 +55,7 @@ $(DEF$(TNR)EXPORTFILE) : $(SHL$(TNR)VERSIONMAP) $(COMMAND_ECHO)-$(GREP) "\*\|?" $@ > $@.symbols-regexp # Shared libraries will be build out of the *.obj files specified in SHL?OBJS and SHL?LIBS # Extract RTTI symbols from all the objects that will be used to build a shared library - $(COMMAND_ECHO)nm -gP $(SHL$(TNR)OBJS) \ + $(COMMAND_ECHO)$(NM) -gP $(SHL$(TNR)OBJS) \ `$(TYPE) /dev/null $(foreach,j,$(SHL$(TNR)LIBS) $j) | $(SED) s\#$(ROUT)\#$(PRJ)$/$(ROUT)\#g` \ | $(SOLARENV)/bin/addsym-mingw.sh $@.symbols-regexp $@.symbols-regexp.tmp >> $@.exported-symbols # overwrite the map file generate into the local output tree with the generated @@ -65,12 +65,6 @@ $(DEF$(TNR)EXPORTFILE) : $(SHL$(TNR)VERSIONMAP) .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" -DEF$(TNR)EXPORTFILE=$(MISC)/$(SHL$(TNR)VERSIONMAP:b)_$(SHL$(TNR)TARGET).dxp -$(DEF$(TNR)EXPORTFILE) : $(SHL$(TNR)VERSIONMAP) - $(TYPE) $< | $(AWK) -f $(SOLARENV)/bin/getcsym.awk > $@ -.ENDIF # "$(GUI)"=="OS2" - .ENDIF # "$(DEF$(TNR)EXPORTFILE)"=="" .ENDIF # "$(SHL$(TNR)VERSIONMAP)"!="" @@ -192,112 +186,6 @@ $(DEF$(TNR)TARGETN) .PHONY : @$(RENAME) $@.tmpfile $@ .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" - -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL$(TNR)TARGET8=$(shell @fix_shl $(SHL$(TNR)TARGETN:f)) - -DEF$(TNR)FILTER=$(SOLARENV)/inc/dummy.flt -DEF$(TNR)NAMELIST=$(foreach,i,$(DEFLIB$(TNR)NAME) $(SLB)/$(i).lib) - -.IF "$(link_always)"=="" -$(DEF$(TNR)TARGETN) : \ - $(DEF$(TNR)DEPN) \ - $(DEF$(TNR)EXPORTFILE) -.ELSE # "$(link_always)"=="" -$(DEF$(TNR)TARGETN) .PHONY : -.ENDIF # "$(link_always)"=="" - @+-$(RM) $@.tmpfile - @echo "Making: module definition file" $(@:f) - @echo LIBRARY $(SHL$(TNR)TARGET8) INITINSTANCE TERMINSTANCE >$@.tmpfile - @echo DATA MULTIPLE >>$@.tmpfile - @echo DESCRIPTION 'StarView 3.00 $(DEF$(TNR)DES) $(UPD) $(UPDMINOR)' >>$@.tmpfile - @echo EXPORTS >>$@.tmpfile -.IF "$(VERSIONOBJ)"!="" -# getversioninfo fuer alle!! - @echo _GetVersionInfo >$@.tmp_ord -.ENDIF - -.IF "$(DEFLIB$(TNR)NAME)"!="" - @+echo $(SLB)/$(DEFLIB$(TNR)NAME).lib - @+emxexpr $(DEF$(TNR)NAMELIST) | fix_exp_file >> $@.tmp_ord -.ENDIF # "$(DEFLIB$(TNR)NAME)"!="" - -.IF "$(DEF$(TNR)EXPORT1)"!="" - @echo $(DEF$(TNR)EXPORT1) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT2)"!="" - @echo $(DEF$(TNR)EXPORT2) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT3)"!="" - @echo $(DEF$(TNR)EXPORT3) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT4)"!="" - @echo $(DEF$(TNR)EXPORT4) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT5)"!="" - @echo $(DEF$(TNR)EXPORT5) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT6)"!="" - @echo $(DEF$(TNR)EXPORT6) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT7)"!="" - @echo $(DEF$(TNR)EXPORT7) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT8)"!="" - @echo $(DEF$(TNR)EXPORT8) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT9)"!="" - @echo $(DEF$(TNR)EXPORT9) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT10)"!="" - @echo $(DEF$(TNR)EXPORT10) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT11)"!="" - @echo $(DEF$(TNR)EXPORT11) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT12)"!="" - @echo $(DEF$(TNR)EXPORT12) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT13)"!="" - @echo $(DEF$(TNR)EXPORT13) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT14)"!="" - @echo $(DEF$(TNR)EXPORT14) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT15)"!="" - @echo $(DEF$(TNR)EXPORT15) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT16)"!="" - @echo $(DEF$(TNR)EXPORT16) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT17)"!="" - @echo $(DEF$(TNR)EXPORT17) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT18)"!="" - @echo $(DEF$(TNR)EXPORT18) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT19)"!="" - @echo $(DEF$(TNR)EXPORT19) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORT20)"!="" - @echo $(DEF$(TNR)EXPORT20) >>$@.tmpfile -.ENDIF -.IF "$(DEF$(TNR)EXPORTFILE)"!="" - @fix_def_file < $(DEF$(TNR)EXPORTFILE) >> $@.tmp_ord -.ENDIF - @sort < $@.tmp_ord | uniq > $@.exptmpfile - @fix_def_ord < $@.exptmpfile >> $@.tmpfile - @+-$(RM) $@ - $(COMMAND_ECHO)+$(RENAME) $@.tmpfile $@ - @+-$(RM) $@.tmp_ord - @+-$(RM) $@.exptmpfile - $(COMMAND_ECHO)+$(IMPLIB) $(IMPLIBFLAGS) $(SHL$(TNR)IMPLIBN:s/.lib/.a/) $@ - $(COMMAND_ECHO)+emxomf -o $(SHL$(TNR)IMPLIBN) $(SHL$(TNR)IMPLIBN:s/.lib/.a/) - -.ENDIF # "$(GUI)"=="OS2" - .IF "$(GUI)"=="UNX" $(DEF$(TNR)TARGETN): \ $(DEF$(TNR)DEPN) \ diff --git a/solenv/inc/tg_ext.mk b/solenv/inc/tg_ext.mk index 63c0c995f42a..a4217779094b 100644 --- a/solenv/inc/tg_ext.mk +++ b/solenv/inc/tg_ext.mk @@ -29,11 +29,7 @@ # setup INCLUDE variable for use by VC++ .IF "$(GUI)$(COM)"=="WNTMSC" -.IF "$(EXT_USE_STLPORT)"=="" -INCLUDE!:=. $(subst,/stl, $(SOLARINC)) -.ELSE # "$(EXT_USE_STLPORT)"=="" INCLUDE!:=. $(SOLARINC) -.ENDIF # "$(EXT_USE_STLPORT)"=="" INCLUDE!:=$(INCLUDE:s/ -I/;/) .EXPORT : INCLUDE .ENDIF # "$(GUI)$(COM)"=="WNTMSC" @@ -43,7 +39,7 @@ LDFLAGS!:=$(EXTRA_LINKFLAGS) $(LDFLAGS) .EXPORT : LDFLAGS .ENDIF -.IF "$(GUI)"=="WNT" +.IF "$(GUI_FOR_BUILD)"=="WNT" PATH!:=.:$(SOLARBINDIR:^"/cygdrive/":s/://):$(PATH) .ELSE # "$(GUI)"=="WNT" PATH!:=.$(PATH_SEPERATOR)$(SOLARBINDIR)$(PATH_SEPERATOR)$(PATH) @@ -110,9 +106,9 @@ clean: $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar.bz2 @-$(RM) $@ .IF "$(GUI)"=="UNX" - @noop $(assign UNPACKCMD := sh -c "bzip2 -cd $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.bz2 $(TARFILE_FILTER) | $(GNUTAR) -x$(tar_verbose_switch)f - ") + @noop $(assign UNPACKCMD := sh -c "bzip2 -cd $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.bz2 $(TARFILE_FILTER) | $(GNUTAR) --no-same-owner -x$(tar_verbose_switch)f - ") .ELSE # "$(GUI)"=="UNX" - @noop $(assign UNPACKCMD := bzip2 -cd $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.bz2 $(TARFILE_FILTER) | $(GNUTAR) -x$(tar_verbose_switch)f - ) + @noop $(assign UNPACKCMD := bzip2 -cd $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.bz2 $(TARFILE_FILTER) | $(GNUTAR) --no-same-owner -x$(tar_verbose_switch)f - ) .ENDIF # "$(GUI)"=="UNX" @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) @$(RENAME) $@.$(INPATH) $@ @@ -120,28 +116,28 @@ $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar.bz2 $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar.Z @-$(RM) $@ .IF "$(GUI)"=="UNX" - @noop $(assign UNPACKCMD := sh -c "uncompress -c $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.Z | $(GNUTAR) -x$(tar_verbose_switch)f - ") + @noop $(assign UNPACKCMD := sh -c "uncompress -c $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.Z | $(GNUTAR) --no-same-owner -x$(tar_verbose_switch)f - ") .ELSE # "$(GUI)"=="UNX" - @noop $(assign UNPACKCMD := uncompress -c $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.Z | $(GNUTAR) -x$(tar_verbose_switch)f - ) + @noop $(assign UNPACKCMD := uncompress -c $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.Z | $(GNUTAR) --no-same-owner -x$(tar_verbose_switch)f - ) .ENDIF # "$(GUI)"=="UNX" @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) @$(RENAME) $@.$(INPATH) $@ $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar.gz @-$(RM) $@ - @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.gz) $(TARFILE_FILTER) | $(GNUTAR) -x$(tar_verbose_switch)f - ) + @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar.gz) $(TARFILE_FILTER) | $(GNUTAR) --no-same-owner -x$(tar_verbose_switch)f - ) @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) @$(RENAME) $@.$(INPATH) $@ $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tgz @-$(RM) $@ - @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tgz) $(TARFILE_FILTER) | $(GNUTAR) -x$(tar_verbose_switch)f - ) + @noop $(assign UNPACKCMD := gzip -d -c $(subst,\,/ $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tgz) $(TARFILE_FILTER) | $(GNUTAR) --no-same-owner -x$(tar_verbose_switch)f - ) @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) @$(RENAME) $@.$(INPATH) $@ $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.tar @-$(RM) $@ - @noop $(assign UNPACKCMD := $(GNUTAR) -x$(tar_verbose_switch)f $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar) + @noop $(assign UNPACKCMD := $(GNUTAR) --no-same-owner -x$(tar_verbose_switch)f $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).tar) @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) @$(RENAME) $@.$(INPATH) $@ @@ -151,6 +147,12 @@ $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.zip @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) @$(RENAME) $@.$(INPATH) $@ +$(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.oxt + @-$(RM) $@ + @noop $(assign UNPACKCMD := unzip $(unzip_quiet_switch) -o $(TARFILE_LOCATION)/$(TARFILE_MD5)-$(TARFILE_NAME).oxt) + @$(TYPE) $(mktmp $(UNPACKCMD)) > $@.$(INPATH) + @$(RENAME) $@.$(INPATH) $@ + $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.jar @-$(RM) $@ .IF "$(OS)"=="SOLARIS" @@ -163,13 +165,14 @@ $(MISC)/%.unpack : $(TARFILE_LOCATION2)/%.jar #do unpack $(PACKAGE_DIR)/$(UNTAR_FLAG_FILE) : $(PRJ)/$(ROUT)/misc/$(TARFILE_MD5)-$(TARFILE_NAME).unpack $(PATCH_FILE_DEP) - $(IFEXIST) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR) $(THEN) $(RENAME:s/+//) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)_removeme $(FI) + $(IFEXIST) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR).exists $(THEN) $(RENAME:s/+//) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)_removeme $(FI) $(COMMAND_ECHO)-rm -rf $(PACKAGE_DIR)/$(TARFILE_ROOTDIR)_removeme @-$(MKDIRHIER) $(PACKAGE_DIR)$(fake_root_dir) + @$(TOUCH) $(PACKAGE_DIR)/$(TARFILE_ROOTDIR).exists # $(IFEXIST) only works with files $(COMMAND_ECHO)cd $(PACKAGE_DIR)$(fake_root_dir) && ( $(shell @$(TYPE) $(PRJ)/$(ROUT)/misc/$(TARFILE_MD5)-$(TARFILE_NAME).unpack)) && $(TOUCH) $(UNTAR_FLAG_FILE) @echo make writeable... - @cd $(PACKAGE_DIR) && chmod -R +rw $(TARFILE_ROOTDIR) && $(TOUCH) $(UNTAR_FLAG_FILE) - @cd $(PACKAGE_DIR) && find $(TARFILE_ROOTDIR) -type d -exec chmod a+x {{}} \; + @-cd $(PACKAGE_DIR) && chmod -R +rw $(TARFILE_ROOTDIR) && $(TOUCH) $(UNTAR_FLAG_FILE) + @-cd $(PACKAGE_DIR) && find $(TARFILE_ROOTDIR) -type d -print0 | xargs -0 chmod a+x #add new files to patch $(PACKAGE_DIR)/$(ADD_FILES_FLAG_FILE) : $(PACKAGE_DIR)/$(UNTAR_FLAG_FILE) $(T_ADDITIONAL_FILES:+".dummy") @@ -186,13 +189,7 @@ $(PACKAGE_DIR)/$(PATCH_FLAG_FILE) : $(PACKAGE_DIR)/$(ADD_FILES_FLAG_FILE) $(COMMAND_ECHO)$(TOUCH) $@ .ELSE # "$(PATCH_FILES)"=="none" || "$(PATCH_FILES)"=="" .IF "$(GUI)"=="WNT" -# hack to make 4nt version 4,01 work and still get propper -# errorcodes for versions < 3,00 -#.IF "$(my4ver:s/.//:s/,//)" >= "300" -# $(COMMAND_ECHO)cd $(PACKAGE_DIR) && ( $(TYPE:s/+//) $(BACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | tr -d "\015" | patch $(PATCHFLAGS) -p2 ) && $(TOUCH) $(PATCH_FLAG_FILE) -#.ELSE # "$(my4ver:s/.//:s/,//)" >= "300" $(COMMAND_ECHO)cd $(PACKAGE_DIR) && $(TYPE:s/+//) $(BACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | tr -d "\015" | patch $(PATCHFLAGS) -p2 && $(TOUCH) $(PATCH_FLAG_FILE) -#.ENDIF # "$(my4ver:s/.//:s/,//)" >= "300" .ELSE # "$(GUI)"=="WNT" .IF "$(BSCLIENT)"=="TRUE" $(COMMAND_ECHO)cd $(PACKAGE_DIR) && $(TYPE) $(BACK_PATH)$(PATH_IN_MODULE)/{$(PATCH_FILES)} | $(GNUPATCH) -f $(PATCHFLAGS) -p2 && $(TOUCH) $(PATCH_FLAG_FILE) @@ -202,7 +199,7 @@ $(PACKAGE_DIR)/$(PATCH_FLAG_FILE) : $(PACKAGE_DIR)/$(ADD_FILES_FLAG_FILE) .ENDIF # "$(GUI)"=="WNT" .ENDIF # "$(PATCH_FILES)"=="none" || "$(PATCH_FILES)"=="" .IF "$(T_ADDITIONAL_FILES)"!="" -.IF "$(GUI)"=="WNT" +.IF "$(GUI_FOR_BUILD)"=="WNT" # Native W32 tools generate only filedates with even seconds, cygwin also with odd seconds $(DELAY) 2 .ENDIF # "$(GUI)"=="WNT" @@ -230,11 +227,7 @@ $(PACKAGE_DIR)/$(CONFIGURE_FLAG_FILE) : $(PACKAGE_DIR)/$(PATCH_FLAG_FILE) $(COMMAND_ECHO)$(TOUCH) $(PACKAGE_DIR)/$(CONFIGURE_FLAG_FILE) .ELSE # "$(CONFIGURE_ACTION)"=="none" || "$(CONFIGURE_ACTION)"=="" $(COMMAND_ECHO)-$(MKDIR) $(P_CONFIGURE_DIR) -.IF "$(OS)"=="OS2" - $(COMMAND_ECHO)cd $(P_CONFIGURE_DIR) && sh -c "$(CONFIGURE_ACTION:s!\!/!) $(CONFIGURE_FLAGS:s!\!/!)" && $(TOUCH) $(CONFIGURE_FLAG_FILE) -.ELSE $(COMMAND_ECHO)cd $(P_CONFIGURE_DIR) && $(CONFIGURE_ACTION) $(CONFIGURE_FLAGS) && $(TOUCH) $(CONFIGURE_FLAG_FILE) -.ENDIF $(COMMAND_ECHO)mv $(P_CONFIGURE_DIR)/$(CONFIGURE_FLAG_FILE) $(PACKAGE_DIR)/$(CONFIGURE_FLAG_FILE) .ENDIF # "$(CONFIGURE_ACTION)"=="none" || "$(CONFIGURE_ACTION)"=="" diff --git a/solenv/inc/tg_jar.mk b/solenv/inc/tg_jar.mk index fa6ae24110b7..df39ba65229f 100644 --- a/solenv/inc/tg_jar.mk +++ b/solenv/inc/tg_jar.mk @@ -26,7 +26,7 @@ #************************************************************************* -.IF "$(VERBOSE)"=="FALSE" +.IF "$(VERBOSE)"!="TRUE" ZIP_VERBOSITY=-q .ENDIF @@ -36,11 +36,8 @@ ZIP_VERBOSITY=-q JARCOMPRESS_FLAG=0 .ENDIF -.IF "$(NEW_JAR_PACK)"!="" $(JARTARGETN) : $(JARMANIFEST) $(JAVACLASSFILES) $(JAVATARGET) -.ENDIF # "$(NEW_JAR_PACK)"!="" -.IF "$(NEW_JAR_PACK)"!="" .IF "$(JARMANIFEST)"!="" .IF "$(CUSTOMMANIFESTFILE)"!="" @@ -65,7 +62,6 @@ $(JARMANIFEST) .PHONY : $(CUSTOMMANIFESTFILEDEP) $(COMMAND_ECHO)$(TYPE) $(MISC)/$(TARGET)_$(CUSTOMMANIFESTFILE:f) >> $@ .ENDIF # "$(CUSTOMMANIFESTFILE)"!="" .ENDIF # "$(JARMANIFEST)"!="" -.ENDIF # "$(NEW_JAR_PACK)"!="" .IF "$(JARCLASSEXCLUDES)" == "" ZIPJAR_EXCLUDE= @@ -78,14 +74,8 @@ ZIPJAR_EXCLUDE=$(foreach,i,$(JARCLASSEXCLUDES) -x "$i") # # build jar # -.IF "$(NOJARDEP)"!="" || "$(NEW_JAR_PACK)"!="" $(JARTARGETN) .PHONY : # $(JARMANIFEST) -.ELSE # "$(NOJARDEP)"!="" || "$(NEW_JAR_PACK)"!="" -.DIRCACHE = no -$(JARTARGETN) : -#$(JARTARGETN) .SETDIR=$(CLASSDIR) .SEQUENTIAL : $(JARTARGETDEP) $(shell @-cat -s $(MISC)/$(JARTARGETN).dep ) -.ENDIF # "$(NOJARDEP)"!="" || "$(NEW_JAR_PACK)"!="" .IF "$(OS)$(CPU)"=="SOLARISS" @-find . -type d -user $(USER) ! -perm -5 -print | xargs test "$$1" != "" && chmod +r $$1 .ENDIF diff --git a/solenv/inc/tg_java.mk b/solenv/inc/tg_java.mk index c85d2d9bdfd2..054dcc5fbaff 100644 --- a/solenv/inc/tg_java.mk +++ b/solenv/inc/tg_java.mk @@ -51,23 +51,23 @@ $(CLASSDIR)/%.class .NOINFER .IGNORE : %.java $(JAVATARGET) : $(JAVAFILES) $(JAVACLASSFILES) .IF "$(JAVARESPONSE)"!="" - $(JAVAC) @<< + $(COMMAND_ECHO)$(JAVAC) @<< $(JAVACPS) $(CLASSPATH) -d $(CLASSDIR) $(JAVAFLAGS) $(JAVAFILES) <<keep .ELSE # "$(JAVARESPONSE)"!="" .IF "$(use_jdep)"!="" - $(JAVAC) -depend $(JAVACPS) $(CLASSPATH) -d $(CLASSDIR) $(JAVAFLAGS) $(JAVAFILES) + $(COMMAND_ECHO)$(JAVAC) -depend $(JAVACPS) $(CLASSPATH) -d $(CLASSDIR) $(JAVAFLAGS) $(JAVAFILES) .ELSE # "$(use_jdep)"!="" .IF "$(javauno)"!="" .IF "$(JAVAFILES:d)"=="" - $(JAVAC) $(JAVACPS) $(CLASSPATH) -d $(CLASSDIR) $(JAVAFLAGS) $(JAVAFILES) + $(COMMAND_ECHO)$(JAVAC) $(JAVACPS) $(CLASSPATH) -d $(CLASSDIR) $(JAVAFLAGS) $(JAVAFILES) .ELSE # "$(JAVAFILES:d)"=="" @@$(TOUCH) $(INPATH)_$(VCSID)_a_dummy.java - $(JAVAC) $(JAVACPS) $(CLASSPATH) -d $(CLASSDIR) $(JAVAFLAGS) ./*.java $(uniq $(JAVAFILES:d:+"*.java")) + $(COMMAND_ECHO)$(JAVAC) $(JAVACPS) $(CLASSPATH) -d $(CLASSDIR) $(JAVAFLAGS) ./*.java $(uniq $(JAVAFILES:d:+"*.java")) @@-$(RM) $(INPATH)_$(VCSID)_a_dummy.java .ENDIF # "$(JAVAFILES:d)"=="" .ELSE # "$(javauno)"!="" - $(JAVAC) $(JAVACPS) "$(CLASSPATH)" -d $(CLASSDIR) $(JAVAFLAGS) @$(mktmp $(strip $(JAVAFILES))) + $(COMMAND_ECHO)$(JAVAC) $(JAVACPS) "$(CLASSPATH)" -d $(CLASSDIR) $(JAVAFLAGS) @$(mktmp $(strip $(JAVAFILES))) .ENDIF # "$(javauno)"!="" .ENDIF # "$(use_jdep)"!="" .ENDIF # "$(JAVARESPONSE)"!="" diff --git a/solenv/inc/tg_lib.mk b/solenv/inc/tg_lib.mk index 08909156b729..a93d6ad5602c 100644 --- a/solenv/inc/tg_lib.mk +++ b/solenv/inc/tg_lib.mk @@ -37,12 +37,6 @@ $(LIB$(TNR)ARCHIV) : $(LIB$(TNR)TARGET) @@-$(RM) $@ .IF "$(GUI)"=="UNX" @-$(RM) $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd -.IF "$(OS)" =="HPUX_FRAG_HR" - @-$(RM) $(MISC)/$(LIB$(TNR)ARCHIV:b)_closetempl.cmd - @echo $(LINK) +inst_close -c `cat $(LIB$(TNR)TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB$(TNR)ARCHIV:b)_closetempl.cmd - @cat $(MISC)/$(LIB$(TNR)ARCHIV:b)_closetempl.cmd - @+source $(MISC)/$(LIB$(TNR)ARCHIV:b)_closetempl.cmd -.ENDIF @echo $(LIBMGR) $(LIB$(TNR)FLAGS) $(LIBFLAGS) $(LIB$(TNR)ARCHIV) `cat $(LIB$(TNR)TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd .IF "$(OS)$(COM)"=="NETBSDGCC" @echo ranlib $(LIB$(TNR)ARCHIV) >> $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd @@ -58,7 +52,7 @@ $(LIB$(TNR)ARCHIV) : $(LIB$(TNR)TARGET) .IF "$(GUI)$(COM)"=="WNTGCC" @+-$(RM) $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd @+echo $(LIBMGR) $(LIB$(TNR)FLAGS) $(LIBFLAGS) $(LIB$(TNR)ARCHIV) `cat $(LIB$(TNR)TARGET) | sed s#'^'$(ROUT)#$(PRJ)/$(ROUT)#g` > $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd - @+echo ranlib $(LIB$(TNR)ARCHIV) >> $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd + @+echo $(RANLIB) $(LIB$(TNR)ARCHIV) >> $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd .IF "$(VERBOSE)" == "TRUE" @cat $(MISC)/$(LIB$(TNR)ARCHIV:b).cmd .ENDIF @@ -91,17 +85,6 @@ $(LIB$(TNR)TARGET) : $(LIB$(TNR)FILES) \ @nm `cat $(LIB$(TNR)TARGET) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g` > $(@:d)$(@:b).dump .ENDIF -.ELIF "$(GUI)"=="OS2" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(LIB$(TNR)FILES) $(LIB$(TNR)OBJFILES) - @+-$(RM) $(@:s/.lib/.lin/) -.IF "$(LIB$(TNR)OBJFILES)"!="" - @+$(TYPE) $(mktmp $(LIB$(TNR)OBJFILES)) > $(null,$(LIB$(TNR)OBJFILES) $(NULLDEV) $(@:s/.lib/.lin/)) -.ENDIF # "$(LIB$(TNR)OBJFILES)"!="" -.IF "$(LIB$(TNR)FILES)"!="" - @-$(TYPE) $(foreach,i,$(LIB$(TNR)FILES) $(i:s/.lib/.lin/)) >> $(@:s/.lib/.lin/) -.ENDIF # "$(LIB$(TNR)FILES)"!="" - @+$(ECHONL) - .ELSE # "$(GUI)"=="UNX" .IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" diff --git a/solenv/inc/tg_merge.mk b/solenv/inc/tg_merge.mk index a40d48a81c66..19f44cb828af 100644 --- a/solenv/inc/tg_merge.mk +++ b/solenv/inc/tg_merge.mk @@ -31,36 +31,27 @@ MKFILENAME:=tg_merge.mk .IF "$(WITH_LANG)"!="" .IF "$(ULFFILES)"!="" -$(foreach,i,$(ULFFILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) -.ENDIF # "$(ULFFILES)"!="" +$(foreach,i,$(ULFFILES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) +.ENDIF # *.xrb merge .IF "$(XMLPROPERTIES)"!="" -$(foreach,i,$(XMLPROPERTIES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) -.ENDIF # "$(ULFFILES)"!="" +$(foreach,i,$(XMLPROPERTIES) $(COMMONMISC)/$(TARGET)/$i) : $$(@:f) $(LOCALIZESDF) +.ENDIF # *.xrm merge .IF "$(READMEFILES)"!="" -$(foreach,i,$(READMEFILES) $(COMMONMISC)/$(TARGET)/$(i:b).xrm) : $$(@:f) $(LOCALIZESDF) -.ENDIF # "$(ULFFILES)"!="" +$(foreach,i,$(READMEFILES) $(COMMONMISC)/$(TARGET)/$(i:b).xrm) : $$(@:f) $(LOCALIZESDF) +.ENDIF -# *.xrm merge -#.IF "$(APOCHELPFILES)"!="" -#$(foreach,i,$(APOCHELPFILES) $(COMMONMISC)/$(MYPATH)/$(i:b).xrm) : $$(@:f) $(LOCALIZESDF) -#.ENDIF # "$(ULFFILES)"!="" # *.xcu merge .IF "$(LOCALIZEDFILES)"!="" $(foreach,i,$(LOCALIZEDFILES) $(PROCESSOUT)/merge/{$(subst,.,/ $(PACKAGE))}/$(i:b).xcu) : $$(@:f) $(LOCALIZESDF) -.ENDIF # "$(ULFFILES)"!="" -.ENDIF # "$(WITH_LANG)"!="" +.ENDIF +.ENDIF # "$(WITH_LANG)"!="" # dependencies from *.ulf to par-files .IF "$(ULFPARFILES)"!="" $(ULFPARFILES) : $(COMMONMISC)/$(TARGET)/$$(@:b).$(LANGFILEEXT) .ENDIF # "$(ULFPARFILES)"!="" -# *.xrm merge -#.IF "$(READMEFILES)"!="" -#$(uniq $(foreach,i,$(READMEFILES) $(COMMONMISC)/$(TARGET)/$(i:b).xrm)) : $$(@:f) $(LOCALIZESDF) -#.ENDIF # "$(ULFFILES)"!="" - diff --git a/solenv/inc/tg_obj.mk b/solenv/inc/tg_obj.mk index 3a597c2409b3..73fae59d6762 100644 --- a/solenv/inc/tg_obj.mk +++ b/solenv/inc/tg_obj.mk @@ -30,12 +30,6 @@ MKFILENAME:=TG_OBJ.MK .IF "$(OBJTARGET)"!="" $(OBJTARGET): $(OBJFILES) $(IDLOBJFILES) @echo "Making: " $(@:f) -.IF "$(GUI)"=="OS2" -.IF "$(LIBTARGET)"!="NO" - @-$(TYPE) $(mktmp $(&:+"\n")) > $(@:s/.lib/.lin/) -.ENDIF # "$(LIBTARGET)"!="NO" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(&) -.ENDIF # "$(GUI)"=="OS2" .IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" @@ -62,12 +56,6 @@ $(OBJTARGET): $(OBJFILES) $(IDLOBJFILES) .IF "$($(SECOND_BUILD)OBJTARGET)"!="" $($(SECOND_BUILD)OBJTARGET): $(REAL_$(SECOND_BUILD)_OBJFILES) @echo "Making: " $(@:f) -.IF "$(GUI)"=="OS2" -.IF "$(LIBTARGET)"!="NO" - @-$(TYPE) $(mktmp $(&:+"\n")) > $(@:s/.lib/.lin/) -.ENDIF # "$(LIBTARGET)"!="NO" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(&) -.ENDIF # "$(GUI)"=="OS2" .IF "$(GUI)"=="WNT" .IF "$(COM)"=="GCC" @@ -85,10 +73,3 @@ $($(SECOND_BUILD)OBJTARGET): $(REAL_$(SECOND_BUILD)_OBJFILES) .ENDIF # "$(GUI)"=="UNX" .ENDIF # "$($(SECOND_BUILD)OBJTARGET)"!="" .ENDIF # "$(SECOND_BUILD)"!="" - -.IF "$(GUI)"=="OS2" -.IF "$(LIBTARGET)"!="NO" - @-$(TYPE) $(mktmp $(&:+"\n")) > $(@:s/.lib/.lin/) -.ENDIF # "$(LIBTARGET)"!="NO" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(&) -.ENDIF # "$(GUI)"=="OS2" diff --git a/solenv/inc/tg_res.mk b/solenv/inc/tg_res.mk index cad40533e7b8..2a99f61216a1 100644 --- a/solenv/inc/tg_res.mk +++ b/solenv/inc/tg_res.mk @@ -30,14 +30,13 @@ $(RCTARGET): $(RCFILES) \ $(RCDEPN) @echo "Making: " $(@:f) -.IF "$(CCNUMVER)" > "001300000000" +.IF "$(COM)"=="MSC" .IF "$(MFC_INCLUDE)"!="" - $(COMMAND_ECHO)$(RC) $(INCLUDE) -I$(SOLARRESDIR) $(foreach,i,$(ATL_INCLUDE) -I$(i)) -I$(MFC_INCLUDE) $(RCLANGFLAGS_$(@:d:d:b)) $(RCFLAGS) + $(COMMAND_ECHO)$(RC) $(INCLUDE) -I$(SOLARRESDIR) $(foreach,i,$(ATL_INCLUDE) -I$(i)) -I$(MFC_INCLUDE) $(RCLANGFLAGS_$(@:d:d:b)) $(RCFLAGSOUTRES)$@ $(RCFLAGS) .ELSE - $(COMMAND_ECHO)$(RC) $(INCLUDE) -I$(SOLARRESDIR) $(foreach,i,$(ATL_INCLUDE) -I$(i)) $(RCLANGFLAGS_$(@:d:d:b)) $(RCFLAGS) + $(COMMAND_ECHO)$(RC) $(INCLUDE) -I$(SOLARRESDIR) $(foreach,i,$(ATL_INCLUDE) -I$(i)) $(RCLANGFLAGS_$(@:d:d:b)) $(RCFLAGSOUTRES)$@ $(RCFLAGS) .ENDIF .ELSE - $(COMMAND_ECHO)$(RC) $(INCLUDE) -I$(SOLARRESDIR) $(RCLANGFLAGS_$(@:d:d:b)) $(RCFLAGS) + $(COMMAND_ECHO)$(RC) $(INCLUDE) -I$(SOLARRESDIR) $(RCLANGFLAGS_$(@:d:d:b)) $(RCFLAGS) $@ .ENDIF .ENDIF - diff --git a/solenv/inc/tg_rslb.mk b/solenv/inc/tg_rslb.mk index 1f0aff311903..0b1659a28796 100644 --- a/solenv/inc/tg_rslb.mk +++ b/solenv/inc/tg_rslb.mk @@ -41,12 +41,11 @@ $(RSC_MULTI$(TNR)) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))/$(RESLIB$(TNR)NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB$(TNR)IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB$(TNR)IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil={$(subst,$(OUTPATH),$(COMMON_OUTDIR) $(BIN))} \ -ft=$@ \ $(RSC$(TNR)HEADER) $(RESLIB$(TNR)SRSFILES) \ @@ -57,12 +56,11 @@ $(RSC_MULTI$(TNR)) : \ $(foreach,i,$(alllangiso) -lg$i \ $(null,$(rescharset_{$i}) $(default$(LANG_GUI)) $(rescharset_{$i})) \ -fs={$(BIN)/$(RESLIB$(TNR)NAME)$i.res} \ - $(foreach,j,$(subst,$(PRJ),$(SOLARSRC)/$(RSCDEFIMG)/$(PRJNAME) $(RESLIB$(TNR)IMAGES)) -lip={$j}/$i \ + $(foreach,j,$(subst,$(PRJ),$(SOLARDEFIMG)/$(PRJNAME) $(RESLIB$(TNR)IMAGES)) -lip={$j}/$i \ -lip={$j} ) \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/res/$i -lip=$(SOLARSRC)/$(RSCDEFIMG)/res \ - -lip=$(SOLARSRC)/$(RSCDEFIMG)/$i -lip=$(SOLARSRC)/$(RSCDEFIMG) ) \ - -subMODULE=$(SOLARSRC)/$(RSCDEFIMG) \ - -subGLOBALRES=$(SOLARSRC)/$(RSCDEFIMG)/res \ + -lip=$(SOLARDEFIMG)/res/$i -lip=$(SOLARDEFIMG)/res ) \ + -subMODULE=$(SOLARDEFIMG) \ + -subGLOBALRES=$(SOLARDEFIMG)/res \ -oil=$(BIN) \ -ft=$@ \ $(RSC$(TNR)HEADER) $(RESLIB$(TNR)SRSFILES) \ diff --git a/solenv/inc/tg_shl.mk b/solenv/inc/tg_shl.mk index 1bcebb8c72e3..e8c2b7596a16 100644 --- a/solenv/inc/tg_shl.mk +++ b/solenv/inc/tg_shl.mk @@ -31,10 +31,6 @@ .IF "$(SHL$(TNR)TARGETN)"!="" -.IF "$(OS)"=="AIX" -SHL$(TNR)STDLIBS= -.ENDIF - .IF "$(SHLLINKARCONLY)" != "" SHL$(TNR)STDLIBS= STDSHL= @@ -91,20 +87,23 @@ $(MISC)/$(SHL$(TNR)VERSIONOBJ:b).c : $(SOLARENV)/src/version.c $(INCCOM)/$(SHL$( .ENDIF .IF "$(GUI)" != "UNX" -.IF "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)" == "WNT" .IF "$(SHL$(TNR)IMPLIB)" == "" SHL$(TNR)IMPLIB=i$(TARGET)_t$(TNR) .ENDIF # "$(SHL$(TNR)IMPLIB)" == "" .IF "$(COM)" != "GCC" USE_$(TNR)IMPLIB=-implib:$(LB)/$(SHL$(TNR)IMPLIB).lib -.ENDIF # "$(COM)" != "GCC" SHL$(TNR)IMPLIBN=$(LB)/$(SHL$(TNR)IMPLIB).lib +.ELSE +SHL$(TNR)IMPLIBN=$(LB)/lib$(SHL$(TNR)IMPLIB).dll.a +USE_$(TNR)IMPLIB=-Wl,--out-implib=$(SHL$(TNR)IMPLIBN) +.ENDIF # "$(COM)" != "GCC" ALLTAR : $(SHL$(TNR)IMPLIBN) .IF "$(USE_DEFFILE)"=="" USE_$(TNR)IMPLIB_DEPS=$(LB)/$(SHL$(TNR)IMPLIB).lib .ENDIF # "$(USE_DEFFILE)"=="" -.ENDIF # "$(GUI)" == "WNT" || "$(GUI)" == "OS2" +.ENDIF # "$(GUI)" == "WNT" USE_SHL$(TNR)DEF=$(SHL$(TNR)DEF) .ELSE # "$(GUI)" != "UNX" USE_SHL$(TNR)DEF= @@ -129,7 +128,9 @@ $(USE_SHL$(TNR)VERSIONMAP) .PHONY: .ENDIF # "$(SHL$(TNR)VERSIONMAP)"!="" +.IF "$(OS)" != "AIX" SHL$(TNR)VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL$(TNR)VERSIONMAP) +.ENDIF $(USE_SHL$(TNR)VERSIONMAP): \ $(SHL$(TNR)OBJS)\ @@ -166,7 +167,9 @@ $(USE_SHL$(TNR)VERSIONMAP) : #and now for the plain non-generic way... .IF "$(SHL$(TNR)VERSIONMAP)"!="" USE_SHL$(TNR)VERSIONMAP=$(MISC)/$(SHL$(TNR)VERSIONMAP:b)_$(SHL$(TNR)TARGET)$(SHL$(TNR)VERSIONMAP:e) +.IF "$(OS)" != "AIX" SHL$(TNR)VERSIONMAPPARA=$(LINKVERSIONMAPFLAG) $(USE_SHL$(TNR)VERSIONMAP) +.ENDIF .IF "$(OS)"=="MACOSX" $(USE_SHL$(TNR)VERSIONMAP): $(SHL$(TNR)OBJS) $(SHL$(TNR)LIBS) @@ -214,7 +217,7 @@ $(USE_SHL$(TNR)VERSIONMAP) .ERRREMOVE: $(SHL$(TNR)VERSIONMAP) .ENDIF # "$(GUI)" != "UNX" .IF "$(UNIXVERSIONNAMES)"!="" -.IF "$(OS)"!="MACOSX" +.IF "$(OS)"!="MACOSX" && "$(OS)"!="IOS" && "$(OS)"!="AIX" .IF "$(GUI)"=="UNX" SHL$(TNR)SONAME=\"$(SONAME_SWITCH)$(SHL$(TNR)TARGETN:f)\" .ENDIF # "$(GUI)"!="UNX" @@ -237,7 +240,7 @@ SHL$(TNR)LINKRESO*=$(MISC)/$(SHL$(TNR)TARGET)_res.o #.IF "$(SHL$(TNR)TARGETN)"!="" .IF "$(linkinc)"!="" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(SHL$(TNR)LIBS)"!="" $(MISC)/$(SHL$(TNR)TARGET)_linkinc.ls .PHONY: @@-$(RM) $@ @@ -250,7 +253,7 @@ $(SHL$(TNR)TARGETN) : $(LINKINCTARGETS) .ELSE .IF "$(SHL$(TNR)USE_EXPORTS)"=="name" -.IF "$(GUI)"=="WNT" || "$(GUI)" == "OS2" +.IF "$(GUI)"=="WNT" .IF "$(COM)"!="GCC" .IF "$(SHL$(TNR)LIBS)"!="" SHL$(TNR)LINKLIST=$(MISC)/$(SHL$(TNR)TARGET)_link.lst @@ -267,20 +270,6 @@ $(MISC)/%linkinc.ls: @echo . > $@ .ENDIF # "$(linkinc)"!="" -.IF "$(GUI)" == "OS2" -#21/02/2006 YD dll names must be 8.3, invoke fix script -#check osl/os2/module.c/osl_loadModule() -SHL$(TNR)TARGET8=$(shell @fix_shl $(SHL$(TNR)TARGET)) -.ENDIF - -.IF "$(GUI)" == "OS2" -_SHL$(TNR)IMP_ORD = $(SHL$(TNR)STDLIBS:^"$(SOLARVERSION)/$(INPATH)/lib/") $(SHL$(TNR)STDLIBS:^"$(LB)/") -SHL$(TNR)IMP_ORD = $(foreach,i,$(_SHL$(TNR)IMP_ORD) $(shell @-ls $i)) -.ELSE -SHL$(TNR)IMP_ORD = -.ENDIF - - $(SHL$(TNR)TARGETN) : \ $(SHL$(TNR)OBJS)\ $(SHL$(TNR)LIBS)\ @@ -289,7 +278,6 @@ $(SHL$(TNR)TARGETN) : \ $(USE_SHL$(TNR)VERSIONMAP)\ $(SHL$(TNR)RES)\ $(SHL$(TNR)DEPN) \ - $(SHL$(TNR)IMP_ORD) \ $(SHL$(TNR)LINKLIST) @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" @@ -311,39 +299,69 @@ $(SHL$(TNR)TARGETN) : \ @echo $(EMQ)#define INTERNAL_NAME $(SHL$(TNR)TARGET:b) >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc @echo $(EMQ)#include $(EMQ)"shlinfo.rc$(EMQ)" >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc .ENDIF # "$(use_shl_versions)" != "" - $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc +.IF "$(RCFLAGSOUTRES)"!="" +# rc, takes separate flag naming output file, source .rc file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(RCFLAGSOUTRES)$(SHL$(TNR)DEFAULTRES) $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc +.ELSE +# windres, just takes output file last + $(COMMAND_ECHO)$(RC) -DWIN32 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc $(SHL$(TNR)DEFAULTRES) +.ENDIF .ENDIF # "$(SHL$(TNR)DEFAULTRES)"!="" .IF "$(SHL$(TNR)ALLRES)"!="" $(COMMAND_ECHO)$(TYPE) $(SHL$(TNR)ALLRES) > $(SHL$(TNR)LINKRES) .IF "$(COM)"=="GCC" - windres $(SHL$(TNR)LINKRES) $(SHL$(TNR)LINKRESO) + $(WINDRES) $(SHL$(TNR)LINKRES) $(SHL$(TNR)LINKRESO) .ENDIF # "$(COM)"=="GCC" .ENDIF # "$(SHL$(TNR)ALLRES)"!="" .IF "$(COM)"=="GCC" # always have to call dlltool explicitly as ld cannot handle # comment in .def - @echo dlltool --dllname $(SHL$(TNR)TARGET)$(DLLPOST) \ - --kill-at \\ > $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd +# GNU ld since 2.17 supports @cmdfile syntax +.IF "$(USE_DEFFILE)"!="" + @$(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL$(TNR)LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(SHL$(TNR)DEF) \ + $(USE_$(TNR)IMPLIB) \ + $(STDOBJ) \ + $(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL$(TNR)LIBS))) \ + -Wl,--exclude-libs,ALL,--start-group $(SHL$(TNR)STDLIBS) -Wl,--end-group \ + $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) \ + $(SHL$(TNR)LINKRESO) \ + )) +.ELSE @noop $(assign ALL$(TNR)OBJLIST:=$(STDOBJ) $(SHL$(TNR)OBJS) $(SHL$(TNR)LINKRESO) $(shell $(TYPE) /dev/null $(SHL$(TNR)LIBS) | $(SED) s?$(ROUT)?$(PRJ)/$(ROUT)?g)) .IF "$(DEFLIB$(TNR)NAME)"!="" # do not have to include objs @noop $(assign DEF$(TNR)OBJLIST:=$(shell $(TYPE) $(foreach,i,$(DEFLIB$(TNR)NAME) $(SLB)/$(i).lib) | sed s?$(ROUT)?$(PRJ)/$(ROUT)?g)) @noop $(foreach,i,$(DEF$(TNR)OBJLIST) $(assign ALL$(TNR)OBJLIST:=$(ALL$(TNR)OBJLIST:s?$i??))) .ENDIF # "$(DEFLIB$(TNR)NAME)"!="" - @echo --output-exp $(MISC)/$(@:b)_exp.o \\ >> $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd -.IF "$(SHL$(TNR)DEF)"!="" - @echo --input-def $(SHL$(TNR)DEF) \\ >> $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd -.ELSE - @echo $(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)DESCRIPTIONOBJ) \\ >> $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd -.ENDIF - @echo $(ALL$(TNR)OBJLIST) >> $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd - @echo $(LINK) $(LINKFLAGS) $(LINKFLAGSSHL) $(MINGWSSTDOBJ) -o $@ \ - $(STDOBJ) $(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)DESCRIPTIONOBJ) $(SHL$(TNR)OBJS) $(SHL$(TNR)LINKRESO) \ - `$(TYPE) /dev/null $(SHL$(TNR)LIBS) | $(SED) s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` \ + $(COMMAND_ECHO)$(DLLTOOL) @@(mktmp \ + --dllname $(SHL$(TNR)TARGET)$(DLLPOST) \ + --kill-at \ + --output-exp $(MISC)/$(@:b)_exp.o \ + $(SHL$(TNR)VERSIONOBJ) \ + @(ALL$(TNR)OBJLIST) + ) + $(COMMAND_ECHO)$(LINK) @$(mktmp $(strip \ + $(SHL$(TNR)LINKFLAGS) \ + $(LINKFLAGSSHL) \ + $(SOLARLIB) \ + $(MINGWSSTDOBJ) \ + -o $@ \ + -Wl,-Map,$(MISC)/$(@:b).map \ + $(MISC)/$(@:b)_exp.o \ + $(USE_$(TNR)IMPLIB) \ + $(STDOBJ) \ + $(SHL$(TNR)VERSIONOBJ) $(SHL$(TNR)OBJS) \ + $(subst,$(ROUT),$(PRJ)/$(ROUT) $(shell cat /dev/null $(SHL$(TNR)LIBS))) \ -Wl,--exclude-libs,ALL,--start-group $(SHL$(TNR)STDLIBS) -Wl,--end-group \ - $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) $(MISC)/$(@:b)_exp.o $(MINGWSSTDENDOBJ) \ - -Wl,-Map,$(MISC)/$(@:b).map >> $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd - .IF "$(VERBOSE)" == "TRUE" - @$(TYPE) $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd - .ENDIF - @+source $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd + $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) \ + $(SHL$(TNR)LINKRESO) \ + )) +.ENDIF .ELSE .IF "$(linkinc)"=="" .IF "$(SHL$(TNR)USE_EXPORTS)"!="name" @@ -458,7 +476,7 @@ $(SHL$(TNR)TARGETN) : \ @echo $(STDSLO) $(SHL$(TNR)OBJS:s/.obj/.o/) \ $(SHL$(TNR)VERSIONOBJ) \ `cat /dev/null $(SHL$(TNR)LIBS) | sed s\#$(ROUT)\#$(PRJ)/$(ROUT)\#g` | tr -s " " "\n" > $(MISC)/$(@:b).list - @echo -n $(SHL$(TNR)LINKER) $(SHL$(TNR)LINKFLAGS) $(SHL$(TNR)VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ + @/bin/echo -n $(SHL$(TNR)LINKER) $(SHL$(TNR)LINKFLAGS) $(SHL$(TNR)VERSIONMAPPARA) $(LINKFLAGSSHL) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) -o $@ \ $(SHL$(TNR)STDLIBS) $(SHL$(TNR)ARCHIVES) $(SHL$(TNR)STDSHL) $(STDSHL$(TNR)) -filelist $(MISC)/$(@:b).list $(LINKOUTPUT_FILTER) > $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd @$(PERL) $(SOLARENV)/bin/macosx-dylib-link-list.pl \ `cat $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd` \ @@ -478,6 +496,9 @@ $(SHL$(TNR)TARGETN) : \ $(SOLARENV)/bin/checkdll.sh -L$(LB) -L$(SOLARLIBDIR) $(EXTRALIBPATHS$(TNR)) $(SHL$(TNR)TARGETN) .ENDIF # "$(SHL$(TNR)NOCHECK)"!="" .ENDIF +.ELIF "$(OS)"=="IOS" + $(COMMAND_ECHO)$(AR) $(LIB$(TNR)FLAGS) $(LIBFLAGS) $@ $(subst,.obj,.o $(SHL$(TNR)OBJS)) $(shell cat /dev/null $(LIB$(TNR)TARGET) $(SHL$(TNR)LIBS) | sed s\#'^'$(ROUT)\#$(PRJ)/$(ROUT)\#g) + $(COMMAND_ECHO)$(RANLIB) $@ .ELSE # "$(OS)"=="MACOSX" @-$(RM) $(MISC)/$(TARGET).$(@:b)_$(TNR).cmd @echo $(SHL$(TNR)LINKER) $(SHL$(TNR)LINKFLAGS) $(SHL$(TNR)SONAME) $(LINKFLAGSSHL) $(SHL$(TNR)VERSIONMAPPARA) -L$(PRJ)/$(ROUT)/lib $(SOLARLIB) $(STDSLO) $(SHL$(TNR)OBJS:s/.obj/.o/) \ @@ -500,7 +521,7 @@ $(SHL$(TNR)TARGETN) : \ .ENDIF # "$(SHL$(TNR)NOCHECK)"!="" .ENDIF # "$(UPDATER)"=="YES" .ENDIF # "$(OS)"=="MACOSX" -.IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(UNIXVERSIONNAMES)"!="" && "$(OS)"!="IOS" $(COMMAND_ECHO)$(RM) $(LB)/$(SHL$(TNR)TARGETN:b) $(COMMAND_ECHO)cd $(LB) && ln -s $(SHL$(TNR)TARGETN:f) $(SHL$(TNR)TARGETN:b) .ENDIF # "$(UNIXVERSIONNAMES)"!="" @@ -509,65 +530,6 @@ $(SHL$(TNR)TARGETN) : \ .ENDIF .ENDIF # "$(GUI)" == "UNX" -.IF "$(GUI)" == "OS2" - -.IF "$(SHL$(TNR)DEFAULTRES)"!="" - @+-$(RM) $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc >& $(NULLDEV) -.IF "$(SHL$(TNR)ICON)" != "" - @-+echo 1 ICON $(SHL$(TNR)ICON) >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc -.ENDIF -.IF "$(use_shl_versions)" != "" -.IF "$(SHL$(TNR)ADD_VERINFO)"!="" - @-+echo $(EMQ)#include $(EMQ)"$(SHL$(TNR)ADD_VERINFO)$(EMQ)" >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc -.ENDIF # "$(SHL$(TNR)ADD_VERINFO)"!="" - @-+echo MENU 1 BEGIN END >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc -# @-+echo $(EMQ)RCDATA 1 { "Build string here" }$(EMQ) >> $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc -.ENDIF # "$(use_shl_versions)" != "" -# YD 04/07/06 seems null, confuses rc cli: -i $(SOLARTESDIR) - $(COMMAND_ECHO)$(RC) -r -DOS2 $(INCLUDE) $(RCLINKFLAGS) $(MISC)/$(SHL$(TNR)DEFAULTRES:b).rc -.ENDIF # "$(SHL$(TNR)DEFAULTRES)"!="" - -.IF "$(SHL$(TNR)ALLRES)"!="" - $(COMMAND_ECHO)+$(TYPE) $(SHL$(TNR)ALLRES) > $(SHL$(TNR)LINKRES) -.ENDIF # "$(SHL$(TNR)ALLRES)"!="" - -.IF "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL$(TNR)LINKER) $(SHL$(TNR)LINKFLAGS) $(LINKFLAGSSHL) -o $@ \ - $(SHL$(TNR)DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL$(TNR)OBJS) $(SHL$(TNR)VERSIONOBJ) \ - $(SHL$(TNR)LIBS) \ - $(SHL$(TNR)STDLIBS:^"-l") \ - $(SHL$(TNR)LINKRES) \ - $(SHL$(TNR)STDSHL:^"-l") $(STDSHL$(TNR):^"-l") - -.ELSE # "$(USE_DEFFILE)"!="" - - $(COMMAND_ECHO)$(SHL$(TNR)LINKER) -v $(SHL$(TNR)LINKFLAGS) \ - $(LINKFLAGSSHL) $(SHL$(TNR)BASEX) \ - $(SHL$(TNR)STACK) -o $(SHL$(TNR)TARGETN) \ - $(SHL$(TNR)DEF) \ - $(STDOBJ) \ - -L$(LB) \ - -L$(SOLARVERSION)/$(INPATH)/lib \ - $(SHL$(TNR)OBJS) $(SHL$(TNR)VERSIONOBJ) \ - $(SHL$(TNR)LIBS) \ - $(SHL$(TNR)STDLIBS:^"-l") \ - $(SHL$(TNR)LINKRES) \ - $(SHL$(TNR)STDSHL:^"-l") $(STDSHL$(TNR):^"-l") \ - @$(LS) $@ >& $(NULLDEV) - -.ENDIF # "$(USE_DEFFILE)"!="" - -.IF "$(SHL$(TNR)TARGET8)" != "$(SHL$(TNR)TARGET)" - $(COMMAND_ECHO)+$(COPY) $@ $(@:d)$(SHL$(TNR)TARGET8).dll -.ENDIF - -.ENDIF # "$(GUI)" == "OS2" - .ENDIF # "$(SHL$(TNR)TARGETN)"!="" # unroll end @@ -590,6 +552,7 @@ USELIB$(TNR)DEPN+=$(SHL$(TNR)LIBS) USE_SHL$(TNR)TARGET=$(SHL$(TNR)TARGETN) .ENDIF +.IF "$(GUI)$(COM)" != "WNTGCC" .IF "$(GUI)" != "UNX" $(SHL$(TNR)IMPLIBN): \ $(SHL$(TNR)DEF) \ @@ -602,11 +565,6 @@ $(SHL$(TNR)IMPLIBN): \ .ENDIF @echo "Making: " $(@:f) .IF "$(GUI)" == "WNT" -.IF "$(COM)"=="GCC" - @echo no ImportLibs on mingw - @-$(RM) $@ - @$(TOUCH) $@ -.ELSE # "$(COM)=="GCC" # bei use_deffile implib von linker erstellt .IF "$(USE_DEFFILE)"=="" $(IMPLIB) $(IMPLIBFLAGS) @$(mktmp -out:$(SHL$(TNR)IMPLIBN) \ @@ -615,14 +573,6 @@ $(SHL$(TNR)IMPLIBN): \ @echo build of $(SHL$(TNR)TARGETN) creates $@ @$(TOUCH) $@ .ENDIF # "$(USE_DEFFILE)=="" -.ENDIF # "$(COM)"=="GCC" - -.ELIF "$(GUI)" == "OS2" - -# touch creates an empty file, but this is not good for emxomfar, so -# create a dummy lib here - $(COMMAND_ECHO)-$(LIBMGR) $(LIBFLAGS) $@ $(SHL$(TNR)VERSIONOBJ) - +@echo build of $(SHL$(TNR)TARGETN) creates $@ .ELSE @echo no ImportLibs on Mac and *ix @@ -630,6 +580,7 @@ $(SHL$(TNR)IMPLIBN): \ @$(TOUCH) $@ .ENDIF .ENDIF +.ENDIF # unroll end ####################################################### diff --git a/solenv/inc/tg_slo.mk b/solenv/inc/tg_slo.mk index 0a0ae789a8c7..4195ffda1c1d 100644 --- a/solenv/inc/tg_slo.mk +++ b/solenv/inc/tg_slo.mk @@ -47,13 +47,6 @@ $(SLOTARGET): $(SLOFILES) $(IDLSLOFILES) .ENDIF # "$(COM)"=="GCC" .ENDIF # "$(GUI)"=="WNT" -.IF "$(GUI)"=="OS2" -.IF "$(LIBTARGET)"!="NO" - @-$(TYPE) $(mktmp $(&:+"\n")) > $(@:s/.lib/.lin/) -.ENDIF # "$(LIBTARGET)"!="NO" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(&) -.ENDIF # "$(GUI)"=="OS2" - .IF "$(GUI)"=="UNX" @echo $(foreach,i,$(SLOFILES:f) $(RSLO)/$(i:s/.obj/.o/)) | xargs -n1 > $@ .IF "$(OS)"=="MACOSX" @@ -81,13 +74,6 @@ $($(SECOND_BUILD)SLOTARGET): $(REAL_$(SECOND_BUILD)_SLOFILES) .ENDIF # "$(LIBTARGET)"!="NO" $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) /OUT:$@ @$(mktmp $(&:+"\n")) -.IF "$(GUI)"=="OS2" -.IF "$(LIBTARGET)"!="NO" - @-$(TYPE) $(mktmp $(&:+"\n")) > $(@:s/.lib/.lin/) -.ENDIF # "$(LIBTARGET)"!="NO" - $(COMMAND_ECHO)$(LIBMGR) $(LIBFLAGS) $@ $(&) -.ENDIF # "$(GUI)"=="OS2" - .ENDIF # "$(COM)"=="GCC" .ENDIF # "$(GUI)"=="WNT" diff --git a/solenv/inc/tg_wntx64.mk b/solenv/inc/tg_wntx64.mk index 85f60c0f95a0..05a3155fb97a 100644 --- a/solenv/inc/tg_wntx64.mk +++ b/solenv/inc/tg_wntx64.mk @@ -24,14 +24,12 @@ # for a copy of the LGPLv3 License. # #************************************************************************* -############################################### -# Windows 64 bit special -# only used for 64 bit shell extension -# ( Windows Vista ) -# --------------------------------------------- -# THIS FILE WILL BE DELETED when a fully ported -# Windows 64 bit version is available -############################################### +############################################################################################## +# Used when building 64-bit Windows code for the 64-bit Explorer shell extension +# in an otherwise 32-bit LibreOffice build. Don't confuse with +# building a completely 64-bit LibreOffice on Windows, which is unfinished +# and highly experimental work. +############################################################################################## .IF "$(BUILD_X64)"!="" @@ -43,7 +41,7 @@ $(SLOTARGET_X64): $(SLOFILES_X64) $(IDLSLOFILES_X64) .ENDIF @echo ------------------------------ @echo Making: $@ - @-$(MKDIR) $(SLB_X64) + @-$(MKDIRHIER) $(SLB_X64) .IF "$(LIBTARGET)"!="NO" @-$(TYPE) $(mktmp $(&:+"\n")) > $(@:s/.lib/.lin/) .ENDIF # "$(LIBTARGET)"!="NO" @@ -73,10 +71,7 @@ SHL1IMPLIBN_X64=$(LB_X64)/$(SHL1IMPLIB_X64).lib .ENDIF # "$(SLOFILES_X64)$(OBJFILES_X64)"!="" make_x64_dirs : - -$(MKDIR) $(BIN_X64) - -$(MKDIR) $(MISC_X64) - -$(MKDIR) $(LB_X64) - -$(MKDIR) $(SLB_X64) + $(MKDIRHIER) $(BIN_X64) $(MISC_X64) $(LB_X64) $(SLB_X64) .IF "$(LIBTARGET)" == "" @@ -92,7 +87,7 @@ $(LIB1TARGET_X64) : $(LIB1FILES_X64) \ @echo using: $(LIB1TARGET_X64) @echo ------------------------------ @echo Making: $@ - -$(MKDIR) $(SLB_X64) + $(MKDIRHIER) $(SLB_X64) @@-$(RM) $@ $(LIBMGR_X64) $(LIBFLAGS_X64) /OUT:$@ @$(mktmp $(LIB1FILES_X64) $(LIB1OBJFILES_X64)) @-$(RM) $(@:s/.lib/.lin/) @@ -113,7 +108,7 @@ $(LIB2TARGET_X64) : $(LIB2FILES_X64) \ @echo using: $(LIB2TARGET_X64) @echo ------------------------------ @echo Making: $@ - -$(MKDIR) $(SLB_X64) + $(MKDIRHIER) $(SLB_X64) @@-$(RM) $@ $(LIBMGR_X64) $(LIBFLAGS_X64) /OUT:$@ @$(mktmp $(LIB2FILES_X64) $(LIB2OBJFILES_X64)) @-$(RM) $(@:s/.lib/.lin/) @@ -131,7 +126,7 @@ $(LIB2TARGET_X64) : $(LIB2FILES_X64) \ $(DEF1TARGETN_X64) : \ $(DEF1DEPN_X64) \ $(DEF1EXPORTFILE_X64) - @-$(MKDIR) $(MISC_X64) + @-$(MKDIRHIER) $(MISC_X64) @-$(RM) $@.tmpfile @echo ------------------------------ @echo Making Module-Definitionfile : $@ @@ -169,7 +164,7 @@ $(DEF1TARGETN_X64) : \ $(DEF2TARGETN_X64) : \ $(DEF2DEPN_X64) \ $(DEF2EXPORTFILE_X64) - @-$(MKDIR) $(MISC_X64) + @-$(MKDIRHIER) $(MISC_X64) @-$(RM) $@.tmpfile @echo Making Module-Definitionfile : $@ @echo LIBRARY $(EMQ)"$(SHL2TARGETN:f)$(EMQ)" >$@.tmpfile @@ -325,7 +320,7 @@ $(SHL1IMPLIBN_X64): \ $(USELIBDEPN_X64) @echo Making: $(SHL1IMPLIBN_X64) # bei use_deffile implib von linker erstellt - @-mkdir $(LB_X64) + @-$(MKDIRHIER) $(LB_X64) .IF "$(USE_DEFFILE_X64)"=="" $(IMPLIB_X64) $(IMPLIBFLAGS_X64) @$(mktmp -out:$(SHL1IMPLIBN_X64) \ -def:$(SHL1DEF_X64) ) @@ -469,7 +464,7 @@ $(SHL2IMPLIBN_X64): \ $(USELIBDEPN_X64) @echo Making: $(SHL2IMPLIBN_X64) # bei use_deffile implib von linker erstellt - @-mkdir $(LB_X64) + @-$(MKDIRHIER) $(LB_X64) .IF "$(USE_DEFFILE_X64)"=="" $(IMPLIB_X64) $(IMPLIBFLAGS_X64) @$(mktmp -out:$(SHL2IMPLIBN_X64) \ -def:$(SHL2DEF_X64) ) @@ -484,21 +479,21 @@ $(SLO_X64)/%.obj : %.cpp @echo ------------------------------ @echo Making: $@ @@-$(RM) $@ >& $(NULLDEV) - -$(MKDIR) $(@:d) - @-$(MKDIR) $(MISC_X64) + -$(MKDIRHIER) $(@:d) + @-$(MKDIRHIER) $(MISC_X64) $(CAPTURE_COMMAND) $(CXX_X64) $(USE_CFLAGS_X64) $(INCLUDE_X64) $(CFLAGSCXX_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CDEFSMT_X64) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cpp $(CAPTURE_OUTPUT) $(SLO_X64)/%.obj : %.cxx @echo Making: $@ @@-$(RM) $@ >& $(NULLDEV) - $(COMMAND_ECHO)-$(MKDIR) $(@:d) - $(COMMAND_ECHO)@-$(MKDIR) $(MISC_X64) + $(COMMAND_ECHO)$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)-$(MKDIRHIER) $(MISC_X64) $(COMMAND_ECHO)$(CAPTURE_COMMAND) $(CXX_X64) $(USE_CFLAGS_X64) $(INCLUDE_X64) $(CFLAGSCXX_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CDEFSMT_X64) $(!eq,$(EXCEPTIONSFILES),$(subst,$@, $(EXCEPTIONSFILES)) $(LOCAL_EXCEPTIONS_FLAGS) $(GLOBAL_EXCEPTIONS_FLAGS)) $(CFLAGSAPPEND) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $(CFLAGSINCXX)$(PWD)/$*.cxx $(CAPTURE_OUTPUT) $(SLO_X64)/%.obj : $(MISC)/%.c @echo Making: $@ - $(COMMAND_ECHO)-$(MKDIR) $(@:d) - $(COMMAND_ECHO)@-$(MKDIR) $(MISC_X64) + $(COMMAND_ECHO)$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)$(MKDIRHIER) $(MISC_X64) @@-$(RM) $@ @$(TYPE) $(mktmp $(CC_X64) $(USE_CFLAGS_X64) $(INCLUDE_C) $(CFLAGSCC_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CFLAGSAPPEND_X64) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $(MISC)/$*.c ) @$(ECHONL) @@ -506,8 +501,8 @@ $(SLO_X64)/%.obj : $(MISC)/%.c $(SLO_X64)/%.obj : %.c @echo Making: $@ - $(COMMAND_ECHO)-$(MKDIR) $(@:d) - $(COMMAND_ECHO)@-$(MKDIR) $(MISC_X64) + $(COMMAND_ECHO)$(MKDIRHIER) $(@:d) + $(COMMAND_ECHO)$(MKDIRHIER) $(MISC_X64) @@-$(RM) $@ $(COMMAND_ECHO)$(CC_X64) @$(mktmp $(USE_CFLAGS_X64) $(INCLUDE_C) $(CFLAGSCC_X64) $(CFLAGSSLO_X64) $(USE_CDEFS_X64) $(CDEFSSLO_X64) $(CDEFSMT_X64) $(CFLAGSAPPEND_X64) $(CFLAGSOUTOBJ)$(SLO_X64)/$*.obj $*.c ) diff --git a/solenv/inc/tg_zip.mk b/solenv/inc/tg_zip.mk index 0a0364e02ab3..4468a2139397 100644 --- a/solenv/inc/tg_zip.mk +++ b/solenv/inc/tg_zip.mk @@ -32,8 +32,6 @@ command_seperator=&& #command_seperator=^ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" -.ELIF "$(GUI)"=="OS2" -command_seperator=&& .ELSE command_seperator=; avoid_cvs_dir=-x "*CVS*" -x "*.svn*" @@ -42,6 +40,11 @@ avoid_cvs_dir=-x "*CVS*" -x "*.svn*" .IF "$(ZIP$(TNR)TARGET)"!="" +.IF "$(ZIP$(TNR)STRIPLANGUAGETAGS)" != "" +CALLXSLTPROC:=$(XSLTPROC) +.EXPORT: CALLXSLTPROC +.ENDIF + ZIP$(TNR)EXT*=.zip .IF "$(common_build_zip)"!="" .IF "$(ZIP$(TNR)LIST:s/LANGDIR//)" == "$(ZIP$(TNR)LIST)" @@ -145,6 +148,11 @@ $(ZIP$(TNR)TARGETN) : delzip $(ZIP$(TNR)DEPS) $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ $(PERL) -w $(SOLARENV)/bin/cleanzip.pl $@ \ $(FI) +.IF "$(ZIP$(TNR)STRIPLANGUAGETAGS)" != "" + $(COMMAND_ECHO)$(IFEXIST) $@ $(THEN) \ + $(SOLARENV)/bin/striplanguagetags.sh $@ \ + $(FI) +.ENDIF .ENDIF # "$(ZIP$(TNR)DIR)" != "" .ENDIF # "$(common_build_zip)"!="" .ENDIF diff --git a/solenv/inc/unitools.mk b/solenv/inc/unitools.mk index cea303c2ae0f..893340e9125f 100644 --- a/solenv/inc/unitools.mk +++ b/solenv/inc/unitools.mk @@ -107,9 +107,10 @@ PERL*=perl TYPE=cat CDD=cd COPY=cp -f -.IF "$(OS)"=="MACOSX" +.IF "$(OS_FOR_BUILD)"=="MACOSX" || "$(OS_FOR_BUILD)"=="NETBSD" || "$(OS_FOR_BUILD)"=="OPENBSD" || \ + "$(OS_FOR_BUILD)"=="DRAGONFLY" COPYRECURSE=-R -.ELSE #"$(OS)"=="MACOSX" +.ELSE # Not BSD based ones: COPYRECURSE=-r .ENDIF .IF "$(OS)"=="SOLARIS" @@ -118,6 +119,12 @@ GNUCOPY*=gnucp GNUPATCH*=gnupatch GNUTAR*=/usr/sfw/bin/gtar DEREFERENCE= +.ELIF "$(OS)"=="AIX" +AWK*=/opt/freeware/bin/awk +GNUCOPY*=cp +GNUPATCH*=/opt/freeware/bin/patch +GNUTAR*=gtar +DEREFERENCE=-L .ELSE # "$(OS)"=="SOLARIS" AWK*=awk # this is not true, as BSD does not default to a GNU cp, but BSD cp @@ -142,33 +149,6 @@ FIND=find LS=ls ECHON=echo -n ECHONL=echo -.ELIF "$(GUI)"=="OS2" -SED*=sed -SORT*=sort -PERL*=perl -TYPE=cat -CDD=@cd -COPY*=$(SHELL) /c copy /b -COPYRECURSE=/s -COPYUPDATE=/u -DELAY=sleep -ECHON*=echos -ECHONL=+echo. -AWK*=awk -GNUCOPY*=cp -GNUPATCH*=gnupatch -GNUMAKE*=make -TOUCH=touch /c -#YD rename doesn't work across different drives! -RENAME=mv -MKDIR=+md -MKDIRHIER=+md /s -GREP=grep -FIND=find -LS=ls -DUMPBIN=echo -4nt_force_shell:=+ - .ENDIF # "$(GUI)"=="UNX" # (Global) Set if not set before diff --git a/solenv/inc/unx.mk b/solenv/inc/unx.mk index e558c9955d82..74ed8d5eb721 100644 --- a/solenv/inc/unx.mk +++ b/solenv/inc/unx.mk @@ -35,22 +35,6 @@ # --- Compiler --- -.IF "$(COM)$(OS)$(CPU)" == "C50SOLARISS" -.INCLUDE : unxsols2.mk -.ENDIF - -.IF "$(COM)$(OS)$(CPU)" == "C50SOLARISI" -.INCLUDE : unxsoli2.mk -.ENDIF - -.IF "$(OS)$(CPU)$(COMEX)" == "SOLARISS3" -.INCLUDE : unxsols3.mk -.ENDIF - -.IF "$(OS)$(CPU)$(COMEX)" == "SOLARISI3" -.INCLUDE : unxsoli3.mk -.ENDIF - .IF "$(OS)$(CPU)$(COMEX)" == "SOLARISS4" .INCLUDE : unxsols4.mk .ENDIF @@ -63,10 +47,6 @@ .INCLUDE : unxsolu4.mk .ENDIF -.IF "$(OS)$(CPU)$(COMEX)" == "SOLARISX4" -.INCLUDE : unxsolx4.mk -.ENDIF - .IF "$(COM)$(OS)$(CPU)" == "GCCSOLARISS" .INCLUDE : unxsogs.mk .ENDIF @@ -75,10 +55,6 @@ .INCLUDE : unxsogi.mk .ENDIF -.IF "$(COM)$(OS)$(CPU)" == "GCCSCOI" -.INCLUDE : unxscoi.mk -.ENDIF - .IF "$(COM)$(OS)$(CPU)" == "GCCLINUXS" .INCLUDE : unxlngs.mk .ENDIF @@ -99,6 +75,10 @@ .INCLUDE : unxlngppc64.mk .ENDIF +.IF "$(COM)$(OS)$(CPU)" == "GCCAIXP" +.INCLUDE : unxaigppc.mk +.ENDIF + .IF "$(COM)$(OS)$(CPU)$(CPUNAME)" == "GCCLINUX3S390" .INCLUDE : unxlngs390.mk .ENDIF @@ -111,40 +91,28 @@ .INCLUDE : unxlngr.mk .ENDIF -.IF "$(COM)$(OS)$(CPU)" == "GCCLINUXA" -.INCLUDE : unxlnga.mk +.IF "$(COM)$(OS)$(CPU)" == "GCCANDROIDR" +.INCLUDE : unxandr.mk .ENDIF -.IF "$(COM)$(OS)$(CPU)" == "ACCHPUXR" -.INCLUDE : unxhpxr.mk -.ENDIF - -.IF "$(COM)$(OS)$(CPU)" == "GCCHPUXR" -.INCLUDE : unxhpgr.mk -.ENDIF - -.IF "$(COM)$(OS)$(CPU)" == "GCCNETBSDA" -.INCLUDE : unxbsda.mk -.ENDIF - -.IF "$(COM)$(OS)$(CPU)" == "ICCAIXP" -.INCLUDE : unxaixp.mk +.IF "$(COM)$(OS)$(CPU)" == "GCCLINUXA" +.INCLUDE : unxlnga.mk .ENDIF -.IF "$(COM)$(CVER)$(OS)$(CPU)" == "GCCC295NETBSDI" -.INCLUDE : unxbsdi.mk +.IF "$(COM)$(OS)" == "GCCNETBSD" +.INCLUDE : unxnbsd.mk .ENDIF -.IF "$(COM)$(CVER)$(OS)$(CPU)" == "GCCC300NETBSDI" -.INCLUDE : unxbsdi2.mk +.IF "$(COM)$(OS)" == "GCCFREEBSD" +.INCLUDE : unxfbsd.mk .ENDIF -.IF "$(COM)$(OS)$(CPU)" == "GCCNETBSDS" -.INCLUDE : unxbsds.mk +.IF "$(COM)$(OS)" == "GCCOPENBSD" +.INCLUDE : unxobsd.mk .ENDIF -.IF "$(COM)$(OS)" == "GCCFREEBSD" -.INCLUDE : unxfbsd.mk +.IF "$(COM)$(OS)" == "GCCDRAGONFLY" +.INCLUDE : unxdfly.mk .ENDIF .IF "$(COM)$(OS)$(CPU)" == "GCCMACOSXP" @@ -155,6 +123,10 @@ .INCLUDE : unxmacxi.mk .ENDIF +.IF "$(COM)$(OS)$(CPU)" == "GCCIOSR" +.INCLUDE : unxiosr.mk +.ENDIF + .IF "$(COM)$(OS)$(CPU)" == "GCCLINUXM" .INCLUDE : unxlngmips.mk .ENDIF @@ -186,11 +158,13 @@ YACCFLAGS*=-d -t EXECPOST= SCPPOST=.ins DLLDEST=$(LB) -SOLARSHAREDBIN=$(SOLARLIBDIR) +SOLARSHAREDBIN=$(SOLARLIBDIR_FOR_BUILD) SONAME_SWITCH*=-h .IF "$(UNIXVERSIONNAMES)"!="" +.IF "$(OS)"!="IOS" DLLPOST!:=$(DLLPOST).$($(UNIXVERSIONNAMES)_MAJOR) +.ENDIF .ENDIF # "$(UNIXVERSIONNAMES)"!="" # enable building/linking KDE-dependent code in both OOo and SO build environment diff --git a/solenv/inc/unxaigppc.mk b/solenv/inc/unxaigppc.mk new file mode 100644 index 000000000000..240aa9c03b09 --- /dev/null +++ b/solenv/inc/unxaigppc.mk @@ -0,0 +1,68 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# mk file for Unix AIX PowerPC using GCC, please make generic modifications to unxlng.mk + +LIBSALCPPRT*=-Wl,-bnogc -lsalcpprt -Wl,-bgc + +.INCLUDE : unxlngppc.mk + +CDEFS+=-D_THREAD_SAFE + +.INCLUDE : productversion.mk + +COLON=":" +URELIBDIRS=$(subst,$(SPACECHAR),$(COLON) $(foreach,i,{$(PRODUCTLIST)} /opt/$i$(PRODUCTVERSIONSHORT)/basis-link/ure-link/lib)) +UREBINDIRS=$(subst,$(SPACECHAR),$(COLON) $(foreach,i,{$(PRODUCTLIST)} /opt/$i$(PRODUCTVERSIONSHORT)/basis-link/ure-link/bin)) +BASISPROGRAMDIRS=$(subst,$(SPACECHAR),$(COLON) $(foreach,i,{$(PRODUCTLIST)} /opt/$i$(PRODUCTVERSIONSHORT)/basis-link/program)) +BRANDPROGRAMDIRS=$(subst,$(SPACECHAR),$(COLON) $(foreach,i,{$(PRODUCTLIST)} /opt/$i$(PRODUCTVERSIONSHORT)/program)) + +LINKFLAGSRUNPATH_URELIB:=-Wl,-blibpath:$(URELIBDIRS):/usr/lib:/lib +LINKFLAGSRUNPATH_UREBIN:=-Wl,-blibpath:$(URELIBDIRS):$(UREBINDIRS):/usr/lib:/lib +LINKFLAGSRUNPATH_OOO:=-Wl,-blibpath:$(BASISPROGRAMDIRS):$(URELIBDIRS):/usr/lib:/lib +LINKFLAGSRUNPATH_SDK:=-Wl,-blibpath:$(URELIBDIRS):/usr/lib:/lib +LINKFLAGSRUNPATH_BRAND:=-Wl,-blibpath:$(BRANDPROGRAMDIRS):$(BASISPROGRAMDIRS):$(URELIBDIRS):/usr/lib:/lib +LINKFLAGSRUNPATH_BOXT:=-Wl,-blibpath:$(BASISPROGRAMDIRS):/usr/lib:/lib +LINKFLAGS:=-Wl,-brtl -Wl,-bnolibpath + +LINKFLAGSAPPGUI:= +LINKFLAGSAPPCUI:= + +LINKVERSIONMAPFLAG:= + +SONAME_SWITCH:= + +STDLIBGUIMT:=-ldl -lpthread -lm +STDLIBCUIMT:=-ldl -lpthread -lm +STDSHLGUIMT:=-ldl -lpthread -lm +STDSHLCUIMT:=-ldl -lpthread -lm +X11LINK_DYNAMIC:=-lXext -lX11 + + +CFLAGSDEBUG:= + +OOO_LIBRARY_PATH_VAR=LIBPATH diff --git a/solenv/inc/unxaixp.mk b/solenv/inc/unxaixp.mk index 571cee1053c6..be35f438378d 100644 --- a/solenv/inc/unxaixp.mk +++ b/solenv/inc/unxaixp.mk @@ -101,10 +101,6 @@ RCLINK= RCLINKFLAGS= RCSETVERSION= -DLLPOSTFIX= ap -.IF "$(WORK_STAMP)"=="MIX364" -DLLPOSTFIX= -.ENDIF DLLPRE= lib DLLPOST= .so diff --git a/solenv/inc/scpre.mk b/solenv/inc/unxandr.mk index 1b9b7a7dacac..070db53af6c9 100644 --- a/solenv/inc/scpre.mk +++ b/solenv/inc/unxandr.mk @@ -25,26 +25,9 @@ # #************************************************************************* +# mk file for Android Linux ARM using GCC, please make generic modifications to unxgcc.mk - -#====================================================================== -# standardmaessig mit Optimierung, muss explizit mit nopt=t ausgeschaltet -# werden, wenn nicht gewuenscht -#---------------------------------------------------------------------- - -#.IF defined(nopt) || defined(NOPT) -#nopt=true -#NOPT=TRUE -#!undef optimize -#!undef OPTIMIZE -#.ELSE -#.IF !(defined(debug) || defined(DEBUG)) -#optimize=true -#OPTIMIZE=TRUE -#.ENDIF -#.ENDIF - -# falls dependencies auf s:\solver\... erstellt werden sollen -# MKDEPENDSOLVER=YES - - +CDEFAULTOPT=-Os +.INCLUDE : unxgcc.mk +CDEFS+=-DARM32 +CFLAGS+=-fno-omit-frame-pointer diff --git a/solenv/inc/unxbsda.mk b/solenv/inc/unxbsda.mk deleted file mode 100644 index fefaa1f02bd7..000000000000 --- a/solenv/inc/unxbsda.mk +++ /dev/null @@ -1,99 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -# mak file fuer unxbsda - -ASM= -AFLAGS= - -ARCH_FLAGS*= - -CC= gcc -c -CXX= g++ -c -CDEFS+= -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -CDEFS+= -D_REENTRANT # -D_PTHREADS -DPOSIX_PTHREAD_SEMANTICS -CDEFS+= -DPRINTER_DUMMY -CFLAGSCC= -fsigned-char $(ARCH_FLAGS) -CFLAGSCXX= -fsigned-char $(ARCH_FLAGS) -PICSWITCH:=-fPIC -CFLAGSOBJGUIMT= -CFLAGSOBJCUIMT= -CFLAGSSLOGUIMT=$(PICSWITCH) -CFLAGSSLOCUIMT=$(PICSWITCH) -CFLAGSPROF= -CFLAGSDEBUG= -g -CFLAGSDBGUTIL= -CFLAGSOPT= -O2 -CFLAGSNOOPT= -CFLAGSOUTOBJ= -o - -STATIC= -Bstatic -DYNAMIC= -Bdynamic - -THREADLIB= pthread -LINK= ld -e start -dc -dp -LINKFLAGS= -LINKFLAGSAPPGUI= -LINKFLAGSSHLGUI= -LINKFLAGSAPPCUI= -LINKFLAGSSHLCUI= -LINKFLAGSTACK= -LINKFLAGSPROF= -LINKFLAGSDEBUG= -LINKFLAGSOPT= - -STDOBJGUI= /usr/lib/crt0.o -STDSLOGUI= /usr/lib/crt0.o -STDOBJCUI= /usr/lib/crt0.o -STDSLOCUI= /usr/lib/crt0.o -STDLIBGUIMT= -Bdynamic -lc -Bstatic -lg++ -lstdc++ -Bdynamic -lm -lgcc -lc -lgcc -STDLIBCUIMT= -Bdynamic -lc -Bstatic -lg++ -lstdc++ -Bdynamic -lm -lgcc -lc -lgcc -STDSHLGUIMT= -Bdynamic -lc -Bstatic -lg++ -lstdc++ -Bdynamic -lm -lgcc -lc -lgcc -STDSHLCUIMT= -Bdynamic -lc -Bstatic -lg++ -lstdc++ -Bdynamic -lm -lgcc -lc -lgcc - -LIBMGR= ar -LIBFLAGS= -r -LIBEXT= .a - -IMPLIB= -IMPLIBFLAGS= - -MAPSYM= -MAPSYMFLAGS= - -RC=irc -RCFLAGS= -fo$@ $(RCFILES) -RCLINK= -RCLINKFLAGS= -RCSETVERSION= - -DLLPOSTFIX= ba -DLLPRE= lib -DLLPOST= .so - -LDUMP= - diff --git a/solenv/inc/unxbsdi.mk b/solenv/inc/unxbsdi.mk deleted file mode 100644 index 5e9c06605940..000000000000 --- a/solenv/inc/unxbsdi.mk +++ /dev/null @@ -1,179 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -# mk file for unxbsdi -ASM= -AFLAGS= - -SOLAR_JAVA=TRUE -JAVAFLAGSDEBUG=-g - -# filter for supressing verbose messages from linker -#not needed at the moment -#LINKOUTPUT_FILTER=" |& $(SOLARENV)/bin/msg_filter" - -# _PTHREADS is needed for the stl -CDEFS+=-DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=$(STLPORT_VER) - -# this is a platform with JAVA support -.IF "$(SOLAR_JAVA)"!="" -JAVADEF=-DSOLAR_JAVA -.IF "$(debug)"=="" -JAVA_RUNTIME=-ljava -.ELSE -JAVA_RUNTIME=-ljava_g -.ENDIF -.ENDIF - -# architecture dependent flags for the C and C++ compiler that can be changed by -# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build -ARCH_FLAGS*=-mpentiumpro - -# name of C++ Compiler -CXX*=g++ -# name of C Compiler -CC*=gcc -# flags for C and C++ Compiler -CFLAGS+=-c -# flags for the C++ Compiler -CFLAGSCC= -pipe $(ARCH_FLAGS) -# Flags for enabling exception handling -CFLAGSEXCEPTIONS=-fexceptions -# Flags for disabling exception handling -CFLAGS_NO_EXCEPTIONS=-fno-exceptions - -CFLAGSCXX= -pipe -frtti $(ARCH_FLAGS) -PICSWITCH:=-fpic - -# Compiler flags for compiling static object in multi threaded environment with graphical user interface -CFLAGSOBJGUIMT= -# Compiler flags for compiling static object in multi threaded environment with character user interface -CFLAGSOBJCUIMT= -# Compiler flags for compiling shared object in multi threaded environment with graphical user interface -CFLAGSSLOGUIMT=$(PICSWITCH) -# Compiler flags for compiling shared object in multi threaded environment with character user interface -CFLAGSSLOCUIMT=$(PICSWITCH) -# Compiler flags for profiling -CFLAGSPROF= -# Compiler flags for debugging -CFLAGSDEBUG=-g -CFLAGSDBGUTIL= -# Compiler flags for enabling optimizations -CFLAGSOPT=-O2 -# Compiler flags for disabling optimizations -CFLAGSNOOPT=-O -# Compiler flags for describing the output path -CFLAGSOUTOBJ=-o - -CFLAGSWARNCC= -CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wno-ctor-dtor-privacy -# -Wshadow does not work for C with nested uses of pthread_cleanup_push: -CFLAGSWALLCC=-Wall -Wextra -Wendif-labels -CFLAGSWALLCXX=$(CFLAGSWALLCC) -Wshadow -Wno-ctor-dtor-privacy -CFLAGSWERRCC=-Werror - -# switches for dynamic and static linking -STATIC = -Wl,-Bstatic -DYNAMIC = -Wl,-Bdynamic - -# name of linker -LINK*=gcc -# default linker flags -LINKFLAGS= - -# linker flags for linking applications -LINKFLAGSAPPGUI= -Wl,-export-dynamic -LINKFLAGSAPPCUI= -Wl,-export-dynamic - -# linker flags for linking shared libraries -LINKFLAGSSHLGUI= -shared -LINKFLAGSSHLCUI= -shared - -LINKFLAGSTACK= -LINKFLAGSPROF= -LINKFLAGSDEBUG=-g -LINKFLAGSOPT= - -.IF "$(NO_BSYMBOLIC)"=="" -.IF "$(PRJNAME)" != "envtest" -LINKFLAGSSHLGUI+=-Wl,-Bsymbolic -LINKFLAGSSHLCUI+=-Wl,-Bsymbolic -.ENDIF -.ENDIF # "$(NO_BSYMBOLIC)"=="" - -LINKVERSIONMAPFLAG=-Wl,--version-script - -SONAME_SWITCH=-Wl,-h - -# Sequence of libs does matter ! - -STDLIBCPP=-lstdc++ - -# default objectfilenames to link -STDOBJGUI= -STDSLOGUI= -STDOBJCUI= -STDSLOCUI= - -# libraries for linking applications -STDLIBGUIMT=-lX11 -lpthread -lm -STDLIBCUIMT=-lpthread -lm -# libraries for linking shared libraries -STDSHLGUIMT=-lX11 -lXext -lpthread -lm -STDSHLCUIMT=-lpthread -lm - -.IF "$(STLPORT_VER)" >= "500" -LIBSTLPORT=$(DYNAMIC) -lstlport -LIBSTLPORTST=$(STATIC) -lstlport $(DYNAMIC) -.ELSE -LIBSTLPORT=$(DYNAMIC) -lstlport_gcc -LIBSTLPORTST=$(STATIC) -lstlport_gcc $(DYNAMIC) -.ENDIF - - -# name of library manager -LIBMGR=ar -LIBFLAGS=-r - -# tool for generating import libraries -IMPLIB= -IMPLIBFLAGS= - -MAPSYM= -MAPSYMFLAGS= - -RC=irc -RCFLAGS=-fo$@ $(RCFILES) -RCLINK= -RCLINKFLAGS= -RCSETVERSION= - -# platform specific identifier for shared libs -DLLPOSTFIX=bi -DLLPRE=lib -DLLPOST=.so - diff --git a/solenv/inc/unxbsdi2.mk b/solenv/inc/unxbsdi2.mk deleted file mode 100644 index f4206304501b..000000000000 --- a/solenv/inc/unxbsdi2.mk +++ /dev/null @@ -1,198 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -# mk file for unxbsdi2 -ASM= -AFLAGS= - -SOLAR_JAVA=TRUE -JAVAFLAGSDEBUG=-g - -# filter for supressing verbose messages from linker -#not needed at the moment -#LINKOUTPUT_FILTER=" |& $(SOLARENV)/bin/msg_filter" - -# _PTHREADS is needed for the stl -CDEFS+= -DX86 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=$(STLPORT_VER) - -# this is a platform with JAVA support -.IF "$(SOLAR_JAVA)"!="" -JAVADEF=-DSOLAR_JAVA -.IF "$(debug)"=="" -JAVA_RUNTIME=-ljava -.ELSE -JAVA_RUNTIME=-ljava_g -.ENDIF -.ENDIF - -# architecture dependent flags for the C and C++ compiler that can be changed by -# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build -ARCH_FLAGS*= - -# name of C++ Compiler -CXX*=g++ -# name of C Compiler -CC*=gcc -# flags for C and C++ Compiler -CFLAGS+=-fmessage-length=0 -c - -# flags to enable build with symbols; required for crashdump feature -.IF "$(ENABLE_SYMBOLS)"=="SMALL" -CFLAGSENABLESYMBOLS=-g1 -.ELSE -CFLAGSENABLESYMBOLS=-g -.ENDIF - -# flags for the C++ Compiler -CFLAGSCC= -pipe $(ARCH_FLAGS) -# Flags for enabling exception handling -CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs -# Flags for disabling exception handling -CFLAGS_NO_EXCEPTIONS=-fno-exceptions - -CFLAGSCXX= -pipe -frtti $(ARCH_FLAGS) -PICSWITCH:=-fpic - -# Compiler flags for compiling static object in multi threaded environment with graphical user interface -CFLAGSOBJGUIMT= -# Compiler flags for compiling static object in multi threaded environment with character user interface -CFLAGSOBJCUIMT= -# Compiler flags for compiling shared object in multi threaded environment with graphical user interface -CFLAGSSLOGUIMT=$(PICSWITCH) -# Compiler flags for compiling shared object in multi threaded environment with character user interface -CFLAGSSLOCUIMT=$(PICSWITCH) -# Compiler flags for profiling -CFLAGSPROF= -# Compiler flags for debugging -CFLAGSDEBUG=-g -CFLAGSDBGUTIL= -# Compiler flags for enabling optimizations -# CFLAGSOPT=-O2 -# reduce to -O1 to avoid optimization problems -CFLAGSOPT=-O1 -# Compiler flags for disabling optimizations -CFLAGSNOOPT=-O -# Compiler flags for describing the output path -CFLAGSOUTOBJ=-o - -CFLAGSWARNCC= -CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wno-ctor-dtor-privacy -# -Wshadow does not work for C with nested uses of pthread_cleanup_push: -CFLAGSWALLCC=-Wall -Wextra -Wendif-labels -CFLAGSWALLCXX=$(CFLAGSWALLCC) -Wshadow -Wno-ctor-dtor-privacy -CFLAGSWERRCC=-Werror - -# switches for dynamic and static linking -STATIC = -Wl,-Bstatic -DYNAMIC = -Wl,-Bdynamic - -# name of linker -LINK*=$(CC) - -# default linker flags -LINKFLAGSDEFS*=-z defs -LINKFLAGSRUNPATH_URELIB=-Wl,-rpath,\''$$ORIGIN'\' -LINKFLAGSRUNPATH_UREBIN=-Wl,-rpath,\''$$ORIGIN/../lib:$$ORIGIN'\' - #TODO: drop $ORIGIN once no URE executable is also shipped in OOo -LINKFLAGSRUNPATH_OOO=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\' -LINKFLAGSRUNPATH_SDK=-Wl,-rpath,\''$$ORIGIN/../../ure-link/lib'\' -LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\' -LINKFLAGSRUNPATH_OXT= -LINKFLAGSRUNPATH_NONE= -LINKFLAGS=-z combreloc $(LINKFLAGSDEFS) - -# linker flags for linking applications -LINKFLAGSAPPGUI= -Wl,-export-dynamic -LINKFLAGSAPPCUI= -Wl,-export-dynamic - -# linker flags for linking shared libraries -LINKFLAGSSHLGUI= -shared -LINKFLAGSSHLCUI= -shared - -LINKFLAGSTACK= -LINKFLAGSPROF= -LINKFLAGSDEBUG=-g -LINKFLAGSOPT= - -# linker flags for optimization (symbol hashtable) -# for now, applied to symbol scoped libraries, only -LINKFLAGSOPTIMIZE*=-Wl,-O1 -LINKVERSIONMAPFLAG=$(LINKFLAGSOPTIMIZE) -Wl,--version-script - -SONAME_SWITCH=-Wl,-h - -# Sequence of libs does matter ! - -STDLIBCPP=-lstdc++ - -# default objectfilenames to link -STDOBJGUI= -STDSLOGUI= -STDOBJCUI= -STDSLOCUI= - -# libraries for linking applications -STDLIBGUIMT=-lX11 -lpthread -lm -STDLIBCUIMT=-lpthread -lm -# libraries for linking shared libraries -STDSHLGUIMT=-lX11 -lXext -lpthread -lm -STDSHLCUIMT=-lpthread -lm - -LIBSALCPPRT*=-Wl,--whole-archive -lsalcpprt -Wl,--no-whole-archive - -.IF "$(STLPORT_VER)" >= "500" -LIBSTLPORT=$(DYNAMIC) -lstlport -lstdc++ -LIBSTLPORTST=$(STATIC) -lstlport $(DYNAMIC) -.ELSE -LIBSTLPORT=$(DYNAMIC) -lstlport_gcc -lstdc++ -LIBSTLPORTST=$(STATIC) -lstlport_gcc $(DYNAMIC) -.ENDIF - -#FILLUPARC=$(STATIC) -lsupc++ $(DYNAMIC) - -# name of library manager -LIBMGR=ar -LIBFLAGS=-r - -# tool for generating import libraries -IMPLIB= -IMPLIBFLAGS= - -MAPSYM= -MAPSYMFLAGS= - -RC=irc -RCFLAGS=-fo$@ $(RCFILES) -RCLINK= -RCLINKFLAGS= -RCSETVERSION= - -# platform specific identifier for shared libs -DLLPOSTFIX=bi -DLLPRE=lib -DLLPOST=.so - diff --git a/solenv/inc/unxbsds.mk b/solenv/inc/unxbsds.mk deleted file mode 100644 index 0811c85a4c6d..000000000000 --- a/solenv/inc/unxbsds.mk +++ /dev/null @@ -1,179 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -# mk file for unxbsds -ASM=gcc -AFLAGS=-Wa,-Av8plusa,-K,PIC -x assembler-with-cpp -c $(CDEFS) - -SOLAR_JAVA=TRUE -JAVAFLAGSDEBUG=-g - -# filter for supressing verbose messages from linker -#not needed at the moment -#LINKOUTPUT_FILTER=" |& $(SOLARENV)/bin/msg_filter" - -# _PTHREADS is needed for the stl -CDEFS+=-D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=$(STLPORT_VER) -DOSL_USE_SYS_V_SEMAPHORE - -# this is a platform with JAVA support -.IF "$(SOLAR_JAVA)"!="" -JAVADEF=-DSOLAR_JAVA -.IF "$(debug)"=="" -JAVA_RUNTIME=-ljava -.ELSE -JAVA_RUNTIME=-ljava_g -.ENDIF -.ENDIF - -# architecture dependent flags for the C and C++ compiler that can be changed by -# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build -ARCH_FLAGS*= - -# name of C++ Compiler -CXX=g++ -# name of C Compiler -CC=gcc -# flags for C and C++ Compiler -CFLAGS=-c -# flags for the C++ Compiler -CFLAGSCC= -pipe $(ARCH_FLAGS) - -# Flags for enabling exception handling -CFLAGSEXCEPTIONS=-fexceptions -# Flags for disabling exception handling -CFLAGS_NO_EXCEPTIONS=-fno-exceptions - -CFLAGSCXX= -pipe $(ARCH_FLAGS) -PICSWITCH:=-fPIC - -# Compiler flags for compiling static object in multi threaded environment with graphical user interface -CFLAGSOBJGUIMT=$(PICSWITCH) -# Compiler flags for compiling static object in multi threaded environment with character user interface -CFLAGSOBJCUIMT=$(PICSWITCH) -# Compiler flags for compiling shared object in multi threaded environment with graphical user interface -CFLAGSSLOGUIMT=$(PICSWITCH) -# Compiler flags for compiling shared object in multi threaded environment with character user interface -CFLAGSSLOCUIMT=$(PICSWITCH) -# Compiler flags for profiling -CFLAGSPROF= -# Compiler flags for debugging -CFLAGSDEBUG=-g -CFLAGSDBGUTIL= -# Compiler flags for enabling optimizations -CFLAGSOPT=-O2 -# Compiler flags for disabling optimizations -CFLAGSNOOPT=-O -# Compiler flags for describing the output path -CFLAGSOUTOBJ=-o - -CFLAGSWARNCC= -CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wno-ctor-dtor-privacy -# -Wshadow does not work for C with nested uses of pthread_cleanup_push: -CFLAGSWALLCC=-Wall -Wextra -Wendif-labels -CFLAGSWALLCXX=$(CFLAGSWALLCC) -Wshadow -Wno-ctor-dtor-privacy -CFLAGSWERRCC=-Werror - -# switches for dynamic and static linking -STATIC = -Wl,-Bstatic -DYNAMIC = -Wl,-Bdynamic - -# name of linker -LINK=gcc -# default linker flags -LINKFLAGS= - -# linker flags for linking applications -LINKFLAGSAPPGUI= -Wl,-export-dynamic -LINKFLAGSAPPCUI= -Wl,-export-dynamic -# linker flags for linking shared libraries -LINKFLAGSSHLGUI= -shared -LINKFLAGSSHLCUI= -shared - -LINKFLAGSTACK= -LINKFLAGSPROF= -LINKFLAGSDEBUG=-g -LINKFLAGSOPT= - -.IF "$(NO_BSYMBOLIC)"=="" -.IF "$(PRJNAME)" != "envtest" -LINKFLAGSSHLGUI+=-Wl,-Bsymbolic -LINKFLAGSSHLCUI+=-Wl,-Bsymbolic -.ENDIF -.ENDIF # "$(NO_BSYMBOLIC)"=="" - -LINKVERSIONMAPFLAG=-Wl,--version-script - -# Sequence of libs does matter ! - -STDLIBCPP=-lstdc++ - -# default objectfilenames to link -STDOBJGUI= -STDSLOGUI= -STDOBJCUI= -STDSLOCUI= - -# libraries for linking applications -STDLIBGUIMT=-lX11 -lpthread -lm -STDLIBCUIMT=-lpthread -lm -# libraries for linking shared libraries -STDSHLGUIMT=-lX11 -lXext -lpthread -lm -STDSHLCUIMT=-lpthread -lm - -# STLport always needs pthread. This may yield some redundant -lpthread -# but that doesn't matter. -.IF "$(STLPORT_VER)" >= "500" -LIBSTLPORT=$(DYNAMIC) -lstlport -lpthread -LIBSTLPORTST=$(STATIC) -lstlport $(DYNAMIC) -lpthread -.ELSE -LIBSTLPORT=$(DYNAMIC) -lstlport_gcc -lpthread -LIBSTLPORTST=$(STATIC) -lstlport_gcc $(DYNAMIC) -lpthread -.ENDIF - - -# name of library manager -LIBMGR=ar -LIBFLAGS=-r - -# tool for generating import libraries -IMPLIB= -IMPLIBFLAGS= - -MAPSYM= -MAPSYMFLAGS= - -RC=irc -RCFLAGS=-fo$@ $(RCFILES) -RCLINK= -RCLINKFLAGS= -RCSETVERSION= - -# platform specific identifier for shared libs -DLLPOSTFIX=bs -DLLPRE=lib -DLLPOST=.so - diff --git a/solenv/inc/unxdfly.mk b/solenv/inc/unxdfly.mk new file mode 100644 index 000000000000..55b331630b9f --- /dev/null +++ b/solenv/inc/unxdfly.mk @@ -0,0 +1,45 @@ +# Version: MPL 1.1 / GPLv3+ / LGPLv3+ +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License or as specified alternatively below. You may obtain a copy of +# the License at http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Initial Developer of the Original Code is +# François Tigeot <ftigeot@wolfpond.org> +# Portions created by the Initial Developer are Copyright (C) 2011 the +# Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# +# Alternatively, the contents of this file may be used under the terms of +# either the GNU General Public License Version 3 or later (the "GPLv3+"), or +# the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), +# in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable +# instead of those above. + +# Makefile for DragonFly BSD + +# arch specific defines +.IF "$(CPUNAME)" == "INTEL" +CDEFS+=-DX86 +.ENDIF + +.IF "$(CPUNAME)" == "X86_64" +CDEFS+=-DX86_64 +BUILD64=1 +.ENDIF + +.INCLUDE : unxgcc.mk + +# Flags for disabling exception handling +CFLAGS_NO_EXCEPTIONS=-fno-exceptions + +# default linker flags +LINKFLAGSDEFS:= diff --git a/solenv/inc/unxfbsd.mk b/solenv/inc/unxfbsd.mk index 4a22beaec256..f751384c4bb8 100644 --- a/solenv/inc/unxfbsd.mk +++ b/solenv/inc/unxfbsd.mk @@ -46,7 +46,7 @@ JAVAFLAGSDEBUG=-g #LINKOUTPUT_FILTER=" |& $(SOLARENV)/bin/msg_filter" # _PTHREADS is needed for the stl -CDEFS+=$(PTHREAD_CFLAGS) -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=450 +CDEFS+=$(PTHREAD_CFLAGS) -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 # enable visibility define in "sal/types.h" .IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" @@ -74,13 +74,8 @@ CC+:=$(CFLAGS_SYSBASE) .ENDIF # "$(SYSBASE)"!="" CFLAGS+=-fmessage-length=0 -c -# flags to enable build with symbols; required for crashdump feature -.IF "$(ENABLE_SYMBOLS)"=="SMALL" -CFLAGSENABLESYMBOLS=-g1 -.ELSE -CFLAGSENABLESYMBOLS=-g # was temporarily commented out, reenabled before Beta - -.ENDIF +# flags to enable build with symbols +CFLAGSENABLESYMBOLS=-g # flags for the C++ Compiler CFLAGSCC= -pipe $(ARCH_FLAGS) @@ -148,8 +143,8 @@ LINKFLAGSRUNPATH_NONE= LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS) # linker flags for linking applications -LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec -LINKFLAGSAPPCUI= -Wl,-export-dynamic -Wl,--noinhibit-exec +LINKFLAGSAPPGUI= -Wl,-export-dynamic +LINKFLAGSAPPCUI= -Wl,-export-dynamic # linker flags for linking shared libraries LINKFLAGSSHLGUI= -shared @@ -187,26 +182,6 @@ STDSHLCUIMT=$(PTHREAD_LIBS) -lm LIBSALCPPRT*=-Wl,--whole-archive -lsalcpprt -Wl,--no-whole-archive -.IF "$(USE_STLP_DEBUG)" != "" -.IF "$(STLPORT_VER)" >= "500" -LIBSTLPORT=$(DYNAMIC) -lstlportstlg -LIBSTLPORTST=$(STATIC) -lstlportstlg $(DYNAMIC) -.ELSE -LIBSTLPORT=$(DYNAMIC) -lstlport_gcc_stldebug -LIBSTLPORTST=$(STATIC) -lstlport_gcc_stldebug $(DYNAMIC) -.ENDIF -.ELSE # "$(USE_STLP_DEBUG)" != "" -.IF "$(STLPORT_VER)" >= "500" -LIBSTLPORT=$(DYNAMIC) -lstlport -LIBSTLPORTST=$(STATIC) -lstlport $(DYNAMIC) -.ELSE -LIBSTLPORT=$(DYNAMIC) -lstlport_gcc -LIBSTLPORTST=$(STATIC) -lstlport_gcc $(DYNAMIC) -.ENDIF -.ENDIF # "$(USE_STLP_DEBUG)" != "" - -#FILLUPARC=$(STATIC) -lsupc++ $(DYNAMIC) - # name of library manager LIBMGR=ar LIBFLAGS=-r diff --git a/solenv/inc/unxfbsdi.mk b/solenv/inc/unxfbsdi.mk index c1227a35f2d3..c01fc21fbb2d 100644 --- a/solenv/inc/unxfbsdi.mk +++ b/solenv/inc/unxfbsdi.mk @@ -41,6 +41,3 @@ CFLAGSOPT=-Os -fno-strict-aliasing # optimizing for products .ELSE # "$(PRODUCT)"!="" CFLAGSOPT= # no optimizing for non products .ENDIF # "$(PRODUCT)"!="" - -# platform specific identifier for shared libs -DLLPOSTFIX=fi diff --git a/solenv/inc/unxfbsdx.mk b/solenv/inc/unxfbsdx.mk index 4a8e120d318e..6fb0641d94d3 100644 --- a/solenv/inc/unxfbsdx.mk +++ b/solenv/inc/unxfbsdx.mk @@ -44,6 +44,4 @@ CFLAGSOPT=-O2 -fno-strict-aliasing # optimizing for products CFLAGSOPT= # no optimizing for non products .ENDIF # "$(PRODUCT)"!="" -# platform specific identifier for shared libs -DLLPOSTFIX=fx BUILD64=1 diff --git a/solenv/inc/unxgcc.mk b/solenv/inc/unxgcc.mk new file mode 100644 index 000000000000..752de80c7b36 --- /dev/null +++ b/solenv/inc/unxgcc.mk @@ -0,0 +1,266 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# generic mk file for gcc on unix systems + +ASM*= +AFLAGS*= +SOLAR_JAVA*= +# default optimization level for product code +CDEFAULTOPT*=-O2 +# architecture dependent flags for the C and C++ compiler that can be changed by +# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build +ARCH_FLAGS*= +# position independent code switch +PICSWITCH*:=-fpic +JAVAFLAGSDEBUG=-g + +# filter for supressing verbose messages from linker +#not needed at the moment +#LINKOUTPUT_FILTER=" |& $(SOLARENV)/bin/msg_filter" + +# _PTHREADS is needed for the stl +CDEFS+=-D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 + +# enable visibility define in "sal/types.h" +.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" +CDEFS += -DHAVE_GCC_VISIBILITY_FEATURE +.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" + +# this is a platform with JAVA support +.IF "$(SOLAR_JAVA)"!="" +JAVADEF=-DSOLAR_JAVA +.IF "$(debug)"=="" +JAVA_RUNTIME=-ljava +.ELSE +JAVA_RUNTIME=-ljava_g +.ENDIF +.ENDIF + +# name of C++ Compiler +CXX*=g++ +# name of C Compiler +CC*=gcc +.IF "$(SYSBASE)"!="" +CFLAGS_SYSBASE:=-isystem $(SYSBASE)$/usr$/include +CXX+:=$(CFLAGS_SYSBASE) +CC+:=$(CFLAGS_SYSBASE) +.ENDIF # "$(SYSBASE)"!="" +CFLAGS+=-fmessage-length=0 -c + +# flags to enable build with symbols +CFLAGSENABLESYMBOLS=-g + +# flags for the C++ Compiler +CFLAGSCC= -pipe $(ARCH_FLAGS) +# Flags for enabling exception handling +CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs +# Flags for disabling exception handling +CFLAGS_NO_EXCEPTIONS=-fno-exceptions + +# -fpermissive should be removed as soon as possible +CFLAGSCXX= -pipe $(ARCH_FLAGS) +.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" && "$(HAVE_GCC_VISIBILITY_BROKEN)" != "TRUE" +CFLAGSCXX+=-fvisibility-inlines-hidden +.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" +.IF "$(HAVE_CXX0X)" == "TRUE" +CFLAGSCXX+=-std=c++0x -Wno-deprecated-declarations +.ENDIF # "$(HAVE_CXX0X)" == "TRUE" + +CFLAGS_CREATE_PCH=-x c++-header -I$(INCPCH) -DPRECOMPILED_HEADERS +CFLAGS_USE_PCH=-I$(SLO)$/pch -DPRECOMPILED_HEADERS -Winvalid-pch +CFLAGS_USE_EXCEPTIONS_PCH=-I$(SLO)$/pch_ex -DPRECOMPILED_HEADERS -Winvalid-pch + +# Compiler flags for compiling static object in multi threaded environment with graphical user interface +CFLAGSOBJGUIMT= +# Compiler flags for compiling static object in multi threaded environment with character user interface +CFLAGSOBJCUIMT= +# Compiler flags for compiling shared object in multi threaded environment with graphical user interface +CFLAGSSLOGUIMT=$(PICSWITCH) +# Compiler flags for compiling shared object in multi threaded environment with character user interface +CFLAGSSLOCUIMT=$(PICSWITCH) +# Compiler flags for profiling +CFLAGSPROF= +# Compiler flags for debugging +CFLAGSDEBUG=-g +CFLAGSDBGUTIL= + +GCCNUMVERSION_CMD=-dumpversion $(PIPEERROR) $(AWK) -v num=true -f $(SOLARENV)/bin/getcompver.awk +GCCNUMVER:=$(shell @-$(CXX) $(GCCNUMVERSION_CMD)) + +# Compiler flags for enabling optimizations +.IF "$(PRODUCT)"!="" +CFLAGSOPT=$(CDEFAULTOPT) # optimizing for products +.IF "$(GCCNUMVER)" <= "000400050000" +#At least SLED 10.2 gcc 4.3 overly agressively optimizes +#uno::Sequence into junk, so only strict-alias on compiler +#later than 4.5.1 +CFLAGSOPT+=-fno-strict-aliasing +.ENDIF +.ELSE # "$(PRODUCT)"!="" +CFLAGSOPT= # no optimizing for non products +.ENDIF # "$(PRODUCT)"!="" + +# Compiler flags for disabling optimizations +CFLAGSNOOPT=-O0 +# Compiler flags for describing the output path +CFLAGSOUTOBJ=-o + +# -Wshadow does not work for C with nested uses of pthread_cleanup_push: +CFLAGSWARNCC=-Wall -Wextra -Wendif-labels +CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wshadow -Wno-ctor-dtor-privacy \ + -Wno-non-virtual-dtor -Woverloaded-virtual +CFLAGSWALLCC=$(CFLAGSWARNCC) +CFLAGSWALLCXX=$(CFLAGSWARNCXX) +CFLAGSWERRCC=-Werror + +COMPILER_WARN_ERRORS=TRUE + +# switches for dynamic and static linking +STATIC = -Wl,-Bstatic +DYNAMIC = -Wl,-Bdynamic + +# name of linker +LINK*=$(CXX) +LINKC*=$(CC) + +# default linker flags +.IF "$(SYSBASE)"!="" +LINKFLAGS_SYSBASE:=-Wl,--sysroot=$(SYSBASE) +.ENDIF # "$(SYSBASE)"!="" +# +# The DT RPATH value is used first, before any other path, specifically before +# the path defined in the LD_LIBRARY_PATH environment variable. This is +# problematic since it does not allow the user to overwrite the value. +# Therefore DT_RPATH is deprecated. The introduction of the new variant, +# DT_RUNPATH, corrects this oversight by requiring the value is used after the +# path in LD_LIBRARY_PATH. +# +# The linker option --enable-new-dtags must be used to also add DT_RUNPATH +# entry. This will cause both, DT_RPATH and DT_RUNPATH entries, to be created +# +LINKFLAGSDEFS*=-Wl,-z,defs +LINKFLAGSRUNPATH_URELIB=-Wl,-rpath,\''$$ORIGIN'\',--enable-new-dtags +LINKFLAGSRUNPATH_UREBIN=-Wl,-rpath,\''$$ORIGIN/../lib:$$ORIGIN'\',--enable-new-dtags + #TODO: drop $ORIGIN once no URE executable is also shipped in OOo +LINKFLAGSRUNPATH_OOO=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\',--enable-new-dtags +LINKFLAGSRUNPATH_SDK=-Wl,-rpath,\''$$ORIGIN/../../ure-link/lib'\',--enable-new-dtags +LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\',--enable-new-dtags +LINKFLAGSRUNPATH_OXT= +LINKFLAGSRUNPATH_BOXT=-Wl,-rpath,\''$$ORIGIN/../../../basis-link/program'\',--enable-new-dtags +LINKFLAGSRUNPATH_NONE= +# flag -Wl,-z,noexecstack sets the NX bit on the stack +LINKFLAGS=-Wl,-z,noexecstack -Wl,-z,combreloc $(LINKFLAGSDEFS) $(LINKFLAGS_SYSBASE) +.IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)" == "TRUE" +LINKFLAGS += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo +.ENDIF + +# linker flags for linking applications +LINKFLAGSAPPGUI= -Wl,-export-dynamic \ + -Wl,-rpath-link,$(LB):$(SOLARLIBDIR):$(SYSBASE)/lib:$(SYSBASE)/usr/lib +LINKFLAGSAPPCUI= -Wl,-export-dynamic \ + -Wl,-rpath-link,$(LB):$(SOLARLIBDIR):$(SYSBASE)/lib:$(SYSBASE)/usr/lib + +# linker flags for linking shared libraries +LINKFLAGSSHLGUI= -shared +LINKFLAGSSHLCUI= -shared + +LINKFLAGSTACK= +LINKFLAGSPROF= +LINKFLAGSDEBUG=-g +LINKFLAGSOPT= + +# linker flags for optimization (symbol hashtable) +# for now, applied to symbol scoped libraries, only +LINKFLAGSOPTIMIZE*=-Wl,-O1 +LINKVERSIONMAPFLAG=$(LINKFLAGSOPTIMIZE) -Wl,--version-script + +SONAME_SWITCH=-Wl,-h + +# Sequence of libs does matter ! + +STDLIBCPP=-lstdc++ + +# default objectfilenames to link +STDOBJVCL=$(L)$/salmain.o +STDOBJGUI= +STDSLOGUI= +STDOBJCUI= +STDSLOCUI= + +.IF "$(ALLOC)" == "TCMALLOC" +STDLIBGUIMT+=-ltcmalloc +STDLIBCUIMT+=-ltcmalloc +STDSHLGUIMT+=-ltcmalloc +STDSHLCUIMT+=-ltcmalloc +.ENDIF + +.IF "$(ALLOC)" == "JEMALLOC" +STDLIBGUIMT+=-ljemalloc +STDLIBCUIMT+=-ljemalloc +STDSHLGUIMT+=-ljemalloc +STDSHLCUIMT+=-ljemalloc +.ENDIF + +.IF "$(HAVE_LD_HASH_STYLE)" == "TRUE" +LINKFLAGS += -Wl,--hash-style=$(WITH_LINKER_HASH_STYLE) +.ELSE +LINKFLAGS += -Wl,-zdynsort +.ENDIF + +# libraries for linking applications +STDLIBGUIMT+=-Wl,--as-needed $(DL_LIB) $(PTHREAD_LIBS) -lm -Wl,--no-as-needed +STDLIBCUIMT+=-Wl,--as-needed $(DL_LIB) $(PTHREAD_LIBS) -lm -Wl,--no-as-needed +# libraries for linking shared libraries +STDSHLGUIMT+=-Wl,--as-needed $(DL_LIB) $(PTHREAD_LIBS) -lm -Wl,--no-as-needed +STDSHLCUIMT+=-Wl,--as-needed $(DL_LIB) $(PTHREAD_LIBS) -lm -Wl,--no-as-needed + +X11LINK_DYNAMIC = -Wl,--as-needed -lXext -lX11 -Wl,--no-as-needed + +LIBSALCPPRT*=-Wl,--whole-archive -lsalcpprt -Wl,--no-whole-archive + +# name of library manager +LIBMGR*=$(AR) +LIBFLAGS=-r + +# tool for generating import libraries +IMPLIB= +IMPLIBFLAGS= + +MAPSYM= +MAPSYMFLAGS= + +RC=irc +RCFLAGS=-fo$@ $(RCFILES) +RCLINK= +RCLINKFLAGS= +RCSETVERSION= + +# platform specific identifier for shared libs +DLLPRE=lib +DLLPOST=.so +PCHPOST=.gch diff --git a/solenv/inc/unxhpgr.mk b/solenv/inc/unxhpgr.mk deleted file mode 100644 index 9ac0c7e3daf1..000000000000 --- a/solenv/inc/unxhpgr.mk +++ /dev/null @@ -1,133 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - - -# mak file fuer unxhpxr -ASM= -AFLAGS= - -CDEFS+=-D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -CDEFS+=-DSYSV -D_POSIX_PTHREAD_SEMANTICS -D_HPUX_SOURCE -DRWSTD_MULTI_THREAD -D_REENTRANT -D__HPACC_NOEH -D__STL_NO_EXCEPTIONS - #CDEFS+= -D__hppa__ - -# obernervige Warnungen abschalten -# 67 = invalid pragma name -# 251 = An object cannot be deleted using a pointer of type 'void *' since the -# type of the object allocated is unknown. -# 370 = The friend declaration is not in the correct form for either a function or a class. -# (future error) -# 600 = Type specifier is omitted; "int" is no longer assumed. -DISWARN=+W67,251,370,600 - -# architecture dependent flags for the C and C++ compiler that can be changed by -# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build -ARCH_FLAGS*= - -#CXX=/opt/aCC/bin/aCC -#CC=/opt/ansic/bin/cc -CXX=g++ -CC=gcc -CFLAGSWALL=-Wall -CFLAGS=-nostdinc -c -CFLAGSCC=-pipe -fguiding-decls $(ARCH_FLAGS) -CFLAGSCXX=-pipe -fguiding-decls $(ARCH_FLAGS) -PICSWITCH:=-fPIC -CFLAGSOBJGUIMT= -CFLAGSOBJCUIMT= -CFLAGSSLOGUIMT=$(PICSWITCH) -CFLAGSSLOCUIMT=$(PICSWITCH) -CFLAGSPROF= -CFLAGSDEBUG=-g -CFLAGSDBGUTIL= -CFLAGSOPT=-O2 -CFLAGSNOOPT= -CFLAGSOUTOBJ=-o - - - #THREADLIB=-L/opt/dce/lib -ldce -# use native aCC to build or link with shared libs, for the sake of -# global class-instances - -STATIC = -Bstatic -DYNAMIC = -Bdynamic - -#LINK=$(SOLARENV)/unxhpgr/lib/gcc-lib/hppa1.1-hp-hpux10.20/egcs-2.90.29/ld -LINK=ld -LINKFLAGS=-L/nw386/dev/s/solenv/unxhpgr/lib/gcc-lib/hppa1.1-hp-hpux10.20/egcs-2.91.57/threads -L/nw386/dev/s/solenv/unxhpgr/lib/gcc-lib/hppa1.1-hp-hpux10.20/egcs-2.91.57 -LINKFLAGSAPPGUI= /usr/lib/crt0.o -LINKFLAGSSHLGUI= -b -noinhibit-exec -Bsymbolic -G $(THREADLIB) -LINKFLAGSAPPCUI= /usr/lib/crt0.o -LINKFLAGSSHLCUI= -b -noinhibit-exec -warn-once -Bsymbolic -G -LINKFLAGSTACK= -APPLINKSTATIC=-Bstatic -APPLINKSHARED=-Bsymbolic -APP_LINKTYPE= - -# reihenfolge der libs NICHT egal! -STDOBJGUI= -STDSLOGUI= -STDOBJCUI= -STDSLOCUI= -#STDLIBGUIMT= -lX11 -lXext -lcma -lsec -lcxx -ldld -lc_r -lm -STDLIBGUIMT= -lX11 -lXext -ldce -STDLIBCUIMT= -lc_r -lgcc -ldce -#STDSHLGUIMT= -lX11 -lXext -lcma -lsec -lcxx -ldld -lc_r -STDSHLGUIMT= -lcma -lsec -ldld -lc_r -STDSHLCUIMT= -# -L/opt/dce/lib -ldce -lsec -lcxx - -LIBMGR=ar -LIBFLAGS=-r -# LIBEXT=.so - -IMPLIB= -IMPLIBFLAGS= - -MAPSYM= -MAPSYMFLAGS= - -RC= -RCFLAGS= -RCLINK= -RCLINKFLAGS= -RCSETVERSION= - -DLLPOSTFIX=hg -DLLPRE=lib -DLLPOST=.sl - -LDUMP=c++filt - -.IF "$(PRJNAME)"=="uno" || "$(PRJNAME)"=="vos" -#CFLAGS += -D_PTHREADS -U_REENTRANT -U_POSIX_PTHREAD_SEMANTICS -#CFLAGSSLO += -instances=extern -template=wholeclass -ptr$(SLO) -#CFLAGSOBJ += -instances=global -template=wholeclass -ptr$(SLO) -#LINKFLAGS+= -temp=/tmp -PIC -instances=extern -ptr$(SLO) -.ENDIF - -#SHLLINKARCONLY=yes - diff --git a/solenv/inc/unxhpxr.mk b/solenv/inc/unxhpxr.mk deleted file mode 100644 index 174d61fc2b4c..000000000000 --- a/solenv/inc/unxhpxr.mk +++ /dev/null @@ -1,131 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -# mak file fuer unxhpxr -ASM= -AFLAGS= - -CDEFS+=-D_PTHREADS -D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DSYSV -D_POSIX_PTHREAD_SEMANTICS -D_HPUX_SOURCE -DRWSTD_MULTI_THREAD -D_REENTRANT -D__HPACC_NOEH -D__STL_NO_EXCEPTIONS - -# kann c++ was c braucht?? - -# obernervige Warnungen abschalten -# 67 = invalid pragma name -# 251 = An object cannot be deleted using a pointer of type 'void *' since the -# type of the object allocated is unknown. -# 370 = The friend declaration is not in the correct form for either a function or a class. -# (future error) -# 600 = Type specifier is omitted; "int" is no longer assumed. -DISWARN=+W67,251,370,600 - -# architecture dependent flags for the C and C++ compiler that can be changed by -# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build -ARCH_FLAGS*= - -#CXX=/opt/aCC/bin/aCC -#CC=/opt/ansic/bin/cc -CXX=aCC -CC=cc -CFLAGS= -c -CFLAGSCC= -Aa +e +Z $(ARCH_FLAGS) -CFLAGSCXX=$(DISWARN) +Z $(ARCH_FLAGS) -CFLAGSOBJGUIMT= -CFLAGSOBJCUIMT= -CFLAGSSLOGUIMT= -CFLAGSSLOCUIMT= -CFLAGSPROF= -CFLAGSDEBUG=-g -CFLAGSDBGUTIL= -CFLAGSOPT=-O -CFLAGSNOOPT= -CFLAGSOUTOBJ=-o - - -THREADLIB=-L/opt/dce/lib -ldce -# use native aCC to build or link with shared libs, for the sake of -# global class-instances -LINK=/opt/aCC/bin/aCC -LINKFLAGS= -LINKFLAGSAPPGUI=-Wl,+s -LINKFLAGSSHLGUI=-b -L/usr/solar/lib -L/usr/contrib/X11R6/lib -LINKFLAGSAPPCUI=-Wl,+s -LINKFLAGSSHLCUI=-b -L/usr/contrib/X11R6/lib -LINKFLAGSTACK= -LINKFLAGSPROF= -LINKFLAGSDEBUG= -LINKFLAGSOPT= - -# reihenfolge der libs NICHT egal! -STDOBJGUI= -STDSLOGUI= -STDOBJCUI= -STDSLOCUI= -#STDLIBGUIMT= -lX11 -lXext -lcma -lsec -lcxx -ldld -lc_r -lm -STDLIBGUIMT= -lX11 -lXext -lpthread -STDLIBCUIMT= -lcma -#STDSHLGUIMT= -lX11 -lXext -lcma -lsec -lcxx -ldld -lc_r -STDSHLCUIMT= -# -L/opt/dce/lib -ldce -lsec -lcxx - -LIBMGR=ar -LIBFLAGS=-r -# LIBEXT=.so - -IMPLIB= -IMPLIBFLAGS= - -MAPSYM= -MAPSYMFLAGS= - -RC= -RCFLAGS= -RCLINK= -RCLINKFLAGS= -RCSETVERSION= - -DLLPOSTFIX=hr -DLLPRE=lib -DLLPOST=.sl - -LDUMP=c++filt - -.IF "$(WORK_STAMP)"!="MIX364" -DLLPOSTFIX=ss -.ELSE -DLLPOSTFIX= -.ENDIF - - -.IF "$(PRJNAME)"=="uno" || "$(PRJNAME)"=="vos" -#CFLAGS += -D_PTHREADS -U_REENTRANT -U_POSIX_PTHREAD_SEMANTICS -#CFLAGSSLO += -instances=extern -template=wholeclass -ptr$(SLO) -#CFLAGSOBJ += -instances=global -template=wholeclass -ptr$(SLO) -#LINKFLAGS+= -temp=/tmp -PIC -instances=extern -ptr$(SLO) -.ENDIF - -#SHLLINKARCONLY=yes - diff --git a/solenv/inc/unxiosr.mk b/solenv/inc/unxiosr.mk new file mode 100644 index 000000000000..3235026c9846 --- /dev/null +++ b/solenv/inc/unxiosr.mk @@ -0,0 +1,76 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# --- Unix Environment for iOS cross-compilation ------------- + +CFLAGS=-c $(EXTRA_CFLAGS) + +LINKC*=$(CC) +LINK*=$(CXX) + +STDLIBCUIMT=-framework CoreFoundation +STDLIBGUIMT=-framework CoreFoundation +STDSHLCUIMT=-framework CoreFoundation +STDSHLGUIMT=-framework CoreFoundation + +LIBMGR*=ar +LIBFLAGS=-r + +PROCESSOR_DEFINES=-DARM32 + +DLLPRE=lib +DLLPOST=.a + +# flags to enable build with symbols +CFLAGSENABLESYMBOLS=-g + +# Flag for including debugging information in object files +CFLAGSDEBUG=-g +CFLAGSDBGUTIL= + +# Flag to specify output file to compiler/linker +CFLAGSOUTOBJ=-o + +# # Include generic Mac OS X makefile +# .INCLUDE : unxmacx.mk + +# --- general *ix settings --- +HC=hc +HCFLAGS= +PATH_SEPERATOR*=: +CDEFS+=-D__DMAKE + +CDEFS+=-DUNIX + +YACC*=yacc +YACCFLAGS*=-d -t + +EXECPOST= +SCPPOST=.ins +DLLDEST=$(LB) + +OOO_LIBRARY_PATH_VAR = DYLD_LIBRARY_PATH diff --git a/solenv/inc/unxlng.mk b/solenv/inc/unxlng.mk index fd9f7832808d..62746cee4f15 100644 --- a/solenv/inc/unxlng.mk +++ b/solenv/inc/unxlng.mk @@ -25,244 +25,8 @@ # #************************************************************************* -# generic mk file for unxlng (unix linux glibc) -ASM*= -AFLAGS*= -SOLAR_JAVA*= -# default optimization level for product code -CDEFAULTOPT*=-O2 -# architecture dependent flags for the C and C++ compiler that can be changed by -# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build -ARCH_FLAGS*= -# position independent code switch -PICSWITCH*:=-fpic -JAVAFLAGSDEBUG=-g +CDEFS+=-DGLIBC=2 +PTHREAD_LIBS=-lpthread +DL_LIB=-ldl -# filter for supressing verbose messages from linker -#not needed at the moment -#LINKOUTPUT_FILTER=" |& $(SOLARENV)/bin/msg_filter" - -# _PTHREADS is needed for the stl -CDEFS+=-DGLIBC=2 -D_PTHREADS -D_REENTRANT -DNEW_SOLAR -D_USE_NAMESPACE=1 -DSTLPORT_VERSION=$(STLPORT_VER) - -# enable visibility define in "sal/types.h" -.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" -CDEFS += -DHAVE_GCC_VISIBILITY_FEATURE -.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" - -# this is a platform with JAVA support -.IF "$(SOLAR_JAVA)"!="" -JAVADEF=-DSOLAR_JAVA -.IF "$(debug)"=="" -JAVA_RUNTIME=-ljava -.ELSE -JAVA_RUNTIME=-ljava_g -.ENDIF -.ENDIF - -# name of C++ Compiler -CXX*=g++ -# name of C Compiler -CC*=gcc -.IF "$(SYSBASE)"!="" -CFLAGS_SYSBASE:=--sysroot=$(SYSBASE) -CXX+:=$(CFLAGS_SYSBASE) -CC+:=$(CFLAGS_SYSBASE) -.ENDIF # "$(SYSBASE)"!="" -CFLAGS+=-fmessage-length=0 -c - -# flags to enable build with symbols; required for crashdump feature -.IF "$(ENABLE_SYMBOLS)"=="SMALL" -CFLAGSENABLESYMBOLS=-g1 -.ELSE -CFLAGSENABLESYMBOLS=-g # was temporarily commented out, reenabled before Beta - -.ENDIF - -# flags for the C++ Compiler -CFLAGSCC= -pipe $(ARCH_FLAGS) -# Flags for enabling exception handling -CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs -# Flags for disabling exception handling -CFLAGS_NO_EXCEPTIONS=-fno-exceptions - -# -fpermissive should be removed as soon as possible -CFLAGSCXX= -pipe $(ARCH_FLAGS) -.IF "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" -CFLAGSCXX += -fvisibility-inlines-hidden -.ENDIF # "$(HAVE_GCC_VISIBILITY_FEATURE)" == "TRUE" - -CFLAGS_CREATE_PCH=-x c++-header -I$(INCPCH) -DPRECOMPILED_HEADERS -CFLAGS_USE_PCH=-I$(SLO)$/pch -DPRECOMPILED_HEADERS -Winvalid-pch -CFLAGS_USE_EXCEPTIONS_PCH=-I$(SLO)$/pch_ex -DPRECOMPILED_HEADERS -Winvalid-pch - -# Compiler flags for compiling static object in multi threaded environment with graphical user interface -CFLAGSOBJGUIMT= -# Compiler flags for compiling static object in multi threaded environment with character user interface -CFLAGSOBJCUIMT= -# Compiler flags for compiling shared object in multi threaded environment with graphical user interface -CFLAGSSLOGUIMT=$(PICSWITCH) -# Compiler flags for compiling shared object in multi threaded environment with character user interface -CFLAGSSLOCUIMT=$(PICSWITCH) -# Compiler flags for profiling -CFLAGSPROF= -# Compiler flags for debugging -CFLAGSDEBUG=-g -CFLAGSDBGUTIL= -# Compiler flags for enabling optimizations -.IF "$(PRODUCT)"!="" -CFLAGSOPT=$(CDEFAULTOPT) -fno-strict-aliasing # optimizing for products -.ELSE # "$(PRODUCT)"!="" -CFLAGSOPT= # no optimizing for non products -.ENDIF # "$(PRODUCT)"!="" -# Compiler flags for disabling optimizations -CFLAGSNOOPT=-O0 -# Compiler flags for describing the output path -CFLAGSOUTOBJ=-o - -# -Wshadow does not work for C with nested uses of pthread_cleanup_push: -CFLAGSWARNCC=-Wall -Wextra -Wendif-labels -CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wshadow -Wno-ctor-dtor-privacy \ - -Wno-non-virtual-dtor -CFLAGSWALLCC=$(CFLAGSWARNCC) -CFLAGSWALLCXX=$(CFLAGSWARNCXX) -CFLAGSWERRCC=-Werror - -# Once all modules on this platform compile without warnings, set -# COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see -# settings.mk): -MODULES_WITH_WARNINGS := \ - soldep - -# switches for dynamic and static linking -STATIC = -Wl,-Bstatic -DYNAMIC = -Wl,-Bdynamic - -# name of linker -LINK*=$(CXX) -LINKC*=$(CC) - -# default linker flags -.IF "$(SYSBASE)"!="" -LINKFLAGS_SYSBASE:=-Wl,--sysroot=$(SYSBASE) -.ENDIF # "$(SYSBASE)"!="" -LINKFLAGSDEFS*=-Wl,-z,defs -LINKFLAGSRUNPATH_URELIB=-Wl,-rpath,\''$$ORIGIN'\' -LINKFLAGSRUNPATH_UREBIN=-Wl,-rpath,\''$$ORIGIN/../lib:$$ORIGIN'\' - #TODO: drop $ORIGIN once no URE executable is also shipped in OOo -LINKFLAGSRUNPATH_OOO=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../ure-link/lib'\' -LINKFLAGSRUNPATH_SDK=-Wl,-rpath,\''$$ORIGIN/../../ure-link/lib'\' -LINKFLAGSRUNPATH_BRAND=-Wl,-rpath,\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../basis-link/ure-link/lib'\' -LINKFLAGSRUNPATH_OXT= -LINKFLAGSRUNPATH_BOXT=-Wl,-rpath,\''$$ORIGIN/../../../basis-link/program'\' -LINKFLAGSRUNPATH_NONE= -LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS) $(LINKFLAGS_SYSBASE) -.IF "$(HAVE_LD_BSYMBOLIC_FUNCTIONS)" == "TRUE" -LINKFLAGS += -Wl,-Bsymbolic-functions -Wl,--dynamic-list-cpp-new -Wl,--dynamic-list-cpp-typeinfo -.ENDIF - -# linker flags for linking applications -LINKFLAGSAPPGUI= -Wl,-export-dynamic -Wl,--noinhibit-exec \ - -Wl,-rpath-link,$(LB):$(SOLARLIBDIR):$(SYSBASE)/lib:$(SYSBASE)/usr/lib -LINKFLAGSAPPCUI= -Wl,-export-dynamic -Wl,--noinhibit-exec \ - -Wl,-rpath-link,$(LB):$(SOLARLIBDIR):$(SYSBASE)/lib:$(SYSBASE)/usr/lib - -# linker flags for linking shared libraries -LINKFLAGSSHLGUI= -shared -LINKFLAGSSHLCUI= -shared - -LINKFLAGSTACK= -LINKFLAGSPROF= -LINKFLAGSDEBUG=-g -LINKFLAGSOPT= - -# linker flags for optimization (symbol hashtable) -# for now, applied to symbol scoped libraries, only -LINKFLAGSOPTIMIZE*=-Wl,-O1 -LINKVERSIONMAPFLAG=$(LINKFLAGSOPTIMIZE) -Wl,--version-script - -SONAME_SWITCH=-Wl,-h - -# Sequence of libs does matter ! - -STDLIBCPP=-lstdc++ - -# default objectfilenames to link -STDOBJVCL=$(L)$/salmain.o -STDOBJGUI= -STDSLOGUI= -STDOBJCUI= -STDSLOCUI= - -.IF "$(ALLOC)" == "TCMALLOC" -STDLIBGUIMT+=-ltcmalloc -STDLIBCUIMT+=-ltcmalloc -STDSHLGUIMT+=-ltcmalloc -STDSHLCUIMT+=-ltcmalloc -.ENDIF - -.IF "$(ALLOC)" == "JEMALLOC" -STDLIBGUIMT+=-ljemalloc -STDLIBCUIMT+=-ljemalloc -STDSHLGUIMT+=-ljemalloc -STDSHLCUIMT+=-ljemalloc -.ENDIF - -.IF "$(HAVE_LD_HASH_STYLE)" == "TRUE" -LINKFLAGS += -Wl,--hash-style=both -.ELSE -LINKFLAGS += -Wl,-zdynsort -.ENDIF - -# libraries for linking applications -STDLIBGUIMT+=-Wl,--as-needed -ldl -lpthread -lm -Wl,--no-as-needed -STDLIBCUIMT+=-Wl,--as-needed -ldl -lpthread -lm -Wl,--no-as-needed -# libraries for linking shared libraries -STDSHLGUIMT+=-Wl,--as-needed -ldl -lpthread -lm -Wl,--no-as-needed -STDSHLCUIMT+=-Wl,--as-needed -ldl -lpthread -lm -Wl,--no-as-needed - -X11LINK_DYNAMIC = -Wl,--as-needed -lXext -lX11 -Wl,--no-as-needed - -LIBSALCPPRT*=-Wl,--whole-archive -lsalcpprt -Wl,--no-whole-archive - -.IF "$(USE_STLP_DEBUG)" != "" -.IF "$(STLPORT_VER)" >= "500" -LIBSTLPORT=$(DYNAMIC) -lstlportstlg -LIBSTLPORTST=$(STATIC) -lstlportstlg $(DYNAMIC) -.ELSE -LIBSTLPORT=$(DYNAMIC) -lstlport_gcc_stldebug -LIBSTLPORTST=$(STATIC) -lstlport_gcc_stldebug $(DYNAMIC) -.ENDIF -.ELSE # "$(USE_STLP_DEBUG)" != "" -.IF "$(STLPORT_VER)" >= "500" -LIBSTLPORT=$(DYNAMIC) -lstlport -LIBSTLPORTST=$(STATIC) -lstlport $(DYNAMIC) -.ELSE -LIBSTLPORT=$(DYNAMIC) -lstlport_gcc -LIBSTLPORTST=$(STATIC) -lstlport_gcc $(DYNAMIC) -.ENDIF -.ENDIF # "$(USE_STLP_DEBUG)" != "" - -#FILLUPARC=$(STATIC) -lsupc++ $(DYNAMIC) - -# name of library manager -LIBMGR*=ar -LIBFLAGS=-r - -# tool for generating import libraries -IMPLIB= -IMPLIBFLAGS= - -MAPSYM= -MAPSYMFLAGS= - -RC=irc -RCFLAGS=-fo$@ $(RCFILES) -RCLINK= -RCLINKFLAGS= -RCSETVERSION= - -# platform specific identifier for shared libs -DLLPRE=lib -DLLPOST=.so -PCHPOST=.gch +.INCLUDE : unxgcc.mk diff --git a/solenv/inc/unxlnga.mk b/solenv/inc/unxlnga.mk index da5d2fcd3d38..e7882f3a905a 100644 --- a/solenv/inc/unxlnga.mk +++ b/solenv/inc/unxlnga.mk @@ -29,5 +29,4 @@ .INCLUDE : unxlng.mk CFLAGS+=-DIA64 -DLLPOSTFIX=la BUILD64=1 diff --git a/solenv/inc/unxlngaxp.mk b/solenv/inc/unxlngaxp.mk index bf7711a10c5b..fdeb932f2264 100644 --- a/solenv/inc/unxlngaxp.mk +++ b/solenv/inc/unxlngaxp.mk @@ -30,5 +30,5 @@ PICSWITCH:=-fPIC .INCLUDE : unxlng.mk CFLAGS+=-DAXP -DLLPOSTFIX=ll +LINKFLAGS+=-Wl,--no-relax BUILD64=1 diff --git a/solenv/inc/unxlnghppa.mk b/solenv/inc/unxlnghppa.mk index 7ae2d25c332e..41a428e31689 100644 --- a/solenv/inc/unxlnghppa.mk +++ b/solenv/inc/unxlnghppa.mk @@ -32,4 +32,3 @@ CDEFS+=-DHPPA CFLAGS+= CFLAGSCC+= CFLAGSCXX+= -DLLPOSTFIX=lh diff --git a/solenv/inc/unxlngi.mk b/solenv/inc/unxlngi.mk index d86aab185d0e..79c255c326a2 100644 --- a/solenv/inc/unxlngi.mk +++ b/solenv/inc/unxlngi.mk @@ -27,8 +27,11 @@ # mk file for Unix Linux Intel (X86) using GCC, please make generic modifications to unxlng.mk CDEFAULTOPT=-Os +.IF "$(GCCNUMVER)" >= "000400050000" +ARCH_FLAGS*=-mtune=atom +.ELSE ARCH_FLAGS*=-mtune=pentiumpro +.ENDIF .INCLUDE : unxlng.mk CDEFS+=-DX86 DLLPOST=.so -DLLPOSTFIX=li diff --git a/solenv/inc/unxlngm68k.mk b/solenv/inc/unxlngm68k.mk index da6ed55d8cfd..b6a018a10a1d 100644 --- a/solenv/inc/unxlngm68k.mk +++ b/solenv/inc/unxlngm68k.mk @@ -34,4 +34,3 @@ CDEFS+=-DM68K CFLAGS+=-fsigned-char -fno-omit-frame-pointer CFLAGSCC+=-fsigned-char CFLAGSCXX+=-fsigned-char -DLLPOSTFIX=lm diff --git a/solenv/inc/unxlngmips.mk b/solenv/inc/unxlngmips.mk index 53c927d10b32..783305d6c9d1 100644 --- a/solenv/inc/unxlngmips.mk +++ b/solenv/inc/unxlngmips.mk @@ -30,4 +30,3 @@ CDEFAULTOPT=-Os .INCLUDE : unxlng.mk CDEFS+=-DMIPS -DLLPOSTFIX=lm diff --git a/solenv/inc/unxlngppc.mk b/solenv/inc/unxlngppc.mk index 89b2501bf366..af528d96ee94 100644 --- a/solenv/inc/unxlngppc.mk +++ b/solenv/inc/unxlngppc.mk @@ -31,4 +31,3 @@ DEFAULTOPT=-Os PICSWITCH:=-fPIC .INCLUDE : unxlng.mk CDEFS+=-DPOWERPC -DPPC -DLLPOSTFIX=lp diff --git a/solenv/inc/unxlngr.mk b/solenv/inc/unxlngr.mk index 1bcbb6626219..81ee90ca4f0e 100644 --- a/solenv/inc/unxlngr.mk +++ b/solenv/inc/unxlngr.mk @@ -31,4 +31,3 @@ CDEFAULTOPT=-Os .INCLUDE : unxlng.mk CDEFS+=-DARM32 CFLAGS+=-fno-omit-frame-pointer -DLLPOSTFIX=lr diff --git a/solenv/inc/unxlngs.mk b/solenv/inc/unxlngs.mk index b4e6f5f58f4d..390244f31d6c 100644 --- a/solenv/inc/unxlngs.mk +++ b/solenv/inc/unxlngs.mk @@ -33,4 +33,3 @@ CDEFAULTOPT=-Os PICSWITCH:=-fPIC .INCLUDE : unxlng.mk CDEFS+=-DSPARC -DLLPOSTFIX=ls diff --git a/solenv/inc/unxlngs390.mk b/solenv/inc/unxlngs390.mk index 47e2e37011e8..0eac39af0b9d 100644 --- a/solenv/inc/unxlngs390.mk +++ b/solenv/inc/unxlngs390.mk @@ -33,4 +33,3 @@ CDEFS+=-DS390 CFLAGS+=-fsigned-char -fno-omit-frame-pointer CFLAGSCC+=-fsigned-char CFLAGSCXX+=-fsigned-char -DLLPOSTFIX=l3 diff --git a/solenv/inc/unxlngx.mk b/solenv/inc/unxlngx.mk index 414f15d0dc92..9c89eddefad9 100644 --- a/solenv/inc/unxlngx.mk +++ b/solenv/inc/unxlngx.mk @@ -29,5 +29,4 @@ .INCLUDE : unxlng.mk CDEFS+=-DX86_64 -DLLPOSTFIX=lx BUILD64=1 diff --git a/solenv/inc/unxmacx.mk b/solenv/inc/unxmacx.mk index ce049a672d23..c862f948b571 100644 --- a/solenv/inc/unxmacx.mk +++ b/solenv/inc/unxmacx.mk @@ -29,7 +29,7 @@ # Platform MAKEFILE for Mac OS X and Darwin on both PowerPC and Intel ########################################################################## -# PROCESSOR_DEFINES and DLLPOSTFIX are defined in the particular platform file +# PROCESSOR_DEFINES is defined in the particular platform file ASM= AFLAGS= @@ -38,10 +38,7 @@ LINKOUTPUT_FILTER= # Definitions that we may need on the compile line. # -D_PTHREADS and -D_REENTRANT are needed for STLport, and must be specified when # compiling STLport sources too, either internally or externally. -CDEFS+=-DGLIBC=2 -D_PTHREADS -D_REENTRANT -DNO_PTHREAD_PRIORITY $(PROCESSOR_DEFINES) -DSTLPORT_VERSION=$(STLPORT_VER) -D_USE_NAMESPACE=1 -.IF "$(GUIBASE)"=="unx" && "$(USE_SYSTEM_STL)"!="YES" -CDEFS+=-DX_LOCALE -.ENDIF +CDEFS+=-DGLIBC=2 -D_PTHREADS -D_REENTRANT -DNO_PTHREAD_PRIORITY $(PROCESSOR_DEFINES) -D_USE_NAMESPACE=1 .IF "$(GUIBASE)"=="aqua" # MAXOSX_DEPLOYMENT_TARGET : The minimum version required to run the build, # build can assume functions/libraries of that version to be available @@ -166,27 +163,6 @@ CDEFS+=$(EXTRA_CDEFS) STDLIBCPP=-lstdc++ # --------------------------------- -# STLport library names -# --------------------------------- -.IF "$(USE_STLP_DEBUG)" != "" -.IF "$(STLPORT_VER)" >= "500" -LIBSTLPORT=-lstlportstlg -LIBSTLPORTST=$(STATIC) -lstlportstlg -.ELSE -LIBSTLPORT=-lstlport_gcc_stldebug -LIBSTLPORTST=$(SOLARVERSION)/$(INPATH)/lib/libstlport_gcc_stldebug.a -.ENDIF -.ELSE # "$(USE_STLP_DEBUG" != "" -.IF "$(STLPORT_VER)" >= "500" -LIBSTLPORT=-lstlport -LIBSTLPORTST=$(STATIC) -lstlport -.ELSE -LIBSTLPORT=-lstlport_gcc -LIBSTLPORTST=$(SOLARVERSION)/$(INPATH)/lib/libstlport_gcc.a -.ENDIF -.ENDIF # "$(USE_STLP_DEBUG" != "" - -# --------------------------------- # Link stage flags # --------------------------------- # always link with gcc since you may be linking c code and don't want -lstdc++ linked in! diff --git a/solenv/inc/unxmacxi.mk b/solenv/inc/unxmacxi.mk index 7c7f0a88f4f4..1e620f34407b 100644 --- a/solenv/inc/unxmacxi.mk +++ b/solenv/inc/unxmacxi.mk @@ -31,8 +31,6 @@ PROCESSOR_DEFINES=-DX86 -DLLPOSTFIX=mxi - # special for SO build environment .IF "$(SYSBASE)"!="" .IF "$(EXTRA_CFLAGS)"!="" @@ -42,12 +40,8 @@ CXXCPP*:=g++ -E $(EXTRA_CFLAGS) .ENDIF # "$(EXTRA_CFLAGS)"!="" .ENDIF # "$(SYSBASE)"!="" -# flags to enable build with symbols; required by crashdump feature -.IF "$(ENABLE_SYMBOLS)"=="SMALL" -CFLAGSENABLESYMBOLS=-g1 -.ELSE +# flags to enable build with symbols CFLAGSENABLESYMBOLS=-g -.ENDIF # Include generic Mac OS X makefile .INCLUDE : unxmacx.mk diff --git a/solenv/inc/unxmacxp.mk b/solenv/inc/unxmacxp.mk index 28b2881962de..805563a7fe14 100644 --- a/solenv/inc/unxmacxp.mk +++ b/solenv/inc/unxmacxp.mk @@ -31,7 +31,5 @@ PROCESSOR_DEFINES=-DPOWERPC -DPPC -DLLPOSTFIX=mxp - # Include generic Mac OS X makefile .INCLUDE : unxmacx.mk diff --git a/solenv/inc/unxnbsd.mk b/solenv/inc/unxnbsd.mk new file mode 100644 index 000000000000..b7d5e042e6fd --- /dev/null +++ b/solenv/inc/unxnbsd.mk @@ -0,0 +1,25 @@ +# +# mk file for NetBSD +# + +# arch specific defines +.IF "$(CPUNAME)" == "INTEL" +CDEFS+=-DX86 +.ENDIF + +.IF "$(CPUNAME)" == "X86_64" +CDEFS+=-DX86_64 +BUILD64=1 +.ENDIF + +.INCLUDE : unxgcc.mk + +# default linker flags +# NetBSD has no support for using relative paths with $ORIGIN +LINKFLAGSRUNPATH_UREBIN= +LINKFLAGSRUNPATH_OOO= +LINKFLAGSRUNPATH_SDK= +LINKFLAGSRUNPATH_BRAND= + +LINKFLAGSDEFS=-Wl,--ignore-unresolved-symbol,environ +LINKFLAGS=-Wl,-z,combreloc $(LINKFLAGSDEFS) diff --git a/solenv/inc/unxobsd.mk b/solenv/inc/unxobsd.mk new file mode 100644 index 000000000000..85fe81a12c52 --- /dev/null +++ b/solenv/inc/unxobsd.mk @@ -0,0 +1,85 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2000, 2010 Oracle and/or its affiliates. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Lesser General Public License version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# Makefile for OpenBSD + +<<<<<<< HEAD +$(eval $(call gb_Module_add_moduledirs,ooo,\ + basebmp \ + basegfx \ + dbaccess \ + canvas \ + comphelper \ + cppcanvas \ + editeng \ + framework \ + idl \ + linguistic \ + oox \ + padmin \ + regexp \ + reportdesign \ + sax \ + sfx2 \ + sot \ + starmath \ + svl \ + svtools \ + svx \ + sw \ + toolkit \ + tools \ + ucbhelper \ + unotools \ + unoxml \ + vbahelper \ + wizards \ + writerfilter \ + vcl \ + xmloff \ + xmlreader \ + xmlscript \ +)) +======= +# arch specific defines +.IF "$(CPUNAME)" == "INTEL" +CDEFS+=-DX86 +.ENDIF +.IF "$(CPUNAME)" == "X86_64" +CDEFS+=-DX86_64 +ARCH_FLAGS*= +BUILD64=1 +.ENDIF +>>>>>>> master + +.INCLUDE : unxgcc.mk + +# disable exceptions in boost +CFLAGS_NO_EXCEPTIONS+=-DBOOST_NO_EXCEPTIONS + +# default linker flags +LINKFLAGSDEFS:= diff --git a/solenv/inc/unxscoi.mk b/solenv/inc/unxscoi.mk deleted file mode 100644 index 901fe7b2cb22..000000000000 --- a/solenv/inc/unxscoi.mk +++ /dev/null @@ -1,140 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - - -# mak file fuer wnticci -ASM= -AFLAGS= - -CDEFS+=-D_PTHREADS -D_REENTRANT -CDEFS+=-D_STD_NO_NAMESPACE -D_VOS_NO_NAMESPACE -D_UNO_NO_NAMESPACE -DX86 -DNEW_SOLAR -# kann c++ was c braucht?? - -# architecture dependent flags for the C and C++ compiler that can be changed by -# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build -ARCH_FLAGS*=-mpentium - -CXX*=/nw386/dev/s/solenv/unxscoi/bin/g++ -CC*=/nw386/dev/s/solenv/unxscoi/bin/gcc -CFLAGS=-c -CFLAGSCC=$(ARCH_FLAGS) -CFLAGSEXCEPTIONS=-fexceptions -CFLAGS_NO_EXCEPTIONS=-fno-exceptions -CFLAGSCXX=-fguiding-decls -frtti $(ARCH_FLAGS) -PICSWITCH:=-fPIC -CFLAGSOBJGUIMT=$(PICSWITCH) -CFLAGSOBJCUIMT=$(PICSWITCH) -CFLAGSSLOGUIMT=$(PICSWITCH) -CFLAGSSLOCUIMT=$(PICSWITCH) -CFLAGSPROF= -CFLAGSDEBUG=-g -CFLAGSDBGUTIL= -CFLAGSOPT=-O2 -CFLAGSNOOPT=-O -CFLAGSOUTOBJ=-o - -CFLAGSWARNCC= -CFLAGSWARNCXX=$(CFLAGSWARNCC) -Wno-ctor-dtor-privacy -# -Wshadow does not work for C with nested uses of pthread_cleanup_push: -CFLAGSWALLCC=-Wall -Wextra -Wendif-labels -CFLAGSWALLCXX=$(CFLAGSWALLCC) -Wshadow -Wno-ctor-dtor-privacy -CFLAGSWERRCC=-Werror - -STATIC = -Wl,-Bstatic -DYNAMIC = -Wl,-Bdynamic - -THREADLIB= -LINK=/nw386/dev/s/solenv/unxscoi/bin/gcc -LINKFLAGS= -# SCO hat grosse Probleme mit fork/exec und einigen shared libraries -# rsc2 muss daher statisch gelinkt werden -.IF "$(PRJNAME)"=="rsc" -LINKFLAGSAPPGUI=-L/nw386/dev/s/solenv/unxscoi/lib $(STATIC) -lpthread_init $(DYNAMIC) -LINKFLAGSAPPCUI=-L/nw386/dev/s/solenv/unxscoi/lib $(STATIC) -lpthread_init $(DYNAMIC) -.ELSE -LINKFLAGSAPPGUI=-L/nw386/dev/s/solenv/unxscoi/lib -lpthread_init -LINKFLAGSAPPCUI=-L/nw386/dev/s/solenv/unxscoi/lib -lpthread_init -.ENDIF -LINKFLAGSSHLGUI=-G -W,l,-Bsymbolic -LINKFLAGSSHLCUI=-G -W,l,-Bsymbolic -LINKFLAGSTACK= -LINKFLAGSPROF= -LINKFLAGSDEBUG=-g -LINKFLAGSOPT= - -# standard C++ Library -# -# das statische dazulinken der libstdc++ macht jede shared library um 50k -# (ungestrippt) oder so groesser, auch wenn sie ueberhaupt nicht gebraucht -# wird. Da muessen wir uns was besseres ueberlegen. -STDLIBCPP=-Wl,-Bstatic -lstdc++ -Wl,-Bdynamic - -# reihenfolge der libs NICHT egal! -STDOBJGUI= -STDSLOGUI= -STDOBJCUI= -STDSLOCUI= -.IF "$(PRJNAME)"=="rsc" -STDLIBGUIMT=-lXext -lX11 $(STATIC) -lpthread $(DYNAMIC) -ldl -lsocket -lm -STDLIBCUIMT=$(STATIC) -lpthread $(DYNAMIC) -ldl -lsocket -lm -.ELSE -STDLIBGUIMT=-lXext -lX11 -lpthread -ldl -lsocket -lm -STDLIBCUIMT=-lpthread -ldl -lsocket -lm -.ENDIF -#STDSHLGUIMT=-lXext -lX11 -lpthread -ldl -lsocket -lm -#STDSHLCUIMT=-lpthread -ldl -lsocket -lm - -STDLIBCPP= -lstdc++ -SHLLINKARCONLY=yes - -LIBMGR=ar -LIBFLAGS=-r -# LIBEXT=.so - -IMPLIB= -IMPLIBFLAGS= - -MAPSYM= -MAPSYMFLAGS= - -RC=irc -RCFLAGS=-fo$@ $(RCFILES) -RCLINK= -RCLINKFLAGS= -RCSETVERSION= - -DLLPOSTFIX=ci -DLLPRE=lib -DLLPOST=.so - -LDUMP=cppfilt /b /n /o /p - -.IF "$(WORK_STAMP)"!="MIX364" -DLLPOSTFIX=ci -.ELSE -DLLPOSTFIX= -.ENDIF diff --git a/solenv/inc/unxsogi.mk b/solenv/inc/unxsogi.mk index ce82fca29fa9..1991089709f9 100644 --- a/solenv/inc/unxsogi.mk +++ b/solenv/inc/unxsogi.mk @@ -33,7 +33,7 @@ SOLAR_JAVA=TRUE JAVAFLAGSDEBUG=-g # _PTHREADS is needed for the stl -CDEFS+=-D_PTHREADS -D_REENTRANT -DSYSV -DSUN -DSUN4 -D_POSIX_PTHREAD_SEMANTICS -DSTLPORT_VERSION=$(STLPORT_VER) -D_USE_NAMESPACE=1 +CDEFS+=-D_PTHREADS -D_REENTRANT -DSYSV -DSUN -DSUN4 -D_POSIX_PTHREAD_SEMANTICS -D_USE_NAMESPACE=1 .IF "$(SOLAR_JAVA)"!="" @@ -112,14 +112,6 @@ STDSHLCUIMT=$(DYNAMIC) -lpthread -lthread -lm STDLIBGUIMT+=-lX11 -.IF "$(STLPORT_VER)" >= "500" -LIBSTLPORT=$(DYNAMIC) -lstlport -LIBSTLPORTST=$(STATIC) -lstlport $(DYNAMIC) -.ELSE -LIBSTLPORT=$(DYNAMIC) -lstlport_gcc -LIBSTLPORTST=$(STATIC) -lstlport_gcc $(DYNAMIC) -.ENDIF - LIBMGR=ar LIBFLAGS=-r # LIBEXT=.so @@ -136,6 +128,5 @@ RCLINK= RCLINKFLAGS= RCSETVERSION= -DLLPOSTFIX=sogi DLLPRE=lib DLLPOST=.so diff --git a/solenv/inc/unxsogs.mk b/solenv/inc/unxsogs.mk index dd0fb53272f8..5400be270e9b 100644 --- a/solenv/inc/unxsogs.mk +++ b/solenv/inc/unxsogs.mk @@ -33,7 +33,7 @@ SOLAR_JAVA=TRUE JAVAFLAGSDEBUG=-g # _PTHREADS is needed for the stl -CDEFS+=-D_PTHREADS -D_REENTRANT -DSYSV -DSUN -DSUN4 -D_POSIX_PTHREAD_SEMANTICS -DSTLPORT_VERSION=$(STLPORT_VER) -D_USE_NAMESPACE=1 +CDEFS+=-D_PTHREADS -D_REENTRANT -DSYSV -DSUN -DSUN4 -D_POSIX_PTHREAD_SEMANTICS -D_USE_NAMESPACE=1 .IF "$(SOLAR_JAVA)"!="" @@ -111,14 +111,6 @@ STDSHLCUIMT=$(DYNAMIC) -lpthread -lthread -lm STDLIBGUIMT+=-lX11 -.IF "$(STLPORT_VER)" >= "500" -LIBSTLPORT=$(DYNAMIC) -lstlport -LIBSTLPORTST=$(STATIC) -lstlport $(DYNAMIC) -.ELSE -LIBSTLPORT=$(DYNAMIC) -lstlport_gcc -LIBSTLPORTST=$(STATIC) -lstlport_gcc $(DYNAMIC) -.ENDIF - LIBMGR=ar LIBFLAGS=-r # LIBEXT=.so @@ -135,6 +127,5 @@ RCLINK= RCLINKFLAGS= RCSETVERSION= -DLLPOSTFIX=sogs DLLPRE=lib DLLPOST=.so diff --git a/solenv/inc/unxsoli4.mk b/solenv/inc/unxsoli4.mk index b1778a0edfde..a14da5da1a26 100644 --- a/solenv/inc/unxsoli4.mk +++ b/solenv/inc/unxsoli4.mk @@ -29,7 +29,7 @@ ASM=/usr/ccs/bin/as AFLAGS=-P -CDEFS+=-D_PTHREADS -DSYSV -DSUN -DSUN4 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DSTLPORT_VERSION=$(STLPORT_VER) +CDEFS+=-D_PTHREADS -DSYSV -DSUN -DSUN4 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS SOLAR_JAVA*=TRUE .IF "$(SOLAR_JAVA)"!="" @@ -87,7 +87,7 @@ CFLAGSOUTOBJ=-o # (this_type(p).swap(*this)) # - truncwarn: "conversion of 64 bit type value to smaller type causes # truncation" at least with CC 5.8 is reported only at the end of a -# compilation unit that uses std::hash_map<sal_Int64, sal_Int64> (see +# compilation unit that uses boost::unordered_map<sal_Int64, sal_Int64> (see # sfx2/source/toolbox/imgmgr.cxx:1.27) and thus unfortunately needs to be # disabled globally # - wnoretvalue: warning about the last statement of a function not @@ -106,8 +106,7 @@ CFLAGSWERRCXX=-xwe # Once all modules on this platform compile without warnings, set # COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see # settings.mk): -MODULES_WITH_WARNINGS := \ - soldep +MODULES_WITH_WARNINGS := STDOBJVCL=$(L)/salmain.o @@ -201,14 +200,6 @@ X11LINK_DYNAMIC = -lXext -lX11 # LIBSALCPPRT*=-z allextract -lsalcpprt -z defaultextract LIBSALCPPRT= -.IF "$(USE_STLP_DEBUG)" != "" -LIBSTLPORT=$(DYNAMIC) -lstlport_sunpro_debug -LIBSTLPORTST=$(STATIC) -lstlport_sunpro_debug $(DYNAMIC) -.ELSE -LIBSTLPORT=$(DYNAMIC) -lstlport_sunpro -LIBSTLPORTST=$(STATIC) -lstlport_sunpro $(DYNAMIC) -.ENDIF # "$(USE_STLP_DEBUG)" != "" - LIBMGR=CC LIBFLAGS=-xar -o @@ -225,8 +216,6 @@ RCLINK= RCLINKFLAGS= RCSETVERSION= -DLLPOSTFIX=si - DLLPRE=lib DLLPOST=.so diff --git a/solenv/inc/unxsols4.mk b/solenv/inc/unxsols4.mk index 4febb67d446a..11b6f15473aa 100644 --- a/solenv/inc/unxsols4.mk +++ b/solenv/inc/unxsols4.mk @@ -30,7 +30,7 @@ ASM=/usr/ccs/bin/as # needs -D__sparcv8plus because it's not defined by the assembler with -xarch=v8plus AFLAGS=-P -xarch=v8plus -D__sparcv8plus -CDEFS+=-D_PTHREADS -DSYSV -DSUN -DSUN4 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -DSTLPORT_VERSION=$(STLPORT_VER) +CDEFS+=-D_PTHREADS -DSYSV -DSUN -DSUN4 -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS SOLAR_JAVA*=TRUE .IF "$(SOLAR_JAVA)"!="" @@ -93,7 +93,7 @@ CFLAGSOUTOBJ=-o # (this_type(p).swap(*this)) # - truncwarn: "conversion of 64 bit type value to smaller type causes # truncation" at least with CC 5.8 is reported only at the end of a -# compilation unit that uses std::hash_map<sal_Int64, sal_Int64> (see +# compilation unit that uses boost::unordered_map<sal_Int64, sal_Int64> (see # sfx2/source/toolbox/imgmgr.cxx:1.27) and thus unfortunately needs to be # disabled globally # - wnoretvalue: warning about the last statement of a function not @@ -112,8 +112,7 @@ CFLAGSWERRCXX=-xwe # Once all modules on this platform compile without warnings, set # COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see # settings.mk): -MODULES_WITH_WARNINGS := \ - soldep +MODULES_WITH_WARNINGS := STDOBJVCL=$(L)/salmain.o @@ -207,14 +206,6 @@ X11LINK_DYNAMIC = -lXext -lX11 # LIBSALCPPRT*=-z allextract -lsalcpprt -z defaultextract LIBSALCPPRT= -.IF "$(USE_STLP_DEBUG)" != "" -LIBSTLPORT=$(DYNAMIC) -lstlport_sunpro_debug -LIBSTLPORTST=$(STATIC) -lstlport_sunpro_debug $(DYNAMIC) -.ELSE -LIBSTLPORT=$(DYNAMIC) -lstlport_sunpro -LIBSTLPORTST=$(STATIC) -lstlport_sunpro $(DYNAMIC) -.ENDIF # "$(USE_STLP_DEBUG)" != "" - LIBMGR=CC LIBFLAGS=-xar -o @@ -231,8 +222,6 @@ RCLINK= RCLINKFLAGS= RCSETVERSION= -DLLPOSTFIX=ss - DLLPRE=lib DLLPOST=.so diff --git a/solenv/inc/unxsolu4.mk b/solenv/inc/unxsolu4.mk index c73d6fc37283..76da3103880a 100644 --- a/solenv/inc/unxsolu4.mk +++ b/solenv/inc/unxsolu4.mk @@ -55,7 +55,7 @@ CC*=cc CFLAGS=$(PREENVCFLAGS) -c -temp=/tmp CFLAGSCC=-xCC $(ARCH_FLAGS) -CFLAGSCXX= -features=no%altspell -library=stlport4 $(ARCH_FLAGS) +CFLAGSCXX= -features=no%altspell $(ARCH_FLAGS) # flags to enable build with symbols; required for crashdump feature CFLAGSENABLESYMBOLS=-g0 -xs # was temporarily commented out, reenabled before Beta @@ -92,7 +92,7 @@ CFLAGSOUTOBJ=-o # (this_type(p).swap(*this)) # - truncwarn: "conversion of 64 bit type value to smaller type causes # truncation" at least with CC 5.8 is reported only at the end of a -# compilation unit that uses std::hash_map<sal_Int64, sal_Int64> (see +# compilation unit that uses boost::unordered_map<sal_Int64, sal_Int64> (see # sfx2/source/toolbox/imgmgr.cxx:1.27) and thus unfortunately needs to be # disabled globally # - wnoretvalue: "The last statement should return a value." @@ -111,8 +111,7 @@ CFLAGSWERRCXX=-xwe # Once all modules on this platform compile without warnings, set # COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see # settings.mk): -MODULES_WITH_WARNINGS := \ - soldep +MODULES_WITH_WARNINGS := STDOBJVCL=$(L)/salmain.o @@ -139,7 +138,7 @@ LINKFLAGSRUNPATH_BRAND=-R\''$$ORIGIN:$$ORIGIN/../basis-link/program:$$ORIGIN/../ LINKFLAGSRUNPATH_OXT= LINKFLAGSRUNPATH_BOXT=-R\''$$ORIGIN/../../../basis-link/program'\' LINKFLAGSRUNPATH_NONE= -LINKFLAGS=-m64 -w -mt -z combreloc -PIC -temp=/tmp -norunpath -library=stlport4 +LINKFLAGS=-m64 -w -mt -z combreloc -PIC -temp=/tmp -norunpath LINKCFLAGS=-m64 -w -mt -z combreloc -norunpath # -z text force fatal error if non PIC code is linked into shared library. Such code @@ -200,14 +199,6 @@ STDSHLGUIMT+=-lX11 -ldl # LIBSALCPPRT*=-z allextract -lsalcpprt -z defaultextract LIBSALCPPRT= -.IF "$(USE_STLP_DEBUG)" != "" -LIBSTLPORT=$(DYNAMIC) -lstlport_sunpro_debug -LIBSTLPORTST=$(STATIC) -lstlport_sunpro_debug $(DYNAMIC) -.ELSE -LIBSTLPORT=$(DYNAMIC) -lstlport_sunpro -LIBSTLPORTST=$(STATIC) -lstlport_sunpro $(DYNAMIC) -.ENDIF # "$(USE_STLP_DEBUG)" != "" - LIBMGR=CC LIBFLAGS=-xar -o @@ -224,8 +215,6 @@ RCLINK= RCLINKFLAGS= RCSETVERSION= -DLLPOSTFIX=su - DLLPRE=lib DLLPOST=.so diff --git a/solenv/inc/verinfo.hrc b/solenv/inc/verinfo.hrc index d0a585af90ee..66f0ec6f8327 100644 --- a/solenv/inc/verinfo.hrc +++ b/solenv/inc/verinfo.hrc @@ -54,11 +54,7 @@ // define order of date parts -------------------------------------------- -#if defined(LG_D) - #define VER_DMY -#else - #define VER_YMD -#endif +#define VER_YMD // set VERVARIANT to 0 if not defined ------------------------------------ @@ -158,19 +154,11 @@ #elif VER_MONTH==2 #define VER2 Feb #elif VER_MONTH==3 - #ifdef LG_D - #define VER2 M\344r - #else - #define VER2 Mar - #endif + #define VER2 Mar #elif VER_MONTH==4 #define VER2 Apr #elif VER_MONTH==5 - #ifdef LG_D - #define VER2 Mai - #else - #define VER2 May - #endif + #define VER2 May #elif VER_MONTH==6 #define VER2 Jun #elif VER_MONTH==7 @@ -180,26 +168,14 @@ #elif VER_MONTH==9 #define VER2 Sep #elif VER_MONTH==10 - #ifdef LG_D - #define VER2 Okt - #else - #define VER2 Oct - #endif + #define VER2 Oct #elif VER_MONTH==11 #define VER2 Nov #elif VER_MONTH==12 - #ifdef LG_D - #define VER2 Dez - #else - #define VER2 Dec - #endif + #define VER2 Dec #endif -#ifdef LG_D - #define VERC3(a, b, c) a.b.c -#else - #define VERC3(a, b, c) c-b-a -#endif +#define VERC3(a, b, c) c-b-a #define VERC4(a, b, c) VERC3(a, b, c) #define VER_DATE VERC4(VER5, VER2, VER_YEAR) @@ -219,11 +195,7 @@ #define S_CRIGHT PPS(VERC6(VER_YEARRANGE)) -#ifdef LG_D -#define S_VERSION PPS(Version VER_LEVEL vom VER_DATE) -#else #define S_VERSION PPS(Version VER_LEVEL of VER_DATE) -#endif #endif // _VERINFO_HRC diff --git a/solenv/inc/version.hrc b/solenv/inc/version.hrc index 0a0d0d103ac3..74dd722dc848 100755 --- a/solenv/inc/version.hrc +++ b/solenv/inc/version.hrc @@ -49,13 +49,8 @@ RCD_LANGUAGE rcdata { -#ifdef LG_D - "040704B0", // Germany -> Unicode - "040704E4", // Germany -> Windows, Multilingual -#else - "040904B0", // Germany -> Unicode + "040904B0", // USA -> Unicode "040904E4", // USA -> Windows, Multilingual -#endif "04090000", // USA -> 7-Bit-ASCII 0 // end of table } @@ -66,5 +61,4 @@ VS_VERSION_INFO rcdata { 0xF0, "sw", 0x0F, VER_YEAR, VER_MONTH, VER_DAY, VERSION, SUBVERSION, VERVARIANT, VER_COUNT -}; - +} diff --git a/solenv/inc/version_so.hrc b/solenv/inc/version_so.hrc index 383f3530ccbf..2e4db98a2925 100755 --- a/solenv/inc/version_so.hrc +++ b/solenv/inc/version_so.hrc @@ -49,13 +49,8 @@ RCD_LANGUAGE rcdata { -#ifdef LG_D - "040704B0", // Germany -> Unicode - "040704E4", // Germany -> Windows, Multilingual -#else - "040904B0", // Germany -> Unicode + "040904B0", // USA -> Unicode "040904E4", // USA -> Windows, Multilingual -#endif "04090000", // USA -> 7-Bit-ASCII 0 // end of table } diff --git a/solenv/inc/win32/jni_md.h b/solenv/inc/win32/jni_md.h new file mode 100644 index 000000000000..b7aab253b350 --- /dev/null +++ b/solenv/inc/win32/jni_md.h @@ -0,0 +1,42 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2000, 2010 Oracle and/or its affiliates. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * This file is part of OpenOffice.org. + * + * OpenOffice.org is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License version 3 + * only, as published by the Free Software Foundation. + * + * OpenOffice.org is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License version 3 for more details + * (a copy is included in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU Lesser General Public License + * version 3 along with OpenOffice.org. If not, see + * <http://www.openoffice.org/license.html> + * for a copy of the LGPLv3 License. + */ + +/* Fake jni_md.h for use when cross-compiling to Windows */ + +#ifndef JNI_MD_H_INCLUDED +#define JNI_MD_H_INCLUDED + +#define JNIEXPORT __declspec (dllexport) +#define JNIIMPORT __declspec (dllimport) +#define JNICALL __stdcall + +typedef long jint; +typedef __int64 jlong; +typedef char jbyte; + +#endif /* JNI_MD_H_INCLUDED */ + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/inc/wnt.mk b/solenv/inc/wnt.mk index f369bd15ad30..8b65c5f393e3 100644 --- a/solenv/inc/wnt.mk +++ b/solenv/inc/wnt.mk @@ -30,14 +30,11 @@ # --- Compiler --- -.IF "$(OS)$(COM)$(CPU)" == "WNTMSCI" -.IF "$(COMEX)" == "10" -.INCLUDE : wntmsci10.mk -.ELSE -# for wntmsci11 (.Net 2005) and wntmsci12 (.Net 2008) -.INCLUDE : wntmsci11.mk -.ENDIF # "$(COMEX)" == "10" -.ENDIF # "$(OS)$(COM)$(CPU)" == "WNTMSCI" +.IF "$(OS)$(COM)" == "WNTMSC" +# for wntmsci12, wntmscx12, wntmsci13 and wntmscx13 +# (MSVC 2008 and MSVC 2010, 32- and 64-bit) +.INCLUDE : wntmsc.mk +.ENDIF # "$(OS)$(COM)" == "WNTMSC" .IF "$(COM)$(OS)$(CPU)" == "GCCWNTI" .INCLUDE : wntgcci.mk diff --git a/solenv/inc/wntgcci.mk b/solenv/inc/wntgcci.mk index 5951538458a4..2622ca6b1927 100755..100644 --- a/solenv/inc/wntgcci.mk +++ b/solenv/inc/wntgcci.mk @@ -27,8 +27,7 @@ # mk file for Window Intel using GCC -SOLAR_JAVA*=TRUE -FULL_DESK=TRUE +SOLAR_JAVA*= JAVAFLAGSDEBUG=-g # SOLAR JAva Unterstuetzung nur fuer wntmsci @@ -40,14 +39,11 @@ AFLAGS=/c /Cp /coff # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build ARCH_FLAGS*=-march=pentium -CXX*=gcc -### Der gcc vertraegt kein Semikolon im Include-Pfad RT -# old: -#CFLAGS=-c -Wall -I$(INCLUDE) $(OLE2DEF) -# new: -#CYGINC=$(INCLUDE:s/-I /-I/:+" ":s/;/ -I/:s/-I //:s/ / /) -CFLAGS=-fmessage-length=0 -c -nostdinc $(OLE2DEF) -### +CC*=i686-w64-mingw32-gcc +CXX*=i686-w64-mingw32-g++ + +CFLAGS+=-fmessage-length=0 -c + CFLAGSCC=-pipe $(ARCH_FLAGS) CFLAGSCXX=-pipe $(ARCH_FLAGS) CFLAGSEXCEPTIONS=-fexceptions -fno-enforce-eh-specs @@ -77,7 +73,7 @@ CFLAGSNOOPT=-O0 # Compiler flags for describing the output path CFLAGSOUTOBJ=-o #plattform hart setzen -CDEFS+=-DWIN32 -DWINVER=0x500 -D_WIN32_WINNT=0x500 -D_WIN32_IE=0x500 -D_M_IX86 -DSTLPORT_VERSION=450 -D_NATIVE_WCHAR_T_DEFINED -D_MSC_EXTENSIONS -D_FORCENAMELESSUNION +CDEFS+=-DWIN32 -DWINVER=0x500 -D_WIN32_WINNT=0x500 -D_WIN32_IE=0x500 -D_M_IX86 -D_NATIVE_WCHAR_T_DEFINED -D_MSC_EXTENSIONS -D_FORCENAMELESSUNION .IF "$(DYNAMIC_CRT)"!="" CDEFS+=-D_DLL .ENDIF @@ -98,7 +94,6 @@ MODULES_WITH_WARNINGS := \ extensions \ lingu \ r_tools \ - soldep \ starmath \ sw \ xmlsecurity @@ -110,18 +105,18 @@ LINK*=$(CXX) LINKC*=$(CC) CYGLIB=$(LIB:s/;/ -L/) -LINKFLAGS=-nostdlib -Wl,--enable-stdcall-fixup,--enable-runtime-pseudo-reloc-v2 -L$(CYGLIB) +LINKFLAGS= -Wl,--enable-stdcall-fixup,--enable-runtime-pseudo-reloc-v2 -L$(CYGLIB) .IF "$(USE_MINGW)"=="cygwin" MINGWLIBDIR=$(COMPATH)$/lib$/mingw .ELSE MINGWLIBDIR=$(COMPATH)$/lib .ENDIF -MINGWSSTDOBJ=$(MINGW_CLIB_DIR)$/crtbegin.o -MINGWSSTDENDOBJ=$(MINGW_CLIB_DIR)$/crtend.o -LINKFLAGSAPPGUI=-mwindows $(MINGWLIBDIR)$/crt2.o -LINKFLAGSSHLGUI=--warn-once -mwindows -shared $(MINGWLIBDIR)$/dllcrt2.o -LINKFLAGSAPPCUI=-mconsole $(MINGWLIBDIR)$/crt2.o -LINKFLAGSSHLCUI=--warn-once -mconsole -shared $(MINGWLIBDIR)$/dllcrt2.o +MINGWSSTDOBJ= +MINGWSSTDENDOBJ= +LINKFLAGSAPPGUI=-mwindows +LINKFLAGSSHLGUI=-Wl,--warn-once -mwindows -shared +LINKFLAGSAPPCUI=-mconsole +LINKFLAGSSHLCUI=-Wl,--warn-once -mconsole -shared LINKFLAGSTACK= LINKFLAGSPROF= LINKFLAGSDEBUG=-g @@ -164,25 +159,19 @@ STDLIBCUIMT+=-lmingw32 -lmoldname -lmingwex -Wl,--end-group $(UWINAPILIB) -lm -l STDSHLGUIMT+=-lmingw32 -lmoldname -lmingwex -Wl,--end-group $(UWINAPILIB) -lm -lkernel32 -luser32 -lmsvcrt STDSHLCUIMT+=-lmingw32 -lmoldname -lmingwex -Wl,--end-group $(UWINAPILIB) -lm -lkernel32 -luser32 -lmsvcrt -LIBSTLPORT=-lstlport_gcc -LIBSTLPORTST=-lstlport_gcc_static $(STDLIBCPP) - -LIBMGR=ar +LIBMGR=$(AR) LIBFLAGS=-rsu -IMPLIB=ld -IMPLIBFLAGS= - -MAPSYM=tmapsym +MAPSYM= MAPSYMFLAGS= -RC=rc -RCFLAGS=-D__MINGW32__ -DWIN32 -D_WIN32_IE=0x400 -fo$@ $(RCFILES) +RC=$(WINDRES) +RCFLAGS=-D__MINGW32__ -DWIN32 -D_WIN32_IE=0x400 $(RCFILES) +RCFLAGSOUTRES= RCLINK= RCLINKFLAGS= RCSETVERSION= -DLLPOSTFIX=gi PCHPOST=.gch ADVAPI32LIB=-ladvapi32 @@ -190,12 +179,11 @@ SHELL32LIB=-lshell32 GDI32LIB=-lgdi32 OLE32LIB=-lole32 OLEAUT32LIB=-loleaut32 -UUIDLIB=$(PSDK_HOME)$/lib$/uuid.lib +UUIDLIB=-luuid WINSPOOLLIB=-lwinspool IMM32LIB=-limm32 VERSIONLIB=-lversion WINMMLIB=-lwinmm -WSOCK32LIB=-lwsock32 MPRLIB=-lmpr WS2_32LIB=-lws2_32 KERNEL32LIB=-lkernel32 @@ -203,15 +191,26 @@ USER32LIB=-luser32 LIBCMT=-lmsvcrt COMDLG32LIB=-lcomdlg32 COMCTL32LIB=-lcomctl32 -CRYPT32LIB=$(PSDK_HOME)$/lib$/crypt32.lib -GDIPLUSLIB=$(PSDK_HOME)$/lib$/gdiplus.lib -DBGHELPLIB=$(PSDK_HOME)$/lib$/dbghelp.lib -MSILIB=$(PSDK_HOME)$/lib$/msi.lib -DDRAWLIB=$(DIRECTXSDK_LIB)/ddraw.lib -SHLWAPILIB=$(PSDK_HOME)$/lib$/shlwapi.lib -URLMONLIB=$(PSDK_HOME)$/lib$/urlmon.lib -UNICOWSLIB=$(PSDK_HOME)$/lib$/unicows.lib +CRYPT32LIB=-lcrypt32 +DDRAWLIB=-lddraw +SHLWAPILIB=-lshlwapi WININETLIB=-lwininet OLDNAMESLIB=-lmoldname -MSIMG32LIB=$(PSDK_HOME)$/lib$/msimg32.lib +MSIMG32LIB=-lmsimg32 PROPSYSLIB=-lpropsys + +# Libraries that neither mingw.org or mingw-w64 have. +# Thus have to use the Windows SDK ones. +GDIPLUSLIB=$(WINDOWS_SDK_HOME)$/lib$/gdiplus.lib +MSILIB=$(WINDOWS_SDK_HOME)$/lib$/msi.lib +URLMONLIB=$(WINDOWS_SDK_HOME)$/lib$/urlmon.lib + +# Libraries that mingw-w64 has but mingw.org doesn't. At least the OBS MinGW +# cross-compiler is based on mingw-w64. When using MinGW natively on Windows +# (which as such I don't think we want to support) let's use the Windows SDK +# libraries. +.IF "$(CROSS_COMPILING)"=="YES" +DBGHELPLIB=-ldbghelp +.ELSE +DBGHELPLIB=$(WINDOWS_SDK_HOME)$/lib$/dbghelp.lib +.ENDIF diff --git a/solenv/inc/wntmsci11.mk b/solenv/inc/wntmsc.mk index d70fb134f056..9aca574b0873 100755..100644 --- a/solenv/inc/wntmsci11.mk +++ b/solenv/inc/wntmsc.mk @@ -1,7 +1,7 @@ #************************************************************************* # # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# +# # Copyright 2000, 2010 Oracle and/or its affiliates. # # OpenOffice.org - a multi-platform office productivity suite @@ -25,16 +25,17 @@ # #************************************************************************* -# mk file for $(OS)$(COM)$(CPU)$(COMEX) == WNTMSCI11 and WNTMSCI12 +# mk file for $(OS)$(COM)$(CPU)$(COMEX) == WNTMSC[IX]{12,13} -SOLAR_JAVA*=TRUE -FULL_DESK=TRUE JAVAFLAGSDEBUG=-g -# SOLAR JAva Unterstuetzung nur fuer wntmsci - +.IF "$(CL_X64)" == "" ASM=ml AFLAGS=/c /Cp /coff /safeseh +.ELSE +ASM=ml64 +AFLAGS=/c /Cp +.ENDIF # architecture dependent flags for the C and C++ compiler that can be changed by # exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build @@ -88,18 +89,16 @@ CFLAGS+=-GS CFLAGS+=-c -nologo -Gs $(NOLOGO) -CDEFS+= -D_X86_=1 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS +.IF "$(CL_X64)" == "" +CDEFS+= -D_X86_=1 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS -D_SCL_SECURE_NO_WARNINGS +.ELSE +CDEFS+= -D_AMD64_=1 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_NON_CONFORMING_SWPRINTFS -D_SCL_SECURE_NO_WARNINGS +.ENDIF .IF "$(product)" != "" CFLAGS+= -Gy .ENDIF # "$(product)" != "" -.IF "$(bndchk)" == "" -.IF "$(VC_STANDARD)"=="" -CFLAGS+= -Ob1 -.ENDIF # "$(VC_STANDARD)"=="" -.ENDIF - # flags to enable build with symbols; required for crashdump feature #CFLAGSENABLESYMBOLS=-Zi -Fd$(MISC)/_ooo_st_$(TARGET).PDB CFLAGSENABLESYMBOLS=-Z7 -Yd @@ -116,16 +115,13 @@ CFLAGS+= -Z7 .ENDIF .ENDIF -.IF "$(FULL_DESK)"!="" -CDEFS+=-DFULL_DESK -RSCDEFS+=-DFULL_DESK -.ENDIF - CFLAGSEXCEPTIONS=-EHa CFLAGS_NO_EXCEPTIONS= +.IF "$(CL_X64)" == "" # enable boost support for __cdecl (SAL_CALL) C++-UNO interface methods CDEFS+=-DBOOST_MEM_FN_ENABLE_CDECL +.ENDIF # with the current debug switches PCH won't work # anyway. so keep the existing .pch intact and don't @@ -220,17 +216,20 @@ CFLAGSWERRCC=-WX # Once all modules on this platform compile without warnings, set # COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see # settings.mk): -MODULES_WITH_WARNINGS := \ - soldep +MODULES_WITH_WARNINGS := -CDEFS+=-DSTLPORT_VERSION=400 -D_MT -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 +CDEFS+=-D_MT -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 .IF "$(COMEX)" == "11" _VC_MANIFEST_BASENAME=__VC80 .ELSE _VC_MANIFEST_BASENAME=__VC90 .ENDIF +.IF "$(CL_X64)" == "" LINK=link /MACHINE:IX86 /IGNORE:4102 /IGNORE:4197 +.ELSE +LINK=link /MACHINE:X64 +.ENDIF # do *not* add $(NOLOGO) to LINK or LINKFLAGS. Strangely, the wntmsci12 linker links fine then, but exits with # a return value 1, which makes dmake think it failed .IF "$(PRODUCT)"!="full" @@ -239,7 +238,9 @@ LINKFLAGS=/MAP /OPT:NOREF .ENDIF # excetion handling protection +.IF "$(CL_X64)" == "" LINKFLAGS+=-safeseh +.ENDIF # enable DEP LINKFLAGS+=-nxcompat @@ -288,18 +289,22 @@ LINKFLAGSOPT= UWINAPILIB*=uwinapi.lib .IF "$(DYNAMIC_CRT)"!="" -.IF "$(USE_STLP_DEBUG)" != "" +.IF "$(USE_DEBUG_RUNTIME)" != "" LIBCMT=msvcrtd.lib -.ELSE # "$(USE_STLP_DEBUG)" != "" +LIBCPMT=msvcprtd.lib +.ELSE # "$(USE_DEBUG_RUNTIME)" != "" LIBCMT=msvcrt.lib -.ENDIF # "$(USE_STLP_DEBUG)" != "" +LIBCPMT=msvcprt.lib +.ENDIF # "$(USE_DEBUG_RUNTIME)" != "" .ELSE # "$(DYNAMIC_CRT)"!="" -.IF "$(USE_STLP_DEBUG)" != "" +.IF "$(USE_DEBUG_RUNTIME)" != "" LIBCMT=libcmtd.lib +LIBCPMT=libcpmtd.lib CDEFS+=-D_DEBUG -.ELSE # "$(USE_STLP_DEBUG)" != "" +.ELSE # "$(USE_DEBUG_RUNTIME)" != "" LIBCMT=libcmt.lib -.ENDIF # "$(USE_STLP_DEBUG)" != "" +LIBCPMT=libcpmt.lib +.ENDIF # "$(USE_DEBUG_RUNTIME)" != "" .ENDIF # "$(DYNAMIC_CRT)"!="" STDOBJVCL=$(L)/salmain.obj @@ -308,42 +313,27 @@ STDSLOGUI= STDOBJCUI= STDSLOCUI= -STDLIBGUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib -STDLIBCUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib -STDSHLGUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib -STDSHLCUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib - -.IF "$(USE_STLP_DEBUG)" != "" -LIBSTLPORT=stlport_vc71_stldebug.lib -LIBSTLPORTST=stlport_vc71_stldebug_static.lib -.ELSE -LIBSTLPORT=stlport_vc71.lib -LIBSTLPORTST=stlport_vc71_static.lib -.ENDIF - -.IF "$(PROF_EDITION)" == "" -ATL_INCLUDE*=$(COMPATH)/PlatformSDK/include/atl -ATL_LIB*=$(COMPATH)/atlmfc/lib -MFC_INCLUDE*=$(COMPATH)/PlatformSDK/include/mfc -MFC_LIB*=$(COMPATH)/atlmfc/lib -.ELSE -ATL_INCLUDE*=$(COMPATH)/atlmfc/include -ATL_LIB*=$(COMPATH)/atlmfc/lib -MFC_INCLUDE*=$(COMPATH)/atlmfc/include -MFC_LIB*=$(COMPATH)/atlmfc/lib -.ENDIF +STDLIBGUIMT=$(LIBCMT) $(LIBCPMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib +STDLIBCUIMT=$(LIBCMT) $(LIBCPMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib +STDSHLGUIMT=$(LIBCMT) $(LIBCPMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib +STDSHLCUIMT=$(LIBCMT) $(LIBCPMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib LIBMGR=lib $(NOLOGO) IMPLIB=lib LIBFLAGS= +.IF "$(CL_X64)" == "" IMPLIBFLAGS=-machine:IX86 +.ELSE +IMPLIBFLAGS=-machine:X64 +.ENDIF MAPSYM= MAPSYMFLAGS= RC=rc -RCFLAGS=-r -DWIN32 -fo$@ $(RCFILES) +RCFLAGS=-r -DWIN32 $(RCFILES) +RCFLAGSOUTRES=-fo RCLINK=rc RCLINKFLAGS= RCSETVERSION= @@ -352,7 +342,6 @@ MT=mt.exe MTFLAGS=$(NOLOGO) -DLLPOSTFIX=mi PCHPOST=.pch CSC*=$(FLIPCMD) csc @@ -368,7 +357,6 @@ WINSPOOLLIB=winspool.lib IMM32LIB=imm32.lib VERSIONLIB=version.lib WINMMLIB=winmm.lib -WSOCK32LIB=wsock32.lib MPRLIB=mpr.lib WS2_32LIB=ws2_32.lib KERNEL32LIB=kernel32.lib @@ -382,9 +370,7 @@ MSILIB=msi.lib DDRAWLIB=ddraw.lib SHLWAPILIB=shlwapi.lib URLMONLIB=urlmon.lib -UNICOWSLIB=unicows.lib WININETLIB=wininet.lib OLDNAMESLIB=oldnames.lib MSIMG32LIB=msimg32.lib PROPSYSLIB=propsys.lib - diff --git a/solenv/inc/wntmsci10.mk b/solenv/inc/wntmsci10.mk deleted file mode 100644 index 5c959f7d0e3c..000000000000 --- a/solenv/inc/wntmsci10.mk +++ /dev/null @@ -1,343 +0,0 @@ -#************************************************************************* -# -# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -# -# Copyright 2000, 2010 Oracle and/or its affiliates. -# -# OpenOffice.org - a multi-platform office productivity suite -# -# This file is part of OpenOffice.org. -# -# OpenOffice.org is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License version 3 -# only, as published by the Free Software Foundation. -# -# OpenOffice.org is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License version 3 for more details -# (a copy is included in the LICENSE file that accompanied this code). -# -# You should have received a copy of the GNU Lesser General Public License -# version 3 along with OpenOffice.org. If not, see -# <http://www.openoffice.org/license.html> -# for a copy of the LGPLv3 License. -# -#************************************************************************* - -# mk file for $(OS)$(COM)$(CPU)$(COMEX) == WNTMSCI10 - -SOLAR_JAVA*=TRUE -FULL_DESK=TRUE -JAVAFLAGSDEBUG=-g - -# SOLAR JAva Unterstuetzung nur fuer wntmsci - -ASM=ml -AFLAGS=/c /Cp /coff /safeseh - -# architecture dependent flags for the C and C++ compiler that can be changed by -# exporting the variable ARCH_FLAGS="..." in the shell, which is used to start build -ARCH_FLAGS*= - -CC*:=cl -.IF "$(bndchk)" != "" -CXX*=nmcl -.ELSE -.IF "$(truetime)" != "" -CXX*=nmcl /NMttOn -.ELSE -CXX*:=cl -.ENDIF -.ENDIF # "$(bndchk)" != "" - -.IF "$(stoponerror)" != "" -CXX+= /NMstoponerror -.ENDIF - -.IF "$(nmpass)" != "" -CXX+= /NMpass -.ENDIF - -.IF "$(ttinlines)" != "" -CXX+= /NMttInlines -.ENDIF - -.IF "$(ttnolines)" != "" -CXX+= /NMttNoLines -.ENDIF - -# Flags for COMEX == 10 - -CFLAGS+=-Zm500 -Zc:forScope -GR -CFLAGS+=-c -nologo -Gs $(NOLOGO) - -CDEFS+= -D_X86_=1 - -.IF "$(product)" != "" -CFLAGS+= -Gy -.ENDIF # "$(product)" != "" - -.IF "$(bndchk)" == "" -.IF "$(VC_STANDARD)"=="" -CFLAGS+= -Ob1 -.ENDIF # "$(VC_STANDARD)"=="" -.ENDIF - -# flags to enable build with symbols; required for crashdump feature -#CFLAGSENABLESYMBOLS=-Zi -Fd$(MISC)/_ooo_st_$(TARGET).PDB -# full debug for RE builds only due to size concerns -.IF "$(UPDATER)"!="" -CFLAGSENABLESYMBOLS=-Z7 -Yd -.ELSE # "$(UPDATER)"!="" -# -Zd got higher priority and overrides debug switches -.IF "$(debug)"=="" -CFLAGSENABLESYMBOLS=-Zd -.ENDIF # "$(debug)"=="" -.ENDIF # "$(UPDATER)"!="" - -.IF "$(bndchk)" != "" -.IF "$(debug)" == "" -CFLAGS+= -Z7 -.ENDIF -.ENDIF - -.IF "$(truetime)" != "" -.IF "$(debug)" == "" -CFLAGS+= -Z7 -.ENDIF -.ENDIF - -.IF "$(FULL_DESK)"!="" -CDEFS+=-DFULL_DESK -RSCDEFS+=-DFULL_DESK -.ENDIF - -CFLAGSEXCEPTIONS=-GX -CFLAGS_NO_EXCEPTIONS= - -CFLAGS_CREATE_PCH=-I$(INCPCH) -Fo$(SLO)/pchname.obj -Ycprecompiled_$(PRJNAME).hxx -DPRECOMPILED_HEADERS -CFLAGS_USE_PCH=-I$(INCPCH) -Yuprecompiled_$(PRJNAME).hxx -Fp$(SLO)/pch/precompiled_$(PRJNAME).hxx$(PCHPOST) -DPRECOMPILED_HEADERS -CFLAGS_USE_EXCEPTIONS_PCH=-I$(INCPCH) -Yuprecompiled_$(PRJNAME).hxx -Fp$(SLO)/pch_ex/precompiled_$(PRJNAME).hxx$(PCHPOST) -DPRECOMPILED_HEADERS -.IF "$(CALL_CDECL)"=="TRUE" -CFLAGSCALL=-Gd -.ELSE # "$(CALL_CDECL)"=="TRUE" -CFLAGSCALL=-Gz -.ENDIF # "$(CALL_CDECL)"=="TRUE" - -CFLAGSCC=$(ARCH_FLAGS) -.IF "$(DYNAMIC_CRT)"!="" -CDEFSSLOMT+=-DWIN32 -D_MT -D_DLL -CDEFSSLOMT+=-DWIN32 -D_MT -D_DLL -.IF "$(NO_DYNAMIC_OBJ)"=="" -CDEFSOBJMT+=-DWIN32 -D_MT -D_DLL -CDEFSOBJMT+=-DWIN32 -D_MT -D_DLL -.ELSE -CDEFSOBJMT+=-DWIN32 -D_MT -CDEFSOBJMT+=-DWIN32 -D_MT -.ENDIF -.ELSE -CDEFSSLOMT+=-DWIN32 -D_MT -CDEFSSLOMT+=-DWIN32 -D_MT -CDEFSOBJMT+=-DWIN32 -D_MT -CDEFSOBJMT+=-DWIN32 -D_MT -.ENDIF -CFLAGSPROF=-Gh -Fd$(MISC)/$(@:b).pdb -CFLAGSDEBUG=-Zi -Fd$(MISC)\_ooo_st_$(TARGET).PDB -CFLAGSDBGUTIL= -.IF "$(VC_STANDARD)"=="" -CFLAGSOPT=-Oxs -Oy- -CFLAGSNOOPT=-Od -.ELSE # "$(VC_STANDARD)"=="" -CFLAGSOPT= -CFLAGSNOOPT= -.ENDIF # "$(VC_STANDARD)"=="" -CFLAGSOUTOBJ=-Fo - -# For C and C++, certain warnings are disabled globally, as they result in -# spurious warnings and are hard or impossible to workaround: -# - "warning C4061: enumerate in switch of enum is not explicitly handled by a -# case label", -# - "warning C4063: case 'identifier' is not a valid value for switch of enum -# 'enumeration'", -# - "warning C4127: conditional expression is constant", -# - "warning C4191: unsafe conversion from function type to function type", -# - "warning C4217: member template functions cannot be used for copy-assignment -# or copy-construction", -# - "warning C4250: 'class1' : inherits 'class2::member' via dominance", -# - "warning C4292: compiler limit : terminating debug information emission", -# - "warning C4344: behavior change: use of explicit template arguments results -# in call to 'function", -# - "warning C4347: behavior change: 'overload A' is called instead of -# 'overload B'", -# - "warning C4355: 'this' used in base member initializer list", -# - "warning C4503: 'identifier': decorated name length exceeded, name was -# truncated" (http://msdn2.microsoft.com/en-us/library/074af4b6.aspx), -# - "warning C4511: copy constructor could not be generated", -# - "warning C4512: assignment operator could not be generated", -# - "warning C4514: unreferenced inline function has been removed", -# - "warning C4611: interaction between '_setjmp' and C++ object destruction is -# non-portable", -# - "warning C4619: warning Cnnnn unknown", -# - "warning C4625: copy constructor could not be generated because a base class -# copy constructor is inaccessible", -# - "warning C4626: assignment operator could not be generated because a base -# class assignment operator is inaccessible", -# - "warning C4675: resolved overload was found by argument-dependent lookup", -# - "warning C4686: possible change in behavior, change in UDT return calling -# convention", -# - "warning C4710: function not inlined", -# - "warning C4711: function selected for automatic inline expansion", -# - "warning C4820: padding added after member". -# For C, certain warnings from system headers (stdlib.h etc.) have to be -# disabled globally (for C++, this is not necessary, as the system headers are -# wrapped by STLport): -# - "warning C4255: no function prototype given: converting '()' to '(void)'". -CFLAGSWARNCXX=-Wall -wd4061 -wd4063 -wd4127 -wd4191 -wd4217 -wd4250 -wd4251 \ - -wd4275 -wd4290 -wd4292 -wd4294 -wd4344 -wd4347 -wd4355 -wd4503 -wd4511 \ - -wd4512 -wd4514 -wd4611 -wd4619 -wd4625 -wd4626 -wd4640 -wd4675 -wd4686 \ - -wd4710 -wd4711 -wd4786 -wd4800 -wd4820 -CFLAGSWARNCC=$(CFLAGSWARNCXX) -wd4255 -CFLAGSWALLCC=$(CFLAGSWARNCC) -CFLAGSWALLCXX=$(CFLAGSWARNCXX) -CFLAGSWERRCC=-WX - -# Once all modules on this platform compile without warnings, set -# COMPILER_WARN_ERRORS=TRUE here instead of setting MODULES_WITH_WARNINGS (see -# settings.mk): -MODULES_WITH_WARNINGS := \ - lingucomponent \ - soldep - -CDEFS+=-DSTLPORT_VERSION=$(STLPORT_VER) -D_MT -DWINVER=0x0500 -D_WIN32_WINNT=0x0500 -D_WIN32_IE=0x0500 - -COMMENTFLAG=/COMMENT:"$(PRJNAME)_$(UPD)_$(VCSID)_" - -LINK=link $(COMMENTFLAG) $(NOLOGO) /MACHINE:IX86 -LINKOUTPUTFILTER= $(PIPEERROR) $(GREP) -v "LNK4197:" -.IF "$(PRODUCT)"!="full" -.ELSE -LINKFLAGS=/MAP /OPT:NOREF -.ENDIF - -.IF "$(linkinc)" != "" -LINKFLAGS=-NODEFAULTLIB -DEBUG:full -DEBUGTYPE:cv -INCREMENTAL:YES -MAPFILE= -.ELSE # "$(linkinc)" != "" -.IF "$(PRODUCT)"!="full" -LINKFLAGS+= -NODEFAULTLIB -DEBUG:full -DEBUGTYPE:cv -.ELSE # "$(PRODUCT)"!="full" -LINKFLAGS+= -NODEFAULTLIB -RELEASE -DEBUG:full -.ENDIF # "$(PRODUCT)"!="full" -MAPFILE=-out:$$@ -.ENDIF # "$(linkinc)" != "" - -.IF "$(bndchk)" != "" -LINK=nmlink $(COMMENTFLAG) $(NOLOGO) -MACHINE:IX86 -LINKFLAGS=-NODEFAULTLIB -DEBUG:full -DEBUGTYPE:cv -.ENDIF - -.IF "$(truetime)" != "" -LINK=nmlink /NMttOn $(COMMENTFLAG) $(NOLOGO) /MACHINE:IX86 -LINKFLAGS=/NODEFAULTLIB /DEBUG:full /DEBUGTYPE:cv -.ENDIF - -LINKFLAGSAPPGUI=/SUBSYSTEM:WINDOWS,4.0 -LINKFLAGSSHLGUI=/SUBSYSTEM:WINDOWS,4.0 /DLL -LINKFLAGSAPPCUI=/SUBSYSTEM:CONSOLE /BASE:0x1b000000 -LINKFLAGSSHLCUI=/SUBSYSTEM:CONSOLE /DLL -LINKFLAGSTACK=/STACK: -LINKFLAGSPROF=-DEBUG:mapped,partial -DEBUGTYPE:coff cap.lib -LINKFLAGSWST=-DEBUG:mapped,partial -DEBUGTYPE:coff wst.lib -NODEFAULTLIB -LINKFLAGSDEBUG=-DEBUG:full -DEBUGTYPE:cv -LINKFLAGSOPT= - -UWINAPILIB*=uwinapi.lib -.IF "$(DYNAMIC_CRT)"!="" -.IF "$(USE_STLP_DEBUG)" != "" -LIBCMT=msvcrtd.lib -.ELSE # "$(USE_STLP_DEBUG)" != "" -LIBCMT=msvcrt.lib -.ENDIF # "$(USE_STLP_DEBUG)" != "" -.ELSE # "$(DYNAMIC_CRT)"!="" -.IF "$(USE_STLP_DEBUG)" != "" -LIBCMT=libcmtd.lib -.ELSE # "$(USE_STLP_DEBUG)" != "" -LIBCMT=libcmt.lib -.ENDIF # "$(USE_STLP_DEBUG)" != "" -.ENDIF # "$(DYNAMIC_CRT)"!="" - -STDOBJVCL=$(L)/salmain.obj -STDOBJGUI= -STDSLOGUI= -STDOBJCUI= -STDSLOCUI= - -STDLIBGUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib psapi.lib -STDLIBCUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib psapi.lib -STDSHLGUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib psapi.lib -STDSHLCUIMT=$(LIBCMT) $(UWINAPILIB) kernel32.lib user32.lib oldnames.lib psapi.lib - -.IF "$(USE_STLP_DEBUG)" != "" -CFLAGS+=-MTd -LIBSTLPORT=stlport_vc71_stldebug.lib -LIBSTLPORTST=stlport_vc71_stldebug_static.lib -.ELSE -LIBSTLPORT=stlport_vc71.lib -LIBSTLPORTST=stlport_vc71_static.lib -.ENDIF - -ATL_INCLUDE*=$(COMPATH)/atlmfc/include -ATL_LIB*=$(COMPATH)/atlmfc/lib - -LIBMGR=lib $(NOLOGO) -IMPLIB=lib -LIBFLAGS= - -IMPLIBFLAGS=-machine:IX86 - -MAPSYM= -MAPSYMFLAGS= - -RC=rc -RCFLAGS=-r -DWIN32 -fo$@ $(RCFILES) -RCLINK=rc -RCLINKFLAGS= -RCSETVERSION= - - -DLLPOSTFIX=mi -PCHPOST=.pch - -CSC*=$(FLIPCMD) csc -VBC*=vbc - -ADVAPI32LIB=advapi32.lib -SHELL32LIB=shell32.lib -GDI32LIB=gdi32.lib -OLE32LIB=ole32.lib -OLEAUT32LIB=oleaut32.lib -UUIDLIB=uuid.lib -WINSPOOLLIB=winspool.lib -IMM32LIB=imm32.lib -VERSIONLIB=version.lib -WINMMLIB=winmm.lib -WSOCK32LIB=wsock32.lib -MPRLIB=mpr.lib -WS2_32LIB=ws2_32.lib -KERNEL32LIB=kernel32.lib -USER32LIB=user32.lib -COMDLG32LIB=comdlg32.lib -COMCTL32LIB=comctl32.lib -CRYPT32LIB=crypt32.lib -GDIPLUSLIB=gdiplus.lib -DBGHELPLIB=dbghelp.lib -MSILIB=msi.lib -DDRAWLIB=ddraw.lib -SHLWAPILIB=shlwapi.lib -URLMONLIB=urlmon.lib -UNICOWSLIB=unicows.lib -WININETLIB=wininet.lib -OLDNAMESLIB=oldnames.lib -MSIMG32LIB=msimg32.lib - diff --git a/solenv/prj/d.lst b/solenv/prj/d.lst index 05ceea226515..9972651fb090 100755 --- a/solenv/prj/d.lst +++ b/solenv/prj/d.lst @@ -1,4 +1,4 @@ -mkdir: %_DEST%\bin%_EXT% -mkdir: %_DEST%\inc%_EXT% -..\inc\version.lst %_DEST%\bin%_EXT%\version.lst -..\%__SRC%\inc\versionlist.hrc %_DEST%\inc%_EXT%\versionlist.hrc +mkdir: %_DEST%\bin +mkdir: %_DEST%\inc +..\inc\version.lst %_DEST%\bin\version.lst +..\%__SRC%\inc\versionlist.hrc %_DEST%\inc\versionlist.hrc diff --git a/solenv/src/version.c b/solenv/src/version.c index b06b1510f300..f39f29872262 100644 --- a/solenv/src/version.c +++ b/solenv/src/version.c @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /************************************************************************* * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -50,11 +51,11 @@ static const struct VersionInfo g_aVersionInfo = _INPATH }; -#if defined(WNT) || defined(OS2) +#if defined(WNT) __declspec(dllexport) const struct VersionInfo* GetVersionInfo(void); #endif -#if defined(WNT) || defined(OS2) +#if defined(WNT) __declspec(dllexport) const struct VersionInfo* GetVersionInfo(void) #else const struct VersionInfo *GetVersionInfo(void) @@ -63,17 +64,4 @@ const struct VersionInfo *GetVersionInfo(void) return &g_aVersionInfo; } -#if 0 -#include <stdio.h> - -int main( int argc, char **argv ) -{ - const VersionInfo *pInfo = GetVersionInfo(); - fprintf( stderr, "Date : %s\n", pInfo->pDate); - fprintf( stderr, "Time : %s\n", pInfo->pTime); - fprintf( stderr, "UPD : %s\n", pInfo->pUpd); - delete pInfo; - return 0; -} -#endif - +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/solenv/unxmacxp/inc/poll.h b/solenv/unxmacxp/inc/poll.h index 761b59dbec1f..00c6cbacf32a 100644 --- a/solenv/unxmacxp/inc/poll.h +++ b/solenv/unxmacxp/inc/poll.h @@ -1,3 +1,4 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ // poll.h // MacOS X does not implement poll(). Therefore, this replacement // is required. It uses select(). @@ -171,3 +172,5 @@ inline int poll(struct pollfd *pollSet, int pollCount, int pollTimeout) #undef FD_SETSIZE #endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |