WIP chicken recipe

--HG--
extra : rebase_source : 6175d6321952f89b8a4a365dcf9f5c465095e8fb
This commit is contained in:
Chris Roberts
2013-11-09 12:38:20 -07:00
parent c46b8f5166
commit 31db154bb0
2 changed files with 213 additions and 0 deletions

View File

@@ -0,0 +1,104 @@
SUMMARY="Chicken is a Scheme interpreter and native Scheme to C compiler"
DESCRIPTION="CHICKEN is a compiler for the Scheme programming language. CHICKEN produces portable and efficient C, supports almost all of the R5RS Scheme language standard, and includes many enhancements and extensions. CHICKEN runs on Linux, MacOS X, Windows, and many Unix flavours."
HOMEPAGE="http://www.call-cc.org/"
SRC_URI="http://code.call-cc.org/releases/4.8.0/chicken-4.8.0.5.tar.gz"
CHECKSUM_MD5="a63d8a0b6bc58a97ec5cc4c4a19b308a"
REVISION="1"
LICENSE="BSD (2-clause)"
COPYRIGHT="2008-2013 The Chicken Team
2000-2007 Felix L. Winkelmann"
SOURCE_DIR="$portVersionedName"
ARCHITECTURES="?x86 ?x86_gcc2"
PROVIDES="
chicken = $portVersion compat >= 4.8
cmd:csi = $portVersion compat >= 4.8
cmd:csc = $portVersion compat >= 4.8
cmd:chicken = $portVersion compat >= 4.8
cmd:chicken_bug = $portVersion compat >= 4.8
cmd:chicken_install = $portVersion compat >= 4.8
cmd:chicken_profile = $portVersion compat >= 4.8
cmd:chicken_status = $portVersion compat >= 4.8
cmd:chicken_uninstall = $portVersion compat >= 4.8
lib:libchicken = $portVersion compat >= 4.8
"
REQUIRES="
haiku >= $haikuVersion
cmd:gcc
cmd:ld
"
BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
haiku_devel >= $haikuVersion
cmd:gcc
cmd:make
cmd:ld
"
PROVIDES_devel="
chicken_devel = $portVersion
devel:libchicken = $portVersion
"
REQUIRES_devel="
chicken == $portVersion
"
PATCH()
{
if [ "$targetArchitecture" = x86_gcc2 ]; then
echo "Removing -fwrapv flag for gcc2 build"
sed -i 's/-fwrapv//' Makefile.haiku
fi
echo "Removing git check"
sed -i 's/sh $(SRCDIR)identify.sh/echo/' rules.make
}
PATCHES="chicken-4.8.0.5.patchset"
GLOBAL_WRITABLE_FILES="
non-packaged/lib/chicken/6 directory keep-old
"
BUILD()
{
# odd timestamp issue
touch build-version.c
make PLATFORM=haiku PREFIX=$prefix \
MANDIR=$manDir/man1 \
DOCDIR=$docDir \
DATADIR=$dataDir/chicken \
INCDIR=$includeDir/chicken \
HOSTNAME=shredder
}
INSTALL()
{
make install PLATFORM=haiku PREFIX=$prefix \
MANDIR=$manDir/man1 \
DOCDIR=$docDir \
DATADIR=$dataDir/chicken \
INCDIR=$includeDir/chicken \
HOSTNAME=shredder
prepareInstalledDevelLibs libchicken
packageEntries devel $developDir
rm -rf $prefix/share
}
TEST()
{
if ! type -p csi > /dev/null;then
echo "ERROR: Chicken must be installed before running the test suite"
exit 1
fi
make PLATFORM=haiku PREFIX=$prefix check
}

View File

@@ -0,0 +1,109 @@
From a74b33e6d278ad461c2eba2991e09cf54a1e4d72 Mon Sep 17 00:00:00 2001
From: Chris Roberts <cpr420@gmail.com>
Date: Thu, 7 Nov 2013 02:07:02 -0700
Subject: Minor fixes
diff --git a/chicken.h b/chicken.h
index de48141..98f7071 100644
--- a/chicken.h
+++ b/chicken.h
@@ -2888,7 +2888,7 @@ C_path_to_executable(C_char *fname)
while (get_next_image_info(0, &cookie, &info) == B_OK) {
if (info.type == B_APP_IMAGE) {
- C_strcat(buffer, info.name);
+ C_strcpy(buffer, info.name);
for(i = C_strlen(buffer); i >= 0 && buffer[ i ] != '/'; --i);
diff --git a/library.c b/library.c
index b54b578..fedf35b 100644
--- a/library.c
+++ b/library.c
@@ -79,13 +79,14 @@ fast_read_line_from_file(C_word str, C_word port, C_word size) {
static C_word
fast_read_string_from_file(C_word dest, C_word port, C_word len, C_word pos)
{
+ size_t m;
int n = C_unfix (len);
char * buf = ((char *)C_data_pointer (dest) + C_unfix (pos));
C_FILEPTR fp = C_port_file (port);
if(feof(fp)) return C_SCHEME_END_OF_FILE;
- size_t m = fread (buf, sizeof (char), n, fp);
+ m = fread (buf, sizeof (char), n, fp);
if (m < n) {
if (ferror(fp)) /* Report to Scheme, which may retry, so clear errors */
--
1.8.3.4
From ed8542b12f0695222d24261d2ad97853f3f19cb1 Mon Sep 17 00:00:00 2001
From: Chris Roberts <cpr420@gmail.com>
Date: Thu, 7 Nov 2013 02:55:03 -0700
Subject: Adjust include path
diff --git a/Makefile.haiku b/Makefile.haiku
index 7489637..077daf2 100644
--- a/Makefile.haiku
+++ b/Makefile.haiku
@@ -64,6 +64,7 @@ include $(SRCDIR)/defaults.make
chicken-config.h: chicken-defaults.h
echo "/* GENERATED */" >$@
+ echo "#define C_TARGET_INCLUDE_HOME \"$(TARGET_PREFIX)/develop/headers/chicken\"" >>$@
echo "#define HAVE_DIRENT_H 1" >>$@
echo "#define HAVE_DLFCN_H 1" >>$@
echo "#define HAVE_INTTYPES_H 1" >>$@
--
1.8.3.4
From 04cdda51c590a1648c74be2565c29073f0c09562 Mon Sep 17 00:00:00 2001
From: Chris Roberts <cpr420@gmail.com>
Date: Thu, 7 Nov 2013 03:04:04 -0700
Subject: Adjust develop library paths
diff --git a/Makefile.haiku b/Makefile.haiku
index 077daf2..6cab4fe 100644
--- a/Makefile.haiku
+++ b/Makefile.haiku
@@ -65,6 +65,8 @@ include $(SRCDIR)/defaults.make
chicken-config.h: chicken-defaults.h
echo "/* GENERATED */" >$@
echo "#define C_TARGET_INCLUDE_HOME \"$(TARGET_PREFIX)/develop/headers/chicken\"" >>$@
+ echo "#define C_TARGET_LIB_HOME \"$(TARGET_PREFIX)/develop/lib\"" >>$@
+ echo "#define C_TARGET_STATIC_LIB_HOME \"$(TARGET_PREFIX)/develop/lib\"" >>$@
echo "#define HAVE_DIRENT_H 1" >>$@
echo "#define HAVE_DLFCN_H 1" >>$@
echo "#define HAVE_INTTYPES_H 1" >>$@
--
1.8.3.4
From ed3a7c3bee260c4b09c4559b4a53ce346482ea1f Mon Sep 17 00:00:00 2001
From: Chris Roberts <cpr420@gmail.com>
Date: Thu, 7 Nov 2013 03:33:47 -0700
Subject: Adjust egg location
diff --git a/Makefile.haiku b/Makefile.haiku
index 6cab4fe..c7c2824 100644
--- a/Makefile.haiku
+++ b/Makefile.haiku
@@ -67,6 +67,7 @@ chicken-config.h: chicken-defaults.h
echo "#define C_TARGET_INCLUDE_HOME \"$(TARGET_PREFIX)/develop/headers/chicken\"" >>$@
echo "#define C_TARGET_LIB_HOME \"$(TARGET_PREFIX)/develop/lib\"" >>$@
echo "#define C_TARGET_STATIC_LIB_HOME \"$(TARGET_PREFIX)/develop/lib\"" >>$@
+ echo "#define EGGDIR \"$(TARGET_PREFIX)/non-packaged/lib/chicken/$(BINARY_VERSION)\"" >>$@
echo "#define HAVE_DIRENT_H 1" >>$@
echo "#define HAVE_DLFCN_H 1" >>$@
echo "#define HAVE_INTTYPES_H 1" >>$@
--
1.8.3.4