# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/fpc/fpc-1.9.4.ebuild,v 1.1 2004/09/08 04:26:44 chriswhite Exp $

# or, fpc/compiler/utils/samplecfg

inherit rpm cvs eutils

DESCRIPTION="The Free Pascal compiler"
HOMEPAGE="http://www.freepascal.org/"
SRC_URI="ftp://ftp.freepascal.org/pub/fpc/beta/linux-i386-${PV}/fpc-1.9.4-0.i586.rpm" # bootstrap
LICENSE="LGPL-2.1+staticlibs GPL-2"
SLOT="0"
KEYWORDS="x86 -*"
IUSE="gpm" # inofficial
RDEPEND="virtual/libc
	!dev-lang/fpc-source
        !dev-lang/fpc-bin
	>=sys-apps/findutils-4.1.20
	>=sys-apps/coreutils-5.2
	gpm? ( >=sys-libs/gpm-1.20.1 )
	app-arch/rpm2targz
"
DEPEND="${RDEPEND}
	>=sys-apps/diffutils-2.8.4
	>=sys-apps/sed-4.0
"
#=netdb-${PV}
#=paszlib-${PV}
#=libasync-${PV}
#=pthreads-${PV}
#=pasjpeg-${PV}
PDEPEND="
=fcl-${PV}
"

ECVS_SERVER="cvs.freepascal.org:/FPC/CVS"
ECVS_MODULE="fpc/compiler"
ECVS_USER="cvs"
ECVS_PASS="cvs"

# LibGDB was not found, IDE has no Debugger support ??
 
S="${WORKDIR}/fpc"

src_unpack() {
	cvs_src_unpack  || die
	ECVS_MODULE="fpc/rtl"
	cvs_src_unpack || die

	cd "${S}/.." || die
	cvs -d :pserver:cvs:cvs@cvs.freepascal.org:/FPC/CVS co fpc/Makefile || die
	cd "${S}"

	/bin/mkdir -p "${WORKDIR}/bootstrap" || die
	cd "${WORKDIR}/bootstrap" || die
	rpm_unpack "${DISTDIR}/fpc-1.9.4-0.i586.rpm" || die

	/bin/cp -f "${WORKDIR}/usr/lib/fpc/1.9.4/ppc386" "${WORKDIR}/bootstrap/ppc386"
	/bin/rm -rf "${WORKDIR}/usr"

	epatch "${FILESDIR}/fpc-intfvariantclear.patch" || die
}

src_compile() {
	#make distclean

	opts=""
	use gpm || opts="${opts} -dNOGPM"

	make PP="${WORKDIR}/bootstrap/ppc386" compiler_cycle RELEASE=1 || die

	make PP="${WORKDIR}/bootstrap/ppc386" rtl_clean || die
	PPNEW="$(pwd)/compiler/ppc386" # only for now

	make PP="${WORKDIR}/fpc/compiler/ppc386" rtl_smart FPC="${PPNEW}" RELEASE=1 || die

	##$(ECHOREDIR) Build > $(BUILDSTAMP)
}

src_install() {
	#make INSTALL_PREFIX=${D}/usr install || die

	/bin/mkdir -p "${D}/usr/bin" || die
	for s in compiler/ppc386 \
		compiler/utils/ppudump \
		compiler/utils/ppufiles \
		compiler/utils/ppumove \
		compiler/utils/fpc
	do
		t="${s##*/}"
		/bin/cp --preserve=timestamps -f "${WORKDIR}/fpc/$s" "${D}/usr/bin/$t" || die
	done

	FPLIBTOPDIR="${D}/usr/lib/fpc/${PV}"
	/bin/mkdir -p "${FPLIBTOPDIR}/msg" || die
	/bin/cp --preserve=timestamps -f "compiler/msg/"*.msg "${FPLIBTOPDIR}/msg" || die

	FPLIBDIR="${FPLIBTOPDIR}/units/${ARCH/x86/i386}-linux"
	/bin/mkdir -p "${FPLIBDIR}/rtl" || die
	#/bin/cp --preserve=timestamps -f rtl/inc/*.inc \
	#	rtl/unix/*.inc \
	#	rtl/linux/i386/*.{inc,as} \
	#	rtl/i386/*.{inc,pp} \
	#	rtl/linux/*.{inc,pp} \
	#	rtl/objpas/*.inc \
	#	rtl/objpas/sysutils/*.inc \
	#	"${FPLIBDIR}/rtl/" || die

	/bin/cp --preserve=timestamps -f rtl/units/i386-linux/*.{o,ppu,a} "${FPLIBDIR}/rtl/" || die

	/bin/sed -e 's;^version=.*$;version='"${PV}"';' \
	"${FILESDIR}/rtl-Package.fpc" \
	>"${FPLIBDIR}/rtl/Package.fpc" || die

	#mv usr/share/doc/packages/${P} usr/share/doc/${P}
	#rmdir usr/share/doc/packages
	#chmod -R 755 usr/lib/* usr/share/*

	/bin/mkdir -p "${D}/usr/share/pixmaps" || die
	/bin/cp -f "${FILESDIR}/fp32x32.xpm" "${D}/usr/share/pixmaps" || die

	mkdir -p "${D}/etc" || die

        /usr/bin/diff /etc/fpc.cfg "${FILESDIR}/fpc.cfg" >/dev/null || {
		/bin/cp "${FILESDIR}/fpc.cfg" "${D}/etc/fpc.cfg" || die
		#mkdir -p "${D}/etc" || die
		#/bin/cat "${FILESDIR}/fpc.cfg" |/bin/sed -e 's;$target;'"${ARCH/x86/i386}-linux"';' > "${D}/etc/fpc.cfg" || die
        }

	/bin/mkdir -p "${D}/etc/env.d" || die
	/bin/cp "${FILESDIR}/50fpc" "${D}/etc/env.d/50fpc" || die

}

pkg_postinst() {
	# dfl_pkg_postinst # how is that called
 
	/usr/sbin/env-update
}