Add stage support.

Fix a bug when running in a 64-bit environment that made it crash
immediately.
This commit is contained in:
Joerg Wunsch 2014-08-09 08:03:35 +00:00
parent cc9f432ba7
commit d014ce18a8
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=364407
5 changed files with 53 additions and 49 deletions

View file

@ -5,21 +5,11 @@ PORTNAME= pcemu
PORTVERSION= 1.01b
PORTREVISION= 3
CATEGORIES= emulators
#
# This could in theory become a chicken-and-egg problem. Anyway,
# wcarchive is well connected, and the distfile hasn't been changed
# for years now.
MASTER_SITES+= ftp://ftp.freebsd.org/pub/FreeBSD/distfiles/
#
# interface business GmbH is not so well connected, but Joerg's got
# direct access there.
MASTER_SITES+= ftp://ftp.interface-business.de/pub/outgoing/
#
# This is the original master site, but better use a well-connected server
MASTER_SITES+= ftp://ftp.cs.bris.ac.uk/pub/users/hedley/
MASTER_SITES= ${MASTER_SITE_LOCAL}
MASTER_SITE_SUBDIR= joerg
DISTNAME= pcemu1.01alpha
MAINTAINER= ports@FreeBSD.org
MAINTAINER= joerg@FreeBSD.org
COMMENT= 8086 PC emulator, by David Hedley
BUILD_DEPENDS= bdftopcf:${PORTSDIR}/x11-fonts/bdftopcf
@ -27,8 +17,7 @@ RUN_DEPENDS= mkfontdir:${PORTSDIR}/x11-fonts/mkfontdir \
mkfontscale:${PORTSDIR}/x11-fonts/mkfontscale
USE_XORG= x11 xext
MAKE_ENV= FILESDIR=${FILESDIR}
MAKE_ENV= FILESDIR=${FILESDIR} STAGEDIR=${STAGEDIR}
MAKE_ARGS= CC="${CC}"
NO_STAGE= yes
.include <bsd.port.mk>

View file

@ -40,22 +40,22 @@
+
+ #mode 0666 is required for DriveA, alas
+ install: pcemu bootstrapper
+ -mkdir ${LOCALPREFIX}/lib/pcemu \
+ ${LOCALPREFIX}/lib/pcemu/doc \
+ ${LOCALPREFIX}/lib/pcemu/font \
+ ${LOCALPREFIX}/lib/pcemu/C \
+ ${LOCALPREFIX}/bin
+ install -c -s -o bin -g bin pcemu ${LOCALPREFIX}/bin/
+ -mkdir -p ${STAGEDIR}/${LOCALPREFIX}/lib/pcemu \
+ ${STAGEDIR}/${LOCALPREFIX}/lib/pcemu/doc \
+ ${STAGEDIR}/${LOCALPREFIX}/lib/pcemu/font \
+ ${STAGEDIR}/${LOCALPREFIX}/lib/pcemu/C \
+ ${STAGEDIR}/${LOCALPREFIX}/bin
+ install -c -s -o bin -g bin pcemu ${STAGEDIR}/${LOCALPREFIX}/bin/
+ install -c -m 666 bootstrap/display.bin \
+ ${LOCALPREFIX}/lib/pcemu/DriveA
+ ${STAGEDIR}/${LOCALPREFIX}/lib/pcemu/DriveA
+ install -c -m 644 BUGS CHANGES README TODO bootstrap/README.FreeBSD \
+ programs/lredir.readme \
+ ${LOCALPREFIX}/lib/pcemu/doc/
+ rm -f ${LOCALPREFIX}/lib/pcemu/doc/report.ps.gz
+ gzip --best < report.ps > ${LOCALPREFIX}/lib/pcemu/doc/report.ps.gz
+ rm -f ${LOCALPREFIX}/lib/pcemu/font/vga.pcf.Z
+ bdftopcf vga.bdf | compress > ${LOCALPREFIX}/lib/pcemu/font/vga.pcf.Z
+ mkfontdir ${LOCALPREFIX}/lib/pcemu/font
+ ${STAGEDIR}/${LOCALPREFIX}/lib/pcemu/doc/
+ rm -f ${STAGEDIR}/${LOCALPREFIX}/lib/pcemu/doc/report.ps.gz
+ gzip --best < report.ps > ${STAGEDIR}/${LOCALPREFIX}/lib/pcemu/doc/report.ps.gz
+ rm -f ${STAGEDIR}/${LOCALPREFIX}/lib/pcemu/font/vga.pcf.Z
+ bdftopcf vga.bdf | compress > ${STAGEDIR}/${LOCALPREFIX}/lib/pcemu/font/vga.pcf.Z
+ mkfontdir ${STAGEDIR}/${LOCALPREFIX}/lib/pcemu/font
+ install -c -m 644 programs/vga50.com programs/config.sys \
+ programs/dumpdisk.exe programs/lredir.exe programs/emufs.sys \
+ ${LOCALPREFIX}/lib/pcemu/C
+ ${STAGEDIR}/${LOCALPREFIX}/lib/pcemu/C

View file

@ -1,19 +0,0 @@
*** Makefile.orig Sun Apr 16 23:46:57 1995
--- Makefile Sun Apr 16 23:47:16 1995
***************
*** 97,103 ****
#mode 0666 is required for DriveA, alas
install: pcemu bootstrapper
! -mkdir ${LOCALPREFIX}/lib/pcemu \
${LOCALPREFIX}/lib/pcemu/doc \
${LOCALPREFIX}/lib/pcemu/font \
${LOCALPREFIX}/lib/pcemu/C \
--- 97,103 ----
#mode 0666 is required for DriveA, alas
install: pcemu bootstrapper
! -mkdir -p ${LOCALPREFIX}/lib/pcemu \
${LOCALPREFIX}/lib/pcemu/doc \
${LOCALPREFIX}/lib/pcemu/font \
${LOCALPREFIX}/lib/pcemu/C \

View file

@ -0,0 +1,31 @@
--- xstuff.c~ 2014-08-09 05:59:27.430098652 +0200
+++ xstuff.c 2014-08-09 09:31:04.953397768 +0200
@@ -20,6 +20,7 @@
#include <X11/Xatom.h>
#include <X11/keysym.h>
#include <stdio.h>
+#include <stdlib.h>
#include "icon.h"
#include "xstuff.h"
--- mfs.h~ 2014-08-09 05:59:27.458114679 +0200
+++ mfs.h 2014-08-09 09:28:43.352221269 +0200
@@ -364,7 +364,7 @@
/* ### Split next difinition into read (..._r) and write (..._w) ### */
#define cds_rootlen_r(cds) (Read2Bytes(u_short,&cds[cds_rootlen_off]))
#define cds_rootlen_w(cds,x) (Write2Bytes(&cds[cds_rootlen_off], x))
-#define drive_cds(dd) ((cds_t)(((int)cds_base)+(cds_record_size*(dd))))
+#define drive_cds(dd) ((cds_t)(((char *)cds_base)+(cds_record_size*(dd))))
#define CDS_FLAG_REMOTE 0x8000
#define CDS_FLAG_READY 0x4000
--- mfs.c~ 2014-08-09 05:59:27.413113444 +0200
+++ mfs.c 2014-08-09 09:30:14.864291464 +0200
@@ -519,6 +519,7 @@
struct mydirect *dos_readdir(DIR *);
+int calculate_drive_pointers(int dd);
#if DOSEMU
int

View file

@ -15,4 +15,7 @@ lib/pcemu/C/dumpdisk.exe
lib/pcemu/C/lredir.exe
lib/pcemu/C/emufs.sys
lib/pcemu/DriveA
@unexec rm -rf %D/lib/pcemu
@dirrmtry lib/pcemu/C
@dirrmtry lib/pcemu/doc
@dirrmtry lib/pcemu/font
@dirrmtry lib/pcemu