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

Contents of /eclass/autotools.eclass

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.6 - (hide annotations) (download)
Fri Oct 25 19:55:52 2002 UTC (11 years, 10 months ago) by vapier
Branch: MAIN
CVS Tags: GENTOO_1_4_SNAP_2003010800
Changes since 1.5: +3 -3 lines
Header updates/cleanups

1 azarah 1.1 # Copyright 1999-2002 Gentoo Technologies, Inc.
2 vapier 1.6 # Distributed under the terms of the GNU General Public License v2
3 azarah 1.1 # Author: Martin Schlemmer <azarah@gentoo.org>
4 vapier 1.6 # $Header: /home/cvsroot/gentoo-x86/eclass/autotools.eclass,v 1.5 2002/10/20 10:43:04 azarah Exp $
5 azarah 1.1 # 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 vapier 1.6 # # $Header: /home/cvsroot/gentoo-x86/eclass/autotools.eclass,v 1.5 2002/10/20 10:43:04 azarah Exp $
26 azarah 1.1 #
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 danarmak 1.2 # . /usr/portage/eclass/inherit.eclass
34     # inherit autotools
35 azarah 1.1 #
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 danarmak 1.4 ECLASS=autotools
75 danarmak 1.3 INHERITED="$INHERITED $ECLASS"
76 azarah 1.1
77     #[ -z "$ACONFVER" ] && ACONFVER=2.52f
78     #[ -z "$AMAKEVER" ] && AMAKEVER=1.5b
79     [ -z "$ACONFVER" ] && die "!!! You need to set \$ACONFVER *before* inheriting the eclass !!!"
80     [ -z "$AMAKEVER" ] && die "!!! You need to set \$AMAKEVER *before* inheriting the eclass !!!"
81    
82     DESCRIPTION="Based on the $ECLASS eclass"
83     #ASRC_URI="ftp://ftp.gnu.org/gnu/autoconf/autoconf-${ACONFVER}.tar.bz2
84     # ftp://alpha.gnu.org/gnu/autoconf/autoconf-${ACONFVER}.tar.bz2
85     # ftp://ftp.gnu.org/gnu/automake/automake-${AMAKEVER}.tar.bz2
86     # ftp://alpha.gnu.org/gnu/automake/automake-${AMAKEVER}.tar.bz2"
87     SRC_URI="ftp://ftp.gnu.org/gnu/autoconf/autoconf-${ACONFVER}.tar.bz2
88     ftp://alpha.gnu.org/gnu/autoconf/autoconf-${ACONFVER}.tar.bz2
89     ftp://ftp.gnu.org/gnu/automake/automake-${AMAKEVER}.tar.bz2
90     ftp://alpha.gnu.org/gnu/automake/automake-${AMAKEVER}.tar.bz2"
91    
92     DEPEND="sys-devel/make
93     sys-devel/perl
94     >=sys-devel/m4-1.4o-r2"
95    
96    
97     AUTO_S="${WORKDIR}"
98     AUTO_D="${T}/autotools"
99    
100     fetch_autotools() {
101    
102     local y
103     for y in ${ASRC_URI}
104     do
105     if [ ! -e ${DISTDIR}/${y##*/} ]
106     then
107     echo ">>> Fetching ${y##*/}..."
108     echo
109     local x
110     local _SRC_URI
111     for x in ${GENTOO_MIRRORS}
112     do
113     _SRC_URI="${_SRC_URI} ${x}/distfiles/${y##*/}"
114     done
115     _SRC_URI="${_SRC_URI} `queryhost.sh "${SRC_URI}"`"
116     for x in ${_SRC_URI}
117     do
118     if [ ! -e ${DISTDIR}/${y##*/} ]
119     then
120     if [ "${y##*/}" = "${x##*/}" ]
121     then
122     echo ">>> Trying site ${x}..."
123     eval "${FETCHCOMMAND}"
124     fi
125     fi
126     done
127     if [ ! -e ${DISTDIR}/${y##*/} ]
128     then
129     echo '!!!'" Couldn't download ${y##*/} needed by autotools.eclass. Aborting."
130     exit 1
131     fi
132     echo
133     fi
134     done
135     }
136    
137     unpack_autotools() {
138    
139     cd ${AUTO_S}
140    
141     local x
142     for x in ${ASRC_URI}
143     do
144     unpack ${x##*/} || die "!!! Could not unpack ${x##*/} needed by autotools !!!"
145     done
146     }
147    
148     install_autoconf() {
149    
150     cd ${AUTO_S}/autoconf-${ACONFVER} || die "!!! Failed to build autoconf !!!"
151    
152     ./configure --prefix=${AUTO_D} \
153     --infodir=${AUTO_D}/share/info \
154     --mandir=${AUTO_D}/share/man \
155     --target=${CHOST} || die "!!! Failed to configure autoconf !!!"
156    
157     emake || die "!!! Failed to build autoconf !!!"
158    
159     make install || die "!!! Failed to install autoconf !!!"
160     }
161    
162     install_automake() {
163    
164     cd ${AUTO_S}/automake-${AMAKEVER} || die "!!! Failed to build automake !!!"
165    
166 azarah 1.5 ./configure --prefix=${AUTO_D} \
167     --infodir=${AUTO_D}/share/info \
168     --mandir=${AUTO_D}/share/man \
169     --target=${CHOST} || die "!!! Failed to configure automake !!!"
170 azarah 1.1
171 azarah 1.5 emake || die "!!! Failed to build automake !!!"
172 azarah 1.1
173 azarah 1.5 make install || die "!!! Failed to install automake !!!"
174 azarah 1.1 }
175    
176     install_autotools() {
177    
178     if [ "${SRC_URI/autoconf/}" = "$SRC_URI" ] || [ "${SRC_URI/automake/}" = "$SRC_URI" ]
179     then
180     echo "!!! \$SRC_URI was not set properly !!! It needs to include \${SRC_URI}"
181     exit 1
182     fi
183    
184     if [ "${DEPEND/make/}" = "$DEPEND" ] || [ "${DEPEND/perl/}" = "$DEPEND" ] || \
185     [ "${DEPEND/m4/}" = "$DEPEND" ]
186     then
187     echo "!!! \$DEPEND was not set properly !!! It needs to include \${DEPEND}"
188     exit 1
189     fi
190    
191     mkdir -p ${AUTO_S}
192     mkdir -p ${AUTO_D}/{bin,etc,lib,include,share} \
193     || die "!!! Could not create needed directories for autotools !!!"
194    
195     # fetch_autotools
196     # unpack_autotools
197     install_autoconf
198     install_automake
199    
200     export PATH=${AUTO_D}/bin:${PATH}
201     cd ${S}
202     ln -sf ${AUTO_D}/share/automake/depcomp ${S}/depcomp
203     }

  ViewVC Help
Powered by ViewVC 1.1.20