open-src/common/delibtoolize.pl
author Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
Thu, 16 Dec 2010 17:09:59 -0800
changeset 1054 1c1ff42df15b
parent 1029 2433d5075f1f
child 1111 582653852b4c
permissions -rwxr-xr-x
7006573 X11R7.6 Update: Driver modules (except intel)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
98
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     1
#! /usr/perl5/bin/perl
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     2
#
1029
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
     3
# Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
98
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
     4
#
235
06772554f851 6572087 ship Xvnc for Solaris [PSARC/2007/545]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 191
diff changeset
     5
# Permission is hereby granted, free of charge, to any person obtaining a
919
425233ae7236 6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
     6
# copy of this software and associated documentation files (the "Software"),
425233ae7236 6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
     7
# to deal in the Software without restriction, including without limitation
425233ae7236 6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
     8
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
425233ae7236 6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
     9
# and/or sell copies of the Software, and to permit persons to whom the
425233ae7236 6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    10
# Software is furnished to do so, subject to the following conditions:
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    11
#
919
425233ae7236 6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    12
# The above copyright notice and this permission notice (including the next
425233ae7236 6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    13
# paragraph) shall be included in all copies or substantial portions of the
425233ae7236 6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    14
# Software.
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    15
#
919
425233ae7236 6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    16
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
425233ae7236 6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    17
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
425233ae7236 6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    18
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
425233ae7236 6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    19
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
425233ae7236 6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    20
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
425233ae7236 6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    21
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
425233ae7236 6931307 Standardize Sun copyright & license notices in X gate on current format
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 907
diff changeset
    22
# DEALINGS IN THE SOFTWARE.
235
06772554f851 6572087 ship Xvnc for Solaris [PSARC/2007/545]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 191
diff changeset
    23
#
98
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    24
#
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    25
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    26
#
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    27
# Undo libtool damage to makefiles to allow us to control the linker
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    28
# settings that libtool tries to force on us.
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    29
#
241
30e6f29a3171 6624562 Xvnc should be built with Sun Studio
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 235
diff changeset
    30
# Usage: delibtoolize.pl [-P] <path>
30e6f29a3171 6624562 Xvnc should be built with Sun Studio
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 235
diff changeset
    31
# -P - Use large pic flags (-KPIC/-fPIC) instead of default/small (-Kpic/-fpic)
520
8214a177e770 6739713 After Xserver B97c packages were installed, the vncviewer can not be started
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 493
diff changeset
    32
# -s - Only track libraries from a single file at a time, instead of across all
8214a177e770 6739713 After Xserver B97c packages were installed, the vncviewer can not be started
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 493
diff changeset
    33
#	files in a project
98
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    34
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    35
use strict;
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    36
use warnings;
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    37
use integer;
241
30e6f29a3171 6624562 Xvnc should be built with Sun Studio
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 235
diff changeset
    38
use Getopt::Std;
98
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    39
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    40
use File::Find;
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    41
241
30e6f29a3171 6624562 Xvnc should be built with Sun Studio
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 235
diff changeset
    42
my %opts;
520
8214a177e770 6739713 After Xserver B97c packages were installed, the vncviewer can not be started
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 493
diff changeset
    43
getopts('Ps', \%opts);
241
30e6f29a3171 6624562 Xvnc should be built with Sun Studio
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 235
diff changeset
    44
30e6f29a3171 6624562 Xvnc should be built with Sun Studio
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 235
diff changeset
    45
my $pic_size = "pic";
30e6f29a3171 6624562 Xvnc should be built with Sun Studio
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 235
diff changeset
    46
if (exists($opts{'P'})) {
30e6f29a3171 6624562 Xvnc should be built with Sun Studio
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 235
diff changeset
    47
  $pic_size = "PIC";
30e6f29a3171 6624562 Xvnc should be built with Sun Studio
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 235
diff changeset
    48
}
30e6f29a3171 6624562 Xvnc should be built with Sun Studio
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 235
diff changeset
    49
520
8214a177e770 6739713 After Xserver B97c packages were installed, the vncviewer can not be started
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 493
diff changeset
    50
my $single_file;
8214a177e770 6739713 After Xserver B97c packages were installed, the vncviewer can not be started
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 493
diff changeset
    51
if (exists($opts{'s'})) {
8214a177e770 6739713 After Xserver B97c packages were installed, the vncviewer can not be started
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 493
diff changeset
    52
  $single_file = 1;
8214a177e770 6739713 After Xserver B97c packages were installed, the vncviewer can not be started
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 493
diff changeset
    53
}
8214a177e770 6739713 After Xserver B97c packages were installed, the vncviewer can not be started
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 493
diff changeset
    54
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    55
my %compiler_pic_flags = ( 'cc' => "-K$pic_size -DPIC",
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    56
			   'gcc' => "-f$pic_size -DPIC" );
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    57
my %compiler_sharedobj_flags = ( 'cc' => '-G -z allextract',
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    58
				 'gcc' => '-shared  -Wl,-z,allextract' );
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    59
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    60
my %so_versions = ();
577
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
    61
my %ltlib_names = ();
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    62
my @Makefiles;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    63
577
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
    64
sub rulename_to_filename {
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
    65
  my $rulename = $_[0];
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
    66
  if (exists($ltlib_names{$rulename})) {
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
    67
    return $ltlib_names{$rulename};
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
    68
  } else {
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
    69
    return $rulename;
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
    70
  }
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
    71
}
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
    72
1029
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
    73
# Expands make macros in a string
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
    74
sub expand_macros {
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
    75
  my ($in, $macro_ref) = @_;
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
    76
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
    77
  $in =~ s{\$\(([^\)]+)\)}{
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
    78
    exists($macro_ref->{$1}) ? $macro_ref->{$1} : "" }msgex;
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
    79
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
    80
  return $in;
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
    81
}
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
    82
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    83
sub scan_file {
235
06772554f851 6572087 ship Xvnc for Solaris [PSARC/2007/545]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 191
diff changeset
    84
  if ($_ eq 'Makefile' && -f $_) {
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    85
    my $old_file = $_;
98
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    86
235
06772554f851 6572087 ship Xvnc for Solaris [PSARC/2007/545]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 191
diff changeset
    87
    open my $OLD, '<', $old_file
06772554f851 6572087 ship Xvnc for Solaris [PSARC/2007/545]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 191
diff changeset
    88
      or die "Can't open $old_file for reading: $!\n";
98
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    89
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
    90
    # Read in original file and preprocess for data we'll need later
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    91
    my $l = "";
577
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
    92
    my %makefile_macros = ();
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
    93
    my %makefile_ldflags = ();
1029
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
    94
    my @makefile_ltlibs = ();
577
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
    95
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    96
    while (my $n = <$OLD>) {
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    97
      $l .= $n;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    98
      # handle line continuation
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
    99
      next if ($n =~ m/\\$/);
98
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   100
577
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   101
      # Save macros for later expansion if needed
1029
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
   102
      if ($l =~ m/^([^\#\s]*)\s*=\s*(.*?)\s*$/ms) {
577
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   103
	$makefile_macros{$1} = $2;
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   104
      }
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   105
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   106
      if ($l =~ m/^([^\#\s]*)_la_LDFLAGS\s*=(.*)/ms) {
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   107
	my $libname = $1;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   108
	my $flags = $2;
520
8214a177e770 6739713 After Xserver B97c packages were installed, the vncviewer can not be started
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 493
diff changeset
   109
577
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   110
	$makefile_ldflags{$libname} = $flags;
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   111
      }
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   112
      elsif ($l =~ m/^[^\#\s]*_LTLIBRARIES\s*=(.*)$/ms) {
1029
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
   113
	push @makefile_ltlibs, $1;
98
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   114
      }
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   115
      $l = "";
98
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   116
    }
235
06772554f851 6572087 ship Xvnc for Solaris [PSARC/2007/545]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 191
diff changeset
   117
    close($OLD) or die;
98
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   118
1029
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
   119
    foreach my $ltline ( @makefile_ltlibs ) {
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
   120
      my $ltline_exp = expand_macros($ltline, \%makefile_macros);
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
   121
      foreach my $ltl (split /\s+/, $ltline_exp) {
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
   122
	$ltl =~ s{\.la$}{}ms;
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
   123
	my $transformed = $ltl;
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
   124
	$transformed =~ s{[^\w\@]}{_}msg;
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
   125
	$ltlib_names{$transformed} = $ltl;
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
   126
      }
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
   127
    }
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
   128
577
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   129
    foreach my $librulename (keys %makefile_ldflags) {
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   130
      my $libname = rulename_to_filename($librulename);
1029
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
   131
      my $flags = expand_macros($makefile_ldflags{$librulename},
2433d5075f1f 6667057 Introduce libXcb in Solaris [PSARC 2010/109]
Stefan Teleman <stefan.teleman@oracle.com>
parents: 943
diff changeset
   132
				\%makefile_macros);
577
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   133
      my $vers;
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   134
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   135
      if ($flags =~ m/[\b\s]-version-(number|info)\s+(\S+)/ms) {
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   136
	my $vtype = $1;
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   137
	my $v = $2;
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   138
	
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   139
	if (($vtype eq "info") && ($v =~ m/^(\d+):\d+:(\d+)$/ms)) {
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   140
	  $vers = $1 - $2;
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   141
	} elsif ($v =~ m/^(\d+)[:\d]*$/ms) {
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   142
	  $vers = $1;
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   143
	} else {
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   144
	  $vers = $v;
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   145
	}
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   146
      }
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   147
      elsif ($flags =~ m/-avoid-version\b/ms) {
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   148
	$vers = 'none';
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   149
      }
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   150
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   151
      my $ln = $libname;
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   152
      if ($single_file) {
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   153
	$ln = $File::Find::name . "::" . $libname;
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   154
      }
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   155
      if (defined($vers) && !defined($so_versions{$ln})) {
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   156
	$so_versions{$ln} = $vers;
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   157
#	print "Set version to $so_versions{$ln} for $ln.\n";
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   158
      }
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   159
    }
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   160
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   161
    push @Makefiles, $File::Find::name;
98
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   162
  }
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   163
}
c21b46ed1efd 6489660 Xorg server 7.2 [PSARC 2007/051]
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents:
diff changeset
   164
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   165
sub modify_file {
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   166
  my ($filename) = @_;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   167
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   168
  print "delibtoolizing $filename...\n";
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   169
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   170
  my $old_file = $filename . '~';
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   171
  my $new_file = $filename;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   172
  rename($new_file, $old_file) or
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   173
    die "Can't rename $new_file to $old_file: $!\n";
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   174
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   175
  open my $OLD, '<', $old_file
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   176
    or die "Can't open $old_file for reading: $!\n";
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   177
  open my $NEW, '>', $new_file
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   178
    or die "Can't open $new_file for writing: $!\n";
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   179
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   180
  my $compiler;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   181
  my @inlines = ();
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   182
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   183
  # Read in original file and preprocess for data we'll need later
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   184
  my $l = "";
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   185
  while (my $n = <$OLD>) {
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   186
    $l .= $n;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   187
    # handle line continuation
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   188
    next if ($n =~ m/\\$/);
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   189
1054
1c1ff42df15b 7006573 X11R7.6 Update: Driver modules (except intel)
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents: 1029
diff changeset
   190
    if ($l =~ m/^\s*CC\s*=(?:.*\s+)?(\S*cc)/) {
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   191
      $compiler = $1;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   192
    }
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   193
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   194
    push @inlines, $l;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   195
    $l = "";
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   196
  }
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   197
  close($OLD) or die;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   198
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   199
  my $compiler_type = 'cc'; # default to Sun Studio
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   200
  if (defined($compiler) && ($compiler =~ m/gcc/)) {
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   201
    $compiler_type = 'gcc';
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   202
  }
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   203
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   204
  my $picflags = $compiler_pic_flags{$compiler_type};
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   205
  my $sharedobjflags = $compiler_sharedobj_flags{$compiler_type};
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   206
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   207
  my $curtarget = "";
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   208
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   209
  foreach $l (@inlines) {
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   210
    chomp $l;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   211
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   212
    # Remove libtool script from compile steps &
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   213
    # add PIC flags that libtool normally provides
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   214
    $l =~ s{\$\(LIBTOOL\)
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   215
	    (?:[\\\s]+ \$\(LT_QUIET\))?
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 684
diff changeset
   216
	    (?:[\\\s]+ \$\(AM_V_lt\))?
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   217
	    (?:[\\\s]+ --tag=(?:CC|CXX))?
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   218
	    (?:[\\\s]+ \$\(AM_LIBTOOLFLAGS\) [\\\s]+ \$\(LIBTOOLFLAGS\))?
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   219
	    [\\\s]+ --mode=compile
684
1822e0f4b539 6831268 Upgrade rss-glx screensaver modules from 0.8.1 to 0.8.3
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 577
diff changeset
   220
	    [\\\s]+ (\$\(CC\)|\$\(CCAS\)|\$\(CXX\)|\$\(COMPILE\))
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   221
	  }{$1 $picflags}xs;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   222
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   223
    # Remove libtool script from link step
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   224
    $l =~ s{\$\(LIBTOOL\)
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   225
	    (?:[\\\s]+ \$\(LT_QUIET\))?
851
d428083dbbdd 6905171 X11R7.5 / Xorg 1.7.3 integration
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 684
diff changeset
   226
	    (?:[\\\s]+ \$\(AM_V_lt\))?
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   227
	    (?:[\\\s]+ --tag=(?:CC|CXX))?
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   228
	    (?:[\\\s]+ \$\(AM_LIBTOOLFLAGS\) [\\\s]+ \$\(LIBTOOLFLAGS\))?
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   229
	    [\\\s]+ --mode=link
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   230
	  }{}xs;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   231
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   232
    # Change -rpath to -R in link arguments
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   233
    $l =~ s{(\s*)-rpath(\s*)}{$1-R$2}msg;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   234
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   235
    # Change flags for building shared object from arguments to libtool
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   236
    # script into arguments to linker
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   237
    if ($l =~ m/_la_LDFLAGS\s*=/) {
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   238
      $l =~ s{(\s*$sharedobjflags)+\b}{}msg;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   239
      $l =~ s{(_la_LDFLAGS\s*=\s*)}{$1 $sharedobjflags }ms;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   240
      $l =~ s{(\s+)-avoid-version\b}{$1}ms;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   241
      $l =~ s{(\s+)-module\b}{$1}ms;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   242
      $l =~ s{(\s+)-version-(?:number|info)\s+\S+}{$1-h \$\@}ms;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   243
      $l =~ s{(\s+)-no-undefined\b}{$1-z defs}ms;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   244
    }
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   245
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   246
    # Change file names
520
8214a177e770 6739713 After Xserver B97c packages were installed, the vncviewer can not be started
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 493
diff changeset
   247
    my @so_list = keys %so_versions;
8214a177e770 6739713 After Xserver B97c packages were installed, the vncviewer can not be started
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 493
diff changeset
   248
    if ($single_file) {
8214a177e770 6739713 After Xserver B97c packages were installed, the vncviewer can not be started
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 493
diff changeset
   249
      my $pat = $filename . "::";
8214a177e770 6739713 After Xserver B97c packages were installed, the vncviewer can not be started
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 493
diff changeset
   250
      @so_list = grep(/^$pat/, @so_list);
8214a177e770 6739713 After Xserver B97c packages were installed, the vncviewer can not be started
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 493
diff changeset
   251
    }
8214a177e770 6739713 After Xserver B97c packages were installed, the vncviewer can not be started
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 493
diff changeset
   252
    foreach my $so (@so_list) {
577
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   253
      my $v = $so_versions{$so};
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   254
      if ($v eq 'none') {
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   255
	$l =~ s{$so\.la\b}{$so.so}msg;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   256
      } else {
577
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   257
	$l =~ s{$so\.la\b}{$so.so.$v}msg;
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   258
      }
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   259
    }
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   260
    $l =~ s{\.la\b}{.a}msg;
577
cd96438515cb 6752912 Integrate libpixman [LSARC 2008/637]
Stuart Kreitman <Stuart.Kreitman@Sun.COM>
parents: 520
diff changeset
   261
    $l =~ s{\.libs/([\*%])\.o\b}{$1.lo}msg;
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   262
    $l =~ s{\.lo\b}{.o}msg;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   263
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   264
    my $newtarget = $curtarget;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   265
    if ($l =~ m/^(\S+):/) {
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   266
      $newtarget = $1;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   267
    } elsif ($l =~ m/^\s*$/) { 
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   268
      $newtarget = "";
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   269
    }
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   270
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   271
    if ($curtarget ne $newtarget) { # end of rules for a target
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   272
      # Need to add in .so links that libtool makes for .la installs
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   273
      if ($curtarget =~ m/^install-(.*)LTLIBRARIES$/ms) {
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   274
	my $dirname = $1;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   275
	my $installrule = <<'END_RULE';
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   276
	list='$(<DIRNAME>_LTLIBRARIES)'; for p in $$list; do \
684
1822e0f4b539 6831268 Upgrade rss-glx screensaver modules from 0.8.1 to 0.8.3
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 577
diff changeset
   277
	  so=$${p%+(.+(\d))} ; \
1822e0f4b539 6831268 Upgrade rss-glx screensaver modules from 0.8.1 to 0.8.3
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 577
diff changeset
   278
	  if [[ "$$p" != "$$so" ]] ; then \
493
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   279
		echo "rm -f $(DESTDIR)$(<DIRNAME>dir)/$$so" ; \
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   280
		rm -f $(DESTDIR)$(<DIRNAME>dir)/$$so ; \
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   281
		echo "ln -s $$p $(DESTDIR)$(<DIRNAME>dir)/$$so" ; \
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   282
		ln -s $$p $(DESTDIR)$(<DIRNAME>dir)/$$so ; \
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   283
	  fi; \
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   284
	done
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   285
END_RULE
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   286
	$installrule =~ s/\<DIRNAME\>/$dirname/msg;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   287
	$l .= $installrule;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   288
      }
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   289
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   290
      $curtarget = $newtarget;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   291
    }
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   292
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   293
    # Static libraries
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   294
    if ($curtarget =~ m/^.*\.a$/) {
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   295
      $l =~ s{\$\(\w*LINK\)}{\$(AR) cru $curtarget}ms;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   296
      $l =~ s{\$\(\w*(?:LIBS|LIBADD)\)}{}msg;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   297
      $l =~ s{(\$\((?:\w*_)?AR\).*\s+)-R\s*\$\(libdir\)}{$1}msg;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   298
    }
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   299
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   300
    print $NEW $l, "\n";
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   301
    $l = "";
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   302
  }
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   303
  close($NEW) or die;
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   304
}
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   305
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   306
find(\&scan_file, @ARGV);
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   307
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   308
foreach my $mf ( @Makefiles ) {
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   309
  modify_file($mf);
f43507b5737d 6735203 open-src Makefile cleanup & enhancements
Alan Coopersmith <Alan.Coopersmith@Sun.COM>
parents: 445
diff changeset
   310
}