Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SWI(1)			     General Commands Manual			  SWI(1)

NAME
     swipl-ld - Create a SWI-Prolog embedded executable

SYNOPSIS
     swipl-ld options c-files o-files pl-files

DESCRIPTION
     The utility swipl-ld is a front-end for the C-compiler and linker to create
     a	stand-alone executable from a series of C/C++ and Prolog input files. It
     extracts information from the SWI-Prolog executable swipl, after  which  it
     scans the arguments and breaks them into several categories.  It then calls
     the C-compiler to create an executable containing the user's C-code and the
     SWI-Prolog kernel.  After this, it will call the development environment to
     create  a Prolog saved state from the prolog files and finally it will cre-
     ate the target executable by concatenating the state to the emulator.   See
     also qsave_program/2 from the SWI-Prolog manual.

   Options
     -pl prolog
	    Specifies  the  prolog  version to use.  The default is swipl.  This
	    flag may be used to choose between different versions  installed  on
	    your  system,  or to specify a modified version.  A modified version
	    should understands the flags -dump-runtime-variables -f file -F file
	    -g goal -t toplevel.

     -help  Shows options briefly

     -nostate
	    Just relinks the kernel.  The newly linked kernel can only	function
	    in	the  presence  of  the	development system.  Any supplied prolog
	    sourcefiles are ignored, and so  are  the  options	-goal  -toplevel
	    -initfile.	-class This is the preferred way to attach external mod-
	    ules to Prolog if dynamic loading is not supported on your system.

     -c     Compile  C or C++ source-files into object files.  This turns swipl-
	    ld into a replacement for the C or C++ compiler where proper options
	    such as the location of the include directory are  passed  automati-
	    cally to the compiler.

     -E     Invoke  the C preprocessor.  Used to make swipl-ld a replacement for
	    the C or C++ compiler.

     -shared
	    Link C, C++ or object files into a shared object (DLL) that  can  be
	    loaded  by the load_foreign_library/1 predicate.  If used with -c it
	    sets the proper options to compile a C or C++ file ready for linking
	    into a shared object.

     -embed-shared
	    Embed SWI-Prolog into a DLL/Shared object rather than an executable.
	    See the reference manual for details.

     -dll   Windows only Same as -embed-shared Backward compatibility.

     -F base
	    By default, none is passed to the swipl command to create the  saved
	    state.   Using  -F xpce you can specify loading xpce.rc, making XPCE
	    available to the saved state.

     -goal goal
	    The goal that is initially executed when the toplevel is started us-
	    ing PL_toplevel().	E.i. the default.  -g  flag  for  the  new  exe-
	    cutable.

     -toplevel goal
	    The  goal  that is executed as the main toplevel goal.  E.i. the de-
	    fault.  -t flag for the new executable.

     -initfile file
	    The file that is loaded by the toplevel.  E.i. the default.  -f flag
	    for the new executable.

     -class {runtime,kernel,development}
	    Set the save-class of the Prolog saved-state that  is  created.   If
	    runtime  (default), the resulting system leave interpretation of all
	    arguments to the application.  If  kernel  all  predicates	will  be
	    locked  for  the tracer.  Finally, if development the state is saved
	    `as-is' and the resulting system processes options just as the basic
	    SWI-Prolog executable does.  See also qsave_program/2  in  the  SWI-
	    Prolog reference manual.

     -v     Verbose  operation.   This echos the commands before executing them.
	    Note that some commands are printed as shell commands, but	actually
	    executed  by  swipl-ld itself for compatibility with the Win32 plat-
	    forms.

     -f     Fake operation.  Together with -v this prints the commands that need
	    to be executed without actually doing anything.

     -Ecppargument ...
	    If the first option is -E, all subsequent options are  appended  and
	    handed to the program selected by SWI-Prolog configure to run cpp.

     -o file
	    Specifies the name of the final executable.  The default is a.out.

     -cc C-compiler
	    Specify  the compiler to use for *.c files.  Default is the compiler
	    used to compile SWI-Prolog itself, as read from the feature c_cc.

     -c++ C++-compiler
	    Specify the compiler to use for C++ input files.  If the  C-compiler
	    is gcc this is g++, otherwise c++ is assumed.

     -ld linker
	    Specifies  the  linker to use.  Default is the C-compiler.	On Win32
	    platforms, the default is link.exe.

     -llibrary
	    Specifies a C-library for  linking	the  application.   By	default,
	    -lswipl  as  well as the libraries required by the SWI-Prolog kernel
	    will be passed to the C-compiler.

     -Llibrary-directory
	    Specifies an additional library directory for  the	C-compiler.   By
	    default,  the  runtime  directory  for  the  current architecture is
	    passed.

     -g|-I*|-D*|-U*|-O*|-W*
	    Passed to the compiler as c-flags.	By default, the  SWI-Prolog  in-
	    clude directory is passed as additional include directory.	The fol-
	    lowing   -D  flags	are  added  by	swipl-ld:  -D__SWI_PROLOG__  and
	    -D__SWI_EMBEDDED__.

     -pl-options*
	    Specify additional options for swipl.  The first character following
	    -pl-options determines the option-separator.  The remainder  of  the
	    argument  is  split  using this separator and the parts are added to
	    the option list for Prolog.  See also -cc-options and -ld-options

     -ld-options*
	    Additional options passed  to  the	linker.   For  example:  -ld-op-
	    tions,-Bstatic

     -cc-options*
	    Additional options passed to both C- and C++-compiler.

     *.o    Passed as input files to the linker.

     *.c    Compiled using the C-compiler, after which the object-file is passed
	    to the linker.  The object file is deleted at cleanup.

     *.cc|*.C|*.cxx|*.cpp
	    Compiled  using  the  C++-compiler,  after	which the object-file is
	    passed to the linker.  The object file is deleted at cleanup.

     *.pl|*.qlf
	    Passed as Prolog input files

BUGS
     Parsing the options and distributing them	over  the  various  programs  is
     probably  incomplete.  Feel  free to modify it and please forward generally
     useful modifications to bugs@swi-prolog.org.

     Some care has to be taken that the state created  with  qsave_program/2  is
     self-contained  (i.e.  contains  no  references  to  the Prolog libraries).
     Also, as the state is created using the development environment rather then
     the user's emulator, the Prolog code cannot use directives that rely on the
     C-code added by the user.

SEE ALSO
     swipl(1) SWI-Prolog Reference Manual, http://www.swi-prolog.org

COPYRIGHT
     Copyright (C) 1991-2010, University of Amsterdam, VU University,  Amsterdam
     This program may be used under the terms of the BSD-2 license.

AUTHOR
     Jan Wielemaker

				   Feb 8, 2006				  SWI(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=swipl-ld&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help