Add recipe for Joyce, the Amstrad PCW emulator.

This commit is contained in:
Adrien Destugues
2014-05-07 08:32:14 +02:00
parent f14f1b406d
commit 9418e7ce3a
2 changed files with 122 additions and 0 deletions

View File

@@ -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
}

View File

@@ -0,0 +1,64 @@
From acd7536857589b44814463078787ebe32cc2e519 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
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 <errno.h>
+
#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 <sys/statvfs.h>
+
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