This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
yap-6.3/Logtalk/scripts/make_qplgt.sh
pmoura 9fc2c47d53 Logtalk 2.30.2 files.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1908 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2007-06-24 13:27:35 +00:00

90 lines
2.9 KiB
Bash
Executable File

#!/bin/sh
## ================================================================
## Logtalk - Open source object-oriented logic programming language
## Release 2.30.2
##
## Copyright (c) 1998-2007 Paulo Moura. All Rights Reserved.
## ================================================================
# makes a shell script named "qplgt" for running Logtalk with Qu-Prolog
# (based on script code contributed by Peter Robinson); this script does
# not read at runtime the config and the libpaths files: you will need to
# run this script again if you modify these files
echo
echo "Creating a script named qplgt for running Logtalk with Qu-Prolog..."
echo
if ! [ "$LOGTALKHOME" ]; then
echo "The environment variable LOGTALKHOME should be defined first!"
echo "Trying default Logtalk installation directories..."
if [ -d "/usr/local/share/logtalk" ]; then
LOGTALKHOME=/usr/local/share/logtalk
echo "Using Logtalk installation at \"/usr/local/share/logtalk\""
elif [ -d "/usr/share/logtalk" ]; then
LOGTALKHOME=/usr/share/logtalk
echo "Using Logtalk installation at \"/usr/share/logtalk\""
elif [ -d "/opt/local/share/logtalk" ]; then
LOGTALKHOME=/opt/local/share/logtalk
echo "Using Logtalk installation at \"/opt/local/share/logtalk\""
elif [ -d "/opt/share/logtalk" ]; then
LOGTALKHOME=/opt/share/logtalk
echo "Using Logtalk installation at \"/opt/share/logtalk\""
else
echo "Unable to locate Logtalk installation directory!"
echo
exit 1
fi
elif ! [ -d "$LOGTALKHOME" ]; then
echo "The environment variable LOGTALKHOME points to a non-existing directory!"
echo "Its current value is: $LOGTALKHOME"
echo "The variable must be set to your Logtalk installation directory!"
echo
exit 1
fi
if [ -z "$1" ]; then
prefix=/usr/local
else
prefix="$1"
fi
if ! [ -d "$prefix" ]; then
echo "Directory prefix does not exist!"
echo
exit 1
fi
cd "$LOGTALKHOME"
mkdir -p bin
cd configs
cp qu.config qu.ql
echo "fcompile('qu.ql', [assemble_only(true)]), load(qu). \
chdir('../compiler/'), fcompile('logtalk.pl', [assemble_only(true), string_table(256)]), load(logtalk). \
chdir('../libpaths/'), fcompile('libpaths.pl', [assemble_only(true)]), load(libpaths)." | qp -s 3072 -d 1024 -h 2048
qc -c qphook.ql
cd ../bin
qc -s 3072 -d 1024 -h 2048 -o qplgt ../configs/qphook.qo ../configs/qu.qo ../compiler/logtalk.qo ../libpaths/libpaths.qo
chmod a+x qplgt
mkdir -p $prefix/bin
ln -sf $LOGTALKHOME/bin/qplgt $prefix/bin/qplgt
rm ../configs/qu.ql
rm ../configs/qphook.qo
rm ../configs/qu.qo
rm ../compiler/logtalk.qo
rm ../libpaths/libpaths.qo
echo "Done. A link to the script was been created in $prefix/bin."
echo "The script must be regenerated whenever changes are made to"
echo "either the config file or the libpaths file."
echo
echo "Users should ensure that the environment variables LOGTALKHOME"
echo "and LOGTALKUSER are defined and then run the \"cplgtdirs\" script"
echo "once prior to using the qplgt script."
echo