Add HxC floppy emulator tools and libraries.

This commit is contained in:
Adrien Destugues
2016-02-26 22:14:19 +01:00
parent 1bd14a5c57
commit 2f8cffd7e8
7 changed files with 338 additions and 0 deletions

View File

@@ -0,0 +1,47 @@
SUMMARY="Command-line tools for the HxC floppy emulator"
DESCRIPTION="Tools for manipulating and converting floppy disk images in the
HFE format used by the HxC floppy emulator, and driving the USB version of the
emulator."
HOMEPAGE="http://hxc2001.com/"
COPYRIGHT="2006-2016 Jean-François Del Nero"
LICENSE="GNU GPL v3"
SOURCE_URI="https://github.com/jfdelnero/HxCFloppyEmulator_cmdline/archive/HxCFloppyEmulator_cmdline_V2_0_0_0.tar.gz"
CHECKSUM_SHA256="db022b6c280b515c5c413903d885caa48097d67347eda017341beef8859e097b"
SOURCE_DIR="HxCFloppyEmulator_cmdline-HxCFloppyEmulator_cmdline_V2_0_0_0"
PATCHES="hxcfloppyemulator_cmdline-2.0.0.0.patchset"
REVISION="1"
ARCHITECTURES="!x86_gcc2 ?x86 ?x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
hxcfloppyemulator_cmdline$secondaryArchSuffix = $portVersion
cmd:hxcfe$secondaryArchSuffix
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libhxcfe$secondaryArchSuffix
lib:libusbhxcfe$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libhxcfe$secondaryArchSuffix
devel:libusbhxcfe$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:make
cmd:gcc$secondaryArchSuffix
"
BUILD()
{
cd build
make $jobArgs
}
INSTALL()
{
mkdir -p $binDir
cp build/hxcfe $binDir
}

View File

@@ -0,0 +1,35 @@
From 881f818c3765de2d90e463c294b7975ee8147d36 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Sat, 27 Feb 2016 09:32:56 +0100
Subject: Haiku hacks
diff --git a/build/Makefile b/build/Makefile
index a8b417c..1b8e939 100644
--- a/build/Makefile
+++ b/build/Makefile
@@ -9,6 +9,10 @@ LDFLAGS=-lc -lm -ldl -lpthread
LIBHXCFE = libhxcfe.so
LIBUSBHXCFE = libusbhxcfe.so
+ifeq ($(UNAME), Haiku)
+LDFLAGS=
+endif
+
ifeq ($(UNAME), Darwin)
CFLAGS += -arch i386
LDFLAGS += -arch i386
@@ -29,8 +33,8 @@ EXEC=hxcfe
all: $(EXEC)
-hxcfe: hxcfe.o ../../../build/libhxcadaptor.a $(LIBHXCFE) $(LIBUSBHXCFE)
- $(CC) -o $@ $^ $(LDFLAGS)
+hxcfe: hxcfe.o
+ $(CC) -o $@ -lhxcadaptor -lhxcfe -lusbhxcfe $^ $(LDFLAGS)
cp $@ ../../../build
$(LIBHXCFE): ../../../build/$(LIBHXCFE)
--
2.7.0

View File

@@ -0,0 +1,93 @@
SUMMARY="Manage floppy disk image formats"
DESCRIPTION="The HxC floppy emulator is a device that replaces a floppy drive \
and allows to use an SD card or USB drive instead of old floppies. This library \
allows to manage floppy image in the HFE format used by the emulator, as well \
as several other common floppy image formats."
HOMEPAGE="https://hxc2001.free.fr"
COPYRIGHT="2006-2016 Jean-François Del Nero"
LICENSE="GNU GPL v3"
SOURCE_URI="https://github.com/jfdelnero/libhxcfe/archive/libhxcfe_V2_4_6_0.tar.gz"
CHECKSUM_SHA256="af37d7fb7cd7634af287b8795bf22d6511097cb8666b82baaa05cf6c646f7b7e"
SOURCE_DIR="libhxcfe-libhxcfe_V2_4_6_0"
PATCHES="libhxcfe-$portVersion.patchset"
SOURCE_URI_2="https://github.com/jfdelnero/libhxcadaptor/archive/libhxcadaptor_V2_0_0_5.tar.gz"
CHECKSUM_SHA256_2="2777d2d86a93113dfc3502e3fb7f2f179aa84a94712947c68374c379336185ad"
SOURCE_DIR_2="libhxcadaptor-libhxcadaptor_V2_0_0_5"
PATCHES_2="libhxcadaptor-$portVersion.patchset"
SOURCE_URI_3="https://github.com/jfdelnero/libusbhxcfe/archive/libusbhxcfe_V2_0_0_4.tar.gz"
CHECKSUM_SHA256_3="41c16f6539ec6cd6da6c76c94945092d440be4870ff81f308e946e6dfe10e866"
SOURCE_DIR_3="libusbhxcfe-libusbhxcfe_V2_0_0_4"
REVISION="1"
ARCHITECTURES="!x86_gcc2 ?x86 ?x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
libhxcfe$secondaryArchSuffix = $portVersion
lib:libhxcfe$secondaryArchSuffix
"
REQUIRES="
haiku$secondaryArchSuffix
"
PROVIDES_devel="
libhxcfe${secondaryArchSuffix}_devel = $portVersion
devel:libhxcfe$secondaryArchSuffix
devel:libhxcadaptor$secondaryArchSuffix
"
REQUIRES_devel="
haiku${secondaryArchSuffix}_devel
libhxcfe$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
"
BUILD_PREREQUIRES="
cmd:dos2unix
cmd:make
cmd:gcc$secondaryArchSuffix
"
BUILD()
{
# Prepare directories so the sub-projects can see each other…
mkdir -p ../../libhxcadaptor
ln -sf ../sources-2/libhxcadaptor-libhxcadaptor_V2_0_0_5 ../../libhxcadaptor/trunk
mkdir -p ../../libusbhxcfe
ln -sf ../sources-3/libusbhxcfe-libusbhxcfe_V2_0_0_4 ../../libusbhxcfe/trunk
mkdir -p ../../libhxcfe
ln -sf ../sources/libhxcfe-libhxcfe_V2_4_6_0 ../../libhxcfe/trunk
# Prepare the output dir where all .a files will be put…
mkdir -p ../../build
# Build platform abstraction layer…
pushd ../../sources-2/libhxcadaptor-libhxcadaptor_V2_0_0_5/build
make $jobArgs
popd
# Build floppy image management library…
cd build
make $jobArgs
}
INSTALL()
{
mkdir -p $libDir $includeDir $includeDir/tracks
cp ../../build/*.* $libDir
cp ../../sources-2/*/sources/*.h $includeDir
cp sources/*.h $includeDir
cp sources/tracks/*.h $includeDir/tracks/
prepareInstalledDevelLibs \
libhxcfe libhxcadaptor
packageEntries devel \
$developDir
}

View File

@@ -0,0 +1,25 @@
From df5201e4f4eaec5f4012bf5d63ac1680d84cc836 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Sat, 27 Feb 2016 09:18:23 +0100
Subject: Fix Haiku build.
diff --git a/sources/libhxcadaptor.c b/sources/libhxcadaptor.c
index 253f7a4..c64906b 100644
--- a/sources/libhxcadaptor.c
+++ b/sources/libhxcadaptor.c
@@ -241,9 +241,11 @@ int hxc_createthread(HXCFLOPPYEMULATOR* floppycontext,void* hwcontext,THREADFUNC
pthread_attr_init(&threadattrib);
+#ifndef __HAIKU__
pthread_attr_setinheritsched(&threadattrib, PTHREAD_EXPLICIT_SCHED);
pthread_attr_setschedpolicy(&threadattrib,SCHED_FIFO);
+#endif
param.sched_priority = sched_get_priority_max(SCHED_FIFO);
/* set the new scheduling param */
pthread_attr_setschedparam (&threadattrib, &param);
--
2.7.0

View File

@@ -0,0 +1,24 @@
From a2586c9c4ebe44562714a1e9c8ea3cefea4de0e6 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Fri, 26 Feb 2016 21:52:58 +0100
Subject: Add Haiku support.
diff --git a/build/Makefile b/build/Makefile
index 2aacd3a..caffc11 100644
--- a/build/Makefile
+++ b/build/Makefile
@@ -22,6 +22,10 @@ ifeq ($(UNAME), Linux)
CFLAGS += -fPIC
endif
+ifeq ($(UNAME), Haiku)
+LDFLAGS= -g -shared
+endif
+
ifeq ($(findstring CYGWIN,$(shell uname)),CYGWIN)
LDFLAGS= -g -shared -lc -lm -ldl
EXEC=libhxcfe.dll
--
2.7.0

View File

@@ -0,0 +1,62 @@
SUMMARY="CPLD based USB HxC Floppy Emulator HAL library"
DESCRIPTION="The USB HxC floppy emulator is a device that connects to a modern
computer with USB on one side and emulates a Shugart floppy drive on the other
side. It allows transferring files from and to old computers in a simple way
and without using obsolete storage media."
HOMEPAGE="http://hxc2001.com"
COPYRIGHT="2006-2016 JEan-François Del Nero"
LICENSE="GNU GPL v3"
SOURCE_URI="https://github.com/jfdelnero/libusbhxcfe/archive/libusbhxcfe_V2_0_0_4.tar.gz"
CHECKSUM_SHA256="41c16f6539ec6cd6da6c76c94945092d440be4870ff81f308e946e6dfe10e866"
SOURCE_DIR="libusbhxcfe-libusbhxcfe_V2_0_0_4"
PATCHES="libusbhxcfe-2.0.0.4.patchset"
REVISION="1"
ARCHITECTURES="!x86_gcc2 ?x86 ?x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
libusbhxcfe$secondaryArchSuffix = $portVersion
lib:libusbhxcfe$secondaryArchSuffix
"
REQUIRES="
haiku$secondaryArchSuffix
"
PROVIDES_devel="
libsbhxcfe${secondaryArchSuffix}_devel = $portVersion
devel:libusbhxcfe$secondaryArchSuffix
"
REQUIRES_devel="
haiku${secondaryArchSuffix}_devel
libusbhxcfe$secondaryArchSuffix == $portVersion base
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libhxcfe$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:make
cmd:gcc$secondaryArchSuffix
"
BUILD()
{
cd build
make $jobArgs
}
INSTALL()
{
mkdir -p $libDir
mkdir -p $includeDir
cp build/*.so $libDir
cp sources/*.h $includeDir
prepareInstalledDevelLibs \
libusbhxcfe
packageEntries devel \
$developDir
}

View File

@@ -0,0 +1,52 @@
From e61db96bc5ba7ed32d455f1408b46b8a93f499c6 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Sat, 27 Feb 2016 09:36:52 +0100
Subject: Fix Haiku build.
diff --git a/build/Makefile b/build/Makefile
index 9d37914..dcde088 100644
--- a/build/Makefile
+++ b/build/Makefile
@@ -16,6 +16,10 @@ ifeq ($(UNAME), Linux)
CFLAGS += -fPIC
endif
+ifeq ($(UNAME), Haiku)
+LDFLAGS= -g -shared
+endif
+
ifeq ($(UNAME), Darwin)
CFLAGS += -arch i386 -mmacosx-version-min=10.5
LDFLAGS += -arch i386 -dynamiclib -current_version 2.0 -install_name @executable_path/../Frameworks/libusbhxcfe.dylib -mmacosx-version-min=10.5
--
2.7.0
From 439fe6a0cc1121e347312ff2212af83037ee95ba Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Sat, 27 Feb 2016 10:04:16 +0100
Subject: Haiku hacks.
diff --git a/sources/ftdi.c b/sources/ftdi.c
index 52874cc..6c53666 100644
--- a/sources/ftdi.c
+++ b/sources/ftdi.c
@@ -249,11 +249,13 @@ int createlistenerthread(RDTHREADFUNCTION thread,int priority,ftdi_context ftdih
//pthread_attr_create(&threadattrib);
pthread_attr_init(&threadattrib);
+#ifndef __HAIKU__
pthread_attr_setinheritsched(&threadattrib,PTHREAD_EXPLICIT_SCHED);
//pthread_attr_setsched(&threadattrib,SCHED_FIFO);
//pthread_attr_setprio(&threadattrib,4);
pthread_attr_setschedpolicy(&threadattrib,SCHED_FIFO);
+#endif
param.sched_priority = sched_get_priority_max(SCHED_FIFO) ;
/* set the new scheduling param */
pthread_attr_setschedparam (&threadattrib, &param);
--
2.7.0