aboutsummaryrefslogtreecommitdiff
path: root/emulators/mupen64-base
diff options
context:
space:
mode:
authorJose Alonso Cardenas Marquez <acm@FreeBSD.org>2007-10-09 03:50:04 +0000
committerJose Alonso Cardenas Marquez <acm@FreeBSD.org>2007-10-09 03:50:04 +0000
commitfb3f49d7410298270f9b4502eaa98c90d65764d1 (patch)
tree686d538f4897b13ab0b43c0ebe54a4d18a483291 /emulators/mupen64-base
parentb49b2025fe5663123cbd177b2da0c600cdba27a6 (diff)
Notes
Diffstat (limited to 'emulators/mupen64-base')
-rw-r--r--emulators/mupen64-base/Makefile71
-rw-r--r--emulators/mupen64-base/Makefile.common113
-rw-r--r--emulators/mupen64-base/distinfo6
-rw-r--r--emulators/mupen64-base/files/mupen64.in64
-rw-r--r--emulators/mupen64-base/files/patch-Makefile274
-rw-r--r--emulators/mupen64-base/files/patch-configure128
-rw-r--r--emulators/mupen64-base/files/patch-main_gtk.c30
-rw-r--r--emulators/mupen64-base/files/patch-main_main.c10
-rw-r--r--emulators/mupen64-base/files/patch-plugin.c10
-rw-r--r--emulators/mupen64-base/pkg-descr5
-rw-r--r--emulators/mupen64-base/pkg-message9
-rw-r--r--emulators/mupen64-base/pkg-plist34
12 files changed, 428 insertions, 326 deletions
diff --git a/emulators/mupen64-base/Makefile b/emulators/mupen64-base/Makefile
index f7cff58cde04..694c3c3c3300 100644
--- a/emulators/mupen64-base/Makefile
+++ b/emulators/mupen64-base/Makefile
@@ -6,65 +6,42 @@
#
PORTNAME= mupen64
-PORTVERSION= 0.4
-PORTREVISION= 3
-CATEGORIES+= emulators
-MASTER_SITES= http://mupen64.emulation64.com/files/${PORTVERSION}/
-PKGNAMESUFFIX= -base
+PORTVERSION?= 0.5
+PORTREVISION?= 0
+CATEGORIES= emulators
+MASTER_SITES= http://mupen64.emulation64.com/files/${PORTVERSION}/ \
+ ${MASTER_SITE_GENTOO:S|$|distfiles/|}
+PKGNAMESUFFIX?= -base
DISTNAME= ${PORTNAME}_src-${PORTVERSION}
-MAINTAINER?= tlp@LiquidX.org
-COMMENT= Mupen64 is a Nintendo 64 emulator
+MAINTAINER?= acm@FreeBSD.org
+COMMENT?= Mupen64 is a Nintendo 64 emulator
+USE_GNOME?= #
+USE_GL?= #
+USE_GDL?= #
USE_BZIP2= yes
-HAS_CONFIGURE= yes
USE_GMAKE= yes
-USE_SDL= sdl
-USE_GNOME= gtk12
-WRKSRC= ${WRKDIR}/emu64
-USE_GCC= 3.4
ONLY_FOR_ARCHS= i386
-DOCFILES= readme.pdf readme.ps
-FIXME1= main/vcr.c memory/dma.c r4300/r4300.c r4300/recomp.c \
- r4300/x86/assemble.c
-FIXME2= r4300/interupt.c main/gui_gtk/main_gtk.c
+MAKE_ENV+= CXX="${CXX}" PTHREAD_LIBS="${PTHREAD_LIBS}"
-pre-configure:
- @${SED} -e 's,%%PREFIX%%,${PREFIX},g' ${FILESDIR}/mupen64.in \
- > ${WRKDIR}/mupen64
-.for i in ${FIXME1}
- ${REINPLACE_CMD} -e 's|malloc.h|stdlib.h|' ${WRKSRC}/${i}
-.endfor
-.for i in ${FIXME2}
- ${REINPLACE_CMD} -e 's|SDL/SDL.h|SDL.h|' ${WRKSRC}/${i}
-.endfor
- ${REINPLACE_CMD} \
- -e 's|sdl-config|${SDL_CONFIG}|g' ${WRKSRC}/configure
- ${REINPLACE_CMD} \
- -e 's|gtk-config|${GTK_CONFIG}|' \
- -e 's|-L/usr/X11R6/lib -lSDL -lGL -lpthread|`${SDL_CONFIG} --libs`|' \
- -e 's|-ldl|${LDFLAGS}|' \
- ${WRKSRC}/Makefile
+MUPEN64VERSION= 0.5
+FIXFILES?= r4300/r4300.c memory/dma.c r4300/recomp.c r4300/x86/assemble.c
-post-install:
-.if !defined(NOPORTDOCS)
- ${MKDIR} ${DOCSDIR}
- ${INSTALL_DATA} ${WRKSRC}/whatsnew.txt ${DOCSDIR}/whatsnew.txt
-.for i in ${DOCFILES}
- ${INSTALL_DATA} ${WRKSRC}/doc/${i} ${DOCSDIR}/
-.endfor
-.endif
- ${INSTALL_PROGRAM} ${WRKSRC}/mupen64 ${PREFIX}/libexec/mupen64
- ${INSTALL_SCRIPT} ${WRKDIR}/mupen64 ${PREFIX}/bin/mupen64
- @${CAT} ${PKGMESSAGE}
+OPTIONS?= GTK2 "Use gtk20 instead of gtk12" off \
+ VCR "Support for video recording" off
.include <bsd.port.pre.mk>
-CFLAGS+= `${SDL_CONFIG} --cflags`
-CFLAGS+= -O3 -fomit-frame-pointer -funroll-loops -ffast-math -Wall -pipe
-CFLAGS+= -DX86 -mcpu=athlon
+.if defined(WITH_GTK2)
+HAVE_GTK2= true
+.endif
+
+.if defined(WITH_VCR)
+HAVE_VCR= true
+.endif
-MAKE_ARGS+= CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
+.include "${MASTERDIR}/Makefile.common"
.include <bsd.port.post.mk>
diff --git a/emulators/mupen64-base/Makefile.common b/emulators/mupen64-base/Makefile.common
new file mode 100644
index 000000000000..5eeb662cc8bb
--- /dev/null
+++ b/emulators/mupen64-base/Makefile.common
@@ -0,0 +1,113 @@
+DISTNAME= ${PORTNAME}_src-${MUPEN64VERSION}
+PATCHDIR= ${.CURDIR}/files
+WRKSRC= ${WRKDIR}/${DISTNAME}
+
+EXTRACT_AFTER_ARGS= | ${TAR} -xf - ${DISTNAME}/Makefile ${DISTNAME}/config.h \
+ ${DISTNAME}/main ${DISTNAME}/plugins
+
+.if defined(HAVE_GTK2)
+.include <${PORTSDIR}/Mk/bsd.gnome.mk>
+USE_GNOME= pkgconfig gtk20
+.else
+.include <${PORTSDIR}/Mk/bsd.gnome.mk>
+USE_GNOME= gtk12
+.endif
+
+.if ${PKGNAMESUFFIX} == "-base"
+USE_GL= yes
+USE_SDL= sdl
+. if defined(HAVE_VCR)
+LIB_DEPENDS= aviplay.0:${PORTSDIR}/multimedia/avifile
+. endif
+ALL_TARGET= mupen64 mupen64_nogui
+EXTRACT_AFTER_ARGS+= ${DISTNAME}/README.vcr ${DISTNAME}/doc ${DISTNAME}/lang ${DISTNAME}/logo.xpm \
+ ${DISTNAME}/memory ${DISTNAME}/mupen64.ini ${DISTNAME}/r4300 \
+ ${DISTNAME}/whatsnew.txt
+.else
+EXTRA_PATCHES= ${.CURDIR}/../mupen64-base/files/patch-Makefile
+PLIST= ${WRKDIR}/pkg-plist
+.endif
+
+.if ${PKGNAMESUFFIX} == "-dummyaudio"
+ALL_TARGET= plugins/dummyaudio.so
+EXTRACT_AFTER_ARGS+= ${DISTNAME}/dummy_audio
+.endif
+
+.if ${PKGNAMESUFFIX} == "-sdlinput"
+ALL_TARGET= plugins/blight_input.so
+EXTRACT_AFTER_ARGS+= ${DISTNAME}/blight_input
+.endif
+
+.if ${PKGNAMESUFFIX} == "-gln64"
+ALL_TARGET= plugins/glN64.so
+EXTRACT_AFTER_ARGS+= ${DISTNAME}/glN64
+.endif
+
+.if ${PKGNAMESUFFIX} == "-sdlaudio"
+ALL_TARGET= plugins/jttl_audio.so
+EXTRACT_AFTER_ARGS+= ${DISTNAME}/jttl_audio
+.endif
+
+.if ${PKGNAMESUFFIX} == "-sound"
+ALL_TARGET= plugins/mupen64_audio.so
+EXTRACT_AFTER_ARGS+= ${DISTNAME}/mupen64_audio
+.endif
+
+.if ${PKGNAMESUFFIX} == "-input"
+ALL_TARGET= plugins/mupen64_input.so
+EXTRACT_AFTER_ARGS+= ${DISTNAME}/mupen64_input
+.endif
+
+.if ${PKGNAMESUFFIX} == "-softgfx"
+ALL_TARGET= plugins/mupen64_soft_gfx.so
+EXTRACT_AFTER_ARGS+= ${DISTNAME}/mupen64_soft_gfx
+.endif
+
+.if ${PKGNAMESUFFIX} == "-rsp"
+ALL_TARGET= plugins/mupen64_hle_rsp_azimer.so
+EXTRACT_AFTER_ARGS+= ${DISTNAME}/Makefile ${DISTNAME}/rsp_hle
+.endif
+
+post-configure:
+ @${REINPLACE_CMD} -i "" -e 's|^#undef WITH_HOME|#define WITH_HOME \"${PREFIX}/\"|g' ${WRKSRC}/config.h
+
+.if !defined(HAVE_GTK2)
+ @${REINPLACE_CMD} -i "" -e 's|^#define GTK2_SUPPORT 1|#undef GTK2_SUPPORT|g' ${WRKSRC}/config.h
+.endif
+
+.if defined(HAVE_VCR)
+ @${REINPLACE_CMD} -i "" -e 's|^#undef VCR_SUPPORT|#define VCR_SUPPORT 1|g' ${WRKSRC}/config.h
+.endif
+
+.for f in ${FIXFILES}
+ @${REINPLACE_CMD} -e 's|malloc.h|stdlib.h|' ${WRKSRC}/${f}
+.endfor
+
+.if ${PKGNAMESUFFIX} != "-base"
+pre-install:
+ @${RM} -f ${PLIST}
+ @${ECHO_CMD} "%%DATADIR%%/plugins/${PLUGIN_NAME}.so" >> ${PLIST}
+ @${ECHO_CMD} "@dirrmtry %%DATADIR%%/plugins" >> ${PLIST}
+ @${ECHO_CMD} "@dirrmtry %%DATADIR%%" >> ${PLIST}
+.endif
+
+do-install:
+.if ${PKGNAMESUFFIX} == "-base"
+ @${MKDIR} ${DATADIR}/lang
+
+ ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${PREFIX}/bin/
+ ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME}_nogui ${PREFIX}/bin/
+
+ ${INSTALL_DATA} ${WRKSRC}/mupen64.ini ${DATADIR}
+ ${INSTALL_DATA} ${WRKSRC}/lang/* ${DATADIR}/lang/
+
+. if !defined(NOPORTDOCS)
+ ${MKDIR} ${DOCSDIR}
+ ${INSTALL_DATA} ${WRKSRC}/whatsnew.txt ${DOCSDIR}/whatsnew.txt
+ ${INSTALL_DATA} ${WRKSRC}/README.vcr ${DOCSDIR}/README.vcr
+ ${INSTALL_DATA} ${WRKSRC}/doc/readme.pdf ${DOCSDIR}/readme.pdf
+. endif
+.else
+ @${MKDIR} ${DATADIR}/plugins
+ ${INSTALL_PROGRAM} ${WRKSRC}/plugins/${PLUGIN_NAME}.so ${DATADIR}/plugins/
+.endif
diff --git a/emulators/mupen64-base/distinfo b/emulators/mupen64-base/distinfo
index 3df2f766b104..252b86f84101 100644
--- a/emulators/mupen64-base/distinfo
+++ b/emulators/mupen64-base/distinfo
@@ -1,3 +1,3 @@
-MD5 (mupen64_src-0.4.tar.bz2) = 322f2226f4f67e24868592c6b441e76a
-SHA256 (mupen64_src-0.4.tar.bz2) = 12958fa185c8a851f31ea007a1bb4df2bb6eeed582bc6af234ae5b9d57a8f3ae
-SIZE (mupen64_src-0.4.tar.bz2) = 1871148
+MD5 (mupen64_src-0.5.tar.bz2) = 11f994bed40e00fad5b82333b553e421
+SHA256 (mupen64_src-0.5.tar.bz2) = 1b8e4188ab7a94d8125b77aed8725ee348c24818622b881adfe16be510487dfd
+SIZE (mupen64_src-0.5.tar.bz2) = 1981046
diff --git a/emulators/mupen64-base/files/mupen64.in b/emulators/mupen64-base/files/mupen64.in
deleted file mode 100644
index addc739cca65..000000000000
--- a/emulators/mupen64-base/files/mupen64.in
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/bin/sh
-# mupen64 - Mupen64 wrapper script
-#
-# 2004 Travis Poppe
-
-USERDIR=$HOME/.mupen64
-
-if [ ! -x $USERDIR/mupen64 ]; then
- echo "$USERDIR/mupen64 not found or not executable."
- echo "Setting up Mupen64 for you..."
- rm -rf $USERDIR
- mkdir $USERDIR
- mkdir $USERDIR/lang
- mkdir $USERDIR/save
- mkdir $USERDIR/roms
- mkdir $USERDIR/plugins
- cd $USERDIR
- ln -s %%PREFIX%%/libexec/mupen64 ./mupen64
- cp %%PREFIX%%/share/mupen64/mupen64.ini ./mupen64.ini
- chmod +w ./mupen64.ini
- ln -s %%PREFIX%%/share/mupen64/lang/* lang/
-
-for source in %%PREFIX%%/share/mupen64/*.conf
-do
- # source must exist as a plain file
- if test ! -f "${source}"
- then
- continue
- fi
- target="${USERDIR}/${source##*/}"
- cp "${source}" "${target}"
- chmod +w "${target}"
-done
-
-for source in %%PREFIX%%/share/mupen64/plugins/*.so
-do
- # source must exist as a plain file
- if test ! -f "${source}"
- then
- continue
- fi
- target="${USERDIR}/plugins/${source##*/}"
- ln -s "${source}" "${target}"
-done
-
-for source in %%PREFIX%%/share/mupen64/plugins/*.ini
-do
- # source must exist as a plain file
- if test ! -f "${source}"
- then
- continue
- fi
- target="${USERDIR}/plugins/${source##*/}"
- cp "${source}" "${target}"
- chmod +w "${target}"
-done
-
- echo "Done!"
- echo ""
- echo "Remember to configure your plugins!"
- echo ""
-fi
-
-cd $USERDIR && exec ./mupen64
diff --git a/emulators/mupen64-base/files/patch-Makefile b/emulators/mupen64-base/files/patch-Makefile
index f173d567ea83..461d7a8daf3b 100644
--- a/emulators/mupen64-base/files/patch-Makefile
+++ b/emulators/mupen64-base/files/patch-Makefile
@@ -1,6 +1,6 @@
---- Makefile.orig Mon Jul 5 22:37:09 2004
-+++ Makefile Tue Aug 10 23:03:37 2004
-@@ -1,10 +1,10 @@
+--- Makefile.orig 2005-08-26 14:52:13.000000000 -0500
++++ Makefile 2007-10-08 18:29:37.000000000 -0500
+@@ -1,14 +1,9 @@
#Makefile MUPEN64 for Linux
-CC =gcc
@@ -8,9 +8,265 @@
+CC ?=gcc
+CXX ?=g++
- #CFLAGS =-DX86 -O3 -mpentium -Wall -DEMU64_DEBUG
--CFLAGS =-DX86 -O3 -fomit-frame-pointer -funroll-loops -ffast-math -mcpu=athlon -Wall -pipe
-+#CFLAGS =-DX86 -O3 -fomit-frame-pointer -funroll-loops -ffast-math -mcpu=athlon -Wall -pipe
- #CFLAGS =-DX86 -O3 -mcpu=pentium -Wall -g -pg
- #CFLAGS =-DX86 -Wall -pipe -g3 -DEMU64_DEBUG
- #CFLAGS =-DX86 -Wall -pipe -g -DEMU64_DEBUG -DCOMPARE_CORE
+-#CFLAGS =-DX86 -O3 -mpentium -Wall -DEMU64_DEBUG
+-CFLAGS =-DX86 -O3 -fexpensive-optimizations -fomit-frame-pointer -funroll-loops -ffast-math -fno-strict-aliasing -mcpu=athlon -Wall -pipe
+-#CFLAGS =-DX86 -O3 -mcpu=pentium -Wall -g -pg
+-#CFLAGS =-DX86 -Wall -pipe -g3 -DEMU64_DEBUG
+-#CFLAGS =-DX86 -Wall -pipe -g -DEMU64_DEBUG -DCOMPARE_CORE
+-#CFLAGS =-DX86 -Wall -pipe -g
++CFLAGS +=-DX86 -fexpensive-optimizations -fomit-frame-pointer -funroll-loops -ffast-math -fno-strict-aliasing -Wall
+
+ CXXFLAGS =$(CFLAGS)
+
+@@ -156,9 +151,9 @@
+ LIB =-lz -lm
+
+ ifneq ("$(shell grep GTK2 config.h)","\#define GTK2_SUPPORT 1")
+-GTK_FLAGS =`gtk-config --cflags`
+-GTK_LIBS =`gtk-config --libs`
+-GTHREAD_LIBS =`gtk-config --libs gtk gthread`
++GTK_FLAGS =`${GTK_CONFIG} --cflags`
++GTK_LIBS =`${GTK_CONFIG} --libs`
++GTHREAD_LIBS =`${GTK_CONFIG} --libs gtk gthread`
+ else
+ GTK_FLAGS =`pkg-config gtk+-2.0 --cflags` -D_GTK2
+ GTK_LIBS =`pkg-config gtk+-2.0 --libs`
+@@ -173,16 +168,16 @@
+ all: mupen64 mupen64_nogui $(PLUGINS)
+
+ r4300/interupt.o: r4300/interupt.c
+- $(CC) $(CFLAGS) `sdl-config --cflags` -c -o $@ $<
++ $(CC) $(CFLAGS) `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ main/main.o: main/main.c
+- $(CC) $(CFLAGS) -c -o $@ $< `sdl-config --cflags`
++ $(CC) $(CFLAGS) -c -o $@ $< `${SDL_CONFIG} --cflags`
+
+ main/main_gtk.o: main/main_gtk.c
+- $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) `sdl-config --cflags`
++ $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) `${SDL_CONFIG} --cflags`
+
+ main/gui_gtk/main_gtk.o: main/gui_gtk/main_gtk.c
+- $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) `sdl-config --cflags`
++ $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS) `${SDL_CONFIG} --cflags`
+
+ main/gui_gtk/translate.o: main/gui_gtk/translate.c
+ $(CC) $(CFLAGS) -c -o $@ $< $(GTK_FLAGS)
+@@ -218,13 +213,13 @@
+ $(CXX) $(CXXFLAGS) -c -o $@ $< `avifile-config --cflags`
+
+ mupen64_input/main.o: mupen64_input/main.c
+- $(CC) $(CFLAGS) -DUSE_GTK -c -o $@ $< $(GTK_FLAGS) `sdl-config --cflags`
++ $(CC) $(CFLAGS) -DUSE_GTK -c -o $@ $< $(GTK_FLAGS) `${SDL_CONFIG} --cflags`
+
+ blight_input/plugin.o: blight_input/plugin.c
+- $(CC) $(CFLAGS) "-DPACKAGE=\"$(shell grep PACKAGE blight_input/package | cut -d "=" -f 2)\"" "-DVERSION=\"$(shell grep VERSION blight_input/package | cut -d "=" -f 2)\"" `sdl-config --cflags` -DGUI_SDL -c -o $@ $<
++ $(CC) $(CFLAGS) "-DPACKAGE=\"$(shell grep PACKAGE blight_input/package | cut -d "=" -f 2)\"" "-DVERSION=\"$(shell grep VERSION blight_input/package | cut -d "=" -f 2)\"" `${SDL_CONFIG} --cflags` -DGUI_SDL -c -o $@ $<
+
+ blight_input/SDL_ttf.o: blight_input/SDL_ttf.c
+- $(CC) $(CFLAGS) `freetype-config --cflags` `sdl-config --cflags` -c -o $@ $<
++ $(CC) $(CFLAGS) `freetype-config --cflags` `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ blight_input/arial.ttf.o: blight_input/arial.ttf.c
+
+@@ -234,10 +229,9 @@
+
+ blight_input/ttftoh: blight_input/ttftoh.o
+ $(CC) $^ -o $@
+- strip --strip-all $@
+
+ blight_input/configdialog_sdl.o: blight_input/configdialog_sdl.c
+- $(CC) $(CFLAGS) "-DPACKAGE=\"$(shell grep PACKAGE blight_input/package | cut -d "=" -f 2)\"" "-DVERSION=\"$(shell grep VERSION blight_input/package | cut -d "=" -f 2)\"" -DGUI_SDL `sdl-config --cflags` -c -o $@ $<
++ $(CC) $(CFLAGS) "-DPACKAGE=\"$(shell grep PACKAGE blight_input/package | cut -d "=" -f 2)\"" "-DVERSION=\"$(shell grep VERSION blight_input/package | cut -d "=" -f 2)\"" -DGUI_SDL `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ blight_input/pad.o: blight_input/pad.c
+ $(CC) $(CFLAGS) -DGUI_SDL -c -o $@ $<
+@@ -249,150 +243,138 @@
+ $(CC) $(CFLAGS) $(GTK_FLAGS) -DUSE_GTK -c -o $@ $<
+
+ jttl_audio/main.o: jttl_audio/main.c
+- $(CC) $(CFLAGS) $(GTK_FLAGS) -DUSE_GTK `sdl-config --cflags` -c -o $@ $<
++ $(CC) $(CFLAGS) $(GTK_FLAGS) -DUSE_GTK `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ mupen64_soft_gfx/main.o: mupen64_soft_gfx/main.cpp
+- $(CXX) $(CFLAGS) `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ mupen64_soft_gfx/vi_SDL.o: mupen64_soft_gfx/vi_SDL.cpp
+- $(CXX) $(CFLAGS) `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/glN64.o: glN64/glN64.cpp
+- $(CXX) $(CFLAGS) -DMAINDEF -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -DMAINDEF -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/Config_linux.o: glN64/Config_linux.cpp
+- $(CXX) $(CFLAGS) $(GTK_FLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) $(GTK_FLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/OpenGL.o: glN64/OpenGL.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/N64.o: glN64/N64.cpp
+ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM -c -o $@ $<
+
+ glN64/RSP.o: glN64/RSP.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/VI.o: glN64/VI.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/Textures.o: glN64/Textures.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/FrameBuffer.o: glN64/FrameBuffer.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/Combiner.o: glN64/Combiner.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/gDP.o: glN64/gDP.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/gSP.o: glN64/gSP.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/GBI.o: glN64/GBI.cpp
+- $(CXX) $(CFLAGS) $(GTK_FLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) $(GTK_FLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/CRC.o: glN64/CRC.cpp
+ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM -c -o $@ $<
+
+ glN64/NV_register_combiners.o: glN64/NV_register_combiners.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/texture_env.o: glN64/texture_env.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/texture_env_combine.o: glN64/texture_env_combine.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/RDP.o: glN64/RDP.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/F3D.o: glN64/F3D.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/F3DEX.o: glN64/F3DEX.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/F3DEX2.o: glN64/F3DEX2.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/L3D.o: glN64/L3D.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/L3DEX.o: glN64/L3DEX.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/L3DEX2.o: glN64/L3DEX2.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/S2DEX.o: glN64/S2DEX.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/S2DEX2.o: glN64/S2DEX2.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/F3DPD.o: glN64/F3DPD.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/F3DDKR.o: glN64/F3DDKR.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ glN64/F3DWRUS.o: glN64/F3DWRUS.cpp
+- $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `sdl-config --cflags` -c -o $@ $<
++ $(CXX) $(CFLAGS) -D__LINUX__ -DX86_ASM `${SDL_CONFIG} --cflags` -c -o $@ $<
+
+ mupen64_nogui: $(OBJ) $(OBJ_X86) main/main.o main/gui_gtk/config.o
+- $(CC) $^ $(LIB) -Wl,-export-dynamic -L/usr/X11R6/lib `sdl-config --libs` -lGL -lpthread -ldl -o $@
+- strip --strip-all $@
++ $(CC) $^ $(LIB) -Wl,-export-dynamic -L/usr/X11R6/lib `${SDL_CONFIG} --libs` -lGL -o $@
+
+ ifneq ("$(shell grep VCR config.h)","\#define VCR_SUPPORT 1")
+
+ mupen64: $(OBJ) $(OBJ_X86) $(OBJ_GTK_GUI)
+- $(CC) $^ $(CFLAGS) $(LIB) -Wl,-export-dynamic $(GTK_LIBS) -L/usr/X11R6/lib `sdl-config --libs` -lGL -lpthread -ldl -o $@
+- strip --strip-all $@
++ $(CC) $^ $(CFLAGS) $(LIB) -Wl,-export-dynamic $(GTK_LIBS) -L/usr/X11R6/lib `${SDL_CONFIG} --libs` -lGL -o $@
+
+ else
+
+ mupen64: $(OBJ) $(OBJ_X86) $(OBJ_GTK_GUI) $(OBJ_VCR)
+- $(CXX) $^ $(CFLAGS) $(LIB) -Wl,-export-dynamic $(GTK_LIBS) `avifile-config --libs` `sdl-config --libs` -L/usr/X11R6/lib -lGL -lpthread -ldl -o $@
+- strip --strip-all $@
++ $(CXX) $^ $(CFLAGS) $(LIB) -Wl,-export-dynamic $(GTK_LIBS) `avifile-config --libs` `${SDL_CONFIG} --libs` -L${X11BASE}/lib -lGL -o $@
+ endif
+
+ mupen64_oldgui: $(OBJ) $(OBJ_X86) main/main_gtk.o
+- $(CC) $^ $(LIB) -Wl,-export-dynamic $(GTK_LIBS) `sdl-config --libs` -L/usr/X11R6/lib -lGL -lpthread -ldl -o $@
+- strip --strip-all $@
++ $(CC) $^ $(LIB) -Wl,-export-dynamic $(GTK_LIBS) `${SDL_CONFIG} --libs` -L${X11BASE}/lib -lGL -o $@
+
+ plugins/mupen64_input.so: $(OBJ_INPUT)
+ $(CC) $^ -Wl,-Bsymbolic -shared $(GTK_LIBS) -o $@
+- strip --strip-all $@
+
+ plugins/blight_input.so: $(OBJ_BLIGHT)
+- $(CC) $^ -Wl,-Bsymbolic -shared `sdl-config --libs` `freetype-config --libs` -o $@
+- strip --strip-all $@
++ $(CC) $^ -Wl,-Bsymbolic -shared `${SDL_CONFIG} --libs` `freetype-config --libs` -o $@
+
+ plugins/mupen64_hle_rsp_azimer.so: $(OBJ_RSPHLE)
+ $(CXX) $^ -Wl,-Bsymbolic -shared $(GTK_LIBS) -o $@
+- strip --strip-all $@
+
+ plugins/dummyaudio.so: $(OBJ_DUMMY)
+ $(CC) $^ -Wl,-Bsymbolic -shared -o $@
+- strip --strip-all $@
+
+ plugins/mupen64_audio.so: $(OBJ_AUDIO)
+- $(CC) $(GTK_LIBS) -lpthread $^ -Wl,-Bsymbolic -shared -o $@
+- strip --strip-all $@
++ $(CC) $(GTK_LIBS) ${PTHREAD_LIBS} $^ -Wl,-Bsymbolic -shared -o $@
+
+ plugins/jttl_audio.so: $(OBJ_JTTL)
+- $(CC) $^ -Wl,-Bsymbolic -shared `sdl-config --libs` $(GTK_LIBS) -o $@
+- strip --strip-all $@
++ $(CC) $^ -Wl,-Bsymbolic -shared `${SDL_CONFIG} --libs` $(GTK_LIBS) -o $@
+
+ plugins/mupen64_soft_gfx.so: $(OBJ_SOFT_GFX)
+- $(CXX) `sdl-config --libs` $^ -Wl,-Bsymbolic -shared -o $@
+- strip --strip-all $@
++ $(CXX) `${SDL_CONFIG} --libs` $^ -Wl,-Bsymbolic -shared -o $@
+
+ plugins/glN64.so: $(OBJ_GLN64)
+- $(CXX) $^ -Wl,-Bsymbolic -shared $(GTK_LIBS) $(GTHREAD_LIBS) `sdl-config --libs` -lGL -o $@
+- strip --strip-all $@
++ $(CXX) $^ -Wl,-Bsymbolic -shared $(GTK_LIBS) $(GTHREAD_LIBS) `${SDL_CONFIG} --libs` -lGL -o $@
+
+ install:
+ cp mupen64 "$(PREFIX)bin"
diff --git a/emulators/mupen64-base/files/patch-configure b/emulators/mupen64-base/files/patch-configure
deleted file mode 100644
index 8c3a8f7fcb05..000000000000
--- a/emulators/mupen64-base/files/patch-configure
+++ /dev/null
@@ -1,128 +0,0 @@
---- configure.orig Mon Jul 5 22:37:11 2004
-+++ configure Wed Aug 11 05:57:43 2004
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
-
- if [ -z "$CC" ]; then
- CC=gcc
-@@ -8,7 +8,7 @@
- fi
-
- # check for a C compiler
--function check_cc()
-+check_cc()
- {
- if [ ! -z "$CC" ]; then
- if [ ! -x "`which "$CC"`" ]; then
-@@ -23,8 +23,8 @@
- fi
- fi
-
-- FILE="`tempfile`"
-- OUTFILE="`tempfile`"
-+ FILE="/tmp/mupen64.configure.1"
-+ OUTFILE="/tmp/mupen64.configure.2"
- echo "int main(void) { return 0; }" > "$FILE"
- $CC -x "c" -o "$OUTFILE" "$FILE" 2>&1 | cat >>config.log
-
-@@ -51,7 +51,7 @@
- }
-
- # check for a C++ compiler
--function check_cxx()
-+check_cxx()
- {
- if [ ! -z "$CXX" ]; then
- if [ ! -x "`which "$CXX"`" ]; then
-@@ -66,8 +66,8 @@
- fi
- fi
-
-- FILE="`tempfile`"
-- OUTFILE="`tempfile`"
-+ FILE="/tmp/mupen64.configure.1"
-+ OUTFILE="/tmp/mupen64.configure.2"
- echo "int main(void) { return 0; }" > "$FILE"
- $CXX -x "c++" -o "$OUTFILE" "$FILE" 2>&1 | cat >>config.log
-
-@@ -94,7 +94,7 @@
- }
-
- # check for libavifile
--function check_libavifile()
-+check_libavifile()
- {
- echo "Checking avifile..."
-
-@@ -103,8 +103,8 @@
- exit 1
- fi
-
-- FILE="`tempfile`"
-- OUTFILE="`tempfile`"
-+ FILE="/tmp/mupen64.configure.1"
-+ OUTFILE="/tmp/mupen64.configure.2"
- echo "#include <avifile.h>" > "$FILE"
- echo "int main(void) { return 0; }" >> "$FILE"
- $CXX -x "c++" -o "$OUTFILE" "$FILE" `avifile-config --libs` `avifile-config --cflags` 2>&1 | cat >>config.log
-@@ -132,7 +132,7 @@
- }
-
- # check for libsdl
--function check_libsdl()
-+check_libsdl()
- {
- echo "Checking SDL..."
-
-@@ -141,8 +141,8 @@
- exit 1
- fi
-
-- FILE="`tempfile`"
-- OUTFILE="`tempfile`"
-+ FILE="/tmp/mupen64.configure.1"
-+ OUTFILE="/tmp/mupen64.configure.2"
- echo "#include \"SDL.h\"" > "$FILE"
- echo "#include <stdio.h>" >> "$FILE"
- echo "int main(void) { if (SDL_Init( 0 ) < 0) { printf( \"SDL_Init(): %s\\n\", SDL_GetError() ); return 1; } return 0; }" >> "$FILE"
-@@ -189,7 +189,8 @@
- echo "Do you want to configure mupen64 to run in a user directory? (Answering no"
- echo "will configure it for multi-users usage with the configuration stored in the"
- echo "HOME directory)"
--read -p "(Y)es or (N)o [Default is: Yes]: " answer
-+#read -p "(Y)es or (N)o [Default is: Yes]: " answer
-+answer="No"
-
- if [ -n "$answer" ]
- then
-@@ -197,7 +198,8 @@
- then
-
- echo "In which prefix do u want to install mupen64 ? [Default: /usr/local/] "
-- read answer
-+# read answer
-+ answer="$PREFIX"
-
- if [ -z $answer ]
- then
-@@ -211,7 +213,8 @@
- # ---- VCR
- echo
- echo "Do you want to enable VCR support (requires avifile and a C++ compiler)?"
--read -p "(Y)es or (N)o [Default is: No]: " answer
-+# read -p "(Y)es or (N)o [Default is: No]: " answer
-+answer="No"
-
- if [ -n "$answer" ]
- then
-@@ -273,7 +276,8 @@
- if [ "$CONFIG_CHANGED" -eq "0" ]; then
- echo "Note: The configuration has not been changed since the last time it was written."
- fi
--read -p "(Y)es or (N)o [Default is: No]: " answer
-+#read -p "(Y)es or (N)o [Default is: No]: " answer
-+answer="No"
-
- if [ -n "$answer" ]
- then
diff --git a/emulators/mupen64-base/files/patch-main_gtk.c b/emulators/mupen64-base/files/patch-main_gtk.c
deleted file mode 100644
index 51dd1c48747b..000000000000
--- a/emulators/mupen64-base/files/patch-main_gtk.c
+++ /dev/null
@@ -1,30 +0,0 @@
---- main/gui_gtk/main_gtk.c.orig Tue Aug 10 22:44:44 2004
-+++ main/gui_gtk/main_gtk.c Tue Aug 10 22:54:47 2004
-@@ -1783,16 +1783,19 @@
- printf( "SIGSEGV in core thread caught:\n" );
- printf( "\terrno = %d (%s)\n", info->si_errno, strerror( info->si_errno ) );
- printf( "\taddress = 0x%08X\n", (unsigned int)info->si_addr );
-+#ifdef SEGV_MAPERR
- switch( info->si_code )
- {
- case SEGV_MAPERR: printf( " address not mapped to object\n" ); break;
- case SEGV_ACCERR: printf( " invalid permissions for mapped object\n" ); break;
- }
-+#endif
- break;
- case SIGILL:
- printf( "SIGILL in core thread caught:\n" );
- printf( "\terrno = %d (%s)\n", info->si_errno, strerror( info->si_errno ) );
- printf( "\taddress = 0x%08X\n", (unsigned int)info->si_addr );
-+#ifdef ILL_ILLOPC
- switch( info->si_code )
- {
- case ILL_ILLOPC: printf( "\tillegal opcode\n" ); break;
-@@ -1804,6 +1807,7 @@
- case ILL_COPROC: printf( "\tcoprocessor error\n" ); break;
- case ILL_BADSTK: printf( "\tinternal stack error\n" ); break;
- }
-+#endif
- break;
- case SIGFPE:
- printf( "SIGFPE in core thread caught:\n" );
diff --git a/emulators/mupen64-base/files/patch-main_main.c b/emulators/mupen64-base/files/patch-main_main.c
new file mode 100644
index 000000000000..09de01dc3d14
--- /dev/null
+++ b/emulators/mupen64-base/files/patch-main_main.c
@@ -0,0 +1,10 @@
+--- main/main.c 2007-10-08 01:28:18.000000000 -0500
++++ main/main.c 2007-10-08 01:28:42.000000000 -0500
+@@ -37,6 +37,7 @@
+
+ #include <stdlib.h>
+ #include <unistd.h>
++#include <dirent.h>
+
+ #include "main.h"
+ #include "guifuncs.h"
diff --git a/emulators/mupen64-base/files/patch-plugin.c b/emulators/mupen64-base/files/patch-plugin.c
deleted file mode 100644
index e42ed1dc2c10..000000000000
--- a/emulators/mupen64-base/files/patch-plugin.c
+++ /dev/null
@@ -1,10 +0,0 @@
---- main/plugin.c.orig Mon Jul 5 22:37:09 2004
-+++ main/plugin.c Tue Aug 10 22:39:28 2004
-@@ -33,6 +33,7 @@
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-+#include <limits.h>
-
- #include "winlnxdefs.h"
- #include "plugin.h"
diff --git a/emulators/mupen64-base/pkg-descr b/emulators/mupen64-base/pkg-descr
index 3b77bcb04913..bf94f2ff6268 100644
--- a/emulators/mupen64-base/pkg-descr
+++ b/emulators/mupen64-base/pkg-descr
@@ -1,5 +1,3 @@
-Mupen64 base
--
Mupen64 is a highly portable Nintendo 64 emulator. It has been developed
on/for Linux originally but has already been ported successfully to other
operating systems. The program can easily be ported to all operating systems
@@ -10,6 +8,3 @@ system. With the correct plugins ("correct" can be computer dependent), it
can achieve nearly perfect graphics and sound in many games.
WWW: http://mupen64.emulation64.com/
-
-- Travis Poppe
-tlp@liquidx.org
diff --git a/emulators/mupen64-base/pkg-message b/emulators/mupen64-base/pkg-message
deleted file mode 100644
index d53470396a22..000000000000
--- a/emulators/mupen64-base/pkg-message
+++ /dev/null
@@ -1,9 +0,0 @@
--------------------------------------------------------------------------------
-If you have installed/upgraded any new plugins or are upgrading from a previous
-version of Mupen64, please note that in order for these changes to take effect,
-you -must- backup and then remove ~/.mupen64 first. After you have removed the
-directory, run 'mupen64' to re-create it. Then, manually copy back your save
-files/other data you need from the backup if necessary.
-
-Enjoy!
--------------------------------------------------------------------------------
diff --git a/emulators/mupen64-base/pkg-plist b/emulators/mupen64-base/pkg-plist
index 189a0b5c2e15..5a91045f9382 100644
--- a/emulators/mupen64-base/pkg-plist
+++ b/emulators/mupen64-base/pkg-plist
@@ -1,25 +1,17 @@
bin/mupen64
-libexec/mupen64
-share/mupen64/doc/compile.sh
-share/mupen64/doc/readme.dvi
-share/mupen64/doc/readme.pdf
-share/mupen64/doc/readme.latex
-share/mupen64/doc/readme.ps
-share/mupen64/lang/french.lng
-share/mupen64/lang/pt_BR.lng
-share/mupen64/lang/german.lng
-share/mupen64/lang/spanish.lng
-share/mupen64/lang/dutch.lng
-share/mupen64/lang/italian.lng
-share/mupen64/lang/english.lng
-share/mupen64/lang/catalan.lng
-share/mupen64/mupen64.ini
-share/mupen64/plugins/empty
-@dirrm share/mupen64/plugins
-@dirrm share/mupen64/lang
-@dirrm share/mupen64/doc
-@dirrm share/mupen64
+bin/mupen64_nogui
+%%DATADIR%%/mupen64.ini
+%%DATADIR%%/lang/catalan.lng
+%%DATADIR%%/lang/dutch.lng
+%%DATADIR%%/lang/english.lng
+%%DATADIR%%/lang/french.lng
+%%DATADIR%%/lang/german.lng
+%%DATADIR%%/lang/italian.lng
+%%DATADIR%%/lang/pt_BR.lng
+%%DATADIR%%/lang/spanish.lng
+%%PORTDOCS%%%%DOCSDIR%%/README.vcr
%%PORTDOCS%%%%DOCSDIR%%/whatsnew.txt
%%PORTDOCS%%%%DOCSDIR%%/readme.pdf
-%%PORTDOCS%%%%DOCSDIR%%/readme.ps
+@dirrm %%DATADIR%%/lang
+@dirrmtry %%DATADIR%%
%%PORTDOCS%%@dirrm %%DOCSDIR%%