summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang')
-rw-r--r--dev-lang/gpc/ChangeLog7
-rw-r--r--dev-lang/gpc/files/digest-gpc-2.12
-rw-r--r--dev-lang/gpc/files/digest-gpc-200405162
-rw-r--r--dev-lang/gpc/files/gpc-20020510_lang.h.patch10
-rw-r--r--dev-lang/gpc/gpc-2.1.ebuild113
-rw-r--r--dev-lang/gpc/gpc-20040516.ebuild183
-rw-r--r--dev-lang/gpc/metadata.xml8
7 files changed, 199 insertions, 126 deletions
diff --git a/dev-lang/gpc/ChangeLog b/dev-lang/gpc/ChangeLog
index 9740919ece7c..7d3e6195c79a 100644
--- a/dev-lang/gpc/ChangeLog
+++ b/dev-lang/gpc/ChangeLog
@@ -1,6 +1,11 @@
# ChangeLog for dev-lang/gpc
# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/gpc/ChangeLog,v 1.8 2004/06/07 20:41:50 agriffis Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/gpc/ChangeLog,v 1.9 2004/06/13 01:01:55 george Exp $
+
+ 12 Jun 2004; George Shapovalov <george@gentoo.org> gpc-20040516.ebuild :
+ new beta out (this package does not have releases at all :), even betas are one a few years)
+ much cleaned and improved ebuild (#48377);
+ removed gpc-2.1
07 Jun 2004; Aron Griffis <agriffis@gentoo.org> gpc-20030209.ebuild:
Fix use invocation
diff --git a/dev-lang/gpc/files/digest-gpc-2.1 b/dev-lang/gpc/files/digest-gpc-2.1
deleted file mode 100644
index f785d8176df3..000000000000
--- a/dev-lang/gpc/files/digest-gpc-2.1
+++ /dev/null
@@ -1,2 +0,0 @@
-MD5 2db23cb4b36f078aabdda259f64700db gpc-2.1.tar.gz 2954007
-MD5 f3ad4f32c2296fad758ed051b5ac8e28 gcc-2.95.3.tar.gz 12911721
diff --git a/dev-lang/gpc/files/digest-gpc-20040516 b/dev-lang/gpc/files/digest-gpc-20040516
new file mode 100644
index 000000000000..64a525916585
--- /dev/null
+++ b/dev-lang/gpc/files/digest-gpc-20040516
@@ -0,0 +1,2 @@
+MD5 34521ddbdbf9d1c9ebeb9d82f5ea0bc3 gpc-20040516.tar.gz 3146155
+MD5 3c6cfd9fcd180481063b4058cf6faff2 gcc-3.3.3.tar.bz2 23279245
diff --git a/dev-lang/gpc/files/gpc-20020510_lang.h.patch b/dev-lang/gpc/files/gpc-20020510_lang.h.patch
deleted file mode 100644
index ecedf945a98d..000000000000
--- a/dev-lang/gpc/files/gpc-20020510_lang.h.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- lang.h-orig Sat May 11 00:09:23 2002
-+++ lang.h Sat May 11 00:09:47 2002
-@@ -22,6 +22,7 @@
- Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
- 02111-1307, USA. */
-
-+#define LONG64
- #ifndef _GPC_LANG_H
- #define _GPC_LANG_H
-
diff --git a/dev-lang/gpc/gpc-2.1.ebuild b/dev-lang/gpc/gpc-2.1.ebuild
deleted file mode 100644
index 6c016f403cb3..000000000000
--- a/dev-lang/gpc/gpc-2.1.ebuild
+++ /dev/null
@@ -1,113 +0,0 @@
-# Copyright 1999-2004 Gentoo Technologies, Inc.
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/gpc/gpc-2.1.ebuild,v 1.15 2004/04/19 19:11:29 vapier Exp $
-
-DESCRIPTION="Gnu Pascal Compiler"
-HOMEPAGE="http://gnu-pascal.de/"
-SRC_URI="http://gnu-pascal.de/current/${P}.tar.gz
- ftp://gcc.gnu.org/pub/gcc/releases/gcc-2.95.3/gcc-2.95.3.tar.gz"
-#only need gcc-core (smaller download), but user will likely have this one already
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="x86 sparc"
-IUSE=""
-
-DEPEND="virtual/glibc
- ~sys-devel/gcc-2.95.3"
-
-S="${WORKDIR}/gcc-2.95.3"
-
-src_unpack() {
- unpack "${P}.tar.gz"
- unpack "gcc-2.95.3.tar.gz"
-
- #the release is just a renamed 20020510 package
- #thus need to reset ${P} at this point
- P=gpc-20020510
-
- cd "${WORKDIR}/${P}/p"
-
- #comment out read to let ebuild continue
- cp config-lang.in config-lang.in.orig
- sed -e "s:read:#read:" config-lang.in.orig > config-lang.in
-
- #this fix seems to be specific to gentoo glibc
- #one of the patches to glibc-2.2.5-r4 was causing problems
- #if emake and -pipe were used when building gpc
- #looks like this patch in not in glibc-2.2.5-r5, but I'll keep this fix
- #it does not seem to do any harm
- patch lang.h < ${FILESDIR}/gpc-20020510_lang.h.patch
-
- cd "${WORKDIR}/${P}"
- mv p "${S}/gcc/"
-
- cd "${S}"
-}
-
-src_compile() {
- #lets reduce optimisation somewhat
- export CFLAGS="${CFLAGS/-O?/-O2}"
- export CXXFLAGS="${CXXFLAGS/-O?/-O2}"
-
- #it also looks like gpc does not like -pipe
- #resolved!
- #export CFLAGS="${CFLAGS/-pipe/}"
- #export CXXFLAGS="${CXXFLAGS/-pipe/}"
-
- ./configure --enable-languages=pascal\
- --host=${CHOST} --build=${CHOST} --target=${CHOST} \
- --prefix=/usr \
- --enable-version-specific-runtime-libs \
- --infodir=/usr/share/info \
- --mandir=/usr/share/man || die "./configure failed"
- emake || die
- #make || die
-}
-
-src_install() {
- make \
- prefix=${D}/usr \
- mandir=${D}/usr/share/man \
- infodir=${D}/usr/share/info \
- install || die
-
- #now for the true magic :)
- #gpc is based on gcc and therefore rebuilds gcc backend when compiled
- #we do not want to overwrite it, do we? (even though the binaries are supposed to be the same)
- #so do a dirty hack:
- #go in to the image dir and delete everything inappropriate
-
- cd ${D}/usr/
-
- mv bin bin.orig
- mkdir bin
- mv bin.orig/gpc* bin
- rm -rf bin.orig
-
- #now lib
- cd ${D}/usr/lib/
- rm libiberty.a
-
- cd ${D}/usr/lib/gcc-lib/i686-pc-linux-gnu/
- mv 2.95.3 2.95.3.orig
- mkdir 2.95.3
- mv 2.95.3.orig/{gpc1,gpcpp,libgpc.a,units} 2.95.3
- mkdir 2.95.3/include
- mv 2.95.3.orig/include/gpc-in-c.h 2.95.3/include/
- rm -rf 2.95.3.orig
-
-
- # Install documentation.
- #gpc wants to install some files and a lot of demos under /usr/doc
- #lets move it under /usr/share/doc
- #(Ok, this is not the most buitiful way to do it, but it seems to be the easiest here :))
- cd ${D}/usr/doc
- dodir /usr/share/doc/
- mv gpc/ ${D}/usr/share/doc/${P}
- cd ${D}/usr/share/doc/${P}
- for fn in *; do [ -f $fn ] && gzip $fn; done
-
- cd ${D}/usr/
- rmdir doc
-}
diff --git a/dev-lang/gpc/gpc-20040516.ebuild b/dev-lang/gpc/gpc-20040516.ebuild
new file mode 100644
index 000000000000..22b6e849f2de
--- /dev/null
+++ b/dev-lang/gpc/gpc-20040516.ebuild
@@ -0,0 +1,183 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/gpc/gpc-20040516.ebuild,v 1.1 2004/06/13 01:01:55 george Exp $
+
+inherit eutils flag-o-matic
+
+strip-flags
+filter-flags "-pipe"
+
+#due to cache requirements we cannot dynamically match gcc version
+#so sticking to a particular (and working) one
+GCC_PV="3.3.3"
+
+DESCRIPTION="Gnu Pascal Compiler"
+HOMEPAGE="http://gnu-pascal.de"
+SRC_URI="http://gnu-pascal.de/beta/${P}.tar.gz
+ ftp://gcc.gnu.org/pub/gcc/releases/gcc-${GCC_PV}/gcc-${GCC_PV}.tar.bz2"
+#only need gcc-core (smaller download), but user will likely have this one already
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86 ~sparc ~amd64"
+IUSE="nls"
+
+DEPEND="virtual/glibc
+ =sys-devel/gcc-${GCC_PV}*"
+
+S="${WORKDIR}/gcc-${GCC_PV}"
+
+# Theoretical cross compiler support
+[ ! -n "${CCHOST}" ] && export CCHOST="${CHOST}"
+
+LOC="/usr"
+#GCC_PVR=$(emerge -s gcc|grep "installed: 3.2"|cut -d ':' -f 2)
+LIBPATH="${LOC}/lib/gcc-lib/${CCHOST}/${GCC_PV}"
+#BINPATH="${LOC}/${CCHOST}/gcc-bin/${GCC_PV}"
+DATAPATH="${LOC}/share"
+# Dont install in /usr/include/g++-v3/, but in gcc internal directory.
+# We will handle /usr/include/g++-v3/ with gcc-config ...
+STDCXX_INCDIR="${LIBPATH}/include/g++-v${MY_PV/\.*/}"
+
+src_unpack() {
+ unpack ${A}
+# unpack "${P}.tar.gz"
+# unpack "gcc-${GCC_PV}.tar.bz2"
+
+ cd "${WORKDIR}/${P}/p"
+
+ #comment out read to let ebuild continue
+ sed -i -e "s:read:#read:" config-lang.in || die "seding autoreplies failed"
+ #and remove that P var (it doesn't seem to do much but to fail inside the ebuild)
+ sed -i -e "s:\$(P)::" Make-lang.in || die "seding Make-lan.in failed"
+
+ cd "${WORKDIR}/${P}"
+ mv p "${S}/gcc/"
+
+ # Build in a separate build tree
+ mkdir -p ${WORKDIR}/build
+}
+
+src_compile() {
+ local myconf
+
+ if ! use nls
+ then
+ myconf="${myconf} --disable-nls"
+ else
+ myconf="${myconf} --enable-nls --without-included-gettext"
+ fi
+
+ #Makefiles seems to use ${P} internally, need to wrap around
+# SAVEP="${P}"
+# unset P
+
+ cd ${WORKDIR}/build
+
+ einfo "Configuring GCC for GPC build..."
+ addwrite "/dev/zero"
+ ${S}/configure --prefix=${LOC} \
+ --mandir=${DATAPATH}/man \
+ --infodir=${DATAPATH}/info \
+ --enable-shared \
+ --host=${CHOST} \
+ --target=${CCHOST} \
+ --with-system-zlib \
+ --enable-languages=pascal \
+ --enable-threads=posix \
+ --enable-long-long \
+ --disable-checking \
+ --disable-libunwind-exceptions \
+ --enable-cstdio=stdio \
+ --enable-clocale=generic \
+ --enable-__cxa_atexit \
+ --enable-version-specific-runtime-libs \
+ --with-gxx-include-dir=${STDCXX_INCDIR} \
+ --with-local-prefix=${LOC}/local \
+ ${myconf} || die "configure failed"
+
+ touch ${S}/gcc/c-gperf.h
+
+ # Setup -j in MAKEOPTS
+ get_number_of_jobs
+
+ einfo "Building GPC..."
+ # Fix for our libtool-portage.patc
+ S="${WORKDIR}/build" emake LIBPATH="${LIBPATH}" || die "make failed"
+
+# P="${SAVEP}"
+}
+
+src_install () {
+ # Do not allow symlinks in ${LOC}/lib/gcc-lib/${CHOST}/${PV}/include as
+ # this can break the build.
+ for x in cd ${S}/gcc/include/*
+ do
+ if [ -L ${x} ]
+ then
+ rm -f ${x}
+ fi
+ done
+
+ einfo "Installing GPC..."
+
+# SAVEP="${P}"
+# unset P
+
+ cd ${WORKDIR}/build
+
+ make \
+ prefix=${D}/usr \
+ mandir=${D}/usr/share/man \
+ infodir=${D}/usr/share/info \
+ FAKE_ROOT="${D}" \
+ install || die
+
+ #now for the true magic :)
+ #gpc is based on gcc and therefore rebuilds gcc backend when compiled
+ #we do not want to overwrite it, do we? (even though the binaries are supposed to be the same)
+ #so do a dirty hack:
+ #go in to the image dir and delete everything inappropriate
+
+ cd ${D}/usr/
+
+ mv bin bin.orig
+ mkdir bin
+ mv bin.orig/gpc* bin
+ rm -rf bin.orig
+
+ #now lib
+ cd ${D}/usr/lib/
+ rm libiberty.a
+
+ cd ${D}/usr/lib/gcc-lib/${CHOST}/
+ mv ${GCC_PV} ${GCC_PV}.orig
+ mkdir ${GCC_PV}
+ mv ${GCC_PV}.orig/{gpc1,gpcpp,libgpc.a,units} ${GCC_PV}
+ mkdir ${GCC_PV}/include
+ #mv ${GCC_PV}.orig/include/{gpc-in-c.h,curses.h,mm.h,ncurses.h} ${GCC_PV}/include/
+ mv ${GCC_PV}.orig/include/gpc-in-c.h ${GCC_PV}/include/
+ rm -rf ${GCC_PV}.orig
+
+
+ # Install documentation.
+ #gpc wants to install some files and a lot of demos under /usr/doc
+ #lets move it under /usr/share/doc
+ #(Ok, this is not the most buitiful way to do it, but it seems to be the easiest here :))
+ cd ${D}/usr/doc
+ mkdir -p ${D}/usr/share/doc/${PF}
+ mv gpc/* ${D}/usr/share/doc/${PF}
+ cd ${D}/usr/share/doc/${PF}
+ for fn in *; do [ -f $fn ] && gzip $fn; done
+
+ #clean-up info pages
+ cd ${D}/usr/share/info
+ rm -rf cpp* gcc*
+
+ #final clean up
+ cd ${D}/usr/
+ rm -rf doc
+ rmdir include
+ rm -rf share/locale
+
+}
diff --git a/dev-lang/gpc/metadata.xml b/dev-lang/gpc/metadata.xml
new file mode 100644
index 000000000000..3e4a847f9bd2
--- /dev/null
+++ b/dev-lang/gpc/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>lang-misc</herd>
+<maintainer>
+ <email>george@gentoo.org</email>
+</maintainer>
+</pkgmetadata>