public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Erik Falor" <ewfalor@gmail.com>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/lisp:master commit in: dev-scheme/chicken/files/, dev-scheme/chicken/
Date: Mon, 24 Sep 2012 22:16:53 +0000 (UTC)	[thread overview]
Message-ID: <1348524958.87b1110e6e99ca03e498e93cb89d949dc8b8e3fc.erik_falor@gentoo> (raw)

commit:     87b1110e6e99ca03e498e93cb89d949dc8b8e3fc
Author:     Erik Falor <ewfalor <AT> gmail <DOT> com>
AuthorDate: Mon Sep 24 22:15:58 2012 +0000
Commit:     Erik Falor <ewfalor <AT> gmail <DOT> com>
CommitDate: Mon Sep 24 22:15:58 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/lisp.git;a=commit;h=87b1110e

dev-scheme/chicken: bump to 4.8.0; enable USE=parallel-build

---
 dev-scheme/chicken/chicken-4.8.0.ebuild            |   69 ++++++++++++++++++
 .../files/chicken-4.8.0-parallel-build.patch       |   74 ++++++++++++++++++++
 2 files changed, 143 insertions(+), 0 deletions(-)

diff --git a/dev-scheme/chicken/chicken-4.8.0.ebuild b/dev-scheme/chicken/chicken-4.8.0.ebuild
new file mode 100644
index 0000000..97bae79
--- /dev/null
+++ b/dev-scheme/chicken/chicken-4.8.0.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+
+EAPI="3"
+
+inherit eutils multilib
+
+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/${PV}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~x86"
+IUSE="emacs parallel-build"
+
+DEPEND="sys-apps/texinfo
+		emacs? ( virtual/emacs )"
+RDEPEND="emacs? ( virtual/emacs app-emacs/scheme-complete )"
+
+src_prepare() {
+	if use "parallel-build"
+	then
+		epatch "${FILESDIR}"/${P}-parallel-build.patch
+	fi
+
+	#Because chicken's Upstream is in the habit of using variables that
+	#portage also uses :( eg. $ARCH and $A
+	#for f in defaults.make Makefile.bsd Makefile.cross-linux-mingw Makefile.cygwin \
+	#	Makefile.linux Makefile.macosx Makefile.mingw-msys Makefile.solaris \
+	#	rules.make
+	#do
+	#	sed "s,ARCH,zARCH," -i ${f} || die "sed failed"
+	#	# bug #393561: installs /usr/lib/libchickenchicken-4.7.3.tar.gz (portage pollutes ${A} variable)
+	#	sed 's,A\(\s?=\|)\),chicken&,p' -i ${f} || die "sed failed"
+	#done
+	unset A ARCH
+
+	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() {
+	unset A ARCH
+	OPTIONS="PLATFORM=linux PREFIX=/usr"
+	if use "parallel-build"
+	then
+		emake ${OPTIONS} C_COMPILER_OPTIMIZATION_OPTIONS="${CFLAGS}" \
+			HOSTSYSTEM="${CBUILD}" || die "emake failed"
+	else
+		emake -j1 ${OPTIONS} C_COMPILER_OPTIMIZATION_OPTIONS="${CFLAGS}" \
+			HOSTSYSTEM="${CBUILD}" || die "emake failed"
+	fi
+}
+
+# chicken's testsuite is not runnable before install
+# upstream has been notified of the issue
+RESTRICT=test
+
+src_install() {
+	unset A ARCH
+	# still can't run make in parallel for the install target
+	emake -j1 ${OPTIONS} DESTDIR="${D}" HOSTSYSTEM="${CBUILD}" install || die
+
+	rm "${D}"/usr/share/doc/${P}/LICENSE || die
+	dodoc NEWS || die
+}

diff --git a/dev-scheme/chicken/files/chicken-4.8.0-parallel-build.patch b/dev-scheme/chicken/files/chicken-4.8.0-parallel-build.patch
new file mode 100644
index 0000000..a42dd2e
--- /dev/null
+++ b/dev-scheme/chicken/files/chicken-4.8.0-parallel-build.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_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= \
+-	  touchfiles chicken-boot$(EXE) confclean
++	  chicken-boot$(EXE)
++	$(MAKE) -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) CONFIG= confclean
+ 
+ .PHONY: touchfiles
+ 


             reply	other threads:[~2012-09-24 22:17 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-24 22:16 Erik Falor [this message]
  -- strict thread matches above, loose matches on Subject: below --
2013-02-05 23:57 [gentoo-commits] proj/lisp:master commit in: dev-scheme/chicken/files/, dev-scheme/chicken/ Panagiotis Christopoulos
2013-02-21 18:31 Erik Falor
2013-04-07 23:38 Panagiotis Christopoulos
2013-04-08 17:03 Erik Falor
2013-04-08 21:14 Panagiotis Christopoulos
2013-04-10 20:59 Erik Falor
2013-04-11 22:47 Erik Falor
2014-06-07  6:32 Erik Falor

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1348524958.87b1110e6e99ca03e498e93cb89d949dc8b8e3fc.erik_falor@gentoo \
    --to=ewfalor@gmail.com \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox