58734fe2e7
- support for win graphic console - correct versioning - document mkwin script
83 lines
3.4 KiB
Markdown
83 lines
3.4 KiB
Markdown
|
|
AT the time of this writing (Nov 2014), YAP uses the mkwin script to
|
|
compile in WIN32. The script requires either a WIN32 environment, or a
|
|
cross-compiler/emulator package.
|
|
|
|
YAP has been known to compile under VISUAL C++, and should compile and
|
|
work under cygwin, but the favorite approach is to use a native
|
|
msys/mingw environment. This approach has two key advantages:
|
|
|
|
+ it does not need an interface layer and a DLL, like cygwin.
|
|
|
|
+ it enables cross-compilation.
|
|
|
|
YAP uses rge `mkwin` script to generate a new YAP installer. The script is
|
|
controlled by a set of of variables that should be defined early on in
|
|
the text. It executes by first calling `configure`, next running `make`, and
|
|
last (if all went well) executing `nsys`.
|
|
|
|
In more detail, the following mingw based environments have been
|
|
tested to develop YAP:
|
|
|
|
* MSYS 1 and mingw32/64: most WIN32 development did occur in this
|
|
native environment. Best results were achieved with
|
|
MSYS-1.0.* and TDM-GCC:
|
|
|
|
mingw: http://www.mingw.org/
|
|
original msys: http://www.mingw.org/wiki/MSYS
|
|
mingw64: http://mingw-w64.sourceforge.net/
|
|
TDM-GCC: http://tdm-gcc.tdragon.net/
|
|
|
|
* This distribution was compiled with the MSYS2 integrated
|
|
development, that supports 32 and 64 bit compilation. Setting up
|
|
MSYS2 should be done with care, but it is worth it as the
|
|
distribution works nicely in MINGW32 and MINGW64 mode. A third
|
|
compilation mode, MSYS mode, has problems with compiling sockets.
|
|
|
|
msys2: http://sourceforge.net/projects/msys2/
|
|
|
|
* cygwin and cygwin64 now can generate native applications
|
|
|
|
cygwin: https://www.cygwin.com/
|
|
|
|
* Linux has a nice cross-compilation environment, with some of the best
|
|
work done for Fedora.
|
|
|
|
fedora mingw cross-compiler: http://fedoraproject.org/wiki/MinGW/CrossCompilerFramework
|
|
|
|
One problem is that this environment requires emulation of WIN32
|
|
executables to generate the initial saved state and to compile
|
|
`chr`. `wine` sometimes does the task, but it sometimes fails.
|
|
|
|
* OSX has the `mxe` package, a port of mingw that is in active
|
|
development.
|
|
|
|
mxe: http://mxe.cc/
|
|
|
|
Note that OSX has technical limitations that preclude porting
|
|
wine64. wine32 is distributed with package managers such as ports
|
|
and brew.
|
|
|
|
=== Setting up WIN32 compilation
|
|
|
|
Compiling WIN32 packages depends on a number of parameters: chosen compiler,
|
|
packages to install, directory setup. You may have to change these ones that
|
|
control the `mkwin` script:
|
|
|
|
* `VER`: major/minor number
|
|
* `PATCHID`: third digit
|
|
* `SRC`: directory containing yap sources, in the local environment notation.
|
|
* `SRC_WIN`: same, but in WIN32 standard notation.
|
|
* `THREADS`: yes or no? controllable from the command line.
|
|
* `ABI`: "32" or "64", controllable from the command line.
|
|
* `NSIS`: installer generator, usually "/c/Program Files (x86)/NSIS/makensis".
|
|
* `DOCS_DIR`: where you have the doxygen output.
|
|
* `GCC_DIR`: root of gcc seup.
|
|
* `HOST`: argument to `--host` configure command.
|
|
* `BUILD`: build directory
|
|
* `GMP`: multi-precision package; yes, no, or the installation directory; usually in the distribution.
|
|
* `CUDD`: BDD package, usually in the distribution.
|
|
* `JAVA`: Java sdk directory, usually in the distribution.
|
|
* `PYTHON`: Python package, usually in the distribution.
|
|
* `R`: R environment package, usually in the distribution.
|
|
* `GECODE`: constraint solver package, usually not in the WIN32 distribution. |