f0e5895d5b
* commit 'ooo/DEV300_m101': (500 commits) masterfix DEV300: #i10000# remove hard dep masterfix DEV300: #i10000# usage of L10N build_type masterfix DEV300: #i10000# usage of L10N build_type masterfix DEV300: #i100000# dep. fix masterfix DEV300: #i10000# removed one hard dep masterfix DEV300: #i10000# fixed patch handling masterfix DEV300: #i10000# new configure DEV300 masterfix DEV300: #i10000# nawk -> awk l10nmove: adjust repository handling l10nmove: fixed regex l10nmove: minor fixes l10nmove: add l10n repo to gb_REPOS DEV300 masterfix: gnumake3: subsequenttests requires in environment ab80: Adding changes of cws mib21, ab77, ab77run2, dr77i to dev300 DEV300 masterfix: #i10000#: windows: more bizare hacks ... locales34: have a matching configure as well DEV300 locales34: back out change from autoreconf gnumake3: JunitTest.mk: bizarre hacks to make it work on windows ... Conflicts: configure configure.in instsetoo_native/prj/build.lst instsetoo_native/util/makefile.mk instsetoo_native/util/openoffice.lst instsetoo_native/util/pack.lst ooo.lst scp2/source/canvas/canvascommons.scp scp2/source/canvas/mtfrenderer.scp scp2/source/ooo/common_brand.scp scp2/source/ooo/directory_ooo.scp scp2/source/ooo/file_library_ooo.scp scp2/source/ooo/file_ooo.scp scp2/source/ooo/makefile.mk scp2/source/ooo/module_hidden_ooo.scp scp2/source/ooo/module_langpack.ulf scp2/source/ooo/ure.scp scp2/source/python/file_python.scp scp2/source/sdkoo/sdkoo.scp scp2/source/templates/module_langpack_accessories_templates.sct scp2/source/templates/module_langpack_accessories_templates_root.sct set_soenv.in soldep/bootstrp/appdef.cxx soldep/bootstrp/dep.cxx soldep/bootstrp/hashtbl.cxx soldep/bootstrp/makefile.mk soldep/bootstrp/minormk.cxx soldep/bootstrp/prj.cxx soldep/bootstrp/prodmap.cxx soldep/inc/dep.hxx soldep/inc/minormk.hxx soldep/inc/prodmap.hxx soldep/inc/soldep/appdef.hxx soldep/inc/soldep/connctr.hxx soldep/inc/soldep/depper.hxx soldep/inc/soldep/depwin.hxx soldep/inc/soldep/hashtbl.hxx soldep/inc/soldep/objwin.hxx soldep/inc/soldep/prj.hxx soldep/inc/soldep/sdtresid.hxx soldep/inc/soldep/soldep.hxx soldep/inc/soldep/soldlg.hxx soldep/inc/soldep/tbox.hxx soldep/prj/d.lst soldep/source/connctr.cxx soldep/source/depapp.hxx soldep/source/depper.cxx soldep/source/depwin.cxx soldep/source/makefile.mk soldep/source/objwin.cxx soldep/source/soldep.cxx soldep/source/soldlg.cxx soldep/source/soldlg.src soldep/source/tbox.cxx solenv/bin/build.pl solenv/bin/cws.pl solenv/bin/make_installer.pl solenv/bin/mhids.pl solenv/bin/modules/CwsConfig.pm solenv/bin/modules/RepositoryHelper.pm solenv/bin/modules/installer/regmerge.pm solenv/bin/modules/installer/scriptitems.pm solenv/bin/modules/installer/servicesfile.pm solenv/bin/modules/installer/simplepackage.pm solenv/bin/modules/installer/substfilenamefiles.pm solenv/config/ssolar.cmn solenv/inc/_tg_rslb.mk solenv/inc/extension_post.mk solenv/inc/libs.mk solenv/inc/minor.mk solenv/inc/postset.mk solenv/inc/settings.mk solenv/inc/tg_rslb.mk solenv/inc/unxlng.mk solenv/inc/wntmsc.mk soltools/HIDCompiler/hidclex.l stlport/prj/d.lst stlport/systemstlguards/postextstl.h
110 lines
3.8 KiB
Perl
110 lines
3.8 KiB
Perl
#*************************************************************************
|
|
#
|
|
# 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 macosxotoolhelper;
|
|
|
|
sub action($$$)
|
|
{
|
|
my %action =
|
|
('app/UREBIN/URELIB' => '@executable_path/../lib',
|
|
'app/OOO/URELIB' => '@executable_path/../ure-link/lib',
|
|
'app/OOO/OOO' => '@executable_path',
|
|
'app/SDK/URELIB' => '@executable_path/../../ure-link/lib',
|
|
'app/BRAND/URELIB' => '@executable_path/../basis-link/ure-link/lib',
|
|
'app/BRAND/OOO' => '@executable_path/../basis-link/program',
|
|
'app/NONE/URELIB' => '@__VIA_LIBRARY_PATH__',
|
|
'app/NONE/OOO' => '@__VIA_LIBRARY_PATH__',
|
|
'app/NONE/NONE' => '@__VIA_LIBRARY_PATH__',
|
|
'shl/URELIB/URELIB' => '@loader_path',
|
|
'shl/OOO/URELIB' => '@loader_path/../ure-link/lib',
|
|
'shl/OOO/OOO' => '@loader_path',
|
|
'shl/OXT/URELIB' => '@executable_path/urelibs',
|
|
'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) = @_;
|
|
my $act = $action{"$type/$loc1/$loc2"};
|
|
die "illegal combination $type/$loc1/$loc2" unless defined $act;
|
|
return $act;
|
|
}
|
|
|
|
@ARGV == 3 || @ARGV >= 2 && $ARGV[0] eq "extshl" or die
|
|
'Usage: app|shl|extshl UREBIN|URELIB|OOO|SDK|BRAND|OXT|BOXT|NONE <filepath>*';
|
|
$type = shift @ARGV;
|
|
$loc = shift @ARGV;
|
|
if ($type eq "SharedLibrary")
|
|
{
|
|
$type = "shl";
|
|
}
|
|
if ($type eq "Executable")
|
|
{
|
|
$type = "app"
|
|
}
|
|
if ($type eq "Library")
|
|
{
|
|
$type = "shl"
|
|
}
|
|
if ($type eq "extshl")
|
|
{
|
|
$type = "shl";
|
|
my $change = "";
|
|
my %inames;
|
|
foreach $file (@ARGV)
|
|
{
|
|
my $iname = otoolD($file);
|
|
(defined $iname ? $iname : $file . "\n") =~ m'^(.*?([^/]+))\n$' or
|
|
die "unexpected otool -D output";
|
|
$change .= " -change $1 " . action($type, $loc, $loc) . "/$2";
|
|
$inames{$file} = $2;
|
|
}
|
|
foreach $file (@ARGV)
|
|
{
|
|
my $call = "install_name_tool$change -id \@__________________________________________________$loc/$inames{$file} $file";
|
|
system($call) == 0 or die "cannot $call";
|
|
}
|
|
}
|
|
foreach $file (@ARGV)
|
|
{
|
|
my $call = "otool -L $file";
|
|
open(IN, "-|", $call) or die "cannot $call";
|
|
my $change = "";
|
|
while (<IN>)
|
|
{
|
|
$change .= " -change $1 " . action($type, $loc, $2) . "$3"
|
|
if m'^\s*(@_{50}([^/]+)(/.+)) \(compatibility version \d+\.\d+\.\d+, current version \d+\.\d+\.\d+\)\n$';
|
|
}
|
|
close(IN);
|
|
if ($change ne "")
|
|
{
|
|
$call = "install_name_tool$change $file";
|
|
system($call) == 0 or die "cannot $call";
|
|
}
|
|
}
|