Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 28 Mar 1998 15:27:39 -0500 (EST)
From:      dchapes@ddm.on.ca
To:        FreeBSD-gnats-submit@FreeBSD.ORG
Subject:   ports/6155: new port: emulators/vice, Versatile Commodore 8-bit Emulator
Message-ID:  <199803282027.PAA07388@squigy.ddm.on.ca>

next in thread | raw e-mail | index | archive | help

>Number:         6155
>Category:       ports
>Synopsis:       new port: emulators/vice, Versatile Commodore 8-bit Emulator
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports
>State:          open
>Quarter:
>Keywords:
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Mar 28 12:30:00 PST 1998
>Last-Modified:
>Originator:     Dave Chapeskie
>Organization:
DDM Consulting
>Release:        FreeBSD 2.2.5-STABLE i386
>Environment:
>Description:

This is a port of VICE, Versatile Commodore 8-bit Emulator, the
multi-platform PET/VIC20/C64 emulator.  This port also includes a patch
for joysticks under FreeBSD.

This emulator works much better and faster than emulators/frodo.

I wasn't 100% positive about how to do the bin and man symlinks.  What
I've done works but may not be the best way.  Someone who knows for sure
should take a peek at the Makefile and the packaging list.

Also, note the comment at the end of pkg/DESCR about the default
/etc/login.conf memory limits.

>How-To-Repeat:
>Fix:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	.
#	./Makefile
#	./files
#	./files/md5
#	./patches
#	./patches/patch-aa
#	./patches/patch-ab
#	./patches/patch-ac
#	./patches/patch-ad
#	./patches/patch-ae
#	./patches/patch-af
#	./pkg
#	./pkg/PLIST
#	./pkg/COMMENT
#	./pkg/DESCR
#
echo c - .
mkdir -p . > /dev/null 2>&1
echo x - ./Makefile
sed 's/^X//' >./Makefile << 'END-of-./Makefile'
X# New ports collection makefile for:	vice
X# Version required:	0.14.1
X# Date created:		Mar 28, 1998
X# Whom:			dchapes@ddm.on.ca
X#
X# $Id$
X
XDISTNAME=	vice-0.14.1
XCATEGORIES=	emulators
XMASTER_SITES=	ftp://ftp.funet.fi/pub/cbm/crossplatform/emulators/VICE/
X
XMAINTAINER=	dchapes@ddm.on.ca
X
XWRKSRC=		${WRKDIR}/vice-0.14.1/src
X
XGNU_CONFIGURE=	YES
XCONFIGURE_ENV=	CFLAGS="${CFLAGS} -O3 -Wall -fomit-frame-pointer -funroll-loops -finline-functions -fno-strength-reduce"
XCONFIGURE_ARGS=	--with-xaw3d
X
XMANPAGES=	vice c1541 petcat
XMAN1=		vice.1 c1541.1 petcat.1
X
Xpost-install:
X	for m in ${MANPAGES} ; do \
X	  ${INSTALL_MAN} ${WRKSRC}/../man/$$m.man ${PREFIX}/man/man1/$$m.1; \
X	done
X.if defined(NOMANCOMPRESS)
X	${LN} -sf vice.1 ${PREFIX}/man/man1/x64.1
X	${LN} -sf vice.1 ${PREFIX}/man/man1/xvic.1
X	${LN} -sf vice.1 ${PREFIX}/man/man1/xpet.1
X	${LN} -sf vice.1 ${PREFIX}/man/man1/recomment.1
X.else
X	${LN} -sf vice.1.gz ${PREFIX}/man/man1/x64.1.gz
X	${LN} -sf vice.1.gz ${PREFIX}/man/man1/xvic.1.gz
X	${LN} -sf vice.1.gz ${PREFIX}/man/man1/xpet.1.gz
X	${LN} -sf vice.1.gz ${PREFIX}/man/man1/recomment.1.gz
X.endif
X
X.include <bsd.port.mk>
END-of-./Makefile
echo c - ./files
mkdir -p ./files > /dev/null 2>&1
echo x - ./files/md5
sed 's/^X//' >./files/md5 << 'END-of-./files/md5'
XMD5 (vice-0.14.1.tar.gz) = 5f13d74c29219d7840a65365d2bc04cd
END-of-./files/md5
echo c - ./patches
mkdir -p ./patches > /dev/null 2>&1
echo x - ./patches/patch-aa
sed 's/^X//' >./patches/patch-aa << 'END-of-./patches/patch-aa'
X--- ./include/vice.h.orig	Sat Mar  7 09:01:54 1998
X+++ ./include/vice.h	Sat Mar 28 09:19:42 1998
X@@ -255,7 +255,7 @@
X #define MITSHM
X #endif
X 
X-#if defined __MSDOS__ || (defined HAVE_JOYSTICK_H && defined __linux__)
X+#if defined __MSDOS__ || defined HAVE_JOYSTICK_H
X #define JOYSTICK
X #endif
X 
END-of-./patches/patch-aa
echo x - ./patches/patch-ab
sed 's/^X//' >./patches/patch-ab << 'END-of-./patches/patch-ab'
X--- ./arch/unix/joystick.c.orig	Sat Mar  7 09:01:51 1998
X+++ ./arch/unix/joystick.c	Sat Mar 28 09:19:42 1998
X@@ -1,5 +1,5 @@
X /*
X- * joystick.c - Joystick support for Linux.
X+ * joystick.c - Joystick support for Linux and *BSD
X  *
X  * Written by
X  *  Bernhard Kuhn    (kuhn@eikon.e-technik.tu-muenchen.de)
X@@ -7,6 +7,7 @@
X  *
X  * Patches by
X  *  Daniel Sladic    (sladic@eecg.toronto.edu)
X+ *  Dave Chapeskie   <dchapes@ddm.on.ca>
X  *
X  * This file is part of VICE, the Versatile Commodore Emulator.
X  * See README for copyright notice.
X@@ -32,7 +33,13 @@
X 
X #ifdef HAS_JOYSTICK
X 
X+#ifdef __linux__
X #include <linux/joystick.h>
X+#else
X+#include <machine/joystick.h>
X+#define JS_DATA_TYPE	joystick
X+#define JS_RETURN	(sizeof(struct joystick))
X+#endif
X #include <unistd.h>
X #include <stdio.h>
X #include <sys/types.h>
X@@ -89,7 +96,11 @@
X   for(i=0;i<2;i++) {
X     
X     char* dev;
X+#ifdef __linux__
X     dev=(i==0)?"/dev/js0":"/dev/js1";
X+#else
X+    dev=(i==0)?"/dev/joy0":"/dev/joy1";
X+#endif
X     
X     ajoyfd[i]=open(dev,O_RDONLY);
X     if (ajoyfd[i] < 0) {
X@@ -132,6 +143,7 @@
X     }
X   }
X     
X+#ifdef __linux__
X   /* open device files for digital joystick */
X   for(i=0;i<2;i++) {
X     char* dev;
X@@ -142,6 +154,7 @@
X       fprintf(stderr, "Warning: couldn't open the joystick device %s!\n",dev);
X     }
X   }
X+#endif
X }
X 
X void joyclose(void)
X@@ -195,7 +208,11 @@
X 	  else joy[i] &= ~4;
X 	  if (js.x>joyxmax[ajoyport]) joy[i] |= 8;
X 	  else joy[i] &= ~8;
X+#ifdef __linux__
X 	  if(js.buttons) joy[i] |= 16;
X+#else
X+	  if(js.b1 | js.b2) joy[i] |= 16;
X+#endif
X 	  else joy[i] &= ~16;
X 	}
X       }
END-of-./patches/patch-ab
echo x - ./patches/patch-ac
sed 's/^X//' >./patches/patch-ac << 'END-of-./patches/patch-ac'
X--- ./configure.orig	Wed Mar 11 15:59:28 1998
X+++ ./configure	Sat Mar 28 09:19:42 1998
X@@ -2362,7 +2362,41 @@
X fi
X if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
X   echo "$ac_t""yes" 1>&6
X-   LINUXJOYSTICK=-DHAS_JOYSTICK ;
X+   JOYSTICK=-DHAS_JOYSTICK ;
X+		    JOY_OBJS='$(ARCHDIR)/joystick.o' 
X+else
X+  echo "$ac_t""no" 1>&6
X+fi
X+
X+  ac_safe=`echo "machine/joystick.h" | sed 'y%./+-%__p_%'`
X+echo $ac_n "checking for machine/joystick.h""... $ac_c" 1>&6
X+echo "configure:2374: checking for machine/joystick.h" >&5
X+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
X+  echo $ac_n "(cached) $ac_c" 1>&6
X+else
X+  cat > conftest.$ac_ext <<EOF
X+#line 2379 "configure"
X+#include "confdefs.h"
X+#include <machine/joystick.h>
X+EOF
X+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
X+{ (eval echo configure:2384: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
X+ac_err=`grep -v '^ *+' conftest.out`
X+if test -z "$ac_err"; then
X+  rm -rf conftest*
X+  eval "ac_cv_header_$ac_safe=yes"
X+else
X+  echo "$ac_err" >&5
X+  echo "configure: failed program was:" >&5
X+  cat conftest.$ac_ext >&5
X+  rm -rf conftest*
X+  eval "ac_cv_header_$ac_safe=no"
X+fi
X+rm -f conftest*
X+fi
X+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
X+  echo "$ac_t""yes" 1>&6
X+   JOYSTICK=-DHAS_JOYSTICK ;
X 		    JOY_OBJS='$(ARCHDIR)/joystick.o' 
X else
X   echo "$ac_t""no" 1>&6
X@@ -4705,7 +4739,7 @@
X s%@MAKE2@%$MAKE2%g
X s%@PERL@%$PERL%g
X s%@MKDEP@%$MKDEP%g
X-s%@LINUXJOYSTICK@%$LINUXJOYSTICK%g
X+s%@JOYSTICK@%$JOYSTICK%g
X s%@JOY_OBJS@%$JOY_OBJS%g
X s%@LIBOBJS@%$LIBOBJS%g
X s%@SUBDIRS@%$SUBDIRS%g
END-of-./patches/patch-ac
echo x - ./patches/patch-ad
sed 's/^X//' >./patches/patch-ad << 'END-of-./patches/patch-ad'
X--- ./configure.in.orig	Wed Mar 11 15:59:28 1998
X+++ ./configure.in	Sat Mar 28 09:19:42 1998
X@@ -195,7 +195,10 @@
X 
X if test "$host_vendor" != "go32" -a "$host_vendor" != "msdos"; then
X   AC_CHECK_HEADER(linux/joystick.h,
X-                  [ LINUXJOYSTICK=-DHAS_JOYSTICK ;
X+                  [ JOYSTICK=-DHAS_JOYSTICK ;
X+		    JOY_OBJS='$(ARCHDIR)/joystick.o' ], )
X+  AC_CHECK_HEADER(machine/joystick.h,
X+                  [ JOYSTICK=-DHAS_JOYSTICK ;
X 		    JOY_OBJS='$(ARCHDIR)/joystick.o' ], )
X   if test "$ac_cv_header_linux_joystick_h" = "yes" ; then
X     AC_MSG_CHECKING(whether linux/joystick.h supports digital joysticks)
X@@ -204,7 +207,7 @@
X 		   [ LINUXJOYSTICK="$LINUXJOYSTICK -DHAS_DIGITAL_JOYSTICK"
X 		     AC_MSG_RESULT(yes) ], AC_MSG_RESULT(no))
X   fi
X-  AC_SUBST(LINUXJOYSTICK)
X+  AC_SUBST(JOYSTICK)
X   AC_SUBST(JOY_OBJS)
X   AC_CHECK_HEADERS(linux/soundcard.h machine/soundcard.h dmedia/audio.h)
X   AC_CHECK_HEADERS(SDL_audio.h SDL_sleep.h)
END-of-./patches/patch-ad
echo x - ./patches/patch-ae
sed 's/^X//' >./patches/patch-ae << 'END-of-./patches/patch-ae'
X--- ./Makefile.in.orig	Sat Mar 21 08:53:32 1998
X+++ ./Makefile.in	Sat Mar 28 09:28:52 1998
X@@ -59,7 +59,7 @@
X ARCH		= @host@
X 
X LDFLAGS         = @X_LIBS@ @LDFLAGS@
X-DEFS 	        = @DEFS@ @LINUXJOYSTICK@ -DPREFIX=\"@prefix@\"
X+DEFS 	        = @DEFS@ @JOYSTICK@ -DPREFIX=\"@prefix@\"
X MKDEP 	        = @MKDEP@
X CFLAGS          = @X_CFLAGS@ @CFLAGS@
X INCLUDES	= -I$(SRCDIR) -I./include -I$(ARCHDIR) -I$(INCLUDEDIR)
X@@ -67,6 +67,7 @@
X 
X LN_S 	        = @LN_S@
X 
X+RM		= rm
X INSTALL		= @INSTALL@
X INSTALL_PROGRAM = @INSTALL_PROGRAM@
X INSTALL_DATA	= @INSTALL_DATA@
X@@ -510,7 +511,7 @@
X 	           $(INSTALL_BINDIR)/$$a;				      \
X 	   done;							      \
X            $(RM) -f $(INSTALL_BINDIR)/recomment;			      \
X-	   $(INSTALL_PROGRAM) $(UTILDIR)/recomment			      \
X+	   $(INSTALL) -m 555 $(UTILDIR)/recomment			      \
X 	       $(INSTALL_LIBDIR)/$(ARCH)/recomment-$$VERSION;		      \
X 	   $(LN_S) $(INSTALL_LIBDIR)/$(ARCH)/recomment-$$VERSION	      \
X 	       $(INSTALL_BINDIR)/recomment )
END-of-./patches/patch-ae
echo x - ./patches/patch-af
sed 's/^X//' >./patches/patch-af << 'END-of-./patches/patch-af'
X--- ../man/vice.man.orig	Sat Mar 28 14:42:29 1998
X+++ ../man/vice.man	Sat Mar 28 14:43:01 1998
X@@ -32,7 +32,7 @@
X .PP
X The whole documentation for these programs is available in HTML
X format; the main file should be installed on your system as
X-/usr/local/lib/VICE/doc/MANUAL.html.
X+/usr/local/lib/vice/doc/MANUAL.html.
X .P
X For up to date news about VICE, have a look at the official home page
X at
END-of-./patches/patch-af
echo c - ./pkg
mkdir -p ./pkg > /dev/null 2>&1
echo x - ./pkg/PLIST
sed 's/^X//' >./pkg/PLIST << 'END-of-./pkg/PLIST'
Xlib/vice/C64/basic
Xlib/vice/C64/chargen
Xlib/vice/C64/dos1541
Xlib/vice/C64/kernal
Xlib/vice/VIC20/basic
Xlib/vice/VIC20/chargen
Xlib/vice/VIC20/dos1541
Xlib/vice/VIC20/kernal
Xlib/vice/PET/chargen
Xlib/vice/PET/edit2.b
Xlib/vice/PET/edit4.b40
Xlib/vice/PET/edit4.b80
Xlib/vice/PET/pet2001
Xlib/vice/PET/pet3032
Xlib/vice/PET/pet4032
Xlib/vice/doc/64doc
Xlib/vice/doc/BUGS
Xlib/vice/doc/CHANGES
Xlib/vice/doc/COPYING
Xlib/vice/doc/Evaluation
Xlib/vice/doc/INSTALL
Xlib/vice/doc/MANUAL.html
X@exec ln -s %f %B/index.html
X@unexec rm %B/index.html
Xlib/vice/doc/PETdoc
Xlib/vice/doc/README
Xlib/vice/doc/TODO
Xlib/vice/doc/cbm_basic_tokens
Xlib/vice/doc/drive_info
Xlib/vice/doc/mnemonics
Xlib/vice/doc/recomment.html
Xlib/vice/doc/serial
Xlib/vice/i386-unknown-freebsd2.2.5/c1541-0.14.1
X@exec ln -s ../%F %D/bin/c1541
X@unexec rm %D/bin/c1541
Xlib/vice/i386-unknown-freebsd2.2.5/petcat-0.14.1
X@exec ln -s ../%F %D/bin/petcat
X@unexec rm %D/bin/petcat
Xlib/vice/i386-unknown-freebsd2.2.5/recomment-0.14.1
X@exec ln -s ../%F %D/bin/recomment
X@unexec rm %D/bin/recomment
Xlib/vice/i386-unknown-freebsd2.2.5/x64-0.14.1
X@exec ln -s ../%F %D/bin/x64
X@unexec rm %D/bin/x64
Xlib/vice/i386-unknown-freebsd2.2.5/xpet-0.14.1
X@exec ln -s ../%F %D/bin/xpet
X@unexec rm %D/bin/xpet
Xlib/vice/i386-unknown-freebsd2.2.5/xvic-0.14.1
X@exec ln -s ../%F %D/bin/xvic
X@unexec rm %D/bin/xvic
Xman/man1/c1541.1.gz
Xman/man1/petcat.1.gz
Xman/man1/vice.1.gz
X@exec ln -s %f %B/x64.1.gz
X@exec ln -s %f %B/xvic.1.gz
X@exec ln -s %f %B/xpet.1.gz
X@exec ln -s %f %B/recomment.1.gz
X@unexec rm %B/x64.1.gz
X@unexec rm %B/xvic.1.gz
X@unexec rm %B/xpet.1.gz
X@unexec rm %B/recomment.1.gz
END-of-./pkg/PLIST
echo x - ./pkg/COMMENT
sed 's/^X//' >./pkg/COMMENT << 'END-of-./pkg/COMMENT'
XVICE 0.14.1 = Versatile Commodore 8-bit Emulator
END-of-./pkg/COMMENT
echo x - ./pkg/DESCR
sed 's/^X//' >./pkg/DESCR << 'END-of-./pkg/DESCR'
XVersatile Commodore 8-bit Emulator
XThis is version 0.14.1 of VICE, the multi-platform PET/VIC20/C64 emulator.
X
XThe following programs are included:
X  - x64, a C64 emulator;
X  - xvic, a VIC20 emulator;
X  - xpet, a PET emulator;
X  - c1541, a stand-alone disk image maintenance utility;
X  - petcat, a CBM BASIC de-tokenizer;
X  - recomment, an iterative database driven reassembler;
X
XFor the latest news, have a look at the VICE home page:
X    http://www.tu-chemnitz.de/~fachat/vice/vice.html
X
XVICE is Copyright (c) 1993-1998 Ettore Perazzoli, Teemu Rantanen,
XAndré Fachat, Jouko Valta, Jarkko Sonninen and Daniel Sladic.
X
XThe ROM files in the `C64', `PET' and `VIC20' directories are
XCopyright (c) by Commodore Business Machines.
X
XNOTE:  When compiling on FreeBSD some source files cause gcc to go over the
Xdefault memory limits.  Either fix /etc/login.conf or temporaryily adjust
Xthe limits with your shells limit command ("unlimit" works in [t]csh).
END-of-./pkg/DESCR
exit

>Audit-Trail:
>Unformatted:

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199803282027.PAA07388>