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	 cate-
       gories.	 It then calls the C-compiler to create	an executable contain-
       ing 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 create 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 in-
	      stalled 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 func-
	      tion  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 modules 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 automatically 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  exe-
	      cutable.	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
	      using PL_toplevel().  E.i. the default.  -g flag for the new ex-
	      ecutable.

       -toplevel goal
	      The  goal	 that is executed as the main toplevel goal.  E.i. the
	      default.	-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 op-
	      tions 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	platforms.

       -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  com-
	      piler  used  to compile SWI-Prolog itself, as read from the fea-
	      ture c_cc.

       -c++ C++-compiler
	      Specify the compiler to use for C++ input	files.	If the	C-com-
	      piler 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 ker-
	      nel 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
	      include  directory  is  passed  as additional include directory.
	      The following -D flags are added by  swipl-ld:  -D__SWI_PROLOG__
	      and -D__SWI_EMBEDDED__.

       -pl-options*
	      Specify  additional options for swipl.  The first	character fol-
	      lowing -pl-options determines the	option-separator.  The remain-
	      der  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	gener-
       ally 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 li-
       braries).  Also,	as the state is	created	using the development environ-
       ment rather then	the user's emulator, the Prolog	code cannot use	direc-
       tives 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,  Ams-
       terdam  This program may	be used	under the terms	of the LGPL, version 2
       or later.

AUTHOR
       Jan Wielemaker

				  Feb 8, 2006				SWI(1)

NAME | SYNOPSIS | DESCRIPTION | BUGS | SEE ALSO | COPYRIGHT | AUTHOR

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

home | help