Node:Runtime Systems on Windows Target Machines, Previous:Runtime Systems on UNIX Target Machines, Up:Runtime Systems on Target Machines
In order to locate all relevant files, the following directory structure
should be used.
myapp.exe sprt312.dll sp312\ +--- bin\ | +--- sprt.sav +--- library\ +--- <files from %SP_PATH%\library>
If support for multiple SICStus instances is needed, then the run-times
named e.g. sprt312_instance_01_.dll
, need to be available as
well, in the same place as sprt312.dll
.
myapp.exe
is typically created by a call to spld
:
% spld --main=user [...] -o ./myapp.exe
If the directory containing sprt312.dll
contains a directory
called sp312
, SICStus assumes that it is part of a runtime system
as described in the picture. The (extended) runtime library,
sprt.sav
(spre.sav
), is then looked up in the directory
(sp312/bin
), as in the picture. Furthermore, the initial
library_directory/1
fact will be set to the same directory with
sp312/library
appended.
The directory structure under library/
should look like in a
regular installed SICStus, including the platform-specific subdirectory
(x86-win32-nt-4
in this case). If your application needs to use
library(system)
and library(random)
, your directory
structure may look like:
myapp.exe sprt312.dll sp312\ +--- bin\ | +--- sprt.sav +--- library\ +--- random.po +--- system.po +--- x86-win32-nt-4 \ +--- random.dll +--- system.dll
The sp*
files can also be put somewhere else in order to be
shared by several applications provided the sprt312.dll
can be
located by the DLL search.
Naming the files with version number enables applications using
different SICStus versions to install the sp*
files in the same
directory.
When a runtime system is redistributed to third parties, only the
following files may be included in the distribution.
All filenames are relative to %SP_PATH%
:
bin\sprt.sav
bin\spre.sav
bin\jasper.jar
bin\prologbeans.jar
bin\*.dll
bin\*.po
library\*.{tcl,po,pl,bas}
license.pl
!
library\*\*.dll
library\*\*.{po,pl}