Gentoo Archives: gentoo-commits

From: Erik Falor <ewfalor@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/lisp:master commit in: dev-scheme/chicken/files/, dev-scheme/chicken/
Date: Sat, 07 Jun 2014 06:32:17
Message-Id: 1402122849.d9d18a329f0ecfa770c1a69db276cc357e3f6266.erik_falor@gentoo
1 commit: d9d18a329f0ecfa770c1a69db276cc357e3f6266
2 Author: Erik Falor <ewfalor <AT> gmail <DOT> com>
3 AuthorDate: Sat Jun 7 06:34:09 2014 +0000
4 Commit: Erik Falor <ewfalor <AT> gmail <DOT> com>
5 CommitDate: Sat Jun 7 06:34:09 2014 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/lisp.git;a=commit;h=d9d18a32
7
8 dev-scheme/chicken: bump to version 4.9.0
9
10 ---
11 dev-scheme/chicken/chicken-4.9.0.ebuild | 76 ++++++++++++++++++++++
12 .../chicken/files/parallel-build-4.9.0.patch | 74 +++++++++++++++++++++
13 2 files changed, 150 insertions(+)
14
15 diff --git a/dev-scheme/chicken/chicken-4.9.0.ebuild b/dev-scheme/chicken/chicken-4.9.0.ebuild
16 new file mode 100644
17 index 0000000..1cc97aa
18 --- /dev/null
19 +++ b/dev-scheme/chicken/chicken-4.9.0.ebuild
20 @@ -0,0 +1,76 @@
21 +# Copyright 1999-2013 Gentoo Foundation
22 +# Distributed under the terms of the GNU General Public License v2
23 +# $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 $
24 +
25 +EAPI="5"
26 +
27 +inherit eutils multilib versionator
28 +
29 +MY_PV=$(get_version_component_range 1-3)
30 +DESCRIPTION="Chicken is a Scheme interpreter and native Scheme to C compiler"
31 +HOMEPAGE="http://www.call-cc.org/"
32 +SRC_URI="http://code.call-cc.org/releases/${MY_PV}/${P}.tar.gz"
33 +
34 +LICENSE="BSD"
35 +SLOT="0"
36 +KEYWORDS="~alpha ~amd64 ~ppc ~ppc64 ~x86"
37 +IUSE="emacs parallel-build doc"
38 +
39 +DEPEND="sys-apps/texinfo
40 + emacs? ( virtual/emacs )"
41 +RDEPEND="emacs? ( virtual/emacs app-emacs/scheme-complete )"
42 +
43 +src_prepare() {
44 + if use "parallel-build"
45 + then
46 + epatch "${FILESDIR}"/parallel-build-${MY_PV}.patch
47 + fi
48 +
49 + #Because chicken's Upstream is in the habit of using variables that
50 + #portage also uses :( eg. $ARCH and $A
51 + sed 's,A\(\s?=\|)\),chicken&,' -i Makefile.cross-linux-mingw \
52 + defaults.make rules.make \
53 + || die "sed failed"
54 +
55 + sed "s,ARCH,zARCH," -i Makefile.bsd Makefile.cross-linux-mingw \
56 + Makefile.cygwin Makefile.haiku Makefile.linux Makefile.macosx \
57 + Makefile.mingw Makefile.mingw-msys Makefile.solaris \
58 + defaults.make rules.make \
59 + || die "sed failed"
60 +
61 + sed "s,\$(PREFIX)/lib,\$(PREFIX)/$(get_libdir)," -i defaults.make || die "sed failed"
62 + sed "s,\$(DATADIR)/doc,\$(SHAREDIR)/doc/${P}," -i defaults.make || die "sed failed"
63 +}
64 +
65 +src_compile() {
66 + if use "parallel-build"
67 + then
68 + OPTIONS="PLATFORM=linux PREFIX=/usr"
69 + else
70 + OPTIONS="-j1 PLATFORM=linux PREFIX=/usr"
71 + fi
72 +
73 + emake ${OPTIONS} C_COMPILER_OPTIMIZATION_OPTIONS="${CFLAGS}" \
74 + LINKER_OPTIONS="${LDFLAGS}" \
75 + HOSTSYSTEM="${CBUILD}" || die "emake failed"
76 +}
77 +
78 +# chicken's testsuite is not runnable before install
79 +# upstream has been notified of the issue
80 +RESTRICT=test
81 +
82 +src_install() {
83 + # still can't run make in parallel for the install target
84 + emake -j1 ${OPTIONS} DESTDIR="${D}" HOSTSYSTEM="${CBUILD}" \
85 + LINKER_OPTIONS="${LDFLAGS}" \
86 + install || die
87 +
88 + rm "${D}"/usr/share/doc/${P}/LICENSE || die
89 + dodoc NEWS || die
90 +
91 + # remove HTML documentation if the user doesn't USE=doc
92 + if ! use "doc"
93 + then
94 + rm -rf "${D}"/usr/share/doc/${P}/manual || die
95 + fi
96 +}
97
98 diff --git a/dev-scheme/chicken/files/parallel-build-4.9.0.patch b/dev-scheme/chicken/files/parallel-build-4.9.0.patch
99 new file mode 100644
100 index 0000000..841c034
101 --- /dev/null
102 +++ b/dev-scheme/chicken/files/parallel-build-4.9.0.patch
103 @@ -0,0 +1,74 @@
104 +diff --git a/GNUmakefile b/GNUmakefile
105 +index 9bc40ca..c697f14 100644
106 +--- a/GNUmakefile
107 ++++ b/GNUmakefile
108 +@@ -49,6 +49,9 @@ STANDARD_TARGETS \
109 + fullcheck libs install-target install-dev bench
110 +
111 + .PHONY: $(STANDARD_TARGETS) dist boot-chicken
112 ++# Build this file's targets sequentially. This avoids executing overlapping
113 ++# makes if the user specifies multiple targets.
114 ++.NOTPARALLEL:
115 +
116 + $(STANDARD_TARGETS):
117 + $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) CONFIG=$(CONFIG) $@
118 +diff --git a/README b/README
119 +index 8d0d067..551b716 100644
120 +--- a/README
121 ++++ b/README
122 +@@ -72,7 +72,7 @@
123 + platforms.
124 +
125 + Note that parallel builds (using the "-j" make(1) option) are
126 +- *not* supported.
127 ++ also supported. Beware that parallel install will not work though.
128 +
129 + If you invoke "make" later with different configuration parameters,
130 + it is advisable to run:
131 +diff --git a/rules.make b/rules.make
132 +index 929b0a3..a8cb9b0 100644
133 +--- a/rules.make
134 ++++ b/rules.make
135 +@@ -243,8 +243,8 @@ lib$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(A): $(APPLY_HACK_OBJECT) $(LIBCHIC
136 +
137 + # import libraries and extensions
138 +
139 +-%.so: %.o
140 +- $(LINKER) $(LINKER_OPTIONS) $(LINKER_LINK_SHARED_DLOADABLE_OPTIONS) $^ $(LINKER_OUTPUT_OPTION) $@ \
141 ++%.so: %.o $(PRIMARY_LIBCHICKEN)
142 ++ $(LINKER) $(LINKER_OPTIONS) $(LINKER_LINK_SHARED_DLOADABLE_OPTIONS) $< $(LINKER_OUTPUT_OPTION) $@ \
143 + $(LINKER_LIBRARY_PREFIX)$(PROGRAM_PREFIX)chicken$(PROGRAM_SUFFIX)$(LINKER_LIBRARY_SUFFIX) \
144 + $(LIBRARIES)
145 +
146 +@@ -582,9 +582,9 @@ chicken-profile.c: $(SRCDIR)chicken-profile.scm
147 + $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@
148 + chicken-install.c: $(SRCDIR)chicken-install.scm setup-download.c setup-api.c
149 + $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@
150 +-chicken-uninstall.c: $(SRCDIR)chicken-uninstall.scm
151 ++chicken-uninstall.c: $(SRCDIR)chicken-uninstall.scm setup-api.c
152 + $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@
153 +-chicken-status.c: $(SRCDIR)chicken-status.scm
154 ++chicken-status.c: $(SRCDIR)chicken-status.scm setup-api.c
155 + $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@
156 + csc.c: $(SRCDIR)csc.scm
157 + $(CHICKEN) $< $(CHICKEN_PROGRAM_OPTIONS) -output-file $@
158 +@@ -675,14 +675,17 @@ bench: $(CHICKEN_SHARED_EXECUTABLE) $(CSI_SHARED_EXECUTABLE) $(CSC_PROGRAM)$(EXE
159 + .PHONY: boot-chicken
160 +
161 + boot-chicken:
162 ++ "$(MAKE)" -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) CONFIG= confclean
163 + "$(MAKE)" -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) PREFIX=/nowhere CONFIG= \
164 + CHICKEN=$(CHICKEN) PROGRAM_SUFFIX=-boot-stage1 STATICBUILD=1 \
165 + C_COMPILER_OPTIMIZATION_OPTIONS="$(C_COMPILER_OPTIMIZATION_OPTIONS)" C_HACKED_APPLY= BUILDING_CHICKEN_BOOT=1 \
166 +- confclean chicken-boot-stage1$(EXE)
167 ++ chicken-boot-stage1$(EXE)
168 ++ "$(MAKE)" -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) CONFIG= touchfiles
169 + "$(MAKE)" -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) PREFIX=/nowhere CONFIG= \
170 + CHICKEN=.$(SEP)chicken-boot-stage1$(EXE) PROGRAM_SUFFIX=-boot \
171 + STATICBUILD=1 C_COMPILER_OPTIMIZATION_OPTIONS="$(C_COMPILER_OPTIMIZATION_OPTIONS)" \
172 +- touchfiles chicken-boot$(EXE) confclean
173 ++ chicken-boot$(EXE)
174 ++ "$(MAKE)" -f Makefile.$(PLATFORM) PLATFORM=$(PLATFORM) CONFIG= confclean
175 +
176 + .PHONY: touchfiles
177 +