skip to content
..., etc.
User Tools
Log In
Site Tools
Search
Tools
Show page
Old revisions
Backlinks
Recent Changes
Media Manager
Sitemap
Log In
>
Recent Changes
Media Manager
Sitemap
Trace:
mspacman:pi
<code> pi@pi ~/src/sdlmame0136 $ make Compiling src/emu/cpu/m68000/m68kmake.c... /bin/sh: 1: sdl-config: not found Package gtk+-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtk+-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gtk+-2.0' found Package gconf-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gconf-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gconf-2.0' found ^Cmake: *** [obj/sdl/mame/emu/cpu/m68000/m68kmake.o] Interrupt pi@pi ~/src/sdlmame0136 $ sudo apt-get install libsdl1.2-dev libsdl-gfx1.2-dev Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: libasound2-dev libavahi-client-dev libavahi-common-dev libcaca-dev libdbus-1-dev libdirectfb-dev libdirectfb-extra libelf1 libgl1-mesa-dev libglib2.0-bin libglib2.0-dev libglu1-mesa libglu1-mesa-dev libjpeg8-dev libpcre3-dev libpcrecpp0 libpng12-dev libpthread-stubs0 libpthread-stubs0-dev libpulse-dev libpulse-mainloop-glib0 libsdl-gfx1.2-4 libslang2-dev libts-dev libx11-dev libx11-doc libxau-dev libxcb1-dev libxdmcp-dev libxext-dev mesa-common-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev xorg-sgml-doctools xtrans-dev Suggested packages: libasound2-doc libglib2.0-doc libsdl-gfx1.2-doc libxcb-doc libxext-doc The following NEW packages will be installed: libasound2-dev libavahi-client-dev libavahi-common-dev libcaca-dev libdbus-1-dev libdirectfb-dev libdirectfb-extra libelf1 libgl1-mesa-dev libglib2.0-bin libglib2.0-dev libglu1-mesa libglu1-mesa-dev libjpeg8-dev libpcre3-dev libpcrecpp0 libpng12-dev libpthread-stubs0 libpthread-stubs0-dev libpulse-dev libpulse-mainloop-glib0 libsdl-gfx1.2-4 libsdl-gfx1.2-dev libsdl1.2-dev libslang2-dev libts-dev libx11-dev libx11-doc libxau-dev libxcb1-dev libxdmcp-dev libxext-dev mesa-common-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev xorg-sgml-doctools xtrans-dev 0 upgraded, 39 newly installed, 0 to remove and 0 not upgraded. Need to get 14.6 MB of archives. After this operation, 44.4 MB of additional disk space will be used. Do you want to continue [Y/n]? y pi@pi ~/src/sdlmame0136 $ make Compiling src/emu/cpu/m68000/m68kmake.c... Package gtk+-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtk+-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gtk+-2.0' found Package gconf-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gconf-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gconf-2.0' found ^Cmake: *** [obj/sdl/mame/emu/cpu/m68000/m68kmake.o] Interrupt pi@pi ~/src/sdlmame0136 $ sudo apt-cache search gtk+-2.0 gir1.2-gtk-2.0 - GTK+ graphical user interface library -- gir bindings pi@pi ~/src/sdlmame0136 $ cat /etc/issue Raspbian GNU/Linux 7 \n \l pi@pi ~/src/sdlmame0136 $ sudo apt-cache search gtk+2.0 gtk2-engines-xfce - GTK+-2.0 theme engine for Xfce gtk2.0-examples - example files for GTK+ 2.0 lazarus-ide-gtk2-0.9.30.4 - IDE for Free Pascal - GTK+ version lcl-gtk2-0.9.30.4 - Lazarus Components Library - GTK+ backend libgirara-gtk2-0 - library for minimalistic user interfaces (shared libraries, GTK+ 2) libgtk2.0-0 - GTK+ graphical user interface library libgtk2.0-0-dbg - GTK+ libraries and debugging symbols libgtk2.0-bin - programs for the GTK+ graphical user interface library libgtk2.0-cil - CLI binding for the GTK+ toolkit 2.12 libgtk2.0-cil-dev - CLI binding for the GTK+ toolkit 2.12 libgtk2.0-common - common files for the GTK+ graphical user interface library libgtk2.0-dev - development files for the GTK+ library libgtk2.0-doc - documentation for the GTK+ graphical user interface library libgwengui-gtk2-0 - Gwenhywfar GUI implementation for GTK2 ^Cpi@pi ~/src/sdlmame0136 $ sudo apt-get install libgtk2.0-dev Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: autopoint debhelper gettext gir1.2-atk-1.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-pango-1.0 html2text intltool-debian libatk1.0-dev libcairo-script-interpreter2 libcairo2-dev libexpat1-dev libfontconfig1-dev libgdk-pixbuf2.0-dev libgettextpo0 libice-dev libmail-sendmail-perl libpango1.0-dev libpixman-1-dev libsm-dev libsys-hostname-long-perl libunistring0 libxcb-render0-dev libxcb-shm0-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxml2-utils libxrandr-dev libxrender-dev po-debconf x11proto-composite-dev x11proto-damage-dev x11proto-fixes-dev x11proto-randr-dev x11proto-render-dev x11proto-xinerama-dev Suggested packages: dh-make gettext-doc libcairo2-doc libgtk2.0-doc libice-doc libpango1.0-doc imagemagick libsm-doc libmail-box-perl The following NEW packages will be installed: autopoint debhelper gettext gir1.2-atk-1.0 gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-pango-1.0 html2text intltool-debian libatk1.0-dev libcairo-script-interpreter2 libcairo2-dev libexpat1-dev libfontconfig1-dev libgdk-pixbuf2.0-dev libgettextpo0 libgtk2.0-dev libice-dev libmail-sendmail-perl libpango1.0-dev libpixman-1-dev libsm-dev libsys-hostname-long-perl libunistring0 libxcb-render0-dev libxcb-shm0-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxfixes-dev libxft-dev libxi-dev libxinerama-dev libxml2-utils libxrandr-dev libxrender-dev po-debconf x11proto-composite-dev x11proto-damage-dev x11proto-fixes-dev x11proto-randr-dev x11proto-render-dev x11proto-xinerama-dev 0 upgraded, 43 newly installed, 0 to remove and 0 not upgraded. Need to get 11.7 MB of archives. After this operation, 38.0 MB of additional disk space will be used. Do you want to continue [Y/n]? y Setting up libmail-sendmail-perl (0.79.16-1) ... pi@pi ~/src/sdlmame0136 $ make Compiling src/emu/cpu/m68000/m68kmake.c... Package gconf-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gconf-2.0.pc' to the PKG_CONFIG_PATH environment variable No package 'gconf-2.0' found </code> Commented out those two warning types from the makefile since I don't really know what to do with them. <code> pi@pi ~/src/sdlmame0136 $ make Compiling src/osd/sdl/strconv.c... Compiling src/osd/sdl/sdldir.c... Compiling src/osd/sdl/sdlfile.c... Compiling src/osd/sdl/sdlos_unix.c... Compiling src/osd/sdl/sdlsync_tc.c... Compiling src/osd/sdl/sdlwork.c... src/osd/sdl/sdlwork.c: In function ‘osd_work_queue_wait’: src/osd/sdl/sdlwork.c:272:6: error: implicit declaration of function ‘osd_yield_processor’ [-Werror=implicit-function-declaration] cc1: all warnings being treated as errors make: *** [obj/sdl/mame/osd/sdl/sdlwork.o] Error 1 pi@pi ~/src/sdlmame0136 $ grep -r osd_work_queue_wait src/osd/windows/winwork.c:// osd_work_queue_wait src/osd/windows/winwork.c:int osd_work_queue_wait(osd_work_queue *queue, osd_ticks_t timeout) src/osd/osdcore.h: osd_work_queue_wait: wait for the queue to be empty src/osd/osdcore.h:int osd_work_queue_wait(osd_work_queue *queue, osd_ticks_t timeout); src/osd/sdl/sdlwork.c:// osd_work_queue_wait src/osd/sdl/sdlwork.c:int osd_work_queue_wait(osd_work_queue *queue, osd_ticks_t timeout) src/osd/sdl/window.c: while (!osd_work_queue_wait(work_queue, osd_ticks_per_second()*10)) src/osd/sdl/window.c: osd_work_queue_wait(work_queue, 100000); src/osd/osdmini/miniwork.c:// osd_work_queue_wait src/osd/osdmini/miniwork.c:int osd_work_queue_wait(osd_work_queue *queue, osd_ticks_t timeout) src/emu/video/poly.c: osd_work_queue_wait(poly->queue, osd_ticks_per_second() * 100); src/emu/sound/discrete.c: osd_work_queue_wait(info->queue, osd_ticks_per_second()*10); pi@pi ~/src/sdlmame0136 $ vi src/osd/sdl/sdlwork.c pi@pi ~/src/sdlmame0136 $ vi src/osd/sdl/sdlwork.c pi@pi ~/src/sdlmame0136 $ grep SDLMAME_NOASM * grep: artwork: Is a directory grep: cfg: Is a directory grep: comments: Is a directory grep: diff: Is a directory grep: docs: Is a directory grep: ini: Is a directory grep: keymaps: Is a directory grep: nvram: Is a directory grep: obj: Is a directory grep: roms: Is a directory grep: src: Is a directory pi@pi ~/src/sdlmame0136 $ vi src/osd/sdl/sdlwork.c pi@pi ~/src/sdlmame0136 $ grep -r SDLMAME_NOASM * src/osd/sdl/sdlmain.c: MACRO_VERBOSE(SDLMAME_NOASM); src/osd/sdl/sdlwork.c:#if defined(SDLMAME_NOASM) src/osd/sdl/sdlwork.c:#endif // SDLMAME_NOASM src/osd/sdl/sdl.mak:DEFS += -DSDLMAME_NOASM ^C pi@pi ~/src/sdlmame0136 $ vi src/osd/sdl/sdl.mak pi@pi ~/src/sdlmame0136 $ grep NOASM * grep: artwork: Is a directory grep: cfg: Is a directory grep: comments: Is a directory grep: diff: Is a directory grep: docs: Is a directory grep: ini: Is a directory grep: keymaps: Is a directory grep: nvram: Is a directory grep: obj: Is a directory grep: roms: Is a directory SDLMAME.txt:For non-x86/x64/PowerPC targets (e.g. ARM or MIPS) you must set "NOASM=1". grep: src: Is a directory pi@pi ~/src/sdlmame0136 $ vi makefile pi@pi ~/src/sdlmame0136 $ make Compiling src/osd/sdl/sdlwork.c... Compiling src/osd/sdl/debugwin.c... src/osd/sdl/debugwin.c: In function ‘memorywin_new’: src/osd/sdl/debugwin.c:470:4: error: implicit declaration of function ‘gtk_combo_box_append_text’ [-Werror=implicit-function-declaration] cc1: all warnings being treated as errors make: *** [obj/sdl/mame/osd/sdl/debugwin.o] Error 1 pi@pi ~/src/sdlmame0136 $ vi src/osd/sdl/debugwin.c pi@pi ~/src/sdlmame0136 $ grep -r NO_DEBUGGER src/osd/sdl/debugwin.c:#if !defined(NO_DEBUGGER) src/osd/sdl/osdsdl.h: - define NO_DEBUGGER in sdl.mak src/osd/sdl/osdsdl.h:#if defined(NO_DEBUGGER) src/osd/sdl/sdl.mak:DEFS += -DNO_AFFINITY_NP -DNO_DEBUGGER -DSDLMAME_X11 -DSDLMAME_UNIX src/osd/sdl/sdl.mak:DEFS += -DSDLMAME_NO_X11 -DNO_DEBUGGER src/osd/sdl/sdl.mak:DEFS += -DSDLMAME_WIN32 -DNO_DEBUGGER -DX64_WINDOWS_ABI src/osd/sdl/sdl.mak:DEFS += -DSDLMAME_OS2 -DNO_DEBUGGER ^C pi@pi ~/src/sdlmame0136 $ vi src/osd/sdl/sdl.mak </code> Right- so eventually this started failing GTK errors- I turned my attention to modifying the roms of mspacman.zip to work with the old 0.37b5 version in mame4all, which did work- renaming mspacmab & adding a couple of roms from pacman.zip got it going. Trying to see if a slight change to the 37b5 code can be modified to work with the other mspacman roms, introduced in 037b16. The differences may only be in the src/drivers/pacman.c file, so I overwrote that file and ran a make- which will take forever. Time to investigate in a cross-compile VM. Make failed, there's some headers that are different, driver.h for one. WRT to cross-compiling, I downloaded a virtual box debian 7 VM, and am following a guide here: [[http://www.kitware.com/blog/home/post/426|http://www.kitware.com/blog/home/post/426]] along with a tip to install subversion to get things working with elibc here [[http://brains.witsmith.com/2012/10/building-cross-compiling-toolchain-for.html|http://brains.witsmith.com/2012/10/building-cross-compiling-toolchain-for.html]]. Attempt at more GTK issue resolution: <code> pi@pi ~/src/sdlmame0136 $ make Compiling src/osd/sdl/dview.c... src/osd/sdl/dview.c: In function ‘dview_realize’: src/osd/sdl/dview.c:138:2: error: implicit declaration of function ‘GTK_OBJECT_FLAGS’ [-Werror=implicit-function-declaration] src/osd/sdl/dview.c:138:2: error: lvalue required as left operand of assignment src/osd/sdl/dview.c: In function ‘dview_size_allocate’: src/osd/sdl/dview.c:216:2: error: implicit declaration of function ‘GTK_WIDGET_REALIZED’ [-Werror=implicit-function-declaration] cc1: all warnings being treated as errors make: *** [obj/sdl/mame/osd/sdl/dview.o] Error 1 pi@pi ~/src/sdlmame0136 $ grep -r GTK_OBJECT_FLAGS * pi@pi ~/src/sdlmame0136 $ grep -r GTK_WIDGET_REALIZED * src/osd/sdl/dview.c: if(GTK_WIDGET_REALIZED(wdv)) pi@pi ~/src/sdlmame0136 $ vi src/osd/sdl/dview.c pi@pi ~/src/sdlmame0136 $ make Compiling src/osd/sdl/dview.c... src/osd/sdl/dview.c: In function ‘dview_size_allocate’: src/osd/sdl/dview.c:217:2: error: implicit declaration of function ‘GTK_WIDGET_REALIZED’ [-Werror=implicit-function-declaration] cc1: all warnings being treated as errors make: *** [obj/sdl/mame/osd/sdl/dview.o] Error 1 </code> From: https://developer.gnome.org/gtk2/stable/GtkWidget.html#gtk-widget-set-realized GTK_WIDGET_SET_FLAGS is deprecated. Replaced GTK_WIDGET_SET_FLAGS with: <code> /* GTK_WIDGET_SET_FLAGS(wdv, GTK_REALIZED); */ gtk_widget_set_realized(wdv, TRUE); </code> Replaced: <code> /* if(GTK_WIDGET_REALIZED(wdv)) */ if(gtk_widget_get_realized(wdv)) </code> <code> pi@pi ~/src/sdlmame0136 $ make Compiling src/osd/sdl/dview.c... src/osd/sdl/dview.c: In function ‘dview_vadj_changed’: src/osd/sdl/dview.c:122:6: error: function call has aggregate value [-Werror=aggregate-return] src/osd/sdl/dview.c: In function ‘dview_hadj_changed’: src/osd/sdl/dview.c:107:6: error: function call has aggregate value [-Werror=aggregate-return] src/osd/sdl/dview.c: In function ‘dview_update’: src/osd/sdl/dview.c:390:16: error: function call has aggregate value [-Werror=aggregate-return] src/osd/sdl/dview.c: In function ‘dview_size_allocate’: src/osd/sdl/dview.c:170:6: error: function call has aggregate value [-Werror=aggregate-return] src/osd/sdl/dview.c:171:7: error: function call has aggregate value [-Werror=aggregate-return] src/osd/sdl/dview.c: In function ‘dview_size_request’: src/osd/sdl/dview.c:288:7: error: function call has aggregate value [-Werror=aggregate-return] src/osd/sdl/dview.c: In function ‘dview_expose’: src/osd/sdl/dview.c:16:8: error: function call has aggregate value [-Werror=aggregate-return] cc1: all warnings being treated as errors make: *** [obj/sdl/mame/osd/sdl/dview.o] Error 1 </code> Removed that flag from the makefile. <code> Compiling src/osd/sdl/debug-intf.c... src/osd/sdl/debug-intf.c: In function ‘create_debugmain’: src/osd/sdl/debug-intf.c:272:3: error: implicit declaration of function ‘GTK_OBJECT_FLAGS’ [-Werror=implicit-function-declaration] src/osd/sdl/debug-intf.c:272:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c:273:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c:284:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c:285:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c:291:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c:292:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c: In function ‘create_memorywin’: src/osd/sdl/debug-intf.c:663:3: error: implicit declaration of function ‘gtk_combo_box_new_text’ [-Werror=implicit-function-declaration] src/osd/sdl/debug-intf.c:663:8: error: assignment makes pointer from integer without a cast [-Werror] src/osd/sdl/debug-intf.c:672:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c:673:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c: In function ‘create_disasmwin’: src/osd/sdl/debug-intf.c:999:7: error: assignment makes pointer from integer without a cast [-Werror] src/osd/sdl/debug-intf.c:1008:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c:1009:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c: In function ‘create_logwin’: src/osd/sdl/debug-intf.c:1276:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c:1277:3: error: lvalue required as left operand of assignment cc1: all warnings being treated as errors make: *** [obj/sdl/mame/osd/sdl/debug-intf.o] Error 1 </code> Modified other instances with what I think may be right? <code> registers = dview_new ("registers", "", "", 0, 0); gtk_widget_set_name (registers, "registers"); gtk_widget_show (registers); gtk_box_pack_start (GTK_BOX (hbox1), registers, FALSE, TRUE, 0); /* GTK_WIDGET_UNSET_FLAGS (registers, GTK_CAN_FOCUS); */ gtk_widget_set_can_focus (registers, FALSE); /* GTK_WIDGET_UNSET_FLAGS (registers, GTK_CAN_DEFAULT); */ gtk_widget_set_can_default (registers, FALSE); vbox2 = gtk_vbox_new (FALSE, 0); gtk_widget_set_name (vbox2, "vbox2"); gtk_widget_show (vbox2); gtk_box_pack_start (GTK_BOX (hbox1), vbox2, TRUE, TRUE, 0); disasm = dview_new ("disasm", "", "", 0, 0); gtk_widget_set_name (disasm, "disasm"); gtk_widget_show (disasm); gtk_box_pack_start (GTK_BOX (vbox2), disasm, TRUE, TRUE, 2); /* GTK_WIDGET_UNSET_FLAGS (disasm, GTK_CAN_FOCUS); */ gtk_widget_set_can_focus (disasm, FALSE); /* GTK_WIDGET_UNSET_FLAGS (disasm, GTK_CAN_DEFAULT); */ gtk_widget_set_can_default (disasm, FALSE); console = dview_new ("console", "", "", 0, 0); gtk_widget_set_name (console, "console"); gtk_widget_show (console); gtk_box_pack_start (GTK_BOX (vbox2), console, TRUE, TRUE, 0); /* GTK_WIDGET_UNSET_FLAGS (console, GTK_CAN_FOCUS); */ gtk_widget_set_can_focus (console, FALSE); /* GTK_WIDGET_UNSET_FLAGS (console, GTK_CAN_DEFAULT); */ gtk_widget_set_can_default (console, FALSE); </code> <code> pi@pi ~/src/sdlmame0136 $ make Compiling src/osd/sdl/debug-intf.c... src/osd/sdl/debug-intf.c: In function ‘create_memorywin’: src/osd/sdl/debug-intf.c:669:3: error: implicit declaration of function ‘gtk_combo_box_new_text’ [-Werror=implicit-function-declaration] src/osd/sdl/debug-intf.c:669:8: error: assignment makes pointer from integer without a cast [-Werror] src/osd/sdl/debug-intf.c:678:3: error: implicit declaration of function ‘GTK_OBJECT_FLAGS’ [-Werror=implicit-function-declaration] src/osd/sdl/debug-intf.c:678:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c:679:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c: In function ‘create_disasmwin’: src/osd/sdl/debug-intf.c:1005:7: error: assignment makes pointer from integer without a cast [-Werror] src/osd/sdl/debug-intf.c:1014:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c:1015:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c: In function ‘create_logwin’: src/osd/sdl/debug-intf.c:1282:3: error: lvalue required as left operand of assignment src/osd/sdl/debug-intf.c:1283:3: error: lvalue required as left operand of assignment cc1: all warnings being treated as errors make: *** [obj/sdl/mame/osd/sdl/debug-intf.o] Error 1 </code> More research uncovers "-DGTK_DISABLE_DEPRECATED". <code> pi@pi ~/src/sdlmame0136 $ grep -r GTK_DISABLE_DEPRECATED * src/osd/sdl/sdl.mak:CFLAGS += -DGTK_DISABLE_DEPRECATED </code> Interestingly there's a bunch of other settings in the sdl.mak file that I probably should have looked at first (if I had realized). Trying NOX11 for fun. <code> pi@pi ~/src/sdlmame0136 $ make Compiling src/lib/util/aviio.c... src/lib/util/aviio.c: In function ‘extract_movie_info’: src/lib/util/aviio.c:1350:14: error: variable ‘audiostream’ set but not used [-Werror=unused-but-set-variable] src/lib/util/aviio.c: In function ‘parse_indx_chunk’: src/lib/util/aviio.c:1517:8: error: variable ‘subtype’ set but not used [-Werror=unused-but-set-variable] src/lib/util/aviio.c:1514:25: error: variable ‘id’ set but not used [-Werror=unused-but-set-variable] cc1: all warnings being treated as errors make: *** [obj/sdl/mame/lib/util/aviio.o] Error 1 </code> I don't even remember where I had to replace this but I'll find it eventually: <code> #define CRLF 1 #if !defined(CRLF) || (CRLF < 1) || (CRLF > 3) #error CRLF undefined: must be 1 (CR), 2 (LF) or 3 (CR/LF) #endif </code> For reference: [[http://developer.gimp.org/api/2.0/gtk/GtkComboBox.html]] [[https://developer.gnome.org/gtk2/stable/GtkWidget.html]] Starting again on another day, build failed further down the road but I'm afraid of the number of changes I've made while building. Made clean, uncommented out warnings but disabled -Werror. Checked pacman.c for what it needs in order to build and am disabling any CPU & Sound & Emu not necessary in "src/mame/mame.mak": <code> 341 #include "emu.h" 342 #include "cpu/z80/z80.h" 343 #include "includes/pacman.h" 344 #include "cpu/s2650/s2650.h" 345 #include "machine/nvram.h" 346 #include "sound/namco.h" 347 #include "sound/ay8910.h" 348 #include "sound/sn76496.h" </code> Build was going well but then started building amiga stuff, so I'm clearly getting more than I want. Realized via ''find ./* -name \*mak'' that there's a "tiny.mak" file provided as an example for a reduced set of games. For now I may still just try to comment out the DRVLIBS I don't need to see if that works (even though that's a lot of lines). What took hours to arrive at before is back but now in minutes, so that's something: <code> ... src/emu/drawgfx.c:1826:4: warning: declaration of ‘srcdata’ shadows a previous local [-Wshadow] src/emu/drawgfx.c:1826:4: warning: shadowed declaration is here [-Wshadow] src/emu/drawgfx.c:1826:4: warning: declaration of ‘srcdata’ shadows a previous local [-Wshadow] src/emu/drawgfx.c:1826:4: warning: shadowed declaration is here [-Wshadow] src/emu/drawgfx.c:1826:4: warning: declaration of ‘srcdata’ shadows a previous local [-Wshadow] src/emu/drawgfx.c:1826:4: warning: shadowed declaration is here [-Wshadow] make: *** [obj/sdl/mame/emu/drawgfx.o] Error 1 </code> It looks like the **only** real error is: <code> src/emu/drawgfx.c: At top level: src/emu/drawgfx.c:21:7: error: size of array ‘no_priority_size_is_wrong’ is negative </code> The rest of the output is just -Wshadow related. From the code in src/emu/drawgfx.c: <code> /*************************************************************************** GLOBAL VARIABLES ***************************************************************************/ /* if this line errors during compile, the size of NO_PRIORITY is wrong and I need to use something else */ UINT8 no_priority_size_is_wrong[2 * (sizeof(NO_PRIORITY) == 3) - 1]; </code> I checked out drawgfxm.h and see that NO_PRIORITY is a char dummy[3], not sure why it's negative but commenting out the no_priority_size_is_wrong line just to see what happens. NO_PRIORITY is used throughout the drawing functions, so this could be a real problem. My guess is that maybe because I'm using only pacman & namco stuff there is "no priority", so maybe this won't matter or maybe I can set it to NULL. Next up: <code> undefined reference to `sdl_num_processors' </code> Plus about a million undefined references to stuff- commented out all the non-used driver object stuff in mame.mak. Found [[http://forums.bannister.org/ubbthreads.php?ubb=showflat&Number=57441&page=all&PHPSESSID=3c74d06c904029be10e5bfea6062aeab|http://forums.bannister.org/ubbthreads.php?ubb=showflat&Number=57441&page=all&PHPSESSID=3c74d06c904029be10e5bfea6062aeab]] which mentions: <code> Small issue: with NOASM defined, sdl_num_processors is missing in action. I just added it after #include "../osdmini/miniwork.c" in sdlwork.c. </code> <code> pi@pi ~/src/sdlmame0136 $ grep -r NOASM SDLMAME.txt:For non-x86/x64/PowerPC targets (e.g. ARM or MIPS) you must set "NOASM=1". </code> So that's why I did that. Can fix the problem by modifying sdlwork.c, it looks like it's just an int that isn't declared. Sdlwork.c has: <code> #if defined(SDLMAME_NOASM) #include "../osdmini/miniwork.c" #else </code> But I don't see any reference to sdl_num_processors in miniwork.c or in osdcore.h which is included in miniwork.c. Weird. Hmm, I found the declaration in sdlwork.c later on, maybe fluke? From sdlwork.c: <code> //============================================================ // GLOBAL VARIABLES //============================================================ int sdl_num_processors = 0; </code> Down to about a half an hour to get to the linking stage at least, if I ever get a successful build it at least won't take days to rebuild. Same issues. Added sdl_num_processors to sdlmain.c: <code> //============================================================ // // sdlmain.c -- SDL main program // //============================================================ // standard sdl header #include <SDL/SDL.h> #include <SDL/SDL_version.h> //added by ben int sdl_num_processors = 0; </code> Sdl_num_processors error is gone, but still undefined references in mamedriv.o for what seems to be every single driver- I'm missing something obvious someplace in the make file: <code> obj/sdl/mame/mame/mamedriv.o:(.rodata+0x850c): undefined reference to `driver_am_mg3' </code> I opted to try to rebuild with the driverobjs enabled, but that again will take forever. Looking at tiny.mak- I don't see mamedriv.o included? From mamedriv.c: <code> /****************************************************************************** mamedriv.c Copyright Nicola Salmoria and the MAME Team. Visit http://mamedev.org for licensing and usage restrictions. The list of all available drivers. Drivers have to be included here to be recognized by the executable. To save some typing, we use a hack here. This file is recursively #included twice, with different definitions of the DRIVER() macro. The first one declares external references to the drivers; the second one builds an array storing all the drivers. ******************************************************************************/ </code> So I can edit the drivers out of mamedriv.c- or maybe just not include it in the executable? Without mamedriv.o we're left with: <code> pi@pi ~/src/sdlmame0136 $ make Linking mame... obj/sdl/mame/libemu.a(clifront.o): In function `cli_info_listdevices': clifront.c:(.text+0x230): undefined reference to `drivers' obj/sdl/mame/libemu.a(clifront.o): In function `cli_info_listfull': clifront.c:(.text+0x348): undefined reference to `drivers' obj/sdl/mame/libemu.a(clifront.o): In function `cli_info_listroms': clifront.c:(.text+0x55c): undefined reference to `drivers' obj/sdl/mame/libemu.a(clifront.o): In function `cli_info_listcrc': clifront.c:(.text+0x6b0): undefined reference to `drivers' obj/sdl/mame/libemu.a(clifront.o): In function `cli_info_listclones': clifront.c:(.text+0x788): undefined reference to `drivers' obj/sdl/mame/libemu.a(clifront.o):clifront.c:(.text+0x840): more undefined references to `drivers' follow obj/sdl/mame/libemu.a(inptport.o): In function `frame_update': inptport.c:(.text+0x7eec): undefined reference to `coin_lockout_get_state' obj/sdl/mame/libemu.a(mame.o): In function `mame_execute': mame.c:(.text+0x1fa8): undefined reference to `generic_machine_init' mame.c:(.text+0x21e4): undefined reference to `nvram_load' mame.c:(.text+0x22b4): undefined reference to `nvram_save' obj/sdl/mame/libemu.a(ui.o): In function `slider_overyoffset': ui.c:(.text+0x11c): undefined reference to `laserdisc_get_config' ui.c:(.text+0x148): undefined reference to `laserdisc_set_config' obj/sdl/mame/libemu.a(ui.o): In function `slider_overyscale': ui.c:(.text+0x1cc): undefined reference to `laserdisc_get_config' ui.c:(.text+0x1f8): undefined reference to `laserdisc_set_config' obj/sdl/mame/libemu.a(ui.o): In function `slider_overxoffset': ui.c:(.text+0x27c): undefined reference to `laserdisc_get_config' ui.c:(.text+0x2a8): undefined reference to `laserdisc_set_config' obj/sdl/mame/libemu.a(ui.o): In function `slider_overxscale': ui.c:(.text+0x32c): undefined reference to `laserdisc_get_config' ui.c:(.text+0x358): undefined reference to `laserdisc_set_config' obj/sdl/mame/libemu.a(ui.o): In function `ui_display_startup_screens': ui.c:(.text+0x33a8): undefined reference to `device_get_info_laserdisc' ui.c:(.text+0x3e3c): undefined reference to `device_get_info_laserdisc' ui.c:(.text+0x3edc): undefined reference to `drivers' obj/sdl/mame/libemu.a(uimenu.o): In function `menu_select_game': uimenu.c:(.text+0x2da8): undefined reference to `drivers' obj/sdl/mame/libemu.a(uimenu.o): In function `menu_memory_card': uimenu.c:(.text+0x4530): undefined reference to `memcard_insert' uimenu.c:(.text+0x4584): undefined reference to `memcard_eject' uimenu.c:(.text+0x4614): undefined reference to `memcard_present' uimenu.c:(.text+0x46c4): undefined reference to `memcard_create' obj/sdl/mame/libemu.a(uimenu.o): In function `menu_bookkeeping': uimenu.c:(.text+0x5570): undefined reference to `get_dispensed_tickets' uimenu.c:(.text+0x55e8): undefined reference to `coin_counter_get_count' uimenu.c:(.text+0x5620): undefined reference to `coin_lockout_get_state' uimenu.c:(.text+0x5644): undefined reference to `coin_counter_get_count' uimenu.c:(.text+0x567c): undefined reference to `coin_lockout_get_state' uimenu.c:(.text+0x56a0): undefined reference to `coin_counter_get_count' uimenu.c:(.text+0x56d8): undefined reference to `coin_lockout_get_state' uimenu.c:(.text+0x56fc): undefined reference to `coin_counter_get_count' uimenu.c:(.text+0x5734): undefined reference to `coin_lockout_get_state' uimenu.c:(.text+0x5758): undefined reference to `coin_counter_get_count' uimenu.c:(.text+0x5790): undefined reference to `coin_lockout_get_state' uimenu.c:(.text+0x57b4): undefined reference to `coin_counter_get_count' uimenu.c:(.text+0x57ec): undefined reference to `coin_lockout_get_state' uimenu.c:(.text+0x5810): undefined reference to `coin_counter_get_count' uimenu.c:(.text+0x5848): undefined reference to `coin_lockout_get_state' uimenu.c:(.text+0x586c): undefined reference to `coin_counter_get_count' uimenu.c:(.text+0x58a4): undefined reference to `coin_lockout_get_state' uimenu.c:(.text+0x596c): undefined reference to `coin_lockout_get_state' uimenu.c:(.text+0x59a0): undefined reference to `coin_lockout_get_state' uimenu.c:(.text+0x59d4): undefined reference to `coin_lockout_get_state' uimenu.c:(.text+0x5a08): undefined reference to `coin_lockout_get_state' obj/sdl/mame/libemu.a(uimenu.o):uimenu.c:(.text+0x5a3c): more undefined references to `coin_lockout_get_state' follow obj/sdl/mame/libemu.a(validity.o): In function `validate_devices': validity.c:(.text+0xfd8): undefined reference to `drivers' obj/sdl/mame/libemu.a(validity.o): In function `mame_validitychecks': validity.c:(.text+0x1e4c): undefined reference to `drivers' collect2: ld returned 1 exit status make: *** [mame] Error 1 </code> That validity.c at the end looks like maybe commenting out drivers I don't want may be easier. Took a long break, then tried my own tiny.mak (mspacman.c w/mame.mak) and in the process of that found out that the way I was commenting things out in mame.mak is BROKEN, and I'm an idiot. That said, my tiny file looks like it should work but I still get a bunch of undefined references. Dug around, found out I had commented out generic.o as an emulator machine type. Argh. Commenting in the .mak files is a big deal. After fixing comments: <code> pi@pi ~/src/sdlmame0136 $ make Compiling src/mame/mspacman.c... Compiling src/version.c... Linking mame... obj/sdl/mame/libemu.a(ui.o): In function `slider_overyoffset': ui.c:(.text+0x11c): undefined reference to `laserdisc_get_config' ui.c:(.text+0x148): undefined reference to `laserdisc_set_config' obj/sdl/mame/libemu.a(ui.o): In function `slider_overyscale': ui.c:(.text+0x1cc): undefined reference to `laserdisc_get_config' ui.c:(.text+0x1f8): undefined reference to `laserdisc_set_config' obj/sdl/mame/libemu.a(ui.o): In function `slider_overxoffset': ui.c:(.text+0x27c): undefined reference to `laserdisc_get_config' ui.c:(.text+0x2a8): undefined reference to `laserdisc_set_config' obj/sdl/mame/libemu.a(ui.o): In function `slider_overxscale': ui.c:(.text+0x32c): undefined reference to `laserdisc_get_config' ui.c:(.text+0x358): undefined reference to `laserdisc_set_config' obj/sdl/mame/libemu.a(ui.o): In function `ui_display_startup_screens': ui.c:(.text+0x33a8): undefined reference to `device_get_info_laserdisc' ui.c:(.text+0x3e3c): undefined reference to `device_get_info_laserdisc' obj/sdl/mame/libsound.a(ay8910.o): In function `ay8910_start_ym': ay8910.c:(.text+0xa3c): undefined reference to `devcb_resolve_read8' ay8910.c:(.text+0xa4c): undefined reference to `devcb_resolve_read8' ay8910.c:(.text+0xa5c): undefined reference to `devcb_resolve_write8' ay8910.c:(.text+0xa6c): undefined reference to `devcb_resolve_write8' collect2: ld returned 1 exit status make: *** [mame] Error 1 </code> Uncommented ldcore from emu.mak and get: <code> pi@pi ~/src/sdlmame0136 $ make Compiling src/emu/machine/ldcore.c... Archiving obj/sdl/mame/libemu.a... Compiling src/version.c... Linking mame... obj/sdl/mame/libemu.a(ldcore.o): In function `device_get_info_laserdisc': ldcore.c:(.text+0x3d0): undefined reference to `pr8210_interface' ldcore.c:(.text+0x3d4): undefined reference to `simutrek_interface' ldcore.c:(.text+0x3d8): undefined reference to `ldv1000_interface' ldcore.c:(.text+0x3dc): undefined reference to `vp931_interface' obj/sdl/mame/libemu.a(ldcore.o): In function `device_reset_laserdisc': ldcore.c:(.text+0x510): undefined reference to `pr8210_interface' ldcore.c:(.text+0x514): undefined reference to `simutrek_interface' ldcore.c:(.text+0x518): undefined reference to `ldv1000_interface' ldcore.c:(.text+0x51c): undefined reference to `vp931_interface' obj/sdl/mame/libemu.a(ldcore.o): In function `device_start_laserdisc': ldcore.c:(.text+0x182c): undefined reference to `pr8210_interface' ldcore.c:(.text+0x1830): undefined reference to `simutrek_interface' ldcore.c:(.text+0x1834): undefined reference to `vp931_interface' ldcore.c:(.text+0x1838): undefined reference to `ldv1000_interface' obj/sdl/mame/libsound.a(ay8910.o): In function `ay8910_start_ym': ay8910.c:(.text+0xa3c): undefined reference to `devcb_resolve_read8' ay8910.c:(.text+0xa4c): undefined reference to `devcb_resolve_read8' ay8910.c:(.text+0xa5c): undefined reference to `devcb_resolve_write8' ay8910.c:(.text+0xa6c): undefined reference to `devcb_resolve_write8' collect2: ld returned 1 exit status make: *** [mame] Error 1 </code> That to me looks like adding ldcore will only mean adding more stuff we don't need- which means I need to figure out what needs laserdisc support and disable that. Surely pacman games don't need laserdisc support. Duh: <code> pi@pi ~/src/sdlmame0136 $ find ./ -name *.mak ./src/osd/windows/windows.mak ./src/osd/sdl/build.mak ./src/osd/sdl/sdl.mak ./src/osd/osdmini/osdmini.mak **./src/ldplayer/ldplayer.mak** ./src/lib/lib.mak ./src/emu/sound/sound.mak ./src/emu/cpu/mips/dismips.mak ./src/emu/cpu/cpu.mak ./src/emu/emu.mak ./src/tools/tools.mak ./src/mame/mame.mak ./src/mame/bak/mame.mak ./src/mame/bak/tiny.mak ./src/build/build.mak </code> From src/ldplayer/ldplayer.mak: <code> ########################################################################### # # ldplayer.mak # # Small makefile to build a standalone laserdisc player # # Copyright Nicola Salmoria and the MAME Team. # Visit http://mamedev.org for licensing and usage restrictions. # ########################################################################### </code> Commented out the DRVLIBS entries in ldplayer.mak. <code> pi@pi ~/src/sdlmame0136 $ find obj/ -name ld* obj/sdl/mame/emu/machine/ldcore.o pi@pi ~/src/sdlmame0136 $ rm obj/sdl/mame/emu/machine/ldcore.o pi@pi ~/src/sdlmame0136 $ make Linking mame... [same ld errors] pi@pi ~/src/sdlmame0136 $ rm obj/sdl/mame/libemu.a pi@pi ~/src/sdlmame0136 $ make Linking mame... obj/sdl/mame/libemu.a(ui.o): In function `slider_overyoffset': ui.c:(.text+0x11c): undefined reference to `laserdisc_get_config' ui.c:(.text+0x148): undefined reference to `laserdisc_set_config' obj/sdl/mame/libemu.a(ui.o): In function `slider_overyscale': ui.c:(.text+0x1cc): undefined reference to `laserdisc_get_config' ui.c:(.text+0x1f8): undefined reference to `laserdisc_set_config' obj/sdl/mame/libemu.a(ui.o): In function `slider_overxoffset': ui.c:(.text+0x27c): undefined reference to `laserdisc_get_config' ui.c:(.text+0x2a8): undefined reference to `laserdisc_set_config' obj/sdl/mame/libemu.a(ui.o): In function `slider_overxscale': ui.c:(.text+0x32c): undefined reference to `laserdisc_get_config' ui.c:(.text+0x358): undefined reference to `laserdisc_set_config' obj/sdl/mame/libemu.a(ui.o): In function `ui_display_startup_screens': ui.c:(.text+0x33a8): undefined reference to `device_get_info_laserdisc' ui.c:(.text+0x3e3c): undefined reference to `device_get_info_laserdisc' obj/sdl/mame/libsound.a(ay8910.o): In function `ay8910_start_ym': ay8910.c:(.text+0xa3c): undefined reference to `devcb_resolve_read8' ay8910.c:(.text+0xa4c): undefined reference to `devcb_resolve_read8' ay8910.c:(.text+0xa5c): undefined reference to `devcb_resolve_write8' ay8910.c:(.text+0xa6c): undefined reference to `devcb_resolve_write8' collect2: ld returned 1 exit status make: *** [mame] Error 1 pi@pi ~/src/sdlmame0136 $ find obj/ -name \*ui\* obj/sdl/mame/emu/ui.o obj/sdl/mame/emu/uigfx.o obj/sdl/mame/emu/uismall.fh obj/sdl/mame/emu/uimenu.o obj/sdl/mame/emu/uiinput.o obj/sdl/mame/build pi@pi ~/src/sdlmame0136 $ rm obj/sdl/mame/emu/ui*.o </code> Same result. Tired of guessing, make clean, build again knowing ldplayer.mak has nothing in it.
mspacman/pi.1380785032.txt.gz
· Last modified: 2013/10/03 03:23 by
ben
Page Tools
Show page
Old revisions
Backlinks
Back to top