OK, we still don't have a structural Win32 maintainer. But, in the mean time we tried to make compiling openMSX for Windows as simple as possible. The current openMSX source code should be compilable by almost everyone who has basic technical computing skills (you need to know what source code is, e.g.).
Please try out the instructions we put online here and let is know if you're successful or not.
Note: it's quite important to follow those instructions carefully, or things may not work. There's no superfluous information in it, I think :)
I hope this makes it more attractive to join our team!
Well I tried this and got through the compilation process. Couple of observations:
- for some reason, the mingw32 installer did not create a symbolic link for "make" so I had to do that manually
- I got a lot of warnings from STL during compilation
- the result is not working, I get a TCL error from cpuregs.tcl-- is the latest SVN checkout supposed to work?
jr, thanks for trying!
- did you install mingw-make in the MinGW installer? I haven't had this problem before....
- yes, the STL warnings seem to be from inside the gcc distribution itself. They just moved to 3.4.5 (which is already old) and AFAIK 3.4.2 (previous verison they used) did not show those warnings. Modern gcc doesn't show them at least (4.2 e.g.).
- which source code did you use? What error did you get? Latest SVN should definately work.
Yes I did install the mingw-make as suggested in the instructions. Dunno why the link was missing.
I also tried to compile the same thing under cygwin with a 4.2 gcc and got STL errors that stopped the compilation. But that's another story.
Don't know exactly what version it is, I just followed the instructions and took the "HEAD" revision. I'll go and see if I can figure out the version... seems it is 7176.
Should I have done some sort of "installation" rather than just trying to run the openmsx.exe from the derived/.../bindist/install directory? The error looks like this:
Error while executing C:/home/openMSX/share/scripts/cpuregs.tcl too many nested evaluations (infinite loop?) while executing "if $case_sensitive { set ::__tabcompletion_proc_sensitive($command) $proc } else { set ::__tabcompletion_proc_insensitive($command) $proc }" (procedure "set_tabcompletion_proc" line 2) invoked from within "set_tabcompletion_proc reg tab_reg false" (file "C:/home/openMSX/share/scripts/cpuregs.tcl" line 37) invoked from within "source $script" Error while executing C:/home/openMSX/share/scripts/cycle.tcl too many nested evaluations (infinite loop?) while executing "if $case_sensitive { set ::__tabcompletion_proc_sensitive($command) $proc } else { set ::__tabcompletion_proc_insensitive($command) $proc }" (procedure "set_tabcompletion_proc" line 2) invoked from within "set_tabcompletion_proc cycle tab_cycle" (file "C:/home/openMSX/share/scripts/cycle.tcl" line 12) invoked from within "source $script" Error while executing C:/home/openMSX/share/scripts/load_icons.tcl too many nested evaluations (infinite loop?) while executing "if $case_sensitive { set ::__tabcompletion_proc_sensitive($command) $proc } else { set ::__tabcompletion_proc_insensitive($command) $proc }" (procedure "set_tabcompletion_proc" line 2) invoked from within "set_tabcompletion_proc load_icons tab_load_icons" (file "C:/home/openMSX/share/scripts/load_icons.tcl" line 11) invoked from within "source $script" Error while executing C:/home/openMSX/share/scripts/monitor.tcl too many nested evaluations (infinite loop?) while executing "if $case_sensitive { set ::__tabcompletion_proc_sensitive($command) $proc } else { set ::__tabcompletion_proc_insensitive($command) $proc }" (procedure "set_tabcompletion_proc" line 2) invoked from within "set_tabcompletion_proc monitor_type tab_monitor_type" (file "C:/home/openMSX/share/scripts/monitor.tcl" line 10) invoked from within "source $script" Error while executing C:/home/openMSX/share/scripts/psg_log.tcl too many nested evaluations (infinite loop?) while executing "if $case_sensitive { set ::__tabcompletion_proc_sensitive($command) $proc } else { set ::__tabcompletion_proc_insensitive($command) $proc }" (procedure "set_tabcompletion_proc" line 2) invoked from within "set_tabcompletion_proc psg_log tab_psg_log" (file "C:/home/openMSX/share/scripts/psg_log.tcl" line 45) invoked from within "source $script" Error while executing C:/home/openMSX/share/scripts/psg_profile.tcl too many nested evaluations (infinite loop?) while executing "if $case_sensitive { set ::__tabcompletion_proc_sensitive($command) $proc } else { set ::__tabcompletion_proc_insensitive($command) $proc }" (procedure "set_tabcompletion_proc" line 2) invoked from within "set_tabcompletion_proc psg_profile tab_psg_profile" (file "C:/home/openMSX/share/scripts/psg_profile.tcl" line 10) invoked from within "source $script" Error while executing C:/home/openMSX/share/scripts/record_channels.tcl too many nested evaluations (infinite loop?) while executing "if $case_sensitive { set ::__tabcompletion_proc_sensitive($command) $proc } else { set ::__tabcompletion_proc_insensitive($command) $proc }" (procedure "set_tabcompletion_proc" line 2) invoked from within "set_tabcompletion_proc record_channels tab_sounddevice_channels" (file "C:/home/openMSX/share/scripts/record_channels.tcl" line 42) invoked from within "source $script" Error while executing C:/home/openMSX/share/scripts/reg_log.tcl too many nested evaluations (infinite loop?) while executing "if $case_sensitive { set ::__tabcompletion_proc_sensitive($command) $proc } else { set ::__tabcompletion_proc_insensitive($command) $proc }" (procedure "set_tabcompletion_proc" line 2) invoked from within "set_tabcompletion_proc reg_log tab_reg_log" (file "C:/home/openMSX/share/scripts/reg_log.tcl" line 21) invoked from within "source $script" Error while executing C:/home/openMSX/share/scripts/save_debuggable.tcl too many nested evaluations (infinite loop?) while executing "if $case_sensitive { set ::__tabcompletion_proc_sensitive($command) $proc } else { set ::__tabcompletion_proc_insensitive($command) $proc }" (procedure "set_tabcompletion_proc" line 2) invoked from within "set_tabcompletion_proc save_debuggable tab_loadsave_debuggable" (file "C:/home/openMSX/share/scripts/save_debuggable.tcl" line 32) invoked from within "source $script" Error while executing C:/home/openMSX/share/scripts/soundlog.tcl too many nested evaluations (infinite loop?) while executing "if $case_sensitive { set ::__tabcompletion_proc_sensitive($command) $proc } else { set ::__tabcompletion_proc_insensitive($command) $proc }" (procedure "set_tabcompletion_proc" line 2) invoked from within "set_tabcompletion_proc soundlog __soundlog_tab" (file "C:/home/openMSX/share/scripts/soundlog.tcl" line 14) invoked from within "source $script" Error while executing C:/home/openMSX/share/scripts/trainer.tcl too many nested evaluations (infinite loop?) while executing "if $case_sensitive { set ::__tabcompletion_proc_sensitive($command) $proc } else { set ::__tabcompletion_proc_insensitive($command) $proc }" (procedure "set_tabcompletion_proc" line 2) invoked from within "set_tabcompletion_proc trainer __tab_trainer false" (file "C:/home/openMSX/share/scripts/trainer.tcl" line 16) invoked from within "source $script" warning: too many nested evaluations (infinite loop?)
Hmm, seems you did everything OK.
After compiling, you should be able to double click on that openMSX.exe in the bindist/install dir indeed...
I'm not sure if running from MSYS works... Did you do that, maybe?
Yes I tried, same result.
aha... figured out what was causing the problem funny thing really. I was compiling the stuff at the same location with the openMSX "home" folder. It seems the code somehow gets confused if that's true.
Now it starts and I can see the C-BIOS startup screen.
Cool!
Yes, there's a concept of USER and SYSTEM folders in openMSX and the SYSTEM folder's TCL script sources the USER folder's TCL scripts. If this gets confused, you can get infinite recursion. (I may have swapped SYSTEM and USER here).
Great, you're the first outsider that compiled openMSX Congratulations
Who's next?
And yes, of course: if you're willing to help us out with openMSX on a structural basis (especially after the compilation experience), please contact us
sure but what do you mean by a structural basis?
I think checking out a code snapshot every X days/weeks, compile under Windows and test the result, i.e. on a regular basis.