|
Joined: Mar 2001
Posts: 17,215 Likes: 234
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,215 Likes: 234 |
Yes, that's the one to open. It *is* created super-deep; this is not uncommon for tool-generated Visual Studio SLNs.
|
|
|
|
Joined: May 2007
Posts: 584 Likes: 9
Senior Member
|
Senior Member
Joined: May 2007
Posts: 584 Likes: 9 |
Mmm ... still getting lots of error output ... I'll have to dig deeper.
For the time being, why not simply compile with mingw gcc? Assuming that I don't want to do debugging, just create a tailored image for the typical user?
I remember that some days ago the howto for mingw was still there, now there is only the VS topic.
|
|
|
|
Joined: May 2008
Posts: 4,930 Likes: 24
Very Senior Member
|
Very Senior Member
Joined: May 2008
Posts: 4,930 Likes: 24 |
- Once you've done that, simply run: make ...
make is not found in the plain cmd. I suppose I have to run win32env.bat in msys64 first, then go to the mame folder. I think it's "nmake" what the author meant. Should be changed in the wiki I suppose.
A mind is like a parachute. It doesn't work unless it's open. [Frank Zappa]
|
|
|
|
Joined: Feb 2004
Posts: 2,597 Likes: 300
Very Senior Member
|
Very Senior Member
Joined: Feb 2004
Posts: 2,597 Likes: 300 |
- Once you've done that, simply run: make ...
make is not found in the plain cmd. I suppose I have to run win32env.bat in msys64 first, then go to the mame folder. I think it's "nmake" what the author meant. Should be changed in the wiki I suppose. No, it's not nmake - you need to have gnu make in your path. The make command generates the solution and project files for Visual Studio. Once you've done that, you can open the solution in Visual Studio or build it with msbuild. We don't use nmake.
|
|
|
|
Joined: Mar 2001
Posts: 17,215 Likes: 234
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,215 Likes: 234 |
I compiled correctly on a Windows machine recently using "make vs2015" and VS2017 with the 2015 toolchain installed as an option (it asks during install). If you're using real VS2015, make sure you have SP3 installed - they fixed a lot of C++ compliance in the compiler between GM and SP3.
|
|
|
|
Joined: May 2007
Posts: 584 Likes: 9
Senior Member
|
Senior Member
Joined: May 2007
Posts: 584 Likes: 9 |
OK then, I'll try. Still, I'd suggest someone have a look at the Developers Wiki entry and make it fool-proof (for fools like me :-) ). If you are not experienced with Visual Studio, this may be a bit too terse right now.
There's still my question from above: I understand that VS produced somewhat better output, but just for the purpose of building a small MAME version with only a few drivers and to offer it for downloading, would the traditional MinGW / gcc toolchain still work, or it that generally discouraged?
|
|
|
|
Joined: Feb 2004
Posts: 2,597 Likes: 300
Very Senior Member
|
Very Senior Member
Joined: Feb 2004
Posts: 2,597 Likes: 300 |
Visual Studio has better i386 code generation and the debugging tools tend to be better than GDB on Windows. GCC compiles a lot faster and has better x86-64 code generation. We recommend using MinGW GCC to build binaries for distribution to ensure they behave more like standard MAME releases. If you're planning to release binaries, we recommend you build using the same flags we use for binary releases. You can see the options used in build-release.bat in the build repository. Currently the they are (the only difference: difference between the lines is the PTR64 setting): make TARGET=mame TOOLS=1 SEPARATE_BIN=1 PTR64=0 OPTIMIZE=3 SYMBOLS=1 SYMLEVEL=1 REGENIE=1 -j9
make TARGET=mame TOOLS=1 SEPARATE_BIN=1 PTR64=1 OPTIMIZE=3 SYMBOLS=1 SYMLEVEL=1 REGENIE=1 -j9 If you're building with a subset of drivers, do something like: make TARGET=mame SUBTARGET=subset SOURCES=src/mame/drivers/mydriver.cpp TOOLS=1 SEPARATE_BIN=1 PTR64=0 OPTIMIZE=3 SYMBOLS=1 SYMLEVEL=1 REGENIE=1 -j9
make TARGET=mame SUBTARGET=subset SOURCES=src/mame/drivers/mydriver.cpp TOOLS=1 SEPARATE_BIN=1 PTR64=1 OPTIMIZE=3 SYMBOLS=1 SYMLEVEL=1 REGENIE=1 -j9 (Note that you can't actually run the two commands in direct succession on Windows - you need to switch environments between doing 32-bit and 64-bit builds.)
|
|
|
|
Joined: May 2007
Posts: 584 Likes: 9
Senior Member
|
Senior Member
Joined: May 2007
Posts: 584 Likes: 9 |
Yes, thanks, I'm doing small builds with gcc under Linux for some time already, so this looks familiar. I'm not using TARGET and SUBTARGET, though - are those important when I have SOURCES?
|
|
|
|
Joined: Feb 2004
Posts: 2,597 Likes: 300
Very Senior Member
|
Very Senior Member
Joined: Feb 2004
Posts: 2,597 Likes: 300 |
TARGET defaults to MAME. If you're doing multiple builds with different combinations of drivers it helps to use different SUBTARGET so they don't overwrite each other. It's also useful to give it a different SUBTARGET name to make it obvious that it isn't a full MAME build (even if the small size implies that). If you're setting SOURCES, you can make up any SUBTARGET and it will generate rules to build the executable with that name.
|
|
|
|
Joined: May 2005
Posts: 50 Likes: 39
Member
|
Member
Joined: May 2005
Posts: 50 Likes: 39 |
I'm trying to compile the latest MAME on Windows 10 with mingw. I get a Lua error: Luigi@Luigi-PC MSYS /c/mame
$ make SOURCES=src/mame/drivers/atarisy1.cpp REGENIE=1
GCC 6.3.0 detected
[string "function os.executef(cmd, ...)..."]:167: 'popen' not supported
stack traceback:
[C]: in function 'io.popen'
[string "function os.executef(cmd, ...)..."]:167: in function 'os.outputof'
c:/mame/scripts/genie.lua:1335: in main chunk
[C]: in upvalue 'builtin_dofile'
[string "premake = { }..."]:84: in function 'dofile'
[string "_WORKING_DIR = os.getcwd()..."]:45: in function '_premake_main'
make: *** [makefile:986: build/projects/windows/mame/gmake-mingw64-gcc/Makefile] Error 1
|
|
|
2 members (Kale, 1 invisible),
233
guests, and
1
robot. |
Key:
Admin,
Global Mod,
Mod
|
|
Forums9
Topics9,320
Posts121,923
Members5,074
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|