1
0
Fork 0

Make all PSL support conditional, because it's not included in plib

1.6.  The macro is HAVE_PLIB_PSL.
This commit is contained in:
david 2003-01-17 12:41:47 +00:00
parent 221f54f8f0
commit 04f1dc4837
6 changed files with 36 additions and 20 deletions

View file

@ -353,9 +353,9 @@ dnl joystick lib
AC_DEFINE([ENABLE_PLIB_JOYSTICK], 1, [Define to enable plib joystick support])
dnl Compiling an in-memory PSL script is available only in the CVS
dnl Checking for PSL in plib
dnl version of plib, so check for it.
AC_MSG_CHECKING([for plib PSL in-memory script compilation support])
AC_MSG_CHECKING([for plib PSL scripting support])
AC_COMPILE_IFELSE([
#include <plib/psl.h>
@ -367,13 +367,10 @@ int main() {
}
],
[AC_MSG_RESULT(yes);
fg_psl_string_compile=yes],
have_plib_psl=yes],
AC_MSG_RESULT(no)
)
if test "x$fg_psl_string_compile" = "xyes"; then
AC_DEFINE([FG_PSL_STRING_COMPILE], 1,
[Support for compiling PSL scripts from an in-memory string.])
fi
AM_CONDITIONAL(HAVE_PLIB_PSL, test "x$have_plib_psl" = "xyes")
dnl Check for MetaKit
AC_CHECK_HEADER(mk4.h)
@ -597,13 +594,14 @@ echo "================="
echo "Prefix: $prefix"
if test "x$fg_psl_string_compile" = "xyes"; then
echo "Scripts for input bindings: yes"
if test "x$have_plib_psl" = "xyes"; then
echo "Plib PSL scripting: yes"
else
echo "Scripts for input bindings: $fg_psl_string_compile"
echo " PSL scripts attached to input bindings will not"
echo " work. Download the latest CVS version of plib"
echo " if you would like to enable them."
echo "Plib PSL scripting: $fg_psl_string_compile"
echo " You will not be able to run scripts written in PSL"
echo " and some advanced GUI and input features may not"
echo " work. Download and install the latest CVS version"
echo " of plib if you would like to enable PSL support."
fi
if test "x$with_logging" != "x"; then

View file

@ -19,6 +19,12 @@ else
THREAD_LIBS =
endif
if HAVE_PLIB_PSL
PSL_LIBS = -lplibpsl
else
PSL_LIBS =
endif
AM_CXXFLAGS = -DPKGLIBDIR=\"$(pkglibdir)\"
EXTRA_DIST = 3dfx.sh runfgfs.in runfgfs.bat.in
@ -78,7 +84,8 @@ fgfs_LDADD = \
-lsgmath -lsgbucket -lsgdebug -lsgmagvar -lsgmisc -lsgxml \
-lsgserial \
$(THREAD_LIBS) \
-lplibpu -lplibfnt -lplibjs -lplibnet -lplibssg -lplibsg -lplibul -lplibpsl \
-lplibpu -lplibfnt -lplibjs -lplibnet -lplibssg -lplibsg -lplibul \
$(PSL_LIBS) \
-lmk4 -lz \
$(opengl_LIBS) \
$(audio_LIBS)

View file

@ -19,7 +19,9 @@
#include <GUI/gui.h>
#include <GUI/new_gui.hxx>
#include <Scenery/tilemgr.hxx>
#if defined(HAVE_PLIB_PSL)
#include <Scripting/scriptmgr.hxx>
#endif
#include <Time/tmp.hxx>
#include "fg_init.hxx"
@ -129,6 +131,7 @@ do_null (const SGPropertyNode * arg)
return true;
}
#if defined(HAVE_PLIB_PSL)
/**
* Built-in command: run a PSL script.
*/
@ -140,6 +143,7 @@ do_script (const SGPropertyNode * arg)
return mgr->run(arg->getStringValue("script"));
}
#endif // HAVE_PLIB_PSL
/**
@ -654,7 +658,9 @@ static struct {
SGCommandMgr::command_t command;
} built_ins [] = {
{ "null", do_null },
#if defined(HAVE_PLIB_PSL)
{ "script", do_script },
#endif // HAVE_PLIB_PSL
{ "exit", do_exit },
{ "load", do_load },
{ "save", do_save },

View file

@ -109,7 +109,9 @@
#include <Navaids/navlist.hxx>
#include <Scenery/scenery.hxx>
#include <Scenery/tilemgr.hxx>
#if defined(HAVE_PLIB_PSL)
#include <Scripting/scriptmgr.hxx>
#endif
#include <Sound/fg_fx.hxx>
#include <Sound/soundmgr.hxx>
#include <Systems/system_mgr.hxx>
@ -1478,11 +1480,13 @@ bool fgInitSubsystems() {
globals->add_subsystem("logger", new FGLogger);
#if defined(HAVE_PLIB_PSL)
////////////////////////////////////////////////////////////////////
// Create and register the script manager.
////////////////////////////////////////////////////////////////////
globals->add_subsystem("scripting", new FGScriptMgr);
#endif // HAVE_PLIB_PSL
////////////////////////////////////////////////////////////////////

View file

@ -10,6 +10,12 @@ else
NETWORK_DIRS = Network
endif
if HAVE_PLIB_PSL
SCRIPTING_DIRS = Scripting
else
SCRIPTING_DIRS =
endif
SUBDIRS = \
Include \
Aircraft \
@ -27,7 +33,7 @@ SUBDIRS = \
$(NETWORK_DIRS) \
Objects \
Scenery \
Scripting \
$(SCRIPTING_DIRS) \
Sound \
Systems \
Time \

View file

@ -137,7 +137,6 @@ FGScriptMgr::update (double delta_time_sec)
bool
FGScriptMgr::run (const char * script) const
{
#if defined(FG_PSL_STRING_COMPILE)
// FIXME: detect and report errors
pslProgram program(extensions);
if (program.compile(script, globals->get_fg_root().c_str()) > 0)
@ -145,10 +144,6 @@ FGScriptMgr::run (const char * script) const
while (program.step() != PSL_PROGRAM_END)
;
return true;
#else
SG_LOG(SG_INPUT, SG_ALERT, "Input-binding scripts not supported");
return false;
#endif
}
bool