Basilisk II: add recipe for a slightly more recent version

... from 2002. This is the last commit before the video drivers were
refactored and the BeOS one was never updated since.

In this version we get:
* AppleTalk over UDP bridge for BeOS,
* Faster optimized FPU emulation works again,
* Some other minor fixes.
This commit is contained in:
Adrien Destugues
2015-04-25 10:45:14 +02:00
parent d454c73ab3
commit fe2c34f229
3 changed files with 243 additions and 0 deletions

View File

@@ -13,6 +13,7 @@ ARCHITECTURES="x86_gcc2"
SRC_URI="http://basilisk.cebix.net/downloads/BasiliskII_src_31052001.tar.gz"
SOURCE_DIR="BasiliskII-0.9"
CHECKSUM_SHA256="627b94b3aaf23c374d72c3084c6c648521a50ba459e53eb1c0532ed4e02925d5"
PATCHES="basiliskii-0.9.1.patchset"
PROVIDES="
basiliskii = $portVersion

View File

@@ -0,0 +1,43 @@
SUMMARY="68k Macintosh emulator"
DESCRIPTION="Basilisk II is an Open Source 68k Macintosh emulator. That is, it \
allows you to run 68k MacOS software on your computer, even if you are using a \
different operating system. However, you still need a copy of MacOS and a \
Macintosh ROM image to use Basilisk II."
LICENSE="GNU GPL v2"
HOMEPAGE="http://basilisk.cebix.net/"
REVISION="1"
COPYRIGHT="1997-2015 Christian Bauer, Gwenolé Beauschene"
ARCHITECTURES="x86_gcc2"
SRC_URI="git+https://github.com/cebix/macemu.git#665c64b4aa673e8e78acf8451cc685a77e87e14b"
PATCHES="basiliskii-1.0.0.patchset"
PROVIDES="
basiliskii$secondaryArchSuffix = $portVersion
app:BasiliskII
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
makefile_engine
"
BUILD_PREREQUIRES="
cmd:gcc$secondaryArchSuffix
cmd:make
"
BUILD()
{
cd BasiliskII/src/BeOS
make $jobArgs
}
INSTALL()
{
cd BasiliskII/src/BeOS
make install INSTALL_DIR=$appsDir
addAppDeskbarSymlink $appsDir/BasiliskII "Basilisk II"
}

View File

@@ -0,0 +1,199 @@
From 4907fd049dfa184b8c54a8a2fa293458792da7f9 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@gmail.com>
Date: Sat, 25 Apr 2015 09:40:59 +0200
Subject: Add Haiku support.
* Haiku is mostly compatible with BeOS, but there are a few minor
changes.
diff --git a/BasiliskII/src/BeOS/Makefile b/BasiliskII/src/BeOS/Makefile
index 14ae78a..9079334 100644
--- a/BasiliskII/src/BeOS/Makefile
+++ b/BasiliskII/src/BeOS/Makefile
@@ -33,7 +33,7 @@ TYPE= APP
MACHINE=$(shell uname -m)
ifeq ($(MACHINE), BePC)
CPUSRCS = ../uae_cpu/basilisk_glue.cpp ../uae_cpu/memory.cpp ../uae_cpu/newcpu.cpp \
- ../uae_cpu/readcpu.cpp ../uae_cpu/fpu/fpu_x86.cpp cpustbl.cpp cpudefs.cpp cpufast.s
+ ../uae_cpu/readcpu.cpp ../uae_cpu/fpu/fpu_uae.cpp cpustbl.cpp cpudefs.cpp cpufast.s
else
# CPUSRCS = ../powerrom_cpu/powerrom_cpu.cpp
CPUSRCS = ../uae_cpu/basilisk_glue.cpp ../uae_cpu/newcpu.cpp \
@@ -123,7 +123,7 @@ LINKER_FLAGS =
## include the makefile-engine
-include /boot/develop/etc/makefile-engine
+include /boot/system/develop/etc/makefile-engine
# special handling of UAE CPU engine
diff --git a/BasiliskII/src/BeOS/ether_beos.cpp b/BasiliskII/src/BeOS/ether_beos.cpp
index 812e09f..3dedbb8 100644
--- a/BasiliskII/src/BeOS/ether_beos.cpp
+++ b/BasiliskII/src/BeOS/ether_beos.cpp
@@ -31,6 +31,11 @@
#include <string.h>
#include <sys/socket.h>
+#ifdef __HAIKU__
+#include <sys/select.h>
+#include <netinet/in.h>
+#endif
+
#include "cpu_emulation.h"
#include "main.h"
#include "prefs.h"
diff --git a/BasiliskII/src/BeOS/prefs_editor_beos.cpp b/BasiliskII/src/BeOS/prefs_editor_beos.cpp
index 0002d3f..118cdf4 100644
--- a/BasiliskII/src/BeOS/prefs_editor_beos.cpp
+++ b/BasiliskII/src/BeOS/prefs_editor_beos.cpp
@@ -625,17 +625,15 @@ void PrefsWindow::add_serial_names(BPopUpMenu *menu, uint32 msg)
port->GetDeviceName(i, name);
menu->AddItem(new BMenuItem(name, new BMessage(msg)));
}
- if (sys_info.platform_type == B_BEBOX_PLATFORM) {
- BDirectory dir;
- BEntry entry;
- dir.SetTo("/dev/parallel");
- if (dir.InitCheck() == B_NO_ERROR) {
- dir.Rewind();
- while (dir.GetNextEntry(&entry) >= 0) {
- if (!entry.IsDirectory()) {
- entry.GetName(name);
- menu->AddItem(new BMenuItem(name, new BMessage(msg)));
- }
+ BDirectory dir;
+ BEntry entry;
+ dir.SetTo("/dev/parallel");
+ if (dir.InitCheck() == B_NO_ERROR) {
+ dir.Rewind();
+ while (dir.GetNextEntry(&entry) >= 0) {
+ if (!entry.IsDirectory()) {
+ entry.GetName(name);
+ menu->AddItem(new BMenuItem(name, new BMessage(msg)));
}
}
}
diff --git a/BasiliskII/src/BeOS/scsi_beos.cpp b/BasiliskII/src/BeOS/scsi_beos.cpp
index badfbd2..cda452f 100644
--- a/BasiliskII/src/BeOS/scsi_beos.cpp
+++ b/BasiliskII/src/BeOS/scsi_beos.cpp
@@ -23,7 +23,11 @@
#include <stdio.h>
#include <unistd.h>
#include <device/scsi.h>
+#ifdef __HAIKU__
+#include <CAM.h>
+#else
#include <drivers/CAM.h>
+#endif
#include "sysdeps.h"
#include "main.h"
diff --git a/BasiliskII/src/BeOS/sys_beos.cpp b/BasiliskII/src/BeOS/sys_beos.cpp
index e6b3bf2..fa4441d 100644
--- a/BasiliskII/src/BeOS/sys_beos.cpp
+++ b/BasiliskII/src/BeOS/sys_beos.cpp
@@ -40,6 +40,11 @@
#define DEBUG 0
#include "debug.h"
+#ifdef __HAIKU__
+#include <fs_volume.h>
+#define unmount(x) fs_unmount_volume(x, 0)
+#endif
+
// File handles are pointers to these structures
struct file_handle {
@@ -284,6 +289,10 @@ void SysAddCDROMPrefs(void)
void SysAddSerialPrefs(void)
{
+#ifdef __HAIKU__
+ PrefsAddString("seriala", "serial1");
+ PrefsAddString("serialb", "serial2");
+#else
system_info info;
get_system_info(&info);
switch (info.platform_type) {
@@ -301,6 +310,7 @@ void SysAddSerialPrefs(void)
PrefsAddString("serialb", "none");
break;
}
+#endif
}
diff --git a/BasiliskII/src/BeOS/sysdeps.h b/BasiliskII/src/BeOS/sysdeps.h
index 481e166..47d83a1 100644
--- a/BasiliskII/src/BeOS/sysdeps.h
+++ b/BasiliskII/src/BeOS/sysdeps.h
@@ -63,7 +63,9 @@ typedef off_t loff_t;
// Networking types
#define PF_INET AF_INET
+#ifndef __HAIKU__
typedef int socklen_t;
+#endif
// UAE CPU data types
#define uae_s8 int8
--
2.2.2
From 7eac3c5f74a686bbfcb5192305be35b3b156bbac Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@gmail.com>
Date: Sat, 25 Apr 2015 09:59:55 +0200
Subject: Stray backslash in source file.
diff --git a/BasiliskII/src/BeOS/about_window.cpp b/BasiliskII/src/BeOS/about_window.cpp
index 094acc9..422549c 100644
--- a/BasiliskII/src/BeOS/about_window.cpp
+++ b/BasiliskII/src/BeOS/about_window.cpp
@@ -1,4 +1,4 @@
-\/*
+/*
* about_window.cpp - "About" window
*
* Basilisk II (C) 1997-2002 Christian Bauer
--
2.2.2
From 109e01fdbd8cdd07349ef0f47197e8f289d0d730 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@gmail.com>
Date: Sat, 25 Apr 2015 10:13:36 +0200
Subject: Haiku: Set -fomit-frame-pointer and -fno-PIC
* This frees some registers and make the x86 assembler code work.
* Restore use of fpu_x86 because of this.
diff --git a/BasiliskII/src/BeOS/Makefile b/BasiliskII/src/BeOS/Makefile
index 9079334..16cae87 100644
--- a/BasiliskII/src/BeOS/Makefile
+++ b/BasiliskII/src/BeOS/Makefile
@@ -33,7 +33,7 @@ TYPE= APP
MACHINE=$(shell uname -m)
ifeq ($(MACHINE), BePC)
CPUSRCS = ../uae_cpu/basilisk_glue.cpp ../uae_cpu/memory.cpp ../uae_cpu/newcpu.cpp \
- ../uae_cpu/readcpu.cpp ../uae_cpu/fpu/fpu_uae.cpp cpustbl.cpp cpudefs.cpp cpufast.s
+ ../uae_cpu/readcpu.cpp ../uae_cpu/fpu/fpu_x86.cpp cpustbl.cpp cpudefs.cpp cpufast.s
else
# CPUSRCS = ../powerrom_cpu/powerrom_cpu.cpp
CPUSRCS = ../uae_cpu/basilisk_glue.cpp ../uae_cpu/newcpu.cpp \
@@ -116,7 +116,7 @@ SYMBOLS =
DEBUGGER =
# specify additional compiler flags for all files
-COMPILER_FLAGS =
+COMPILER_FLAGS = -fomit-frame-pointer -fno-PIC
# specify additional linker flags
LINKER_FLAGS =
--
2.2.2