/[gentoo-x86]/eclass/autotools.eclass
Gentoo

Contents of /eclass/autotools.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations) (download)
Mon Dec 31 23:43:41 2001 UTC (12 years, 7 months ago) by azarah
Branch: MAIN
eclass for handeling packages that need the latest automake and autoconf

1 azarah 1.1 # Copyright 1999-2002 Gentoo Technologies, Inc.
2     # Distributed under the terms of the GNU General Public License, v2 or later
3     # Author: Martin Schlemmer <azarah@gentoo.org>
4     # $Header: /home/cvsroot/gentoo-x86/eclass/autoconf.eclass,v 1.7 2001/10/13 22:02:12 danarmak Exp $
5     # The autotools eclass enables building of the apps that needs the latest autconf/automake.
6     #
7     # NOTES:
8     #
9     # This eclass was made to bridge the incompadibility problem of autoconf-2.13,
10     # autoconf-2.5x and automake-1.4x, automake-1.5x. Most packages needs
11     # autoconf-2.13 and automake-1.4x, but cannot work with the latest versions
12     # of these packages due to incompadibility, thus when we have a package that
13     # needs the latest versions of automake and autoconf, it begins to get a
14     # problem.
15     #
16     #
17     # Commented Example:
18     #
19     # The following is a commented template for how to use this eclass:
20     #
21     # #<cut here>
22     # # Copyright 1999-2002 Gentoo Technologies, Inc.
23     # # Distributed under the terms of the GNU General Public License, v2 or later
24     # # Maintainer: John Doe <john@foo.com>
25     # # $Header: $
26     #
27     # # If you need to set the versions different from in here, it *must*
28     # # be done before inherit.eclass is sourced
29     # #ACONFVER=2.52f
30     # #AMAKEVER=1.5b
31     #
32     # # Source inherit.eclass and inherit AutoTools
33     # . /usr/portage/eclass/inherit.eclass || die
34     # inherit autotools || die
35     #
36     # # This is pretty standard.
37     # S=${WORKDIR}/${P}
38     # DESCRIPTION="My Application"
39     #
40     # # Here you *NEED* to have $SRC_URI as a source url to include the automake
41     # # and autoconf source tarballs
42     # SRC_URI="${SRC_URI}
43     # http://download.foo.com/files/${P}.tar.gz"
44     #
45     # HOMEPAGE="http://www.foo.com/"
46     #
47     # # Here you *NEED* to have "$DEPEND" as an depend to include the dependancies
48     # # of automake and autoconf.
49     # DEPEND="${DEPEND}
50     # foo-libs/libfoo"
51     #
52     # src_compile() {
53     #
54     # # This will install automake and autoconf in a tempory directory and
55     # # setup the environment. Do not forget!!!!!!!
56     # install_autotools
57     #
58     # # Now like normal
59     # ./configure --host=${CHOST} \
60     # --prefix=/usr || die
61     # emake || die
62     # }
63     #
64     # src_install() {
65     #
66     # # Still pretty standard to how you would normally do it
67     # make DESTDIR=${D} install || die
68     # dodoc AUTHORS COPYING ChangeLog INSTALL NEWS README TODO
69     # }
70     # #<cut here>
71     #
72    
73    
74     ECLASS=AutoTools
75    
76     #[ -z "$ACONFVER" ] && ACONFVER=2.52f
77     #[ -z "$AMAKEVER" ] && AMAKEVER=1.5b
78     [ -z "$ACONFVER" ] && die "!!! You need to set \$ACONFVER *before* inheriting the eclass !!!"
79     [ -z "$AMAKEVER" ] && die "!!! You need to set \$AMAKEVER *before* inheriting the eclass !!!"
80    
81     DESCRIPTION="Based on the $ECLASS eclass"
82     #ASRC_URI="ftp://ftp.gnu.org/gnu/autoconf/autoconf-${ACONFVER}.tar.bz2
83     # ftp://alpha.gnu.org/gnu/autoconf/autoconf-${ACONFVER}.tar.bz2
84     # ftp://ftp.gnu.org/gnu/automake/automake-${AMAKEVER}.tar.bz2
85     # ftp://alpha.gnu.org/gnu/automake/automake-${AMAKEVER}.tar.bz2"
86     SRC_URI="ftp://ftp.gnu.org/gnu/autoconf/autoconf-${ACONFVER}.tar.bz2
87     ftp://alpha.gnu.org/gnu/autoconf/autoconf-${ACONFVER}.tar.bz2
88     ftp://ftp.gnu.org/gnu/automake/automake-${AMAKEVER}.tar.bz2
89     ftp://alpha.gnu.org/gnu/automake/automake-${AMAKEVER}.tar.bz2"
90    
91     DEPEND="sys-devel/make
92     sys-devel/perl
93     >=sys-devel/m4-1.4o-r2"
94    
95    
96     AUTO_S="${WORKDIR}"
97     AUTO_D="${T}/autotools"
98    
99     fetch_autotools() {
100    
101     local y
102     for y in ${ASRC_URI}
103     do
104     if [ ! -e ${DISTDIR}/${y##*/} ]
105     then
106     echo ">>> Fetching ${y##*/}..."
107     echo
108     local x
109     local _SRC_URI
110     for x in ${GENTOO_MIRRORS}
111     do
112     _SRC_URI="${_SRC_URI} ${x}/distfiles/${y##*/}"
113     done
114     _SRC_URI="${_SRC_URI} `queryhost.sh "${SRC_URI}"`"
115     for x in ${_SRC_URI}
116     do
117     if [ ! -e ${DISTDIR}/${y##*/} ]
118     then
119     if [ "${y##*/}" = "${x##*/}" ]
120     then
121     echo ">>> Trying site ${x}..."
122     eval "${FETCHCOMMAND}"
123     fi
124     fi
125     done
126     if [ ! -e ${DISTDIR}/${y##*/} ]
127     then
128     echo '!!!'" Couldn't download ${y##*/} needed by autotools.eclass. Aborting."
129     exit 1
130     fi
131     echo
132     fi
133     done
134     }
135    
136     unpack_autotools() {
137    
138     cd ${AUTO_S}
139    
140     local x
141     for x in ${ASRC_URI}
142     do
143     unpack ${x##*/} || die "!!! Could not unpack ${x##*/} needed by autotools !!!"
144     done
145     }
146    
147     install_autoconf() {
148    
149     cd ${AUTO_S}/autoconf-${ACONFVER} || die "!!! Failed to build autoconf !!!"
150    
151     ./configure --prefix=${AUTO_D} \
152     --infodir=${AUTO_D}/share/info \
153     --mandir=${AUTO_D}/share/man \
154     --target=${CHOST} || die "!!! Failed to configure autoconf !!!"
155    
156     emake || die "!!! Failed to build autoconf !!!"
157    
158     make install || die "!!! Failed to install autoconf !!!"
159     }
160    
161     install_automake() {
162    
163     cd ${AUTO_S}/automake-${AMAKEVER} || die "!!! Failed to build automake !!!"
164    
165     ./configure --prefix=${AUTO_D} \
166     --infodir=${AUTO_D}/share/info \
167     --mandir=${AUTO_D}/share/man \
168     --target=${CHOST} || die "!!! Failed to configure automake !!!"
169    
170     emake || die "!!! Failed to build automake !!!"
171    
172     make install || die "!!! Failed to install automake !!!"
173     }
174    
175     install_autotools() {
176    
177     if [ "${SRC_URI/autoconf/}" = "$SRC_URI" ] || [ "${SRC_URI/automake/}" = "$SRC_URI" ]
178     then
179     echo "!!! \$SRC_URI was not set properly !!! It needs to include \${SRC_URI}"
180     exit 1
181     fi
182    
183     if [ "${DEPEND/make/}" = "$DEPEND" ] || [ "${DEPEND/perl/}" = "$DEPEND" ] || \
184     [ "${DEPEND/m4/}" = "$DEPEND" ]
185     then
186     echo "!!! \$DEPEND was not set properly !!! It needs to include \${DEPEND}"
187     exit 1
188     fi
189    
190     mkdir -p ${AUTO_S}
191     mkdir -p ${AUTO_D}/{bin,etc,lib,include,share} \
192     || die "!!! Could not create needed directories for autotools !!!"
193    
194     # fetch_autotools
195     # unpack_autotools
196     install_autoconf
197     install_automake
198    
199     export PATH=${AUTO_D}/bin:${PATH}
200     cd ${S}
201     ln -sf ${AUTO_D}/share/automake/depcomp ${S}/depcomp
202     }

  ViewVC Help
Powered by ViewVC 1.1.20