================================================================= Logtalk - Object oriented extension to Prolog Release 2.25.1 Copyright (c) 1998-2005 Paulo Moura. All Rights Reserved. ================================================================= This file contains detailed instructions for installing and configuring Logtalk. You should also consult the "scripts/NOTES" file for a description of a set of shell scripts that might be used for Logtalk installation on some operating-systems and for easy Logtalk integration with popular Prolog compilers. Note that the broad compatibility of Logtalk, both with Prolog compilers and operating-systems, together with all the possible user scenarios, means that installation can vary from very simple by running a couple of scripts to the need of patching both Logtalk and Prolog compilers to workaround the lack of strong Prolog standards. 1. LOGTALK INSTALLATION Installing Logtalk can be as simple as decompressing the downloaded archive and copying the resulting directory to a suitable location. This location depends on the working environment and on the number of users. The Logtalk directory can reside in any user accessible location. Whenever possible, it is recommended that Logtalk be installed by a user with administrative rights, as described below. This leads to a setup where each Logtalk user may freely try and modify the provided examples, library, and configuration files with the option of, at any time, restoring the files to its original state by simply running one of the provided scripts. * Installing for a single user with no administrative rights: In the case of a single user with no administrative rights, the Logtalk directory may simply be copied to the user home directory. * Installing for one or more users by a user with administrative rights: In the case of installation by a user with administrative rights, the Logtalk directory can be copied to any location that its accessible by all the users (assuming that copying the Logtalk directory to each user home directory is, for some reason, not feasible or desired). The "scripts" sub-directory contains shell scripts for easy installation of Logtalk on MacOS X, Windows, Linux, and Unix-like operating systems (see the "scripts/NOTES" file for details). After running the appropriated script for your operating-system, the second step will be to run the Prolog integration scripts that you find on the "scripts" sub-directory, assuming that your favorite Prolog compilers are supported (if that is not the case, don't worry: just follow the steps described in the "QUICK_START" file). The third step is for each user to make a local copy of the Logtalk user-modifiable files to its home directory. This allows each user to easily customize Logtalk to its needs. These copies can be easily made by instructing end-users to simply run the shell command "cplgtdirs" (the corresponding scripts are described in the "scripts/NOTES" file). The "scripts/lgt_install.*" installation scripts make all files read-only in order to avoid user tempering. This is a convenient setup for computer labs, given that making directories world-writable is a security risk. Of course, the local copies made by the "cplgtdirs" scripts have both read and write permissions for the user running the script. When used with one of the Prolog compilers for which an integration script is provided on the "scripts" directory, this setup as the advantage of allowing each end-user to independently customize default compilation options and library paths. 2. LOGTALK CONFIGURATION 2.1 Setting environment variables You need to set two environment variables, LOGTALKHOME and LOGTALKUSER. The environment variable LOGTALKHOME should point to the Logtalk installation directory. The environment variable LOGTALKUSER should point to a directory in your home directory where you want to store the user-specific Logtalk files (for example, ~/logtalk). Both environment variables may be set for all users by a user with administration privileges. The two environment variables can have the same value if you are the only Logtalk user on your computer and if you have full permissions to the Logtalk installation directory. In addition, you may want to add the Logtalk sub-directory "xml", which contains useful scripts for processing XML documenting files, to your execution path. * Unix and Unix-like systems: If you use a csh shell, add the following line to your ~/.cshrc file: setenv LOGTALKHOME /your/logtalk/installation/directory setenv LOGTALKUSER $HOME/logtalk setenv PATH $PATH:$LOGTALKUSER/xml:$LOGTALKHOME/scripts If you use a bash shell, add the following lines to your ~/.profile file: LOGTALKHOME=/your/logtalk/installation/directory LOGTALKUSER=$HOME/logtalk PATH=$PATH:$LOGTALKUSER/xml:$LOGTALKHOME/scripts export PATH LOGTALKHOME LOGTALKUSER When using the provided shell script for installing Logtalk, a symbolic link to the Logtalk installation directory is automatically created. The link is named "logtalk". In this case, you may use this symbolic link to define the LOGTALKHOME environment variable in order to avoid breaking it when upgrading Logtalk. * Windows systems: In Windows 95/98/ME, environment variables are defined in the "autoexec.bat" file (you will need to reboot after editing the file): SET LOGTALKHOME=C:\your\logtalk\installation\folder\ SET LOGTALKUSER=%HOMEPATH%\logtalk In Windows 2000/XP, environment variables are defined using the System properties control panel (if you are a system administrator, you should use the JScript install script provided in the "scripts" sub-directory; this script sets the LOGTALKHOME environment variable for all users and also sets the LOGTALKUSER environment variable for the administrator user running the script). 2.2 Setting library paths In Logtalk, a library is simply a directory containing source files. Library paths can be declared using a dynamic predicate. This allows compiling and loading of libraries and library files to be performed without worries about library paths. Assuming that you have used the "scripts/cplgtdirs.*" shell scripts for making a copy of the user-modifiable Logtalk files, you will find in the "$LOGTALKUSER/libpaths" directory a sample file which, when loaded, defines the library paths for the Logtalk standard library and for all the supplied examples. This file may need to be edited to match your Logtalk installation and your Prolog compiler and operating-system requirements. For more details, see the file "$LOGTALKUSER/libpaths/NOTES". 2.3 Customizing Prolog configuration files Logtalk interfaces with a specific Prolog compiler via a configuration file that can be found on the "$LOGTALKUSER/configs" directory. These configuration files can be customized by changing the values of the default flags that are used by Logtalk when compiling source files. For a full description of these default flags, consult the "Running and debugging Logtalk programs" section of the User Manual. Some of the default flags that you may want to change are: "smart_compilation", "startup_message", "portability", "underscore_vars", "altdirs", and the set of documentation-related flags ("xml", "xsl", "xmlspec", and "doctype"). Be sure to read the "$LOGTALKUSER/configs/NOTES" file for Prolog specific notes; some Prolog compilers do not support the whole range of compilation flags. 2.4 Customizing documentation processing scripts and supporting files Logtalk provides, in the "$LOGTALKUSER/xml" directory, a set of shell scripts, CSS and XSLT style-sheets, and DTD and XML Schema files for processing the XML documenting files that are automatically generated when you compile source files. You may want to customize these scripts and their supporting files to modify the layout or style of the resulting PDF/(X)HTML files or to write new scripts and transformations to generate other formats. For more details, see the file "$LOGTALKUSER/xml/NOTES". 3. CREATING NEW PROLOG TOP-LEVELS FOR AUTOMATIC LOADING OF LOGTALK Most Prolog compilers allows the user to define an initialization file that is automatically consulted at startup. This initialization file may contain directives for loading other files, such as the Logtalk configuration file and the Logtalk compiler. The "$LOGTALKHOME/scripts" sub-directory contains several scripts for automating the creation of these initialization files for some Prolog compilers. In addition, be sure to read the "configs/NOTES" file notes on the Prolog compilers that you intend to use.