304fad4247
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@686 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
162 lines
5.0 KiB
Plaintext
162 lines
5.0 KiB
Plaintext
COMPILING YAP UNDER WIN32 (WIN95, WIN98, NT, 2000)
|
|
|
|
Yap should compile under both cygwin and Visual C++ 6.0. We next describe
|
|
how to do it from scratch.
|
|
|
|
$YAPSRC is the directory where you can find the sources
|
|
$YAPVERSION is the current version for YAP.
|
|
|
|
GCC-Based compilation:
|
|
|
|
GCC is distributed in the MINGW32 and CYGWIN packages.
|
|
|
|
The Mingw32 environment is available from the URL:
|
|
|
|
@code{http://www.mingw.org}
|
|
|
|
You will need to install the @code{msys} and @code{mingw}
|
|
packages. You should be able to do configure, make and make install.
|
|
|
|
If you use mingw32 you may want to search the contributed packages for
|
|
the @code{gmp} multi-precision arithmetic library. If you do setup Yap
|
|
with @code{gmp} note that @code{libgmp.dll} must be in the path,
|
|
otherwise Yap will not be able to execute.
|
|
|
|
CygWin environment is available from the URL:
|
|
|
|
@code{http://www.cygwin.com}
|
|
|
|
@noindent
|
|
and mirrors. We suggest using recent versions of the cygwin shell. The
|
|
compilation steps under the cygwin shell are as follows:
|
|
|
|
@example
|
|
mkdir cyg
|
|
$YAPSRC/configure --enable-coroutining \\
|
|
--enable-depth-limit \\
|
|
--enable-max-performance
|
|
make
|
|
make install
|
|
@end example
|
|
|
|
By default, Yap will use the @code{--enable-cygwin=no} option to
|
|
disable the use of the cygwin dll and to enable the mingw32 subsystem
|
|
instead. Yap thus will not need the cygwin dll. It instead accesses
|
|
the system's @code{CRTDLL.DLL} @code{C} run time library supplied with
|
|
Win32 platforms through the mingw32 interface. Note that some older
|
|
WIN95 systems may not have @code{CRTDLL.DLL}, in this case it should
|
|
be sufficient to import the file from a newer WIN95 or WIN98 machine.
|
|
|
|
You should check the default installation path which is set to
|
|
@code{/PROGRA~1/Yap} in the standard Makefile. This string will usually
|
|
be expanded into @code{c:\Program Files\Yap} by Windows.
|
|
|
|
The cygwin environment does not provide @t{gmp}. You can fetch a dll for
|
|
the @t{gmp} library from @url{http://www.sf.net/projects/mingwrep}.
|
|
|
|
It is also possible to configure Yap to be a part of the cygwin
|
|
environment. In this case you should use:
|
|
@example
|
|
mkdir cyg
|
|
$YAPSRC/configure --enable-coroutining \\
|
|
--enable-max-performance \\
|
|
--enable-cygwin=yes
|
|
make
|
|
make install
|
|
@end example
|
|
Yap will then compile using the cygwin library and will be installed
|
|
in cygwin's @code{/usr/local}. You can use Yap from a cygwin console,
|
|
or as a standalone application as long as it can find
|
|
@code{cygwin1.dll} in its path.
|
|
|
|
VISUAL C++:
|
|
|
|
To the best of my knowledge, Yap compiles cleanly under VC++ release
|
|
6.0.
|
|
|
|
First, it is a good idea to build Yap as a DLL:
|
|
|
|
1. create a project named yap using File.New. The project will be a
|
|
DLL project, initially *empty*.
|
|
|
|
NOTICE: Either the project is named yap or you must replace
|
|
YAP_EXPORTS to match your project names in c_interface.h and
|
|
c_interface.c.
|
|
|
|
o Use the FileView tab to add all .c files in the $YAPSRC/C directory
|
|
and in the $YAPSRC/OPTYap directory to the "Source Files".
|
|
|
|
o add all .h files in the $YAPSRC/H directory, $YAPSRC/include directory and in the $YAPSRC/OPTYap subdirectory to the "Header Files".
|
|
|
|
o include the .h from .m4 files and config.h. You can find these files at $YAPSRC/VC/include.
|
|
|
|
o You may want to go to Build.Set Active Configuration and set Project Type to Release
|
|
|
|
o set Project.Settings.C/C++.Preprocessor.Additional Include Directories to include the $YAPSRC/H, $YAPSRC/VC/include, $YAPSRC/OPTYap and $YAPSRC/include.
|
|
|
|
The syntax is:
|
|
|
|
$YAPSRC\H, $YAPSRC\VC\include, $YAPSRC\OPTYap, $YAPSRC\include
|
|
|
|
o Build: the system should generate an yap.dll and an yap.lib.
|
|
|
|
o Copy the yapdll.dll file to your path. The yapdll.lib should be copied to
|
|
where the linker can find it (you can also give the explicit path).
|
|
|
|
2. create a second project say wyap with File.New. The project will be a
|
|
WIN32 console project, initially empty.
|
|
|
|
o add $YAPSRC/console/yap.c to the Source Files.
|
|
|
|
o add $YAPSRC/VC/include/config.h and the files in $YAPSRC/include/ to
|
|
the Header Files.
|
|
|
|
o You may want to go to Build.Set Active Configuration and set Project Type to Release
|
|
|
|
o you will eventually need to bootstrap the system by booting from
|
|
boot.yap, so write:
|
|
|
|
-b $YAPSRC\pl\boot.yap
|
|
|
|
in Project.Project Settings.Debug.Program Arguments
|
|
|
|
o You need the sockets and yap libraries. Add
|
|
|
|
ws2_32.lib yapdll.lib to
|
|
|
|
to
|
|
|
|
Project.Project Settings.Link.Object/Library Modules
|
|
|
|
You may also need to set the Link Path so that VC++ will find yap.lib.
|
|
|
|
o set Project.Project Settings.C/C++.Preprocessor.Additional Include Directories to include the $YAPSRC/VC/include and $YAPSRC/include.
|
|
|
|
The syntax is:
|
|
|
|
$YAPSRC\VC\include, $YAPSRC\include
|
|
|
|
o Build the system.
|
|
|
|
o Use Build.Start Debug to boot the system, and then create the saved state with
|
|
|
|
['$YAPSRC\\pl\\init'].
|
|
save_program(startup).
|
|
^Z
|
|
|
|
That's it, you've got YAP and the saved state!
|
|
|
|
The $YAPSRC\VC directory has the make files to build Yap4.3.17 under VC++ 6.0.
|
|
|
|
Problems with this release:
|
|
|
|
o alarm/3 does not work in WIN98. This seems to be a limitation of WIN98.
|
|
o signals still do not work properly with console applications :-(.
|
|
o ??
|
|
|
|
|
|
Enjoy!
|
|
|
|
Vitor
|
|
|