commit:     d9d18a329f0ecfa770c1a69db276cc357e3f6266
Author:     Erik Falor <ewfalor <AT> gmail <DOT> com>
AuthorDate: Sat Jun  7 06:34:09 2014 +0000
Commit:     Erik Falor <ewfalor <AT> gmail <DOT> com>
CommitDate: Sat Jun  7 06:34:09 2014 +0000
URL:        
http://git.overlays.gentoo.org/gitweb/?p=proj/lisp.git;a=commit;h=d9d18a32

dev-scheme/chicken: bump to version 4.9.0

---
 dev-scheme/chicken/chicken-4.9.0.ebuild            | 76 ++++++++++++++++++++++
 .../chicken/files/parallel-build-4.9.0.patch       | 74 +++++++++++++++++++++
 2 files changed, 150 insertions(+)

diff --git a/dev-scheme/chicken/chicken-4.9.0.ebuild 
b/dev-scheme/chicken/chicken-4.9.0.ebuild
new file mode 100644
index 0000000..1cc97aa
--- /dev/null
+++ b/dev-scheme/chicken/chicken-4.9.0.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-scheme/chicken/chicken-4.8.0.1.ebuild,v 
1.1 2013/02/05 23:51:45 pchrist Exp $
+
+EAPI="5"
+
+inherit eutils multilib versionator
+
+MY_PV=$(get_version_component_range 1-3)
+DESCRIPTION="Chicken is a Scheme interpreter and native Scheme to C compiler"
+HOMEPAGE="http://www.call-cc.org/";
+SRC_URI="http://code.call-cc.org/releases/${MY_PV}/${P}.tar.gz";
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~x86"
+IUSE="emacs parallel-build doc"
+
+DEPEND="sys-apps/texinfo
+               emacs? ( virtual/emacs )"
+RDEPEND="emacs? ( virtual/emacs app-emacs/scheme-complete )"
+
+src_prepare() {
+       if use "parallel-build"
+       then
+               epatch "${FILESDIR}"/parallel-build-${MY_PV}.patch
+       fi
+
+       #Because chicken's Upstream is in the habit of using variables that
+       #portage also uses :( eg. $ARCH and $A
+       sed 's,A\(\s?=\|)\),chicken&,' -i Makefile.cross-linux-mingw \
+               defaults.make rules.make \
+               || die "sed failed"
+
+       sed "s,ARCH,zARCH," -i Makefile.bsd Makefile.cross-linux-mingw \
+               Makefile.cygwin Makefile.haiku Makefile.linux Makefile.macosx \
+               Makefile.mingw Makefile.mingw-msys Makefile.solaris \
+               defaults.make rules.make \
+               || die "sed failed"
+
+       sed "s,\$(PREFIX)/lib,\$(PREFIX)/$(get_libdir)," -i defaults.make || 
die "sed failed"
+       sed "s,\$(DATADIR)/doc,\$(SHAREDIR)/doc/${P}," -i defaults.make || die 
"sed failed"
+}
+
+src_compile() {
+       if use "parallel-build"
+       then
+               OPTIONS="PLATFORM=linux PREFIX=/usr"
+       else 
+               OPTIONS="-j1 PLATFORM=linux PREFIX=/usr"
+       fi
+
+       emake ${OPTIONS} C_COMPILER_OPTIMIZATION_OPTIONS="${CFLAGS}" \
+               LINKER_OPTIONS="${LDFLAGS}" \
+               HOSTSYSTEM="${CBUILD}" || die "emake failed"
+}
+
+# chicken's testsuite is not runnable before install
+# upstream has been notified of the issue
+RESTRICT=test
+
+src_install() {
+       # still can't run make in parallel for the install target
+       emake -j1 ${OPTIONS} DESTDIR="${D}" HOSTSYSTEM="${CBUILD}" \
+               LINKER_OPTIONS="${LDFLAGS}" \
+               install || die
+
+       rm "${D}"/usr/share/doc/${P}/LICENSE || die
+       dodoc NEWS || die
+
+       # remove HTML documentation if the user doesn't USE=doc
+       if ! use "doc"
+       then
+               rm -rf "${D}"/usr/share/doc/${P}/manual || die
+       fi
+}

diff --git a/dev-scheme/chicken/files/parallel-build-4.9.0.patch 
b/dev-scheme/chicken/files/parallel-build-4.9.0.patch
new file mode 100644
index 0000000..841c034
--- /dev/null
+++ b/dev-scheme/chicken/files/parallel-build-4.9.0.patch
@@ -0,0 +1,74 @@
+diff --git a/GNUmakefile b/GNUmakefile
+index 9bc40ca..c697f14 100644
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -49,6 +49,9 @@ STANDARD_TARGETS \
+         fullcheck libs install-target install-dev bench
+ 
+ .PHONY: $(STANDARD_TARGETS) dist boot-chicken
++# Build this file's targets sequentially.  This avoids executing overlapping
++# makes if the user specifies multiple targets.
++.NOTPARALLEL:
+ 
+ $(STANDARD_TARGETS):
+       $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) CONFIG=$(CONFIG) $@
+diff --git a/README b/README
+index 8d0d067..551b716 100644
+--- a/README
++++ b/README
+@@ -72,7 +72,7 @@
+         platforms.
+ 
+       Note that parallel builds (using the "-j" make(1) option) are
+-      *not* supported.
++      also supported. Beware that parallel install will not work though.
+ 
+         If you invoke "make" later with different configuration parameters,
+         it is advisable to run:
+diff --git a/rules.make b/rules.make
+index 929b0a3..a8cb9b0 100644
+--- a/rules.make
++++ b/rules.make
+@@ -243,8 +243,8 @@ lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A): 
$(APPLY_HACK_OBJECT) $(LIBCHIC
+ 
+ # import libraries and extensions
+ 
+-%.so: %.o
+-      $(LINKER) $(LINKER_OPTIONS) $(LINKER_LINK_SHARED_DLOADABLE_OPTIONS) $^ 
$(LINKER_OUTPUT_OPTION) $@ \
++%.so: %.o $(PRIMARY_LIBCHICKEN)
++      $(LINKER) $(LINKER_OPTIONS) $(LINKER_LINK_SHARED_DLOADABLE_OPTIONS) $< 
$(LINKER_OUTPUT_OPTION) $@ \
+         
$(LINKER_LIBRARY_PREFIX)$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(LINKER_LIBRARY_SUFFIX)
 \
+         $(LIBRARIES)
+ 
+@@ -582,9 +582,9 @@ chicken-profile.c: $(SRCDIR)chicken-profile.scm
+       $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@ 
+ chicken-install.c: $(SRCDIR)chicken-install.scm setup-download.c setup-api.c
+       $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@ 
+-chicken-uninstall.c: $(SRCDIR)chicken-uninstall.scm
++chicken-uninstall.c: $(SRCDIR)chicken-uninstall.scm setup-api.c
+       $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@ 
+-chicken-status.c: $(SRCDIR)chicken-status.scm
++chicken-status.c: $(SRCDIR)chicken-status.scm setup-api.c
+       $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@ 
+ csc.c: $(SRCDIR)csc.scm
+       $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@ 
+@@ -675,14 +675,17 @@ bench: $(CHICKEN_SHARED_EXECUTABLE) 
$(CSI_SHARED_EXECUTABLE) $(CSC_PROGRAM)$(EXE
+ .PHONY: boot-chicken
+ 
+ boot-chicken:
++      "$(MAKE)" -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) CONFIG= confclean
+       "$(MAKE)" -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) PREFIX=/nowhere 
CONFIG= \
+         CHICKEN=$(CHICKEN) PROGRAM_SUFFIX=-boot-stage1 STATICBUILD=1 \
+         C_COMPILER_OPTIMIZATION_OPTIONS="$(C_COMPILER_OPTIMIZATION_OPTIONS)" 
C_HACKED_APPLY= BUILDING_CHICKEN_BOOT=1 \
+-        confclean chicken-boot-stage1$(EXE)
++        chicken-boot-stage1$(EXE)
++      "$(MAKE)" -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) CONFIG= 
touchfiles
+       "$(MAKE)" -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) PREFIX=/nowhere 
CONFIG= \
+         CHICKEN=.$(SEP)chicken-boot-stage1$(EXE) PROGRAM_SUFFIX=-boot \
+         STATICBUILD=1 
C_COMPILER_OPTIMIZATION_OPTIONS="$(C_COMPILER_OPTIMIZATION_OPTIONS)" \
+-        touchfiles chicken-boot$(EXE) confclean
++        chicken-boot$(EXE)
++      "$(MAKE)" -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) CONFIG= confclean
+ 
+ .PHONY: touchfiles
+ 

Reply via email to