From 2586a4bc5d13b61c3376e5ad5fc82778429c9fcb Mon Sep 17 00:00:00 2001 From: Chris Roberts Date: Sat, 22 May 2010 00:48:41 +0000 Subject: [PATCH] Mmmm chicken! All tests pass. --- dev-scheme/chicken/chicken-4.5.0.bep | 19 ++ .../chicken/patches/chicken-4.5.0.patch | 207 ++++++++++++++++++ 2 files changed, 226 insertions(+) create mode 100644 dev-scheme/chicken/chicken-4.5.0.bep create mode 100644 dev-scheme/chicken/patches/chicken-4.5.0.patch diff --git a/dev-scheme/chicken/chicken-4.5.0.bep b/dev-scheme/chicken/chicken-4.5.0.bep new file mode 100644 index 000000000..21c470309 --- /dev/null +++ b/dev-scheme/chicken/chicken-4.5.0.bep @@ -0,0 +1,19 @@ +DESCRIPTION="Chicken is a Scheme interpreter and native Scheme to C compiler" +HOMEPAGE="http://www.call-with-current-continuation.org/" +SRC_URI="http://chicken.wiki.br/releases/4.5.0/chicken-4.5.0.tar.gz" +CHECKSUM_MD5="753aea676a18c8dc0161dfb4d1717e20" +REVISION="1" +STATUS_HAIKU="stable" +DEPEND="" +BUILD { + cd chicken-4.5.0 + make PLATFORM=haiku PREFIX=/boot/common +} + +INSTALL { + cd chicken-4.5.0 + make PLATFORM=haiku PREFIX=/boot/common install +} +LICENSE="BSD (2-clause)" +COPYRIGHT="2008-2010 The Chicken Team + 2000-2007 Felix L. Winkelmann" diff --git a/dev-scheme/chicken/patches/chicken-4.5.0.patch b/dev-scheme/chicken/patches/chicken-4.5.0.patch new file mode 100644 index 000000000..c19167a89 --- /dev/null +++ b/dev-scheme/chicken/patches/chicken-4.5.0.patch @@ -0,0 +1,207 @@ +diff -up chicken-4.5.0/Makefile.haiku.orig chicken-4.5.0/Makefile.haiku +--- chicken-4.5.0/Makefile.haiku.orig 2010-05-21 18:19:06.229638144 -0600 ++++ chicken-4.5.0/Makefile.haiku 2010-05-21 18:19:06.230424576 -0600 +@@ -0,0 +1,106 @@ ++# Makefile.haiku - configuration for Haiku -*- Makefile -*- ++# ++# Copyright (c) 2010, The Chicken Team ++# All rights reserved. ++# ++# Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following ++# conditions are met: ++# ++# Redistributions of source code must retain the above copyright notice, this list of conditions and the following ++# disclaimer. ++# Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following ++# disclaimer in the documentation and/or other materials provided with the distribution. ++# Neither the name of the author nor the names of its contributors may be used to endorse or promote ++# products derived from this software without specific prior written permission. ++# ++# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS ++# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY ++# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ++# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR ++# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ++# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ++# POSSIBILITY OF SUCH DAMAGE. ++ ++ ++ifneq ($(CONFIG),) ++include $(CONFIG) ++endif ++ ++SRCDIR ?= ./ ++ ++# platform configuration ++ ++ARCH ?= $(shell sh $(SRCDIR)/config-arch.sh) ++ ++# options ++ ++C_COMPILER_OPTIONS ?= -fno-strict-aliasing -DHAVE_CHICKEN_CONFIG_H ++ifdef DEBUGBUILD ++C_COMPILER_OPTIMIZATION_OPTIONS ?= -g -Wall -Wno-unused ++else ++ifdef OPTIMIZE_FOR_SPEED ++C_COMPILER_OPTIMIZATION_OPTIONS ?= -O3 -fomit-frame-pointer ++else ++C_COMPILER_OPTIMIZATION_OPTIONS ?= -Os -fomit-frame-pointer ++endif ++endif ++LINKER_LINK_SHARED_LIBRARY_OPTIONS = -shared ++LINKER_LINK_SHARED_DLOADABLE_OPTIONS = -L. -shared -Wl,-R$(RUNTIME_LINKER_PATH) ++LINKER_LINK_SHARED_PROGRAM_OPTIONS = -Wl,-R$(RUNTIME_LINKER_PATH) ++LIBCHICKEN_SO_LINKER_OPTIONS = -Wl,-soname,libchicken.so$(SONAME_VERSION) ++LIBUCHICKEN_SO_LINKER_OPTIONS = -Wl,-soname,libuchicken.so$(SONAME_VERSION) ++LIBRARIES = -lnetwork ++NEEDS_RELINKING = yes ++USES_SONAME = yes ++ ++# special files ++ ++CHICKEN_CONFIG_H = chicken-config.h ++ ++# select default and internal settings ++ ++include $(SRCDIR)/defaults.make ++ ++chicken-config.h: chicken-defaults.h ++ echo "/* GENERATED */" >$@ ++ echo "#define HAVE_DIRENT_H 1" >>$@ ++ echo "#define HAVE_DLFCN_H 1" >>$@ ++ echo "#define HAVE_INTTYPES_H 1" >>$@ ++ echo "#define HAVE_LIMITS_H 1" >>$@ ++ echo "#define HAVE_LONG_LONG 1" >>$@ ++ echo "#define HAVE_MEMMOVE 1" >>$@ ++ echo "#define HAVE_MEMORY_H 1" >>$@ ++ echo "#define HAVE_STDINT_H 1" >>$@ ++ echo "#define HAVE_STDLIB_H 1" >>$@ ++ echo "#define HAVE_STRERROR 1" >>$@ ++ echo "#define HAVE_STRINGS_H 1" >>$@ ++ echo "#define HAVE_STRING_H 1" >>$@ ++ echo "#define HAVE_STRTOLL 1" >>$@ ++ echo "#define HAVE_STRTOQ 1" >>$@ ++ echo "#define HAVE_SYS_STAT_H 1" >>$@ ++ echo "#define HAVE_SYS_TYPES_H 1" >>$@ ++ echo "#define HAVE_UNISTD_H 1" >>$@ ++ echo "#define HAVE_UNSIGNED_LONG_LONG 1" >>$@ ++ echo "#define STDC_HEADERS 1" >>$@ ++ echo "#define HAVE_ALLOCA 1" >>$@ ++ echo "#define HAVE_ALLOCA_H 1" >>$@ ++ echo "#define HAVE_GRP_H 1" >>$@ ++ echo "#define HAVE_ERRNO_H 1" >>$@ ++ echo "#define HAVE_GCVT 1" >>$@ ++ echo "#define HAVE_MEMMOVE 1" >>$@ ++ echo "#define C_STACK_GROWS_DOWNWARD 1" >>$@ ++ echo "#define SIGIO 0" >>$@ ++ifdef GCHOOKS ++ echo "#define C_GC_HOOKS" >>$@ ++endif ++ifdef SYMBOLGC ++ echo "#define C_COLLECT_ALL_SYMBOLS" >>$@ ++endif ++ifneq ($(HACKED_APPLY),) ++ echo "#define C_HACKED_APPLY" >>$@ ++endif ++ cat chicken-defaults.h >>$@ ++ ++include $(SRCDIR)/rules.make +diff -up chicken-4.5.0/Makefile.orig chicken-4.5.0/Makefile +--- chicken-4.5.0/Makefile.orig 2010-05-11 09:50:34.038535168 -0600 ++++ chicken-4.5.0/Makefile 2010-05-21 18:19:06.207355904 -0600 +@@ -55,6 +55,7 @@ $(STANDARD_TARGETS): + @echo " $(MAKE) PLATFORM=cygwin" + @echo " $(MAKE) PLATFORM=solaris" + @echo " $(MAKE) PLATFORM=cross-linux-mingw" ++ @echo " $(MAKE) PLATFORM=haiku" + @echo "" + @echo "For more information, consult the README file." + @exit 1 +diff -up chicken-4.5.0/chicken.h.orig chicken-4.5.0/chicken.h +--- chicken-4.5.0/chicken.h.orig 2010-05-11 09:50:35.002097152 -0600 ++++ chicken-4.5.0/chicken.h 2010-05-21 18:19:06.273154048 -0600 +@@ -93,6 +93,10 @@ + # include + #endif + ++#if defined(__HAIKU__) ++# include ++#endif ++ + /* Byteorder in machine word */ + + #if defined(__MINGW32__) +@@ -664,6 +668,8 @@ typedef unsigned __int64 uint64_t; + # define C_SOFTWARE_VERSION "hpux" + #elif defined(__DragonFly__) + # define C_SOFTWARE_VERSION "dragonfly" ++#elif defined(__HAIKU__) ++# define C_SOFTWARE_VERSION "haiku" + #elif defined(__sun__) + # if defined(__svr4__) + # define C_SOFTWARE_VERSION "solaris" +@@ -2336,6 +2342,25 @@ C_path_to_executable(C_char *fname) + + return NULL; + } ++# elif defined(__HAIKU__) ++{ ++ image_info info; ++ int32 cookie = 0; ++ int32 i; ++ ++ while (get_next_image_info(0, &cookie, &info) == B_OK) { ++ if (info.type == B_APP_IMAGE) { ++ C_strcat(buffer, info.name); ++ ++ for(i = C_strlen(buffer); i >= 0 && buffer[ i ] != '/'; --i); ++ ++ buffer[ i ] = '\0'; ++ ++ return buffer; ++ } ++ } ++} ++ return NULL; + # else + return NULL; + # endif +diff -up chicken-4.5.0/config-arch.sh.orig chicken-4.5.0/config-arch.sh +--- chicken-4.5.0/config-arch.sh.orig 2010-05-11 09:50:35.006029312 -0600 ++++ chicken-4.5.0/config-arch.sh 2010-05-21 18:19:06.294649856 -0600 +@@ -27,7 +27,7 @@ + + + case "`uname -m`" in +- i*86) echo "x86";; ++ i*86|BePC) echo "x86";; + "Power Macintosh"|ppc|powerpc|macppc) + case "`uname -s`" in + Darwin) echo "ppc.darwin";; +diff -up chicken-4.5.0/manual/Acknowledgements.orig chicken-4.5.0/manual/Acknowledgements +--- chicken-4.5.0/manual/Acknowledgements.orig 2010-05-11 09:50:36.024641536 -0600 ++++ chicken-4.5.0/manual/Acknowledgements 2010-05-21 18:19:06.297795584 -0600 +@@ -32,8 +32,8 @@ Moukayed, Chris Moline, Eric E. Moore, J + David N. Murray, Lars Nilsson, Ian Oversby, o.t., Gene Pavlovsky, Levi + Pearson, Jeronimo Pellegrini, Nicolas Pelletier, Derrell Piper, Carlos + Pita, Robin Lee Powell, Pupeno, Davide Puricelli, presto, Doug Quale, +-Eric Raible, Ivan Raikov, Joel Reymont, Eric Rochester, Paul +-Romanchenko, Andreas Rottman, David Rush, Lars Rustemeier, Daniel ++Eric Raible, Ivan Raikov, Joel Reymont, Chris Roberts, Eric Rochester, ++Paul Romanchenko, Andreas Rottman, David Rush, Lars Rustemeier, Daniel + Sadilek, Oskar Schirmer, Burton Samograd, Reed Sheridan, Ronald + Schroeder, Spencer Schumann, Ivan Shcheklein, Alex Shinn, Ivan + Shmakov, Shmul, Tony Sidaway, Jeffrey B. Siegal, Andrey Sidorenko, +diff -up chicken-4.5.0/tests/runtests.sh.orig chicken-4.5.0/tests/runtests.sh +--- chicken-4.5.0/tests/runtests.sh.orig 2010-05-11 09:50:38.052953088 -0600 ++++ chicken-4.5.0/tests/runtests.sh 2010-05-21 18:20:30.098041856 -0600 +@@ -8,6 +8,7 @@ set -e + TEST_DIR=`pwd` + export DYLD_LIBRARY_PATH=${TEST_DIR}/.. + export LD_LIBRARY_PATH=${TEST_DIR}/.. ++export LIBRARY_PATH=${TEST_DIR}/..:${LIBRARY_PATH} + + mkdir -p test-repository +