6454339 Xorg modularization: libXau 1.0.2
authorAlan Coopersmith <Alan.Coopersmith@Sun.COM>
Tue, 01 Aug 2006 18:01:02 -0700
changeset 40 bec81b174839
parent 39 e3e71443de06
child 41 d37df4a6d754
6454339 Xorg modularization: libXau 1.0.2
open-src/Makefile
open-src/common/Makefile.inc
open-src/common/suntouch-manpages.pl
open-src/lib/libXau/Makefile
open-src/lib/libXau/spec/Xau.spec
open-src/lib/libXau/spec/versions
open-src/proto/Makefile.inc
--- a/open-src/Makefile	Fri Jul 21 11:54:25 2006 -0700
+++ b/open-src/Makefile	Tue Aug 01 18:01:02 2006 -0700
@@ -28,7 +28,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.4	06/05/26
+# @(#)Makefile	1.5	06/07/28
 #
 ###############################################################################
 #
@@ -42,6 +42,7 @@
 	util/lndir \
 	lib/freetype \
 	lib/fontconfig \
+	lib/libXau \
 	lib/Xft
 
 AFTERX = \
--- a/open-src/common/Makefile.inc	Fri Jul 21 11:54:25 2006 -0700
+++ b/open-src/common/Makefile.inc	Tue Aug 01 18:01:02 2006 -0700
@@ -1,5 +1,6 @@
 # -*- Makefile -*- rules commonly shared among X consolidation open source dirs
 #
+# Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
 # Use subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
@@ -27,7 +28,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile.inc	1.61	06/05/10
+# @(#)Makefile.inc	1.62	06/07/28
 #
 
 BUILD_DATE:sh=date +'%e-%B-%Y'
@@ -88,6 +89,14 @@
 ARCH_MAPFILE:sh=uname -p | sed 's/^\(.*\)$/mapfile_pga_\1/'
 MAPFILE_FLAGS = -M $(TOP)/common/mapfiles/$(ARCH_MAPFILE)
 
+MACH32_sun4	= sparc
+MACH32_i86pc	= i386
+MACH64_sun4 	= sparcv9
+MACH64_i86pc 	= amd64
+
+MACH32:sh=arch | sed 's/^\(.*\)$/\$\(MACH32_\1\)/'
+MACH64:sh=arch | sed 's/^\(.*\)$/\$\(MACH64_\1\)/'
+
 ### Proto directory to install into for packaging
 PROTODIR=$(TOP)/../proto-$(ARCH)-svr4
 
@@ -165,6 +174,13 @@
 		fi ; \
 	    done ; \
 	fi
+	@if [ "x$(SUNTOUCHED_MANPAGES)" != "x" ] ; then \
+	    echo "/usr/perl5/bin/perl $(TOP)/common/suntouch-manpages.pl \
+		$(SUNTOUCH_MAN_FLAGS) $(SUNTOUCHED_MANPAGES)" ; \
+	    (cd $(SOURCE_DIR) && \
+		/usr/perl5/bin/perl $(TOP)/common/suntouch-manpages.pl \
+		$(SUNTOUCH_MAN_FLAGS) $(SUNTOUCHED_MANPAGES) ) ; \
+	fi
 	touch $(BUILD_DIR)/.unpack_done
 
 
@@ -181,6 +197,24 @@
 		$(WGET) -O $(SOURCE_TARBALL) $(SOURCE_URL) ;\
 	fi
 
+### Generate mapfiles to limit/version exported symbols in libraries
+
+SPEC2MAP=       /usr/lib/abi/spec2map
+
+SPECMAP=	mapfile.vers.$(LIBNAME)
+SPECFILE=	spec/$(LIBNAME).spec 
+VERSFILE=	spec/versions
+
+$(BUILD_DIR_32)/$(SPECMAP): $(SPECFILE) $(VERSFILE)
+	$(MAKE) $(MFLAGS) BUILD_DIR=$(BUILD_DIR_32) MACH=$(MACH32) spec_gen
+
+$(BUILD_DIR_64)/$(SPECMAP): $(SPECFILE) $(VERSFILE)
+	$(MAKE) $(MFLAGS) BUILD_DIR=$(BUILD_DIR_64) MACH=$(MACH64) spec_gen
+
+spec_gen:
+	$(SPEC2MAP) -a $(MACH) -v $(VERSFILE) -p -l $(LIBNAME) \
+	 -o $(BUILD_DIR)/$(SPECMAP) $(SPECFILE)
+
 ### Other tools needed to build
 
 # Some modules (such as FreeType 2) require GNU make
@@ -190,4 +224,12 @@
 	@echo "Checking for GNU make:"
 	$(GNUMAKE) --version
 
+### Dependencies
 
+# Almost everything depends on the headers in xproto
+XPROTO_DEP=$(PROTODIR)/usr/lib/$(ARCHLIBSUBDIR)/pkgconfig/xproto.pc
+
+$(XPROTO_DEP):
+	@echo "Installing dependency proto/X11"
+	(cd $(TOP)/proto/X11 ; make install)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/common/suntouch-manpages.pl	Tue Aug 01 18:01:02 2006 -0700
@@ -0,0 +1,154 @@
+#!/usr/perl5/bin/perl -w
+
+#
+# Copyright 2006 Sun Microsystems, Inc.  All Rights Reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+# 
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+# 
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+#
+# @(#)suntouch-manpages.pl	1.1	06/07/28
+#
+
+# Updates manual pages to include standard Sun man page sections
+#
+# Arguments: 
+#	-a '{attribute, value}, ...' - entries for Attributes section table
+#	-l libname		     - add library line to synopsis
+
+use Getopt::Std;
+use integer;
+use strict;
+
+my %opts;
+getopts('a:l:', \%opts);
+
+my $add_attributes = 0;
+my $attributes;
+
+if (exists($opts{"a"})) {
+  $add_attributes = 1;
+  $attributes = $opts{"a"};
+}
+
+my $add_library_to_synopsis = 0;
+my $library;
+
+if (exists($opts{"l"})) {
+  $add_library_to_synopsis = 1;
+  $library = $opts{"l"};
+}
+
+my $filename;
+
+while ($filename = shift) {
+  rename($filename, "$filename.orig") 
+    || die "Cannot rename $filename to $filename.orig";
+  open(IN, "<$filename.orig") 
+    || die "Cannot read $filename.orig";
+  open(OUT, ">$filename")
+    || die "Cannot write to $filename";
+
+  my $firstline = <IN>;
+
+  if ($add_attributes) {
+    # Check for man page preprocessor list - if found, make sure t is in it for
+    # table processing, if not found, add one;
+
+    if ($firstline =~ m/\'\\\"/) {
+      # Found preprocessor list
+      if ($firstline =~ m/t/) {
+	# Do nothing - tbl preprocessing already selected
+      } else {
+	chomp($firstline);
+	$firstline .= "t\n";
+      }
+    } else {
+      # No preprocessor list found
+      print OUT q('\" t), "\n";
+    }
+  }
+
+  print OUT $firstline;
+
+  my $nextline;
+  while ($nextline = <IN>) {
+    print OUT $nextline;
+
+    if ($add_library_to_synopsis) {
+      if ($nextline =~ m/.SH[\s "]*SYNOPSIS/) {
+	print OUT ".nf\n",
+	  q(\fBcc\fR [ \fIflag\fR\&.\&.\&. ] \fIfile\fR\&.\&.\&. \fB\-l),
+	    $library, q(\fR [ \fIlibrary\fR\&.\&.\&. ]), "\n.fi\n";
+      }
+    }
+  }
+
+  if ($add_attributes) {
+    print OUT &get_attributes_table($attributes);
+  }
+
+  close(IN);
+  close(OUT);
+}
+
+
+sub get_attributes_table {
+  my $attribute_list = $_[0];
+
+  my $attributes_table = q{
+.\\" Begin Sun update
+.SH "ATTRIBUTES"
+See \fBattributes\fR(5) for descriptions of the following attributes:
+.sp
+.TS
+allbox;
+cw(2.750000i)| cw(2.750000i)
+lw(2.750000i)| lw(2.750000i).
+ATTRIBUTE TYPE	ATTRIBUTE VALUE
+<attributes>
+.TE 
+.sp
+.\\" End Sun update
+};
+
+  # Parse input list of attributes
+  $attribute_list =~ s/^\s*{//;
+  $attribute_list =~ s/}\s*$//;
+  my @attribs = split /}\s*{/, $attribute_list;
+
+  my $a;
+  my $attribute_entries = "";
+
+  foreach $a (@attribs) {
+    my ($name, $value) = split /,\s*/, $a, 2;
+    
+    $attribute_entries .= $name . "\t" . $value . "\n";
+  }
+  
+  $attributes_table =~ s/<attributes>\n/$attribute_entries/;
+
+  return $attributes_table;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libXau/Makefile	Tue Aug 01 18:01:02 2006 -0700
@@ -0,0 +1,94 @@
+###############################################################################
+#
+# Xau 1.x Makefile
+#
+# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+# 
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+# 
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+#
+# @(#)Makefile	1.2	06/08/02
+#
+
+PWD:sh=pwd
+TOP=$(PWD)/../..
+BUILD_TYPES=32 64
+
+# Version number (used in path names)
+XAU_VERS=1.0.2
+
+# Source tarball
+SOURCE_TARBALL_NAME=libXau-$(XAU_VERS).tar.bz2
+
+# Download site for source
+SOURCE_URL=$(XORG_RELEASES_URL)/lib/$(SOURCE_TARBALL_NAME)
+
+# Patches to apply to source after unpacking, in order
+SOURCE_PATCHES = 
+
+# Directory created by unpacking source
+SOURCE_DIR=$(BUILD_DIR)/libXau-$(XAU_VERS)
+
+# Library name (used for specfiles/mapfiles)
+LIBNAME=Xau
+
+# Man pages to apply Sun footer to & attributes to list
+SUNTOUCHED_MANPAGES=Xau.man
+SUNTOUCH_MAN_FLAGS= -l Xau \
+ -a '{Availability, SUNWxwplt} {Interface Stability, Committed} {MT-Level, Unsafe}'
+
+include $(TOP)/common/Makefile.inc
+
+# Where to install files
+XAU_prefix=$(X11_DIR)
+
+# Command line options to GNU autoconf configure script
+CONFIG_OPTS = --enable-shared=yes --enable-static=no \
+	--prefix=$(XAU_prefix) --libdir='$${exec_prefix}/lib$(LIBSUBDIR)' \
+	--enable-xthreads --with-lint --enable-lint-library
+
+# Environment variable options to GNU autoconf configure script
+CONFIG_ENV = CC=$(CC) CFLAGS="$(LIB_CFLAGS)" \
+	LD="$(LD) $(LDFLAGS)"  LDFLAGS="$(LIB_LDFLAGS)" \
+	PKG_CONFIG_PATH=$(PROTODIR)/usr/lib/$(ARCHLIBSUBDIR)/pkgconfig \
+	LIB_MAN_SUFFIX=3Xau
+
+# Run configure script
+$(SOURCE_DIR)/Makefile: $(UNPACK_TARGET) $(XPROTO_DEP)
+	(cd $(SOURCE_DIR) ; chmod a+x configure ; \
+	 $(CONFIG_ENV) ./configure $(CONFIG_OPTS) )
+
+# Library built in tree
+XAU_LIB=$(BUILD_DIR)/.libs/libXau.so.6.0.0
+
+build_gen: $(XAU_LIB)
+
+$(XAU_LIB): $(SOURCE_DIR)/Makefile $(BUILD_DIR)/$(SPECMAP)
+	(cd $(SOURCE_DIR) ; LD_OPTIONS="$(LIB_REQUIRED_LDFLAGS) -M $(PWD)/$(BUILD_DIR)/$(SPECMAP)" $(MAKE) $(MFLAGS) )
+
+
+install_gen: $(XAU_LIB)
+	(cd $(SOURCE_DIR) ; $(LIBPATHS) LD_OPTIONS="$(LIB_REQUIRED_LDFLAGS)" $(MAKE) $(MFLAGS) -e DESTDIR=$(PROTODIR) libdir=$(XAU_prefix)/lib$(ARCHLIBSUBDIR) install pkgconfigdir=/usr/lib/$(ARCHLIBSUBDIR)/pkgconfig)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libXau/spec/Xau.spec	Tue Aug 01 18:01:02 2006 -0700
@@ -0,0 +1,85 @@
+#
+# Copyright 2003 Sun Microsystems, Inc.  All rights reserved.
+# Use is subject to license terms.
+#
+# ident	"@(#)Xau.spec	1.1	03/04/08 SMI"
+#
+
+# AuDispose.c
+Function	XauDisposeAuth
+Include		<X11/Xauth.h>
+Declaration	void XauDisposeAuth (Xauth *auth)
+Version		SUNW_1.1
+Arch		all
+End
+
+# AuFileName.c
+Function	XauFileName
+Include		<X11/Xauth.h>
+Declaration	char *XauFileName (void)
+Exception	$return == NULL
+Version		SUNW_1.1
+Arch		all
+End
+
+# AuGetAddr.c
+Function	XauGetAuthByAddr
+Include		<X11/Xauth.h>
+Declaration	Xauth *XauGetAuthByAddr(unsigned int family, \
+			unsigned int address_length, const char* address, \
+			unsigned int number_length, const char* number, \
+			unsigned int name_length, const char* name)
+Exception	$return == NULL
+Version		SUNW_1.1
+Arch		all
+End
+
+# AuGetBest.c
+Function	XauGetBestAuthByAddr
+Include		<X11/Xauth.h>
+Declaration	Xauth *XauGetBestAuthByAddr (unsigned int family, \
+			unsigned int address_length, const char* address, \
+			unsigned int number_length, const char* number, \
+		       int types_length, char** types, const int* type_lengths)
+Exception	$return == NULL
+Version		SUNW_1.1
+Arch		all
+End
+
+# AuLock.c
+Function	XauLockAuth
+Include		<X11/Xauth.h>
+Declaration	int XauLockAuth (const char *file_name, int retries, \
+			int timeout, long dead)
+Exception	$return == LOCK_ERROR
+Version		SUNW_1.1
+Arch		all
+End
+
+# AuRead.c
+Function	XauReadAuth
+Include		<X11/Xauth.h>
+Declaration	Xauth *XauReadAuth (FILE *auth_file)
+Exception	$return == NULL
+Version		SUNW_1.1
+Arch		all
+End
+
+# AuUnlock.c
+Function	XauUnlockAuth
+Include		<X11/Xauth.h>
+Declaration	int XauUnlockAuth (const char *file_name)
+Exception	$return == 0
+Version		SUNW_1.1
+Arch		all
+End
+
+# AuWrite.c
+Function	XauWriteAuth
+Include		<X11/Xauth.h>
+Declaration	int XauWriteAuth (FILE *auth_file, Xauth *auth)
+Exception	$return == 0
+Version		SUNW_1.1
+Arch		all
+End
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libXau/spec/versions	Tue Aug 01 18:01:02 2006 -0700
@@ -0,0 +1,25 @@
+#
+# Copyright (c) 2000 by Sun Microsystems, Inc.
+# All rights reserved.
+#
+#ident  "@(#)versions	1.2	05/05/12 SMI"
+#
+#lib/Xau/spec/versions
+#
+
+amd64 {
+	SUNW_1.1;
+	SUNWprivate;
+}
+i386 {
+	SUNW_1.1;
+	SUNWprivate;
+}
+sparc {
+	SUNW_1.1;
+	SUNWprivate;
+}
+sparcv9 {
+	SUNW_1.1;
+	SUNWprivate;
+}
--- a/open-src/proto/Makefile.inc	Fri Jul 21 11:54:25 2006 -0700
+++ b/open-src/proto/Makefile.inc	Tue Aug 01 18:01:02 2006 -0700
@@ -28,7 +28,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile.inc	1.1	06/06/12
+# @(#)Makefile.inc	1.2	06/07/28
 #
 
 ### Makefile settings/rules common to all X.Org protocol modules
@@ -64,7 +64,9 @@
 
 # Install
 install_gen:: $(SOURCE_DIR)/Makefile
-	(cd $(SOURCE_DIR) ; $(MAKE) $(MFLAGS) -e DESTDIR=$(PROTODIR) install)
+	(cd $(SOURCE_DIR) ; \
+	 $(MAKE) $(MFLAGS) -e DESTDIR=$(PROTODIR) pkgconfigdir=/usr/lib/pkgconfig install ; \
+	 $(MAKE) $(MFLAGS) -e DESTDIR=$(PROTODIR) pkgconfigdir=/usr/lib/$(SUBDIR64)/pkgconfig install-pkgconfigDATA )