diff --git a/app-emulation/basiliskii/basiliskii-0.9.1.recipe b/app-emulation/basiliskii/basiliskii-0.9.1.recipe index 7053bde6a..955f4fa8d 100644 --- a/app-emulation/basiliskii/basiliskii-0.9.1.recipe +++ b/app-emulation/basiliskii/basiliskii-0.9.1.recipe @@ -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 diff --git a/app-emulation/basiliskii/basiliskii-1.0.0.recipe b/app-emulation/basiliskii/basiliskii-1.0.0.recipe new file mode 100644 index 000000000..42bc9e0ef --- /dev/null +++ b/app-emulation/basiliskii/basiliskii-1.0.0.recipe @@ -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" +} diff --git a/app-emulation/basiliskii/patches/basiliskii-1.0.0.patchset b/app-emulation/basiliskii/patches/basiliskii-1.0.0.patchset new file mode 100644 index 000000000..d7280f1b2 --- /dev/null +++ b/app-emulation/basiliskii/patches/basiliskii-1.0.0.patchset @@ -0,0 +1,199 @@ +From 4907fd049dfa184b8c54a8a2fa293458792da7f9 Mon Sep 17 00:00:00 2001 +From: Adrien Destugues +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 + #include + ++#ifdef __HAIKU__ ++#include ++#include ++#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 + #include + #include ++#ifdef __HAIKU__ ++#include ++#else + #include ++#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 ++#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 +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 +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 +