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:
parent
221f54f8f0
commit
04f1dc4837
6 changed files with 36 additions and 20 deletions
24
configure.ac
24
configure.ac
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 },
|
||||
|
|
|
@ -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
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue