wip/mupen64plus in progress

Demelier David <[email protected]>
Newsgroups gmane.os.netbsd.devel.pkgsrc.wip.general
Message-ID <[email protected]>
Hi pkgsrc-wip,
   I'm trying to make a package for mupen64plus.

   The old wip/mupen64 is completely deprecated and the software is no longer
   supported, that's why I'm writing the Makefile for the new mupen64plus.

   It's a little painful because there is a lot of flags according to the
   architecture and the OS and for the moment I just have netbsd-i386 so I can't
   try it on linux + pkgsrc nor netbsd-amd64.

   That's why I need your help to finish it and the major problem is fix the
   video-rice issue (see attachement.). I give you what I done for the moment.

   King regards.

-- 
Demelier David

()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments

------------------------------------------------------------------------------
SOLARIS 10 is the OS for Data Centers - provides features such as DTrace,
Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW
http://p.sf.net/sfu/solaris-dev2dev

_______________________________________________
pkgsrc-wip-discuss mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pkgsrc-wip-discuss
mupen.patch (text/plain, 10.9 KB)
--- /dev/null	2010-02-16 19:41:24.000000000 +0000
+++ Makefile	2010-02-16 19:37:27.000000000 +0000
@@ -0,0 +1,33 @@
+DISTNAME= mupen64plus-bundle-src-${VERSION}
+PKGNAME= mupen64plus-${VERSION}
+VERSION= 1.99.3
+CATEGORIES= emulators
+MASTER_SITES= http://mupen64plus.googlecode.com/files/
+EXTRACT_SUFX= .tar.gz
+
+USE_LANGUAGES+=	c c++
+USE_TOOLS+= gmake pkg-config
+
+# fix the core makefile.
+SUBST_CLASSES+=   core
+SUBST_STAGE.core= pre-build
+SUBST_MESSAGE.core= Fixing mupen64plus-core makefile
+SUBST_FILES.core= ${WRKSRC}/source/mupen64plus-core/projects/unix/Makefile
+SUBST_SED.core+=  -e 's,@LOCALBASE@,${LOCALBASE},'
+
+# fix the video makefile.
+SUBST_CLASSES+=   video
+SUBST_STAGE.video= pre-build
+SUBST_MESSAGE.video= Fixing mupen64plus-video-rice makefile
+SUBST_FILES.video= ${WRKSRC}/source/mupen64plus-video-rice/projects/unix/Makefile
+SUBST_SED.video+=  -e 's,@LOCALBASE@,${LOCALBASE},'
+
+do-build:
+	cd ${WRKSRC}; sh m64p_build.sh
+
+.include "../../x11/gtk2/buildlink3.mk"
+.include "../../audio/libsamplerate/buildlink3.mk"
+.include "../../devel/SDL/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../graphics/png/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
--- /dev/null	2010-02-16 19:41:24.000000000 +0000
+++ distinfo	2010-02-16 19:40:36.000000000 +0000
@@ -0,0 +1,12 @@
+$NetBSD$
+
+SHA1 (mupen64plus-bundle-src-1.99.3.tar.gz) = 506c5bccaff73a7d671f18b2e51fa64f7675bcaf
+RMD160 (mupen64plus-bundle-src-1.99.3.tar.gz) = 850dfd67b7db289f97645f595d5cb4d0e85ca79f
+Size (mupen64plus-bundle-src-1.99.3.tar.gz) = 1464315 bytes
+SHA1 (patch-aa) = 5ca6c237b7ac0418eceae9d30a5a34cec67f33c2
+SHA1 (patch-ab) = 148393e8e88c0358e37a8076a99db3cf40f444be
+SHA1 (patch-ac) = 3452c8aa3c7963afbb117a549a7db53409d0f49a
+SHA1 (patch-ad) = d80bc1f2af1bb7c4db1b6f3e9111f3dd19bf77f5
+SHA1 (patch-ae) = 7715954fb131a64bf4bfe3cf90200b0b5abafb71
+SHA1 (patch-af) = c46b1b603e9efdf12d01fa8f868cb2e0c6b122c6
+SHA1 (patch-ag) = e846fe3efb8c3f7c24354bcc8e238f8d0f056b82
--- /dev/null	2010-02-16 19:48:55.000000000 +0000
+++ patches/patch-aa	2010-02-16 15:53:08.000000000 +0000
@@ -0,0 +1,59 @@
+--- m64p_build.sh.orig	2010-02-16 15:42:51.000000000 +0000
++++ m64p_build.sh	2010-02-16 15:46:17.000000000 +0000
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+ # *   Mupen64plus - m64p_build.sh                                           *
+ # *   Mupen64Plus homepage: http://code.google.com/p/mupen64plus/           *
+@@ -26,8 +26,8 @@
+ mkdir -p test
+ 
+ echo "************************************ Building core library"
+-make -C source/mupen64plus-core/projects/unix clean
+-make -C source/mupen64plus-core/projects/unix all $@
++gmake -C source/mupen64plus-core/projects/unix clean
++gmake -C source/mupen64plus-core/projects/unix all $@
+ cp source/mupen64plus-core/projects/unix/libmupen64plus.so.2.* ./test/
+ mv source/mupen64plus-core/projects/unix/libmupen64plus.so.2 ./test/
+ cp source/mupen64plus-core/data/mupen64plus.ini ./test/
+@@ -36,29 +36,29 @@
+ gunzip --stdout source/mupen64plus-core/roms/mupen64plus.v64.gz > ./test/m64p_test_rom.v64
+ 
+ echo "************************************ Building console front-end"
+-make -C source/mupen64plus-ui-console/projects/unix clean
+-make -C source/mupen64plus-ui-console/projects/unix all $@
++gmake -C source/mupen64plus-ui-console/projects/unix clean
++gmake -C source/mupen64plus-ui-console/projects/unix all $@
+ cp source/mupen64plus-ui-console/projects/unix/mupen64plus ./test
+ 
+ echo "************************************ Building audio plugin"
+-make -C source/mupen64plus-audio-sdl/projects/unix clean
+-make -C source/mupen64plus-audio-sdl/projects/unix all $@
++gmake -C source/mupen64plus-audio-sdl/projects/unix clean
++gmake -C source/mupen64plus-audio-sdl/projects/unix all $@
+ cp source/mupen64plus-audio-sdl/projects/unix/mupen64plus-audio-sdl.so ./test
+ 
+ echo "************************************ Building input plugin"
+-make -C source/mupen64plus-input-sdl/projects/unix clean
+-make -C source/mupen64plus-input-sdl/projects/unix all $@
++gmake -C source/mupen64plus-input-sdl/projects/unix clean
++gmake -C source/mupen64plus-input-sdl/projects/unix all $@
+ cp source/mupen64plus-input-sdl/projects/unix/mupen64plus-input-sdl.so ./test
+ cp source/mupen64plus-input-sdl/data/InputAutoCfg.ini ./test/
+ 
+ echo "************************************ Building RSP plugin"
+-make -C source/mupen64plus-rsp-hle/projects/unix clean
+-make -C source/mupen64plus-rsp-hle/projects/unix all $@
++gmake -C source/mupen64plus-rsp-hle/projects/unix clean
++gmake -C source/mupen64plus-rsp-hle/projects/unix all $@
+ cp source/mupen64plus-rsp-hle/projects/unix/mupen64plus-rsp-hle.so ./test
+ 
+ echo "************************************ Building video plugin"
+-make -C source/mupen64plus-video-rice/projects/unix clean
+-make -C source/mupen64plus-video-rice/projects/unix all $@
++gmake -C source/mupen64plus-video-rice/projects/unix clean
++gmake -C source/mupen64plus-video-rice/projects/unix all $@
+ cp source/mupen64plus-video-rice/projects/unix/mupen64plus-video-rice.so ./test
+ cp source/mupen64plus-video-rice/data/RiceVideoLinux.ini ./test/
+ 
--- /dev/null	2010-02-16 19:48:55.000000000 +0000
+++ patches/patch-ab	2010-02-16 17:38:50.000000000 +0000
@@ -0,0 +1,27 @@
+--- source/mupen64plus-core/projects/unix/Makefile.orig	2010-02-14 02:46:51.000000000 +0100
++++ source/mupen64plus-core/projects/unix/Makefile	2010-02-16 18:38:22.000000000 +0100
+@@ -39,6 +39,9 @@
+ ifeq ("$(UNAME)","GNU/kFreeBSD")
+   OS = FREEBSD
+ endif
++ifeq ("$(UNAME)","NetBSD")
++  OS = NETBSD
++endif
+ ifeq ("$(OS)","NONE")
+   $(error OS type "$(UNAME)" not supported.  Please file bug report at 'http://code.google.com/p/mupen64plus/issues')
+ endif
+@@ -98,6 +101,14 @@
+   LDFLAGS += -Wl,-Bsymbolic -shared -Wl,-export-dynamic -Wl,-soname,$(SONAME)
+   LIBS += -L${LOCALBASE}/lib -lGL -lGLU
+ endif
++ifeq ($(OS), NETBSD)
++  TARGET = libmupen64plus.so.2.0.0
++  SONAME = libmupen64plus.so.2
++  CFLAGS += -I@LOCALBASE@/include -I../../src/
++  LDFLAGS += -Wl,-Bsymbolic -shared -Wl,-export-dynamic -Wl,-soname,$(SONAME)
++  LIBS = -L@LOCALBASE@/lib -lGL -lGLU -lpng -lz -lm -lfreetype
++endif
++
+ ifeq ($(OS), LINUX)
+   TARGET = libmupen64plus.so.2.0.0
+   SONAME = libmupen64plus.so.2
--- /dev/null	2010-02-16 19:48:55.000000000 +0000
+++ patches/patch-ac	2010-02-16 17:48:41.000000000 +0000
@@ -0,0 +1,23 @@
+--- source/mupen64plus-ui-console/projects/unix/Makefile.orig	2010-02-16 18:46:25.000000000 +0100
++++ source/mupen64plus-ui-console/projects/unix/Makefile	2010-02-16 18:48:00.000000000 +0100
+@@ -35,6 +35,9 @@
+ ifeq ("$(UNAME)","FreeBSD")
+   OS = FREEBSD
+ endif
++ifeq ("$(UNAME)","NetBSD")
++  OS = NETBSD
++endif
+ ifeq ("$(UNAME)","GNU/kFreeBSD")
+   OS = FREEBSD
+ endif
+@@ -111,6 +114,10 @@
+   LDFLAGS += -m32 -m elf_i386
+ endif
+ 
++ifeq ($(OS), NETBSD)
++  LDFLAGS = -lpthread
++endif
++
+ # set mupen64plus core API header path
+ ifneq ("$(APIDIR)","")
+   CFLAGS += "-I$(APIDIR)"
--- /dev/null	2010-02-16 19:48:55.000000000 +0000
+++ patches/patch-ad	2010-02-16 18:55:42.000000000 +0000
@@ -0,0 +1,35 @@
+--- source/mupen64plus-audio-sdl/projects/unix/Makefile.orig	2010-02-14 02:46:54.000000000 +0100
++++ source/mupen64plus-audio-sdl/projects/unix/Makefile	2010-02-16 19:54:40.000000000 +0100
+@@ -44,6 +44,11 @@
+   SHARED = -shared
+   SO_EXTENSION = so
+ endif
++ifeq ("$(UNAME)","NetBSD")
++  OS = NETBSD
++  SHARED = -shared
++  SO_EXTENSION = so
++endif
+ ifeq ("$(UNAME)","GNU/kFreeBSD")
+   OS = FREEBSD
+   SHARED = -shared
+@@ -143,6 +148,10 @@
+     CFLAGS  += $(shell sdl-config --cflags)
+     LDFLAGS += $(shell sdl-config --libs)
+ endif
++ifeq ($(OS),NETBSD)
++    CFLAGS  += $(shell sdl-config --cflags)
++    LDFLAGS = $(shell sdl-config --libs)
++endif
+ 
+ # test for presence of libsamplerate
+ ifneq ($(strip $(shell pkg-config samplerate --modversion 2> /dev/null)),)
+@@ -189,6 +198,9 @@
+ ifeq ($(OS),OSX)
+   STRIP	?= strip -x 
+ endif
++ifeq ($(OS),NETBSD)
++  STRIP ?= strip -s
++endif
+ 
+ # set special flags for given Makefile parameters
+ ifeq ($(DEBUG),1)
--- /dev/null	2010-02-16 19:48:55.000000000 +0000
+++ patches/patch-ae	2010-02-16 19:09:19.000000000 +0000
@@ -0,0 +1,25 @@
+--- source/mupen64plus-input-sdl/projects/unix/Makefile.orig	2010-02-16 20:05:40.000000000 +0100
++++ source/mupen64plus-input-sdl/projects/unix/Makefile	2010-02-16 20:08:08.000000000 +0100
+@@ -43,6 +43,11 @@
+   SO_EXTENSION = so
+   SHARED = -shared
+ endif
++ifeq ("$(UNAME)","NetBSD")
++  OS = NETBSD
++  SO_EXTENSION = so
++  SHARED = -shared
++endif
+ ifeq ("$(UNAME)","GNU/kFreeBSD")
+   OS = FREEBSD
+   SO_EXTENSION = so
+@@ -136,6 +141,10 @@
+     CFLAGS  += `${SDL_CONFIG} --cflags`
+     LDFLAGS += `${SDL_CONFIG} --libs`
+ endif
++ifeq ($(OS),NETBSD)
++    CFLAGS  += $(shell sdl-config --cflags)
++    LDFLAGS = $(shell sdl-config --libs)
++endif
+ ifeq ("$(UNAME)","Darwin")
+     CFLAGS  += $(shell sdl-config --cflags)
+     # sdl-config on mac screws up when we're trying to build a library and not an executable
--- /dev/null	2010-02-16 19:48:55.000000000 +0000
+++ patches/patch-af	2010-02-16 19:13:47.000000000 +0000
@@ -0,0 +1,25 @@
+--- source/mupen64plus-rsp-hle/projects/unix/Makefile.orig	2010-02-16 20:10:31.000000000 +0100
++++ source/mupen64plus-rsp-hle/projects/unix/Makefile	2010-02-16 20:12:44.000000000 +0100
+@@ -44,6 +44,11 @@
+   SO_EXTENSION = so
+   SHARED = -shared
+ endif
++ifeq ("$(UNAME)","NetBSD")
++  OS = NETBSD
++  SO_EXTENSION = so
++  SHARED = -shared
++endif
+ ifeq ("$(UNAME)","GNU/kFreeBSD")
+   OS = FREEBSD
+   SO_EXTENSION = so
+@@ -100,6 +105,10 @@
+   LDFLAGS += -m32 -m elf_i386
+ endif
+ 
++ifeq ($(OS),NETBSD)
++  LDFLAGS = #
++endif
++
+ # set special flags per-system
+ ifeq ($(OS), LINUX)
+   ifeq ($(CPU), X86)
--- /dev/null	2010-02-16 19:48:55.000000000 +0000
+++ patches/patch-ag	2010-02-16 19:40:14.000000000 +0000
@@ -0,0 +1,40 @@
+--- source/mupen64plus-video-rice/projects/unix/Makefile.orig	2010-02-16 19:15:08.000000000 +0000
++++ source/mupen64plus-video-rice/projects/unix/Makefile	2010-02-16 19:29:08.000000000 +0000
+@@ -44,6 +44,11 @@
+   SO_EXTENSION = so
+   SHARED = -shared
+ endif
++ifeq ("$(UNAME)","NetBSD")
++  OS = NETBSD
++  SO_EXTENSION = so
++  SHARED = -shared
++endif
+ ifeq ("$(UNAME)","GNU/kFreeBSD")
+   OS = FREEBSD
+   SO_EXTENSION = so
+@@ -105,6 +110,14 @@
+ ifeq ($(OS),FREEBSD)
+   LDFLAGS += -lGL
+ endif
++
++# 
++# TODO: For the moment I don't made a SUBST to the X11 headers.
++#
++ifeq ($(OS), NETBSD)
++  CFLAGS = -I@LOCALBASE@/include -I /usr/X11R7/include/
++  LDFLAGS = -lpng -LGL
++endif
+ ifeq ($(OS), LINUX)
+   LDFLAGS += -lGL
+   ifeq ($(CPU), X86)
+@@ -138,6 +151,10 @@
+     CFLAGS  += `${SDL_CONFIG} --cflags`
+     LDFLAGS += `${SDL_CONFIG} --libs`
+ endif
++ifeq ($(OS),NETBSD)
++    CFLAGS  += $(shell sdl-config --cflags)
++    LDFLAGS += $(shell sdl-config --libs)
++endif
+ ifeq ($(OS),OSX)
+     CFLAGS  += $(shell sdl-config --cflags) -DPIC
+     # sdl-config on mac screws up when we're trying to build a library and not an executable
errorlog.txt (text/plain, 2.8 KB)
g++ -o _obj/Render.o -I/usr/pkg/include -I /usr/X11R7/include/ -I/usr/pkg/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -D_THREAD_SAFE -I../../../mupen64plus-core/src/api -c ../../src/Render.cpp
In file included from ../../src/Render.cpp:20:
../../src/osal_preproc.h:92:25: warning: no newline at end of file
In file included from ../../src/liblinux/BMGImage.h:29,
                 from ../../src/liblinux/pngrw.h:35,
                 from ../../src/liblinux/BMGLibPNG.h:36,
                 from ../../src/Render.cpp:28:
../../src/liblinux/../osal_preproc.h:92:25: warning: no newline at end of file
../../src/liblinux/BMGImage.h:62: warning: #pragma pack(push[, id], <n>) is not supported on this target
../../src/liblinux/BMGImage.h:77: warning: #pragma pack(pop[, id], <n>) is not supported on this target
g++ -o _obj/RenderBase.o -I/usr/pkg/include -I /usr/X11R7/include/ -I/usr/pkg/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -D_THREAD_SAFE -I../../../mupen64plus-core/src/api -c ../../src/RenderBase.cpp
In file included from ../../src/RenderBase.cpp:23:
../../src/osal_preproc.h:92:25: warning: no newline at end of file
../../src/RenderBase.cpp: In function 'void SSEVec3Transform(int)':
../../src/RenderBase.cpp:478: error: unknown register name '%xmm7' in 'asm'
../../src/RenderBase.cpp:478: error: unknown register name '%xmm6' in 'asm'
../../src/RenderBase.cpp:478: error: unknown register name '%xmm5' in 'asm'
../../src/RenderBase.cpp:478: error: unknown register name '%xmm4' in 'asm'
../../src/RenderBase.cpp:478: error: unknown register name '%xmm1' in 'asm'
../../src/RenderBase.cpp:478: error: unknown register name '%xmm0' in 'asm'
../../src/RenderBase.cpp: In function 'void SSEVec3TransformNormal()':
../../src/RenderBase.cpp:617: error: unknown register name '%xmm7' in 'asm'
../../src/RenderBase.cpp:617: error: unknown register name '%xmm6' in 'asm'
../../src/RenderBase.cpp:617: error: unknown register name '%xmm5' in 'asm'
../../src/RenderBase.cpp:617: error: unknown register name '%xmm4' in 'asm'
../../src/RenderBase.cpp:617: error: unknown register name '%xmm1' in 'asm'
../../src/RenderBase.cpp:617: error: unknown register name '%xmm0' in 'asm'
../../src/RenderBase.cpp: In function 'unsigned int SSELightVert()':
../../src/RenderBase.cpp:1266: error: unknown register name '%xmm5' in 'asm'
../../src/RenderBase.cpp:1266: error: unknown register name '%xmm4' in 'asm'
../../src/RenderBase.cpp:1266: error: unknown register name '%xmm3' in 'asm'
../../src/RenderBase.cpp:1266: error: unknown register name '%xmm1' in 'asm'
../../src/RenderBase.cpp:1266: error: unknown register name '%xmm0' in 'asm'
gmake: *** [_obj/RenderBase.o] Error 1
gmake: Leaving directory `/usr/pkgsrc/wip/mupen64plus/work/mupen64plus-bundle-src-1.99.3/source/mupen64plus-video-rice/projects/unix'
*** Error code 2
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.