mirror of
https://github.com/adamyg/mcwin32.git
synced 2025-04-18 01:17:37 +03:00
150 lines
4.8 KiB
Plaintext
150 lines
4.8 KiB
Plaintext
|
|
Midnight Commander Win32 Native build and installation tools.
|
|
|
|
Requirements:
|
|
|
|
o Suitable compiler chain, from one of the following
|
|
|
|
o Open Watcom 1.9 or the later 2.0.
|
|
o Microsoft Visual Studio 2013 (or greater).
|
|
o mingw32/64
|
|
|
|
o Perl - Make system generation and run-time support.
|
|
|
|
o Unix binary tools - Make system run-time support.
|
|
|
|
o InnoSetup - Required for the creation of installation packages.
|
|
|
|
|
|
Components:
|
|
|
|
o mcsrc - Midnight Commander source (currently 4.8.29).
|
|
|
|
mc-win32 changes enclosed within "ifdefined(WIN32)"
|
|
and/or are labelled with "//WIN32" comment blocks.
|
|
|
|
o mcwin32 - Windows specific code and build env.
|
|
|
|
|
|
Build steps:
|
|
|
|
1. binutils
|
|
|
|
A unix style bintools needs to be available, plus the installation should be
|
|
visible within the current PATH.
|
|
|
|
Examples:
|
|
|
|
o gnuwin32 [ http://unxutils.sourceforge.net/ ]
|
|
|
|
Note:
|
|
These set of tools are aging, for example the gmake bundled with gnuwin32 is
|
|
an older 3.81 release, which wont function correctly. GNU make 4.0 or greater
|
|
is required, advise replacing with the bundled 'mcwin32/support/gmake-42.exe'.
|
|
|
|
o msys2
|
|
|
|
Note: cygwin is not suitable nor supported.
|
|
|
|
|
|
2. Compiler installation
|
|
|
|
One of the following C/C++ toolchains needs to be available, plus the installation
|
|
should be visible within the current PATH.
|
|
|
|
Suitable distributions include:
|
|
|
|
o Open Watcom 1.9 or the later 2.0.
|
|
o Microsoft Visual Studio 2013 (or greater).
|
|
o mingw32/64 [ experimental ].
|
|
|
|
Note: OpenWatcom is currently utlised for releases.
|
|
|
|
|
|
3. Perl installation
|
|
|
|
A perl installation needs to be available plus the installation should be visible
|
|
within the current PATH.
|
|
|
|
Suitable perl distributions include:
|
|
|
|
o ActiveState Perl.
|
|
o Strawberry Perl.
|
|
|
|
|
|
4. InnoSetup installation, optional
|
|
|
|
Install InnoSetup 5.6.x within its default installation path; if modified the
|
|
arguments to the support scripts below shall need to tbe adjusted to match,
|
|
set the envvar INNO="<install-path>" prior to priming the tree.
|
|
|
|
This package is optional and only required if an installer is being built.
|
|
|
|
6.x Inno and later is also an option, but the Installer will only function on Vista
|
|
or greater. 6.x and later versions of Inno no longer support Windows 2000, XP, and Server
|
|
2003.
|
|
|
|
|
|
4. Prime the build tree; generate makefiles
|
|
|
|
$ cd mcwin32
|
|
|
|
$ support\vc2015config.bat
|
|
or $ support\vc2017config.bat
|
|
or $ support\vc2019config.bat
|
|
or $ support\owcconfig.bat
|
|
or $ support\owc20config.bat
|
|
|
|
Note:
|
|
These scripts execute the perl module makelib.pl which generates Makefiles targeted
|
|
for the specified toolchain.
|
|
|
|
|
|
5. Build the entire tree with:
|
|
|
|
$ gmake release
|
|
or $ support\gmake-42 release
|
|
|
|
Usage:
|
|
|
|
| make [VERBOSE=1] [release or debug] target
|
|
|
|
|
| Build one or more of the following targets recursively within each sub-directory
|
|
| for the toolchain <toolchains>.
|
|
|
|
|
| Options:
|
|
| VERBOSE - increase run-time diagnostics; suppress stderr filtering.
|
|
|
|
|
| Targets:
|
|
|
|
|
| build - build everything.
|
|
| package - build package.
|
|
| clean - delete everything which can be remade.
|
|
| vclean - delete all.
|
|
| help - command line usage.
|
|
|
|
|
|
6. To create the installer.
|
|
|
|
$ support\gmake-42 release package
|
|
or $ start mc-inno-setup.iss
|
|
|
|
Note:
|
|
Alternatively zip/copy the bin tree to your desired install location, as the
|
|
application is portable.
|
|
|
|
|
|
7. Finally, please review the packaged example alternative configurations as win32
|
|
development environments can be problematic, dependent on the host setup:
|
|
|
|
o .github/workflows, github build actions for latest OWC, MSVC abd MINGW toolchains.
|
|
|
|
o Appveyor CI integration notes under mcwin32/support.
|
|
|
|
plus other helper scripts under mcwin32/support.
|
|
|
|
|
|
Last Update: Feb/2023
|
|
=end=
|
|
|