[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gentoo-user
Subject:    [gentoo-user] [ebuild] automake 1.6.1
From:       Alexander Kellett <kelletta () eidetica ! com>
Date:       2002-05-17 17:07:26
[Download RAW message or body]

Appears to Work for Me (TM)
Some ugly stuff though ;-)

Alex

--
kelletta@eidetica.com           (lypanov)           http://lypanov.shacknet.nu

["automake-1.6.1.ebuild" (text/plain)]

# Copyright 1999-2002 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License, v2 or later
# Maintainer: Daniel Robbins <drobbins@gentoo.org>
# /space/gentoo/cvsroot/gentoo-x86/sys-devel/automake/automake-1.6.1.ebuild,v 1.4 \
2002/04/23 19:42:16 azarah Exp

# OLD = 1.4
# NEW = 1.5d
# OUR = 1.6 (.1)

NEW_PV=1.5d
NEW_P=${PN}-${NEW_PV}
OLD_PV=1.4-p5
OLD_P=${PN}-${OLD_PV}
SHORT_NEW_PV=1.5
SHORT_PV=1.6
S=${WORKDIR}/${P}
OLD_S=${WORKDIR}/${OLD_P}
NEW_S=${WORKDIR}/${NEW_P}
DESCRIPTION="Used to generate Makefile.in from Makefile.am"
SRC_URI="ftp://ftp.gnu.org/gnu/${PN}/${P}.tar.gz
	ftp://sources.redhat.com/pub/${PN}/${NEW_P}.tar.bz2
	ftp://ftp.gnu.org/gnu/${PN}/${OLD_P}.tar.gz"
HOMEPAGE="http://www.gnu.org/software/automake/automake.html"

DEPEND="sys-devel/perl
	>=sys-devel/autoconf-2.53"

SLOT="1.5"

src_compile() {

	#
	# ************ automake-1.6x ************
	#

	# stupid configure script goes and run autoconf in a subdir,
	# so 'ac-wrapper.pl' do not detect that it should use
	# autoconf-2.5x
	export WANT_AUTOCONF_2_5=1
	
	cd ${S}

	cp automake.texi automake.texi.orig
	sed -e "s:setfilename automake.info:setfilename automake-1.6.info:" \
		automake.texi.orig >automake.texi
	
	./configure --prefix=/usr \
		--infodir=/usr/share/info \
		--mandir=/usr/share/man \
		--target=${CHOST} || die
	
	emake ${MAKEOPTS} || die

	#
	# ************ automake-1.5x ************
	#

	cd ${NEW_S}

	cp automake.texi automake.texi.orig
	sed -e "s:setfilename automake.info:setfilename automake-1.5.info:" \
		automake.texi.orig >automake.texi
	
	./configure --prefix=/usr \
		--infodir=/usr/share/info \
		--mandir=/usr/share/man \
		--target=${CHOST} || die
	
	emake ${MAKEOPTS} || die
	unset WANT_AUTOCONF_2_5

	#
	# ************ automake-1.4-p5 ************
	#
	cd ${OLD_S}
	./configure --prefix=/usr \
		--infodir=/usr/share/info \
		--mandir=/usr/share/man \
		--target=${CHOST} || die
		
	emake ${MAKEOPTS} || die
}

src_install() {

	# install wrapper script for autodetecting the proper version
	# to use.
	exeinto /usr/lib/${PN}
	newexe ${FILESDIR}/am-wrapper.pl-1.6 am-wrapper.pl
	dosed "s:1\.6x:${SHORT_PV}:g" /usr/lib/${PN}/am-wrapper.pl

	#
	# ************ automake-1.6x ************
	#

	cd ${S}
	make DESTDIR=${D} \
		install || die

	for x in automake aclocal
	do
		mv ${D}/usr/bin/${x}-${SHORT_PV} ${D}/usr/bin/${x}-${SHORT_PV}
		rm -f ${D}/usr/bin/${x}
	done

	doinfo automake-1.6.info*

	docinto ${SHORT_PV}
	dodoc COPYING NEWS README THANKS TODO AUTHORS ChangeLog

	#
	# ************ automake-1.5x ************
	#

	cd ${NEW_S}
	make DESTDIR=${D} \
		install || die

	for x in automake aclocal
	do
		mv ${D}/usr/bin/${x}-${SHORT_NEW_PV} ${D}/usr/bin/${x}-${SHORT_NEW_PV}
		rm -f ${D}/usr/bin/${x}
	done

	doinfo automake-1.5.info*

	docinto ${SHORT_NEW_PV}
	dodoc COPYING NEWS README THANKS TODO AUTHORS ChangeLog

	#
	# ************ automake-1.4-p5 ************
	#

    cd ${OLD_S}
	make prefix=${D}/usr \
		mandir=${D}/usr/share/man \
		infodir=${D}/usr/share/info \
		install || die

	for x in automake aclocal
	do
		mv ${D}/usr/bin/${x} ${D}/usr/bin/${x}-1.4
		dosym ../lib/${PN}/am-wrapper.pl /usr/bin/${x}
	done

	docinto ${OLD_PV}
	dodoc COPYING NEWS README THANKS TODO AUTHORS ChangeLog
}

pkg_preinst() {
	
	# remove these to make sure symlinks install properly if old versions
	# was binaries
	for x in automake aclocal
	do
		if [ -e /usr/bin/${x} ]
		then
			rm -f /usr/bin/${x}
		fi
	done
}


["am-wrapper.pl-1.6" (text/plain)]

#!/usr/bin/perl
#
#
# Guillaume Cottenceau (gc@mandrakesoft.com)
#
# Copyright 2001 MandrakeSoft
#
# This software may be freely redistributed under the terms of the GNU
# public license.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#
# Executes the correct autoconf version.
#
# - defaults to automake-1.4
# - runs automake-1.6x if it exists and...
#    - envvar WANT_AUTOMAKE_1_6 is set to `1'
# - runs automake-1.5x if it exists and...
#    - envvar WANT_AUTOMAKE_1_5 is set to `1'
# or - configure.ac is present
# or - `configure.in' contains AC_PREREQ and the value's 3 first letters
#      are stringwise greater than '2.1'
#

#use MDK::Common;

sub cat_ { local *F; open F, $_[0] or return; my @l = <F>; wantarray ? @l : join '', \
@l }

my $binary      = "$0-1.4";
my $binary_new  = "$0-1.5x";
my $binary_vnew = "$0-1.6x";

if (!$ENV{WANT_AUTOMAKE_1_4}) {
    if (-x $binary_vnew                  # user may not have _1_6
	&& ($ENV{WANT_AUTOMAKE_1_6}) ) {
	$binary 		= $binary_vnew;
    } elsif (-x $binary_new                  # user may have only 2.13
	&& ($ENV{WANT_AUTOMAKE_1_5}
	    || -r 'configure.ac'
	    || (cat_('configure.in') =~ /^\s*AC_PREREQ\(\[?([^\)]{3})[^\)]*\)/m ? $1 : '') \
                gt '2.1' 
	    || (cat_('aclocal.m4') =~ /^\s*AC_PREREQ\(\[?([^\)]{3})[^\)]*\)/m ? $1 : '') gt \
'2.1')) {  $ENV{WANT_AUTOMAKE_1_5} = 1;    # to prevent further "cats" and to enhance \
consistency (possible cwd etc)  $binary 		= $binary_new;
    } else {
	$ENV{WANT_AUTOMAKE_1_4} = 1;    # for further consistency
    }
}

$ENV{WANT_AMWRAPPER_DEBUG} and print STDERR "am-wrapper: will execute <$binary>\n";

exec $binary, @ARGV;

die "am-wrapper: ouch, couldn't call binary ($binary).\n";



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic