diff --git a/app-emulation/joyce/joyce-2.2.6.recipe b/app-emulation/joyce/joyce-2.2.6.recipe new file mode 100644 index 000000000..3f733088a --- /dev/null +++ b/app-emulation/joyce/joyce-2.2.6.recipe @@ -0,0 +1,58 @@ +SUMMARY="JOYCE emulates the Amstrad PCW." +DESCRIPTION=" +The latest version of JOYCE (2.2.5) includes ANNE, which emulates the PcW16. +" +HOMEPAGE="http://www.seasip.demon.co.uk/Unix/Joyce/" +SRC_URI="http://www.seasip.info/Unix/Joyce/joyce-2.2.6.tar.gz" +CHECKSUM_SHA256="d92089dc3e583e88973ef6708dc35e649500949086da0a03f973efe3f62c3d8f" +REVISION="1" +COPYRIGHT="2002-2012 John Elliott" +LICENSE="GNU GPL v2" + +ARCHITECTURES="x86_gcc2 ?x86 ?x86_64" + +PROVIDES=" + joyce = $portVersion + cmd:xjoyce = $portVersion + cmd:xanne = $portVersion + devel:lib765 + devel:libcpmredir + devel:liblink + " +REQUIRES=" + haiku + lib:libsdl + lib:libpng + lib:libxml2 + lib:libz + lib:libgl + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + devel:libsdl + devel:libpng + devel:libxml2 + devel:libz + " +BUILD_PREREQUIRES=" + cmd:make + cmd:gcc + cmd:awk + " + +PATCHES="joyce-2.2.6.patchset" +BUILD() +{ + runConfigure ./configure + make +} + +INSTALL() +{ + make install + + # These are already provided in the libdsk package. + rm $binDir/apriboot $binDir/dsk* $binDir/md3serial $libDir/libdsk* + prepareInstalledDevelLibs lib765 libcpmredir liblink +} + diff --git a/app-emulation/joyce/patches/joyce-2.2.6.patchset b/app-emulation/joyce/patches/joyce-2.2.6.patchset new file mode 100644 index 000000000..fc5b2be82 --- /dev/null +++ b/app-emulation/joyce/patches/joyce-2.2.6.patchset @@ -0,0 +1,64 @@ +From acd7536857589b44814463078787ebe32cc2e519 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +Date: Tue, 6 May 2014 13:48:58 +0200 +Subject: Small build fixes for Haiku. + + +diff --git a/LibLink/lib/llparsocket.c b/LibLink/lib/llparsocket.c +index 6d09d1f..7f723c2 100644 +--- a/LibLink/lib/llparsocket.c ++++ b/LibLink/lib/llparsocket.c +@@ -21,6 +21,8 @@ + #include "llparsocket.h" + #include "llspacket.h" + ++#include ++ + #ifdef HAVE_WINSOCK_H + #define AGAIN (WSAGetLastError() == WSAEWOULDBLOCK) + #else +diff --git a/cpmredir/lib/cpmdrv.c b/cpmredir/lib/cpmdrv.c +index 79a872d..fd0511a 100644 +--- a/cpmredir/lib/cpmdrv.c ++++ b/cpmredir/lib/cpmdrv.c +@@ -22,6 +22,8 @@ + + #include "cpmint.h" + ++#include ++ + cpm_byte fcb_reset(void) + { + #ifdef __MSDOS__ +@@ -131,11 +133,11 @@ cpm_word fcb_getdpb(cpm_byte *dpb) + #ifndef WIN32 + /* XXX In WIN32, use some function or other to do this */ + +- struct statfs buf; ++ struct statvfs buf; + cpm_word nfiles; + + /* Get DPB for redir_cpmdrive. Currently just returns a dummy. */ +- if (!statfs(redir_drive_prefix[redir_cpmdrive], &buf)) ++ if (!statvfs(redir_drive_prefix[redir_cpmdrive], &buf)) + { + /* Store correct directory entry count */ + +@@ -184,12 +186,12 @@ cpm_word fcb_dfree (cpm_byte drive, cpm_byte *dma) + dfree = 4194303L; + } + #else +- struct statfs buf; ++ struct statvfs buf; + long dfree; + + if (!redir_drive_prefix[drive]) return 0x01FF; /* Can't select */ + +- if (statfs(redir_drive_prefix[drive], &buf)) return 0x01FF; ++ if (statvfs(redir_drive_prefix[drive], &buf)) return 0x01FF; + + dfree = (buf.f_bavail * (buf.f_bsize / 128)); + +-- +1.8.3.4 +