Ticket #2866 (closed enhancement: fixed)
publish win32 native build details
Reported by: | adamyg | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | documentation | Version: | master |
Keywords: | Cc: | zaytsev | |
Blocked By: | Blocking: | ||
Branch state: | no branch | Votes for changeset: |
Description
An MS-Windows (Win32) native port of Midnight Commander is now available from, http://sourceforge.net/projects/mcwin32/
Please update wiki references, also requesting beta testers.
The version build details:
c:\mc -V
GNU Midnight Commander 4.8.4
Built with GLib 2.28.8
Using the S-Lang library with terminfo database
With builtin Editor
With mouse support on xterm
With multiple codepages support
Virtual File Systems: cpiofs, tarfs, sfs, extfs, ftpfs
Data types: char: 8; int: 32; long: 32; void *: 32; size_t: 32; off_t: 32;
Change History
comment:2 follow-up: ↓ 3 Changed 12 years ago by adamyg
Source shall be pushed in the near future ....
Need to resolve best method of release, there is prelim documentation within the current installation do/INSTALL.win32.
Current throught push changes needed to main mc git base and maintain additional code under sourceforge as additional package.
Main issue related to compiler features, see below.
thx
mc-devl post
Having used an old WIN32 native build version for years (4.6.x) I've recently moved forward and built a native WIN32 version against a current mc-4.8.4 stable snapshot.
Generally the version is stable (internal editor, most of the vfs subsystem etc), yet porting raised a number of issues which shall create problems if these changes are to be released.
The two compiler related issues are visible (i.e. non gcc), firstly use of 'void *' calculations (minor) and secondary non-const structure initialisation, specifically the QUICK_xxxx macros which represent numerous changes across the source tree, see below.
QuickWidget? quick_widgets[] = {
/* 0 */ QUICK_BUTTON (0, dlg_width, dlg_height, dlg_height, N_("&Cancel"), B_CANCEL, NULL),
/* 1 */ QUICK_BUTTON (0, dlg_width, dlg_height, dlg_height, N_("&OK"), B_ENTER, NULL),
/* 2 */ QUICK_CHECKBOX (0, dlg_width, 5, dlg_height, N_("&Reverse"), &info->reverse),
/* 3 */ QUICK_CHECKBOX (0, dlg_width, 4, dlg_height, N_("Case sensi&tive"), &info->case_sensitive),
/* 4 */ QUICK_CHECKBOX (0, dlg_width, 3, dlg_height, N_("Executable &first"), &info->exec_first),
/* 5 */ QUICK_RADIO (4, dlg_width, 3, dlg_height, 0, NULL, &sort_idx),
QUICK_END
};
which needed to be replaced (current solution as follows):
QuickWidget? quick_widgets[7], *quick_cursor = quick_widgets;
quick_cursor = /* 0 */ QUICK_PUSH_BUTTON (quick_cursor, 0, dlg_width, dlg_height, dlg_height, N_("&Cancel"), B_CANCEL, NULL);
quick_cursor = /* 1 */ QUICK_PUSH_BUTTON (quick_cursor, 0, dlg_width, dlg_height, dlg_height, N_("&OK"), B_ENTER, NULL);
quick_cursor = /* 2 */ QUICK_PUSH_CHECKBOX (quick_cursor, 0, dlg_width, 5, dlg_height, N_("&Reverse"), &info->reverse);
quick_cursor = /* 3 */ QUICK_PUSH_CHECKBOX (quick_cursor, 0, dlg_width, 4, dlg_height, N_("Case sensi&tive"), &info->case_sensitive);
quick_cursor = /* 4 */ QUICK_PUSH_CHECKBOX (quick_cursor, 0, dlg_width, 3, dlg_height, N_("Executable &first"), &info->exec_first);
quick_cursor = /* 5 */ QUICK_PUSH_RADIO (quick_cursor, 4, dlg_width, 3, dlg_height, 0, NULL, &sort_idx);
quick_cursor = QUICK_PUSH_END (quick_cursor);
g_assert(quick_cursor == quick_widgets + G_N_ELEMENTS(quick_widgets));
Note: the QUICK_PUSH_xxxx inline functions simply wrap the QUICK_xxxx macros.
Firstly that are the thoughts on an active native WIN32 build and secondary can these compiler'ish be reworked to support non gcc builds ?
Excluding these changes WIN32 support (so far) represents around 20 patches mainly for drive and alt-configuration options, plus a number of new modules to emulate posix functions, built against libglib-2.0 from gtk.
Comments
Regards
-- Adam
comment:3 in reply to: ↑ 2 Changed 12 years ago by andrew_b
Replying to adamyg:
Firstly that are the thoughts on an active native WIN32 build and secondary can these compiler'ish be reworked to support non gcc builds ?
No. The goal of QuickDialog? engine is simplifying of dialog creation. Actually, QUICK_PUSH_xxxx functions make QuickDialog? superfluous and needless. It is not better than
quick_cursor = xxx_new (...); add_widget (h, quick_cursor);
Excluding these changes WIN32 support (so far) represents around 20 patches mainly for drive and alt-configuration options, plus a number of new modules to emulate posix functions, built against libglib-2.0 from gtk.
Don't torment over mc in Windows. Keep your time and use FAR instead. It is native, free and open source for years. It is better for Windows than mc, just believe me.
What you did there is very cool, but I don't seem to be able to find neither the source code (the git repository is empty?), nor any of the build instructions...