From 31db154bb0cda3f57e1ac96ff43b4a5966724a76 Mon Sep 17 00:00:00 2001 From: Chris Roberts Date: Sat, 9 Nov 2013 12:38:20 -0700 Subject: [PATCH] WIP chicken recipe --HG-- extra : rebase_source : 6175d6321952f89b8a4a365dcf9f5c465095e8fb --- dev-scheme/chicken/chicken-4.8.0.5.recipe | 104 +++++++++++++++++ .../chicken/patches/chicken-4.8.0.5.patchset | 109 ++++++++++++++++++ 2 files changed, 213 insertions(+) create mode 100644 dev-scheme/chicken/chicken-4.8.0.5.recipe create mode 100644 dev-scheme/chicken/patches/chicken-4.8.0.5.patchset diff --git a/dev-scheme/chicken/chicken-4.8.0.5.recipe b/dev-scheme/chicken/chicken-4.8.0.5.recipe new file mode 100644 index 000000000..fd6eff435 --- /dev/null +++ b/dev-scheme/chicken/chicken-4.8.0.5.recipe @@ -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 +} diff --git a/dev-scheme/chicken/patches/chicken-4.8.0.5.patchset b/dev-scheme/chicken/patches/chicken-4.8.0.5.patchset new file mode 100644 index 000000000..5e0d9f494 --- /dev/null +++ b/dev-scheme/chicken/patches/chicken-4.8.0.5.patchset @@ -0,0 +1,109 @@ +From a74b33e6d278ad461c2eba2991e09cf54a1e4d72 Mon Sep 17 00:00:00 2001 +From: Chris Roberts +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 +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 +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 +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 +